From 7ef214545e0fe7dfb88f88956d1ae7c775d8ba4c Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 12 Jul 2021 12:07:16 +0800 Subject: [PATCH 001/277] Fix error messages from table input while the file not exists --- src/main.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/main.ts b/src/main.ts index ba09ace..0dd2f2d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -434,10 +434,20 @@ export default class Tracker extends Plugin { let tableQueries = renderInfo.queries.filter( (q) => q.getType() === SearchType.Table ); + // console.log(tableQueries); // Separate queries by tables and xDatasets/yDatasets let tables: Array = []; + let tableFileNotFound = false; for (let query of tableQueries) { let filePath = query.getParentTarget(); + let file = this.app.vault.getAbstractFileByPath( + normalizePath(filePath + ".md") + ); + if (!file || !(file instanceof TFile)) { + tableFileNotFound = true; + break; + } + let tableIndex = query.getAccessor(); let isX = query.usedAsXDataset; @@ -462,9 +472,19 @@ export default class Tracker extends Plugin { } // console.log(tables); + if (tableFileNotFound) { + let errorMessage = "File containing tables not found"; + renderErrorMessage(canvas, errorMessage); + el.appendChild(canvas); + return; + } + for (let tableData of tables) { //extract xDataset from query let xDatasetQuery = tableData.xDataset; + if (!xDatasetQuery) {// missing xDataset + continue; + } let yDatasetQueries = tableData.yDatasets; let filePath = xDatasetQuery.getParentTarget(); let tableIndex = xDatasetQuery.getAccessor(); From 5b55dac13f1363ffc820e34e0a46232cd7908a59 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Thu, 8 Jul 2021 19:20:10 +0800 Subject: [PATCH 002/277] Parse expression using jsep; Remove expression-eval; --- examples/BloodPressureTracker.md | 2 +- examples/ErrorMessages.md | 5 +- examples/HabitTracker.md | 4 +- examples/StarTracker.md | 2 +- examples/TestBullet.md | 4 +- examples/TestCalendar.md | 2 +- examples/TestPieChart.md | 57 +++++- examples/TestTask.md | 8 +- examples/TestTemplateVariables.md | 100 +++++----- examples/TestWordCounting.md | 6 +- examples/TrackUsingRegex.md | 2 +- examples/WeightTracker.md | 2 +- package.json | 2 +- src/bullet.ts | 9 +- src/expr.ts | 304 +++++++++++++++--------------- src/pie.ts | 23 ++- src/summary.ts | 1 + 17 files changed, 296 insertions(+), 237 deletions(-) diff --git a/examples/BloodPressureTracker.md b/examples/BloodPressureTracker.md index d198b77..4ac34a8 100644 --- a/examples/BloodPressureTracker.md +++ b/examples/BloodPressureTracker.md @@ -26,7 +26,7 @@ folder: diary startDate: 2021-01-01 endDate: 2021-01-31 summary: - template: "Average: {{average(Dataset(0))}}/{{average(Dataset(1))}}\nAverage: {{average(Dataset(systolic))}}/{{average(Dataset(diastolic))}}" + template: "Average: {{average(dataset(0))}}/{{average(dataset(1))}}\nAverage: {{average(dataset(systolic))}}/{{average(dataset(diastolic))}}" ``` diff --git a/examples/ErrorMessages.md b/examples/ErrorMessages.md index 29afea7..6c36823 100644 --- a/examples/ErrorMessages.md +++ b/examples/ErrorMessages.md @@ -139,4 +139,7 @@ line: ``` -Please also check those search targets in markdown files under folder 'diary' and 'data'. \ No newline at end of file +Please also check those search targets in markdown files under folder 'diary' and 'data'. + +## Expression +TODO \ No newline at end of file diff --git a/examples/HabitTracker.md b/examples/HabitTracker.md index b517eed..568d2c2 100644 --- a/examples/HabitTracker.md +++ b/examples/HabitTracker.md @@ -41,7 +41,7 @@ searchType: tag searchTarget: meditation folder: diary summary: - template: "Longest Streak: {{maxStreak}} day(s)\nLongest Breaks: {{maxBreaks}} day(s)\nLast streak: {{currentStreak}} day(s)" + template: "Longest Streak: {{maxStreak()}} day(s)\nLongest Breaks: {{maxBreaks()}} day(s)\nLast streak: {{currentStreak()}} day(s)" ``` ### CleanUp @@ -51,7 +51,7 @@ searchTarget: clean-up folder: diary endDate: 2021-01-31 summary: - template: "Last Break: {{currentBreaks}} day(s)" + template: "Last Break: {{currentBreaks()}} day(s)" ``` ### Work log diff --git a/examples/StarTracker.md b/examples/StarTracker.md index 994ce45..41bdb34 100644 --- a/examples/StarTracker.md +++ b/examples/StarTracker.md @@ -6,7 +6,7 @@ searchType: text searchTarget: ⭐ folder: diary summary: - template: "I have {{sum}} stars in total." + template: "I have {{sum()}} stars in total." style: "font-size:20px;color:yellow;margin-left: 50px;margin-top:00px;" ``` diff --git a/examples/TestBullet.md b/examples/TestBullet.md index 733e1f6..b71fee4 100644 --- a/examples/TestBullet.md +++ b/examples/TestBullet.md @@ -12,7 +12,7 @@ bullet: orientation: horizontal range: 10, 20, 40 rangeColor: darkgray, silver, lightgray - value: "{{currentBreaks}}" + value: "{{currentBreaks()}}" valueUnit: times valueColor: '#69b3a2' showMarker: true @@ -32,7 +32,7 @@ bullet: orientation: vertical range: 30, 60, 100 rangeColor: darkgray, silver, lightgray - value: "{{sum}}" + value: "{{sum()}}" valueUnit: times valueColor: steelblue showMarker: true diff --git a/examples/TestCalendar.md b/examples/TestCalendar.md index 4388305..a58ab08 100644 --- a/examples/TestCalendar.md +++ b/examples/TestCalendar.md @@ -69,7 +69,7 @@ month: searchType: tag searchTarget: exercise-pushup summary: - template: "minDate: {{minDate}}\nminValue: {{min}}\nmaxDate: {{maxDate}}\nmaxValue: {{max}}" + template: "minDate: {{minDate()}}\nminValue: {{min()}}\nmaxDate: {{maxDate()}}\nmaxValue: {{max()}}" ``` ## Multiple targets diff --git a/examples/TestPieChart.md b/examples/TestPieChart.md index 084e43e..16f3e14 100644 --- a/examples/TestPieChart.md +++ b/examples/TestPieChart.md @@ -1,12 +1,65 @@ # Test Pie Chart +## Manual Input Data +### Numbers +To be fixed, +If numeric data not wrapped by single quotes +``` tracker +searchType: task.done, task.notdone +searchTarget: Say I love you, Say I love you +pie: + title: Pie + data: '2, 4, 6, 8, 10' + dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' + ratioInnerRadius: 0.5 +``` + +### Expression +To be fixed, +If numeric data not wrapped by single quotes +2,4,6,8,10 +????? errro????? +``` tracker +searchType: task.done, task.notdone +searchTarget: Say I love you, Say I love you +pie: + title: Pie + data: '{{1 + 1}}, {{2 * 2}}, {{12/ 2}}, {{1+(2+3*2)-1}}, {{27%17}}' + dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' + ratioInnerRadius: 0.5 +``` + +## Data from Notes +``` tracker +searchType: task.done, task.notdone +searchTarget: Say I love you, Say I love you +folder: diary +pie: + title: Pie + data: '{{sum(0)}},{{sum(1)}}' + dataColor: '#4daf4a,#377eb8' + ratioInnerRadius: 0.5 +``` + + +``` tracker +searchType: task.done, task.notdone +searchTarget: Say I love you, Say I love you +folder: diary +summary: + template: "How many days I said love: {{sum(0)}}\nHow many days I didn't say love: {{sum(1)}}" +``` + + + YAMLParsError: Missing closing "quote" +Error parsing caused by the escaping character YAMLParsError: Missing closing "quote" ``` tracker searchType: tag searchTarget: "\" @@ -142,4 +143,46 @@ line: Please also check those search targets in markdown files under folder 'diary' and 'data'. ## Expression -TODO \ No newline at end of file +Unknown function +``` tracker +searchType: task +searchTarget: Say I love you +summary: + template: '{{unknown()}}' +``` + +Incomplete expression +``` tracker +searchType: task +searchTarget: Say I love you +summary: + template: '{{1+}}' +``` + +No data set found for id +``` tracker +searchType: task +searchTarget: Say I love you +summary: + template: '{{sum(dataset(1))}}' +``` + +Divide by zero +``` tracker +searchType: task +searchTarget: Say I love you +summary: + template: '{{sum()/0}}' +``` + +## Deprecated +### Deprecated template variables + +Deprecated template variable +``` tracker +searchType: task +searchTarget: Say I love you +summary: + template: '{{sum}}' +``` + From 5eaa79594be9a3861200a2f11dde66bfab6621b3 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sun, 18 Jul 2021 18:44:15 +0800 Subject: [PATCH 016/277] Add expression function setMissingValues; fix expression function normalize --- examples/ErrorMessages.md | 8 +++ examples/TestDatasetMath.md | 73 +++++++++++++------- src/data.ts | 41 ++++++++--- src/expr.ts | 132 +++++++++++++++++++++++++++++++++--- 4 files changed, 208 insertions(+), 46 deletions(-) diff --git a/examples/ErrorMessages.md b/examples/ErrorMessages.md index 78b320a..a986a5f 100644 --- a/examples/ErrorMessages.md +++ b/examples/ErrorMessages.md @@ -175,6 +175,14 @@ summary: template: '{{sum()/0}}' ``` +Invalid datarange +``` tracker +searchType: tag +searchTarget: meditation +summary: + template: '{{sum(normalize(dataset(0)))}}' +``` + ## Deprecated ### Deprecated template variables diff --git a/examples/TestDatasetMath.md b/examples/TestDatasetMath.md index 78585d6..959706c 100644 --- a/examples/TestDatasetMath.md +++ b/examples/TestDatasetMath.md @@ -1,6 +1,7 @@ # Test Dataset Math -### {{min()}} +# Function Dataset to Value +### min(Dataset): number ``` tracker searchType: dvField searchTarget: dataviewTarget @@ -10,7 +11,7 @@ summary: template: 'Minimum value: {{min()::i}} <-- should be 12' ``` -### {{minDate()}} +### minDate(Dataset): Date ``` tracker searchType: dvField searchTarget: dataviewTarget @@ -20,7 +21,7 @@ summary: template: 'Latest date of minimum value: {{minDate()}} <-- should be 2021-01-03' ``` -### {{max()}} +### max(Dataset): number ``` tracker searchType: dvField searchTarget: dataviewTarget @@ -30,7 +31,7 @@ summary: template: 'Maximum value: {{max()::i}} <-- should be 48' ``` -### {{maxDate()}} +### maxDate() ``` tracker searchType: dvField searchTarget: dataviewTarget @@ -40,7 +41,7 @@ summary: template: 'Latest date of maximum value: {{maxDate()}} <-- should be 2021-01-01' ``` -### {{startDate()}} +### startDate() ``` tracker searchType: dvField searchTarget: dataviewTarget @@ -50,7 +51,7 @@ summary: template: 'Start date: {{startDate()}} <-- should be 2021-01-01' ``` -### {{endDate()}} +### endDate() ``` tracker searchType: dvField searchTarget: dataviewTarget @@ -60,7 +61,7 @@ summary: template: 'End date: {{endDate()}} <-- should be 2021-01-03' ``` -### {{sum()}} +### sum() ``` tracker searchType: tag searchTarget: meditation @@ -70,7 +71,7 @@ summary: template: 'Sum: {{sum()::i}} <-- should be 3' ``` -### {{numTargets()}} +### numTargets() ``` tracker searchType: tag searchTarget: meditation @@ -80,7 +81,7 @@ summary: template: 'Number of targets: {{numTargets()::i}} <-- should be 3' ``` -### {{numDays()}} +### numDays() ``` tracker searchType: tag searchTarget: meditation @@ -90,7 +91,7 @@ summary: template: 'Number of days: {{numDays()::i}} <-- should be 4' ``` -### {{numDaysHavingData()}} +### numDaysHavingData() ``` tracker searchType: tag searchTarget: meditation @@ -100,7 +101,7 @@ summary: template: 'Number of days having data: {{numDaysHavingData()::i}} <-- should be 3' ``` -### {{maxStreak()}} +### maxStreak() ``` tracker searchType: tag searchTarget: meditation @@ -110,7 +111,7 @@ summary: template: 'Maximum streak: {{maxStreak()::i}} <-- should be 5' ``` -### {{maxStreakStart()}} +### maxStreakStart() ``` tracker searchType: tag searchTarget: meditation @@ -120,7 +121,7 @@ summary: template: 'The start date of maximum streak: {{maxStreakStart()}} <-- should be 2021-01-02' ``` -### {{maxStreakEnd()}} +### maxStreakEnd() ``` tracker searchType: tag searchTarget: meditation @@ -130,7 +131,7 @@ summary: template: 'The end date of maximum streak: {{maxStreakEnd()}} <-- should be 2021-01-06' ``` -### {{maxBreaks()}} +### maxBreaks() ``` tracker searchType: tag searchTarget: meditation @@ -140,7 +141,7 @@ summary: template: 'Maximum breaks: {{maxBreaks()::i}} <-- should be 2' ``` -### {{maxBreaksStart()}} +### maxBreaksStart() ``` tracker searchType: tag searchTarget: meditation @@ -150,7 +151,7 @@ summary: template: 'The start date of maximum breaks: {{maxBreaksStart()}} <-- should be 2021-01-07' ``` -### {{maxBreaksEnd()}} +### maxBreaksEnd() ``` tracker searchType: tag searchTarget: meditation @@ -160,7 +161,7 @@ summary: template: 'The end date of maximum breaks: {{maxBreaksEnd()}} <-- should be 2021-01-08' ``` -### {{currentStreak()}} +### currentStreak() ``` tracker searchType: tag searchTarget: meditation @@ -170,7 +171,7 @@ summary: template: 'Latest streak: {{currentStreak()::i}} <-- should be 1' ``` -### {{currentStreakStart()}} +### currentStreakStart() ``` tracker searchType: tag searchTarget: meditation @@ -180,7 +181,7 @@ summary: template: 'The start date of current streak: {{currentStreakStart()}} <-- should be 2021-01-24' ``` -### {{currentStreakEnd()}} +### currentStreakEnd() ``` tracker searchType: tag searchTarget: meditation @@ -190,7 +191,7 @@ summary: template: 'The end date of current streak: {{currentStreakEnd()}} <-- should be 2021-01-24' ``` -### {{currentBreaks()}} +### currentBreaks() ``` tracker searchType: tag searchTarget: meditation @@ -200,7 +201,7 @@ summary: template: 'Current breaks: {{currentBreaks()::i}} <-- should be 1' ``` -### {{currentBreaksStart()}} +### currentBreaksStart() ``` tracker searchType: tag searchTarget: meditation @@ -210,7 +211,7 @@ summary: template: 'The start date of current breaks: {{currentBreaksStart()}} <-- should be 2021-01-22' ``` -### {{currentBreaksEnd()}} +### currentBreaksEnd() ``` tracker searchType: tag searchTarget: meditation @@ -220,7 +221,7 @@ summary: template: 'The end date of current breaks: {{currentBreaksEnd()}} <-- should be 2021-01-22' ``` -### {{average()}} +### average() (48+25+12)/3 = 28.33 ``` tracker searchType: dvField @@ -231,7 +232,7 @@ summary: template: 'Average value: {{average()::.2f}} <-- should be 28.33' ``` -### {{median()}} +### median() ``` tracker searchType: dvField searchTarget: dataviewTarget @@ -241,7 +242,7 @@ summary: template: 'Median value: {{median()::i}} <-- should be 25' ``` -### {{variance()}} +### variance() https://mathworld.wolfram.com/SampleVariance.html ``` tracker searchType: dvField @@ -251,3 +252,25 @@ endDate: 2021-01-03 summary: template: 'Variance value: {{variance()::.2f}} <-- should be 332.33' ``` + +## Function Dataset to Dataset + +### setMissingValues() +``` tracker +searchType: tag +searchTarget: meditation +folder: /diary +endDate: 2021-01-04 +summary: + template: 'Set missing values to -1 then do summation: {{sum( setMissingValues( dataset(0), -1 ) )::i}} <-- should be 2' +``` + +### Normalize() +``` tracker +searchType: tag +searchTarget: meditation +folder: /diary +endDate: 2021-01-04 +summary: + template: 'Set missing values to -1, do normalization then do summation: {{sum( normalize( setMissingValues(dataset(0), -1) ) )::i}} <-- sgiydk be 3' +``` \ No newline at end of file diff --git a/src/data.ts b/src/data.ts index 9fd2dd7..4fa6b70 100644 --- a/src/data.ts +++ b/src/data.ts @@ -199,6 +199,8 @@ export class Dataset implements IterableIterator { private lineInfo: LineInfo; private barInfo: BarInfo; + private isTmpDataset: boolean; + valueType: ValueType; private currentIndex = 0; // IterableIterator @@ -216,6 +218,9 @@ export class Dataset implements IterableIterator { this.numTargets = 0; this.lineInfo = null; this.barInfo = null; + + this.isTmpDataset = false; + this.valueType = query?.valueType; for (let ind = 0; ind < parent.getDates().length; ind++) { @@ -224,16 +229,20 @@ export class Dataset implements IterableIterator { } public cloneToTmpDataset() { - let tmpDataset = new Dataset(this.parent, null); - tmpDataset.name = "tmp"; - tmpDataset.values = [...this.values]; - tmpDataset.yMin = this.yMin; - tmpDataset.yMax = this.yMax; - tmpDataset.startDate = this.startDate.clone(); - tmpDataset.endDate = this.endDate.clone(); - tmpDataset.numTargets = this.numTargets; - tmpDataset.valueType = this.valueType; - return tmpDataset; + if (!this.isTmpDataset) { + let tmpDataset = new Dataset(this.parent, null); + tmpDataset.name = "tmp"; + tmpDataset.values = [...this.values]; + tmpDataset.yMin = this.yMin; + tmpDataset.yMax = this.yMax; + tmpDataset.startDate = this.startDate.clone(); + tmpDataset.endDate = this.endDate.clone(); + tmpDataset.numTargets = this.numTargets; + tmpDataset.isTmpDataset = true; + tmpDataset.valueType = this.valueType; + return tmpDataset; + } + return this; // already tmp dataset } public getName() { @@ -271,15 +280,20 @@ export class Dataset implements IterableIterator { public setValue(date: Moment, value: number) { let ind = this.parent.getIndexOfDate(date); // console.log(ind); - if (ind >= 0) { + + if (ind >= 0 && ind < this.values.length) { + // Set value this.values[ind] = value; + // Update yMin and yMax if (this.yMin === null || value < this.yMin) { this.yMin = value; } if (this.yMax === null || value > this.yMax) { this.yMax = value; } + + // Update startDate and endDate if (this.startDate === null || date < this.startDate) { this.startDate = date.clone(); } @@ -289,6 +303,11 @@ export class Dataset implements IterableIterator { } } + public recalculateMinMax() { + this.yMin = Math.min(...this.values); + this.yMax = Math.max(...this.values); + } + public getYMin() { return this.yMin; } diff --git a/src/expr.ts b/src/expr.ts index 2f98135..38671e6 100644 --- a/src/expr.ts +++ b/src/expr.ts @@ -10,7 +10,14 @@ type FnDatasetToValue = ( dataset: Dataset, renderInfo: RenderInfo ) => number | Moment | string; -type FnDatasetToDataset = (dataset: Dataset, renderInfo: RenderInfo) => Dataset; +type FnDatasetToDataset = ( + dataset: Dataset, + args: Array, + renderInfo: RenderInfo +) => Dataset | string; +type FnUniryOp = ( + u: number | Moment | Dataset +) => number | Moment | Dataset | string; type FnBinaryOp = ( l: number | Moment | Dataset, r: number | Moment | Dataset @@ -28,6 +35,10 @@ interface FnMapBinaryOp { [key: string]: FnBinaryOp; } +interface FnMapUniryOp { + [key: string]: FnUniryOp; +} + function checkDivisor(divisor: any) { // console.log("checking divior"); if (typeof divisor === "number") { @@ -52,7 +63,7 @@ function checkBinaryOperantType(left: any, right: any) { !window.moment.isMoment(left) && !(left instanceof Dataset) ) { - return "Error: invalide operant type"; + return "Error: invalid operant type"; } if ( typeof right !== "number" && @@ -443,6 +454,33 @@ const fnMapDatasetToValue: FnMapDatasetToValue = { }, }; +const fnMapUniryOp: FnMapUniryOp = { + "-": function (u) { + if (typeof u === "number") { + return -1 * u; + } else if (u instanceof Dataset) { + let tmpDataset = u.cloneToTmpDataset(); + tmpDataset.getValues().forEach(function (value, index, array) { + if (array[index] !== null) { + array[index] = -1 * value; + } + }); + tmpDataset.recalculateMinMax(); + return tmpDataset; + } + return "Error: unknown operation for '-'"; + }, + "+": function (u) { + if (typeof u === "number") { + return u; + } else if (u instanceof Dataset) { + let tmpDataset = u.cloneToTmpDataset(); + return tmpDataset; + } + return "Error: unknown operation for '+'"; + }, +}; + const fnMapBinaryOp: FnMapBinaryOp = { "+": function (l, r) { if (typeof l === "number" && typeof r === "number") { @@ -458,6 +496,7 @@ const fnMapBinaryOp: FnMapBinaryOp = { array[index] = null; } }); + tmpDataset.recalculateMinMax(); return tmpDataset; } else if (l instanceof Dataset && typeof r === "number") { // return Dataset @@ -469,6 +508,7 @@ const fnMapBinaryOp: FnMapBinaryOp = { array[index] = null; } }); + tmpDataset.recalculateMinMax(); return tmpDataset; } else if (l instanceof Dataset && r instanceof Dataset) { // return Dataset @@ -480,6 +520,7 @@ const fnMapBinaryOp: FnMapBinaryOp = { array[index] = null; } }); + tmpDataset.recalculateMinMax(); return tmpDataset; } return "Error: unknown operation for '+'"; @@ -498,6 +539,7 @@ const fnMapBinaryOp: FnMapBinaryOp = { array[index] = null; } }); + tmpDataset.recalculateMinMax(); return tmpDataset; } else if (l instanceof Dataset && typeof r === "number") { // return Dataset @@ -520,6 +562,7 @@ const fnMapBinaryOp: FnMapBinaryOp = { array[index] = null; } }); + tmpDataset.recalculateMinMax(); return tmpDataset; } return "Error: unknown operation for '-'"; @@ -538,6 +581,7 @@ const fnMapBinaryOp: FnMapBinaryOp = { array[index] = null; } }); + tmpDataset.recalculateMinMax(); return tmpDataset; } else if (l instanceof Dataset && typeof r === "number") { // return Dataset @@ -549,6 +593,7 @@ const fnMapBinaryOp: FnMapBinaryOp = { array[index] = null; } }); + tmpDataset.recalculateMinMax(); return tmpDataset; } else if (l instanceof Dataset && r instanceof Dataset) { // return Dataset @@ -560,6 +605,7 @@ const fnMapBinaryOp: FnMapBinaryOp = { array[index] = null; } }); + tmpDataset.recalculateMinMax(); return tmpDataset; } return "Error: unknown operation for '*'"; @@ -581,6 +627,7 @@ const fnMapBinaryOp: FnMapBinaryOp = { array[index] = null; } }); + tmpDataset.recalculateMinMax(); return tmpDataset; } else if (l instanceof Dataset && typeof r === "number") { // return Dataset @@ -592,6 +639,7 @@ const fnMapBinaryOp: FnMapBinaryOp = { array[index] = null; } }); + tmpDataset.recalculateMinMax(); return tmpDataset; } else if (l instanceof Dataset && r instanceof Dataset) { // return Dataset @@ -603,6 +651,7 @@ const fnMapBinaryOp: FnMapBinaryOp = { array[index] = null; } }); + tmpDataset.recalculateMinMax(); return tmpDataset; } return "Error: unknown operation for '/'"; @@ -624,6 +673,7 @@ const fnMapBinaryOp: FnMapBinaryOp = { array[index] = null; } }); + tmpDataset.recalculateMinMax(); return tmpDataset; } else if (l instanceof Dataset && typeof r === "number") { // return Dataset @@ -635,6 +685,7 @@ const fnMapBinaryOp: FnMapBinaryOp = { array[index] = null; } }); + tmpDataset.recalculateMinMax(); return tmpDataset; } else if (l instanceof Dataset && r instanceof Dataset) { // return Dataset @@ -646,6 +697,7 @@ const fnMapBinaryOp: FnMapBinaryOp = { array[index] = null; } }); + tmpDataset.recalculateMinMax(); return tmpDataset; } return "Error: unknown operation for '%'"; @@ -654,16 +706,42 @@ const fnMapBinaryOp: FnMapBinaryOp = { const fnMapDatasetToDataset: FnMapDatasetToDataset = { // min value of a dataset - normalize: function (dataset, renderInfo) { + normalize: function (dataset, args, renderInfo) { + // console.log("normalize"); + // console.log(dataset); let yMin = dataset.getYMin(); let yMax = dataset.getYMax(); - if (yMax > yMin) { + // console.log(`yMin/yMax: ${yMin}/${yMax}`); + if (yMin !== null && yMax !== null && yMax > yMin) { let normalized = dataset.cloneToTmpDataset(); normalized.getValues().forEach(function (value, index, array) { array[index] = (value - yMin) / (yMax - yMin); }); + normalized.recalculateMinMax(); + return normalized; + } + return "Error: invalid data range for function 'normalize'"; + }, + setMissingValues: function (dataset, args, renderInfo) { + // console.log("setMissingValues"); + // console.log(dataset); + // console.log(args); + if (args && args.length > 0) { + let missingValue = args[0]; + // console.log(missingValue); + let newDataset = dataset.cloneToTmpDataset(); + if (Number.isNumber(missingValue) && !Number.isNaN(missingValue)) { + newDataset.getValues().forEach(function (value, index, array) { + if (value === null) { + array[index] = missingValue as number; + } + }); + newDataset.recalculateMinMax(); + return newDataset; + } + return "Error: invalid arguments for function 'setMissingValues'"; } - return dataset; + return "Error: invalid arguments for function 'setMissingValues"; }, }; @@ -695,6 +773,14 @@ function evaluate(expr: jsep.Expression, renderInfo: RenderInfo): any { } return `Error: unknown function name '${identifierName}'`; + case "UnaryExpression": + let uniryExpr = expr as jsep.UnaryExpression; + let retUniryArg = evaluate(uniryExpr.argument, renderInfo); + if (typeof retUniryArg === "string") { + return retUniryArg; + } + return fnMapUniryOp[uniryExpr.operator](retUniryArg); + case "BinaryExpression": let binaryExpr = expr as jsep.BinaryExpression; let leftValue = evaluate(binaryExpr.left, renderInfo); @@ -759,10 +845,35 @@ function evaluate(expr: jsep.Expression, renderInfo: RenderInfo): any { return `Error: Too many arguments for function ${fnName}`; } else if (fnName in fnMapDatasetToDataset) { if (evaluatedArgs.length === 1) { - let arg = evaluatedArgs[0]; - if (typeof arg === "string") return arg; - if (arg instanceof Dataset) { - return fnMapDatasetToDataset[fnName](arg, renderInfo); + if (typeof evaluatedArgs[0] === "string") + return evaluatedArgs[0]; // error message + if (evaluatedArgs[0] instanceof Dataset) { + let dataset = evaluatedArgs[0]; + return fnMapDatasetToDataset[fnName]( + dataset, + null, + renderInfo + ); + } else { + return `Error: function ${fnName} only accept Dataset`; + } + } else if (evaluatedArgs.length > 1) { + if (typeof evaluatedArgs[0] === "string") { + return evaluatedArgs[0]; + } + if (evaluatedArgs[0] instanceof Dataset) { + let dataset = evaluatedArgs[0]; + return fnMapDatasetToDataset[fnName]( + dataset, + evaluatedArgs.filter(function ( + value: any, + index: number, + arr: any + ) { + return index > 0; + }), + renderInfo + ); } else { return `Error: function ${fnName} only accept Dataset`; } @@ -791,10 +902,11 @@ function resolve( // {{(?[\w+\-*\/0-9\s()\[\]%.]+)(::(?[\w+\-*\/0-9\s()\[\]%.:]+))?}} let strExprRegex = - "{{(?[\\w+\\-*\\/0-9\\s()\\[\\]%.]+)(::(?[\\w+\\-*\\/0-9\\s()\\[\\]%.:]+))?}}"; + "{{(?[\\w+\\-*\\/0-9\\s()\\[\\]%.,]+)(::(?[\\w+\\-*\\/0-9\\s()\\[\\]%.:]+))?}}"; let exprRegex = new RegExp(strExprRegex, "gm"); let match; while ((match = exprRegex.exec(text))) { + // console.log(match); let fullmatch = match[0]; if (exprMap.some((e) => e.source === fullmatch)) continue; From cbbaffcf79f9621ec482e7eeff5eb54785d6fe16 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 19 Jul 2021 13:19:45 +0800 Subject: [PATCH 017/277] Refactoring IGraph and ILegend --- src/bullet.ts | 2 +- src/data.ts | 83 +++++++++++++++++++++++++++++++++++------------- src/heatmap.ts | 2 +- src/main.ts | 16 +++++----- src/month.ts | 2 +- src/parsing.ts | 2 +- src/rendering.ts | 24 +++++++------- 7 files changed, 85 insertions(+), 46 deletions(-) diff --git a/src/bullet.ts b/src/bullet.ts index 9581ba1..0494dcd 100644 --- a/src/bullet.ts +++ b/src/bullet.ts @@ -7,7 +7,7 @@ import { Size, Transform, ChartElements, - OutputType, + GraphType, ValueType, } from "./data"; import * as helper from "./helper"; diff --git a/src/data.ts b/src/data.ts index 4fa6b70..b1ca997 100644 --- a/src/data.ts +++ b/src/data.ts @@ -13,7 +13,7 @@ export enum SearchType { TaskNotDone, } -export enum OutputType { +export enum GraphType { Line, Bar, Pie, @@ -628,11 +628,19 @@ export class CustomDatasetInfo { } } -export class OutputInfo { - constructor() {} +export interface IGraph { + GetGraphType(): GraphType; } -export class CommonChartInfo extends OutputInfo { +export interface ILegend { + showLegend: boolean; + legendPosition: string; + legendOrientation: string; + legendBgColor: string; + legendBorderColor: string; +} + +export class CommonChartInfo implements IGraph, ILegend { title: string; xAxisLabel: string; xAxisColor: string; @@ -645,15 +653,15 @@ export class CommonChartInfo extends OutputInfo { yMax: number[]; reverseYAxis: boolean[]; allowInspectData: boolean; + + // ILegend showLegend: boolean; legendPosition: string; legendOrientation: string; legendBgColor: string; legendBorderColor: string; - chartType: OutputType; constructor() { - super(); this.title = ""; this.xAxisLabel = "Date"; this.xAxisColor = ""; @@ -666,16 +674,17 @@ export class CommonChartInfo extends OutputInfo { this.yMax = []; // null, 2 elements this.reverseYAxis = []; // false, 2 elements this.allowInspectData = true; + + // ILegend this.showLegend = false; this.legendPosition = ""; // top, bottom, left, right this.legendOrientation = ""; // horizontal, vertical this.legendBgColor = ""; this.legendBorderColor = ""; - this.chartType = OutputType.Unknown; } - public GetChartType() { - return this.chartType; + public GetGraphType() { + return GraphType.Unknown; } } @@ -705,8 +714,8 @@ export class LineInfo extends CommonChartInfo { this.yAxisLocation = []; // left, for each target } - public GetChartType() { - return OutputType.Line; + public GetGraphType() { + return GraphType.Line; } } @@ -720,12 +729,12 @@ export class BarInfo extends CommonChartInfo { this.yAxisLocation = []; // left, for each target } - public GetChartType() { - return OutputType.Bar; + public GetGraphType() { + return GraphType.Bar; } } -export class PieInfo extends OutputInfo { +export class PieInfo implements IGraph, ILegend { title: string; data: string[]; dataColor: string[]; @@ -734,29 +743,49 @@ export class PieInfo extends OutputInfo { ratioInnerRadius: number; + // ILegend + showLegend: boolean; + legendPosition: string; + legendOrientation: string; + legendBgColor: string; + legendBorderColor: string; + constructor() { - super(); this.title = ""; this.data = []; this.dataColor = []; this.label = []; this.extLabel = []; this.ratioInnerRadius = 0.0; + + // ILegend + this.showLegend = false; + this.legendPosition = ""; // top, bottom, left, right + this.legendOrientation = ""; // horizontal, vertical + this.legendBgColor = ""; + this.legendBorderColor = ""; + } + + public GetGraphType() { + return GraphType.Pie; } } -export class SummaryInfo extends OutputInfo { +export class SummaryInfo implements IGraph { template: string; style: string; constructor() { - super(); this.template = ""; this.style = ""; } + + public GetGraphType() { + return GraphType.Summary; + } } -export class MonthInfo extends OutputInfo { +export class MonthInfo implements IGraph { mode: string; dataset: number[]; startWeekOn: string; @@ -783,7 +812,6 @@ export class MonthInfo extends OutputInfo { selectedDataset: number; constructor() { - super(); this.mode = "circle"; // circle, symbol this.dataset = []; this.startWeekOn = "Sun"; @@ -809,9 +837,13 @@ export class MonthInfo extends OutputInfo { this.selectedDate = ""; // selected date this.selectedDataset = null; // selected index of dataset } + + public GetGraphType() { + return GraphType.Month; + } } -export class HeatmapInfo { +export class HeatmapInfo implements IGraph { dataset: string; startWeekOn: string; orientation: string; @@ -827,9 +859,13 @@ export class HeatmapInfo { this.yMax = null; this.color = null; } + + public GetGraphType() { + return GraphType.Heatmap; + } } -export class BulletInfo extends OutputInfo { +export class BulletInfo implements IGraph { title: string; dataset: string; orientation: string; @@ -843,7 +879,6 @@ export class BulletInfo extends OutputInfo { markerColor: string; constructor() { - super(); this.title = ""; this.dataset = "0"; // dataset id or name this.orientation = "horizontal"; // or vertical @@ -856,6 +891,10 @@ export class BulletInfo extends OutputInfo { this.markerValue = 0; this.markerColor = ""; } + + public GetGraphType() { + return GraphType.Bullet; + } } export class Size { diff --git a/src/heatmap.ts b/src/heatmap.ts index 9531ba2..601e618 100644 --- a/src/heatmap.ts +++ b/src/heatmap.ts @@ -9,7 +9,7 @@ import { Size, Transform, ChartElements, - OutputType, + GraphType, ValueType, } from "./data"; import * as helper from "./helper"; diff --git a/src/main.ts b/src/main.ts index ab64ff2..6aa4f39 100644 --- a/src/main.ts +++ b/src/main.ts @@ -7,7 +7,7 @@ import { Datasets, Query, QueryValuePair, - OutputType, + GraphType, SearchType, TableData, RenderInfo, @@ -50,19 +50,19 @@ export default class Tracker extends Plugin { this.addCommand({ id: "add-line-chart-tracker", name: "Add Line Chart Tracker", - callback: () => this.addCodeBlock(OutputType.Line), + callback: () => this.addCodeBlock(GraphType.Line), }); this.addCommand({ id: "add-bar-chart-tracker", name: "Add Bar Chart Tracker", - callback: () => this.addCodeBlock(OutputType.Bar), + callback: () => this.addCodeBlock(GraphType.Bar), }); this.addCommand({ id: "add-summary-tracker", name: "Add Summary Tracker", - callback: () => this.addCodeBlock(OutputType.Summary), + callback: () => this.addCodeBlock(GraphType.Summary), }); } @@ -800,7 +800,7 @@ export default class Tracker extends Plugin { return this.app.workspace.getActiveViewOfType(MarkdownView).editor; } - addCodeBlock(outputType: OutputType): void { + addCodeBlock(outputType: GraphType): void { const currentView = this.app.workspace.activeLeaf.view; if (!(currentView instanceof MarkdownView)) { @@ -809,7 +809,7 @@ export default class Tracker extends Plugin { let codeblockToInsert = ""; switch (outputType) { - case OutputType.Line: + case GraphType.Line: codeblockToInsert = `\`\`\` tracker searchType: tag searchTarget: tagName @@ -822,7 +822,7 @@ line: yAxisLabel: Value \`\`\``; break; - case OutputType.Bar: + case GraphType.Bar: codeblockToInsert = `\`\`\` tracker searchType: tag searchTarget: tagName @@ -835,7 +835,7 @@ bar: yAxisLabel: Value \`\`\``; break; - case OutputType.Summary: + case GraphType.Summary: codeblockToInsert = `\`\`\` tracker searchType: tag searchTarget: tagName diff --git a/src/month.ts b/src/month.ts index c1de582..3b5b3ed 100644 --- a/src/month.ts +++ b/src/month.ts @@ -8,7 +8,7 @@ import { Size, Transform, ChartElements, - OutputType, + GraphType, ValueType, } from "./data"; import * as helper from "./helper"; diff --git a/src/parsing.ts b/src/parsing.ts index e4c2b49..2f05474 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -7,7 +7,7 @@ import { RenderInfo, SummaryInfo, Margin, - OutputType, + GraphType, LineInfo, PieInfo, MonthInfo, diff --git a/src/rendering.ts b/src/rendering.ts index 27e1d24..8b7a6b0 100644 --- a/src/rendering.ts +++ b/src/rendering.ts @@ -8,7 +8,7 @@ import { Size, Transform, ChartElements, - OutputType, + GraphType, ValueType, CommonChartInfo, LineInfo, @@ -368,7 +368,7 @@ function renderYAxis( yUpper = yMax + yExtent * 0.2; } // if it is bar chart, zero must be contained in the range - if (chartInfo.GetChartType() === OutputType.Bar) { + if (chartInfo.GetGraphType() === GraphType.Bar) { if (yUpper < 0.0) { yUpper = 0; } @@ -816,8 +816,8 @@ function renderLegend( renderInfo: RenderInfo, chartInfo: CommonChartInfo ) { - // console.log(renderInfo.legendPosition); - // console.log(renderInfo.legendOrientation); + // console.log(chartInfo.legendPosition); + // console.log(chartInfo.legendOrientation); // Get chart elements let svg = chartElements.svg; @@ -970,7 +970,7 @@ function renderLegend( let firstLabelY = firstMarkerY; if (chartInfo.legendOrientation === "vertical") { - if (chartInfo.GetChartType() === OutputType.Line) { + if (chartInfo.GetGraphType() === GraphType.Line) { // lines legend .selectAll("markers") @@ -1023,7 +1023,7 @@ function renderLegend( if (xDatasetIds.includes(i)) return; return (chartInfo as LineInfo).pointColor[i]; }); - } else if (chartInfo.GetChartType() === OutputType.Bar) { + } else if (chartInfo.GetGraphType() === GraphType.Bar) { // bars legend .selectAll("markers") @@ -1067,12 +1067,12 @@ function renderLegend( .style("alignment-baseline", "middle") .attr("class", "tracker-legend-label"); - if (chartInfo.GetChartType() === OutputType.Line) { + if (chartInfo.GetGraphType() === GraphType.Line) { nameLabels.style("fill", function (name: string, i: number) { if (xDatasetIds.includes(i)) return; return (chartInfo as LineInfo).lineColor[i]; }); - } else if (chartInfo.GetChartType() === OutputType.Bar) { + } else if (chartInfo.GetGraphType() === GraphType.Bar) { nameLabels.style("fill", function (name: string, i: number) { if (xDatasetIds.includes(i)) return; return (chartInfo as BarInfo).barColor[i]; @@ -1081,7 +1081,7 @@ function renderLegend( } else if (chartInfo.legendOrientation === "horizontal") { let currRenderPosX = 0.0; let currRenderPosX2 = 0.0; - if (chartInfo.GetChartType() === OutputType.Line) { + if (chartInfo.GetGraphType() === GraphType.Line) { // lines legend .selectAll("markers") @@ -1162,7 +1162,7 @@ function renderLegend( if (xDatasetIds.includes(i)) return; return (chartInfo as LineInfo).pointColor[i]; }); - } else if (chartInfo.GetChartType() === OutputType.Bar) { + } else if (chartInfo.GetGraphType() === GraphType.Bar) { // bars currRenderPosX = 0.0; legend @@ -1227,12 +1227,12 @@ function renderLegend( .style("alignment-baseline", "middle") .attr("class", "tracker-legend-label"); - if (chartInfo.GetChartType() === OutputType.Line) { + if (chartInfo.GetGraphType() === GraphType.Line) { nameLabels.style("fill", function (name: string, i: number) { if (xDatasetIds.includes(i)) return; return (chartInfo as LineInfo).lineColor[i]; }); - } else if (chartInfo.GetChartType() === OutputType.Bar) { + } else if (chartInfo.GetGraphType() === GraphType.Bar) { nameLabels.style("fill", function (name: string, i: number) { if (xDatasetIds.includes(i)) return; return (chartInfo as BarInfo).barColor[i]; From 31dc86d5b2b84bd379f794501c65e4a4ba694a03 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 20 Jul 2021 15:02:36 +0800 Subject: [PATCH 018/277] Render title and legend in pie chart --- examples/TestPieChart.md | 25 +++- src/data.ts | 2 + src/parsing.ts | 60 ++++++++- src/pie.ts | 256 ++++++++++++++++++++++++++++++++++++++- 4 files changed, 337 insertions(+), 6 deletions(-) diff --git a/examples/TestPieChart.md b/examples/TestPieChart.md index 8878229..54cf4cc 100644 --- a/examples/TestPieChart.md +++ b/examples/TestPieChart.md @@ -8,7 +8,7 @@ If numeric data not wrapped by single quotes searchType: task.done, task.notdone searchTarget: Say I love you, Say I love you pie: - title: Pie + title: Manual Input Data label: '{{2/30*100}}%, {{4/30*100}}%, {{6/30*100}}%, {{8/30*100}}%, {{10/30*100}}%' data: '2, 4, 6, 8, 10' dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' @@ -25,12 +25,29 @@ searchType: task.done, task.notdone searchTarget: Say I love you, Say I love you datasetName: Done, NotDone pie: - title: Pie + title: Manual Input Data data: '{{1 + 1}}, {{2 * 2}}, {{12/ 2}}, {{1+(2+3*2)-1}}, {{27%17}}' dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' ratioInnerRadius: 0.5 ``` +### Legend +``` tracker +searchType: task.done, task.notdone +searchTarget: Say I love you, Say I love you +datasetName: Done, NotDone +pie: + title: Manual Input Data + label: '{{2/30*100}}%, {{4/30*100}}%, {{6/30*100}}%, {{8/30*100}}%, {{10/30*100}}%' + data: '2, 4, 6, 8, 10' + dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' + dataName: A, B, C, D, E + ratioInnerRadius: 0.5 + showLegend: true + legendPosition: right + legendOrientation: vertical +``` + ## Data from Notes ``` tracker searchType: task.done, task.notdone @@ -38,7 +55,7 @@ searchTarget: Say I love you, Say I love you folder: diary datasetName: Done, NotDone pie: - title: Pie + title: Task Done and Not Done data: '{{sum(dataset(0))}},{{sum(dataset(1))}}' dataColor: '#4daf4a,#377eb8' ratioInnerRadius: 0.5 @@ -58,7 +75,7 @@ searchType: task.done, task.notdone searchTarget: Say I love you, Say I love you datasetName: Done, NotDone pie: - title: Pie + title: Task Done and Not Done label: '2%, 4%, 6%, 8%, 10%' extLabel: A, B, C, D data: '{{1 + 1}}, {{2 * 2}}, {{12/ 2}}, {{1+(2+3*2)-1}}, {{27%17}}' diff --git a/src/data.ts b/src/data.ts index b1ca997..39d0915 100644 --- a/src/data.ts +++ b/src/data.ts @@ -738,6 +738,7 @@ export class PieInfo implements IGraph, ILegend { title: string; data: string[]; dataColor: string[]; + dataName: string[]; label: string[]; extLabel: string[]; @@ -754,6 +755,7 @@ export class PieInfo implements IGraph, ILegend { this.title = ""; this.data = []; this.dataColor = []; + this.dataName = []; this.label = []; this.extLabel = []; this.ratioInnerRadius = 0.0; diff --git a/src/parsing.ts b/src/parsing.ts index 2f05474..d36c42b 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -1693,6 +1693,21 @@ export function getRenderInfoFromYaml( pie.dataColor = retDataColor; // console.log(pie.dataColor); + // dataName + let retDataName = getStringArrayFromInput( + "dataName", + yamlPie?.dataName, + numData, + "", + null, + true + ); + if (typeof retDataName === "string") { + return retDataName; // errorMessage + } + pie.dataName = retDataName; + // console.log(pie.dataName); + // label let retLabel = getStringArrayFromInput( "label", @@ -1729,9 +1744,52 @@ export function getRenderInfoFromYaml( } // console.log(pie.ratioInnerRadius); + // showLegend + if (typeof yamlPie?.showLegend === "boolean") { + pie.showLegend = yamlPie.showLegend; + } + + // legendPosition + if (typeof yamlPie?.legendPosition === "string") { + pie.legendPosition = yamlPie.legendPosition; + } else { + pie.legendPosition = "right"; + } + + // legendOrient + if (typeof yamlPie?.legendOrientation === "string") { + pie.legendOrientation = yamlPie.legendOrientation; + } else { + if ( + pie.legendPosition === "top" || + pie.legendPosition === "bottom" + ) { + pie.legendOrientation = "horizontal"; + } else if ( + pie.legendPosition === "left" || + pie.legendPosition === "right" + ) { + pie.legendOrientation = "vertical"; + } else { + pie.legendOrientation = "horizontal"; + } + } + // console.log(pie.legendPosition); + // console.log(pie.legendOrientation); + + // legendBgColor + if (typeof yamlPie?.legendBgColor === "string") { + pie.legendBgColor = yamlPie.legendBgColor; + } + + // legendBorderColor + if (typeof yamlPie?.legendBorderColor === "string") { + pie.legendBorderColor = yamlPie.legendBorderColor; + } + renderInfo.pie.push(pie); } // pie related parameters - // console.log(renderInfo.pi); + // console.log(renderInfo.pie); // summary related parameters for (let summaryKey of yamlSummaryKeys) { diff --git a/src/pie.ts b/src/pie.ts index 696d378..c157e1c 100644 --- a/src/pie.ts +++ b/src/pie.ts @@ -9,12 +9,13 @@ import { Size, Transform, ChartElements, - OutputType, + GraphType, ValueType, } from "./data"; import * as helper from "./helper"; import * as d3 from "d3"; import * as expr from "./expr"; +import { pie } from "d3"; function createAreas( chartElements: ChartElements, @@ -93,6 +94,255 @@ function renderTitle( if (!pieInfo.title) return; let titleSize = helper.measureTextSize(pieInfo.title, "tracker-title"); + + // Append title + let title = chartElements.graphArea + .append("text") + .text(pieInfo.title) // pivot at center + .attr("id", "title") + .attr( + "transform", + "translate(" + + renderInfo.dataAreaSize.width / 2.0 + + "," + + titleSize.height / 2.0 + + ")" + ) + .attr("height", titleSize.height) // for later use + .attr("class", "tracker-title"); + chartElements["title"] = title; + + // Expand parent areas + helper.expandArea(chartElements.svg, 0, titleSize.height); + helper.expandArea(chartElements.graphArea, 0, titleSize.height); + + // Move sibling areas + helper.moveArea(chartElements.dataArea, 0, titleSize.height); + + return; +} + +function renderLegend( + canvas: HTMLElement, + chartElements: ChartElements, + renderInfo: RenderInfo, + pieInfo: PieInfo +) { + // console.log("renderLegend"); + // console.log(piInfo.legendPosition); + // console.log(piInfo.legendOrientation); + + // Get chart elements + let svg = chartElements.svg; + let graphArea = chartElements.graphArea; + let dataArea = chartElements.dataArea; + let title = chartElements.title; + + // Get element width and height + let titleHeight = 0.0; + if (title) { + titleHeight = parseFloat(title.attr("height")); + } + + // Get names and their dimension + let names = pieInfo.dataName; + let nameSizes = names.map(function (n) { + return helper.measureTextSize(n, "tracker-legend-label"); + }); + let indMaxName = 0; + let maxNameWidth = 0.0; + for (let ind = 0; ind < names.length; ind++) { + if (nameSizes[ind].width > maxNameWidth) { + maxNameWidth = nameSizes[ind].width; + indMaxName = ind; + } + } + let maxName = names[indMaxName]; + let characterWidth = maxNameWidth / maxName.length; + let nameHeight = nameSizes[indMaxName].height; + let numNames = names.length; + + let xSpacing = 2 * characterWidth; + let ySpacing = nameHeight; + let markerWidth = 2 * characterWidth; + + // Get legend width and height + let legendWidth = 0; + let legendHeight = 0; + if (pieInfo.legendOrientation === "vertical") { + legendWidth = xSpacing * 3 + markerWidth + maxNameWidth; + legendHeight = (numNames + 1) * ySpacing; + } else if (pieInfo.legendOrientation === "horizontal") { + legendWidth = + (2 * xSpacing + markerWidth) * numNames + + xSpacing + + d3.sum(nameSizes, function (s, i) { + return s.width; + }); + legendHeight = ySpacing + nameHeight; + } + // console.log( + // `maxName: ${maxName}, characterWidth: ${characterWidth}, maxNameWidth: ${maxNameWidth}` + // ); + // console.log(`xSpacing:${xSpacing}, numNames: ${numNames}, markerWidth: ${markerWidth}`); + // console.log(`legendWidth: ${legendWidth}, legendHeight: ${legendHeight}`); + + // Calcualte lengendX and legendY + let legendX = 0.0; // relative to graphArea + let legendY = 0.0; + if (pieInfo.legendPosition === "top") { + // below title + legendX = renderInfo.dataAreaSize.width / 2.0 - legendWidth / 2.0; + legendY = titleHeight; + // Expand svg + helper.expandArea(svg, 0, legendHeight + ySpacing); + // Move dataArea down + helper.moveArea(dataArea, 0, legendHeight + ySpacing); + } else if (pieInfo.legendPosition === "bottom") { + // bellow x-axis label + legendX = renderInfo.dataAreaSize.width / 2.0 - legendWidth / 2.0; + legendY = titleHeight + renderInfo.dataAreaSize.height + ySpacing; + // Expand svg + helper.expandArea(svg, 0, legendHeight + ySpacing); + } else if (pieInfo.legendPosition === "left") { + legendX = 0; + legendY = + titleHeight + + renderInfo.dataAreaSize.height / 2.0 - + legendHeight / 2.0; + // Expand svg + helper.expandArea(svg, legendWidth + xSpacing, 0); + // Move dataArea right + helper.moveArea(dataArea, legendWidth + xSpacing, 0); + } else if (pieInfo.legendPosition === "right") { + legendX = renderInfo.dataAreaSize.width + xSpacing; + legendY = + titleHeight + + renderInfo.dataAreaSize.height / 2.0 - + legendHeight / 2.0; + // Expand svg + helper.expandArea(svg, legendWidth + xSpacing, 0); + } else { + return; + } + // console.log(`legendX: ${legendX}, legendY: ${legendY}`); + + let legend = chartElements.graphArea + .append("g") + .attr("id", "legend") + .attr("transform", "translate(" + legendX + "," + legendY + ")"); + // console.log('legendX: %d, legendY: %d', legendX, legendY); + + let legendBg = legend + .append("rect") + .attr("class", "tracker-legend") + .attr("width", legendWidth) + .attr("height", legendHeight); + if (pieInfo.legendBgColor) { + legendBg.style("fill", pieInfo.legendBgColor); + } + if (pieInfo.legendBorderColor) { + legendBg.style("stroke", pieInfo.legendBorderColor); + } + + let markerRadius = 5.0; + let firstMarkerX = xSpacing; + let firstMarkerY = nameHeight; + let firstLabelX = firstMarkerX + xSpacing + markerWidth; // xSpacing + 2 * xSpaing + let firstLabelY = firstMarkerY; + + if (pieInfo.legendOrientation === "vertical") { + // points + legend + .selectAll("markers") + .data(names) + .enter() + .append("circle") + .attr("cx", firstMarkerX + markerWidth / 2.0) + .attr("cy", function (name: string, i: number) { + return firstMarkerY + i * ySpacing; + }) + .attr("r", function (name: string, i: number) { + return markerRadius; + }) + .style("fill", function (name: string, i: number) { + return pieInfo.dataColor[i]; + }); + + // names + let nameLabels = legend + .selectAll("labels") + .data(names) + .enter() + .append("text") + .attr("x", firstLabelX) + .attr("y", function (name: string, i: number) { + return firstLabelY + i * ySpacing; + }) + .text(function (name: string, i: number) { + return name; + }) + .style("alignment-baseline", "middle") + .attr("class", "tracker-legend-label"); + + nameLabels.style("fill", function (name: string, i: number) { + return pieInfo.dataColor[i]; + }); + } else if (pieInfo.legendOrientation === "horizontal") { + let currRenderPosX = 0.0; + let currRenderPosX2 = 0.0; + + // points + currRenderPosX = 0.0; + legend + .selectAll("markers") + .data(names) + .enter() + .append("circle") + .attr("cx", function (name: string, i: number) { + if (i === 0) { + currRenderPosX = firstMarkerX + markerWidth / 2.0; + } else { + currRenderPosX += + nameSizes[i].width + xSpacing + markerWidth + xSpacing; + } + return currRenderPosX; + }) + .attr("cy", firstMarkerY) + .attr("r", function (name: string, i: number) { + return markerRadius; + }) + .style("fill", function (name: string, i: number) { + return pieInfo.dataColor[i]; + }); + + // names + currRenderPosX = 0.0; + let nameLabels = legend + .selectAll("labels") + .data(names) + .enter() + .append("text") + .attr("x", function (name: string, i: number) { + if (i === 0) { + currRenderPosX = firstLabelX; + } else { + currRenderPosX += + nameSizes[i].width + xSpacing + markerWidth + xSpacing; + } + return currRenderPosX; + }) + .attr("y", firstLabelY) + .text(function (name: string, i: number) { + return name; + }) + .style("alignment-baseline", "middle") + .attr("class", "tracker-legend-label"); + + nameLabels.style("fill", function (name: string, i: number) { + return pieInfo.dataColor[i]; + }); + } } function renderPie( @@ -281,4 +531,8 @@ export function renderPieChart( renderTitle(canvas, chartElements, renderInfo, pieInfo); renderPie(canvas, chartElements, renderInfo, pieInfo); + + if (pieInfo.showLegend) { + renderLegend(canvas, chartElements, renderInfo, pieInfo); + } } From 67bf1be41d025d905f857c1ca3fa7dce93054662 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 20 Jul 2021 15:27:11 +0800 Subject: [PATCH 019/277] Add parameter hideLabelLessThan --- src/data.ts | 2 ++ src/parsing.ts | 6 ++++++ src/pie.ts | 17 ++++++++++++++++- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/data.ts b/src/data.ts index 39d0915..28f4f5e 100644 --- a/src/data.ts +++ b/src/data.ts @@ -740,6 +740,7 @@ export class PieInfo implements IGraph, ILegend { dataColor: string[]; dataName: string[]; label: string[]; + hideLabelLessThan: number; extLabel: string[]; ratioInnerRadius: number; @@ -757,6 +758,7 @@ export class PieInfo implements IGraph, ILegend { this.dataColor = []; this.dataName = []; this.label = []; + this.hideLabelLessThan = 0.03; this.extLabel = []; this.ratioInnerRadius = 0.0; diff --git a/src/parsing.ts b/src/parsing.ts index d36c42b..5e2a0c7 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -1723,6 +1723,12 @@ export function getRenderInfoFromYaml( pie.label = retLabel; // console.log(pie.label); + // hideLabelLessThan + if (typeof yamlPie?.hideLabelLessThan === "number") { + pie.hideLabelLessThan = yamlPie.hideLabelLessThan; + } + // console.log(pie.hideLabelLessThan); + // extLabel let retExtLabel = getStringArrayFromInput( "extLabel", diff --git a/src/pie.ts b/src/pie.ts index c157e1c..ad0b5ab 100644 --- a/src/pie.ts +++ b/src/pie.ts @@ -391,6 +391,9 @@ function renderPie( } // console.log(labels); + // hideLabelLessThan + let hideLabelLessThan = pieInfo.hideLabelLessThan; + // extLabel let extLabels: Array = []; for (let strExpr of pieInfo.extLabel) { @@ -445,13 +448,25 @@ function renderPie( }) .attr("d", arc); + function getFraction(arcObj: any) { + // console.log(`start/end: ${arcObj.startAngle}/${arcObj.endAngle}`); + let fraction = (arcObj.endAngle - arcObj.startAngle) / (2.0 * Math.PI); + return fraction; + } + // label elements let labelElements = sectorsGroup .selectAll("label") .data(pie(values)) .enter() .append("text") - .text(function (d: any, i: number) { + .text(function (arcObj: any, i: number) { + let fraction = getFraction(arcObj); + // console.log(fraction); + // console.log(hideLabelLessThan); + if (fraction < hideLabelLessThan) { + return ""; + } return labels[i]; }) .attr("transform", function (d: any) { From 5aa1e98db425617cc8d0cdb856fefe04aafd4e21 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 20 Jul 2021 21:29:04 +0800 Subject: [PATCH 020/277] Set version to 1.9.0 --- manifest.json | 2 +- package.json | 2 +- versions.json | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 5ee61fa..4a7dc0c 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.8.2", + "version": "1.9.0", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package.json b/package.json index 5726fdd..fa0698a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.8.2", + "version": "1.9.0", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index 28f318c..443e500 100644 --- a/versions.json +++ b/versions.json @@ -15,5 +15,6 @@ "1.7.0": "0.9.12", "1.8.0": "0.9.12", "1.8.1": "0.9.12", - "1.8.2": "0.9.12" + "1.8.2": "0.9.12", + "1.9.0": "0.9.12" } From 5d45bc22869f071cc4eab6ae50fa0efe7eb2032f Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 20 Jul 2021 22:03:50 +0800 Subject: [PATCH 021/277] Add parameter showExtLabelOnlyIfNoLabel --- examples/TestPieChart.md | 28 +++++++++++++++++++++++++++ src/data.ts | 2 ++ src/parsing.ts | 6 ++++++ src/pie.ts | 42 ++++++++++++++++++++++++++++++---------- 4 files changed, 68 insertions(+), 10 deletions(-) diff --git a/examples/TestPieChart.md b/examples/TestPieChart.md index 54cf4cc..9c5f083 100644 --- a/examples/TestPieChart.md +++ b/examples/TestPieChart.md @@ -81,4 +81,32 @@ pie: data: '{{1 + 1}}, {{2 * 2}}, {{12/ 2}}, {{1+(2+3*2)-1}}, {{27%17}}' dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' ratioInnerRadius: 0.5 +``` + +## External Labels +``` tracker +searchType: task.done, task.notdone +searchTarget: Say I love you, Say I love you +datasetName: Done, NotDone +pie: + title: Task Done and Not Done + label: '2%, 4%, 6%, 8%, 10%' + extLabel: '2%, 4%, 6%, 8%, 10%' + data: '{{0.5}}, {{2 * 2}}, {{12/ 2}}, {{1+(2+3*2)-1}}, {{27%17}}' + dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' + ratioInnerRadius: 0.5 +``` + +``` tracker +searchType: task.done, task.notdone +searchTarget: Say I love you, Say I love you +datasetName: Done, NotDone +pie: + title: Task Done and Not Done + label: '2%, 4%, 6%, 8%, 10%' + extLabel: '2%, 4%, 6%, 8%, 10%' + data: '{{0.5}}, {{2 * 2}}, {{12/ 2}}, {{1+(2+3*2)-1}}, {{27%17}}' + dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' + ratioInnerRadius: 0.5 + showExtLabelOnlyIfNoLabel: true ``` \ No newline at end of file diff --git a/src/data.ts b/src/data.ts index 28f4f5e..a82b0dc 100644 --- a/src/data.ts +++ b/src/data.ts @@ -741,6 +741,7 @@ export class PieInfo implements IGraph, ILegend { dataName: string[]; label: string[]; hideLabelLessThan: number; + showExtLabelOnlyIfNoLabel: boolean; extLabel: string[]; ratioInnerRadius: number; @@ -760,6 +761,7 @@ export class PieInfo implements IGraph, ILegend { this.label = []; this.hideLabelLessThan = 0.03; this.extLabel = []; + this.showExtLabelOnlyIfNoLabel = false; this.ratioInnerRadius = 0.0; // ILegend diff --git a/src/parsing.ts b/src/parsing.ts index 5e2a0c7..a57cd9a 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -1744,6 +1744,12 @@ export function getRenderInfoFromYaml( pie.extLabel = retExtLabel; // console.log(pie.extLabel); + // showExtLabelOnlyIfNoLabel + if (typeof yamlPie?.showExtLabelOnlyIfNoLabel === "boolean") { + pie.showExtLabelOnlyIfNoLabel = yamlPie.showExtLabelOnlyIfNoLabel; + } + // console.log(pie.showExtLabelOnlyIfNoLabel); + // ratioInnerRadius if (typeof yamlPie?.ratioInnerRadius === "number") { pie.ratioInnerRadius = yamlPie.ratioInnerRadius; diff --git a/src/pie.ts b/src/pie.ts index ad0b5ab..a189aaa 100644 --- a/src/pie.ts +++ b/src/pie.ts @@ -409,6 +409,8 @@ function renderPie( } // console.log(extLabels); + let showExtLabelOnlyIfNoLabel = pieInfo.showExtLabelOnlyIfNoLabel; + // scale let colorScale = d3.scaleOrdinal().range(pieInfo.dataColor); @@ -491,8 +493,16 @@ function renderPie( .data(pieValues) .enter() .append("text") - .text(function (d: any, i: number) { - return extLabels[i]; + .text(function (arcObj: any, i: number) { + if (showExtLabelOnlyIfNoLabel) { + let fraction = getFraction(arcObj); + if (labels[i] === "" || fraction < hideLabelLessThan) { + return extLabels[i]; + } + return ""; + } else { + return extLabels[i]; + } }) .attr("transform", function (arcObj: any, i: number) { let posLabel = hiddenArc.centroid(arcObj); @@ -506,6 +516,15 @@ function renderPie( }) .attr("class", "tracker-tick-label"); + function drawConnectionLines(arcObj: any) { + let posLabel = arc.centroid(arcObj); // line insertion in the slice + let posMiddle = hiddenArc.centroid(arcObj); // line break: we use the other arc generator that has been built only for that + let posExtLabel = hiddenArc.centroid(arcObj); // Label position = almost the same as posB + let midAngle = getMidAngle(arcObj); + posExtLabel[0] = radius * 0.95 * (midAngle < Math.PI ? 1 : -1); // multiply by 1 or -1 to put it on the right or on the left + return [posLabel, posMiddle, posExtLabel]; + } + // Add lines between sectors and external labels let lines = sectorsGroup .selectAll("line") @@ -516,14 +535,17 @@ function renderPie( .style("fill", "none") .attr("stroke-width", 1) .attr("points", function (arcObj: any, i: number) { - //PieArcDatum - if (extLabels[i] !== "") { - let posLabel = arc.centroid(arcObj); // line insertion in the slice - let posMiddle = hiddenArc.centroid(arcObj); // line break: we use the other arc generator that has been built only for that - let posExtLabel = hiddenArc.centroid(arcObj); // Label position = almost the same as posB - let midAngle = getMidAngle(arcObj); - posExtLabel[0] = radius * 0.95 * (midAngle < Math.PI ? 1 : -1); // multiply by 1 or -1 to put it on the right or on the left - return [posLabel, posMiddle, posExtLabel]; + if (showExtLabelOnlyIfNoLabel) { + let fraction = getFraction(arcObj); + if (labels[i] === "" || fraction < hideLabelLessThan) { + if (extLabels[i] !== "") { + return drawConnectionLines(arcObj); + } + } + } else { + if (extLabels[i] !== "") { + return drawConnectionLines(arcObj); + } } }) .attr("class", "tracker-axis"); From 871bdf6ddc14462c0668b657b2d8af034233a341 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Wed, 21 Jul 2021 18:49:27 +0800 Subject: [PATCH 022/277] Fix the position of labels, external labels and connecting lines --- examples/TestPieChart.md | 12 +++---- src/pie.ts | 67 ++++++++++++++++++++++++++++++---------- 2 files changed, 57 insertions(+), 22 deletions(-) diff --git a/examples/TestPieChart.md b/examples/TestPieChart.md index 9c5f083..bf99c54 100644 --- a/examples/TestPieChart.md +++ b/examples/TestPieChart.md @@ -90,9 +90,9 @@ searchTarget: Say I love you, Say I love you datasetName: Done, NotDone pie: title: Task Done and Not Done - label: '2%, 4%, 6%, 8%, 10%' - extLabel: '2%, 4%, 6%, 8%, 10%' - data: '{{0.5}}, {{2 * 2}}, {{12/ 2}}, {{1+(2+3*2)-1}}, {{27%17}}' + label: '{{0.5/28.5*100}}%, {{4/28.5*100}}%, {{6/28.5*100}}%, {{8/28.5*100}}%, {{10/28.5*100}}%' + extLabel: '{{0.5/28.5*100}}%, {{4/28.5*100}}%, {{6/28.5*100}}%, {{8/28.5*100}}%, {{10/28.5*100}}%' + data: '0.5, 4, 6, 8, 10' dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' ratioInnerRadius: 0.5 ``` @@ -103,9 +103,9 @@ searchTarget: Say I love you, Say I love you datasetName: Done, NotDone pie: title: Task Done and Not Done - label: '2%, 4%, 6%, 8%, 10%' - extLabel: '2%, 4%, 6%, 8%, 10%' - data: '{{0.5}}, {{2 * 2}}, {{12/ 2}}, {{1+(2+3*2)-1}}, {{27%17}}' + label: '{{0.5/28.5*100}}%, {{4/28.5*100}}%, {{6/28.5*100}}%, {{8/28.5*100}}%, {{10/28.5*100}}%' + extLabel: '{{0.5/28.5*100}}%, {{4/28.5*100}}%, {{6/28.5*100}}%, {{8/28.5*100}}%, {{10/28.5*100}}%' + data: '0.5, 4, 6, 8, 10' dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' ratioInnerRadius: 0.5 showExtLabelOnlyIfNoLabel: true diff --git a/src/pie.ts b/src/pie.ts index a189aaa..ea9f0d6 100644 --- a/src/pie.ts +++ b/src/pie.ts @@ -394,6 +394,11 @@ function renderPie( // hideLabelLessThan let hideLabelLessThan = pieInfo.hideLabelLessThan; + // label sizes + let labelSizes = labels.map(function (n) { + return helper.measureTextSize(n, "tracker-tick-label"); + }); + // extLabel let extLabels: Array = []; for (let strExpr of pieInfo.extLabel) { @@ -409,6 +414,11 @@ function renderPie( } // console.log(extLabels); + // extLabel sizes + let extLabelSizes = labels.map(function (n) { + return helper.measureTextSize(n, "tracker-tick-label"); + }); + let showExtLabelOnlyIfNoLabel = pieInfo.showExtLabelOnlyIfNoLabel; // scale @@ -450,10 +460,13 @@ function renderPie( }) .attr("d", arc); - function getFraction(arcObj: any) { + function isLabelHidden(arcObj: any) { // console.log(`start/end: ${arcObj.startAngle}/${arcObj.endAngle}`); let fraction = (arcObj.endAngle - arcObj.startAngle) / (2.0 * Math.PI); - return fraction; + if (fraction < hideLabelLessThan) { + return true; + } + return false; } // label elements @@ -463,10 +476,7 @@ function renderPie( .enter() .append("text") .text(function (arcObj: any, i: number) { - let fraction = getFraction(arcObj); - // console.log(fraction); - // console.log(hideLabelLessThan); - if (fraction < hideLabelLessThan) { + if (isLabelHidden(arcObj)) { return ""; } return labels[i]; @@ -495,8 +505,7 @@ function renderPie( .append("text") .text(function (arcObj: any, i: number) { if (showExtLabelOnlyIfNoLabel) { - let fraction = getFraction(arcObj); - if (labels[i] === "" || fraction < hideLabelLessThan) { + if (labels[i] === "" || isLabelHidden(arcObj)) { return extLabels[i]; } return ""; @@ -507,7 +516,10 @@ function renderPie( .attr("transform", function (arcObj: any, i: number) { let posLabel = hiddenArc.centroid(arcObj); let midAngle = getMidAngle(arcObj); - posLabel[0] = radius * 0.99 * (midAngle < Math.PI ? 1 : -1); + + posLabel[0] = + (radius * 0.99 - extLabelSizes[i].width) * + (midAngle < Math.PI ? 1 : -1); return "translate(" + posLabel[0] + "," + posLabel[1] + ")"; }) .style("text-anchor", function (arcObj: any) { @@ -516,12 +528,36 @@ function renderPie( }) .attr("class", "tracker-tick-label"); - function drawConnectionLines(arcObj: any) { + function drawConnectionLines(arcObj: any, i: number) { + let labelWidth = labelSizes[i].width; + let extLabelWidth = extLabelSizes[i].width; + let labelHidden = isLabelHidden(arcObj); + let midAngle = getMidAngle(arcObj); + let posLabel = arc.centroid(arcObj); // line insertion in the slice let posMiddle = hiddenArc.centroid(arcObj); // line break: we use the other arc generator that has been built only for that let posExtLabel = hiddenArc.centroid(arcObj); // Label position = almost the same as posB - let midAngle = getMidAngle(arcObj); - posExtLabel[0] = radius * 0.95 * (midAngle < Math.PI ? 1 : -1); // multiply by 1 or -1 to put it on the right or on the left + + let distLabelToMiddle = Math.sqrt( + (posMiddle[0] - posLabel[0]) ** 2 + + (posMiddle[1] - posLabel[1]) ** 2 + ); + + if (labels[i] !== "") { + // shift posLabel + posLabel[0] = + posLabel[0] + + ((posMiddle[0] - posLabel[0]) * labelWidth) / distLabelToMiddle; + posLabel[1] = + posLabel[1] + + ((posMiddle[1] - posLabel[1]) * labelWidth) / distLabelToMiddle; + + // shift posExtLabel + posExtLabel[0] = + (radius * 0.99 - extLabelWidth - 3) * + (midAngle < Math.PI ? 1 : -1); // multiply by 1 or -1 to put it on the right or on the left + } + return [posLabel, posMiddle, posExtLabel]; } @@ -536,15 +572,14 @@ function renderPie( .attr("stroke-width", 1) .attr("points", function (arcObj: any, i: number) { if (showExtLabelOnlyIfNoLabel) { - let fraction = getFraction(arcObj); - if (labels[i] === "" || fraction < hideLabelLessThan) { + if (labels[i] === "" || isLabelHidden(arcObj)) { if (extLabels[i] !== "") { - return drawConnectionLines(arcObj); + return drawConnectionLines(arcObj, i); } } } else { if (extLabels[i] !== "") { - return drawConnectionLines(arcObj); + return drawConnectionLines(arcObj, i); } } }) From 0b51132c3bd1f4d5c5c1519bcce357219c708818 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Thu, 22 Jul 2021 16:26:03 +0800 Subject: [PATCH 023/277] Use two points instead of three points in connection lines in pie chart if necessary --- examples/TestPieChart.md | 13 +++++++++++++ src/pie.ts | 32 ++++++++++++++++++++++++-------- 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/examples/TestPieChart.md b/examples/TestPieChart.md index bf99c54..1316490 100644 --- a/examples/TestPieChart.md +++ b/examples/TestPieChart.md @@ -109,4 +109,17 @@ pie: dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' ratioInnerRadius: 0.5 showExtLabelOnlyIfNoLabel: true +``` + +``` tracker +searchType: task.done, task.notdone +searchTarget: Say I love you, Say I love you +datasetName: Done, NotDone +pie: + title: Task Done and Not Done + label: '{{0.5/28.5*100::i}}%, {{4/28.5*100::i}}%, {{6/28.5*100::i}}%, {{8/28.5*100::i}}%, {{10/28.5*100::i}}%' + extLabel: '{{0.5/28.5*100::i}}%, {{4/28.5*100::i}}%, {{6/28.5*100::i}}%, {{8/28.5*100::i}}%, {{10/28.5*100::i}}%' + data: '0.5, 4, 6, 8, 10' + dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' + ratioInnerRadius: 0.5 ``` \ No newline at end of file diff --git a/src/pie.ts b/src/pie.ts index ea9f0d6..1e2e1a9 100644 --- a/src/pie.ts +++ b/src/pie.ts @@ -356,7 +356,7 @@ function renderPie( let errorMessage = ""; let radius = renderInfo.dataAreaSize.width * 0.5; - let outterRadius = radius * 0.8; + let outterRadius = radius * 0.7; let innerRadius = outterRadius * pieInfo.ratioInnerRadius; // values @@ -528,7 +528,7 @@ function renderPie( }) .attr("class", "tracker-tick-label"); - function drawConnectionLines(arcObj: any, i: number) { + function getPointsForConnectionLines(arcObj: any, i: number) { let labelWidth = labelSizes[i].width; let extLabelWidth = extLabelSizes[i].width; let labelHidden = isLabelHidden(arcObj); @@ -537,20 +537,22 @@ function renderPie( let posLabel = arc.centroid(arcObj); // line insertion in the slice let posMiddle = hiddenArc.centroid(arcObj); // line break: we use the other arc generator that has been built only for that let posExtLabel = hiddenArc.centroid(arcObj); // Label position = almost the same as posB + // console.log(labels[i]); + // console.log(`label/middle/extLabel: ${posLabel}/${posMiddle}/${posExtLabel}`); - let distLabelToMiddle = Math.sqrt( + let distMiddleToLabel = Math.sqrt( (posMiddle[0] - posLabel[0]) ** 2 + (posMiddle[1] - posLabel[1]) ** 2 ); if (labels[i] !== "") { - // shift posLabel + // shift posLabel, toward the middle point posLabel[0] = posLabel[0] + - ((posMiddle[0] - posLabel[0]) * labelWidth) / distLabelToMiddle; + ((posMiddle[0] - posLabel[0]) * labelWidth) / distMiddleToLabel; posLabel[1] = posLabel[1] + - ((posMiddle[1] - posLabel[1]) * labelWidth) / distLabelToMiddle; + ((posMiddle[1] - posLabel[1]) * labelWidth) / distMiddleToLabel; // shift posExtLabel posExtLabel[0] = @@ -558,6 +560,20 @@ function renderPie( (midAngle < Math.PI ? 1 : -1); // multiply by 1 or -1 to put it on the right or on the left } + distMiddleToLabel = Math.sqrt( + (posMiddle[0] - posLabel[0]) ** 2 + + (posMiddle[1] - posLabel[1]) ** 2 + ); + + let distExtLabelToLabel = Math.sqrt( + (posExtLabel[0] - posLabel[0]) ** 2 + + (posExtLabel[1] - posLabel[1]) ** 2 + ); + + if (distMiddleToLabel > distExtLabelToLabel) { + // console.log("two points"); + return [posLabel, posExtLabel]; + } return [posLabel, posMiddle, posExtLabel]; } @@ -574,12 +590,12 @@ function renderPie( if (showExtLabelOnlyIfNoLabel) { if (labels[i] === "" || isLabelHidden(arcObj)) { if (extLabels[i] !== "") { - return drawConnectionLines(arcObj, i); + return getPointsForConnectionLines(arcObj, i); } } } else { if (extLabels[i] !== "") { - return drawConnectionLines(arcObj, i); + return getPointsForConnectionLines(arcObj, i); } } }) From 64efa451b2cbb3a07cae0201b8cd6acaca83c278 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Thu, 22 Jul 2021 20:05:14 +0800 Subject: [PATCH 024/277] Add file .hotreload to activate hot-reload plugin --- examples/.obsidian/plugins/obsidian-tracker/.hotreload | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 examples/.obsidian/plugins/obsidian-tracker/.hotreload diff --git a/examples/.obsidian/plugins/obsidian-tracker/.hotreload b/examples/.obsidian/plugins/obsidian-tracker/.hotreload new file mode 100644 index 0000000..e69de29 From 8cc4f4c6a82c7f71d7d109883b954298ef4827be Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 27 Jul 2021 16:37:02 +0800 Subject: [PATCH 025/277] Update documents --- README.md | 37 ++++----- docs/Commands.md | 2 +- docs/Concepts.md | 12 +-- docs/Examples.md | 5 +- docs/Expressions.md | 95 +++++++++++++++++++++ docs/InputParameters.md | 175 ++++++++++++++++++++++----------------- docs/MathOnDataset.md | 57 ------------- docs/Questions.md | 2 +- docs/ReleaseNotes.md | 5 ++ docs/RoadMap.md | 26 +++--- docs/TargetEvaluation.md | 2 +- 11 files changed, 242 insertions(+), 176 deletions(-) create mode 100644 docs/Expressions.md delete mode 100644 docs/MathOnDataset.md diff --git a/README.md b/README.md index 9bf79c7..a8d4094 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,31 @@ # Obsidian Tracker Plugin + ![GitHub release](https://img.shields.io/github/v/release/pyrochlore/obsidian-tracker) -This is an [Obsidian](https://obsidian.md/) plugin that helps you do tracking in notes and represent the collected data comprehensively. +This is an [Obsidian](https://obsidian.md/) plugin that helps you collect data from notes and represent it comprehensively. + +[Here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Examples.md) is a table containing simplified examples showing what you can track. + +## !!! Breaking Changes !!! -[Here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Examples.md) is a simplified table of examples showing what you can track. +From version 1.9.0, template variables, e.g. '{{sum}}', are deprecated. Instead, Tracker provide operators (+, -, *, /, %) and functions (dataset(), sum(), maxStreak(), ......etc) to help us do data processing. For users having code blocks from previous version, please replace '{{sum}}' by '{{sum()}}' or '{{sum(1)}}' by '{{sum(dataset(1))}}'. More information about the new expressions could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md). ## What's New -Version 1.8.0 -- Add a new `searchType` `task`, retrieving data from tasks ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTask.md)) -- Enhancement - - Month view ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestCalendar.md)) - - Add parameter `circleColorByValue` to show color based on the value - - Support multiple targets (dataset), change the dataset by clicking the header - - Add a button to show current month - - Accept ISO-8601 date as `dateFormat` ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md#iso-8601-date-format)) - - Relative date input for `startDate` and `endDate` ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md#relative-date-input-for-startdate-and-enddate)) -- Fixed missing dvField values at the last line of files - -Version 1.8.1 -- Fixed bugs while using month view with parameter `xDataset` - -Version 1.8.2 -- Fixed tasks searching not working for multiple targets + +Version 1.9.0 +- Add a new output type `pie`, rendering a pie chart ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md)) +- Allow expressions (operators and functions) as data inputs for output type `summary`, `bullet`, and `pie` (examples: [expression](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md), [summary](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestSummary.md), [bullet](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestBullet.md), [pie](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md)) +- Allow formatting evaluated expressions by a follwing format string ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md)) ## Usage + 1. Have some targets you want to track in daily notes. 2. Add a new note for displaying the tracker. -3. Add tracker code blocks manually or using [commands](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Commands.md). +3. Add tracker code blocks manually ([examples](https://github.com/pyrochlore/obsidian-tracker/tree/master/examples)) or using [commands](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Commands.md). 4. Switch the document view mode to 'Preview', then the code block will get rendered. - - For more use cases, please download and open the [examples](https://github.com/pyrochlore/obsidian-tracker/tree/master/examples) folder in obsidian with this plugin installed and enabled. ## More Details You May Want to Know @@ -40,7 +33,7 @@ For more use cases, please download and open the [examples](https://github.com/p - [Concepts](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Concepts.md): Explain how this plugin works and what to setup - [Target Evaluation](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/TargetEvaluation.md) - [Input Parameters](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/InputParameters.md) - - [Template Variables](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/TemplateVariables.md) + - [Expressions](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md) - [Examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Examples.md) - [Plugin Settings](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Settings.md) - [Release Notes](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/ReleaseNotes.md) diff --git a/docs/Commands.md b/docs/Commands.md index b40905b..94d5f5b 100644 --- a/docs/Commands.md +++ b/docs/Commands.md @@ -1,5 +1,5 @@ # Commands -To smooth the process of making trackers, obsidian-tracker provides three commands (There will be more in the future release), "Add Line Chart Tracker", "Add Bar Chart Tracker", and "Add Summary Tracker; Just type Ctrl/Cmd+P to activate the command palette, then type "Tracker" to search these commands. +To smooth the process of making trackers, obsidian-tracker provides three commands (There will be more in the future release), "Add Line Chart Tracker", "Add Bar Chart Tracker", and "Add Summary Tracker". Just type Ctrl/Cmd+P to activate the command palette, then type "Tracker" to search these commands. After a command is executed, a code block will be added to the next line below your cursor position for you. The added code block will contain the most frequently used keys. To see the complete list of input parameters and description, please check [this document](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/InputParameters.md). \ No newline at end of file diff --git a/docs/Concepts.md b/docs/Concepts.md index 18b62ff..159a718 100644 --- a/docs/Concepts.md +++ b/docs/Concepts.md @@ -16,14 +16,16 @@ To see the detail about the target evaluation, please check the document [Target ### Rendering Output -Currently, obsidian-tracker provides five kinds of rendering output: `line`, `bar`, `summary`, `bullet`, and `month`. You have to provide at least one output parameter in a code block. +Currently, obsidian-tracker provides five kinds of rendering output: `line`, `bar`, `summary`, `bullet`, `month` and `pie`. You have to provide at least one output parameter in a code block. -With output set to `line` or `bar`, Tracker plugin will generate a customizable chart. These charts are very good at seeing the variation of collected number in the notes. +With output type set to `line` or `bar`, Tracker plugin will generate a customizable chart. These charts are very good at seeing the variation of collected number in the notes. -With the `summary` output, a text block based on your '**template**' parameter will be created. You can use [pre-defined template variables](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/TemplateVariables.md) like '{{sum}}' or '{{maxStreak}}' in the template parameter, to get a statistical summary of collected data. +With the output type `summary`, a text block based on your '**template**' parameter will be created. You can use [expressions](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md) like '{{sum()}}' or '{{maxStreak()}}' in the template parameter, to get a statistical summary of collected data. -`bullet` output creates a [bullet chart](https://en.wikipedia.org/wiki/Bullet_graph) and could serve as a gauge showing the status (level, performance, progress) of a dataset. +Output type `bullet` creates a [bullet chart](https://en.wikipedia.org/wiki/Bullet_graph) and could serve as a gauge showing the status (level, performance, progress) of a dataset. -`month` output creates a month view with circled dates exceeding the given threshold and streaks showing how long it persisted. +Output type `month` creates a month view with circled dates exceeding the given threshold and streaks showing how long it persisted. + +Output type `pie` creates a pie chart. The `data` parameter should be applied for circular sectors you want to add. Parameter `label` and `extLabel` are used for displaying labels and `dataName` is used for the diplay names on legend. Detailed description for all parameters of the output types can be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/InputParameters.md). \ No newline at end of file diff --git a/docs/Examples.md b/docs/Examples.md index 30f832a..802ce5b 100644 --- a/docs/Examples.md +++ b/docs/Examples.md @@ -50,17 +50,18 @@ List of all examples - [Calendar](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestCalendar.md) - [Date Formats](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md) - [Dataview Inline Field](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDvField.md) +- [Expression](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md) - [File Meta](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestFileMeta.md) - [Legends](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestLegends.md) - [Multiple Targets / Multiple Values](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestMultipleTargetsMultipleValues.md) +- [Pie Chart](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md) - [Scaling and Positioning](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestScalingAndPositioning.md) - [Table](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTable.md) - [Task](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTask.md) -- [Template Variables](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTemplateVariables.md) - [Time Values](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTimeValues.md) - [Word Counting](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestWordCounting.md) - [X Dataset](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestXDataset.md) -- [Regular Expression](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TrackUsingRegex.md) +- [Regular Expression](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestRegex.md) - [Weight Tracker](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/WeightTracker.md) - [Wiki](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/WikiTracker.md) diff --git a/docs/Expressions.md b/docs/Expressions.md new file mode 100644 index 0000000..f17039a --- /dev/null +++ b/docs/Expressions.md @@ -0,0 +1,95 @@ +# Expressions + +Expressions could help us create new and meaningful data from the original collected data by using operators and functions. + +## !!! Breaking Changes !!! + +From version 1.9.0, template variables, e.g. '{{sum}}', are deprecated. Instead, Tracker provide operators (+, -, *, /, %) and functions (dataset(), sum(), maxStreak(), ......etc) to help us do data processing. For users having code blocks from previous version, please replace '{{sum}}' by '{{sum()}}' or '{{sum(1)}}' by '{{sum(dataset(1))}}'. + +## Where to Use + +Currently, we can only use expressions in some parameters. These includes `template` in `summary` output, `value` in `bullet` output, and `data` `label` `extLabel` in `pie` output. In future release, we might add a parameter `dataset` accepting expressions to be used with other output type. + +## How to Use + +Expressions should be be wrapped in curly brackets. By Using the combination of operatora and funtions listed beloew, Tracker will try to resolve the whole expression in brackets and then generate a number or a string according to what was requested. + +If the resolved expreasion is a string, we can optionally provide a format string by adding it right after the expression and two extra colons. + +The following tables show all the operators and functions available for now. Please make sure the input type and output type when you are combining them together. Examples could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md)). + +## List of Operators + +### Uniry Operators + +| Function | Description | Operant | Output | +|:---------|:------------|:--------|:------| +| + | positive | number or dataset | number or dataset | +| - | negative | number or dataset | number or dataset | + +### Binary Operators + +| Function | Description | Left Operant | Right Operant | Output | +|:---------|:------------|:-----|:------|:-------| +| + | plus | number or dataset | number or dataset | number or dataset | +| - | minus | number or dataset | number or dataset | number or dataset | +| * | multiply | number or dataset | number or dataset | number or dataset | +| / | divide | number or dataset | number or dataset | number or dataset | +| % | modulo | number or dataset | number or dataset | number or dataset | + +e.g. +number + number --> number +dataset + number --> dataset +number + dataset -> dataset +dataset + dataset --> dataset + +## List of Functions + +### Get dataset from index + +| Function(Input Args): Output | Description | +|:------------------|:-----------| +| dataset(id: number): Dataset | Get dataset from dataset id (the order in `searchTarget` | + +### Functions Accept Dataset and return a value + +If the input dataset is missing, it will use the first available Y dataset found. + +| Function(Input Args): Output | Description | +|:------------------|:-----------| +| min(dataset: Dataset): number | Minimum value of the dataset | +| minDate(dataset: Dataset): Date | Latest date of minimum value | +| max(dataset: Dataset): number | Maximum value of the dataset | +| maxDate(dataset: Dataset): Date | Latest date of maximum value | +| startDate(dataset: Dataset): Date | Start date of the dataset | +| endDate(dataset: Dataset): Date | End date of the dataset | +| sum(dataset: Dataset): number | Summation of values of the dataset | +| numTargets(dataset: Dataset): number | Total counts of targets | +| numDays(dataset: Dataset): number | Days from startDate to endDate | +| numDaysHavingData(dataset: Dataset): number | Number of days having data | +| maxStreak(dataset: Dataset): number | Maximum continuous days without breaks | +| maxStreakStart(dataset: Dataset): Date | Start date of the max streak | +| maxStreakEnd(dataset: Dataset): Date | End date of the max streak | +| maxBreaks(dataset: Dataset): number | Maximum break days | +| maxBreaksStart(dataset: Dataset): Date | Start date of the maximum break days | +| maxBreaksEnd(dataset: Dataset): Date | End date of the maximum break days | +| currentStreak(dataset: Dataset): number | Current continuous days | +| currentStreakStart(dataset: Dataset): Date | Start date of current streak | +| currentStreakEnd(dataset: Dataset): Date | End date of current streak | +| currentBreaks(dataset: Dataset): number | Current break days | +| currentBreaksStart(dataset: Dataset): Date | Start date of current breaks | +| currentBreaksEnd(dataset: Dataset): Date | End date of current breaks | +| average(dataset: Dataset): number | Average value of the dataset | +| median(dataset: Dataset): number | Median value of the dataset | +| variance(dataset: Dataset): number | Variance value of the dataset | + +### Functions Accept Dataset and Return Dataset + +| Function | Description | +|:---------|:-----------| +| normalize(dataset: Dataset): Dataset | rescale the Y values to [0, 1] | +| setMissingValues(dataset: Dataset, missingValue: number): Dataset | set the missing values | + +## Missing Values + +Notice that the missing values (null values) are ignored in function like sum or average. Moreover, a value plus a missing value will leads to null value (missing value). To avoid these, you can set those missing values to a value by using parameter `penalty` or use expression function `setMissingValues`. diff --git a/docs/InputParameters.md b/docs/InputParameters.md index 018d3be..44cf30b 100644 --- a/docs/InputParameters.md +++ b/docs/InputParameters.md @@ -1,7 +1,8 @@ # Input Parameters -Obsidian-tracker parses key-value pairs in your code block in YAML format and uses them as input parameters. The minimum requirements for parameters are `searchType`, `searchTarget` and one output parameter (`line`, `bar`, `frontmatter`, `fileMeta`, `wiki`, `table`, `task`, or `text`). -## Array Input +Obsidian-tracker parses key-value pairs in your code block in YAML format and uses them as input parameters. The minimum requirements for parameters are `searchType`, `searchTarget` and one output parameter (`line`, `bar`, `summary`, `bullet`, `month`, or `pie`). + +## Array Input for a Parameter Some of the parameters can accept more than one value for each target, thus the maximum number of values of the parameter equals the number of targets (NT). If the number of values is less than the number of targets, the plugin will use the previously provided value or use the default value if nothing is provided. @@ -17,126 +18,148 @@ These key-value pairs are placed under the code block root. | Key | Description | Number of Values | Default | |:--------|:-------|:-----------:|:------| -| `searchType` | The type of `searchTarget` (tag\|frontmatter\|wiki\|text\|dvField\|table\|filemeta\|task) | 1~NT | Must be provided | -| `searchTarget` | The target to search
[[detail](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/TargetEvaluation.md)] | NT (Number of Targets) | Must be provided | -| `folder` | The root path of notes to search | 1 | Root of this vault | -| `dateFormat` | The date format you are using
or use [iso-8601](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md#iso-8601-date-format) | 1 | 'YYYY-MM-DD' | -| `dateFormatPrefix` | The prefix before your dateFormat | 1 | '' | -| `dateFormatSuffix` | The suffix after your dateFormat | 1 | '' | -| `startDate` | The start date to collect data
accept [relative date](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md#relative-date-input-for-startdate-and-enddate) | 1 | Min date found | -| `endDate` | The end date of to collect data
accept [relative date](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md#relative-date-input-for-startdate-and-enddate) | 1 | Max date found | -| `datasetName` | The name of the dataset for a search target` | 1~NT | untitled | -| `separator` | The character to separate multiple values appearing in the search target | 1~NT | '/' | -| `xDataset` | The `searchTarget` of this index will be used as xDataset | 1~NT | -1 (use filename as xDataset) | -| `constValue` | The constant value of a target if no value attached | 1~NT | 1.0 | -| `ignoreAttachedValue` | Use a constant value even if the target has a value attached on (true\|false) | 1~NT | false | +| `searchType` | Type of `searchTarget` (tag\|frontmatter\|wiki\|text\|dvField\|table\|fileMeta\|task) | 1~NT | Must be provided | +| `searchTarget` | Target to search
[[detail](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/TargetEvaluation.md)] | NT (Number of Targets) | Must be provided | +| `folder` | Root path containing notes to search | 1 | Root of this vault | +| `dateFormat` | Date format
Use [Moment.js](https://momentjscom.readthedocs.io/en/latest/moment/04-displaying/01-format/) format or use [iso-8601](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md#iso-8601-date-format) | 1 | 'YYYY-MM-DD' | +| `dateFormatPrefix` | Prefix before your dateFormat | 1 | '' | +| `dateFormatSuffix` | Suffix after your dateFormat | 1 | '' | +| `startDate` | Start date to collect data from
accept [relative date](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md#relative-date-input-for-startdate-and-enddate) | 1 | Min date found | +| `endDate` | End date of to collect data
accept [relative date](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md#relative-date-input-for-startdate-and-enddate) | 1 | Max date found | +| `datasetName` | Name of the dataset for a search target` | 1~NT | untitled | +| `separator` | Character used to separate multiple values appearing in the search target | 1~NT | '/' | +| `xDataset` | Index of `searchTarget` used as xDataset | 1~NT | -1 (use filename as xDataset) | +| `constValue` | Constant value of a target if no value attached | 1~NT | 1.0 | +| `ignoreAttachedValue` | Use `constValue` even if the target has a value attached on (true\|false) | 1~NT | false | | `ignoreZeroValue` | Treat zero value as missing (true\|false) | 1~NT | false | | `accum` | Accumulatively sum the values over time (true\|false) | 1~NT | false | -| `penalty` | The value to use if the search target is missing on the day | 1~NT | | -| `valueShift` | The amount to shift the collected values | 1~NT | 0 | +| `penalty` | Value to use if the search target is missing on the day | 1~NT | | +| `valueShift` | Amount to shift for each collected value | 1~NT | 0 | | `valueType` | Not implemented yet | 1~NT | | -| `fixedScale` | The scaling factor apply to the chart | 1 | 1.0 | +| `fixedScale` | Uniform scaling factor to the graph dimensions | 1 | 1.0 | | `fitPanelWidth` | Auto-fit the width of the chart to the container | 1 | false | -| `margin` | The four margin (top|right|bottom|left) of the graph | 1~4 | 10 | +| `margin` | Four margins (top|right|bottom|left) of the graph | 1~4 | 10 | | `line` | A container key for parameters related to the line chart | | | | `bar` | A container key for parameters related to the bar chart | | | | `summary` | A container key for parameters related to the summary output | | | | `bullet` | A container key for parameters related to the bullet chart | +| `month` | A container key for parameters related to the month view | +| `pie` | A container key for parameters related to the pie chart | -### Parameters for Common Chart +### Parameters for Common Charts These key-value pairs should be placed under the key `line` or `bar`. | Key | Description | Number of Values | Default | |:--------|:-------|:-----------:|:------| -| `title` | The title of the chart | 1 | '' | -| `xAxisLabel` | The label of X axis | 1 | 'Date' | -| `xAxisColor` | The color of X axis | 1 | 'white'('black'*) | -| `xAxisLabelColor` | The color of X axis label | 1 | 'white'('black'*) | -| `yAxisLabel` | The label of Y axis | 1~2 | 'Value' | -| `yAxisColor` | The color of Y axis | 1~2 | 'white'('black'*) | -| `yAxisLabelColor` | The color of Y axis label | 1~2 | 'white'('black'*) | -| `yAxisUnit` | The unit displayed aside Y axis label | 1~2 | '' | -| `yMin` | The minimum value on Y axis | 1~2 |Minimum Y value found | -| `yMax` | The maximum value on Y axis | 1~2 | Maximum Y value found | -| `reverseYAxis` | Flip the Y Axis or not (true\|false) | 1~2 | false | +| `title` | Title of this chart | 1 | '' | +| `xAxisLabel` | Label of X axis | 1 | 'Date' | +| `xAxisColor` | Color of X axis | 1 | 'white'('black'*) | +| `xAxisLabelColor` | Color of X axis label | 1 | 'white'('black'*) | +| `yAxisLabel` | Label of Y axis | 1~2 | 'Value' | +| `yAxisColor` | Color of Y axis | 1~2 | 'white'('black'*) | +| `yAxisLabelColor` | Color of Y axis label | 1~2 | 'white'('black'*) | +| `yAxisUnit` | Unit displayed aside Y axis label | 1~2 | '' | +| `yMin` | Minimum value on Y axis | 1~2 |Minimum Y value found | +| `yMax` | Maximum value on Y axis | 1~2 | Maximum Y value found | +| `reverseYAxis` | Flip (upside down) the Y Axis or not (true\|false) | 1~2 | false | | `allowInspectData` | Show data value when mouse hovered (true\|false) | 1 | true | -| `showLegend` | Show legend (true\|false) | 1 | false | +| `showLegend` | Show/Hide legend (true\|false) | 1 | false | | `legendPosition` | Legend position (top\|bottom\|left\|right) | 1 | bottom | | `legendOrientation` | Legend orientation (vertical\|horizontal) | 1 | horizontal for bottom and top
vertical for left and right | | `legendBgColor` | Legend background color | 1 | none | | `legendBorderColor` | Legend border color | 1 | white | -### Parameters for Line Chart +### Parameters for a Line Chart These key-value pairs should be placed under the key `line`. | Key | Description | Number of Values | Default | |:--------|:-------|:-----------:|:------| -| `lineColor` | The color of the lines in chart | 1~NT | 'white'('black'*) | -| `lineWidth` | The width of the lines in chart | 1~NT | 1.5 | -| `showLine` | Show lines (true\|false) | 1~NT | true | -| `showPoint` | Show data points (true\|false) | 1~NT | true | -| `pointColor` | The color of data points | 1~NT | #69b3a2 | -| `pointBorderColor` | The border color of data points | 1~NT | #69b3a2 | -| `pointBorderWidth` | The border width of data points | 1~NT | 0 | -| `pointSize` | The size of data points | 1~NT | 3 | +| `lineColor` | Color of the lines in the chart | 1~NT | 'white'('black'*) | +| `lineWidth` | Width of the lines in the chart | 1~NT | 1.5 | +| `showLine` | Show/hide lines (true\|false) | 1~NT | true | +| `showPoint` | Show/hide data points (true\|false) | 1~NT | true | +| `pointColor` | Color of data points | 1~NT | #69b3a2 | +| `pointBorderColor` | Border color of data points | 1~NT | #69b3a2 | +| `pointBorderWidth` | Border width of data points | 1~NT | 0 | +| `pointSize` | Radius of data points | 1~NT | 3 | | `fillGap` | Connect points over missing data (true\|false) | 1~NT | false | -| `yAxisLocation` | The corresponding Y axis for a specific dataset (left\|right) | 1~NT | left | +| `yAxisLocation` | Corresponding Y axis for the dataset (left\|right) | 1~NT | left | -### Parameters for Bar Chart +### Parameters for a Bar Chart These key-value pairs should be placed under the key `bar`. | Key | Description | Number of Values | Default | |:--------|:-------|:-----------:|:------| -| `barColor` | The color of bars in chart | 1~NT | #69b3a2 | -| `yAxisLocation` | The corresponding y-axis for a specific dataset (left\|right) | 1~NT | left | +| `barColor` | Color of bars in the chart | 1~NT | #69b3a2 | +| `yAxisLocation` | Corresponding y-axis for the dataset (left\|right) | 1~NT | left | -### Parameters for Summary +### Parameters for a Summary These key-value pairs should be placed under the key `summary`. | Key | Description | Number of Values | Default | |:--------|:-------|:-----------:|:------| -| `template` | Text template (you may embed [template variables](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/TemplateVariables.md) | 1 | '' | -| `style` | CSS style applied the rendered text block | 1 | '' | +| `template` | Text template (you may embed [expressions](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md) | 1 | '' | +| `style` | CSS style applied to the rendered text block | 1 | '' | -### Parameters for Bullet Chart +### Parameters for a Bullet Chart These key-value pairs should be placed under the key `bullet`. | Key | Description | Number of Values | Default | |:--------|:-------|:-----------:|:------| -| `title` | The title of the chart | 1 | '' | -| `dataset` | The index of the dataset of your interest | 1 | 0 | +| `title` | Title of this chart | 1 | '' | +| `dataset` | Index of the dataset of your interest | 1 | 0 | | `orientation` | Bar orientation (horizontal\|vertical) | 1 | 'horizontal' | -| `value` | The actual value of interest
(you may embed [template variables](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/TemplateVariables.md) | 1 | '' | -| `valueUnit` | The unit of value displayed aside | 1 | '' | -| `valueColor` | The color of the value bar | 1 | '#69b3a2' | -| `range` | The ranges of color bands in background | N | [] | -| `rangeColor` | The color of range bands | N | [] | -| `showMarker` | Show marker or not (true\|false) | 1 | true | -| `markerValue` | The value of the markder | 1 | 0 | -| `markerColor` | The color of the marker | 1 | 'black' | - -### Parameters for Month View +| `value` | Actual value of interest
(you may embed [expressions](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md) | 1 | '' | +| `valueUnit` | Unit of the Y value displayed aside | 1 | '' | +| `valueColor` | Color of the value bar | 1 | '#69b3a2' | +| `range` | Data anges of defined by series of numbers | N | [] | +| `rangeColor` | Color of the range bands | N | [] | +| `showMarker` | Show/hide the marker line (true\|false) | 1 | true | +| `markerValue` | Value of the markder | 1 | 0 | +| `markerColor` | Color of the marker | 1 | 'black' | + +### Parameters for a Month View These key-value pairs should be placed under the key `month`. | Key | Description | Number of Values | Default | |:--------|:-------|:-----------:|:------| -| `dataset` | The index of the dataset of your interest | 1~NT | all indices of non-x searchTarget | +| `dataset` | Index of the dataset of your interest | 1~NT | all indices of non-x searchTarget | | `startWeekOn` | First day of a week ('Sun'\|'Mon') | 1 | 'Sun' | -| `threshold` | The threshold to determine showing a circle on a day or not | 1~NT | 0 | +| `threshold` | Threshold to determine showing a circle on a day or not | 1~NT | 0 | | `yMin` | Minimum value | 1~NT | Minimum value of the dataset | | `yMax` | Maximum value | 1~NT | Maximum value of the dataset | -| `showCircle` | Circle the day label if the collected value reach the threshold (value > threshold) | 1 | true | +| `showCircle` | Circle the day label if the collected value reach the threshold (value > `threshold`) | 1 | true | | `color` | Main color (can be override by other color parameters) | 1 | null | | `dimNotInMonth` | Dim the color for days not in current month | 1 | true | -| `showStreak` | Show streaks between circles | 1 | true | -| `showTodayRing` | Show a ring on the label today | 1 | true | -| `showSelectedValue` | Show the value on the selected day | 1 | true | -| `showSelectedRing` | Show a ring on the label of the selected day | 1 | true | -| `circleColor` | The color of circles | 1 | '#69b3a2' | -| `circleColorByValue` | Display colors based on the value | 1 | 1 | -| `headerYearColor` | The color of year text in header | 1 | 'white' | -| `headerMonthColor` | The color of the month text in header | 1 | 'white' | -| `dividingLineColor` | The color of the dividing line | 1 | '#69b3a2' | -| `todayRingColor` | The color of the ring on today | 1 | 'white' | -| `selectedRingColor` | The color of the ring on the selected day | 1 | 'firebrick' | -| `initMonth` | Initial month to show (YYYY-MM) | 1 | last month found | \ No newline at end of file +| `showStreak` | Show/hide streaks between circles | 1 | true | +| `showTodayRing` | Show/hide the ring on the label today | 1 | true | +| `showSelectedValue` | Show/hide the value on the selected day | 1 | true | +| `showSelectedRing` | Show/hide a ring on the label of the selected day | 1 | true | +| `circleColor` | Color of circles | 1 | '#69b3a2' | +| `circleColorByValue` | Display circle colors based on the value | 1 | false | +| `headerYearColor` | Color of the year text in header | 1 | 'white' | +| `headerMonthColor` | Color of the month text in header | 1 | 'white' | +| `dividingLineColor` | Color of the dividing line | 1 | '#69b3a2' | +| `todayRingColor` | Color of the ring on today | 1 | 'white' | +| `selectedRingColor` | Color of the ring on the selected day | 1 | 'firebrick' | +| `initMonth` | Initial month to show (YYYY-MM) | 1 | last month found | + +### Parameters for Pie Chart +These key-value pairs should be placed under the key `pie`. + +| Key | Description | Number of Values | Default | +|:--------|:-------|:-----------:|:------| +| `title` | Title of this chart | 1 | '' | +| `data` | Array of values, each represents the number or fraction of a circular sector | N | '' | +| `dataColor` | Color of each circular sector | N | '' | +| `dataName` | Name of each data shown on legend | N | | +| `label` | Labels for each data shown on circular sector | N | | +| `hideLabelLessThan` | Hide the label with its fraction number lower than | 1 | 0.03 | +| `showExtLabelOnlyIfNoLabel` | Show/hide the external label only if the correstponding label is missing or empty (true\|false) | 1 | false | +| `extLabel` | Labels for each data shown aside out of circular sector | N | | +| `ratioInnerRadius` | Ratio of donut inner radius to pie radius | 1 | 0 | +| `showLegend` | Show/hide legend (true\|false) | 1 | false | +| `legendPosition` | Legend position (top\|bottom\|left\|right) | 1 | right | +| `legendOrientation` | Legend orientation (vertical\|horizontal) | 1 | horizontal for bottom and top
vertical for left and right | +| `legendBgColor` | Legend background color | 1 | none | +| `legendBorderColor` | Legend border color | 1 | white | diff --git a/docs/MathOnDataset.md b/docs/MathOnDataset.md deleted file mode 100644 index 69b7d04..0000000 --- a/docs/MathOnDataset.md +++ /dev/null @@ -1,57 +0,0 @@ -# Template Variables - -## Importat!!! Changed!!! -Currently, there are two places you can use template variables. First is the `template` parameter under output type `summary`. The second one is the `value` parameter under output type `bullet`. For each template variable, the plugin will do calculations based on the collected dataset refereed, and render the output with variables replaced by calculated results. - -The following table shows all the template variables available for now. The "N" in the table is the ID (the order of a target in `searchTarget` parameter starting from zero) or the name (specified by the parameter `datasetName`) of a dataset. - -Examples using template variables could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/BloodPressureTracker.md). - -## List of Dataset Related Functions - -| Function | Description | -|:------------------|:-----------| -| dataset(id: number): Dataset | | -| min(dataset: Dataset): number | Minimum value of the dataset | -| minDate(dataset: Dataset): Date | Latest date of minimum value | -| max(dataset: Dataset): number | Maximum value of the dataset | -| maxDate(dataset: Dataset): Date | Latest date of maximum value | -| startDate(dataset: Dataset): Date | Start date of the dataset | -| endDate(dataset: Dataset): Date | End date of the dataset | -| sum(dataset: Dataset): number | Summation of values of the dataset | -| numTargets(dataset: Dataset): number | Total counts of targets | -| numDays(dataset: Dataset): number | Days from startDate to endDate | -| numDaysHavingData(dataset: Dataset): number | Number of days having data | -| maxStreak(dataset: Dataset): number | Maximum continuous days without breaks | -| maxStreakStart(dataset: Dataset): Date | Start date of the max streak | -| maxStreakEnd(dataset: Dataset): Date | End date of the max streak | -| maxBreaks(dataset: Dataset): number | Maximum break days | -| maxBreaksStart(dataset: Dataset): Date | Start date of the maximum break days | -| maxBreaksEnd(dataset: Dataset): Date | End date of the maximum break days | -| currentStreak(dataset: Dataset): number | Current continuous days | -| currentStreakStart(dataset: Dataset): Date | Start date of current streak | -| currentStreakEnd(dataset: Dataset): Date | End date of current streak | -| currentBreaks(dataset: Dataset): number | Current break days | -| currentBreaksStart(dataset: Dataset): Date | Start date of current breaks | -| currentBreaksEnd(dataset: Dataset): Date | End date of current breaks | -| average(dataset: Dataset): number | Average value of the dataset | -| median(dataset: Dataset): number | Median value of the dataset | -| variance(dataset: Dataset): number | Variance value of the dataset | - -## List of Binary Operation -| Function | Description | -|:------------------|:-----------| -| + | | -| - | | -| * | | -| / | | -| % | | - -## List of Deprecated Template Variables -| Template variable | Description | -|:------------------|:-----------| -| count | Use numTargets instead | -| days | Use numDays instead | -| lastStreak | Use currentSteak instead | - -Notice when doing calculations like sum or average, the missing values are ignored. You can set those missing values to zero by setting the value of key `penalty` to zero. Moreover, if the key `ignoreZeroValue` is assigned true, zero value will be ignored too. You can check these parameters [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/InputParameters.md) \ No newline at end of file diff --git a/docs/Questions.md b/docs/Questions.md index 285c8e5..90852c9 100644 --- a/docs/Questions.md +++ b/docs/Questions.md @@ -35,7 +35,7 @@ searchType: text searchTarget: 'tagName:\s(?[0-9]+)' ...... ``` - More cases can be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TrackUsingRegex.md) + More cases can be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestRegex.md) --- diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index ca3ecea..d927a33 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,10 @@ # Release Notes +## v1.9.0 +- Add a new output type `pie`, rendering a pie chart ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md)) +- Allow expressions (operators and functions) as data inputs for output type `summary`, `bullet`, and `pie` (examples: [expression](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md), [summary](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestSummary.md), [bullet](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestBullet.md), [pie](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md)) +- Allow formatting evaluated expressions by a follwing format string ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md)) + ## v1.8.2 - Fixed tasks searching not working for multiple targets diff --git a/docs/RoadMap.md b/docs/RoadMap.md index 9b21956..861a915 100644 --- a/docs/RoadMap.md +++ b/docs/RoadMap.md @@ -6,34 +6,38 @@ - [x] Support multiple targets and multiple values - [x] Add a parameter xDataset to identify targets to be used as x values - [x] Allow tracking time values + - [ ] Allow tracking date values - [x] Get data from a table - [x] Collect data from dataview plugin's inline fields - [x] Collect meta information from file - [x] Support tracking tasks - - [ ] Allow manual data input (x and y values) + - [ ] Allow manual data input (x and y values) in custom datasets - [ ] Allow forced value types - [ ] Allow using non-date x values + - [ ] Allow multiple points (different time stamp) from a single file - Output Type and Graph - - [x] New output type 'summary', analyzes the input data and represents it using a user-defined text template - - [x] New output type 'bar', rendering a bar chart - - [x] New output type 'bullet', rendering - - [x] New output type 'month', rendering a month view - - [ ] New output type 'heatmap', rendering a heatmap like Github activity chart + - [x] Implement output type 'summary', analyzes the input data and represents it using a user-defined text template + - [x] Implement output type 'bar', rendering a bar chart + - [x] Implement output type 'bullet', rendering + - [x] Implement output type 'month', rendering a month view + - [ ] Implement output type 'heatmap', rendering a heatmap like Github activity chart + - [x] Implement output type 'pie', rendering a pie chart - [x] Add parameters for adjusting the size of the graph - [ ] Multiple outputs from one code block - - [ ] Support graphs showing the correlation between sets of data. + - [ ] Support graphs showing the correlation between sets of data - [ ] Allow a graph drawing selected dataset. - - [ ] Evaluate template variables by arithmetics and predefined functions. + - [x] Allow expressions evaluating operators and functions + - [x] Allow format string for evaluated expressions - Helper - [x] Add Commands help create Tracker blocks. - - [ ] Add an 'Explode' button to the rendered blocks, it will replace the code block with the rendered result. + - [ ] Add an 'Explode' button to the rendered blocks, it will replace the code block with the rendered result - [ ] Add a helper panel for adding frequently used tracking targets to article. - Data Processing - - [ ] Allow arithmetics operation on dataset and generate new datasets + - [ ] Allow arithmetics operation on dataset and generate custom datasets - [ ] Add data post-process function, e.g. 'moving average' - Performance - [ ] Use PixiJS to do rendering -And more ... +And more ... Feature requests are welcome. P.S. Features may not be implemented in the order above. \ No newline at end of file diff --git a/docs/TargetEvaluation.md b/docs/TargetEvaluation.md index a771ecb..fdcdc9a 100644 --- a/docs/TargetEvaluation.md +++ b/docs/TargetEvaluation.md @@ -57,7 +57,7 @@ This search type helps you count wiki links in articles. For example, [[B|Link to B]] ### searchType: text -searchType `text` is the most powerful one among all. If you simply provide text like 'love', the number of occurrences of tags will be counted. You can provide a regular expression to search for a very complicated target by wrapping it in single quotes. If you want to retrieve a value from it, use the group name in the expression. To see more detail, see [this case](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TrackUsingRegex.md). +searchType `text` is the most powerful one among all. If you simply provide text like 'love', the number of occurrences of tags will be counted. You can provide a regular expression to search for a very complicated target by wrapping it in single quotes. If you want to retrieve a value from it, use the group name in the expression. To see more detail, see [this case](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestRegex.md). Multiple values in text search can be achieved by separate regex by comma and wrap them all in single quotes as follows: From 0a543a7be890101c295a7b54d3501223848d41a8 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 27 Jul 2021 18:25:09 +0800 Subject: [PATCH 026/277] Fix error if value parameter in bullet is of type number --- examples/TestBullet.md | 64 ++++++++++++++++++++++++++++++------------ src/parsing.ts | 3 ++ 2 files changed, 49 insertions(+), 18 deletions(-) diff --git a/examples/TestBullet.md b/examples/TestBullet.md index b71fee4..2db3601 100644 --- a/examples/TestBullet.md +++ b/examples/TestBullet.md @@ -1,5 +1,32 @@ # Test Bullet + +## Manual Input Data + +Manual input `value` as 12\.5 +``` tracker +searchType: tag +searchTarget: clean-up +folder: diary +endDate: 2021-01-31 +fixedScale: 1.1 +bullet: + title: "Clean Up" + dataset: 0 + orientation: horizontal + range: 10, 20, 40 + rangeColor: darkgray, silver, lightgray + value: 12.5 + valueUnit: times + valueColor: '#69b3a2' + showMarker: true + markerValue: 30 + markerColor: black +``` + +## Data from Notes + Horizontal bullet chart +value from expression function currentBreaks() ``` tracker searchType: tag searchTarget: clean-up @@ -8,19 +35,20 @@ endDate: 2021-01-31 fixedScale: 1.1 bullet: title: "Clean Up" - dataset: 0 + dataset: 0 orientation: horizontal - range: 10, 20, 40 - rangeColor: darkgray, silver, lightgray - value: "{{currentBreaks()}}" - valueUnit: times - valueColor: '#69b3a2' - showMarker: true - markerValue: 24 - markerColor: black + range: 10, 20, 40 + rangeColor: darkgray, silver, lightgray + value: "{{currentBreaks()}}" + valueUnit: times + valueColor: '#69b3a2' + showMarker: true + markerValue: 24 + markerColor: black ``` Vertical bullet chart +value from expression function sum() ``` tracker searchType: tag searchTarget: meditation @@ -28,16 +56,16 @@ folder: diary endDate: 2021-01-31 bullet: title: "Meditation" - dataset: 0 + dataset: 0 orientation: vertical - range: 30, 60, 100 - rangeColor: darkgray, silver, lightgray - value: "{{sum()}}" - valueUnit: times - valueColor: steelblue - showMarker: true - markerValue: 80 - markerColor: red + range: 30, 60, 100 + rangeColor: darkgray, silver, lightgray + value: "{{sum()}}" + valueUnit: times + valueColor: steelblue + showMarker: true + markerValue: 80 + markerColor: red ``` Please also check those search targets in markdown files under folder 'diary'. \ No newline at end of file diff --git a/src/parsing.ts b/src/parsing.ts index a57cd9a..13e5040 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -2125,6 +2125,9 @@ export function getRenderInfoFromYaml( if (typeof yamlBullet?.value === "string") { bullet.value = yamlBullet.value; } + else if (typeof yamlBullet?.value === "number") { + bullet.value = yamlBullet.value.toString(); + } // console.log(bullet.value); // value unit From 063c15d35de3b440762d0f7e173eee7dbe063fdd Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 27 Jul 2021 18:26:02 +0800 Subject: [PATCH 027/277] update examples --- docs/Examples.md | 1 + docs/Expressions.md | 64 ++++---- examples/ErrorMessages.md | 12 +- .../{TestDatasetMath.md => TestExpression.md} | 148 ++++++++++++++---- examples/{TrackUsingRegex.md => TestRegex.md} | 2 +- examples/TestSummary.md | 26 +++ 6 files changed, 181 insertions(+), 72 deletions(-) rename examples/{TestDatasetMath.md => TestExpression.md} (64%) rename examples/{TrackUsingRegex.md => TestRegex.md} (98%) create mode 100644 examples/TestSummary.md diff --git a/docs/Examples.md b/docs/Examples.md index 802ce5b..ee15fe7 100644 --- a/docs/Examples.md +++ b/docs/Examples.md @@ -56,6 +56,7 @@ List of all examples - [Multiple Targets / Multiple Values](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestMultipleTargetsMultipleValues.md) - [Pie Chart](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md) - [Scaling and Positioning](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestScalingAndPositioning.md) +- [Summary](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestSummary.md) - [Table](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTable.md) - [Task](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTask.md) - [Time Values](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTimeValues.md) diff --git a/docs/Expressions.md b/docs/Expressions.md index f17039a..e3c301d 100644 --- a/docs/Expressions.md +++ b/docs/Expressions.md @@ -47,48 +47,48 @@ dataset + dataset --> dataset ### Get dataset from index -| Function(Input Args): Output | Description | +| Function(InputType): OutputType | Description | |:------------------|:-----------| -| dataset(id: number): Dataset | Get dataset from dataset id (the order in `searchTarget` | +| dataset(number): Dataset | Get dataset from dataset id (the order in `searchTarget`) | ### Functions Accept Dataset and return a value -If the input dataset is missing, it will use the first available Y dataset found. +**If the input dataset is missing, it will use the first available Y dataset found.** -| Function(Input Args): Output | Description | +| Function(InputType): OutputType | Description | |:------------------|:-----------| -| min(dataset: Dataset): number | Minimum value of the dataset | -| minDate(dataset: Dataset): Date | Latest date of minimum value | -| max(dataset: Dataset): number | Maximum value of the dataset | -| maxDate(dataset: Dataset): Date | Latest date of maximum value | -| startDate(dataset: Dataset): Date | Start date of the dataset | -| endDate(dataset: Dataset): Date | End date of the dataset | -| sum(dataset: Dataset): number | Summation of values of the dataset | -| numTargets(dataset: Dataset): number | Total counts of targets | -| numDays(dataset: Dataset): number | Days from startDate to endDate | -| numDaysHavingData(dataset: Dataset): number | Number of days having data | -| maxStreak(dataset: Dataset): number | Maximum continuous days without breaks | -| maxStreakStart(dataset: Dataset): Date | Start date of the max streak | -| maxStreakEnd(dataset: Dataset): Date | End date of the max streak | -| maxBreaks(dataset: Dataset): number | Maximum break days | -| maxBreaksStart(dataset: Dataset): Date | Start date of the maximum break days | -| maxBreaksEnd(dataset: Dataset): Date | End date of the maximum break days | -| currentStreak(dataset: Dataset): number | Current continuous days | -| currentStreakStart(dataset: Dataset): Date | Start date of current streak | -| currentStreakEnd(dataset: Dataset): Date | End date of current streak | -| currentBreaks(dataset: Dataset): number | Current break days | -| currentBreaksStart(dataset: Dataset): Date | Start date of current breaks | -| currentBreaksEnd(dataset: Dataset): Date | End date of current breaks | -| average(dataset: Dataset): number | Average value of the dataset | -| median(dataset: Dataset): number | Median value of the dataset | -| variance(dataset: Dataset): number | Variance value of the dataset | +| min(Dataset): number | Minimum value of the dataset | +| minDate(Dataset): Date | Latest date of minimum value | +| max(Dataset): number | Maximum value of the dataset | +| maxDate(Dataset): Date | Latest date of maximum value | +| startDate(Dataset): Date | Start date of the dataset | +| endDate(Dataset): Date | End date of the dataset | +| sum(Dataset): number | Summation of values of the dataset | +| numTargets(Dataset): number | Total counts of targets | +| numDays(Dataset): number | Days from startDate to endDate | +| numDaysHavingData(Dataset): number | Number of days having data | +| maxStreak(Dataset): number | Maximum continuous days without breaks | +| maxStreakStart(Dataset): Date | Start date of the max streak | +| maxStreakEnd(Dataset): Date | End date of the max streak | +| maxBreaks(Dataset): number | Maximum break days | +| maxBreaksStart(Dataset): Date | Start date of the maximum break days | +| maxBreaksEnd(Dataset): Date | End date of the maximum break days | +| currentStreak(Dataset): number | Current continuous days | +| currentStreakStart(Dataset): Date | Start date of current streak | +| currentStreakEnd(Dataset): Date | End date of current streak | +| currentBreaks(Dataset): number | Current break days | +| currentBreaksStart(Dataset): Date | Start date of current breaks | +| currentBreaksEnd(Dataset): Date | End date of current breaks | +| average(Dataset): number | Average value of the dataset | +| median(Dataset): number | Median value of the dataset | +| variance(Dataset): number | Variance value of the dataset | ### Functions Accept Dataset and Return Dataset -| Function | Description | +| Function(InputType): OutputType | Description | |:---------|:-----------| -| normalize(dataset: Dataset): Dataset | rescale the Y values to [0, 1] | -| setMissingValues(dataset: Dataset, missingValue: number): Dataset | set the missing values | +| normalize(Dataset): Dataset | rescale the Y values to [0, 1] | +| setMissingValues(Dataset, number): Dataset | set the missing values | ## Missing Values diff --git a/examples/ErrorMessages.md b/examples/ErrorMessages.md index a986a5f..3df20b8 100644 --- a/examples/ErrorMessages.md +++ b/examples/ErrorMessages.md @@ -101,7 +101,7 @@ yAxisLabel allows only two inputs searchType: frontmatter, frontmatter searchTarget: bloodpressure[0], bloodpressure[1] line: - yAxisLabel: BP1, BP2, BP3 + yAxisLabel: BP1, BP2, BP3 ``` ## Output @@ -117,8 +117,8 @@ The Parameter 'lineColor' allows only one input for the single target searchType: tag searchTarget: weight line: - title: Line - lineColor: red, yellow + title: Line + lineColor: red, yellow ``` The parameter name should be 'title', not 'titles' @@ -136,7 +136,7 @@ searchType: table searchTarget: data/Tables[4][0], data/Tables[4][1] xDataset: 0 line: - lineColor: none, yellow + lineColor: none, yellow ``` @@ -159,7 +159,7 @@ summary: template: '{{1+}}' ``` -No data set found for id +No dataset found for id ``` tracker searchType: task searchTarget: Say I love you @@ -175,7 +175,7 @@ summary: template: '{{sum()/0}}' ``` -Invalid datarange +Invalid data range (data only contains 1 and null) ``` tracker searchType: tag searchTarget: meditation diff --git a/examples/TestDatasetMath.md b/examples/TestExpression.md similarity index 64% rename from examples/TestDatasetMath.md rename to examples/TestExpression.md index 959706c..68f1e9f 100644 --- a/examples/TestDatasetMath.md +++ b/examples/TestExpression.md @@ -1,7 +1,88 @@ -# Test Dataset Math +# Test Expression -# Function Dataset to Value -### min(Dataset): number +All examples here using the output type `summary`. +To see examples of `bullet` and `pie`, please check [bullet examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestBullet.md) and [pie examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md). + +## Operators + +### Dataset and number + +Dataset \+ number --> Dataset +``` tracker +searchType: dvField +searchTarget: dataviewTarget +folder: /diary +startDate: 2021-01-01 +endDate: 2021-01-03 +summary: + template: 'Maximum value: {{max() + 10::i}} <-- should be 48 + 10' +``` + +Dataset \- number --> Dataset +``` tracker +searchType: dvField +searchTarget: dataviewTarget +folder: /diary +startDate: 2021-01-01 +endDate: 2021-01-03 +summary: + template: 'Maximum value: {{max() / 2::i}} <-- should be 48 / 2' +``` + +Dataset \* number --> Dataset +``` tracker +searchType: dvField +searchTarget: dataviewTarget +folder: /diary +startDate: 2021-01-01 +endDate: 2021-01-03 +summary: + template: 'Maximum value: {{max() * 2::i}} <-- should be 48 * 2' +``` + +Dataset / number --> Dataset +``` tracker +searchType: dvField +searchTarget: dataviewTarget +folder: /diary +startDate: 2021-01-01 +endDate: 2021-01-03 +summary: + template: 'Maximum value: {{max() /2::i}} <-- should be 48 / 2' +``` + +Dataset % number --> Dataset +``` tracker +searchType: dvField +searchTarget: dataviewTarget +folder: /diary +startDate: 2021-01-01 +endDate: 2021-01-03 +summary: + template: 'Maximum value: {{max() % 5::i}} <-- should be 48 % 5' +``` + +### Dataset and Dataset + +Dataset1 \+ Dataset2 --> Dataset +==> Dataset[i] = Dataset1[i] + Dataset2[i] +``` tracker +searchType: dvField +searchTarget: dataviewTarget +folder: /diary +startDate: 2021-01-01 +endDate: 2021-01-03 +summary: + template: 'Maximum value: {{max(dataset(0) + dataset(0))::i}} <-- should be 48 + 48' +``` + +## Functions + +**If the input dataset is missing, it will use the first available Y dataset found.** + +### Functions Accept Dataset and Return a Value + +min(Dataset): number ``` tracker searchType: dvField searchTarget: dataviewTarget @@ -11,7 +92,7 @@ summary: template: 'Minimum value: {{min()::i}} <-- should be 12' ``` -### minDate(Dataset): Date +minDate(Dataset): Date ``` tracker searchType: dvField searchTarget: dataviewTarget @@ -21,7 +102,7 @@ summary: template: 'Latest date of minimum value: {{minDate()}} <-- should be 2021-01-03' ``` -### max(Dataset): number +max(Dataset): number ``` tracker searchType: dvField searchTarget: dataviewTarget @@ -31,7 +112,7 @@ summary: template: 'Maximum value: {{max()::i}} <-- should be 48' ``` -### maxDate() +maxDate(Dataset): Date ``` tracker searchType: dvField searchTarget: dataviewTarget @@ -41,7 +122,7 @@ summary: template: 'Latest date of maximum value: {{maxDate()}} <-- should be 2021-01-01' ``` -### startDate() +startDate(Dataset): Date ``` tracker searchType: dvField searchTarget: dataviewTarget @@ -51,7 +132,7 @@ summary: template: 'Start date: {{startDate()}} <-- should be 2021-01-01' ``` -### endDate() +endDate(Dataset): Date ``` tracker searchType: dvField searchTarget: dataviewTarget @@ -61,7 +142,7 @@ summary: template: 'End date: {{endDate()}} <-- should be 2021-01-03' ``` -### sum() +sum(Dataset): number ``` tracker searchType: tag searchTarget: meditation @@ -71,7 +152,7 @@ summary: template: 'Sum: {{sum()::i}} <-- should be 3' ``` -### numTargets() +numTargets(Dataset): number ``` tracker searchType: tag searchTarget: meditation @@ -81,7 +162,7 @@ summary: template: 'Number of targets: {{numTargets()::i}} <-- should be 3' ``` -### numDays() +numDays(Dataset): number ``` tracker searchType: tag searchTarget: meditation @@ -91,7 +172,7 @@ summary: template: 'Number of days: {{numDays()::i}} <-- should be 4' ``` -### numDaysHavingData() +numDaysHavingData(Dataset): number ``` tracker searchType: tag searchTarget: meditation @@ -101,7 +182,7 @@ summary: template: 'Number of days having data: {{numDaysHavingData()::i}} <-- should be 3' ``` -### maxStreak() +maxStreak(Dataset): number ``` tracker searchType: tag searchTarget: meditation @@ -111,7 +192,7 @@ summary: template: 'Maximum streak: {{maxStreak()::i}} <-- should be 5' ``` -### maxStreakStart() +maxStreakStart(Dataset): Date ``` tracker searchType: tag searchTarget: meditation @@ -121,7 +202,7 @@ summary: template: 'The start date of maximum streak: {{maxStreakStart()}} <-- should be 2021-01-02' ``` -### maxStreakEnd() +maxStreakEnd(Dataset): Date ``` tracker searchType: tag searchTarget: meditation @@ -131,7 +212,7 @@ summary: template: 'The end date of maximum streak: {{maxStreakEnd()}} <-- should be 2021-01-06' ``` -### maxBreaks() +maxBreaks(Dataset): number ``` tracker searchType: tag searchTarget: meditation @@ -141,7 +222,7 @@ summary: template: 'Maximum breaks: {{maxBreaks()::i}} <-- should be 2' ``` -### maxBreaksStart() +maxBreaksStart(Dataset): Date ``` tracker searchType: tag searchTarget: meditation @@ -151,7 +232,7 @@ summary: template: 'The start date of maximum breaks: {{maxBreaksStart()}} <-- should be 2021-01-07' ``` -### maxBreaksEnd() +maxBreaksEnd(Dataset): Date ``` tracker searchType: tag searchTarget: meditation @@ -161,7 +242,7 @@ summary: template: 'The end date of maximum breaks: {{maxBreaksEnd()}} <-- should be 2021-01-08' ``` -### currentStreak() +currentStreak(Dataset): number ``` tracker searchType: tag searchTarget: meditation @@ -171,7 +252,7 @@ summary: template: 'Latest streak: {{currentStreak()::i}} <-- should be 1' ``` -### currentStreakStart() +currentStreakStart(Dataset): Date ``` tracker searchType: tag searchTarget: meditation @@ -181,7 +262,7 @@ summary: template: 'The start date of current streak: {{currentStreakStart()}} <-- should be 2021-01-24' ``` -### currentStreakEnd() +currentStreakEnd(Dataset): Date ``` tracker searchType: tag searchTarget: meditation @@ -191,7 +272,7 @@ summary: template: 'The end date of current streak: {{currentStreakEnd()}} <-- should be 2021-01-24' ``` -### currentBreaks() +currentBreaks(Dataset): number ``` tracker searchType: tag searchTarget: meditation @@ -201,7 +282,7 @@ summary: template: 'Current breaks: {{currentBreaks()::i}} <-- should be 1' ``` -### currentBreaksStart() +currentBreaksStart(Dataset): number ``` tracker searchType: tag searchTarget: meditation @@ -211,7 +292,7 @@ summary: template: 'The start date of current breaks: {{currentBreaksStart()}} <-- should be 2021-01-22' ``` -### currentBreaksEnd() +currentBreaksEnd(Dataset): Date ``` tracker searchType: tag searchTarget: meditation @@ -221,7 +302,7 @@ summary: template: 'The end date of current breaks: {{currentBreaksEnd()}} <-- should be 2021-01-22' ``` -### average() +average(Dataset): number (48+25+12)/3 = 28.33 ``` tracker searchType: dvField @@ -232,7 +313,7 @@ summary: template: 'Average value: {{average()::.2f}} <-- should be 28.33' ``` -### median() +median(Dataset): number ``` tracker searchType: dvField searchTarget: dataviewTarget @@ -242,7 +323,7 @@ summary: template: 'Median value: {{median()::i}} <-- should be 25' ``` -### variance() +variance(Dataset): number https://mathworld.wolfram.com/SampleVariance.html ``` tracker searchType: dvField @@ -253,24 +334,25 @@ summary: template: 'Variance value: {{variance()::.2f}} <-- should be 332.33' ``` -## Function Dataset to Dataset +### Functions Accept Dataset and Return a Dataset -### setMissingValues() +normalize(Dataset): Dataset ``` tracker searchType: tag searchTarget: meditation folder: /diary endDate: 2021-01-04 summary: - template: 'Set missing values to -1 then do summation: {{sum( setMissingValues( dataset(0), -1 ) )::i}} <-- should be 2' + template: 'Set missing values to -1, do normalization then do summation: {{sum( normalize( setMissingValues(dataset(0), -1) ) )::i}} <-- sgiydk be 3' ``` -### Normalize() +setMissingValues(Dataset): Dataset ``` tracker searchType: tag searchTarget: meditation folder: /diary endDate: 2021-01-04 summary: - template: 'Set missing values to -1, do normalization then do summation: {{sum( normalize( setMissingValues(dataset(0), -1) ) )::i}} <-- sgiydk be 3' -``` \ No newline at end of file + template: 'Set missing values to -1 then do summation: {{sum( setMissingValues( dataset(0), -1 ) )::i}} <-- should be 2' +``` + diff --git a/examples/TrackUsingRegex.md b/examples/TestRegex.md similarity index 98% rename from examples/TrackUsingRegex.md rename to examples/TestRegex.md index 22471ec..b790cf3 100644 --- a/examples/TrackUsingRegex.md +++ b/examples/TestRegex.md @@ -1,4 +1,4 @@ -# Track Text using Regular Expression +# Search Text using Regular Expression **Important**!! 1. Use single quotes to wrap the regular expression, or use double quotes with all back slashes (escape characters) duplicated. diff --git a/examples/TestSummary.md b/examples/TestSummary.md new file mode 100644 index 0000000..b9c4c6d --- /dev/null +++ b/examples/TestSummary.md @@ -0,0 +1,26 @@ +# Test Summary + +## Multiple Lines + +``` tracker +searchType: tag +searchTarget: weight +folder: diary +summary: + template: "Minimum: {{min()}}kg\nMaximum: {{max()}}kg\nMedian: {{median()}}kg\nAverage: {{average()}}kg" +``` + +## Styling + +``` tracker +searchType: text +searchTarget: ⭐ +folder: diary +summary: + template: "I have {{sum()}} stars in total." + style: "font-size:20px;color:yellow;margin-left: 50px;margin-top:00px;" +``` + +## Using Expressions + +Please check [expression examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md) for more examples. \ No newline at end of file From 4ed2ea5c1b9bf9e31ab061b7f9c295c48487efc5 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 27 Jul 2021 19:16:02 +0800 Subject: [PATCH 028/277] Update examples --- examples/TestExpression.md | 13 ++++++ examples/TestPieChart.md | 87 +++++++++++++++----------------------- 2 files changed, 47 insertions(+), 53 deletions(-) diff --git a/examples/TestExpression.md b/examples/TestExpression.md index 68f1e9f..8d7f38c 100644 --- a/examples/TestExpression.md +++ b/examples/TestExpression.md @@ -5,6 +5,19 @@ To see examples of `bullet` and `pie`, please check [bullet examples](https://gi ## Operators +### number and number + +number \+ number --> number +``` tracker +searchType: dvField +searchTarget: dataviewTarget +folder: /diary +startDate: 2021-01-01 +endDate: 2021-01-03 +summary: + template: 'Maximum value: {{10 + 10::i}} <-- should be 20' +``` + ### Dataset and number Dataset \+ number --> Dataset diff --git a/examples/TestPieChart.md b/examples/TestPieChart.md index 1316490..6600c8f 100644 --- a/examples/TestPieChart.md +++ b/examples/TestPieChart.md @@ -1,37 +1,40 @@ # Test Pie Chart +Expressions could be used in parameter `data`, `label`, and `extLabel`. + ## Manual Input Data -### Numbers -To be fixed, -If numeric data not wrapped by single quotes + +### Numbers as Data +Pie chart with labels showing percentages ``` tracker searchType: task.done, task.notdone searchTarget: Say I love you, Say I love you pie: - title: Manual Input Data + title: Pie Chart label: '{{2/30*100}}%, {{4/30*100}}%, {{6/30*100}}%, {{8/30*100}}%, {{10/30*100}}%' - data: '2, 4, 6, 8, 10' + data: 2, 4, 6, 8, 10 dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' ratioInnerRadius: 0.5 ``` -### Expression -To be fixed, -If numeric data not wrapped by single quotes -2,4,6,8,10 -????? errro????? +### Arithmetic + +Pie chart with labels showing percentages ``` tracker searchType: task.done, task.notdone searchTarget: Say I love you, Say I love you datasetName: Done, NotDone pie: - title: Manual Input Data + title: Arithmetic data: '{{1 + 1}}, {{2 * 2}}, {{12/ 2}}, {{1+(2+3*2)-1}}, {{27%17}}' + label: '{{2/30*100}}%, {{4/30*100}}%, {{6/30*100}}%, {{8/30*100}}%, {{10/30*100}}%' dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' ratioInnerRadius: 0.5 ``` ### Legend + +Use parameter `dataName` for the name on the legend ``` tracker searchType: task.done, task.notdone searchTarget: Say I love you, Say I love you @@ -41,27 +44,30 @@ pie: label: '{{2/30*100}}%, {{4/30*100}}%, {{6/30*100}}%, {{8/30*100}}%, {{10/30*100}}%' data: '2, 4, 6, 8, 10' dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' - dataName: A, B, C, D, E + dataName: Data1, Data2, Data3, Data4, Data5 ratioInnerRadius: 0.5 - showLegend: true - legendPosition: right - legendOrientation: vertical + showLegend: true + legendPosition: right + legendOrientation: vertical ``` ## Data from Notes + +Using function dataset() to get Dataset then use function sum() to get the summation ``` tracker searchType: task.done, task.notdone searchTarget: Say I love you, Say I love you folder: diary datasetName: Done, NotDone pie: - title: Task Done and Not Done + title: Love is Action data: '{{sum(dataset(0))}},{{sum(dataset(1))}}' dataColor: '#4daf4a,#377eb8' - ratioInnerRadius: 0.5 + label: Say👍,Not Say💔 + ratioInnerRadius: 0.3 ``` - +Summary ``` tracker searchType: task.done, task.notdone searchTarget: Say I love you, Say I love you @@ -70,56 +76,31 @@ summary: template: "How many days I said love: {{sum(dataset(0))}}\nHow many days I didn't say love: {{sum(dataset(1))}}" ``` -``` tracker -searchType: task.done, task.notdone -searchTarget: Say I love you, Say I love you -datasetName: Done, NotDone -pie: - title: Task Done and Not Done - label: '2%, 4%, 6%, 8%, 10%' - extLabel: A, B, C, D - data: '{{1 + 1}}, {{2 * 2}}, {{12/ 2}}, {{1+(2+3*2)-1}}, {{27%17}}' - dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' - ratioInnerRadius: 0.5 -``` - ## External Labels ``` tracker searchType: task.done, task.notdone searchTarget: Say I love you, Say I love you datasetName: Done, NotDone pie: - title: Task Done and Not Done - label: '{{0.5/28.5*100}}%, {{4/28.5*100}}%, {{6/28.5*100}}%, {{8/28.5*100}}%, {{10/28.5*100}}%' - extLabel: '{{0.5/28.5*100}}%, {{4/28.5*100}}%, {{6/28.5*100}}%, {{8/28.5*100}}%, {{10/28.5*100}}%' + label: '{{0.5/28.5*100}}%, {{4/28.5*100}}%, {{6/28.5*100}}%, {{8/28.5*100}}%, {{10/28.5*100}}%' + extLabel: 'A {{0.5/28.5*100}}%, B, C, D, E' data: '0.5, 4, 6, 8, 10' dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' - ratioInnerRadius: 0.5 + ratioInnerRadius: 0.6 ``` +1. Label for the first data was hidden because the fraction of it is too small (less than 0.03, 3%). +2. showExtLabelOnlyIfNoLabel was set to true, thus the external label of the first data was shown due to the hidden label. ``` tracker searchType: task.done, task.notdone searchTarget: Say I love you, Say I love you datasetName: Done, NotDone pie: - title: Task Done and Not Done - label: '{{0.5/28.5*100}}%, {{4/28.5*100}}%, {{6/28.5*100}}%, {{8/28.5*100}}%, {{10/28.5*100}}%' - extLabel: '{{0.5/28.5*100}}%, {{4/28.5*100}}%, {{6/28.5*100}}%, {{8/28.5*100}}%, {{10/28.5*100}}%' + label: '{{0.5/28.5*100}}%, B {{4/28.5*100}}%, C {{6/28.5*100}}%, D {{8/28.5*100}}%, E {{10/28.5*100}}%' + extLabel: 'A {{0.5/28.5*100}}%, {{4/28.5*100}}%, {{6/28.5*100}}%, {{8/28.5*100}}%, {{10/28.5*100}}%' data: '0.5, 4, 6, 8, 10' dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' - ratioInnerRadius: 0.5 - showExtLabelOnlyIfNoLabel: true + ratioInnerRadius: 0.4 + hideLabelLessThan: 0.03 + showExtLabelOnlyIfNoLabel: true ``` - -``` tracker -searchType: task.done, task.notdone -searchTarget: Say I love you, Say I love you -datasetName: Done, NotDone -pie: - title: Task Done and Not Done - label: '{{0.5/28.5*100::i}}%, {{4/28.5*100::i}}%, {{6/28.5*100::i}}%, {{8/28.5*100::i}}%, {{10/28.5*100::i}}%' - extLabel: '{{0.5/28.5*100::i}}%, {{4/28.5*100::i}}%, {{6/28.5*100::i}}%, {{8/28.5*100::i}}%, {{10/28.5*100::i}}%' - data: '0.5, 4, 6, 8, 10' - dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' - ratioInnerRadius: 0.5 -``` \ No newline at end of file From f0189e3abbe166f4ec0bac401b78ef15fc3f0bfe Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 27 Jul 2021 19:36:34 +0800 Subject: [PATCH 029/277] Update TestPieChart.md --- examples/TestPieChart.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/TestPieChart.md b/examples/TestPieChart.md index 6600c8f..29102af 100644 --- a/examples/TestPieChart.md +++ b/examples/TestPieChart.md @@ -14,7 +14,7 @@ pie: label: '{{2/30*100}}%, {{4/30*100}}%, {{6/30*100}}%, {{8/30*100}}%, {{10/30*100}}%' data: 2, 4, 6, 8, 10 dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' - ratioInnerRadius: 0.5 + ratioInnerRadius: 0.0 ``` ### Arithmetic From 430c50160e5c3c0a16d6b4bd97a09e79fae08d46 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 27 Jul 2021 19:48:09 +0800 Subject: [PATCH 030/277] Remove examples of future features --- examples/TestCustomDataset.md | 48 ---------------------------------- examples/TestHeatmap.md | 12 --------- examples/TestMultipleGraphs.md | 24 ----------------- 3 files changed, 84 deletions(-) delete mode 100644 examples/TestCustomDataset.md delete mode 100644 examples/TestHeatmap.md delete mode 100644 examples/TestMultipleGraphs.md diff --git a/examples/TestCustomDataset.md b/examples/TestCustomDataset.md deleted file mode 100644 index 6ea1faf..0000000 --- a/examples/TestCustomDataset.md +++ /dev/null @@ -1,48 +0,0 @@ -# Test Custom Dataset - -## Normalize -``` tracker -searchType: tag -searchTarget: weight -folder: diary -startDate: 2021-01-01 -endDate: 2021-01-31 -dataset1: - name: A - xData: 1, 2 - yData: 3, 4 -dataset2: - name: B - xData: 5, 6 - yData: 7, 8 -line: - title: Weight Log - yAxisLabel: Weight - yAxisUnit: kg - lineColor: yellow -``` - -_ufB0*v^kV=Q9`#!kY})}ZvB5`zw8W0D2|u!p zL$@yR4pIL9@5&EQlq`j2- z6jdDDiS-*a|1`DVg6OEH)*3vwyG8 z4Po52`Z)o)jPl(>?W5c|9g)dozRu?$(^OUb`X&zpLf}Ji$JD!4JNNjbPIxyCfxc4Y-ws85ru#cO z2-N#1zY+vxR!Sv5_wq0i08lc@uMZNF{|y3=h;8VRN_p^w<|=(mHl#_){$(M`IXtDM z?pd98*O1b&BN2?=)-(5$<2ut7ip-YFmgA;xcHRvG%l4nsdHUy8v}!(JRjRa^cmml_ zKiA~>#}c6v*u_h;%$-+nEXYzI-}xh;4T06M^h2@v%9+?x&}Q zrIb4L0ko>lXor#V_KJ^0^)nm|ACkH~7BS zS9zuG^{2)>u77y386_|*2NxofHL{Bu^5*Ss8@}qf+A}?K;PjCFmplQA$HUs@c4=Gp za|Xw(hV%GjyK#=BnG4u7aX(UC`Q-8$O!|aZ1sh>f<{hy;kC(u8TMOYR*Ii&!Y%O=z zmiF26A2TTy&+)7K`muoUVdoOSiZHjUKdm`|DUtjsvJR|m_MGhX*AN_3+AHPivW+o4 z#)>!s_$9T?oKsI4IQ59yO(5^ZYoO_er+V`q4N{g=ODXLU^C6nVD$Umt<%_FMeC)(3 z3TEYuURJSi@~iUe01vk4MCs7J)X+Q-*w*d;!uCwW#ZcP-OuWIEi2P_zWS@HmJ3pzU zWvWGz!cKJ!Y>ut@}-1wL8#Cw1|>9TvG$3Naf+NQ7ru_tI1}<-5h9~C?KP|9=VLil|5e!h}n8z*`m~zlr;9 z2UO+8fWQmzDa_d#3z}~QZr)V6!eMWj=EC|Z&gR$<{e;1=wuPPu>E+{InS9k{!&hZ29ieB~P*m}5fF2zO8&nWZ-+|c1F zEOM-R^CcH9@NQtB{bH}Tj~jnaBiWdv{?-S>;ZQw7o)R`M{<)XU7u{#Q4S6{qayUCP z>b?2J3}@%#Fp(c(O8CTq5)F51`ugl}P+Lym1DsN-IElOjlsd@=#Wk(}@a{i5Hyee2 zFspd%h*M_0_gXxE&TPL)@W-4gyq_WOz2^%KNc({ftv)BmFunuts~P;oG|sHcKvhr2lo2%22G8d3OcSr7HK{g6Yt8v0&T=cC+UP2@Fb+(cl|R;V^z?;~JYFfV|Zx zns)a*zk!g~D|t`h@1cg^(vsqvSVkrm>52n z7(EuqrnGTr=Ic}&qwDK?w!|w0I-n4s8aL$sdTyRR5b+8|2z(Zl^GH`b;Q+Bl-do9q z7~Mf6Dm&AEgR{DoZQih?7nq`qN+xsIKz+pgCR~8YUR4ox z%|`2Q`Bh3a_v&jNDpr=I<`vDCVh<|ctH$5_@Xj>YFhNPX6d`|VZ!g5qRZ&(f{xRwS zP6lYR1ZL*AO{~40{v@5uNuc=6!$!yr8U3UtsrvZg*x$_pq-GsAKvg!T7fSK3z51s7Eqwd(SXpN81P3#Po>0$(|0zyWagiz% z;ANxSEA+D3(^>EpHZSLD8oxF(#P(@1Bxw+MC}~m>0gNuvoGUx5>j|TGDvBc;0Cs6P zQisaBp5N^YZ|?LB;?0zs+XLk#DY6cauo{fQ1+gOA%JuRuKk0ljADs10exwE9x-=yP zYM{QV5mWY9l^~+ev~q7VFriz6a9jQU)&Qcvl6&&d7R&!V@7az1VP=B3Js`KvDum+r z^A`Qwx6^y^pqHd{{SS~c3I|;Q+QCC(p#6-DS$JH3x%Qptx0C&%dG`pqZiKEbq4zTW zm>&CbU>FcQMtP;M@gRR#p`y&4@VWj(?Gv$ub9s=C{C)%TNaOB~(9i|vMrKYG*g6Ge ztRuY7-FinD{GiHN>?N)7>(+*rG1tnxJzT-w{Cqrw%+?ytm})RgF1sk9A*M2DvG)n0 zf6A|9rLAKy+5>L}yh6y&RLW(506EAzt$h@C3v|&!5Kn8_0(KtMc3noQ~qt#(+q<8WF3r0MvV%_TyRrVI^bG3B`veM9;zO(1;~o6y2N z`{r{6XNcWOImg|O%PUdr=7Udk42B9d7$Re;z}Q@@d)Uc2Q(tNdFbL#MOs$=9i~v(R zE~H?%hem#p-E_XQqnz(RkJr^E;620OUGK?vTRje`7$M_YpC;NF3a_i=J@1^opoc!N z4{@(3xlw=#fNj1)&4r-q8Lwsz=777FPY<83ARxt4oo|3`i=8fp*gh_lK>>1S>&y+m>R;o;1c7#8BUF^)d*tqW}%WtBl|Ezm{^%VrJ-Z7LmUtLG( z+ANcletc=NoAQx1A-im(=wAr75&q**ezxwFk{XA>h+MNH=&U{ybh-H zCM7%aa~5k}5-w_jJ6|*iWNvN{?QfW}PP2b_`U>MpoEMl=YtJ>*e38gRo zZgAA|*AdR`5*TZt6rr6r#lI4@_7U`d}2Ry#*7*KdnxMZ+N5Tb{SHdFayL3DQ+NYVrjXHFC0yEa;uv4Xh+ul-g8na;NcfhQC-YwLi+{b_vA zzn;`f7=f^ejt({Nyh=%SK*h)$&{=?1-y3%PAX^0%5e3o~@1oevq$Q@RE~Y7mac9?S zCTR60ci-RBHLmmx;J6m@hp)o1f z!*7n_7CPwZe1KCZDqMRL;C^|{IAi+m)Y}Jz7+!n%<1(75U6wGEdqyA(Y^*94-+78M z`@rfCVAjSP+N9grK9c*+JFoSC$QTdgzQ283_n^gTgsS@QCd*B)Ji+59ed~ZsF=D;A z$y447n{yHq^>_@{+X*N<3{xq%#A;D@*n>*p)hse6FKqzi7Wp7$sOGuBGV zofIn=^&0|s>eY1qr5lBs0zeEfA;-7^wZ{K+e#e3v_S!Zvj)#ckJ@Z^{QQzK;2#~(Dr#MMeSC^|_rZO3m?>pEJkt!U2NgqVsDyNDb>+FG_>uwAm+Q^&Ov!`&y^)*UjqR zJz(4X-T;hpsFxd5pAuQ6Mjv*AJOE}^*R8yTO^X2^%*v>rcA1VF?1CpdFA%|>=9HZt z06&P}@j2`{WCoh=3B%FPIw9Rjq_ri4($h8Byl!|3Ai%C!QRfjsvOd$i#Oo*jYpa;) za8;6x!;`v$T3Q=V7TLQ2)=Zin?@ZX`W5u+-kD#u(8+llZx>L*6WRMLrltSN2Y@F9b zs_}aT>6Q*Shi+Y$P2E50{*Fzp5>S`!as1PsOZ$Mj3lTL3AR(;Iel!F8o~RBW57E$5#; zc6mP{_~y?tpTmcBrEH!ro&|(}|8aTTx4^IGSAlZ-UjW-9ufcZhZ3gKM!XH@&PLv1z z1AYuh8aFwykz#583SoU^y6#ATcLeyk zzn1e>4NPr~A=gx9$SnLbumH#8t?_>hKVl0Py zjB9UO#vFwggYAzPq$qL&3F?vWfHc4*ZgtC)Zalf*caq>eQEUw+vhQif+!0_uaa<5+ zA^B^F$6u#A1mLcABLpGHzajiX-3i6p=soMo<4~0Ogz(Op^AH=~2Q679YIhr-xGCHl)2&q&lvn2^SN%6DnAqXZ zbGzU#s`kY_p@{W_w@~Q&YN3h^Nenh75;(XM<bZ&Xx5MKYYW&hOtk$kC(|1sEM zGY1k8JQ)Wkh?NdahbXsiJpX_`!kW%xmEpq07iJIe%2$#JE{?74W+Zcx03WaX9uXW8=2-#qkxq0~HDP$46Y z*w(}%^Z`a{z#+5)BVJ0N);uVR0D;#nw(-3BjJ6Nh>yn#yS#ms8Iz0^VQqU%`9zbpz zyi-m2UWZ|Qh7P3t7d7QK+U$SWytzI8n>`)FdcjlG)>5vM`x8^?>sRA#ibdVk!~{Jq%k@yX97KHclx=)hO2RIhM)nmaZ^0i$2I9>&Ygff zx2K%O&U!MT@A*GhSpUn$DB}Z18yC09y`>qoK0M$p2T`m&ZfBzG1gVlCA7Z zX>lrR%91S-6;UBuNcQYxolud;RtYIfsK~yKb;uG~hh!MrkQfGBt4$vPK#N)`h{;eeLVp?JsOF^nj*R`9Ni zXJJPoHaaiBP&z2K-^u%U@?t(`-9mf}8!aYYGVEkj%WdB!HV#v-h78%QWJXaJ%Ylnk zx7_eqG8nhJ$Fi3W@2q)D@6>3%Hn{oKqyC2z6ui@huX^Jw*Mq8M;0Wc#8-9p9!<wQwSy_b>xoF1ve_!Z7?kSAjielxhP|bWOKEMf zk&(OJ1;^{ekH;+L3w*^#C@dh9BPVJhM_;{*ty$FEw)$#r!K5a#=dgU4Al1WSM-Y03QZr!B-^EzTtLMONg7%%+XkXr(84}^gEH2_ z$$ur>JM#*!Q`eiv*glTddg%gp`l<nmA$jJ+vv(%gig+ z#4A@NLtTKKT}3J_V(!D<)hHS_KF|rPuvb`BK^^p-!6ckEf{a``lP>@qBox7N<&KxNB51p+HgD^m-b+b6=9x8_CSF~hg~>N7fjPXj z`LtJ82g)}|x$FV9qYbp7aK{m zM0ZDEWNnXdW$DUDPqwL-6rP*fWMx7?r{G}DIBwQ6Ki_50@-1CLi>r;1B)ngCu)i;W zvpXQV-$dtqvr*^;H}}Y^afXkz^j%GS?8RMeb$xfXhfLFSzHxc%vUJ#B)KWK4SEJYK zL&A^zcdxTy@A{)d?sQrm9Z~)8>BNWEbKTfxmzR;b={bZMXivOFOM`1Ze+K?V^!-cI zk|mwDBA1W={FWxlLfXMD0Wek4H-D3Gbc#(c(!{(W*Z|`dX;MXKBehyBmELEgzppx}I*Hdy!zR_KTfw+U3IBrh*o6C}Jz9 z$I^DO{SatQzk=YCqI^o7($qg%Z5ISBhUBS8Pqi~-OD`D?3BN=2-tb4kr-15e)oTA2 ziD6y&u#rA@W+|g85h~29+?|u^D9Qdx%-G(3hq6B7R@4>I>^t%N7s`HG>Gwri>C ztNSGbi)L;c1HD*wUP!Z^@A5K(UpL}Sr6=mWKp&ar`$X}hK1?r;a0}ur!~C_w1S^;p zy1Vn}w&Aa>cSjamExTgogA-&7EUhlzi_6wp$#AJB#2p>34qOhg&L(^0KW;+8I`HUz zl=SxaSW8&ER#fDRkJrcOl~PK3Qcb=|DDwu4>-&x=M(3dTROWk7p%%@7k9p?K8qmTz(^39YL9rprea?rZDI+gvD%4d zVT3YBnD}CM6I!pzZm87d^9lQo2YF%3WG^DCEbyM3!q(hsT7(SR3q&PJ5LI9E?LV<| z{bR{qeJsT}7Blac-6LJq_;=f`?4^4PlV$qP4~61Q-__Q7#_Y8hj}i4>kmtsUFI_P< znnx{)8oWiX#@z@0tyFW$^go=NefTatb$`os<&>yseRMNsM^sDGmy7n|dauc28%-0jEWa>d zlWfA6YTjwA)oACpm~O(^{qTY-JwS$GUR`aXxPjp>wc)b!gCWhMih2z56U)>S) z(HJwa$J8)-+{~jk#yxL5aw009wn^5j9YJ_86a zgv*QZB_CWPajBavaGJUuR(ThXQa2pT`ihKo9M8Fhv7F3kUTVIZiNzrRk8}FVrRh?O zd5rk4F^P6hJQRPro|vnaUK>*z(&BaNXbsl3 z?)i6{7MsDWx*DYGsiipOtKf8qxX4ea4AdSq*wurc%(K6|t^|OkD@S;v{x2Ds><=D*5K?55# z;2x2yN44--smY0Ow5hu*Tv|zXFl)JQde^8J2I5d7ZGSgoZT#-k+1mBSPUyh;HJWZ@WxpXD^+W6&IuNZaU%6--un*YgA?e$<5YIW@5QK_1Ar;w{|pa(c2Dmi*j z9#OEq)8XW8yzZ80?%CWKt=dj>!$5O^?Cw8RVhfsXiFtI`u|7#+#U0(K5DMX_^X&VF zYxLAj5(s01Z*iFkAv4b#cdF|n0v(K`B0qbX44+v>Soi9di0cp2MQ=4i)O%-H32&k@zM9#gJlz@bqautpV%^#<+|w~Q(0w@8zQxh14h&1n$<1=ni zif)cEnzu$B)^1tptyw5&Sy}W&IQE@$4@QMClO_y)#C6tS!d>F-?1m+|sNG{(RIZ*b zt1`kYn~pfScd~!I_|)5)ORuDwiU&01Yp-MY=%)pDPPF>ngbehNU8vB(2K%gocs$!( zWMj%g$XtCW<&)VvrXjgGwl!cZ?uZCWKg^@6H*rRy>syxZo17oDKNg>kb;ETjehsMVA3^*c#7t&|=LB|IXIzYF`x4o`+D<`sC&k}@@}<@I}9 zajO4L;vT=lP5TmiN}#WWh+L#7$pV+P-0bB)X9j5`FI$UyKI}-N_7Px8%Sm}hql_hv zyP6Pl*(|%BQK>TJ-Jf&#Lft?RZ{+U+qwK~PpDgEMIvw<7UiA_#Me;~dWf&qRVrYyb zUe^{5ak;a`IZ*_?&sk~X2B(usD{KKWFQ3(Sdgfs?P8gvG;ntvQY{fB4 zGTl<1yas2_9v_^&j$dq;OmLPRgq0wqpB~8;u;58-M|w(LCMCR-)X(r4H>>(pB0)#Shh}Wn#uz^GS7|r9-gWptl5!vAYEu z_|v-8M%3PJa?q{GadP*wxPE*rEXSkW@%3tC3xFG6I|s`bFGwu2Jf5<#=PN&ee4NFD z{rHh)cXk@q_^VD$t@rzq|)>=^uLpV^|G#LG#z&)5>HDM)4c!1We-y=lQf7 z4b$BfaL$^DvrAr6pThLAvVVfpt6scokRhPpNcl`~xu5+S`uW+uUMnTkb&-#= zZR!=8qFqi-$m=jE**F0TSDu&7EOXF$5UW$*6UZ{JtO@hG(ou3oO%;CBEC6oDkIAU*?7LRXA}Ke+Hj6E zAl<@gr<7r#k9|eIm|+Wmr41?g#Q)`u!|7i2MSDuMO{FlA`t!1PsblS{3waHo4g@jC z>+zn2uCvlTL@oZ**w;>bLtM871T3wxjq`&>rcxIQ7%)OU2zBWvl}rG6eKEzfuJ%s8 zzS_e4^YCgtG#V+g1oJ`O=9KF4M|)O0(KeE{6q@7DyLWURD_6FC&P^!0-UNA!II(;^ z)|qY~+4b9p?Y2c(B)hpy;`o`OxmMlao7@VxLD3@m(rsld)sNZ_ofgt;SbVVVMbJpt zlswlcGoa@MSDoU;xi)_S^bhX>tZ|IHxsX`8Vd#N57rczOS+qqo_GAKBuu0*t6SkCR zc{7NmTh)jY@!fTk-0gsDw@$S`Gw;HQ7NR}$!o5G+e#`l4$ALnCPU5|j$N=i^m>h9w zlj!_!TJJTjM`6<-4(j51|D^l`Y%U0l5cNCd?t`#KCWGdZUA8E#=4Gu?0l!RUFQenx zvdA3DCqm!rp&I1}H5dU*m6iKqpZ6^)#0_*^Zxpb#`QJdOek9QML8F{WBckfJ1|DtK z@rIA)!r`3Wz5Bc#0ppYdMkO@K>YTNK<$Mn5rOk$C^`xM!>t1))HtBMkk5kTv1B{9v zl2LXckJ0Ky(>lsW+ivc|z12YFJwBlAeSKU1R>h1f0Qm*TMA}8Lx*$&uP~-j)n)rP_ z!Gl@Wm%w|L=tIYi%0+m4!>ib(#v_pB3gl;2IFsYz4s}bGq3MGBak<}u%Uy$#4TaX4 z&ojkD=k8H$pI)BxuK-F_GGQEhA8hOpw2oU7RRfWj#s)8s z*;4{_j)!Esg)BGsNo!$??3$qxG}3bjr_F75*)CkSoN;oG$GDw6#Pm!#uqos(FdVXL zRNQ#W+)oK}*0pXWcnGyrumD-sOqtlJfEl5}qm3KxzbN-=*Rr6Zk6+L{eP%oY9VaZo z@#|2*YDM#bL>JojU&eqq(j@&ipuU3u9oagSzA8LbZsV0B+q-(BwNzI&|Pov)im z*OyBlk?8nCfyn*QDa@#tXR;*&lfC@R{A+W35a}@2{9>CLv7lSTVB;*mE_?`gQ{E<< zrXUb~>J2yK{I)l-tihigNzvUeraRf!1sMzJpRghy%D{f!S`K(2C=NX(Tc2meKO0_F z?wNmJoCLGCIp=##3AhPWPOgI)f6xDci_I&^yjB=Qw4B&{eqIm0uWb6JIO&@;#Bot5 zbfACnY_E}zcsb-7Re4(;laM~K+%h_S3EfQL%v7{*7IA@b=Y9PHLJIkBY7kg1OUIEX-Yfl_fLtmc6@#%o~sd>o~}i zZWF%>DCh@4`!ru^4L{QSdM5O5W|r$m6+JH-Wjg_9t*?|@9#!cIp&otbVpJ341<5v^ zbGm1?yj_Bul>mvGfp?EkHR|$vV4t)WR5?U} z_$$b*vbW7FCSGz@g6!491Rt-|AQm1iREf?3i?TMR-Y_>X7TSu7RnE%I+P@)YD*X&) zfaUM81%DHzF|D&}>A`&QQwtxU5?Wof1P}|=b5jF|cRy{ClBaA)t1& zd(pZLrG;fwYZqozFC$DcnsoA+2GU*w#@y^!aH`!6Lk)fe1Ww+;SAtA=l|IhLYqVA$ zk_i}Ud0TYX$M;oJkp?5rdFvdDm1EvbUb?@z`=HoHoC$`?h;JStnu(A#6~<&uh5Vqs zh$Y`g?LYiGA{i!H^!gq-`0Vf^uW2HV6S{%k=7c&M?=;0?kUXpo3g8b^L*JZmyBP9~f{lEGYbfofUx)Yc)DlneAk?U22VWJ$ni=m{c_cq9#Tb?AKg68gS4FjqxfmuM{lmh;}d+eoxi zs8+Q`HGR?%!XaT&1#zwhHxkV~xo%)bm2~hzuOGnGVjf&@?JLbmGm|v;j4Fo8YWvQ` zm5vYDS1v-*r$?sD1(h4^Fz))y`ooxPs4Y`u?>9;RcjhiqdKo3|g$xl)zrZyn;IZ$! z2|N3>@@rivS|`Bx=e4v&mE)UiH7su6xDe%JRf;1GUb$-25^5+_(d`i;GgG)*Kk7!Z z|7UI$S4Dc{H5}5F1Hr>?;O{xINYDFNp{u8OAMFhoVj_2}t370y$T(*c={c)A94m}m zwn+fZ$4O!*R!QQENd&Ie^@IKpyNw*9eEeKo_}itLvo^F+@o672_tCuKKA$2Nj3u~- zb^0dt^;ur=hTb9G9Jj~&)r8}!1u-tbzXPpkcJcq`Ry<-R_2=#)65UKb?We%lx`^UB zY6ufCx$i88Ry|ujupW*44P#>|Fm{Z_d`~I0bMG=!ls>NgafXZC0<{jHE4w@MzJO}nUIuLcXfoSB&y2$Me>&E*6f)bew~MUs>v-9m_P8RHEUtL0B~Z#RmKW-1 z2`HrsBfaJ%&!|u}AD+@+$ll?+dWata5@`Z$yn8#4cyr9nS|IXtX3e5N?&bBQS3Al)GV8Z5ENNW0hAr}eknx#bk<1P)1Byapg zU2A6^HH|4^w*1UX^9jBaqHA9+F=y|=J;Qvmeoyt{Ebo2!lV)+5i$t1^S_zsvfqCh_ zf}Y0d_~?WkpoDI+XW{ohOg>t-H3tHf1(UqxP}z5EfEl5@UGO<&T;D)q-6A4^-W34@*bNabF@W!~Ky%iiM zk70;`4S~NPqCiXj=&GKZ=MBI<7TL`p{NHdTe(MrBs!^P(FRzDKwV!G-jn#RS`lBPo z$)aJz^!f6u;5z=@;mORJ6<~AWXwL}0@fFR9RR|oc3Jq|II9}#rzETT+6ocOFe=z(( zI9ME1e`+EO65J{YR}$p8azNpKr&sE3vSO5e)kaBkfB1X&M^y+lhC9Ehqme#>V=c70W1a6!dH#vf5+WBHrZuwc|)Ch(h^gQlAYAxm5 zkN)(JbuaLe|LcyP0u_M*!j5?-I{j+y&3V~X1P8Nn;QQR?CbfY&Nq~R+jr-}n$M$Rn z7&h++ldk(|1NgsLDokxUPWpJ{zK4DBMNLG&tp95EM%kw~SF!TlCcp=n{T=QM?LS~r zwsK2&21tD;R75a{_;2CyMZp*!9E%kR6CPhx`YbGkG}ou%PN-N>C@4!1w7`+vFz!!` zNa7ecsy#M#p5Z1cf$00LdERYh!eDO350QRDE@&QXQ8t*GH zewdddRpZj)mG8|?(Sg4{ql*XqSK{yM%cCV1lu|*U`wHik75QOPi)yQw^;TGx{ub4_DCIU)4gRskvE{f$-I@xY*|5pU z?%J9a2v~ge&mI#2wa*VNUFjX_?2pTB%3HV>99^OK$3-J=-pZaN6q97!XU6j`$q}PE zCxuod?oU3eJ6Wr~(pcDmm3IMb^>aS%$t6MoyVSTVqcvb-Q{W|LghLBIx_U+!mkY&#(uh6*5@z|4c6TwEn$j_(f zyQtRB40DljWuS)CHX#+a^%uhNvnxN0Q(}PaSGH*_j+CbK1V4zt!Ksm_8Z`|B%w%t) z-#{{G%2qcDQJ@uG-o)Fh4d|0fVwg&d7L}91<+xvNNx#-_8JPB<0b>>z1w;bxkbiU8 zSXVCYz^5CT{BU=pUR=+|>cb*D7`n^fq>`%cx(Yh9q$U}6YdNKDb zcKCw1=n3))@PA^SulwHLg=e%UeCNrF{uahULz3za@$O-zxIRx=N(Q~`IA8OVD#>(Y za3+8Rz=Lq{Tel?qXN=#ezBxVA^y#k_8*3$;I zvEi0dURznzB;t*$0n@nU(U*qj760kWei8<}AKY;d&Z?)T6`X!Y5*^P`*0f*8N;{rf z2=fKZ`l0bpG!i{=hJy6W{=)MJ-MdIQ(UJ6pUV%?=$Ju}$hj0A5u1D^VH1h{!mZxs| ztv1;e7IkDDbH-4Y!~BuZ-LA;*digL1?wpfkPG(MqGyOF~w}_a3X7;YD4KI#U^m3glr0;{zYNwAtxqPHTPvSxbROx-cJhC12 z(e+m5W6&FF`YR)3FNJbU=j$$KG9+bTkX+-Rxo^1%x`-gNVBwe}rwwH`&UYRIe%*z|K#eMo%oZ@WM zYhRE69X{gUKT3D&s$S5Leb~TKpy1sLE#DNH7P)Bk<8jZ-Z7%Mpluz*cccElR4K)76#CmPmd0wFa*v0Q*MtPdPNTt=X+R$2aYrS z`QwJfmtY>dN(4hvhb&C>1xb8cex!ecY*|c@LlL9JO>H_9G5_1^#a_yVEj)?U4 zvTzvellX?yi${N>y3MjXTmCr9esB!&;21VqkrtLSJ-c`$Db#cLjK>G1D?_)NUd6b3 zci^U;N<(VfFVKTVaJjg zwKa_=uyIoS^t;YqOHOOobZG3;0thm6(@iSpXRHqgz;ZPDST2Ha33D#vRWRCJ;ryKk zMB`1kjIitf6D|`{u4L+2L7^y`%`U$(PdZU7$3W^A*-k4^np088Q3_43eE1_NOP$WA zE=8_Qg1k0iQ&#=?#n}s&RaICN;)r!>6KpjLoew$nY|nKLim3~CKMA*|-6^4yULYHW zCgnu-i?;I)ah0$n`RNl8dg?9v^$qrezZvMvv0Z^gyTZ}8Y)kV?VYUS&LLQare| zk{%CDSM=3N*0Ple@RQ0hec~MabxNGWL zcEMEN*Z>mM@b(KL?zb&=@*lbhB8Ab`%o>NmyHw2w=>I~C>db|iZFSYHLlGhfVA zTe+yA3l4Yl#LHrV`-1ZJz88~jP5=7km++#ttemo8L$Q1razg<|WW7LTd6-QP$F&$A zV?MQgN(^Bj&NXhOyJA#yf0WLZ_wM4h+fzkzMLbg5y?BsAMZ))(rRd@-AGu}VdVxTQ zZeC70r3iO(XZvPH)W3|=xyrb$l*5}|k+%*(zg~>4QSIxu%NOfR8bN%hecrI(4?vW5 zbCU;6W42bx%5Ghv;o6~{00R0joSZSCWQt-}&EtktqjE6niff(z8VnHt_C~$~EWxQ> z__(wqV?xbPx9ze7WNKRrG&zbUxFuY|C46lLV&9j8R)!=;#LBFGt`1kpK6;j?G**J+F*GS3e@|y_H>JZ_S-1 ztKI-aUmq3W5`Ayn&4-e>Nw;q{=~!rJ8%vcSMn>;dlu2btpVIv6v+Z5bbWz<}4$_FG zPom>L2b$BQ#pqpkVskMmmqP*;uSUIYhP;5$6_v6Lq7E6djg>jWq= zO-fb#GZ}(Sb>;)#z}}(Li)F4omu?1J5E(!+|0Sd>0(LJY!C9b#-=zTc6mLWG-0M86 zM;a9ID~~cmB)J>^N&W|lMSV@r*m)EK?CmAK5{B`rMP;ZqpY26uJk+J@ls5{ zrFi%)fM8!4hNRwZeosmK@vmYs(q5aw(3+~#f>N;;5Q|J9CY1NJ0g|H%4qBChS22LR zPu{yS1YFwsTseKK9d8y(KOFt^*X<~O`aRPyGjQ1RxAspFzOm-Ws-G5nm{7gd@P^LB zGf21Yw4|7gR~#S#tJ_{}*a=b}r32pp&HP;6OR;%eLr{4^w0Hp~jJ4Ksc{4R^vp7p7 zYoh--lsZC-1C*dGdZ*>O{b@ryqi-Pt!;^_qiYgp>otjE1pK+WKRUefNGQcu z&~QA6oJ_|pI13=>N2gm<$H|G*_5BO#7m4Hn#iHF@kiSWrOgdfzTR-r14xv=-# zJ$HIODUR7w53X-WXTnk-NuLlep51-@-`ebjCA3`DzH%yLT{$?Q%w0q_M@|-h_-!=c zc}&`IP6b)C@r-UsqxG#uJC@D7olBnc5R9$+I5=_(UUhG9TcTW7VCxT>fKNk+A@A|M zvtFhPu}RaSH+&BMtw6V-Oo#kH#1^#i{qMRcW{Bhi9KDkhZ>2PM9jqyp@Wy{khIYG=q$rbb;!dNpO_M^?eTh z-4$qnZHWx}<}ouem{~fZU|_(-&{lK^+rP9h<4D97^6jQh5gr-1EJ!}#o$*Fq$BAsb zi4E5+SFT{3l literal 0 HcmV?d00001 From d0f9fdad9dafd9f0046ca2caaca82d095989b318 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 27 Jul 2021 20:23:58 +0800 Subject: [PATCH 033/277] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ee325dc..0316e48 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ![GitHub release](https://img.shields.io/github/v/release/pyrochlore/obsidian-tracker) - + This is an [Obsidian](https://obsidian.md/) plugin that helps you collect data from notes and represent it comprehensively. From 4266dc5d53715818dff29691718a7678058946b2 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 27 Jul 2021 20:32:31 +0800 Subject: [PATCH 034/277] Update Expressions.md --- docs/Expressions.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/Expressions.md b/docs/Expressions.md index e3c301d..4855eeb 100644 --- a/docs/Expressions.md +++ b/docs/Expressions.md @@ -16,7 +16,7 @@ Expressions should be be wrapped in curly brackets. By Using the combination of If the resolved expreasion is a string, we can optionally provide a format string by adding it right after the expression and two extra colons. -The following tables show all the operators and functions available for now. Please make sure the input type and output type when you are combining them together. Examples could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md)). +The following tables show all the operators and functions available for now. Please make sure the input type and output type when you are combining them together. Examples could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md). ## List of Operators @@ -38,10 +38,10 @@ The following tables show all the operators and functions available for now. Ple | % | modulo | number or dataset | number or dataset | number or dataset | e.g. -number + number --> number -dataset + number --> dataset -number + dataset -> dataset -dataset + dataset --> dataset +- number + number --> number +- dataset + number --> dataset +- number + dataset -> dataset +- dataset + dataset --> dataset ## List of Functions From daa3da1ce2bd29fc7c3e6eae053ed5511079e4f7 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Thu, 29 Jul 2021 11:01:47 +0800 Subject: [PATCH 035/277] Fix collecting time values from dvField --- src/collecting.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/collecting.ts b/src/collecting.ts index 080f1b4..f22521b 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -623,11 +623,11 @@ export function collectDataFromDvField( dvTarget = dvTarget.replace("-", "[\\s\\-]"); // Test this in Regex101 - // (^|\s)\*{0,2}dvTarget\*{0,2}(::\s*(?[\d\.\/\-\w,@;\s]*))(\s|$) + // (^|\s)\*{0,2}dvTarget\*{0,2}(::\s*(?[\d\.\/\-\w,@;\s:]*))(\s|$) let strHashtagRegex = "(^|\\s)\\*{0,2}" + dvTarget + - "\\*{0,2}(::\\s*(?[\\d\\.\\/\\-\\w,@;\\s]*))(\r?\n|\r|$)"; + "\\*{0,2}(::\\s*(?[\\d\\.\\/\\-\\w,@;\\s:]*))(\r?\n|\r|$)"; // console.log(strHashtagRegex); let hashTagRegex = new RegExp(strHashtagRegex, "gm"); let match; From fccd3ffc7c7035fa75fa0338e71f9a860ee7d30a Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Thu, 29 Jul 2021 17:39:28 +0800 Subject: [PATCH 036/277] Fix breaking on collecting wiki if fileCache.links is undefined --- src/collecting.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/collecting.ts b/src/collecting.ts index f22521b..4764029 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -399,6 +399,7 @@ export function collectDataFromWiki( xValueMap: XValueMap ) { let links = fileCache.links; + if (!links) return; let linkMeasure = 0.0; let linkExist = false; From 24a4dbcce5a0e9f4071a5277f18e702f3d6b0229 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 30 Jul 2021 11:06:56 +0800 Subject: [PATCH 037/277] Set version to 1.9.1 --- manifest.json | 2 +- package.json | 2 +- versions.json | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 4a7dc0c..6e9e55e 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.9.0", + "version": "1.9.1", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package.json b/package.json index fa0698a..b044f8f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.9.0", + "version": "1.9.1", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index 443e500..e0a6f5a 100644 --- a/versions.json +++ b/versions.json @@ -16,5 +16,6 @@ "1.8.0": "0.9.12", "1.8.1": "0.9.12", "1.8.2": "0.9.12", - "1.9.0": "0.9.12" + "1.9.0": "0.9.12", + "1.9.1": "0.9.12" } From 45566d109a1c02dc2cbc86637d6fd587d4558a80 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 30 Jul 2021 11:10:48 +0800 Subject: [PATCH 038/277] Update documents --- README.md | 4 ++++ docs/ReleaseNotes.md | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/README.md b/README.md index 0316e48..a24e3a2 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,10 @@ Version 1.9.0 - Allow expressions (operators and functions) as data inputs for output type `summary`, `bullet`, and `pie` (examples: [expression](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md), [summary](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestSummary.md), [bullet](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestBullet.md), [pie](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md)) - Allow formatting evaluated expressions by a follwing format string ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md)) +Version 1.9.1 +- Fixed errors on collecting time values from dvField +- Fixed errors on collecting wiki while fileCache.links is undefined + ## Usage 1. Have some targets you want to track in daily notes. diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index d927a33..8654286 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,9 @@ # Release Notes +## v1.9.1 +- Fixed errors on collecting time values from dvField +- Fixed errors on collecting wiki while fileCache.links is undefined + ## v1.9.0 - Add a new output type `pie`, rendering a pie chart ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md)) - Allow expressions (operators and functions) as data inputs for output type `summary`, `bullet`, and `pie` (examples: [expression](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md), [summary](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestSummary.md), [bullet](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestBullet.md), [pie](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md)) From 7ea557b86733c0a0bf6985197b0fb5f5aa750043 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Thu, 29 Jul 2021 21:22:28 +0800 Subject: [PATCH 039/277] Add annotation to month view --- src/data.ts | 48 +++++++++++++------ src/month.ts | 129 +++++++++++++++++++++++++++++++++++++-------------- styles.css | 14 ++++++ 3 files changed, 142 insertions(+), 49 deletions(-) diff --git a/src/data.ts b/src/data.ts index a82b0dc..1cc0039 100644 --- a/src/data.ts +++ b/src/data.ts @@ -792,54 +792,74 @@ export class SummaryInfo implements IGraph { } export class MonthInfo implements IGraph { - mode: string; dataset: number[]; startWeekOn: string; threshold: number[]; yMin: number[]; yMax: number[]; - showCircle: boolean; color: string; dimNotInMonth: boolean; + initMonth: string; // YYYY-MM + showSelectedValue: boolean; + + // header + headerYearColor: string; + headerMonthColor: string; + showTargetRotator: boolean; + dividingLineColor: string; + + // circles and rings + showCircle: boolean; showStreak: boolean; showTodayRing: boolean; - showSelectedValue: boolean; showSelectedRing: boolean; circleColor: string; circleColorByValue: boolean; - headerYearColor: string; - headerMonthColor: string; - dividingLineColor: string; todayRingColor: string; selectedRingColor: string; - initMonth: string; // YYYY-MM + // annotations + showAnnotation: boolean; + annotation: string[]; + showAnnotationOfAllTargets: boolean; + + // internal selectedDate: string; selectedDataset: number; constructor() { - this.mode = "circle"; // circle, symbol this.dataset = []; this.startWeekOn = "Sun"; this.threshold = []; // if value > threshold, will show dot this.yMin = []; this.yMax = []; - this.showCircle = true; this.color = null; this.dimNotInMonth = true; + this.initMonth = ""; + this.showSelectedValue = true; + + // header + this.headerYearColor = null; + this.headerMonthColor = null; + this.showTargetRotator = true; + this.dividingLineColor = null; + + // circles and rings + this.showCircle = true; this.showStreak = true; // a streak connects neigbor dots this.showTodayRing = true; - this.showSelectedValue = true; this.showSelectedRing = true; this.circleColor = null; this.circleColorByValue = false; - this.headerYearColor = null; - this.headerMonthColor = null; - this.dividingLineColor = null; this.todayRingColor = ""; // white this.selectedRingColor = "firebrick"; - this.initMonth = ""; + // annotations + this.showAnnotation = false; + this.annotation = []; // annotation for each dataset, accept expression thus value + this.showAnnotationOfAllTargets = true; + + // internal this.selectedDate = ""; // selected date this.selectedDataset = null; // selected index of dataset } diff --git a/src/month.ts b/src/month.ts index 3b5b3ed..bf4927d 100644 --- a/src/month.ts +++ b/src/month.ts @@ -30,6 +30,7 @@ interface DayInfo { showCircle: boolean; streakIn: boolean; streakOut: boolean; + annotation: string; } function toNextDataset(renderInfo: RenderInfo, monthInfo: MonthInfo): boolean { @@ -182,7 +183,7 @@ function renderMonthHeader( let curDaysInMonth = curMonthDate.daysInMonth(); // 28~31 let curYear = curMonthDate.year(); - let maxDayTextSize = helper.measureTextSize("30", "tracker-axis-label"); + let maxDayTextSize = helper.measureTextSize("30", "tracker-month-label"); let cellSize = Math.max(maxDayTextSize.width, maxDayTextSize.height) * ratioCellToText; let dotRadius = ((cellSize / ratioCellToText) * ratioDotToText) / 2.0; @@ -271,31 +272,37 @@ function renderMonthHeader( datasetName, "tracker-month-title-rotator" ); - let datasetRotator = headerGroup - .append("text") - .text(datasetName) - .attr( - "transform", - "translate(" + 3.5 * cellSize + "," + datasetNameSize.height + ")" - ) - .attr("class", "tracker-month-title-rotator") - .style("cursor", "pointer") - .on("click", function (event: any) { - // show next target - if (toNextDataset(renderInfo, monthInfo)) { - // clear circles - clearSelection(chartElements, monthInfo); - - refresh( - canvas, - chartElements, - renderInfo, - monthInfo, - curMonthDate - ); - } - }); - chartElements["rotator"] = datasetRotator; + if (monthInfo.showTargetRotator) { + let datasetRotator = headerGroup + .append("text") + .text(datasetName) + .attr( + "transform", + "translate(" + + 3.5 * cellSize + + "," + + datasetNameSize.height + + ")" + ) + .attr("class", "tracker-month-title-rotator") + .style("cursor", "pointer") + .on("click", function (event: any) { + // show next target + if (toNextDataset(renderInfo, monthInfo)) { + // clear circles + clearSelection(chartElements, monthInfo); + + refresh( + canvas, + chartElements, + renderInfo, + monthInfo, + curMonthDate + ); + } + }); + chartElements["rotator"] = datasetRotator; + } // value monitor let monitorTextSize = helper.measureTextSize( @@ -486,12 +493,13 @@ function renderMonthDays( let curDatasetIndex = monthInfo.dataset.findIndex((id) => { return id === curDatasetId; }); + if (curDatasetId < 0) curDatasetIndex = 0; let threshold = monthInfo.threshold[curDatasetIndex]; let curMonth = curMonthDate.month(); // 0~11 let curDaysInMonth = curMonthDate.daysInMonth(); // 28~31 - let maxDayTextSize = helper.measureTextSize("30", "tracker-axis-label"); + let maxDayTextSize = helper.measureTextSize("30", "tracker-month-label"); let cellSize = Math.max(maxDayTextSize.width, maxDayTextSize.height) * ratioCellToText; let dotRadius = ((cellSize / ratioCellToText) * ratioDotToText) / 2.0; @@ -533,6 +541,12 @@ function renderMonthDays( // console.log(monthStartDate.format("YYYY-MM-DD")); // console.log(startDate.format("YYYY-MM-DD")); + // annotations + let showAnnotation = monthInfo.showAnnotation; + let annotations = monthInfo.annotation; + let curAnnotation = annotations[curDatasetIndex]; + let showAnnotationOfAllTargets = monthInfo.showAnnotationOfAllTargets; + // Prepare data for graph let daysInMonthView: Array = []; let indCol = 0; @@ -634,6 +648,30 @@ function renderMonthDays( // logToConsole = false; // } + let textAnnotation = ""; + if (showAnnotation) { + if (!showAnnotationOfAllTargets) { + if (curValue > threshold) { + textAnnotation = curAnnotation; + } + } else { + for (let datasetId of monthInfo.dataset) { + let datasetIndex = monthInfo.dataset.findIndex((id) => { + return id === datasetId; + }); + if (datasetIndex >= 0) { + let v = renderInfo.datasets + .getDatasetById(datasetId) + .getValue(curDate); + let t = monthInfo.threshold[datasetIndex]; + if (v !== null && v > t) { + textAnnotation += annotations[datasetIndex]; + } + } + } + } + } + daysInMonthView.push({ date: helper.dateToStr(curDate, renderInfo.dateFormat), value: curValue, @@ -646,6 +684,7 @@ function renderMonthDays( showCircle: showCircle, streakIn: streakIn, streakOut: streakOut, + annotation: textAnnotation, }); ind++; @@ -667,7 +706,7 @@ function renderMonthDays( .range([0, totalDayBlockWidth]); // streak lines - if (monthInfo.showStreak) { + if (monthInfo.showCircle && monthInfo.showStreak) { let streakColor = "#69b3a2"; if (monthInfo.circleColor) { streakColor = monthInfo.circleColor; @@ -883,12 +922,9 @@ function renderMonthDays( return d.dayInMonth.toString(); }) .attr("transform", function (d: DayInfo) { - let strTranslate = - "translate(" + - scale(d.col) + - "," + - (scale(d.row) + maxDayTextSize.height / 4) + - ")"; + let transX = scale(d.col); + let transY = scale(d.row) + maxDayTextSize.height / 4; + let strTranslate = "translate(" + transX + "," + transY + ")"; return strTranslate; }) @@ -910,7 +946,7 @@ function renderMonthDays( .attr("valueType", function (d: DayInfo) { return ValueType[dataset.valueType]; }) - .attr("class", "tracker-axis-label") + .attr("class", "tracker-month-label") .on("click", function (event: any) { // clear circles clearSelection(chartElements, monthInfo); @@ -942,6 +978,29 @@ function renderMonthDays( }) .style("cursor", "pointer"); + // annotation + if (showAnnotation) { + let dayAnnotation = chartElements.dataArea + .selectAll("dayAnnotation") + .data(daysInMonthView) + .enter() + .append("text") + .text(function (d: DayInfo) { + return d.annotation; + }) + .attr("transform", function (d: DayInfo) { + let transX = scale(d.col); + let transY = scale(d.row) + maxDayTextSize.height / 4; + if (d.annotation) { + transY += dotRadius; + } + let strTranslate = "translate(" + transX + "," + transY + ")"; + + return strTranslate; + }) + .attr("class", "tracker-month-annotation"); + } + // Expand areas let svgWidth = parseFloat(chartElements.svg.attr("width")); let svgHeight = parseFloat(chartElements.svg.attr("height")); diff --git a/styles.css b/styles.css index ca9163a..4e31eca 100644 --- a/styles.css +++ b/styles.css @@ -159,4 +159,18 @@ fill: none; stroke: "red"; stroke-width: 2px; +} + +.tracker-month-label { + fill: var(--color-axis-label); + text-anchor: middle; + font-size: 14px; + stroke: none; +} + +.tracker-month-annotation { + fill: var(--color-axis-label); + text-anchor: middle; + font-size: 10px; + stroke: none; } \ No newline at end of file From 1a16d1a70baefb49bdacf694b1f36d018550f837 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 30 Jul 2021 10:41:12 +0800 Subject: [PATCH 040/277] Add parameter mode to month view --- examples/TestCalendar.md | 35 +++++++++++++++++++++++++++++++++++ src/data.ts | 6 +++--- src/month.ts | 19 ++++++++++++++----- src/parsing.ts | 40 ++++++++++++++++++++++++++++++++++++++-- 4 files changed, 90 insertions(+), 10 deletions(-) diff --git a/examples/TestCalendar.md b/examples/TestCalendar.md index a58ab08..e93c5bd 100644 --- a/examples/TestCalendar.md +++ b/examples/TestCalendar.md @@ -95,5 +95,40 @@ month: showSelectedValue: true ``` +## Annotations +One target at a time +``` tracker +searchType: tag +searchTarget: exercise-pushup, meditation +datasetName: PushUp, Meditation +folder: diary +month: + mode: annotation + startWeekOn: 'Sun' + threshold: 40, 0 + color: green + headerMonthColor: orange + dimNotInMonth: false + annotation: 💪,🧘‍♂️ + showAnnotationOfAllTargets: false +``` + +All targets +``` tracker +searchType: tag +searchTarget: exercise-pushup, meditation +datasetName: PushUp, Meditation +folder: diary +month: + mode: annotation + startWeekOn: 'Sun' + threshold: 40, 0 + color: green + headerMonthColor: orange + dimNotInMonth: false + annotation: 💪,🧘‍♂️ + showAnnotationOfAllTargets: true +``` + Please also check those search targets in markdown files under folder 'diary'. diff --git a/src/data.ts b/src/data.ts index 1cc0039..8bb1bb8 100644 --- a/src/data.ts +++ b/src/data.ts @@ -792,6 +792,7 @@ export class SummaryInfo implements IGraph { } export class MonthInfo implements IGraph { + mode: string; dataset: number[]; startWeekOn: string; threshold: number[]; @@ -805,7 +806,6 @@ export class MonthInfo implements IGraph { // header headerYearColor: string; headerMonthColor: string; - showTargetRotator: boolean; dividingLineColor: string; // circles and rings @@ -828,6 +828,7 @@ export class MonthInfo implements IGraph { selectedDataset: number; constructor() { + this.mode = "circle"; // circle, annotation this.dataset = []; this.startWeekOn = "Sun"; this.threshold = []; // if value > threshold, will show dot @@ -841,7 +842,6 @@ export class MonthInfo implements IGraph { // header this.headerYearColor = null; this.headerMonthColor = null; - this.showTargetRotator = true; this.dividingLineColor = null; // circles and rings @@ -855,7 +855,7 @@ export class MonthInfo implements IGraph { this.selectedRingColor = "firebrick"; // annotations - this.showAnnotation = false; + this.showAnnotation = true; this.annotation = []; // annotation for each dataset, accept expression thus value this.showAnnotationOfAllTargets = true; diff --git a/src/month.ts b/src/month.ts index bf4927d..6fdd488 100644 --- a/src/month.ts +++ b/src/month.ts @@ -272,7 +272,11 @@ function renderMonthHeader( datasetName, "tracker-month-title-rotator" ); - if (monthInfo.showTargetRotator) { + if ( + monthInfo.mode === "circle" || + (monthInfo.mode === "annotation" && + !monthInfo.showAnnotationOfAllTargets) + ) { let datasetRotator = headerGroup .append("text") .text(datasetName) @@ -485,6 +489,11 @@ function renderMonthDays( // console.log(renderInfo); if (!renderInfo || !monthInfo) return; + let mode = monthInfo.mode; + if (mode !== "circle" && mode !== "annotation") { + return "Unknown month view mode"; + } + let curDatasetId = monthInfo.selectedDataset; if (curDatasetId === null) return; let dataset = renderInfo.datasets.getDatasetById(curDatasetId); @@ -706,7 +715,7 @@ function renderMonthDays( .range([0, totalDayBlockWidth]); // streak lines - if (monthInfo.showCircle && monthInfo.showStreak) { + if (mode === "circle" && monthInfo.showCircle && monthInfo.showStreak) { let streakColor = "#69b3a2"; if (monthInfo.circleColor) { streakColor = monthInfo.circleColor; @@ -817,7 +826,7 @@ function renderMonthDays( } else if (monthInfo.color) { circleColor = monthInfo.color; } - if (monthInfo.showCircle) { + if (mode === "circle" && monthInfo.showCircle) { let dots = chartElements.dataArea .selectAll("dot") .data(daysInMonthView) @@ -863,7 +872,7 @@ function renderMonthDays( // today rings let today = helper.dateToStr(window.moment(), renderInfo.dateFormat); - if (monthInfo.showTodayRing) { + if (mode === "circle" && monthInfo.showTodayRing) { let todayRings = chartElements.dataArea .selectAll("todayRing") .data( @@ -891,7 +900,7 @@ function renderMonthDays( } // selected rings - if (monthInfo.showSelectedRing) { + if (mode === "circle" && monthInfo.showSelectedRing) { let selectedRings = chartElements.dataArea .selectAll("selectedRing") .data(daysInMonthView) diff --git a/src/parsing.ts b/src/parsing.ts index 13e5040..fdeb16b 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -1846,6 +1846,12 @@ export function getRenderInfoFromYaml( } } + // mode + if (typeof yamlMonth?.mode === "string") { + month.mode = yamlMonth.mode; + } + // console.log(month.mode); + // dataset let retDataset = getNumberArray("dataset", yamlMonth?.dataset); if (typeof retDataset === "string") { @@ -2013,6 +2019,37 @@ export function getRenderInfoFromYaml( } // console.log(month.initMonth); + // showAnnotation + if (typeof yamlMonth?.showAnnotation === "boolean") { + month.showAnnotation = yamlMonth.showAnnotation; + } + // console.log(month.showAnnotation); + + // annotation + let retAnnotation = getStringArray("annotation", yamlMonth?.annotation); + if (typeof retAnnotation === "string") { + return retAnnotation; + } + month.annotation = retAnnotation; + if (month.annotation.length === 0) { + for (let indDataset = 0; indDataset < numDataset; indDataset++) { + month.annotation.push(null); + } + } + if (month.annotation.length !== month.dataset.length) { + const errorMessage = + "The number of inputs of annotation and dataset not matched"; + return errorMessage; + } + // console.log(month.annotation); + + // showAnnotationOfAllTargets + if (typeof yamlMonth?.showAnnotationOfAllTargets === "boolean") { + month.showAnnotationOfAllTargets = + yamlMonth.showAnnotationOfAllTargets; + } + // console.log(month.showAnnotationOfAllTargets); + renderInfo.month.push(month); } // Month related parameters // console.log(renderInfo.month); @@ -2124,8 +2161,7 @@ export function getRenderInfoFromYaml( // actual value, can possess template variable if (typeof yamlBullet?.value === "string") { bullet.value = yamlBullet.value; - } - else if (typeof yamlBullet?.value === "number") { + } else if (typeof yamlBullet?.value === "number") { bullet.value = yamlBullet.value.toString(); } // console.log(bullet.value); From 25db8e671a8ee6273a9b78fe357d176158d23fd7 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 30 Jul 2021 11:46:50 +0800 Subject: [PATCH 041/277] Fix annotation shown in circle mode --- src/month.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/month.ts b/src/month.ts index 6fdd488..35dea32 100644 --- a/src/month.ts +++ b/src/month.ts @@ -988,7 +988,7 @@ function renderMonthDays( .style("cursor", "pointer"); // annotation - if (showAnnotation) { + if (mode === "annotation" && showAnnotation) { let dayAnnotation = chartElements.dataArea .selectAll("dayAnnotation") .data(daysInMonthView) From 83e194668cd1b6c4382b1d2d835c47b114656d82 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 30 Jul 2021 15:26:06 +0800 Subject: [PATCH 042/277] Include seconds to the format of time values --- src/helper.ts | 44 ++++++++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/src/helper.ts b/src/helper.ts index 8449bd6..997cae3 100644 --- a/src/helper.ts +++ b/src/helper.ts @@ -5,20 +5,36 @@ import * as d3 from "d3"; import { Moment } from "moment"; // date and time -const timeFormat = [ - "HH:mm", - "HH:m", - "H:mm", - "H:m", - "hh:mm A", - "hh:mm a", - "hh:m A", - "hh:m a", - "h:mm A", - "h:mm a", - "h:m A", - "h:m a", -]; +function makeTimeFormat() { + //HH: 2-digits hours (24 hour time) from 0 to 23, H:, 2-digits hours (24 hour time) from 0 to 23 without leading 0 + // hh: 2-digits hours (12 hour time), h: 2-digits hours (12 hour time) without leading 0 + // a/A: am or pm + const fmtHours = ["HH", "H", "hh", "h"]; + //mm: 2-digits minutes, m: 2-digits minutes without leading zero + const fmtMins = ["mm", "m"]; + // ss: 2-digits seconds, s: 2-digits seconds without leading zero + // can be empty + const fmtSecs = ["ss", "s", ""]; + + let timeFormat = []; + for (let fmtHour of fmtHours) { + for (let fmtMin of fmtMins) { + for (let fmtSec of fmtSecs) { + let fmt = `${fmtHour}:${fmtMin}`; + if (fmtSec !== "") { + fmt += `:${fmtSec}`; + } + if (fmtHour.contains("h")) { + fmt += " a"; + } + timeFormat.push(fmt); + } + } + } + //console.log(timeFormat); + return timeFormat; +} +const timeFormat = makeTimeFormat(); export function strToDate(strDate: string, dateFormat: string): Moment { let format: any = dateFormat; From 17f13e071d29c3105dd92febfe76b57fdb06fac3 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 30 Jul 2021 16:47:40 +0800 Subject: [PATCH 043/277] Fix regex for dvField --- src/collecting.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/collecting.ts b/src/collecting.ts index 4764029..9794df1 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -156,11 +156,12 @@ export function getDateFromDvField( dvTarget = dvTarget.replace("-", "[\\s\\-]"); // Test this in Regex101 - // (^|\s)\*{0,2}dvTarget\*{0,2}(::\s*(?[\d\.\/\-\w,@;\s]*))(\s|$) + // remember '\s' includes new line + // (^| |\t)\*{0,2}dvTarget\*{0,2}(::[ |\t]*(?[\d\.\/\-\w,@; \t:]*))(\r?\n|\r|$) let strHashtagRegex = - "(^|\\s)\\*{0,2}" + + "(^| |\\t)\\*{0,2}" + dvTarget + - "\\*{0,2}(::\\s*(?[\\d\\.\\/\\-\\w,@;\\s]*))(\r?\n|\r)"; + "\\*{0,2}(::[ |\\t]*(?[\\d\\.\\/\\-\\w,@; \\t:]*))(\\r\\?\\n|\\r|$)"; // console.log(strHashtagRegex); let hashTagRegex = new RegExp(strHashtagRegex, "gm"); let match; @@ -624,11 +625,12 @@ export function collectDataFromDvField( dvTarget = dvTarget.replace("-", "[\\s\\-]"); // Test this in Regex101 - // (^|\s)\*{0,2}dvTarget\*{0,2}(::\s*(?[\d\.\/\-\w,@;\s:]*))(\s|$) + // remember '\s' includes new line + // (^| |\t)\*{0,2}dvTarget\*{0,2}(::[ |\t]*(?[\d\.\/\-\w,@; \t:]*))(\r?\n|\r|$) let strHashtagRegex = - "(^|\\s)\\*{0,2}" + + "(^| |\\t)\\*{0,2}" + dvTarget + - "\\*{0,2}(::\\s*(?[\\d\\.\\/\\-\\w,@;\\s:]*))(\r?\n|\r|$)"; + "\\*{0,2}(::[ |\\t]*(?[\\d\\.\\/\\-\\w,@; \\t:]*))(\\r\\?\\n|\\r|$)"; // console.log(strHashtagRegex); let hashTagRegex = new RegExp(strHashtagRegex, "gm"); let match; @@ -649,6 +651,7 @@ export function collectDataFromDvField( if (splitted.length === 1) { // console.log("single-value"); let toParse = splitted[0]; + // console.log(toParse); let retParse = helper.parseFloatFromAny(toParse); if (retParse.value !== null) { if (retParse.type === ValueType.Time) { From 866c02a99abd022c6856fe48e4f155e31ee9f429 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 30 Jul 2021 15:26:06 +0800 Subject: [PATCH 044/277] Include seconds to the format of time values --- src/helper.ts | 44 ++++++++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/src/helper.ts b/src/helper.ts index 8449bd6..997cae3 100644 --- a/src/helper.ts +++ b/src/helper.ts @@ -5,20 +5,36 @@ import * as d3 from "d3"; import { Moment } from "moment"; // date and time -const timeFormat = [ - "HH:mm", - "HH:m", - "H:mm", - "H:m", - "hh:mm A", - "hh:mm a", - "hh:m A", - "hh:m a", - "h:mm A", - "h:mm a", - "h:m A", - "h:m a", -]; +function makeTimeFormat() { + //HH: 2-digits hours (24 hour time) from 0 to 23, H:, 2-digits hours (24 hour time) from 0 to 23 without leading 0 + // hh: 2-digits hours (12 hour time), h: 2-digits hours (12 hour time) without leading 0 + // a/A: am or pm + const fmtHours = ["HH", "H", "hh", "h"]; + //mm: 2-digits minutes, m: 2-digits minutes without leading zero + const fmtMins = ["mm", "m"]; + // ss: 2-digits seconds, s: 2-digits seconds without leading zero + // can be empty + const fmtSecs = ["ss", "s", ""]; + + let timeFormat = []; + for (let fmtHour of fmtHours) { + for (let fmtMin of fmtMins) { + for (let fmtSec of fmtSecs) { + let fmt = `${fmtHour}:${fmtMin}`; + if (fmtSec !== "") { + fmt += `:${fmtSec}`; + } + if (fmtHour.contains("h")) { + fmt += " a"; + } + timeFormat.push(fmt); + } + } + } + //console.log(timeFormat); + return timeFormat; +} +const timeFormat = makeTimeFormat(); export function strToDate(strDate: string, dateFormat: string): Moment { let format: any = dateFormat; From a761cf16df9fd0e5f138a1e487a166a516873e9e Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 30 Jul 2021 16:47:40 +0800 Subject: [PATCH 045/277] Fix regex for dvField --- src/collecting.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/collecting.ts b/src/collecting.ts index 4764029..9794df1 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -156,11 +156,12 @@ export function getDateFromDvField( dvTarget = dvTarget.replace("-", "[\\s\\-]"); // Test this in Regex101 - // (^|\s)\*{0,2}dvTarget\*{0,2}(::\s*(?[\d\.\/\-\w,@;\s]*))(\s|$) + // remember '\s' includes new line + // (^| |\t)\*{0,2}dvTarget\*{0,2}(::[ |\t]*(?[\d\.\/\-\w,@; \t:]*))(\r?\n|\r|$) let strHashtagRegex = - "(^|\\s)\\*{0,2}" + + "(^| |\\t)\\*{0,2}" + dvTarget + - "\\*{0,2}(::\\s*(?[\\d\\.\\/\\-\\w,@;\\s]*))(\r?\n|\r)"; + "\\*{0,2}(::[ |\\t]*(?[\\d\\.\\/\\-\\w,@; \\t:]*))(\\r\\?\\n|\\r|$)"; // console.log(strHashtagRegex); let hashTagRegex = new RegExp(strHashtagRegex, "gm"); let match; @@ -624,11 +625,12 @@ export function collectDataFromDvField( dvTarget = dvTarget.replace("-", "[\\s\\-]"); // Test this in Regex101 - // (^|\s)\*{0,2}dvTarget\*{0,2}(::\s*(?[\d\.\/\-\w,@;\s:]*))(\s|$) + // remember '\s' includes new line + // (^| |\t)\*{0,2}dvTarget\*{0,2}(::[ |\t]*(?[\d\.\/\-\w,@; \t:]*))(\r?\n|\r|$) let strHashtagRegex = - "(^|\\s)\\*{0,2}" + + "(^| |\\t)\\*{0,2}" + dvTarget + - "\\*{0,2}(::\\s*(?[\\d\\.\\/\\-\\w,@;\\s:]*))(\r?\n|\r|$)"; + "\\*{0,2}(::[ |\\t]*(?[\\d\\.\\/\\-\\w,@; \\t:]*))(\\r\\?\\n|\\r|$)"; // console.log(strHashtagRegex); let hashTagRegex = new RegExp(strHashtagRegex, "gm"); let match; @@ -649,6 +651,7 @@ export function collectDataFromDvField( if (splitted.length === 1) { // console.log("single-value"); let toParse = splitted[0]; + // console.log(toParse); let retParse = helper.parseFloatFromAny(toParse); if (retParse.value !== null) { if (retParse.type === ValueType.Time) { From 808f9a24786833eef630a476da650546fea76898 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 30 Jul 2021 16:54:30 +0800 Subject: [PATCH 046/277] Set version to 1.9.2 --- manifest.json | 2 +- package.json | 2 +- versions.json | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 6e9e55e..8635ef3 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.9.1", + "version": "1.9.2", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package.json b/package.json index b044f8f..38fb7b0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.9.1", + "version": "1.9.2", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index e0a6f5a..4ea18cc 100644 --- a/versions.json +++ b/versions.json @@ -17,5 +17,6 @@ "1.8.1": "0.9.12", "1.8.2": "0.9.12", "1.9.0": "0.9.12", - "1.9.1": "0.9.12" + "1.9.1": "0.9.12", + "1.9.2": "0.9.12" } From 1c198a96e540bb5642be14ace8d2002610e4a9d2 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 30 Jul 2021 17:00:37 +0800 Subject: [PATCH 047/277] Update documents --- README.md | 6 +++++- docs/ReleaseNotes.md | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a24e3a2..c07cda0 100644 --- a/README.md +++ b/README.md @@ -20,9 +20,13 @@ Version 1.9.0 - Allow formatting evaluated expressions by a follwing format string ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md)) Version 1.9.1 -- Fixed errors on collecting time values from dvField +- Fixed errors on collecting time values from `dvField` - Fixed errors on collecting wiki while fileCache.links is undefined +Version 1.9.2 +- Allow using seconds in time values +- Fixed error parsing `dvField` + ## Usage 1. Have some targets you want to track in daily notes. diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index 8654286..2a5f8d4 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,7 +1,11 @@ # Release Notes +## v1.9.2 +- Allow using seconds in time values +- Fixed error parsing `dvField` + ## v1.9.1 -- Fixed errors on collecting time values from dvField +- Fixed errors on collecting time values from `dvField` - Fixed errors on collecting wiki while fileCache.links is undefined ## v1.9.0 From e770ac6abf5f0320bfa69717a85d78f8909985ba Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 30 Jul 2021 18:03:54 +0800 Subject: [PATCH 048/277] Update examples for time values --- examples/TestTimeValues.md | 36 +++++++++++++++++++++++++++++++++++ examples/diary/2021-01-01.md | 5 +++++ examples/diary/2021-01-02.md | 5 +++++ examples/diary/2021-01-03.md | 5 +++++ examples/diary/2021-01-04.md | 5 +++++ examples/diary/2021-01-05.md | 5 +++++ examples/diary/2021-01-06.md | 5 +++++ examples/diary/2021-01-07.md | 5 +++++ examples/diary/2021-01-08.md | 5 +++++ examples/diary/2021-01-09.md | 5 +++++ examples/diary/2021-01-10.md | 5 +++++ examples/diary/2021-01-11.md | 5 +++++ examples/diary/2021-01-12.md | 5 +++++ examples/diary/2021-01-13.md | 5 +++++ examples/diary/2021-01-14.md | 5 +++++ examples/diary/2021-01-15.md | 5 +++++ examples/diary/2021-01-16.md | 5 +++++ examples/diary/2021-01-17.md | 5 +++++ examples/diary/2021-01-18.md | 5 +++++ examples/diary/2021-01-19.md | 5 +++++ examples/diary/2021-01-20.md | 5 +++++ examples/diary/2021-01-21.md | 5 +++++ examples/diary/2021-01-22.md | 5 +++++ examples/diary/2021-01-23.md | 5 +++++ examples/diary/2021-01-24.md | 5 +++++ examples/diary/2021-01-25.md | 5 +++++ examples/diary/2021-01-26.md | 5 +++++ examples/diary/2021-01-27.md | 5 +++++ examples/diary/2021-01-28.md | 5 +++++ examples/diary/2021-01-29.md | 5 +++++ examples/diary/2021-01-30.md | 5 +++++ examples/diary/2021-01-31.md | 5 +++++ examples/example_generator.ts | 11 +++++++++++ 33 files changed, 202 insertions(+) diff --git a/examples/TestTimeValues.md b/examples/TestTimeValues.md index 66f5506..b668a25 100644 --- a/examples/TestTimeValues.md +++ b/examples/TestTimeValues.md @@ -1,5 +1,7 @@ # Test Time Values +## From frontmatter +Clock-In & Clock-Out from front matter ``` tracker searchType: frontmatter searchTarget: clock-in, clock-out @@ -15,6 +17,7 @@ line: showLegend: true ``` +Sleep time separated by / from front matter ``` tracker searchType: frontmatter searchTarget: sleep[0], sleep[1] @@ -30,4 +33,37 @@ line: showLegend: true ``` +## From dvField +Clock-In & Clock-Out from dvField +``` tracker +searchType: dvField +searchTarget: clock-in, clock-out +endDate: 2021-01-15 +folder: diary +datasetName: Clock-In, Clock-Out +line: + title: "Working Hours" + yAxisLabel: "Time (24h)" + reverseYAxis: true + lineColor: yellow, red + showPoint: true + showLegend: true +``` + +Sleep time separated by / from dvField +``` tracker +searchType: dvField +searchTarget: sleep[0], sleep[1] +endDate: 2021-01-15 +folder: diary +valueShift: -24:00, 00:00 +datasetName: Sleep, WakeUp +line: + title: "Sleep" + yAxisLabel: "Time (24h)" + lineColor: yellow, red + showPoint: true + showLegend: true +``` + Please also check those search targets in markdown files under folder 'diary'. \ No newline at end of file diff --git a/examples/diary/2021-01-01.md b/examples/diary/2021-01-01.md index 010e31d..4cddc43 100644 --- a/examples/diary/2021-01-01.md +++ b/examples/diary/2021-01-01.md @@ -44,6 +44,11 @@ dataviewTarget1:: 48/29 dataviewTarget2:: 29 @ 88 dataviewTarget3:: 29, 88 +clock-in:: 10:45 +clock-out:: 20:51 + +sleep:: 10:11 pm/7:5 am + #sin:0.00000/0.20791/0.40674/0.58779/0.74314/0.86603/0.95106/0.99452/0.99452 #sinsquare:0.00000/0.04323/0.16543/0.34549/0.55226/0.75000/0.90451/0.98907/0.98907 diff --git a/examples/diary/2021-01-02.md b/examples/diary/2021-01-02.md index b8e826f..796aac3 100644 --- a/examples/diary/2021-01-02.md +++ b/examples/diary/2021-01-02.md @@ -44,6 +44,11 @@ dataviewTarget1:: 25/5 dataviewTarget2:: 5 @ 72 dataviewTarget3:: 5, 72 +clock-in:: 8:7 +clock-out:: 20:10 + +sleep:: 9:37 pm/7:57 am + #sin:0.20791/0.40674/0.58779/0.74314/0.86603/0.95106/0.99452/0.99452/0.95106 #sinsquare:0.04323/0.16543/0.34549/0.55226/0.75000/0.90451/0.98907/0.98907/0.90451 diff --git a/examples/diary/2021-01-03.md b/examples/diary/2021-01-03.md index ff62c5a..275ff2a 100644 --- a/examples/diary/2021-01-03.md +++ b/examples/diary/2021-01-03.md @@ -44,6 +44,11 @@ dataviewTarget1:: 12/14 dataviewTarget2:: 14 @ 82 dataviewTarget3:: 14, 82 +clock-in:: 10:49 +clock-out:: 16:33 + +sleep:: 9:17 pm/6:48 am + #sin:0.40674/0.58779/0.74314/0.86603/0.95106/0.99452/0.99452/0.95106/0.86603 #sinsquare:0.16543/0.34549/0.55226/0.75000/0.90451/0.98907/0.98907/0.90451/0.75000 diff --git a/examples/diary/2021-01-04.md b/examples/diary/2021-01-04.md index 19d43a8..f1f2ee0 100644 --- a/examples/diary/2021-01-04.md +++ b/examples/diary/2021-01-04.md @@ -47,6 +47,11 @@ dataviewTarget1:: 43/29 dataviewTarget2:: 29 @ 74 dataviewTarget3:: 29, 74 +clock-in:: 10:41 +clock-out:: 20:52 + +sleep:: 10:10 pm/6:37 am + #sin:0.58779/0.74314/0.86603/0.95106/0.99452/0.99452/0.95106/0.86603/0.74314 #sinsquare:0.34549/0.55226/0.75000/0.90451/0.98907/0.98907/0.90451/0.75000/0.55226 diff --git a/examples/diary/2021-01-05.md b/examples/diary/2021-01-05.md index 3265595..2c92189 100644 --- a/examples/diary/2021-01-05.md +++ b/examples/diary/2021-01-05.md @@ -46,6 +46,11 @@ dataviewTarget1:: 86/24 dataviewTarget2:: 24 @ 90 dataviewTarget3:: 24, 90 +clock-in:: 9:1 +clock-out:: 18:57 + +sleep:: 9:9 pm/5:57 am + #sin:0.74314/0.86603/0.95106/0.99452/0.99452/0.95106/0.86603/0.74314/0.58779 #sinsquare:0.55226/0.75000/0.90451/0.98907/0.98907/0.90451/0.75000/0.55226/0.34549 diff --git a/examples/diary/2021-01-06.md b/examples/diary/2021-01-06.md index 3a092b0..82e20c5 100644 --- a/examples/diary/2021-01-06.md +++ b/examples/diary/2021-01-06.md @@ -45,6 +45,11 @@ dataviewTarget1:: 98/46 dataviewTarget2:: 46 @ 75 dataviewTarget3:: 46, 75 +clock-in:: 10:27 +clock-out:: 19:26 + +sleep:: 10:30 pm/5:29 am + #sin:0.86603/0.95106/0.99452/0.99452/0.95106/0.86603/0.74314/0.58779/0.40674 #sinsquare:0.75000/0.90451/0.98907/0.98907/0.90451/0.75000/0.55226/0.34549/0.16543 diff --git a/examples/diary/2021-01-07.md b/examples/diary/2021-01-07.md index 8498898..1c517d7 100644 --- a/examples/diary/2021-01-07.md +++ b/examples/diary/2021-01-07.md @@ -45,6 +45,11 @@ dataviewTarget1:: 43/6 dataviewTarget2:: 6 @ 77 dataviewTarget3:: 6, 77 +clock-in:: 9:53 +clock-out:: 17:39 + +sleep:: 10:53 pm/7:13 am + #sin:0.95106/0.99452/0.99452/0.95106/0.86603/0.74314/0.58779/0.40674/0.20791 #sinsquare:0.90451/0.98907/0.98907/0.90451/0.75000/0.55226/0.34549/0.16543/0.04323 diff --git a/examples/diary/2021-01-08.md b/examples/diary/2021-01-08.md index bd277b9..2c731c3 100644 --- a/examples/diary/2021-01-08.md +++ b/examples/diary/2021-01-08.md @@ -45,6 +45,11 @@ dataviewTarget1:: 39/25 dataviewTarget2:: 25 @ 77 dataviewTarget3:: 25, 77 +clock-in:: 8:5 +clock-out:: 16:5 + +sleep:: 9:1 pm/6:56 am + #sin:0.99452/0.99452/0.95106/0.86603/0.74314/0.58779/0.40674/0.20791/0.00000 #sinsquare:0.98907/0.98907/0.90451/0.75000/0.55226/0.34549/0.16543/0.04323/0.00000 diff --git a/examples/diary/2021-01-09.md b/examples/diary/2021-01-09.md index 1d4f394..b36b002 100644 --- a/examples/diary/2021-01-09.md +++ b/examples/diary/2021-01-09.md @@ -47,6 +47,11 @@ dataviewTarget1:: 37/36 dataviewTarget2:: 36 @ 53 dataviewTarget3:: 36, 53 +clock-in:: 8:37 +clock-out:: 17:9 + +sleep:: 9:23 pm/5:51 am + #sin:0.99452/0.95106/0.86603/0.74314/0.58779/0.40674/0.20791/0.00000/-0.20791 #sinsquare:0.98907/0.90451/0.75000/0.55226/0.34549/0.16543/0.04323/0.00000/0.04323 diff --git a/examples/diary/2021-01-10.md b/examples/diary/2021-01-10.md index 2d9ecc9..e03ac02 100644 --- a/examples/diary/2021-01-10.md +++ b/examples/diary/2021-01-10.md @@ -44,6 +44,11 @@ dataviewTarget1:: 4/10 dataviewTarget2:: 10 @ 92 dataviewTarget3:: 10, 92 +clock-in:: 10:25 +clock-out:: 17:55 + +sleep:: 10:11 pm/5:31 am + #sin:0.95106/0.86603/0.74314/0.58779/0.40674/0.20791/0.00000/-0.20791/-0.40674 #sinsquare:0.90451/0.75000/0.55226/0.34549/0.16543/0.04323/0.00000/0.04323/0.16543 diff --git a/examples/diary/2021-01-11.md b/examples/diary/2021-01-11.md index e8fe2dd..8e7cb24 100644 --- a/examples/diary/2021-01-11.md +++ b/examples/diary/2021-01-11.md @@ -43,6 +43,11 @@ dataviewTarget1:: 97/19 dataviewTarget2:: 19 @ 82 dataviewTarget3:: 19, 82 +clock-in:: 9:42 +clock-out:: 20:35 + +sleep:: 11:47 pm/6:8 am + #sin:0.86603/0.74314/0.58779/0.40674/0.20791/0.00000/-0.20791/-0.40674/-0.58779 #sinsquare:0.75000/0.55226/0.34549/0.16543/0.04323/0.00000/0.04323/0.16543/0.34549 diff --git a/examples/diary/2021-01-12.md b/examples/diary/2021-01-12.md index 406957a..71a716c 100644 --- a/examples/diary/2021-01-12.md +++ b/examples/diary/2021-01-12.md @@ -45,6 +45,11 @@ dataviewTarget1:: 79/36 dataviewTarget2:: 36 @ 66 dataviewTarget3:: 36, 66 +clock-in:: 8:54 +clock-out:: 16:19 + +sleep:: 11:23 pm/6:15 am + #sin:0.74314/0.58779/0.40674/0.20791/0.00000/-0.20791/-0.40674/-0.58779/-0.74314 #sinsquare:0.55226/0.34549/0.16543/0.04323/0.00000/0.04323/0.16543/0.34549/0.55226 diff --git a/examples/diary/2021-01-13.md b/examples/diary/2021-01-13.md index 20ffccd..f502eb1 100644 --- a/examples/diary/2021-01-13.md +++ b/examples/diary/2021-01-13.md @@ -43,6 +43,11 @@ dataviewTarget1:: 87/46 dataviewTarget2:: 46 @ 73 dataviewTarget3:: 46, 73 +clock-in:: 8:1 +clock-out:: 17:0 + +sleep:: 9:2 pm/6:37 am + #sin:0.58779/0.40674/0.20791/0.00000/-0.20791/-0.40674/-0.58779/-0.74314/-0.86603 #sinsquare:0.34549/0.16543/0.04323/0.00000/0.04323/0.16543/0.34549/0.55226/0.75000 diff --git a/examples/diary/2021-01-14.md b/examples/diary/2021-01-14.md index 110f0a2..6299113 100644 --- a/examples/diary/2021-01-14.md +++ b/examples/diary/2021-01-14.md @@ -45,6 +45,11 @@ dataviewTarget1:: 43/5 dataviewTarget2:: 5 @ 92 dataviewTarget3:: 5, 92 +clock-in:: 8:53 +clock-out:: 17:19 + +sleep:: 9:40 pm/7:25 am + #sin:0.40674/0.20791/0.00000/-0.20791/-0.40674/-0.58779/-0.74314/-0.86603/-0.95106 #sinsquare:0.16543/0.04323/0.00000/0.04323/0.16543/0.34549/0.55226/0.75000/0.90451 diff --git a/examples/diary/2021-01-15.md b/examples/diary/2021-01-15.md index 06f6b03..adfd02b 100644 --- a/examples/diary/2021-01-15.md +++ b/examples/diary/2021-01-15.md @@ -45,6 +45,11 @@ dataviewTarget1:: 60/7 dataviewTarget2:: 7 @ 81 dataviewTarget3:: 7, 81 +clock-in:: 9:20 +clock-out:: 18:40 + +sleep:: 11:14 pm/6:44 am + #sin:0.20791/0.00000/-0.20791/-0.40674/-0.58779/-0.74314/-0.86603/-0.95106/-0.99452 #sinsquare:0.04323/0.00000/0.04323/0.16543/0.34549/0.55226/0.75000/0.90451/0.98907 diff --git a/examples/diary/2021-01-16.md b/examples/diary/2021-01-16.md index 0f0b883..0852904 100644 --- a/examples/diary/2021-01-16.md +++ b/examples/diary/2021-01-16.md @@ -43,6 +43,11 @@ dataviewTarget1:: 17/21 dataviewTarget2:: 21 @ 93 dataviewTarget3:: 21, 93 +clock-in:: 9:54 +clock-out:: 18:3 + +sleep:: 11:24 pm/6:40 am + #sin:0.00000/-0.20791/-0.40674/-0.58779/-0.74314/-0.86603/-0.95106/-0.99452/-0.99452 #sinsquare:0.00000/0.04323/0.16543/0.34549/0.55226/0.75000/0.90451/0.98907/0.98907 diff --git a/examples/diary/2021-01-17.md b/examples/diary/2021-01-17.md index dfa7263..38092f4 100644 --- a/examples/diary/2021-01-17.md +++ b/examples/diary/2021-01-17.md @@ -45,6 +45,11 @@ dataviewTarget1:: 46/38 dataviewTarget2:: 38 @ 82 dataviewTarget3:: 38, 82 +clock-in:: 8:3 +clock-out:: 16:23 + +sleep:: 10:42 pm/6:30 am + #sin:-0.20791/-0.40674/-0.58779/-0.74314/-0.86603/-0.95106/-0.99452/-0.99452/-0.95106 #sinsquare:0.04323/0.16543/0.34549/0.55226/0.75000/0.90451/0.98907/0.98907/0.90451 diff --git a/examples/diary/2021-01-18.md b/examples/diary/2021-01-18.md index 8183400..9082868 100644 --- a/examples/diary/2021-01-18.md +++ b/examples/diary/2021-01-18.md @@ -45,6 +45,11 @@ dataviewTarget1:: 28/40 dataviewTarget2:: 40 @ 81 dataviewTarget3:: 40, 81 +clock-in:: 8:48 +clock-out:: 19:49 + +sleep:: 9:10 pm/7:51 am + #sin:-0.40674/-0.58779/-0.74314/-0.86603/-0.95106/-0.99452/-0.99452/-0.95106/-0.86603 #sinsquare:0.16543/0.34549/0.55226/0.75000/0.90451/0.98907/0.98907/0.90451/0.75000 diff --git a/examples/diary/2021-01-19.md b/examples/diary/2021-01-19.md index 7ff9028..6fb9b46 100644 --- a/examples/diary/2021-01-19.md +++ b/examples/diary/2021-01-19.md @@ -45,6 +45,11 @@ dataviewTarget1:: 73/8 dataviewTarget2:: 8 @ 59 dataviewTarget3:: 8, 59 +clock-in:: 8:30 +clock-out:: 17:42 + +sleep:: 9:34 pm/7:2 am + #sin:-0.58779/-0.74314/-0.86603/-0.95106/-0.99452/-0.99452/-0.95106/-0.86603/-0.74314 #sinsquare:0.34549/0.55226/0.75000/0.90451/0.98907/0.98907/0.90451/0.75000/0.55226 diff --git a/examples/diary/2021-01-20.md b/examples/diary/2021-01-20.md index 9ccb474..0e23250 100644 --- a/examples/diary/2021-01-20.md +++ b/examples/diary/2021-01-20.md @@ -43,6 +43,11 @@ dataviewTarget1:: 64/0 dataviewTarget2:: 0 @ 54 dataviewTarget3:: 0, 54 +clock-in:: 9:30 +clock-out:: 20:13 + +sleep:: 9:28 pm/7:58 am + #sin:-0.74314/-0.86603/-0.95106/-0.99452/-0.99452/-0.95106/-0.86603/-0.74314/-0.58779 #sinsquare:0.55226/0.75000/0.90451/0.98907/0.98907/0.90451/0.75000/0.55226/0.34549 diff --git a/examples/diary/2021-01-21.md b/examples/diary/2021-01-21.md index ab257cc..b5e71e3 100644 --- a/examples/diary/2021-01-21.md +++ b/examples/diary/2021-01-21.md @@ -45,6 +45,11 @@ dataviewTarget1:: 88/41 dataviewTarget2:: 41 @ 75 dataviewTarget3:: 41, 75 +clock-in:: 9:4 +clock-out:: 19:29 + +sleep:: 10:43 pm/6:37 am + #sin:-0.86603/-0.95106/-0.99452/-0.99452/-0.95106/-0.86603/-0.74314/-0.58779/-0.40674 #sinsquare:0.75000/0.90451/0.98907/0.98907/0.90451/0.75000/0.55226/0.34549/0.16543 diff --git a/examples/diary/2021-01-22.md b/examples/diary/2021-01-22.md index 26f4263..0d1f88e 100644 --- a/examples/diary/2021-01-22.md +++ b/examples/diary/2021-01-22.md @@ -44,6 +44,11 @@ dataviewTarget1:: 36/0 dataviewTarget2:: 0 @ 91 dataviewTarget3:: 0, 91 +clock-in:: 9:32 +clock-out:: 20:27 + +sleep:: 10:25 pm/5:12 am + #sin:-0.95106/-0.99452/-0.99452/-0.95106/-0.86603/-0.74314/-0.58779/-0.40674/-0.20791 #sinsquare:0.90451/0.98907/0.98907/0.90451/0.75000/0.55226/0.34549/0.16543/0.04323 diff --git a/examples/diary/2021-01-23.md b/examples/diary/2021-01-23.md index a9fd95d..206bac1 100644 --- a/examples/diary/2021-01-23.md +++ b/examples/diary/2021-01-23.md @@ -44,6 +44,11 @@ dataviewTarget1:: 45/27 dataviewTarget2:: 27 @ 95 dataviewTarget3:: 27, 95 +clock-in:: 10:36 +clock-out:: 19:31 + +sleep:: 10:9 pm/7:30 am + #sin:-0.99452/-0.99452/-0.95106/-0.86603/-0.74314/-0.58779/-0.40674/-0.20791/-0.00000 #sinsquare:0.98907/0.98907/0.90451/0.75000/0.55226/0.34549/0.16543/0.04323/0.00000 diff --git a/examples/diary/2021-01-24.md b/examples/diary/2021-01-24.md index 40a9ffb..48523fc 100644 --- a/examples/diary/2021-01-24.md +++ b/examples/diary/2021-01-24.md @@ -46,6 +46,11 @@ dataviewTarget1:: 63/23 dataviewTarget2:: 23 @ 60 dataviewTarget3:: 23, 60 +clock-in:: 8:1 +clock-out:: 18:9 + +sleep:: 10:53 pm/5:33 am + #sin:-0.99452/-0.95106/-0.86603/-0.74314/-0.58779/-0.40674/-0.20791/-0.00000/0.20791 #sinsquare:0.98907/0.90451/0.75000/0.55226/0.34549/0.16543/0.04323/0.00000/0.04323 diff --git a/examples/diary/2021-01-25.md b/examples/diary/2021-01-25.md index f1c93f4..061c0ce 100644 --- a/examples/diary/2021-01-25.md +++ b/examples/diary/2021-01-25.md @@ -43,6 +43,11 @@ dataviewTarget1:: 88/12 dataviewTarget2:: 12 @ 96 dataviewTarget3:: 12, 96 +clock-in:: 9:52 +clock-out:: 17:55 + +sleep:: 10:53 pm/6:3 am + #sin:-0.95106/-0.86603/-0.74314/-0.58779/-0.40674/-0.20791/-0.00000/0.20791/0.40674 #sinsquare:0.90451/0.75000/0.55226/0.34549/0.16543/0.04323/0.00000/0.04323/0.16543 diff --git a/examples/diary/2021-01-26.md b/examples/diary/2021-01-26.md index f99c94c..0beb595 100644 --- a/examples/diary/2021-01-26.md +++ b/examples/diary/2021-01-26.md @@ -44,6 +44,11 @@ dataviewTarget1:: 42/19 dataviewTarget2:: 19 @ 93 dataviewTarget3:: 19, 93 +clock-in:: 10:24 +clock-out:: 19:12 + +sleep:: 11:36 pm/6:2 am + #sin:-0.86603/-0.74314/-0.58779/-0.40674/-0.20791/-0.00000/0.20791/0.40674/0.58779 #sinsquare:0.75000/0.55226/0.34549/0.16543/0.04323/0.00000/0.04323/0.16543/0.34549 diff --git a/examples/diary/2021-01-27.md b/examples/diary/2021-01-27.md index 2fbbb88..ca96bc8 100644 --- a/examples/diary/2021-01-27.md +++ b/examples/diary/2021-01-27.md @@ -45,6 +45,11 @@ dataviewTarget1:: 59/31 dataviewTarget2:: 31 @ 67 dataviewTarget3:: 31, 67 +clock-in:: 10:28 +clock-out:: 18:4 + +sleep:: 11:34 pm/6:12 am + #sin:-0.74314/-0.58779/-0.40674/-0.20791/-0.00000/0.20791/0.40674/0.58779/0.74314 #sinsquare:0.55226/0.34549/0.16543/0.04323/0.00000/0.04323/0.16543/0.34549/0.55226 diff --git a/examples/diary/2021-01-28.md b/examples/diary/2021-01-28.md index c8b3927..52b8c9e 100644 --- a/examples/diary/2021-01-28.md +++ b/examples/diary/2021-01-28.md @@ -45,6 +45,11 @@ dataviewTarget1:: 36/33 dataviewTarget2:: 33 @ 92 dataviewTarget3:: 33, 92 +clock-in:: 10:44 +clock-out:: 16:41 + +sleep:: 10:27 pm/5:11 am + #sin:-0.58779/-0.40674/-0.20791/-0.00000/0.20791/0.40674/0.58779/0.74314/0.86603 #sinsquare:0.34549/0.16543/0.04323/0.00000/0.04323/0.16543/0.34549/0.55226/0.75000 diff --git a/examples/diary/2021-01-29.md b/examples/diary/2021-01-29.md index 8b74a63..7f338dc 100644 --- a/examples/diary/2021-01-29.md +++ b/examples/diary/2021-01-29.md @@ -44,6 +44,11 @@ dataviewTarget1:: 96/44 dataviewTarget2:: 44 @ 90 dataviewTarget3:: 44, 90 +clock-in:: 8:19 +clock-out:: 16:35 + +sleep:: 11:47 pm/6:39 am + #sin:-0.40674/-0.20791/-0.00000/0.20791/0.40674/0.58779/0.74314/0.86603/0.95106 #sinsquare:0.16543/0.04323/0.00000/0.04323/0.16543/0.34549/0.55226/0.75000/0.90451 diff --git a/examples/diary/2021-01-30.md b/examples/diary/2021-01-30.md index a6196d3..2e5c791 100644 --- a/examples/diary/2021-01-30.md +++ b/examples/diary/2021-01-30.md @@ -47,6 +47,11 @@ dataviewTarget1:: 44/48 dataviewTarget2:: 48 @ 84 dataviewTarget3:: 48, 84 +clock-in:: 10:24 +clock-out:: 18:4 + +sleep:: 11:10 pm/5:46 am + #sin:-0.20791/-0.00000/0.20791/0.40674/0.58779/0.74314/0.86603/0.95106/0.99452 #sinsquare:0.04323/0.00000/0.04323/0.16543/0.34549/0.55226/0.75000/0.90451/0.98907 diff --git a/examples/diary/2021-01-31.md b/examples/diary/2021-01-31.md index dbc610f..c03a1b5 100644 --- a/examples/diary/2021-01-31.md +++ b/examples/diary/2021-01-31.md @@ -44,6 +44,11 @@ dataviewTarget1:: 59/22 dataviewTarget2:: 22 @ 55 dataviewTarget3:: 22, 55 +clock-in:: 10:5 +clock-out:: 17:3 + +sleep:: 9:14 pm/5:9 am + #sin:-0.00000/0.20791/0.40674/0.58779/0.74314/0.86603/0.95106/0.99452/0.99452 #sinsquare:0.00000/0.04323/0.16543/0.34549/0.55226/0.75000/0.90451/0.98907/0.98907 diff --git a/examples/example_generator.ts b/examples/example_generator.ts index 4318129..a78a153 100644 --- a/examples/example_generator.ts +++ b/examples/example_generator.ts @@ -227,6 +227,17 @@ for ( content += "\n"; + // clock-in clock-out in dvField + content += "clock-in:: " + time_clock_in + "\n"; + content += "clock-out:: " + time_clock_out + "\n"; + + content += "\n"; + + // sleep in dvField + content += "sleep:: " + time_in_bed + "/" + time_out_of_bed + "\n"; + + content += "\n"; + let amplitude = 1.0; let period = 30; // how many days to complete a sin period let numSinValues = 9; From dae713f88b2a2e115631ffebd9fb2ce64b2035e4 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 30 Jul 2021 18:11:37 +0800 Subject: [PATCH 049/277] Update examples for time values --- examples/TestTimeValues.md | 1 + examples/diary/2021-01-01.md | 4 ++-- examples/diary/2021-01-02.md | 4 ++-- examples/diary/2021-01-03.md | 4 ++-- examples/diary/2021-01-04.md | 4 ++-- examples/diary/2021-01-05.md | 4 ++-- examples/diary/2021-01-06.md | 4 ++-- examples/diary/2021-01-07.md | 4 ++-- examples/diary/2021-01-08.md | 4 ++-- examples/diary/2021-01-09.md | 4 ++-- examples/diary/2021-01-10.md | 4 ++-- examples/diary/2021-01-11.md | 4 ++-- examples/diary/2021-01-12.md | 4 ++-- examples/diary/2021-01-13.md | 4 ++-- examples/diary/2021-01-14.md | 4 ++-- examples/diary/2021-01-15.md | 4 ++-- examples/diary/2021-01-16.md | 4 ++-- examples/diary/2021-01-17.md | 4 ++-- examples/diary/2021-01-18.md | 4 ++-- examples/diary/2021-01-19.md | 4 ++-- examples/diary/2021-01-20.md | 4 ++-- examples/diary/2021-01-21.md | 4 ++-- examples/diary/2021-01-22.md | 4 ++-- examples/diary/2021-01-23.md | 4 ++-- examples/diary/2021-01-24.md | 4 ++-- examples/diary/2021-01-25.md | 4 ++-- examples/diary/2021-01-26.md | 4 ++-- examples/diary/2021-01-27.md | 4 ++-- examples/diary/2021-01-28.md | 4 ++-- examples/diary/2021-01-29.md | 4 ++-- examples/diary/2021-01-30.md | 4 ++-- examples/diary/2021-01-31.md | 4 ++-- examples/example_generator.ts | 5 +++-- 33 files changed, 66 insertions(+), 64 deletions(-) diff --git a/examples/TestTimeValues.md b/examples/TestTimeValues.md index b668a25..3432d57 100644 --- a/examples/TestTimeValues.md +++ b/examples/TestTimeValues.md @@ -35,6 +35,7 @@ line: ## From dvField Clock-In & Clock-Out from dvField +time granularity to one second ``` tracker searchType: dvField searchTarget: clock-in, clock-out diff --git a/examples/diary/2021-01-01.md b/examples/diary/2021-01-01.md index 4cddc43..35a7e5e 100644 --- a/examples/diary/2021-01-01.md +++ b/examples/diary/2021-01-01.md @@ -44,8 +44,8 @@ dataviewTarget1:: 48/29 dataviewTarget2:: 29 @ 88 dataviewTarget3:: 29, 88 -clock-in:: 10:45 -clock-out:: 20:51 +clock-in:: 10:45:29 +clock-out:: 20:51:29 sleep:: 10:11 pm/7:5 am diff --git a/examples/diary/2021-01-02.md b/examples/diary/2021-01-02.md index 796aac3..57200a3 100644 --- a/examples/diary/2021-01-02.md +++ b/examples/diary/2021-01-02.md @@ -44,8 +44,8 @@ dataviewTarget1:: 25/5 dataviewTarget2:: 5 @ 72 dataviewTarget3:: 5, 72 -clock-in:: 8:7 -clock-out:: 20:10 +clock-in:: 8:7:5 +clock-out:: 20:10:5 sleep:: 9:37 pm/7:57 am diff --git a/examples/diary/2021-01-03.md b/examples/diary/2021-01-03.md index 275ff2a..3b59717 100644 --- a/examples/diary/2021-01-03.md +++ b/examples/diary/2021-01-03.md @@ -44,8 +44,8 @@ dataviewTarget1:: 12/14 dataviewTarget2:: 14 @ 82 dataviewTarget3:: 14, 82 -clock-in:: 10:49 -clock-out:: 16:33 +clock-in:: 10:49:14 +clock-out:: 16:33:14 sleep:: 9:17 pm/6:48 am diff --git a/examples/diary/2021-01-04.md b/examples/diary/2021-01-04.md index f1f2ee0..f846803 100644 --- a/examples/diary/2021-01-04.md +++ b/examples/diary/2021-01-04.md @@ -47,8 +47,8 @@ dataviewTarget1:: 43/29 dataviewTarget2:: 29 @ 74 dataviewTarget3:: 29, 74 -clock-in:: 10:41 -clock-out:: 20:52 +clock-in:: 10:41:29 +clock-out:: 20:52:29 sleep:: 10:10 pm/6:37 am diff --git a/examples/diary/2021-01-05.md b/examples/diary/2021-01-05.md index 2c92189..6878a3c 100644 --- a/examples/diary/2021-01-05.md +++ b/examples/diary/2021-01-05.md @@ -46,8 +46,8 @@ dataviewTarget1:: 86/24 dataviewTarget2:: 24 @ 90 dataviewTarget3:: 24, 90 -clock-in:: 9:1 -clock-out:: 18:57 +clock-in:: 9:1:24 +clock-out:: 18:57:24 sleep:: 9:9 pm/5:57 am diff --git a/examples/diary/2021-01-06.md b/examples/diary/2021-01-06.md index 82e20c5..f5dfd71 100644 --- a/examples/diary/2021-01-06.md +++ b/examples/diary/2021-01-06.md @@ -45,8 +45,8 @@ dataviewTarget1:: 98/46 dataviewTarget2:: 46 @ 75 dataviewTarget3:: 46, 75 -clock-in:: 10:27 -clock-out:: 19:26 +clock-in:: 10:27:46 +clock-out:: 19:26:46 sleep:: 10:30 pm/5:29 am diff --git a/examples/diary/2021-01-07.md b/examples/diary/2021-01-07.md index 1c517d7..f3981f0 100644 --- a/examples/diary/2021-01-07.md +++ b/examples/diary/2021-01-07.md @@ -45,8 +45,8 @@ dataviewTarget1:: 43/6 dataviewTarget2:: 6 @ 77 dataviewTarget3:: 6, 77 -clock-in:: 9:53 -clock-out:: 17:39 +clock-in:: 9:53:6 +clock-out:: 17:39:6 sleep:: 10:53 pm/7:13 am diff --git a/examples/diary/2021-01-08.md b/examples/diary/2021-01-08.md index 2c731c3..8febc8c 100644 --- a/examples/diary/2021-01-08.md +++ b/examples/diary/2021-01-08.md @@ -45,8 +45,8 @@ dataviewTarget1:: 39/25 dataviewTarget2:: 25 @ 77 dataviewTarget3:: 25, 77 -clock-in:: 8:5 -clock-out:: 16:5 +clock-in:: 8:5:25 +clock-out:: 16:5:25 sleep:: 9:1 pm/6:56 am diff --git a/examples/diary/2021-01-09.md b/examples/diary/2021-01-09.md index b36b002..b3d3266 100644 --- a/examples/diary/2021-01-09.md +++ b/examples/diary/2021-01-09.md @@ -47,8 +47,8 @@ dataviewTarget1:: 37/36 dataviewTarget2:: 36 @ 53 dataviewTarget3:: 36, 53 -clock-in:: 8:37 -clock-out:: 17:9 +clock-in:: 8:37:36 +clock-out:: 17:9:36 sleep:: 9:23 pm/5:51 am diff --git a/examples/diary/2021-01-10.md b/examples/diary/2021-01-10.md index e03ac02..f6261c7 100644 --- a/examples/diary/2021-01-10.md +++ b/examples/diary/2021-01-10.md @@ -44,8 +44,8 @@ dataviewTarget1:: 4/10 dataviewTarget2:: 10 @ 92 dataviewTarget3:: 10, 92 -clock-in:: 10:25 -clock-out:: 17:55 +clock-in:: 10:25:10 +clock-out:: 17:55:10 sleep:: 10:11 pm/5:31 am diff --git a/examples/diary/2021-01-11.md b/examples/diary/2021-01-11.md index 8e7cb24..c9f40f1 100644 --- a/examples/diary/2021-01-11.md +++ b/examples/diary/2021-01-11.md @@ -43,8 +43,8 @@ dataviewTarget1:: 97/19 dataviewTarget2:: 19 @ 82 dataviewTarget3:: 19, 82 -clock-in:: 9:42 -clock-out:: 20:35 +clock-in:: 9:42:19 +clock-out:: 20:35:19 sleep:: 11:47 pm/6:8 am diff --git a/examples/diary/2021-01-12.md b/examples/diary/2021-01-12.md index 71a716c..a0652a0 100644 --- a/examples/diary/2021-01-12.md +++ b/examples/diary/2021-01-12.md @@ -45,8 +45,8 @@ dataviewTarget1:: 79/36 dataviewTarget2:: 36 @ 66 dataviewTarget3:: 36, 66 -clock-in:: 8:54 -clock-out:: 16:19 +clock-in:: 8:54:36 +clock-out:: 16:19:36 sleep:: 11:23 pm/6:15 am diff --git a/examples/diary/2021-01-13.md b/examples/diary/2021-01-13.md index f502eb1..97f5314 100644 --- a/examples/diary/2021-01-13.md +++ b/examples/diary/2021-01-13.md @@ -43,8 +43,8 @@ dataviewTarget1:: 87/46 dataviewTarget2:: 46 @ 73 dataviewTarget3:: 46, 73 -clock-in:: 8:1 -clock-out:: 17:0 +clock-in:: 8:1:46 +clock-out:: 17:0:46 sleep:: 9:2 pm/6:37 am diff --git a/examples/diary/2021-01-14.md b/examples/diary/2021-01-14.md index 6299113..66d378e 100644 --- a/examples/diary/2021-01-14.md +++ b/examples/diary/2021-01-14.md @@ -45,8 +45,8 @@ dataviewTarget1:: 43/5 dataviewTarget2:: 5 @ 92 dataviewTarget3:: 5, 92 -clock-in:: 8:53 -clock-out:: 17:19 +clock-in:: 8:53:5 +clock-out:: 17:19:5 sleep:: 9:40 pm/7:25 am diff --git a/examples/diary/2021-01-15.md b/examples/diary/2021-01-15.md index adfd02b..19995b0 100644 --- a/examples/diary/2021-01-15.md +++ b/examples/diary/2021-01-15.md @@ -45,8 +45,8 @@ dataviewTarget1:: 60/7 dataviewTarget2:: 7 @ 81 dataviewTarget3:: 7, 81 -clock-in:: 9:20 -clock-out:: 18:40 +clock-in:: 9:20:7 +clock-out:: 18:40:7 sleep:: 11:14 pm/6:44 am diff --git a/examples/diary/2021-01-16.md b/examples/diary/2021-01-16.md index 0852904..2787b95 100644 --- a/examples/diary/2021-01-16.md +++ b/examples/diary/2021-01-16.md @@ -43,8 +43,8 @@ dataviewTarget1:: 17/21 dataviewTarget2:: 21 @ 93 dataviewTarget3:: 21, 93 -clock-in:: 9:54 -clock-out:: 18:3 +clock-in:: 9:54:21 +clock-out:: 18:3:21 sleep:: 11:24 pm/6:40 am diff --git a/examples/diary/2021-01-17.md b/examples/diary/2021-01-17.md index 38092f4..7329c6e 100644 --- a/examples/diary/2021-01-17.md +++ b/examples/diary/2021-01-17.md @@ -45,8 +45,8 @@ dataviewTarget1:: 46/38 dataviewTarget2:: 38 @ 82 dataviewTarget3:: 38, 82 -clock-in:: 8:3 -clock-out:: 16:23 +clock-in:: 8:3:38 +clock-out:: 16:23:38 sleep:: 10:42 pm/6:30 am diff --git a/examples/diary/2021-01-18.md b/examples/diary/2021-01-18.md index 9082868..de902ae 100644 --- a/examples/diary/2021-01-18.md +++ b/examples/diary/2021-01-18.md @@ -45,8 +45,8 @@ dataviewTarget1:: 28/40 dataviewTarget2:: 40 @ 81 dataviewTarget3:: 40, 81 -clock-in:: 8:48 -clock-out:: 19:49 +clock-in:: 8:48:40 +clock-out:: 19:49:40 sleep:: 9:10 pm/7:51 am diff --git a/examples/diary/2021-01-19.md b/examples/diary/2021-01-19.md index 6fb9b46..06eb314 100644 --- a/examples/diary/2021-01-19.md +++ b/examples/diary/2021-01-19.md @@ -45,8 +45,8 @@ dataviewTarget1:: 73/8 dataviewTarget2:: 8 @ 59 dataviewTarget3:: 8, 59 -clock-in:: 8:30 -clock-out:: 17:42 +clock-in:: 8:30:8 +clock-out:: 17:42:8 sleep:: 9:34 pm/7:2 am diff --git a/examples/diary/2021-01-20.md b/examples/diary/2021-01-20.md index 0e23250..c460221 100644 --- a/examples/diary/2021-01-20.md +++ b/examples/diary/2021-01-20.md @@ -43,8 +43,8 @@ dataviewTarget1:: 64/0 dataviewTarget2:: 0 @ 54 dataviewTarget3:: 0, 54 -clock-in:: 9:30 -clock-out:: 20:13 +clock-in:: 9:30:0 +clock-out:: 20:13:0 sleep:: 9:28 pm/7:58 am diff --git a/examples/diary/2021-01-21.md b/examples/diary/2021-01-21.md index b5e71e3..be9961a 100644 --- a/examples/diary/2021-01-21.md +++ b/examples/diary/2021-01-21.md @@ -45,8 +45,8 @@ dataviewTarget1:: 88/41 dataviewTarget2:: 41 @ 75 dataviewTarget3:: 41, 75 -clock-in:: 9:4 -clock-out:: 19:29 +clock-in:: 9:4:41 +clock-out:: 19:29:41 sleep:: 10:43 pm/6:37 am diff --git a/examples/diary/2021-01-22.md b/examples/diary/2021-01-22.md index 0d1f88e..77cf0e7 100644 --- a/examples/diary/2021-01-22.md +++ b/examples/diary/2021-01-22.md @@ -44,8 +44,8 @@ dataviewTarget1:: 36/0 dataviewTarget2:: 0 @ 91 dataviewTarget3:: 0, 91 -clock-in:: 9:32 -clock-out:: 20:27 +clock-in:: 9:32:0 +clock-out:: 20:27:0 sleep:: 10:25 pm/5:12 am diff --git a/examples/diary/2021-01-23.md b/examples/diary/2021-01-23.md index 206bac1..e10d6a0 100644 --- a/examples/diary/2021-01-23.md +++ b/examples/diary/2021-01-23.md @@ -44,8 +44,8 @@ dataviewTarget1:: 45/27 dataviewTarget2:: 27 @ 95 dataviewTarget3:: 27, 95 -clock-in:: 10:36 -clock-out:: 19:31 +clock-in:: 10:36:27 +clock-out:: 19:31:27 sleep:: 10:9 pm/7:30 am diff --git a/examples/diary/2021-01-24.md b/examples/diary/2021-01-24.md index 48523fc..318da6f 100644 --- a/examples/diary/2021-01-24.md +++ b/examples/diary/2021-01-24.md @@ -46,8 +46,8 @@ dataviewTarget1:: 63/23 dataviewTarget2:: 23 @ 60 dataviewTarget3:: 23, 60 -clock-in:: 8:1 -clock-out:: 18:9 +clock-in:: 8:1:23 +clock-out:: 18:9:23 sleep:: 10:53 pm/5:33 am diff --git a/examples/diary/2021-01-25.md b/examples/diary/2021-01-25.md index 061c0ce..c55952c 100644 --- a/examples/diary/2021-01-25.md +++ b/examples/diary/2021-01-25.md @@ -43,8 +43,8 @@ dataviewTarget1:: 88/12 dataviewTarget2:: 12 @ 96 dataviewTarget3:: 12, 96 -clock-in:: 9:52 -clock-out:: 17:55 +clock-in:: 9:52:12 +clock-out:: 17:55:12 sleep:: 10:53 pm/6:3 am diff --git a/examples/diary/2021-01-26.md b/examples/diary/2021-01-26.md index 0beb595..919a6db 100644 --- a/examples/diary/2021-01-26.md +++ b/examples/diary/2021-01-26.md @@ -44,8 +44,8 @@ dataviewTarget1:: 42/19 dataviewTarget2:: 19 @ 93 dataviewTarget3:: 19, 93 -clock-in:: 10:24 -clock-out:: 19:12 +clock-in:: 10:24:19 +clock-out:: 19:12:19 sleep:: 11:36 pm/6:2 am diff --git a/examples/diary/2021-01-27.md b/examples/diary/2021-01-27.md index ca96bc8..d27ce18 100644 --- a/examples/diary/2021-01-27.md +++ b/examples/diary/2021-01-27.md @@ -45,8 +45,8 @@ dataviewTarget1:: 59/31 dataviewTarget2:: 31 @ 67 dataviewTarget3:: 31, 67 -clock-in:: 10:28 -clock-out:: 18:4 +clock-in:: 10:28:31 +clock-out:: 18:4:31 sleep:: 11:34 pm/6:12 am diff --git a/examples/diary/2021-01-28.md b/examples/diary/2021-01-28.md index 52b8c9e..dea9212 100644 --- a/examples/diary/2021-01-28.md +++ b/examples/diary/2021-01-28.md @@ -45,8 +45,8 @@ dataviewTarget1:: 36/33 dataviewTarget2:: 33 @ 92 dataviewTarget3:: 33, 92 -clock-in:: 10:44 -clock-out:: 16:41 +clock-in:: 10:44:33 +clock-out:: 16:41:33 sleep:: 10:27 pm/5:11 am diff --git a/examples/diary/2021-01-29.md b/examples/diary/2021-01-29.md index 7f338dc..bb20ef6 100644 --- a/examples/diary/2021-01-29.md +++ b/examples/diary/2021-01-29.md @@ -44,8 +44,8 @@ dataviewTarget1:: 96/44 dataviewTarget2:: 44 @ 90 dataviewTarget3:: 44, 90 -clock-in:: 8:19 -clock-out:: 16:35 +clock-in:: 8:19:44 +clock-out:: 16:35:44 sleep:: 11:47 pm/6:39 am diff --git a/examples/diary/2021-01-30.md b/examples/diary/2021-01-30.md index 2e5c791..e140f7e 100644 --- a/examples/diary/2021-01-30.md +++ b/examples/diary/2021-01-30.md @@ -47,8 +47,8 @@ dataviewTarget1:: 44/48 dataviewTarget2:: 48 @ 84 dataviewTarget3:: 48, 84 -clock-in:: 10:24 -clock-out:: 18:4 +clock-in:: 10:24:48 +clock-out:: 18:4:48 sleep:: 11:10 pm/5:46 am diff --git a/examples/diary/2021-01-31.md b/examples/diary/2021-01-31.md index c03a1b5..e5c4a74 100644 --- a/examples/diary/2021-01-31.md +++ b/examples/diary/2021-01-31.md @@ -44,8 +44,8 @@ dataviewTarget1:: 59/22 dataviewTarget2:: 22 @ 55 dataviewTarget3:: 22, 55 -clock-in:: 10:5 -clock-out:: 17:3 +clock-in:: 10:5:22 +clock-out:: 17:3:22 sleep:: 9:14 pm/5:9 am diff --git a/examples/example_generator.ts b/examples/example_generator.ts index a78a153..6f95545 100644 --- a/examples/example_generator.ts +++ b/examples/example_generator.ts @@ -228,8 +228,9 @@ for ( content += "\n"; // clock-in clock-out in dvField - content += "clock-in:: " + time_clock_in + "\n"; - content += "clock-out:: " + time_clock_out + "\n"; + let seconds = dataviewValue1; + content += "clock-in:: " + time_clock_in + ":" + seconds + "\n"; + content += "clock-out:: " + time_clock_out + ":" + seconds +"\n"; content += "\n"; From 824231b0167ec9cc09dab113ef047d04d8a99f2c Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sat, 31 Jul 2021 17:29:30 +0800 Subject: [PATCH 050/277] Allow using regex in dataFormatPrefix and dateFormatSuffix --- docs/InputParameters.md | 4 +- examples/TestDateFormats.md | 27 ++++++++++ examples/diary/Jeffrey-20210101-Diary.md | 28 +++++++++++ examples/diary/Jeffrey-20210101-Journal.md | 28 +++++++++++ examples/diary/Jeffrey-20210102-Diary.md | 28 +++++++++++ examples/diary/Jeffrey-20210102-Journal.md | 28 +++++++++++ examples/diary/Jeffrey-20210103-Diary.md | 30 +++++++++++ examples/diary/Jeffrey-20210103-Journal.md | 30 +++++++++++ examples/diary/Jeffrey-20210104-Diary.md | 27 ++++++++++ examples/diary/Jeffrey-20210104-Journal.md | 27 ++++++++++ examples/diary/Jeffrey-20210105-Diary.md | 28 +++++++++++ examples/diary/Jeffrey-20210105-Journal.md | 28 +++++++++++ examples/diary/Lucas-20210101-Diary.md | 28 +++++++++++ examples/diary/Lucas-20210101-Journal.md | 28 +++++++++++ examples/diary/Lucas-20210102-Diary.md | 28 +++++++++++ examples/diary/Lucas-20210102-Journal.md | 28 +++++++++++ examples/diary/Lucas-20210103-Diary.md | 30 +++++++++++ examples/diary/Lucas-20210103-Journal.md | 30 +++++++++++ examples/diary/Lucas-20210104-Diary.md | 27 ++++++++++ examples/diary/Lucas-20210104-Journal.md | 27 ++++++++++ examples/diary/Lucas-20210105-Diary.md | 28 +++++++++++ examples/diary/Lucas-20210105-Journal.md | 28 +++++++++++ src/collecting.ts | 58 +++++++++++++++------- src/helper.ts | 36 ++++++++++++++ src/parsing.ts | 49 ++++++------------ 25 files changed, 684 insertions(+), 54 deletions(-) create mode 100644 examples/diary/Jeffrey-20210101-Diary.md create mode 100644 examples/diary/Jeffrey-20210101-Journal.md create mode 100644 examples/diary/Jeffrey-20210102-Diary.md create mode 100644 examples/diary/Jeffrey-20210102-Journal.md create mode 100644 examples/diary/Jeffrey-20210103-Diary.md create mode 100644 examples/diary/Jeffrey-20210103-Journal.md create mode 100644 examples/diary/Jeffrey-20210104-Diary.md create mode 100644 examples/diary/Jeffrey-20210104-Journal.md create mode 100644 examples/diary/Jeffrey-20210105-Diary.md create mode 100644 examples/diary/Jeffrey-20210105-Journal.md create mode 100644 examples/diary/Lucas-20210101-Diary.md create mode 100644 examples/diary/Lucas-20210101-Journal.md create mode 100644 examples/diary/Lucas-20210102-Diary.md create mode 100644 examples/diary/Lucas-20210102-Journal.md create mode 100644 examples/diary/Lucas-20210103-Diary.md create mode 100644 examples/diary/Lucas-20210103-Journal.md create mode 100644 examples/diary/Lucas-20210104-Diary.md create mode 100644 examples/diary/Lucas-20210104-Journal.md create mode 100644 examples/diary/Lucas-20210105-Diary.md create mode 100644 examples/diary/Lucas-20210105-Journal.md diff --git a/docs/InputParameters.md b/docs/InputParameters.md index 44cf30b..f2a8944 100644 --- a/docs/InputParameters.md +++ b/docs/InputParameters.md @@ -22,8 +22,8 @@ These key-value pairs are placed under the code block root. | `searchTarget` | Target to search
[[detail](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/TargetEvaluation.md)] | NT (Number of Targets) | Must be provided | | `folder` | Root path containing notes to search | 1 | Root of this vault | | `dateFormat` | Date format
Use [Moment.js](https://momentjscom.readthedocs.io/en/latest/moment/04-displaying/01-format/) format or use [iso-8601](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md#iso-8601-date-format) | 1 | 'YYYY-MM-DD' | -| `dateFormatPrefix` | Prefix before your dateFormat | 1 | '' | -| `dateFormatSuffix` | Suffix after your dateFormat | 1 | '' | +| `dateFormatPrefix` | Prefix before your dateFormat (accept regex) | 1 | '' | +| `dateFormatSuffix` | Suffix after your dateFormat (accept regex) | 1 | '' | | `startDate` | Start date to collect data from
accept [relative date](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md#relative-date-input-for-startdate-and-enddate) | 1 | Min date found | | `endDate` | End date of to collect data
accept [relative date](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md#relative-date-input-for-startdate-and-enddate) | 1 | Max date found | | `datasetName` | Name of the dataset for a search target` | 1~NT | untitled | diff --git a/examples/TestDateFormats.md b/examples/TestDateFormats.md index a98b946..e2b481c 100644 --- a/examples/TestDateFormats.md +++ b/examples/TestDateFormats.md @@ -119,6 +119,7 @@ The string provided in dateFormatPrefix and dateFormatSuffix will be removed bef searchType: tag searchTarget: weight folder: diary +dateFormat: YYYYMMDD dateFormatPrefix: D- startDate: D-20210101 endDate: D-20210105 @@ -135,6 +136,7 @@ line: searchType: tag searchTarget: weight folder: diary +dateFormat: YYYYMMDD dateFormatSuffix: -D startDate: 20210101-D endDate: 20210105-D @@ -145,6 +147,31 @@ line: lineColor: yellow ``` +### Using prefix and suffix with regular expression + +Examples of file name +- Jeffrey-20210101-Journal +- Jeffrey-20210102-Diary +- Lucas-2021-0103-Journal +- Lucas-2021-0104-Diary + +Data from the same days will be summed up. +``` tracker +searchType: tag +searchTarget: exercise-pushup +folder: diary +dateFormat: YYYYMMDD +dateFormatPrefix: '(Jeffrey-|Lucas-)' +dateFormatSuffix: '(-Journal|-Diary)' +startDate: 20210101 +endDate: 20210105 +line: + title: PushUp + yAxisLabel: Count + yAxisUnit: times + lineColor: yellow +``` + ## Relative Date Input for startDate and endDate The reference date of the relative date input is 'today' (The current date of your computer), So diff --git a/examples/diary/Jeffrey-20210101-Diary.md b/examples/diary/Jeffrey-20210101-Diary.md new file mode 100644 index 0000000..294ce1a --- /dev/null +++ b/examples/diary/Jeffrey-20210101-Diary.md @@ -0,0 +1,28 @@ +--- +tags: work_log +mood: 10 +bloodpressure: 177.4/121.8 +--- + +#weight:74.0kg + +#exercise-pushup:44 +#exercise-plank:37sec + + +⭐⭐⭐⭐⭐ + +#finance/bank1:-3.4USD + +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + +obsidian-tracker+1@gmail.com +obsidian-tracker@yahoo.com + +weightlifting: 10 + +#sin:0.00000/0.20791/0.40674/0.58779/0.74314/0.86603/0.95106/0.99452/0.99452 + +#sinsquare:0.00000/0.04323/0.16543/0.34549/0.55226/0.75000/0.90451/0.98907/0.98907 + diff --git a/examples/diary/Jeffrey-20210101-Journal.md b/examples/diary/Jeffrey-20210101-Journal.md new file mode 100644 index 0000000..294ce1a --- /dev/null +++ b/examples/diary/Jeffrey-20210101-Journal.md @@ -0,0 +1,28 @@ +--- +tags: work_log +mood: 10 +bloodpressure: 177.4/121.8 +--- + +#weight:74.0kg + +#exercise-pushup:44 +#exercise-plank:37sec + + +⭐⭐⭐⭐⭐ + +#finance/bank1:-3.4USD + +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + +obsidian-tracker+1@gmail.com +obsidian-tracker@yahoo.com + +weightlifting: 10 + +#sin:0.00000/0.20791/0.40674/0.58779/0.74314/0.86603/0.95106/0.99452/0.99452 + +#sinsquare:0.00000/0.04323/0.16543/0.34549/0.55226/0.75000/0.90451/0.98907/0.98907 + diff --git a/examples/diary/Jeffrey-20210102-Diary.md b/examples/diary/Jeffrey-20210102-Diary.md new file mode 100644 index 0000000..f9425bd --- /dev/null +++ b/examples/diary/Jeffrey-20210102-Diary.md @@ -0,0 +1,28 @@ +--- +tags: +mood: 8 +bloodpressure: 174.8/121.6 +--- + +#weight:68.8kg + +#exercise-pushup:38 +#exercise-plank:112sec + + +⭐⭐⭐ + +#finance/bank1:-2.7USD + +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + +obsidian-tracker@gmail.com +obsidian-tracker@yahoo.com + +weightlifting: 16 + +#sin:0.20791/0.40674/0.58779/0.74314/0.86603/0.95106/0.99452/0.99452/0.95106 + +#sinsquare:0.04323/0.16543/0.34549/0.55226/0.75000/0.90451/0.98907/0.98907/0.90451 + diff --git a/examples/diary/Jeffrey-20210102-Journal.md b/examples/diary/Jeffrey-20210102-Journal.md new file mode 100644 index 0000000..f9425bd --- /dev/null +++ b/examples/diary/Jeffrey-20210102-Journal.md @@ -0,0 +1,28 @@ +--- +tags: +mood: 8 +bloodpressure: 174.8/121.6 +--- + +#weight:68.8kg + +#exercise-pushup:38 +#exercise-plank:112sec + + +⭐⭐⭐ + +#finance/bank1:-2.7USD + +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + +obsidian-tracker@gmail.com +obsidian-tracker@yahoo.com + +weightlifting: 16 + +#sin:0.20791/0.40674/0.58779/0.74314/0.86603/0.95106/0.99452/0.99452/0.95106 + +#sinsquare:0.04323/0.16543/0.34549/0.55226/0.75000/0.90451/0.98907/0.98907/0.90451 + diff --git a/examples/diary/Jeffrey-20210103-Diary.md b/examples/diary/Jeffrey-20210103-Diary.md new file mode 100644 index 0000000..3a89f50 --- /dev/null +++ b/examples/diary/Jeffrey-20210103-Diary.md @@ -0,0 +1,30 @@ +--- +tags: +mood: 7 +bloodpressure: 178.2/119.4 +--- + +#weight:74.9kg + +#exercise-pushup:32 +#exercise-plank:56sec + +#meditation + +⭐⭐⭐⭐⭐ + +#finance/bank1:-3.7USD + +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + +obsidian-tracker@gmail.com +obsidian-tracker+1@gmail.com +obsidian-tracker@yahoo.com + +weightlifting: 16 + +#sin:0.40674/0.58779/0.74314/0.86603/0.95106/0.99452/0.99452/0.95106/0.86603 + +#sinsquare:0.16543/0.34549/0.55226/0.75000/0.90451/0.98907/0.98907/0.90451/0.75000 + diff --git a/examples/diary/Jeffrey-20210103-Journal.md b/examples/diary/Jeffrey-20210103-Journal.md new file mode 100644 index 0000000..3a89f50 --- /dev/null +++ b/examples/diary/Jeffrey-20210103-Journal.md @@ -0,0 +1,30 @@ +--- +tags: +mood: 7 +bloodpressure: 178.2/119.4 +--- + +#weight:74.9kg + +#exercise-pushup:32 +#exercise-plank:56sec + +#meditation + +⭐⭐⭐⭐⭐ + +#finance/bank1:-3.7USD + +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + +obsidian-tracker@gmail.com +obsidian-tracker+1@gmail.com +obsidian-tracker@yahoo.com + +weightlifting: 16 + +#sin:0.40674/0.58779/0.74314/0.86603/0.95106/0.99452/0.99452/0.95106/0.86603 + +#sinsquare:0.16543/0.34549/0.55226/0.75000/0.90451/0.98907/0.98907/0.90451/0.75000 + diff --git a/examples/diary/Jeffrey-20210104-Diary.md b/examples/diary/Jeffrey-20210104-Diary.md new file mode 100644 index 0000000..6ee80be --- /dev/null +++ b/examples/diary/Jeffrey-20210104-Diary.md @@ -0,0 +1,27 @@ +--- +tags: work_log +mood: 3 +bloodpressure: 178.6/119.2 +--- + +#weight:73.5kg + +#exercise-pushup:40 +#exercise-plank:74sec + +#meditation + +⭐⭐⭐⭐⭐ + +#finance/bank1:-2.5USD + +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + + +weightlifting: 19 + +#sin:0.58779/0.74314/0.86603/0.95106/0.99452/0.99452/0.95106/0.86603/0.74314 + +#sinsquare:0.34549/0.55226/0.75000/0.90451/0.98907/0.98907/0.90451/0.75000/0.55226 + diff --git a/examples/diary/Jeffrey-20210104-Journal.md b/examples/diary/Jeffrey-20210104-Journal.md new file mode 100644 index 0000000..6ee80be --- /dev/null +++ b/examples/diary/Jeffrey-20210104-Journal.md @@ -0,0 +1,27 @@ +--- +tags: work_log +mood: 3 +bloodpressure: 178.6/119.2 +--- + +#weight:73.5kg + +#exercise-pushup:40 +#exercise-plank:74sec + +#meditation + +⭐⭐⭐⭐⭐ + +#finance/bank1:-2.5USD + +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + + +weightlifting: 19 + +#sin:0.58779/0.74314/0.86603/0.95106/0.99452/0.99452/0.95106/0.86603/0.74314 + +#sinsquare:0.34549/0.55226/0.75000/0.90451/0.98907/0.98907/0.90451/0.75000/0.55226 + diff --git a/examples/diary/Jeffrey-20210105-Diary.md b/examples/diary/Jeffrey-20210105-Diary.md new file mode 100644 index 0000000..c836d81 --- /dev/null +++ b/examples/diary/Jeffrey-20210105-Diary.md @@ -0,0 +1,28 @@ +--- +tags: work_log +mood: 1 +bloodpressure: 177/119 +--- + +#weight:70.0kg + +#exercise-pushup:35 +#exercise-plank:34sec + +#meditation + +⭐⭐ + +#finance/bank1:-2.6USD + +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + +obsidian-tracker@gmail.com + +weightlifting: 10 + +#sin:0.74314/0.86603/0.95106/0.99452/0.99452/0.95106/0.86603/0.74314/0.58779 + +#sinsquare:0.55226/0.75000/0.90451/0.98907/0.98907/0.90451/0.75000/0.55226/0.34549 + diff --git a/examples/diary/Jeffrey-20210105-Journal.md b/examples/diary/Jeffrey-20210105-Journal.md new file mode 100644 index 0000000..c836d81 --- /dev/null +++ b/examples/diary/Jeffrey-20210105-Journal.md @@ -0,0 +1,28 @@ +--- +tags: work_log +mood: 1 +bloodpressure: 177/119 +--- + +#weight:70.0kg + +#exercise-pushup:35 +#exercise-plank:34sec + +#meditation + +⭐⭐ + +#finance/bank1:-2.6USD + +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + +obsidian-tracker@gmail.com + +weightlifting: 10 + +#sin:0.74314/0.86603/0.95106/0.99452/0.99452/0.95106/0.86603/0.74314/0.58779 + +#sinsquare:0.55226/0.75000/0.90451/0.98907/0.98907/0.90451/0.75000/0.55226/0.34549 + diff --git a/examples/diary/Lucas-20210101-Diary.md b/examples/diary/Lucas-20210101-Diary.md new file mode 100644 index 0000000..294ce1a --- /dev/null +++ b/examples/diary/Lucas-20210101-Diary.md @@ -0,0 +1,28 @@ +--- +tags: work_log +mood: 10 +bloodpressure: 177.4/121.8 +--- + +#weight:74.0kg + +#exercise-pushup:44 +#exercise-plank:37sec + + +⭐⭐⭐⭐⭐ + +#finance/bank1:-3.4USD + +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + +obsidian-tracker+1@gmail.com +obsidian-tracker@yahoo.com + +weightlifting: 10 + +#sin:0.00000/0.20791/0.40674/0.58779/0.74314/0.86603/0.95106/0.99452/0.99452 + +#sinsquare:0.00000/0.04323/0.16543/0.34549/0.55226/0.75000/0.90451/0.98907/0.98907 + diff --git a/examples/diary/Lucas-20210101-Journal.md b/examples/diary/Lucas-20210101-Journal.md new file mode 100644 index 0000000..294ce1a --- /dev/null +++ b/examples/diary/Lucas-20210101-Journal.md @@ -0,0 +1,28 @@ +--- +tags: work_log +mood: 10 +bloodpressure: 177.4/121.8 +--- + +#weight:74.0kg + +#exercise-pushup:44 +#exercise-plank:37sec + + +⭐⭐⭐⭐⭐ + +#finance/bank1:-3.4USD + +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + +obsidian-tracker+1@gmail.com +obsidian-tracker@yahoo.com + +weightlifting: 10 + +#sin:0.00000/0.20791/0.40674/0.58779/0.74314/0.86603/0.95106/0.99452/0.99452 + +#sinsquare:0.00000/0.04323/0.16543/0.34549/0.55226/0.75000/0.90451/0.98907/0.98907 + diff --git a/examples/diary/Lucas-20210102-Diary.md b/examples/diary/Lucas-20210102-Diary.md new file mode 100644 index 0000000..f9425bd --- /dev/null +++ b/examples/diary/Lucas-20210102-Diary.md @@ -0,0 +1,28 @@ +--- +tags: +mood: 8 +bloodpressure: 174.8/121.6 +--- + +#weight:68.8kg + +#exercise-pushup:38 +#exercise-plank:112sec + + +⭐⭐⭐ + +#finance/bank1:-2.7USD + +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + +obsidian-tracker@gmail.com +obsidian-tracker@yahoo.com + +weightlifting: 16 + +#sin:0.20791/0.40674/0.58779/0.74314/0.86603/0.95106/0.99452/0.99452/0.95106 + +#sinsquare:0.04323/0.16543/0.34549/0.55226/0.75000/0.90451/0.98907/0.98907/0.90451 + diff --git a/examples/diary/Lucas-20210102-Journal.md b/examples/diary/Lucas-20210102-Journal.md new file mode 100644 index 0000000..f9425bd --- /dev/null +++ b/examples/diary/Lucas-20210102-Journal.md @@ -0,0 +1,28 @@ +--- +tags: +mood: 8 +bloodpressure: 174.8/121.6 +--- + +#weight:68.8kg + +#exercise-pushup:38 +#exercise-plank:112sec + + +⭐⭐⭐ + +#finance/bank1:-2.7USD + +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + +obsidian-tracker@gmail.com +obsidian-tracker@yahoo.com + +weightlifting: 16 + +#sin:0.20791/0.40674/0.58779/0.74314/0.86603/0.95106/0.99452/0.99452/0.95106 + +#sinsquare:0.04323/0.16543/0.34549/0.55226/0.75000/0.90451/0.98907/0.98907/0.90451 + diff --git a/examples/diary/Lucas-20210103-Diary.md b/examples/diary/Lucas-20210103-Diary.md new file mode 100644 index 0000000..3a89f50 --- /dev/null +++ b/examples/diary/Lucas-20210103-Diary.md @@ -0,0 +1,30 @@ +--- +tags: +mood: 7 +bloodpressure: 178.2/119.4 +--- + +#weight:74.9kg + +#exercise-pushup:32 +#exercise-plank:56sec + +#meditation + +⭐⭐⭐⭐⭐ + +#finance/bank1:-3.7USD + +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + +obsidian-tracker@gmail.com +obsidian-tracker+1@gmail.com +obsidian-tracker@yahoo.com + +weightlifting: 16 + +#sin:0.40674/0.58779/0.74314/0.86603/0.95106/0.99452/0.99452/0.95106/0.86603 + +#sinsquare:0.16543/0.34549/0.55226/0.75000/0.90451/0.98907/0.98907/0.90451/0.75000 + diff --git a/examples/diary/Lucas-20210103-Journal.md b/examples/diary/Lucas-20210103-Journal.md new file mode 100644 index 0000000..3a89f50 --- /dev/null +++ b/examples/diary/Lucas-20210103-Journal.md @@ -0,0 +1,30 @@ +--- +tags: +mood: 7 +bloodpressure: 178.2/119.4 +--- + +#weight:74.9kg + +#exercise-pushup:32 +#exercise-plank:56sec + +#meditation + +⭐⭐⭐⭐⭐ + +#finance/bank1:-3.7USD + +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + +obsidian-tracker@gmail.com +obsidian-tracker+1@gmail.com +obsidian-tracker@yahoo.com + +weightlifting: 16 + +#sin:0.40674/0.58779/0.74314/0.86603/0.95106/0.99452/0.99452/0.95106/0.86603 + +#sinsquare:0.16543/0.34549/0.55226/0.75000/0.90451/0.98907/0.98907/0.90451/0.75000 + diff --git a/examples/diary/Lucas-20210104-Diary.md b/examples/diary/Lucas-20210104-Diary.md new file mode 100644 index 0000000..6ee80be --- /dev/null +++ b/examples/diary/Lucas-20210104-Diary.md @@ -0,0 +1,27 @@ +--- +tags: work_log +mood: 3 +bloodpressure: 178.6/119.2 +--- + +#weight:73.5kg + +#exercise-pushup:40 +#exercise-plank:74sec + +#meditation + +⭐⭐⭐⭐⭐ + +#finance/bank1:-2.5USD + +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + + +weightlifting: 19 + +#sin:0.58779/0.74314/0.86603/0.95106/0.99452/0.99452/0.95106/0.86603/0.74314 + +#sinsquare:0.34549/0.55226/0.75000/0.90451/0.98907/0.98907/0.90451/0.75000/0.55226 + diff --git a/examples/diary/Lucas-20210104-Journal.md b/examples/diary/Lucas-20210104-Journal.md new file mode 100644 index 0000000..6ee80be --- /dev/null +++ b/examples/diary/Lucas-20210104-Journal.md @@ -0,0 +1,27 @@ +--- +tags: work_log +mood: 3 +bloodpressure: 178.6/119.2 +--- + +#weight:73.5kg + +#exercise-pushup:40 +#exercise-plank:74sec + +#meditation + +⭐⭐⭐⭐⭐ + +#finance/bank1:-2.5USD + +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + + +weightlifting: 19 + +#sin:0.58779/0.74314/0.86603/0.95106/0.99452/0.99452/0.95106/0.86603/0.74314 + +#sinsquare:0.34549/0.55226/0.75000/0.90451/0.98907/0.98907/0.90451/0.75000/0.55226 + diff --git a/examples/diary/Lucas-20210105-Diary.md b/examples/diary/Lucas-20210105-Diary.md new file mode 100644 index 0000000..c836d81 --- /dev/null +++ b/examples/diary/Lucas-20210105-Diary.md @@ -0,0 +1,28 @@ +--- +tags: work_log +mood: 1 +bloodpressure: 177/119 +--- + +#weight:70.0kg + +#exercise-pushup:35 +#exercise-plank:34sec + +#meditation + +⭐⭐ + +#finance/bank1:-2.6USD + +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + +obsidian-tracker@gmail.com + +weightlifting: 10 + +#sin:0.74314/0.86603/0.95106/0.99452/0.99452/0.95106/0.86603/0.74314/0.58779 + +#sinsquare:0.55226/0.75000/0.90451/0.98907/0.98907/0.90451/0.75000/0.55226/0.34549 + diff --git a/examples/diary/Lucas-20210105-Journal.md b/examples/diary/Lucas-20210105-Journal.md new file mode 100644 index 0000000..c836d81 --- /dev/null +++ b/examples/diary/Lucas-20210105-Journal.md @@ -0,0 +1,28 @@ +--- +tags: work_log +mood: 1 +bloodpressure: 177/119 +--- + +#weight:70.0kg + +#exercise-pushup:35 +#exercise-plank:34sec + +#meditation + +⭐⭐ + +#finance/bank1:-2.6USD + +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + +obsidian-tracker@gmail.com + +weightlifting: 10 + +#sin:0.74314/0.86603/0.95106/0.99452/0.99452/0.95106/0.86603/0.74314/0.58779 + +#sinsquare:0.55226/0.75000/0.90451/0.98907/0.98907/0.90451/0.75000/0.55226/0.34549 + diff --git a/src/collecting.ts b/src/collecting.ts index 9794df1..77eaae2 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -14,24 +14,14 @@ import * as helper from "./helper"; export function getDateFromFilename(file: TFile, renderInfo: RenderInfo) { let fileBaseName = file.basename; - if ( - renderInfo.dateFormatPrefix && - fileBaseName.startsWith(renderInfo.dateFormatPrefix) - ) { - fileBaseName = fileBaseName.slice(renderInfo.dateFormatPrefix.length); - } - if ( - renderInfo.dateFormatSuffix && - fileBaseName.endsWith(renderInfo.dateFormatSuffix) - ) { - fileBaseName = fileBaseName.slice( - 0, - fileBaseName.length - renderInfo.dateFormatSuffix.length - ); - } - // console.log(fileBaseName); - - let fileDate = helper.strToDate(fileBaseName, renderInfo.dateFormat); + let dateString = helper.getDateStringFromInputString( + fileBaseName, + renderInfo.dateFormatPrefix, + renderInfo.dateFormatSuffix + ); + // console.log(dateString); + + let fileDate = helper.strToDate(dateString, renderInfo.dateFormat); // console.log(fileDate); return fileDate; @@ -53,6 +43,12 @@ export function getDateFromFrontmatter( if (helper.deepValue(frontMatter, query.getTarget())) { let strDate = helper.deepValue(frontMatter, query.getTarget()); + strDate = helper.getDateStringFromInputString( + strDate, + renderInfo.dateFormatPrefix, + renderInfo.dateFormatSuffix + ); + date = helper.strToDate(strDate, renderInfo.dateFormat); // console.log(date); } @@ -92,6 +88,13 @@ export function getDateFromTag( typeof match.groups.values !== "undefined" ) { let strDate = match.groups.values; + + strDate = helper.getDateStringFromInputString( + strDate, + renderInfo.dateFormatPrefix, + renderInfo.dateFormatSuffix + ); + date = helper.strToDate(strDate, renderInfo.dateFormat); if (date.isValid()) { break; @@ -126,6 +129,12 @@ export function getDateFromText( let strDate = match.groups.value.trim(); // console.log(strDate); + strDate = helper.getDateStringFromInputString( + strDate, + renderInfo.dateFormatPrefix, + renderInfo.dateFormatSuffix + ); + date = helper.strToDate(strDate, renderInfo.dateFormat); if (date.isValid()) { break; @@ -172,6 +181,13 @@ export function getDateFromDvField( typeof match.groups.values !== "undefined" ) { let strDate = match.groups.values.trim(); + + strDate = helper.getDateStringFromInputString( + strDate, + renderInfo.dateFormatPrefix, + renderInfo.dateFormatSuffix + ); + date = helper.strToDate(strDate, renderInfo.dateFormat); if (date.isValid()) { break; @@ -247,6 +263,12 @@ export function getDateFromTask( let strDate = match.groups.value.trim(); // console.log(strDate); + strDate = helper.getDateStringFromInputString( + strDate, + renderInfo.dateFormatPrefix, + renderInfo.dateFormatSuffix + ); + date = helper.strToDate(strDate, renderInfo.dateFormat); if (date.isValid()) { break; diff --git a/src/helper.ts b/src/helper.ts index 997cae3..8c2c905 100644 --- a/src/helper.ts +++ b/src/helper.ts @@ -36,6 +36,42 @@ function makeTimeFormat() { } const timeFormat = makeTimeFormat(); +export function getDateStringFromInputString( + inputString: string, + dateFormatPrefix: string, + dateFormatSuffix: string +) { + if (!dateFormatPrefix && !dateFormatSuffix) return inputString; + + let dateString = inputString; + if (dateString.startsWith("^")) { + dateString = dateString.slice(1); + } + // console.log(dateString); + + if (dateFormatPrefix) { + let strRegex = "^(" + dateFormatPrefix + ")"; + // console.log(strRegex); + let regex = new RegExp(strRegex, "gm"); + if (regex.test(dateString)) { + dateString = dateString.replace(regex, ""); + } + } + // console.log(dateString); + + if (dateFormatSuffix) { + let strRegex = "(" + dateFormatSuffix + ")$"; + // console.log(strRegex); + let regex = new RegExp(strRegex, "gm"); + if (regex.test(dateString)) { + dateString = dateString.replace(regex, ""); + } + } + // console.log(dateString); + + return dateString; +} + export function strToDate(strDate: string, dateFormat: string): Moment { let format: any = dateFormat; diff --git a/src/parsing.ts b/src/parsing.ts index fdeb16b..45e724f 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -1123,31 +1123,22 @@ export function getRenderInfoFromYaml( // startDate, endDate // console.log("Parsing startDate"); if (typeof yaml.startDate === "string") { - let strStartDate = yaml.startDate; - if ( - renderInfo.dateFormatPrefix && - strStartDate.startsWith(renderInfo.dateFormatPrefix) - ) { - strStartDate = strStartDate.slice( - renderInfo.dateFormatPrefix.length - ); - } - if ( - renderInfo.dateFormatSuffix && - strStartDate.endsWith(renderInfo.dateFormatSuffix) - ) { - strStartDate = strStartDate.slice( - 0, - strStartDate.length - renderInfo.dateFormatSuffix.length - ); - } + let strStartDate = helper.getDateStringFromInputString( + yaml.startDate, + renderInfo.dateFormatPrefix, + renderInfo.dateFormatSuffix + ); + // console.log(strStartDate); + // relative date let startDate = null; let isStartDateValid = false; startDate = helper.relDateStringToDate( strStartDate, renderInfo.dateFormat ); + // console.log(startDate); + if (startDate) { isStartDateValid = true; } else { @@ -1156,6 +1147,7 @@ export function getRenderInfoFromYaml( isStartDateValid = true; } } + // console.log(startDate); if (!isStartDateValid || startDate === null) { let errorMessage = @@ -1168,22 +1160,11 @@ export function getRenderInfoFromYaml( // console.log("Parsing endDate"); if (typeof yaml.endDate === "string") { - let strEndDate = yaml.endDate; - if ( - renderInfo.dateFormatPrefix && - strEndDate.startsWith(renderInfo.dateFormatPrefix) - ) { - strEndDate = strEndDate.slice(renderInfo.dateFormatPrefix.length); - } - if ( - renderInfo.dateFormatSuffix && - strEndDate.endsWith(renderInfo.dateFormatSuffix) - ) { - strEndDate = strEndDate.slice( - 0, - strEndDate.length - renderInfo.dateFormatSuffix.length - ); - } + let strEndDate = helper.getDateStringFromInputString( + yaml.endDate, + renderInfo.dateFormatPrefix, + renderInfo.dateFormatSuffix + ); let endDate = null; let isEndDateValid = false; From 255c3fb404e55360e4b79f1ca8f06001d1bd9e78 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Thu, 5 Aug 2021 22:45:14 +0800 Subject: [PATCH 051/277] Add four parameters xAxisTickInterval, yAxisTickInterval, xAxisTickLabelFormat, yAxisTickLabelFormat --- examples/TestAxisIntervalAndFormat.md | 102 ++++++++ src/data.ts | 8 + src/helper.ts | 202 +++++++++++++--- src/parsing.ts | 76 +++++- src/rendering.ts | 321 ++++++++++++++++++-------- 5 files changed, 586 insertions(+), 123 deletions(-) create mode 100644 examples/TestAxisIntervalAndFormat.md diff --git a/examples/TestAxisIntervalAndFormat.md b/examples/TestAxisIntervalAndFormat.md new file mode 100644 index 0000000..3a8dee1 --- /dev/null +++ b/examples/TestAxisIntervalAndFormat.md @@ -0,0 +1,102 @@ +# Test Axis Interval and Tick Label Format + +## Y Axis Interval + +Numeric Y values +``` tracker +searchType: tag +searchTarget: weight +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-31 +line: + title: Weight Log + yAxisLabel: Weight + yAxisUnit: kg + lineColor: yellow + yAxisTickInterval: 5 + yMin: 55 +``` + +Y values in time +``` tracker +searchType: frontmatter +searchTarget: clock-in, clock-out +endDate: 2021-01-15 +folder: diary +datasetName: Clock-In, Clock-Out +line: + title: "Working Hours" + yAxisLabel: "Time (24h)" + reverseYAxis: true + lineColor: yellow, red + showPoint: true + showLegend: true + yAxisTickInterval: 3h +``` + +## Y Axis Tick Label Format +Float numbers with precision of 1 decimal digits +``` tracker +searchType: tag +searchTarget: weight +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-31 +line: + title: Weight Log + yAxisLabel: Weight + yAxisUnit: kg + lineColor: yellow + yAxisTickInterval: 5 + yAxisTickLabelFormat: .2f + yMin: 55 +``` + +Y values in time +``` tracker +searchType: frontmatter +searchTarget: clock-in, clock-out +endDate: 2021-01-15 +folder: diary +datasetName: Clock-In, Clock-Out +line: + title: "Working Hours" + yAxisLabel: "Time (24h)" + reverseYAxis: true + lineColor: yellow, red + showPoint: true + yAxisTickInterval: 3h + yAxisTickLabelFormat: .1f +``` + +## X Axis Interval +``` tracker +searchType: tag +searchTarget: weight +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-31 +line: + title: Weight Log + yAxisLabel: Weight + yAxisUnit: kg + lineColor: yellow + xAxisTickInterval: 1w +``` + +## X Axis Tick Label Format +``` tracker +searchType: tag +searchTarget: weight +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-31 +line: + title: Weight Log + yAxisLabel: Weight + yAxisUnit: kg + lineColor: yellow + xAxisTickInterval: 7d + xAxisTickLabelFormat: M-DD +``` \ No newline at end of file diff --git a/src/data.ts b/src/data.ts index 8bb1bb8..6c1827f 100644 --- a/src/data.ts +++ b/src/data.ts @@ -649,6 +649,10 @@ export class CommonChartInfo implements IGraph, ILegend { yAxisColor: string[]; yAxisLabelColor: string[]; yAxisUnit: string[]; + xAxisTickInterval: string; + yAxisTickInterval: string[]; + xAxisTickLabelFormat: string; + yAxisTickLabelFormat: string[]; yMin: number[]; yMax: number[]; reverseYAxis: boolean[]; @@ -670,6 +674,10 @@ export class CommonChartInfo implements IGraph, ILegend { this.yAxisColor = []; // "", 2 elements this.yAxisLabelColor = []; // "", 2 elements this.yAxisUnit = []; // "", 2 elements + this.xAxisTickInterval = null; // the string will be converted to Duration (a month is not nesscesary to 30 days) + this.yAxisTickInterval = []; // null, 2 elements + this.xAxisTickLabelFormat = null; + this.yAxisTickLabelFormat = []; // null, 2 elements this.yMin = []; // null, 2 elements this.yMax = []; // null, 2 elements this.reverseYAxis = []; // false, 2 elements diff --git a/src/helper.ts b/src/helper.ts index 8c2c905..9eb9077 100644 --- a/src/helper.ts +++ b/src/helper.ts @@ -2,7 +2,7 @@ import { RenderInfo, Size, Transform } from "./data"; import { TFile, TFolder, normalizePath } from "obsidian"; import { ValueType } from "./data"; import * as d3 from "d3"; -import { Moment } from "moment"; +import { Moment, Duration } from "moment"; // date and time function makeTimeFormat() { @@ -95,39 +95,187 @@ export function strToDate(strDate: string, dateFormat: string): Moment { return date; } -export function relDateStringToDate( +function extractValueFromDurationString( + strDuration: string, + units: Array, + removePattern: boolean = true +): [number, string] { + if (!strDuration || !units || units.length === 0) { + return [null, strDuration]; + } + + let value = null; + const strRegex = "(?[0-9]+)(" + units.join("|") + ")"; + // console.log(strRegex); + const regex = new RegExp(strRegex, "gm"); + let match = regex.exec(strDuration); + if ( + match && + typeof match.groups !== "undefined" && + typeof match.groups.value !== "undefined" + ) { + // console.log(match); + value = parseFloat(match.groups.value); + if (Number.isNumber(value) && !Number.isNaN(value)) { + if (removePattern) { + strDuration = strDuration.replace(regex, ""); + } + // console.log(value); + // console.log(strDuration); + return [value, strDuration]; + } + } + + return [null, strDuration]; +} + +export function parseDurationString(strDuration: string) { + //duration string format: + //year (years, y, Y), + //month (months, M), // m will conflict with minute!!! + //week (weeks, w, W), + //day (days, d, D), + //hour (hours, h, H), + //minute (minutes, m), // M will conflict with month!!! + //second (seconds, s, S) + if (!strDuration) return null; + + let duration: Duration = window.moment.duration(0); + let hasValue = false; + + let negativeValue = false; + if (strDuration.startsWith("+")) { + negativeValue = false; + strDuration = strDuration.substring(1); + } + if (strDuration.startsWith("-")) { + negativeValue = true; + strDuration = strDuration.substring(1); + } + + let yearValue = null; + [yearValue, strDuration] = extractValueFromDurationString(strDuration, [ + "year", + "years", + "Y", + "y", + ]); + if (yearValue !== null) { + if (negativeValue) { + yearValue *= -1; + } + duration.add(yearValue, "years"); + hasValue = true; + } + + let monthValue = null; + [monthValue, strDuration] = extractValueFromDurationString(strDuration, [ + "month", + "months", + "M", + ]); + if (monthValue !== null) { + if (negativeValue) { + monthValue *= -1; + } + duration.add(monthValue, "months"); + hasValue = true; + } + + let weekValue = null; + [weekValue, strDuration] = extractValueFromDurationString(strDuration, [ + "week", + "weeks", + "W", + "w", + ]); + if (weekValue !== null) { + if (negativeValue) { + weekValue *= -1; + } + duration.add(weekValue, "weeks"); + hasValue = true; + } + + let dayValue = null; + [dayValue, strDuration] = extractValueFromDurationString(strDuration, [ + "day", + "days", + "D", + "d", + ]); + if (dayValue !== null) { + if (negativeValue) { + dayValue *= -1; + } + duration.add(dayValue, "days"); + hasValue = true; + } + + let hourValue = null; + [hourValue, strDuration] = extractValueFromDurationString(strDuration, [ + "hour", + "hours", + "H", + "h", + ]); + if (hourValue !== null) { + if (negativeValue) { + hourValue *= -1; + } + duration.add(hourValue, "hours"); + hasValue = true; + } + + let minuteValue = null; + [minuteValue, strDuration] = extractValueFromDurationString(strDuration, [ + "minute", + "minutes", + "m", + ]); + if (minuteValue !== null) { + if (negativeValue) { + minuteValue *= -1; + } + duration.add(minuteValue, "minutes"); + hasValue = true; + } + + let secondValue = null; + [secondValue, strDuration] = extractValueFromDurationString(strDuration, [ + "second", + "seconds", + "S", + "s", + ]); + if (secondValue !== null) { + if (negativeValue) { + secondValue *= -1; + } + duration.add(secondValue, "seconds"); + hasValue = true; + } + + if (!hasValue) return null; + return duration; +} + +export function getDateByDurationToToday( relDateString: string, dateFormat: string ): Moment { let date = null; - const relDateRegex = /^(?[\-\+]?[0-9]+)(?[dwmy])$/; - if (relDateRegex.test(relDateString)) { - let match = relDateRegex.exec(relDateString); - if ( - typeof match.groups !== "undefined" && - typeof match.groups.value !== "undefined" && - typeof match.groups.unit !== "undefined" - ) { - let value = parseFloat(match.groups.value); - let unit = match.groups.unit; - date = getDateToday(dateFormat); - if (unit === "d") { - date = date.add(value, "days"); - } else if (unit === "w") { - date = date.add(value, "weeks"); - } else if (unit === "m") { - date = date.add(value, "months"); - } else if (unit === "y") { - date = date.add(value, "years"); - } - } - } + let duration = parseDurationString(relDateString); + if (duration && window.moment.isDuration(duration)) { + date = getDateToday(dateFormat); + date = date.add(duration); - if (date && date.isValid()) { - return date; + if (date && date.isValid()) { + return date; + } } - return null; + return date; } export function dateToStr(date: Moment, dateFormat: string): string { diff --git a/src/parsing.ts b/src/parsing.ts index 45e724f..481a8af 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -496,6 +496,25 @@ function getStringArrayFromInput( } } } + } else if (typeof input === "number") { + let strNumber = input.toString(); + if (validator) { + if (validator(strNumber)) { + array[0] = strNumber; + numValidValue++; + for (let ind = 1; ind < array.length; ind++) { + array[ind] = strNumber; + } + } else { + errorMessage = "Invalid inputs for " + name; + } + } else { + array[0] = strNumber; + numValidValue++; + for (let ind = 1; ind < array.length; ind++) { + array[ind] = strNumber; + } + } } else { errorMessage = "Invalid inputs for " + name; } @@ -745,6 +764,56 @@ function parseCommonChartInfo(yaml: any, renderInfo: CommonChartInfo) { renderInfo.yAxisUnit = retYAxisUnit; // console.log(renderInfo.yAxisUnit); + // xAxisTickInterval + if (typeof yaml.xAxisTickInterval === "string") { + renderInfo.xAxisTickInterval = yaml.xAxisTickInterval; + } else if (typeof yaml.xAxisTickInterval === "number") { + renderInfo.xAxisTickInterval = yaml.xAxisTickInterval.toString(); + } + // console.log(renderInfo.xAxisTickInterval); + + // yAxisTickInterval + let retYAxisTickInterval = getStringArrayFromInput( + "yAxisTickInterval", + yaml.yAxisTickInterval, + 2, + null, + null, + true + ); + if (typeof retYAxisTickInterval === "string") { + return retYAxisTickInterval; // errorMessage + } + if (retYAxisTickInterval.length > 2) { + return "yAxisTickInterval accepts not more than two values for left and right y-axes"; + } + renderInfo.yAxisTickInterval = retYAxisTickInterval; + // console.log(renderInfo.yAxisTickInterval); + + // xAxisTickLabelFormat + if (typeof yaml.xAxisTickLabelFormat === "string") { + renderInfo.xAxisTickLabelFormat = yaml.xAxisTickLabelFormat; + } + // console.log(renderInfo.xAxisTickLabelFormat); + + // yAxisTickLabelFormat + let retYAxisTickLabelFormat = getStringArrayFromInput( + "yAxisTickLabelFormat", + yaml.yAxisTickLabelFormat, + 2, + null, + null, + true + ); + if (typeof retYAxisTickLabelFormat === "string") { + return retYAxisTickLabelFormat; // errorMessage + } + if (retYAxisTickLabelFormat.length > 2) { + return "yAxisTickLabelFormat accepts not more than two values for left and right y-axes"; + } + renderInfo.yAxisTickLabelFormat = retYAxisTickLabelFormat; + // console.log(renderInfo.yAxisTickLabelFormat); + // yMin let retYMin = getNumberArrayFromInput("yMin", yaml?.yMin, 2, null, true); if (typeof retYMin === "string") { @@ -1133,7 +1202,7 @@ export function getRenderInfoFromYaml( // relative date let startDate = null; let isStartDateValid = false; - startDate = helper.relDateStringToDate( + startDate = helper.getDateByDurationToToday( strStartDate, renderInfo.dateFormat ); @@ -1168,7 +1237,10 @@ export function getRenderInfoFromYaml( let endDate = null; let isEndDateValid = false; - endDate = helper.relDateStringToDate(strEndDate, renderInfo.dateFormat); + endDate = helper.getDateByDurationToToday( + strEndDate, + renderInfo.dateFormat + ); if (endDate) { isEndDateValid = true; } else { diff --git a/src/rendering.ts b/src/rendering.ts index 8b7a6b0..46d33d6 100644 --- a/src/rendering.ts +++ b/src/rendering.ts @@ -1,5 +1,5 @@ import * as d3 from "d3"; -import { Moment } from "moment"; +import { Moment, Duration } from "moment"; import { Datasets, DataPoint, @@ -25,107 +25,186 @@ import * as month from "./month"; import * as heatmap from "./heatmap"; import * as bullet from "./bullet"; import * as helper from "./helper"; - -function getXTickInterval(datasets: Datasets) { - let tickInterval; - let days = datasets.getDates().length; - - if (days <= 15) { - // number of ticks: 0-15 - tickInterval = d3.timeDay; - } else if (days <= 4 * 15) { - // number of ticks: 4-15 - tickInterval = d3.timeDay.every(4); - } else if (days <= 7 * 15) { - // number of ticks: 8-15 - tickInterval = d3.timeWeek; - } else if (days <= 15 * 30) { - // number of ticks: 4-15 - tickInterval = d3.timeMonth; - } else if (days <= 15 * 60) { - // number of ticks: 8-15 - tickInterval = d3.timeMonth.every(2); +import { sprintf } from "sprintf-js"; + +function getXTickValues( + dates: Moment[], + interval: Duration +): [Array, d3.TimeInterval] { + // The input interval could be null, + // generate tick values even if interval is null + + // console.log(interval); + + let tickValues: Array = []; + let tickInterval = null; + + // y values are time values + if (interval) { + let firstDate = dates[0]; + let lastDate = dates[dates.length - 1]; + tickValues = d3.timeDay.range( + firstDate.toDate(), + lastDate.toDate(), + interval.asDays() + ); } else { - tickInterval = d3.timeYear; + let days = dates.length; + if (days <= 15) { + // number of ticks: 0-15 + tickInterval = d3.timeDay; + } else if (days <= 4 * 15) { + // number of ticks: 4-15 + tickInterval = d3.timeDay.every(4); + } else if (days <= 7 * 15) { + // number of ticks: 8-15 + tickInterval = d3.timeWeek; + } else if (days <= 15 * 30) { + // number of ticks: 4-15 + tickInterval = d3.timeMonth; + } else if (days <= 15 * 60) { + // number of ticks: 8-15 + tickInterval = d3.timeMonth.every(2); + } else { + tickInterval = d3.timeYear; + } } - return tickInterval; + return [tickValues, tickInterval]; } -function getXTickFormat(datasets: Datasets) { - let tickFormat; - let days = datasets.getDates().length; - - if (days <= 15) { - // number of ticks: 0-15 - tickFormat = d3.timeFormat("%y-%m-%d"); - } else if (days <= 4 * 15) { - // number of ticks: 4-15 - tickFormat = d3.timeFormat("%y-%m-%d"); - } else if (days <= 7 * 15) { - // number of ticks: 8-15 - tickFormat = d3.timeFormat("%y-%m-%d"); - } else if (days <= 15 * 30) { - // number of ticks: 4-15 - tickFormat = d3.timeFormat("%y %b"); - } else if (days <= 15 * 60) { - // number of ticks: 8-15 - tickFormat = d3.timeFormat("%y %b"); +function getXTickLabelFormat(dates: Moment[], inTickLabelFormat: string) { + if (inTickLabelFormat) { + function fnTickLabelFormat(date: Date): string { + return helper.dateToStr(window.moment(date), inTickLabelFormat); + } + return fnTickLabelFormat; } else { - tickFormat = d3.timeFormat("%Y"); - } + let tickLabelFormat = null; + let days = dates.length; + + if (days <= 15) { + // number of ticks: 0-15 + tickLabelFormat = d3.timeFormat("%y-%m-%d"); + } else if (days <= 4 * 15) { + // number of ticks: 4-15 + tickLabelFormat = d3.timeFormat("%y-%m-%d"); + } else if (days <= 7 * 15) { + // number of ticks: 8-15 + tickLabelFormat = d3.timeFormat("%y-%m-%d"); + } else if (days <= 15 * 30) { + // number of ticks: 4-15 + tickLabelFormat = d3.timeFormat("%y %b"); + } else if (days <= 15 * 60) { + // number of ticks: 8-15 + tickLabelFormat = d3.timeFormat("%y %b"); + } else { + tickLabelFormat = d3.timeFormat("%Y"); + } - return tickFormat; + return tickLabelFormat; + } } -function getYTickValues(yLower: number, yUpper: number) { - // currently used for time value tick only, value in seconds +function getYTickValues( + yLower: number, + yUpper: number, + interval: number | Duration, + isTimeValue = false +) { + // The input interval could be null, + // generate tick values for time values even if interval is null + + // console.log(interval); + // console.log(isTimeValue); + const absExtent = Math.abs(yUpper - yLower); - let tickValues = []; - if (absExtent > 5 * 60 * 60) { - // extent over than 5 hours - // tick on the hour - yLower = Math.floor(yLower / 3600) * 3600; - yUpper = Math.ceil(yUpper / 3600) * 3600; - - tickValues = d3.range(yLower, yUpper, 3600); + let tickValues: Array = []; + + if (!isTimeValue) { + // y values are numbers + if (interval && typeof interval === "number") { + // !==null && !== 0 + tickValues = d3.range(yLower, yUpper, interval); + } } else { - // tick on the half hour - yLower = Math.floor(yLower / 1800) * 1800; - yUpper = Math.ceil(yUpper / 1800) * 1800; + // y values are time values + if (interval && window.moment.isDuration(interval)) { + let intervalInSeconds = Math.abs(interval.asSeconds()); + tickValues = d3.range(yLower, yUpper, intervalInSeconds); + } else { + // auto interval for time values + if (absExtent > 5 * 60 * 60) { + // extent over than 5 hours + // tick on the hour + yLower = Math.floor(yLower / 3600) * 3600; + yUpper = Math.ceil(yUpper / 3600) * 3600; + + tickValues = d3.range(yLower, yUpper, 3600); + } else { + // tick on the half hour + yLower = Math.floor(yLower / 1800) * 1800; + yUpper = Math.ceil(yUpper / 1800) * 1800; - tickValues = d3.range(yLower, yUpper, 1800); + tickValues = d3.range(yLower, yUpper, 1800); + } + } } + if (tickValues.length === 0) return null; return tickValues; } -function getYTickFormat(yLower: number, yUpper: number, skip: boolean = true) { - // currently used for time value tick only +function getYTickLabelFormat( + yLower: number, + yUpper: number, + inTickLabelFormat: string, + isTimeValue = false +) { // return a function convert value to time string - function tickFormat(value: number): string { - const absExtent = Math.abs(yUpper - yLower); - let dayStart = window.moment("00:00", "HH:mm", true); - let tickTime = dayStart.add(value, "seconds"); - let format = tickTime.format("HH:mm"); - if (skip && absExtent > 12 * 60 * 60) { - let devHour = (value - yLower) / 3600; - let interleave = devHour % 2; - if (value <= yLower) { - format = ""; - } else if (value >= yUpper) { - format = ""; - } else if (interleave > 1.0) { - format = tickTime.format("HH:mm"); - } else { - format = ""; + + if (!isTimeValue) { + if (inTickLabelFormat) { + function tickFormat(value: number): string { + let strValue = sprintf("%" + inTickLabelFormat, value); + return strValue; } + + return tickFormat; } + return null; + } else { + if (inTickLabelFormat) { + // null, let d3js decide what to do + } else { + let skip = true; + function tickFormat(value: number): string { + const absExtent = Math.abs(yUpper - yLower); + let dayStart = window.moment("00:00", "HH:mm", true); + let tickTime = dayStart.add(value, "seconds"); + let format = tickTime.format("HH:mm"); + if (skip && absExtent > 12 * 60 * 60) { + let devHour = (value - yLower) / 3600; + let interleave = devHour % 2; + if (value <= yLower) { + format = ""; + } else if (value >= yUpper) { + format = ""; + } else if (interleave > 1.0) { + format = tickTime.format("HH:mm"); + } else { + format = ""; + } + } + + return format; + } - return format; + return tickFormat; + } } - return tickFormat; + return null; } export function render(canvas: HTMLElement, renderInfo: RenderInfo) { @@ -210,13 +289,30 @@ function renderXAxis( .range([0, renderInfo.dataAreaSize.width]); chartElements["xScale"] = xScale; - let tickInterval = getXTickInterval(datasets); - let tickFormat = getXTickFormat(datasets); + let tickIntervalInDuration = helper.parseDurationString( + chartInfo.xAxisTickInterval + ); + + let [tickValues, tickInterval] = getXTickValues( + datasets.getDates(), + tickIntervalInDuration + ); + let tickFormat = getXTickLabelFormat( + datasets.getDates(), + chartInfo.xAxisTickLabelFormat + ); + + let xAxisGen = d3.axisBottom(xScale); + + if (tickValues && tickValues.length !== 0) { + xAxisGen.tickValues(tickValues); + } else if (tickInterval) { + xAxisGen.ticks(tickInterval); + } + if (tickFormat) { + xAxisGen.tickFormat(tickFormat); + } - let xAxisGen = d3 - .axisBottom(xScale) - .ticks(tickInterval) - .tickFormat(tickFormat); let xAxis = chartElements.dataArea // axis includes ticks .append("g") .attr("id", "xAxis") @@ -413,10 +509,26 @@ function renderYAxis( } let yAxisUnitText = ""; + let yAxisTickInterval = null; + let yAxisTickLabelFormat = null; if (yAxisLocation === "left") { yAxisUnitText = chartInfo.yAxisUnit[0]; + yAxisTickInterval = chartInfo.yAxisTickInterval[0]; // string + yAxisTickLabelFormat = chartInfo.yAxisTickLabelFormat[0]; } else if (yAxisLocation === "right") { yAxisUnitText = chartInfo.yAxisUnit[1]; + yAxisTickInterval = chartInfo.yAxisTickInterval[1]; // string + yAxisTickLabelFormat = chartInfo.yAxisTickLabelFormat[1]; + } + // get interval from string + let tickInterval = null; + if (valueIsTime) { + tickInterval = helper.parseDurationString(yAxisTickInterval); + } else { + tickInterval = parseFloat(yAxisTickInterval); + if (!Number.isNumber(tickInterval) || Number.isNaN(tickInterval)) { + tickInterval = null; + } } let yAxisGen; @@ -425,10 +537,25 @@ function renderYAxis( } else if (yAxisLocation === "right") { yAxisGen = d3.axisRight(yScale); } - if (yAxisGen && valueIsTime) { - let tickFormat = getYTickFormat(yLower, yUpper); - let tickValues = getYTickValues(yLower, yUpper); - yAxisGen.tickValues(tickValues).tickFormat(tickFormat); + if (yAxisGen) { + let tickLabelFormat = getYTickLabelFormat( + yLower, + yUpper, + yAxisTickLabelFormat, + valueIsTime + ); + if (tickLabelFormat) { + yAxisGen.tickFormat(tickLabelFormat); + } + let tickValues = getYTickValues( + yLower, + yUpper, + tickInterval, + valueIsTime + ); + if (tickValues) { + yAxisGen.tickValues(tickValues); + } } let yAxis = chartElements.dataArea @@ -466,16 +593,22 @@ function renderYAxis( } // Get max tick label width - let yTickFormat = d3.tickFormat(yLower, yUpper, 10); - if (valueIsTime) { - yTickFormat = getYTickFormat(yLower, yUpper, false); + let yTickLabelFormat = getYTickLabelFormat( + yLower, + yUpper, + yAxisTickLabelFormat, + valueIsTime + ); + if (!yTickLabelFormat) { + yTickLabelFormat = d3.tickFormat(yLower, yUpper, 10); } + let yLowerLabelSize = helper.measureTextSize( - yTickFormat(yLower), + yTickLabelFormat(yLower), "tracker-axis-label" ); let yUpperLabelSize = helper.measureTextSize( - yTickFormat(yUpper), + yTickLabelFormat(yUpper), "tracker-axis-label" ); let maxTickLabelWidth = Math.max( From d34fb7813f7ea2e93a39dac5544b6c21ba24a4a2 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 6 Aug 2021 10:44:23 +0800 Subject: [PATCH 052/277] Fix yAxisTickLabelFormat for time values --- examples/TestAxisIntervalAndFormat.md | 11 +++++--- src/rendering.ts | 37 +++++++++++++++------------ 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/examples/TestAxisIntervalAndFormat.md b/examples/TestAxisIntervalAndFormat.md index 3a8dee1..b3a8733 100644 --- a/examples/TestAxisIntervalAndFormat.md +++ b/examples/TestAxisIntervalAndFormat.md @@ -31,8 +31,9 @@ line: reverseYAxis: true lineColor: yellow, red showPoint: true - showLegend: true - yAxisTickInterval: 3h + yAxisTickInterval: 1h + yMin: 06:00 + yMax: 23:00 ``` ## Y Axis Tick Label Format @@ -66,8 +67,10 @@ line: reverseYAxis: true lineColor: yellow, red showPoint: true - yAxisTickInterval: 3h - yAxisTickLabelFormat: .1f + yMin: 05:00 + yMax: 22:00 + yAxisTickInterval: 50m + yAxisTickLabelFormat: H---m ``` ## X Axis Interval diff --git a/src/rendering.ts b/src/rendering.ts index 46d33d6..75cef80 100644 --- a/src/rendering.ts +++ b/src/rendering.ts @@ -172,27 +172,35 @@ function getYTickLabelFormat( return tickFormat; } - return null; + return d3.tickFormat(yLower, yUpper, 10); } else { + // values in seconds if (inTickLabelFormat) { - // null, let d3js decide what to do + function fnTickLabelFormat(value: number): string { + let dayStart = window.moment("00:00", "HH:mm", true); + let tickTime = dayStart.add(value, "seconds"); + let format = tickTime.format(inTickLabelFormat); + + let devHour = (value - yLower) / 3600; + let interleave = devHour % 2; + + return format; + } + return fnTickLabelFormat; } else { - let skip = true; - function tickFormat(value: number): string { + function fnTickLabelFormat(value: number): string { const absExtent = Math.abs(yUpper - yLower); let dayStart = window.moment("00:00", "HH:mm", true); let tickTime = dayStart.add(value, "seconds"); let format = tickTime.format("HH:mm"); - if (skip && absExtent > 12 * 60 * 60) { + // console.log(`yLower/yUpper: ${yLower}/${yUpper}`) + // console.log(`value/extent/inter:${value}/${absExtent}/${(value-yLower)/3600}`); + + // auto interleave if extent over 12 hours + if (absExtent > 12 * 60 * 60) { let devHour = (value - yLower) / 3600; let interleave = devHour % 2; - if (value <= yLower) { - format = ""; - } else if (value >= yUpper) { - format = ""; - } else if (interleave > 1.0) { - format = tickTime.format("HH:mm"); - } else { + if (value < yLower || value > yUpper || interleave < 1.0) { format = ""; } } @@ -200,7 +208,7 @@ function getYTickLabelFormat( return format; } - return tickFormat; + return fnTickLabelFormat; } } @@ -599,9 +607,6 @@ function renderYAxis( yAxisTickLabelFormat, valueIsTime ); - if (!yTickLabelFormat) { - yTickLabelFormat = d3.tickFormat(yLower, yUpper, 10); - } let yLowerLabelSize = helper.measureTextSize( yTickLabelFormat(yLower), From 444e6f3ed0e2ba66f6ecf3b385eff23762d4dcad Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sat, 7 Aug 2021 14:51:52 +0800 Subject: [PATCH 053/277] Add a parameter textValueMap --- .../{MoodTracker.md => TestTextValueMap.md} | 14 +++- examples/diary/2021-01-01.md | 2 +- examples/diary/2021-01-02.md | 2 +- examples/diary/2021-01-03.md | 2 +- examples/diary/2021-01-04.md | 2 +- examples/diary/2021-01-05.md | 2 +- examples/diary/2021-01-06.md | 2 +- examples/diary/2021-01-07.md | 2 +- examples/diary/2021-01-08.md | 2 +- examples/diary/2021-01-09.md | 2 +- examples/diary/2021-01-10.md | 2 +- examples/diary/2021-01-11.md | 2 +- examples/diary/2021-01-12.md | 2 +- examples/diary/2021-01-13.md | 2 +- examples/diary/2021-01-14.md | 2 +- examples/diary/2021-01-15.md | 2 +- examples/diary/2021-01-16.md | 2 +- examples/diary/2021-01-17.md | 2 +- examples/diary/2021-01-18.md | 2 +- examples/diary/2021-01-19.md | 2 +- examples/diary/2021-01-20.md | 2 +- examples/diary/2021-01-21.md | 2 +- examples/diary/2021-01-22.md | 2 +- examples/diary/2021-01-23.md | 2 +- examples/diary/2021-01-24.md | 2 +- examples/diary/2021-01-25.md | 2 +- examples/diary/2021-01-26.md | 2 +- examples/diary/2021-01-27.md | 2 +- examples/diary/2021-01-28.md | 2 +- examples/diary/2021-01-29.md | 2 +- examples/diary/2021-01-30.md | 2 +- examples/diary/2021-01-31.md | 2 +- examples/example_generator.ts | 5 +- src/collecting.ts | 71 +++++++++++++------ src/data.ts | 6 ++ src/helper.ts | 19 ++++- src/parsing.ts | 11 +++ 37 files changed, 129 insertions(+), 59 deletions(-) rename examples/{MoodTracker.md => TestTextValueMap.md} (51%) diff --git a/examples/MoodTracker.md b/examples/TestTextValueMap.md similarity index 51% rename from examples/MoodTracker.md rename to examples/TestTextValueMap.md index 48c83c8..fe2118f 100644 --- a/examples/MoodTracker.md +++ b/examples/TestTextValueMap.md @@ -1,14 +1,22 @@ -# Mood Tracker +# Test textValueMap +## Mood ``` tracker searchType: frontmatter searchTarget: "mood" folder: diary endDate: 2021-01-31 +textValueMap: + 😀: 5 + 🙂: 4 + 😐: 3 + 🙁: 2 + 😞: 1 line: title: "Mood" yAxisLabel: Mood lineColor: "#d65d0e" + yAxisTickInterval: 1 + yAxisTickLabelFormat: i + yMin: 0 ``` - -Please also check those search targets in markdown files under folder 'diary'. \ No newline at end of file diff --git a/examples/diary/2021-01-01.md b/examples/diary/2021-01-01.md index 35a7e5e..b476f3e 100644 --- a/examples/diary/2021-01-01.md +++ b/examples/diary/2021-01-01.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 8 +mood: 🙁 bloodpressure: 184.4/118.8 bloodpressure1: 184.4, 118.8 bloodpressure2: [184.4, 118.8] diff --git a/examples/diary/2021-01-02.md b/examples/diary/2021-01-02.md index 57200a3..d0fd77d 100644 --- a/examples/diary/2021-01-02.md +++ b/examples/diary/2021-01-02.md @@ -1,6 +1,6 @@ --- tags: -mood: 7 +mood: 🙁 bloodpressure: 180.8/120.6 bloodpressure1: 180.8, 120.6 bloodpressure2: [180.8, 120.6] diff --git a/examples/diary/2021-01-03.md b/examples/diary/2021-01-03.md index 3b59717..40eb66b 100644 --- a/examples/diary/2021-01-03.md +++ b/examples/diary/2021-01-03.md @@ -1,6 +1,6 @@ --- tags: -mood: 7 +mood: 🙁 bloodpressure: 180.2/118.4 bloodpressure1: 180.2, 118.4 bloodpressure2: [180.2, 118.4] diff --git a/examples/diary/2021-01-04.md b/examples/diary/2021-01-04.md index f846803..f134f1b 100644 --- a/examples/diary/2021-01-04.md +++ b/examples/diary/2021-01-04.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 3 +mood: 🙂 bloodpressure: 176.6/121.2 bloodpressure1: 176.6, 121.2 bloodpressure2: [176.6, 121.2] diff --git a/examples/diary/2021-01-05.md b/examples/diary/2021-01-05.md index 6878a3c..1b08f7c 100644 --- a/examples/diary/2021-01-05.md +++ b/examples/diary/2021-01-05.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 2 +mood: 😀 bloodpressure: 180/118 bloodpressure1: 180, 118 bloodpressure2: [180, 118] diff --git a/examples/diary/2021-01-06.md b/examples/diary/2021-01-06.md index f5dfd71..5d7d791 100644 --- a/examples/diary/2021-01-06.md +++ b/examples/diary/2021-01-06.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 8 +mood: 🙁 bloodpressure: 171.4/118.8 bloodpressure1: 171.4, 118.8 bloodpressure2: [171.4, 118.8] diff --git a/examples/diary/2021-01-07.md b/examples/diary/2021-01-07.md index f3981f0..edf1242 100644 --- a/examples/diary/2021-01-07.md +++ b/examples/diary/2021-01-07.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 1 +mood: 😀 bloodpressure: 175.8/120.6 bloodpressure1: 175.8, 120.6 bloodpressure2: [175.8, 120.6] diff --git a/examples/diary/2021-01-08.md b/examples/diary/2021-01-08.md index 8febc8c..dd0ec4d 100644 --- a/examples/diary/2021-01-08.md +++ b/examples/diary/2021-01-08.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 1 +mood: 😀 bloodpressure: 172.2/116.4 bloodpressure1: 172.2, 116.4 bloodpressure2: [172.2, 116.4] diff --git a/examples/diary/2021-01-09.md b/examples/diary/2021-01-09.md index b3d3266..a374751 100644 --- a/examples/diary/2021-01-09.md +++ b/examples/diary/2021-01-09.md @@ -1,6 +1,6 @@ --- tags: -mood: 1 +mood: 😀 bloodpressure: 175.6/118.2 bloodpressure1: 175.6, 118.2 bloodpressure2: [175.6, 118.2] diff --git a/examples/diary/2021-01-10.md b/examples/diary/2021-01-10.md index f6261c7..ad8320c 100644 --- a/examples/diary/2021-01-10.md +++ b/examples/diary/2021-01-10.md @@ -1,6 +1,6 @@ --- tags: -mood: 3 +mood: 🙂 bloodpressure: 179/116 bloodpressure1: 179, 116 bloodpressure2: [179, 116] diff --git a/examples/diary/2021-01-11.md b/examples/diary/2021-01-11.md index c9f40f1..998afde 100644 --- a/examples/diary/2021-01-11.md +++ b/examples/diary/2021-01-11.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 5 +mood: 😐 bloodpressure: 173.4/117.8 bloodpressure1: 173.4, 117.8 bloodpressure2: [173.4, 117.8] diff --git a/examples/diary/2021-01-12.md b/examples/diary/2021-01-12.md index a0652a0..f7d0390 100644 --- a/examples/diary/2021-01-12.md +++ b/examples/diary/2021-01-12.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 1 +mood: 😀 bloodpressure: 176.8/118.6 bloodpressure1: 176.8, 118.6 bloodpressure2: [176.8, 118.6] diff --git a/examples/diary/2021-01-13.md b/examples/diary/2021-01-13.md index 97f5314..5a4b868 100644 --- a/examples/diary/2021-01-13.md +++ b/examples/diary/2021-01-13.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 10 +mood: 😞 bloodpressure: 168.2/116.4 bloodpressure1: 168.2, 116.4 bloodpressure2: [168.2, 116.4] diff --git a/examples/diary/2021-01-14.md b/examples/diary/2021-01-14.md index 66d378e..daa9d4a 100644 --- a/examples/diary/2021-01-14.md +++ b/examples/diary/2021-01-14.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 5 +mood: 😐 bloodpressure: 175.6/117.2 bloodpressure1: 175.6, 117.2 bloodpressure2: [175.6, 117.2] diff --git a/examples/diary/2021-01-15.md b/examples/diary/2021-01-15.md index 19995b0..38b5d09 100644 --- a/examples/diary/2021-01-15.md +++ b/examples/diary/2021-01-15.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 1 +mood: 😀 bloodpressure: 176/115 bloodpressure1: 176, 115 bloodpressure2: [176, 115] diff --git a/examples/diary/2021-01-16.md b/examples/diary/2021-01-16.md index 2787b95..4acb9dc 100644 --- a/examples/diary/2021-01-16.md +++ b/examples/diary/2021-01-16.md @@ -1,6 +1,6 @@ --- tags: -mood: 9 +mood: 😞 bloodpressure: 168.4/114.8 bloodpressure1: 168.4, 114.8 bloodpressure2: [168.4, 114.8] diff --git a/examples/diary/2021-01-17.md b/examples/diary/2021-01-17.md index 7329c6e..b59f1b8 100644 --- a/examples/diary/2021-01-17.md +++ b/examples/diary/2021-01-17.md @@ -1,6 +1,6 @@ --- tags: -mood: 3 +mood: 🙂 bloodpressure: 165.8/114.6 bloodpressure1: 165.8, 114.6 bloodpressure2: [165.8, 114.6] diff --git a/examples/diary/2021-01-18.md b/examples/diary/2021-01-18.md index de902ae..5dc50d8 100644 --- a/examples/diary/2021-01-18.md +++ b/examples/diary/2021-01-18.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 2 +mood: 😀 bloodpressure: 167.2/118.4 bloodpressure1: 167.2, 118.4 bloodpressure2: [167.2, 118.4] diff --git a/examples/diary/2021-01-19.md b/examples/diary/2021-01-19.md index 06eb314..919b95c 100644 --- a/examples/diary/2021-01-19.md +++ b/examples/diary/2021-01-19.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 6 +mood: 😐 bloodpressure: 165.6/117.2 bloodpressure1: 165.6, 117.2 bloodpressure2: [165.6, 117.2] diff --git a/examples/diary/2021-01-20.md b/examples/diary/2021-01-20.md index c460221..9b2557b 100644 --- a/examples/diary/2021-01-20.md +++ b/examples/diary/2021-01-20.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 4 +mood: 🙂 bloodpressure: 163/117 bloodpressure1: 163, 117 bloodpressure2: [163, 117] diff --git a/examples/diary/2021-01-21.md b/examples/diary/2021-01-21.md index be9961a..89aad3a 100644 --- a/examples/diary/2021-01-21.md +++ b/examples/diary/2021-01-21.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 4 +mood: 🙂 bloodpressure: 170.4/113.8 bloodpressure1: 170.4, 113.8 bloodpressure2: [170.4, 113.8] diff --git a/examples/diary/2021-01-22.md b/examples/diary/2021-01-22.md index 77cf0e7..9dd9917 100644 --- a/examples/diary/2021-01-22.md +++ b/examples/diary/2021-01-22.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 9 +mood: 😞 bloodpressure: 165.8/116.6 bloodpressure1: 165.8, 116.6 bloodpressure2: [165.8, 116.6] diff --git a/examples/diary/2021-01-23.md b/examples/diary/2021-01-23.md index e10d6a0..bf1dec0 100644 --- a/examples/diary/2021-01-23.md +++ b/examples/diary/2021-01-23.md @@ -1,6 +1,6 @@ --- tags: -mood: 1 +mood: 😀 bloodpressure: 164.2/115.4 bloodpressure1: 164.2, 115.4 bloodpressure2: [164.2, 115.4] diff --git a/examples/diary/2021-01-24.md b/examples/diary/2021-01-24.md index 318da6f..a317ff4 100644 --- a/examples/diary/2021-01-24.md +++ b/examples/diary/2021-01-24.md @@ -1,6 +1,6 @@ --- tags: -mood: 4 +mood: 🙂 bloodpressure: 170.6/113.2 bloodpressure1: 170.6, 113.2 bloodpressure2: [170.6, 113.2] diff --git a/examples/diary/2021-01-25.md b/examples/diary/2021-01-25.md index c55952c..cb44595 100644 --- a/examples/diary/2021-01-25.md +++ b/examples/diary/2021-01-25.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 9 +mood: 😞 bloodpressure: 167/114 bloodpressure1: 167, 114 bloodpressure2: [167, 114] diff --git a/examples/diary/2021-01-26.md b/examples/diary/2021-01-26.md index 919a6db..f2f5bd1 100644 --- a/examples/diary/2021-01-26.md +++ b/examples/diary/2021-01-26.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 3 +mood: 🙂 bloodpressure: 162.4/114.8 bloodpressure1: 162.4, 114.8 bloodpressure2: [162.4, 114.8] diff --git a/examples/diary/2021-01-27.md b/examples/diary/2021-01-27.md index d27ce18..b0b16b4 100644 --- a/examples/diary/2021-01-27.md +++ b/examples/diary/2021-01-27.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 4 +mood: 🙂 bloodpressure: 165.8/113.6 bloodpressure1: 165.8, 113.6 bloodpressure2: [165.8, 113.6] diff --git a/examples/diary/2021-01-28.md b/examples/diary/2021-01-28.md index dea9212..93ec564 100644 --- a/examples/diary/2021-01-28.md +++ b/examples/diary/2021-01-28.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 2 +mood: 😀 bloodpressure: 158.2/115.4 bloodpressure1: 158.2, 115.4 bloodpressure2: [158.2, 115.4] diff --git a/examples/diary/2021-01-29.md b/examples/diary/2021-01-29.md index bb20ef6..a42a5ce 100644 --- a/examples/diary/2021-01-29.md +++ b/examples/diary/2021-01-29.md @@ -1,6 +1,6 @@ --- tags: work_log -mood: 8 +mood: 🙁 bloodpressure: 163.6/112.2 bloodpressure1: 163.6, 112.2 bloodpressure2: [163.6, 112.2] diff --git a/examples/diary/2021-01-30.md b/examples/diary/2021-01-30.md index e140f7e..fc9d82c 100644 --- a/examples/diary/2021-01-30.md +++ b/examples/diary/2021-01-30.md @@ -1,6 +1,6 @@ --- tags: -mood: 5 +mood: 😐 bloodpressure: 159/114 bloodpressure1: 159, 114 bloodpressure2: [159, 114] diff --git a/examples/diary/2021-01-31.md b/examples/diary/2021-01-31.md index e5c4a74..dd8a29d 100644 --- a/examples/diary/2021-01-31.md +++ b/examples/diary/2021-01-31.md @@ -1,6 +1,6 @@ --- tags: -mood: 4 +mood: 🙂 bloodpressure: 160.4/115.8 bloodpressure1: 160.4, 115.8 bloodpressure2: [160.4, 115.8] diff --git a/examples/example_generator.ts b/examples/example_generator.ts index 6f95545..4b98337 100644 --- a/examples/example_generator.ts +++ b/examples/example_generator.ts @@ -52,8 +52,9 @@ for ( frontmatter += "tags: " + "work_log" + "\n"; } // frontmatter mood - let mood = randomIntFromInterval(1, 10); - frontmatter += "mood: " + mood + "\n"; + let moodSymbols = ["😀", "🙂", "😐", "🙁", "😞"]; + let indMood = randomIntFromInterval(0, 4); + frontmatter += "mood: " + moodSymbols[indMood] + "\n"; // blood pressure let progress = dayCount; diff --git a/src/collecting.ts b/src/collecting.ts index 77eaae2..17dfe1f 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -359,7 +359,10 @@ export function collectDataFromFrontmatterKey( if (frontMatter) { if (helper.deepValue(frontMatter, query.getTarget())) { let toParse = helper.deepValue(frontMatter, query.getTarget()); - let retParse = helper.parseFloatFromAny(toParse); + let retParse = helper.parseFloatFromAny( + toParse, + renderInfo.textValueMap + ); if (retParse.value !== null) { if (retParse.type === ValueType.Time) { query.valueType = ValueType.Time; @@ -482,7 +485,10 @@ export function collectDataFromInlineTag( if (splitted.length === 1) { // console.log("single-value"); let toParse = splitted[0].trim(); - let retParse = helper.parseFloatFromAny(toParse); + let retParse = helper.parseFloatFromAny( + toParse, + renderInfo.textValueMap + ); if (retParse.value !== null) { if (retParse.type === ValueType.Time) { tagMeasure = retParse.value; @@ -505,7 +511,10 @@ export function collectDataFromInlineTag( query.getAccessor() >= 0 ) { let toParse = splitted[query.getAccessor()].trim(); - let retParse = helper.parseFloatFromAny(toParse); + let retParse = helper.parseFloatFromAny( + toParse, + renderInfo.textValueMap + ); //console.log(retParse); if (retParse.value !== null) { if (retParse.type === ValueType.Time) { @@ -559,16 +568,25 @@ export function collectDataFromText( // console.log("valued-text"); if (typeof match.groups.value !== "undefined") { // set as null for missing value if it is valued-tag - let value = parseFloat(match.groups.value); - // console.log(value); - if (!Number.isNaN(value)) { - if ( - !renderInfo.ignoreZeroValue[query.getId()] || - value !== 0 - ) { - textMeasure += value; + let retParse = helper.parseFloatFromAny( + match.groups.value, + renderInfo.textValueMap + ); + if (retParse.value !== null) { + if (retParse.type === ValueType.Time) { + textMeasure = retParse.value; textExist = true; + query.valueType = ValueType.Time; query.addNumTargets(); + } else { + if ( + !renderInfo.ignoreZeroValue[query.getId()] || + retParse.value !== 0 + ) { + textMeasure += retParse.value; + textExist = true; + query.addNumTargets(); + } } } } @@ -674,7 +692,10 @@ export function collectDataFromDvField( // console.log("single-value"); let toParse = splitted[0]; // console.log(toParse); - let retParse = helper.parseFloatFromAny(toParse); + let retParse = helper.parseFloatFromAny( + toParse, + renderInfo.textValueMap + ); if (retParse.value !== null) { if (retParse.type === ValueType.Time) { tagMeasure = retParse.value; @@ -699,7 +720,10 @@ export function collectDataFromDvField( // TODO: it's not efficent to retrieve one value at a time, enhance this // console.log("multiple-values"); let toParse = splitted[query.getAccessor()].trim(); - let retParse = helper.parseFloatFromAny(toParse); + let retParse = helper.parseFloatFromAny( + toParse, + renderInfo.textValueMap + ); if (retParse.value !== null) { if (retParse.type === ValueType.Time) { tagMeasure = retParse.value; @@ -766,16 +790,23 @@ export function collectDataFromTask( // console.log("valued-text"); if (typeof match.groups.value !== "undefined") { // set as null for missing value if it is valued-tag - let value = parseFloat(match.groups.value); + let retParse = helper.parseFloatFromAny(match.groups.value); // console.log(value); - if (!Number.isNaN(value)) { - if ( - !renderInfo.ignoreZeroValue[query.getId()] || - value !== 0 - ) { - textMeasure += value; + if (retParse.value !== null) { + if (retParse.type === ValueType.Time) { + textMeasure = retParse.value; textExist = true; + query.valueType = ValueType.Time; query.addNumTargets(); + } else { + if ( + !renderInfo.ignoreZeroValue[query.getId()] || + retParse.value !== 0 + ) { + textMeasure += retParse.value; + textExist = true; + query.addNumTargets(); + } } } } diff --git a/src/data.ts b/src/data.ts index 6c1827f..775d070 100644 --- a/src/data.ts +++ b/src/data.ts @@ -35,6 +35,10 @@ export enum ValueType { String, } +export type TextValueMap = { + [key: string]: number; +}; + export class DataPoint { date: Moment; value: number; @@ -547,6 +551,7 @@ export class RenderInfo { penalty: number[]; valueShift: number[]; valueType: string[]; // number/float, int, string, boolean, date, time, datetime + textValueMap: TextValueMap; dataAreaSize: Size; margin: Margin; @@ -584,6 +589,7 @@ export class RenderInfo { this.penalty = []; // null, use this value instead of null value this.valueShift = []; this.valueType = []; + this.textValueMap = {}; this.dataAreaSize = new Size(300, 300); this.margin = new Margin(10, 10, 10, 10); // top, right, bottom, left diff --git a/src/helper.ts b/src/helper.ts index 9eb9077..524bef3 100644 --- a/src/helper.ts +++ b/src/helper.ts @@ -1,4 +1,4 @@ -import { RenderInfo, Size, Transform } from "./data"; +import { RenderInfo, Size, TextValueMap, Transform } from "./data"; import { TFile, TFolder, normalizePath } from "obsidian"; import { ValueType } from "./data"; import * as d3 from "d3"; @@ -328,7 +328,10 @@ export function trimByChar(str: string, char: string) { } // Parsing -export function parseFloatFromAny(toParse: any) { +export function parseFloatFromAny( + toParse: any, + textValueMap: TextValueMap = null +) { let value = null; let valueType = ValueType.Number; if (typeof toParse === "string") { @@ -351,7 +354,17 @@ export function parseFloatFromAny(toParse: any) { valueType = ValueType.Time; } } else { - value = parseFloat(toParse); + if (textValueMap) { + const keys = Object.keys(textValueMap) as Array; + for (let key of keys) { + if (toParse === key) { + value = textValueMap[key]; + break; + } + } + } else { + value = parseFloat(toParse); + } } } else if (typeof toParse === "number") { value = toParse; diff --git a/src/parsing.ts b/src/parsing.ts index 481a8af..19a099a 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -1393,6 +1393,17 @@ export function getRenderInfoFromYaml( renderInfo.valueShift = retValueShift; // console.log(renderInfo.valueShift); + // textValueMap + if (typeof yaml.textValueMap !== "undefined") { + let keys = getAvailableKeysOfClass(yaml.textValueMap); + // console.log(texts); + for (let key of keys) { + let text = key.trim(); + renderInfo.textValueMap[text] = yaml.textValueMap[text]; + } + } + // console.log(renderInfo.textValueMap); + // fixedScale if (typeof yaml.fixedScale === "number") { renderInfo.fixedScale = yaml.fixedScale; From 6306d84ce943ff0cbb33c96fe6ee91be2d4b73c0 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sat, 7 Aug 2021 15:57:53 +0800 Subject: [PATCH 054/277] Fix no value from textValueMap --- src/collecting.ts | 10 ++++++++-- src/helper.ts | 5 +++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/collecting.ts b/src/collecting.ts index 17dfe1f..6ae718d 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -401,7 +401,10 @@ export function collectDataFromFrontmatterKey( ) { // TODO: it's not efficent to retrieve one value at a time, enhance this let splittedPart = splitted[query.getAccessor()].trim(); - let retParse = helper.parseFloatFromAny(splittedPart); + let retParse = helper.parseFloatFromAny( + splittedPart, + renderInfo.textValueMap + ); if (retParse.value !== null) { if (retParse.type === ValueType.Time) { query.valueType = ValueType.Time; @@ -790,7 +793,10 @@ export function collectDataFromTask( // console.log("valued-text"); if (typeof match.groups.value !== "undefined") { // set as null for missing value if it is valued-tag - let retParse = helper.parseFloatFromAny(match.groups.value); + let retParse = helper.parseFloatFromAny( + match.groups.value, + renderInfo.textValueMap + ); // console.log(value); if (retParse.value !== null) { if (retParse.type === ValueType.Time) { diff --git a/src/helper.ts b/src/helper.ts index 524bef3..d05d18e 100644 --- a/src/helper.ts +++ b/src/helper.ts @@ -355,13 +355,18 @@ export function parseFloatFromAny( } } else { if (textValueMap) { + let anyMatch = false; const keys = Object.keys(textValueMap) as Array; for (let key of keys) { if (toParse === key) { value = textValueMap[key]; + anyMatch = true; break; } } + if (!anyMatch) { + value = parseFloat(toParse); + } } else { value = parseFloat(toParse); } From 0d2c7ff6aed664f3c0197b13628c4c8e727d2a5e Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sun, 8 Aug 2021 00:23:13 +0800 Subject: [PATCH 055/277] Fix null yaml for parameters related to tick interval and format --- src/parsing.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/parsing.ts b/src/parsing.ts index 19a099a..ca05502 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -765,9 +765,9 @@ function parseCommonChartInfo(yaml: any, renderInfo: CommonChartInfo) { // console.log(renderInfo.yAxisUnit); // xAxisTickInterval - if (typeof yaml.xAxisTickInterval === "string") { + if (typeof yaml?.xAxisTickInterval === "string") { renderInfo.xAxisTickInterval = yaml.xAxisTickInterval; - } else if (typeof yaml.xAxisTickInterval === "number") { + } else if (typeof yaml?.xAxisTickInterval === "number") { renderInfo.xAxisTickInterval = yaml.xAxisTickInterval.toString(); } // console.log(renderInfo.xAxisTickInterval); @@ -775,7 +775,7 @@ function parseCommonChartInfo(yaml: any, renderInfo: CommonChartInfo) { // yAxisTickInterval let retYAxisTickInterval = getStringArrayFromInput( "yAxisTickInterval", - yaml.yAxisTickInterval, + yaml?.yAxisTickInterval, 2, null, null, @@ -791,7 +791,7 @@ function parseCommonChartInfo(yaml: any, renderInfo: CommonChartInfo) { // console.log(renderInfo.yAxisTickInterval); // xAxisTickLabelFormat - if (typeof yaml.xAxisTickLabelFormat === "string") { + if (typeof yaml?.xAxisTickLabelFormat === "string") { renderInfo.xAxisTickLabelFormat = yaml.xAxisTickLabelFormat; } // console.log(renderInfo.xAxisTickLabelFormat); @@ -799,7 +799,7 @@ function parseCommonChartInfo(yaml: any, renderInfo: CommonChartInfo) { // yAxisTickLabelFormat let retYAxisTickLabelFormat = getStringArrayFromInput( "yAxisTickLabelFormat", - yaml.yAxisTickLabelFormat, + yaml?.yAxisTickLabelFormat, 2, null, null, From 2e831f3291ac831c65527327e1f4f04db0bc5d70 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 9 Aug 2021 11:13:45 +0800 Subject: [PATCH 056/277] Set default month view dataColor if no dataColor provided --- examples/TestPieChart.md | 11 +++++++++++ src/parsing.ts | 2 +- src/pie.ts | 8 ++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/examples/TestPieChart.md b/examples/TestPieChart.md index 29102af..d84f357 100644 --- a/examples/TestPieChart.md +++ b/examples/TestPieChart.md @@ -51,6 +51,17 @@ pie: legendOrientation: vertical ``` +### Default data colors +``` tracker +searchType: task.done, task.notdone +searchTarget: Say I love you, Say I love you +pie: + title: Pie Chart + label: '{{2/30*100}}%, {{4/30*100}}%, {{6/30*100}}%, {{8/30*100}}%, {{10/30*100}}%' + data: 2, 4, 6, 8, 10 + ratioInnerRadius: 0.0 +``` + ## Data from Notes Using function dataset() to get Dataset then use function sum() to get the summation diff --git a/src/parsing.ts b/src/parsing.ts index ca05502..9b0c26d 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -1747,7 +1747,7 @@ export function getRenderInfoFromYaml( "dataColor", yamlPie?.dataColor, numData, - "none", + null, validateColor, true ); diff --git a/src/pie.ts b/src/pie.ts index 1e2e1a9..da298c5 100644 --- a/src/pie.ts +++ b/src/pie.ts @@ -616,6 +616,14 @@ export function renderPieChart( let chartElements: ChartElements = {}; chartElements = createAreas(chartElements, canvas, renderInfo, pieInfo); + // Set default dataColor if no dataColor provided + let defaultDataColor = d3.schemeSpectral[pieInfo.dataColor.length]; + for (let i = 0; i < pieInfo.dataColor.length; i++) { + if (pieInfo.dataColor[i] === null) { + pieInfo.dataColor[i] = defaultDataColor[i]; + } + } + renderTitle(canvas, chartElements, renderInfo, pieInfo); renderPie(canvas, chartElements, renderInfo, pieInfo); From a4cd8574152b9198d6786ff1dcdeda18d37fb680 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 9 Aug 2021 11:54:10 +0800 Subject: [PATCH 057/277] Fix the example for relative startDate and endDate (use M for month) --- examples/TestRelativeStartEndDate.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/TestRelativeStartEndDate.md b/examples/TestRelativeStartEndDate.md index ef8e417..1b0e02f 100644 --- a/examples/TestRelativeStartEndDate.md +++ b/examples/TestRelativeStartEndDate.md @@ -4,8 +4,8 @@ searchType: tag searchTarget: exercise-pushup folder: diary -startDate: -2m -endDate: -1m +startDate: -2M +endDate: -1M line: title: PushUp yAxisLabel: Count From 3ef454002e88fae370be54ea28d85356b9caa9af Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 9 Aug 2021 13:03:00 +0800 Subject: [PATCH 058/277] Fix multi lines in summary template not split if input text wrapped in single quotes --- src/summary.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/summary.ts b/src/summary.ts index 6c64ba9..053155c 100644 --- a/src/summary.ts +++ b/src/summary.ts @@ -15,6 +15,7 @@ export function renderSummary( // console.log(renderInfo); if (!renderInfo || !summaryInfo) return; + // console.log(summaryInfo.template); let outputSummary = ""; if (checkSummaryTemplateValid(summaryInfo.template)) { outputSummary = summaryInfo.template; @@ -31,9 +32,11 @@ export function renderSummary( if (outputSummary !== "") { let textBlock = d3.select(canvas).append("div"); - if (outputSummary.includes("\n")) { - let outputLines = outputSummary.split("\n"); + if (outputSummary.includes("\n") || outputSummary.includes("\\n")) { + let outputLines = outputSummary.split(/(\n|\\n)/); + // console.log(outputLines); for (let outputLine of outputLines) { + if (outputLine !== "\n" && outputLine !== "\\n") textBlock.append("div").text(outputLine); } } else { From e1727df4ac3d762cd9708f51e0348fae3f24fe77 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 9 Aug 2021 17:10:58 +0800 Subject: [PATCH 059/277] Provide error messages for "no valid x values" and "no valid y values" --- examples/ErrorMessages.md | 20 ++++++++++ examples/diary/2021-01-01.md | 1 + examples/diary/2021-01-02.md | 1 + examples/diary/2021-01-03.md | 1 + examples/diary/2021-01-04.md | 1 + examples/diary/2021-01-05.md | 1 + examples/diary/2021-01-06.md | 1 + examples/diary/2021-01-07.md | 1 + examples/diary/2021-01-08.md | 1 + examples/diary/2021-01-09.md | 1 + examples/diary/2021-01-10.md | 1 + examples/diary/2021-01-11.md | 1 + examples/diary/2021-01-12.md | 1 + examples/diary/2021-01-13.md | 1 + examples/diary/2021-01-14.md | 1 + examples/diary/2021-01-15.md | 1 + examples/diary/2021-01-16.md | 1 + examples/diary/2021-01-17.md | 1 + examples/diary/2021-01-18.md | 1 + examples/diary/2021-01-19.md | 1 + examples/diary/2021-01-20.md | 1 + examples/diary/2021-01-21.md | 1 + examples/diary/2021-01-22.md | 1 + examples/diary/2021-01-23.md | 1 + examples/diary/2021-01-24.md | 1 + examples/diary/2021-01-25.md | 1 + examples/diary/2021-01-26.md | 1 + examples/diary/2021-01-27.md | 1 + examples/diary/2021-01-28.md | 1 + examples/diary/2021-01-29.md | 1 + examples/diary/2021-01-30.md | 1 + examples/diary/2021-01-31.md | 1 + examples/example_generator.ts | 6 ++- src/collecting.ts | 61 ++++++++++++++++++++++------- src/helper.ts | 15 +++++++- src/main.ts | 72 ++++++++++++++++++++++++----------- 36 files changed, 166 insertions(+), 39 deletions(-) diff --git a/examples/ErrorMessages.md b/examples/ErrorMessages.md index 3df20b8..bf2a519 100644 --- a/examples/ErrorMessages.md +++ b/examples/ErrorMessages.md @@ -104,6 +104,26 @@ line: yAxisLabel: BP1, BP2, BP3 ``` +## Input +No valid X values, add "xDataset: 0" to fix it +``` tracker +searchType: fileMeta, dvField +searchTarget: cDate, dataviewTarget +folder: data +line: + fillGap: true +``` + +No valid Y values!!!!! +Use parameter `textValueMap` to map a text to a value. +``` tracker +searchType: frontmatter +searchTarget: randchar +folder: diary +line: + fillGap: true +``` + ## Output No output type provided, choose 'line', 'bar', or 'summary'. ``` tracker diff --git a/examples/diary/2021-01-01.md b/examples/diary/2021-01-01.md index b476f3e..1e43b42 100644 --- a/examples/diary/2021-01-01.md +++ b/examples/diary/2021-01-01.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 27.4 +randchar: D --- #weight:74.1kg diff --git a/examples/diary/2021-01-02.md b/examples/diary/2021-01-02.md index d0fd77d..f81816e 100644 --- a/examples/diary/2021-01-02.md +++ b/examples/diary/2021-01-02.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 13.3 +randchar: D --- #weight:76.2kg diff --git a/examples/diary/2021-01-03.md b/examples/diary/2021-01-03.md index 40eb66b..7d0cc2e 100644 --- a/examples/diary/2021-01-03.md +++ b/examples/diary/2021-01-03.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 73.0 +randchar: D --- #weight:63.2kg diff --git a/examples/diary/2021-01-04.md b/examples/diary/2021-01-04.md index f134f1b..307cc70 100644 --- a/examples/diary/2021-01-04.md +++ b/examples/diary/2021-01-04.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 88.6 +randchar: B --- #weight:61.6kg diff --git a/examples/diary/2021-01-05.md b/examples/diary/2021-01-05.md index 1b08f7c..4d60cee 100644 --- a/examples/diary/2021-01-05.md +++ b/examples/diary/2021-01-05.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 13.1 +randchar: A --- #weight:72.5kg diff --git a/examples/diary/2021-01-06.md b/examples/diary/2021-01-06.md index 5d7d791..cc68d46 100644 --- a/examples/diary/2021-01-06.md +++ b/examples/diary/2021-01-06.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 20.7 +randchar: D --- #weight:60.1kg diff --git a/examples/diary/2021-01-07.md b/examples/diary/2021-01-07.md index edf1242..a0d5d32 100644 --- a/examples/diary/2021-01-07.md +++ b/examples/diary/2021-01-07.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 47.8 +randchar: A --- #weight:70.2kg diff --git a/examples/diary/2021-01-08.md b/examples/diary/2021-01-08.md index dd0ec4d..8b6f63b 100644 --- a/examples/diary/2021-01-08.md +++ b/examples/diary/2021-01-08.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 68.6 +randchar: A --- #weight:74.0kg diff --git a/examples/diary/2021-01-09.md b/examples/diary/2021-01-09.md index a374751..96fe317 100644 --- a/examples/diary/2021-01-09.md +++ b/examples/diary/2021-01-09.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 68.6 +randchar: A --- #weight:68.8kg diff --git a/examples/diary/2021-01-10.md b/examples/diary/2021-01-10.md index ad8320c..fda03e0 100644 --- a/examples/diary/2021-01-10.md +++ b/examples/diary/2021-01-10.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 17.7 +randchar: B --- #weight:62.1kg diff --git a/examples/diary/2021-01-11.md b/examples/diary/2021-01-11.md index 998afde..892656f 100644 --- a/examples/diary/2021-01-11.md +++ b/examples/diary/2021-01-11.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 26.2 +randchar: C --- #weight:80.8kg diff --git a/examples/diary/2021-01-12.md b/examples/diary/2021-01-12.md index f7d0390..94e3967 100644 --- a/examples/diary/2021-01-12.md +++ b/examples/diary/2021-01-12.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 45.0 +randchar: A --- #weight:61.7kg diff --git a/examples/diary/2021-01-13.md b/examples/diary/2021-01-13.md index 5a4b868..f2e12ef 100644 --- a/examples/diary/2021-01-13.md +++ b/examples/diary/2021-01-13.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 64.5 +randchar: E --- #weight:71.7kg diff --git a/examples/diary/2021-01-14.md b/examples/diary/2021-01-14.md index daa9d4a..8ef4cbc 100644 --- a/examples/diary/2021-01-14.md +++ b/examples/diary/2021-01-14.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 61.5 +randchar: C --- #weight:77.1kg diff --git a/examples/diary/2021-01-15.md b/examples/diary/2021-01-15.md index 38b5d09..ac1f2fc 100644 --- a/examples/diary/2021-01-15.md +++ b/examples/diary/2021-01-15.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 44.0 +randchar: A --- #weight:69.6kg diff --git a/examples/diary/2021-01-16.md b/examples/diary/2021-01-16.md index 4acb9dc..f84dfa1 100644 --- a/examples/diary/2021-01-16.md +++ b/examples/diary/2021-01-16.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 81.6 +randchar: E --- #weight:70.0kg diff --git a/examples/diary/2021-01-17.md b/examples/diary/2021-01-17.md index b59f1b8..99efd48 100644 --- a/examples/diary/2021-01-17.md +++ b/examples/diary/2021-01-17.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 43.0 +randchar: B --- #weight:64.6kg diff --git a/examples/diary/2021-01-18.md b/examples/diary/2021-01-18.md index 5dc50d8..ec91c1a 100644 --- a/examples/diary/2021-01-18.md +++ b/examples/diary/2021-01-18.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 19.5 +randchar: A --- #weight:78.7kg diff --git a/examples/diary/2021-01-19.md b/examples/diary/2021-01-19.md index 919b95c..ded2151 100644 --- a/examples/diary/2021-01-19.md +++ b/examples/diary/2021-01-19.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 29.5 +randchar: C --- #weight:69.3kg diff --git a/examples/diary/2021-01-20.md b/examples/diary/2021-01-20.md index 9b2557b..99daaa1 100644 --- a/examples/diary/2021-01-20.md +++ b/examples/diary/2021-01-20.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 56.2 +randchar: B --- #weight:80.7kg diff --git a/examples/diary/2021-01-21.md b/examples/diary/2021-01-21.md index 89aad3a..fd0233b 100644 --- a/examples/diary/2021-01-21.md +++ b/examples/diary/2021-01-21.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 11.1 +randchar: B --- #weight:67.3kg diff --git a/examples/diary/2021-01-22.md b/examples/diary/2021-01-22.md index 9dd9917..43a6889 100644 --- a/examples/diary/2021-01-22.md +++ b/examples/diary/2021-01-22.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 83.3 +randchar: E --- #weight:64.7kg diff --git a/examples/diary/2021-01-23.md b/examples/diary/2021-01-23.md index bf1dec0..c793861 100644 --- a/examples/diary/2021-01-23.md +++ b/examples/diary/2021-01-23.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 28.8 +randchar: A --- #weight:67.3kg diff --git a/examples/diary/2021-01-24.md b/examples/diary/2021-01-24.md index a317ff4..5a726f8 100644 --- a/examples/diary/2021-01-24.md +++ b/examples/diary/2021-01-24.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 39.4 +randchar: B --- #weight:64.1kg diff --git a/examples/diary/2021-01-25.md b/examples/diary/2021-01-25.md index cb44595..811eea5 100644 --- a/examples/diary/2021-01-25.md +++ b/examples/diary/2021-01-25.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 81.4 +randchar: E --- #weight:62.4kg diff --git a/examples/diary/2021-01-26.md b/examples/diary/2021-01-26.md index f2f5bd1..4b37aab 100644 --- a/examples/diary/2021-01-26.md +++ b/examples/diary/2021-01-26.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 73.1 +randchar: B --- #weight:72.7kg diff --git a/examples/diary/2021-01-27.md b/examples/diary/2021-01-27.md index b0b16b4..27c95a9 100644 --- a/examples/diary/2021-01-27.md +++ b/examples/diary/2021-01-27.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 78.5 +randchar: B --- #weight:63.7kg diff --git a/examples/diary/2021-01-28.md b/examples/diary/2021-01-28.md index 93ec564..e239cd0 100644 --- a/examples/diary/2021-01-28.md +++ b/examples/diary/2021-01-28.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 80.6 +randchar: A --- #weight:79.2kg diff --git a/examples/diary/2021-01-29.md b/examples/diary/2021-01-29.md index a42a5ce..d57ebc4 100644 --- a/examples/diary/2021-01-29.md +++ b/examples/diary/2021-01-29.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 18.6 +randchar: D --- #weight:63.5kg diff --git a/examples/diary/2021-01-30.md b/examples/diary/2021-01-30.md index fc9d82c..024410e 100644 --- a/examples/diary/2021-01-30.md +++ b/examples/diary/2021-01-30.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 17.9 +randchar: C --- #weight:63.3kg diff --git a/examples/diary/2021-01-31.md b/examples/diary/2021-01-31.md index dd8a29d..4e82ad9 100644 --- a/examples/diary/2021-01-31.md +++ b/examples/diary/2021-01-31.md @@ -17,6 +17,7 @@ deepValue: very: very: deep: 56.8 +randchar: B --- #weight:72.2kg diff --git a/examples/example_generator.ts b/examples/example_generator.ts index 4b98337..805fd11 100644 --- a/examples/example_generator.ts +++ b/examples/example_generator.ts @@ -44,8 +44,9 @@ for ( // fontmatter let frontmatter = "---\n"; - let weekday = curDate.weekday(); + // front matter tags + let weekday = curDate.weekday(); if (weekday == 0 || weekday == 6) { frontmatter += "tags: " + "\n"; } else { @@ -119,6 +120,9 @@ for ( } frontmatter += indent + "deep: " + deepValue.toFixed(1) + "\n"; + // random character + frontmatter += "randchar: " + String.fromCharCode(65+indMood) + "\n"; + frontmatter += "---\n"; content += frontmatter; diff --git a/src/collecting.ts b/src/collecting.ts index 6ae718d..528af6b 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -301,7 +301,7 @@ export function collectDataFromFrontmatterTag( renderInfo: RenderInfo, dataMap: DataMap, xValueMap: XValueMap -) { +): boolean { // console.log("collectDataFromFrontmatterTag"); // console.log(query); // console.log(dataMap); @@ -342,8 +342,11 @@ export function collectDataFromFrontmatterTag( } let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); addToDataMap(dataMap, xValue, query, value); + return true; } } + + return false; } export function collectDataFromFrontmatterKey( @@ -352,7 +355,7 @@ export function collectDataFromFrontmatterKey( renderInfo: RenderInfo, dataMap: DataMap, xValueMap: XValueMap -) { +): boolean { // console.log("collectDataFromFrontmatterKey"); let frontMatter = fileCache.frontmatter; @@ -370,6 +373,7 @@ export function collectDataFromFrontmatterKey( query.addNumTargets(); let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); addToDataMap(dataMap, xValue, query, retParse.value); + return true; } } else if ( query.getParentTarget() && @@ -414,10 +418,13 @@ export function collectDataFromFrontmatterKey( renderInfo.xDataset[query.getId()] ); addToDataMap(dataMap, xValue, query, retParse.value); + return true; } } } } + + return false; } export function collectDataFromWiki( @@ -426,7 +433,7 @@ export function collectDataFromWiki( renderInfo: RenderInfo, dataMap: DataMap, xValueMap: XValueMap -) { +): boolean { let links = fileCache.links; if (!links) return; @@ -444,8 +451,14 @@ export function collectDataFromWiki( if (linkExist) { linkValue = linkMeasure; } - let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); - addToDataMap(dataMap, xValue, query, linkValue); + + if (linkValue !== null) { + let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); + addToDataMap(dataMap, xValue, query, linkValue); + return true; + } + + return false; } export function collectDataFromInlineTag( @@ -454,7 +467,7 @@ export function collectDataFromInlineTag( renderInfo: RenderInfo, dataMap: DataMap, xValueMap: XValueMap -) { +): boolean { // console.log(content); // Test this in Regex101 // (^|\s)#tagName(\/[\w-]+)*(:(?[\d\.\/-]*)[a-zA-Z]*)?([\\.!,\\?;~-]*)?(\s|$) @@ -544,8 +557,13 @@ export function collectDataFromInlineTag( if (tagExist) { value = tagMeasure; } - let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); - addToDataMap(dataMap, xValue, query, value); + if (value !== null) { + let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); + addToDataMap(dataMap, xValue, query, value); + return true; + } + + return false; } export function collectDataFromText( @@ -554,7 +572,7 @@ export function collectDataFromText( renderInfo: RenderInfo, dataMap: DataMap, xValueMap: XValueMap -) { +): boolean { let strTextRegex = query.getTarget(); // console.log(strTextRegex); let textRegex = new RegExp(strTextRegex, "gm"); @@ -604,7 +622,10 @@ export function collectDataFromText( if (textExist) { let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); addToDataMap(dataMap, xValue, query, textMeasure); + return true; } + + return false; } export function collectDataFromFileMeta( @@ -614,7 +635,7 @@ export function collectDataFromFileMeta( renderInfo: RenderInfo, dataMap: DataMap, xValueMap: XValueMap -) { +): boolean { // console.log("collectDataFromFileMeta"); if (file && file instanceof TFile) { @@ -649,7 +670,11 @@ export function collectDataFromFileMeta( query.addNumTargets(); addToDataMap(dataMap, xValue, query, numSentences); } + + return true; } + + return false; } export function collectDataFromDvField( @@ -658,7 +683,7 @@ export function collectDataFromDvField( renderInfo: RenderInfo, dataMap: DataMap, xValueMap: XValueMap -) { +): boolean { let dvTarget = query.getTarget(); if (query.getParentTarget()) { dvTarget = query.getParentTarget(); // use parent tag name for multiple values @@ -752,8 +777,13 @@ export function collectDataFromDvField( if (tagExist) { value = tagMeasure; } - let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); - addToDataMap(dataMap, xValue, query, value); + if (value !== null) { + let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); + addToDataMap(dataMap, xValue, query, value); + return true; + } + + return false; } export function collectDataFromTask( @@ -762,7 +792,7 @@ export function collectDataFromTask( renderInfo: RenderInfo, dataMap: DataMap, xValueMap: XValueMap -) { +): boolean { let searchType = query.getType(); // console.log(searchType); @@ -827,5 +857,8 @@ export function collectDataFromTask( if (textExist) { let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); addToDataMap(dataMap, xValue, query, textMeasure); + return true; } + + return false; } diff --git a/src/helper.ts b/src/helper.ts index d05d18e..cc74735 100644 --- a/src/helper.ts +++ b/src/helper.ts @@ -311,10 +311,15 @@ export function deepValue(obj: any, str: string) { if (k in obj) { obj = obj[k]; } else { - return; + return null; } } - return obj; + if (typeof obj === "string" || Array.isArray(obj)) { + return obj; + } else if (typeof obj === "number") { + return obj.toString(); + } + return null; } // String helpers @@ -366,9 +371,15 @@ export function parseFloatFromAny( } if (!anyMatch) { value = parseFloat(toParse); + if (Number.isNaN(value)) { + value = null; + } } } else { value = parseFloat(toParse); + if (Number.isNaN(value)) { + value = null; + } } } } else if (typeof toParse === "number") { diff --git a/src/main.ts b/src/main.ts index 6aa4f39..8a865ee 100644 --- a/src/main.ts +++ b/src/main.ts @@ -160,6 +160,8 @@ export default class Tracker extends Plugin { let fileCounter = 0; let dataMap: DataMap = new Map(); // {strDate: [query: value, ...]} + let gotAnyValidXValue = false; + let gotAnyValidYValue = false; // Collect data from files, each file has one data point for each query const loopFilePromises = files.map(async (file) => { // console.log(file.basename); @@ -292,6 +294,7 @@ export default class Tracker extends Plugin { } if (!skipThisFile) { + gotAnyValidXValue ||= true; xValueMap.set( xDatasetId, helper.dateToStr(xDate, renderInfo.dateFormat) @@ -322,6 +325,7 @@ export default class Tracker extends Plugin { let yDatasetQueries = renderInfo.queries.filter((q) => { return q.getType() !== SearchType.Table && !q.usedAsXDataset; }); + const loopQueryPromises = yDatasetQueries.map(async (query) => { // Get xValue from file if xDataset assigned // if (renderInfo.xDataset !== null) @@ -330,13 +334,14 @@ export default class Tracker extends Plugin { // console.log("Search frontmatter tags"); if (fileCache && query.getType() === SearchType.Tag) { // Add frontmatter tags, allow simple tag only - collecting.collectDataFromFrontmatterTag( - fileCache, - query, - renderInfo, - dataMap, - xValueMap - ); + gotAnyValidYValue ||= + collecting.collectDataFromFrontmatterTag( + fileCache, + query, + renderInfo, + dataMap, + xValueMap + ); } // Search frontmatter tags // console.log("Search frontmatter keys"); @@ -345,18 +350,19 @@ export default class Tracker extends Plugin { query.getType() === SearchType.Frontmatter && query.getTarget() !== "tags" ) { - collecting.collectDataFromFrontmatterKey( - fileCache, - query, - renderInfo, - dataMap, - xValueMap - ); + gotAnyValidYValue ||= + collecting.collectDataFromFrontmatterKey( + fileCache, + query, + renderInfo, + dataMap, + xValueMap + ); } // console.log("Search frontmatter keys"); // console.log("Search wiki links"); if (fileCache && query.getType() === SearchType.Wiki) { - collecting.collectDataFromWiki( + gotAnyValidYValue ||= collecting.collectDataFromWiki( fileCache, query, renderInfo, @@ -367,7 +373,7 @@ export default class Tracker extends Plugin { // console.log("Search inline tags"); if (content && query.getType() === SearchType.Tag) { - collecting.collectDataFromInlineTag( + gotAnyValidYValue ||= collecting.collectDataFromInlineTag( content, query, renderInfo, @@ -378,7 +384,7 @@ export default class Tracker extends Plugin { // console.log("Search Text"); if (content && query.getType() === SearchType.Text) { - collecting.collectDataFromText( + gotAnyValidYValue ||= collecting.collectDataFromText( content, query, renderInfo, @@ -389,7 +395,7 @@ export default class Tracker extends Plugin { // console.log("Search FileMeta"); if (query.getType() === SearchType.FileMeta) { - collecting.collectDataFromFileMeta( + gotAnyValidYValue ||= collecting.collectDataFromFileMeta( file, content, query, @@ -401,7 +407,7 @@ export default class Tracker extends Plugin { // console.log("Search dvField"); if (content && query.getType() === SearchType.dvField) { - collecting.collectDataFromDvField( + gotAnyValidYValue ||= collecting.collectDataFromDvField( content, query, renderInfo, @@ -417,7 +423,7 @@ export default class Tracker extends Plugin { query.getType() === SearchType.TaskDone || query.getType() === SearchType.TaskNotDone) ) { - collecting.collectDataFromTask( + gotAnyValidYValue ||= collecting.collectDataFromTask( content, query, renderInfo, @@ -593,11 +599,17 @@ export default class Tracker extends Plugin { } // console.log(xValues); - if (xValues.every((v) => v === null)) { - let errorMessage = "No valid X value found"; + if ( + xValues.every((v) => { + return v === null; + }) + ) { + let errorMessage = "No valid X value found in table"; renderErrorMessage(canvas, errorMessage); el.appendChild(canvas); return; + } else { + gotAnyValidXValue ||= true; } // get y data @@ -621,6 +633,7 @@ export default class Tracker extends Plugin { indLine < xValues.length && xValues[indLine] ) { + gotAnyValidYValue ||= true; collecting.addToDataMap( dataMap, helper.dateToStr( @@ -645,6 +658,7 @@ export default class Tracker extends Plugin { indLine < xValues.length && xValues[indLine] ) { + gotAnyValidYValue ||= true; collecting.addToDataMap( dataMap, helper.dateToStr( @@ -664,6 +678,20 @@ export default class Tracker extends Plugin { } } + if (!gotAnyValidXValue) { + let errorMessage = "No valid X values found in notes"; + renderErrorMessage(canvas, errorMessage); + el.appendChild(canvas); + return; + } + + if (!gotAnyValidYValue) { + let errorMessage = "No valid Y values found in notes"; + renderErrorMessage(canvas, errorMessage); + el.appendChild(canvas); + return; + } + if (fileCounter === 0) { let errorMessage = "No notes found under the given search condition"; From c7cc31dbe175592dbd875009d6c507fe446443ba Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 9 Aug 2021 17:38:17 +0800 Subject: [PATCH 060/277] Fix type mismatch --- src/collecting.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/collecting.ts b/src/collecting.ts index 528af6b..67f2b27 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -43,14 +43,17 @@ export function getDateFromFrontmatter( if (helper.deepValue(frontMatter, query.getTarget())) { let strDate = helper.deepValue(frontMatter, query.getTarget()); - strDate = helper.getDateStringFromInputString( - strDate, - renderInfo.dateFormatPrefix, - renderInfo.dateFormatSuffix - ); + // We only support single value for now + if (typeof strDate === "string") { + strDate = helper.getDateStringFromInputString( + strDate, + renderInfo.dateFormatPrefix, + renderInfo.dateFormatSuffix + ); - date = helper.strToDate(strDate, renderInfo.dateFormat); - // console.log(date); + date = helper.strToDate(strDate, renderInfo.dateFormat); + // console.log(date); + } } } From 2767285e5decdfebe5fd41364d446bea60b58d82 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 9 Aug 2021 18:02:12 +0800 Subject: [PATCH 061/277] Fix wrong external label sizes --- examples/TestPieChart.md | 2 +- src/pie.ts | 9 +++++---- styles.css | 6 ++++++ 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/examples/TestPieChart.md b/examples/TestPieChart.md index d84f357..480b9d4 100644 --- a/examples/TestPieChart.md +++ b/examples/TestPieChart.md @@ -94,7 +94,7 @@ searchTarget: Say I love you, Say I love you datasetName: Done, NotDone pie: label: '{{0.5/28.5*100}}%, {{4/28.5*100}}%, {{6/28.5*100}}%, {{8/28.5*100}}%, {{10/28.5*100}}%' - extLabel: 'A {{0.5/28.5*100}}%, B, C, D, E' + extLabel: 'DataA {{0.5/28.5*100}}%, DataB, DataC, DataD, DataE' data: '0.5, 4, 6, 8, 10' dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c' ratioInnerRadius: 0.6 diff --git a/src/pie.ts b/src/pie.ts index da298c5..46080a3 100644 --- a/src/pie.ts +++ b/src/pie.ts @@ -415,9 +415,10 @@ function renderPie( // console.log(extLabels); // extLabel sizes - let extLabelSizes = labels.map(function (n) { - return helper.measureTextSize(n, "tracker-tick-label"); + let extLabelSizes = extLabels.map(function (n) { + return helper.measureTextSize(n, "tracker-pie-label"); }); + // console.log(extLabelSizes); let showExtLabelOnlyIfNoLabel = pieInfo.showExtLabelOnlyIfNoLabel; @@ -491,7 +492,7 @@ function renderPie( ); }) .style("text-anchor", "middle") - .attr("class", "tracker-tick-label"); + .attr("class", "tracker-pie-label"); function getMidAngle(arcObj: any) { return arcObj.startAngle + (arcObj.endAngle - arcObj.startAngle) / 2; @@ -526,7 +527,7 @@ function renderPie( let midAngle = getMidAngle(arcObj); return midAngle < Math.PI ? "start" : "end"; }) - .attr("class", "tracker-tick-label"); + .attr("class", "tracker-pie-label"); function getPointsForConnectionLines(arcObj: any, i: number) { let labelWidth = labelSizes[i].width; diff --git a/styles.css b/styles.css index 4e31eca..9cd8b4c 100644 --- a/styles.css +++ b/styles.css @@ -173,4 +173,10 @@ text-anchor: middle; font-size: 10px; stroke: none; +} + +.tracker-pie-label { + fill: var(--color-tick-label); + stroke: none; + font-size: 12px; } \ No newline at end of file From c6f2dd1c427abe2084263d4bf6508783835921f7 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Wed, 11 Aug 2021 13:30:21 +0800 Subject: [PATCH 062/277] Set version to 1.10.0 --- manifest.json | 2 +- package.json | 2 +- versions.json | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 8635ef3..b6036da 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.9.2", + "version": "1.10.0", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package.json b/package.json index 38fb7b0..9fc8906 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.9.2", + "version": "1.10.0", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index 4ea18cc..0f2082e 100644 --- a/versions.json +++ b/versions.json @@ -18,5 +18,6 @@ "1.8.2": "0.9.12", "1.9.0": "0.9.12", "1.9.1": "0.9.12", - "1.9.2": "0.9.12" + "1.9.2": "0.9.12", + "1.10.0": "0.9.12" } From 9abb5d870598be36e83ca0178b9006f914cfdf15 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Wed, 11 Aug 2021 14:40:36 +0800 Subject: [PATCH 063/277] Replace tab by spaces in examples --- examples/TestAxisIntervalAndFormat.md | 18 +++++++++--------- examples/TestDvField.md | 8 ++++---- examples/TestPieChart.md | 9 ++++++++- examples/TestSummary.md | 2 +- examples/TestTextValueMap.md | 6 +++--- examples/TestTimeValues.md | 10 +++++----- examples/TestWordCounting.md | 8 ++++---- examples/TestXDataset.md | 8 ++++---- examples/WeightTracker.md | 2 +- 9 files changed, 39 insertions(+), 32 deletions(-) diff --git a/examples/TestAxisIntervalAndFormat.md b/examples/TestAxisIntervalAndFormat.md index b3a8733..35f1689 100644 --- a/examples/TestAxisIntervalAndFormat.md +++ b/examples/TestAxisIntervalAndFormat.md @@ -14,8 +14,8 @@ line: yAxisLabel: Weight yAxisUnit: kg lineColor: yellow - yAxisTickInterval: 5 - yMin: 55 + yAxisTickInterval: 5 + yMin: 55 ``` Y values in time @@ -28,12 +28,12 @@ datasetName: Clock-In, Clock-Out line: title: "Working Hours" yAxisLabel: "Time (24h)" - reverseYAxis: true + reverseYAxis: true lineColor: yellow, red showPoint: true yAxisTickInterval: 1h - yMin: 06:00 - yMax: 23:00 + yMin: 06:00 + yMax: 23:00 ``` ## Y Axis Tick Label Format @@ -49,9 +49,9 @@ line: yAxisLabel: Weight yAxisUnit: kg lineColor: yellow - yAxisTickInterval: 5 + yAxisTickInterval: 5 yAxisTickLabelFormat: .2f - yMin: 55 + yMin: 55 ``` Y values in time @@ -64,7 +64,7 @@ datasetName: Clock-In, Clock-Out line: title: "Working Hours" yAxisLabel: "Time (24h)" - reverseYAxis: true + reverseYAxis: true lineColor: yellow, red showPoint: true yMin: 05:00 @@ -101,5 +101,5 @@ line: yAxisUnit: kg lineColor: yellow xAxisTickInterval: 7d - xAxisTickLabelFormat: M-DD + xAxisTickLabelFormat: M-DD ``` \ No newline at end of file diff --git a/examples/TestDvField.md b/examples/TestDvField.md index 7fb7877..5f0add1 100644 --- a/examples/TestDvField.md +++ b/examples/TestDvField.md @@ -9,7 +9,7 @@ startDate: 2021-01-01 endDate: 2021-01-31 line: title: dvField - lineColor: green + lineColor: green ``` Field with a space @@ -21,7 +21,7 @@ startDate: 2021-01-01 endDate: 2021-01-31 line: title: dvField - lineColor: yellow + lineColor: yellow ``` Field with a dash line @@ -33,7 +33,7 @@ startDate: 2021-01-01 endDate: 2021-01-31 line: title: dvField - lineColor: red + lineColor: red ``` Extract the first value from multiple values @@ -45,7 +45,7 @@ startDate: 2021-01-01 endDate: 2021-01-31 line: title: dvField - lineColor: blue + lineColor: blue ``` Multiple values separated by '/' (default) diff --git a/examples/TestPieChart.md b/examples/TestPieChart.md index 480b9d4..b6927a9 100644 --- a/examples/TestPieChart.md +++ b/examples/TestPieChart.md @@ -1,5 +1,12 @@ # Test Pie Chart - +``` tracker +searchType: task.done, task.notdone +searchTarget: Say I love you, Say I love you +folder: diary +summary: + template: "How many days I said love: {{sum(dataset(0))::i}}\nHow many days I didn't say love: {{sum(dataset(1))::i}}" +``` + {date: [query: value, ...]} + if ( + dataMap.has( + helper.dateToStr(curDate, renderInfo.dateFormat) + ) + ) { + let queryValuePairs = dataMap + .get(helper.dateToStr(curDate, renderInfo.dateFormat)) + .filter(function (pair) { + return pair.query.equalTo(query); + }); + if (queryValuePairs.length > 0) { + // Merge values of the same day same query + let value = null; + for ( + let indPair = 0; + indPair < queryValuePairs.length; + indPair++ + ) { + let collected = queryValuePairs[indPair].value; + if ( + Number.isNumber(collected) && + !Number.isNaN(collected) + ) { + if (value === null) { + value = collected; + } else { + value += collected; + } + } + } + // console.log(hasValue); + // console.log(value); + if (value !== null) { + dataset.setValue(curDate, value); + } + } + } + } + } + renderInfo.datasets = datasets; + // console.log(renderInfo.datasets); + + let result = render(canvas, renderInfo); + if (typeof result === "string") { + let errorMessage = result; + renderErrorMessage(canvas, errorMessage); + el.appendChild(canvas); + return; + } + + el.appendChild(canvas); + } + + // TODO: remove this.app and move to collecting.ts + async collectDataFromTable( + dataMap: DataMap, + renderInfo: RenderInfo, + processInfo: CollectingProcessInfo + ) { + // console.log("collectDataFromTable"); + let tableQueries = renderInfo.queries.filter( (q) => q.getType() === SearchType.Table ); @@ -481,9 +648,7 @@ export default class Tracker extends Plugin { if (tableFileNotFound) { let errorMessage = "File containing tables not found"; - renderErrorMessage(canvas, errorMessage); - el.appendChild(canvas); - return; + return errorMessage; } for (let tableData of tables) { @@ -504,7 +669,7 @@ export default class Tracker extends Plugin { normalizePath(filePath) ); if (file && file instanceof TFile) { - fileCounter++; + processInfo.fileCounter++; let content = await this.app.vault.adapter.read(file.path); // console.log(content); @@ -578,15 +743,18 @@ export default class Tracker extends Plugin { if (date.isValid()) { xValues.push(date); - if (!minDate.isValid() && !maxDate.isValid()) { - minDate = date.clone(); - maxDate = date.clone(); + if ( + !processInfo.minDate.isValid() && + !processInfo.maxDate.isValid() + ) { + processInfo.minDate = date.clone(); + processInfo.maxDate = date.clone(); } else { - if (date < minDate) { - minDate = date.clone(); + if (date < processInfo.minDate) { + processInfo.minDate = date.clone(); } - if (date > maxDate) { - maxDate = date.clone(); + if (date > processInfo.maxDate) { + processInfo.maxDate = date.clone(); } } } else { @@ -605,11 +773,9 @@ export default class Tracker extends Plugin { }) ) { let errorMessage = "No valid X value found in table"; - renderErrorMessage(canvas, errorMessage); - el.appendChild(canvas); - return; + return errorMessage; } else { - gotAnyValidXValue ||= true; + processInfo.gotAnyValidXValue ||= true; } // get y data @@ -633,7 +799,7 @@ export default class Tracker extends Plugin { indLine < xValues.length && xValues[indLine] ) { - gotAnyValidYValue ||= true; + processInfo.gotAnyValidYValue ||= true; collecting.addToDataMap( dataMap, helper.dateToStr( @@ -658,7 +824,7 @@ export default class Tracker extends Plugin { indLine < xValues.length && xValues[indLine] ) { - gotAnyValidYValue ||= true; + processInfo.gotAnyValidYValue ||= true; collecting.addToDataMap( dataMap, helper.dateToStr( @@ -677,151 +843,6 @@ export default class Tracker extends Plugin { } // Loop over tableLines } } - - if (!gotAnyValidXValue) { - let errorMessage = "No valid X values found in notes"; - renderErrorMessage(canvas, errorMessage); - el.appendChild(canvas); - return; - } - - if (!gotAnyValidYValue) { - let errorMessage = "No valid Y values found in notes"; - renderErrorMessage(canvas, errorMessage); - el.appendChild(canvas); - return; - } - - if (fileCounter === 0) { - let errorMessage = - "No notes found under the given search condition"; - renderErrorMessage(canvas, errorMessage); - el.appendChild(canvas); - return; - } - // console.log(minDate); - // console.log(maxDate); - // console.log(dataMap); - - // Check date range - if (!minDate.isValid() || !maxDate.isValid()) { - let errorMessage = "Invalid date range"; - renderErrorMessage(canvas, errorMessage); - el.appendChild(canvas); - return; - } - if (renderInfo.startDate === null && renderInfo.endDate === null) { - // No date arguments - renderInfo.startDate = minDate.clone(); - renderInfo.endDate = maxDate.clone(); - } else if ( - renderInfo.startDate !== null && - renderInfo.endDate === null - ) { - if (renderInfo.startDate < maxDate) { - renderInfo.endDate = maxDate.clone(); - } else { - let errorMessage = "Invalid date range"; - renderErrorMessage(canvas, errorMessage); - el.appendChild(canvas); - return; - } - } else if ( - renderInfo.endDate !== null && - renderInfo.startDate === null - ) { - if (renderInfo.endDate > minDate) { - renderInfo.startDate = minDate.clone(); - } else { - let errorMessage = "Invalid date range"; - renderErrorMessage(canvas, errorMessage); - el.appendChild(canvas); - return; - } - } else { - // startDate and endDate are valid - if ( - (renderInfo.startDate < minDate && - renderInfo.endDate < minDate) || - (renderInfo.startDate > maxDate && renderInfo.endDate > maxDate) - ) { - let errorMessage = "Invalid date range"; - renderErrorMessage(canvas, errorMessage); - el.appendChild(canvas); - return; - } - } - // console.log(renderInfo.startDate); - // console.log(renderInfo.endDate); - - // Reshape data for rendering - let datasets = new Datasets(renderInfo.startDate, renderInfo.endDate); - for (let query of renderInfo.queries) { - // We still create a dataset for xDataset, - // to keep the sequence and order of targets - let dataset = datasets.createDataset(query, renderInfo); - // Add number of targets to the dataset - // Number of targets has been accumulated while collecting data - dataset.addNumTargets(query.getNumTargets()); - for ( - let curDate = renderInfo.startDate.clone(); - curDate <= renderInfo.endDate; - curDate.add(1, "days") - ) { - // console.log(curDate); - - // dataMap --> {date: [query: value, ...]} - if ( - dataMap.has( - helper.dateToStr(curDate, renderInfo.dateFormat) - ) - ) { - let queryValuePairs = dataMap - .get(helper.dateToStr(curDate, renderInfo.dateFormat)) - .filter(function (pair) { - return pair.query.equalTo(query); - }); - if (queryValuePairs.length > 0) { - // Merge values of the same day same query - let value = null; - for ( - let indPair = 0; - indPair < queryValuePairs.length; - indPair++ - ) { - let collected = queryValuePairs[indPair].value; - if ( - Number.isNumber(collected) && - !Number.isNaN(collected) - ) { - if (value === null) { - value = collected; - } else { - value += collected; - } - } - } - // console.log(hasValue); - // console.log(value); - if (value !== null) { - dataset.setValue(curDate, value); - } - } - } - } - } - renderInfo.datasets = datasets; - // console.log(renderInfo.datasets); - - let result = render(canvas, renderInfo); - if (typeof result === "string") { - let errorMessage = result; - renderErrorMessage(canvas, errorMessage); - el.appendChild(canvas); - return; - } - - el.appendChild(canvas); } getEditor(): Editor { From ea37615c453ac21cf87fcc47fca7019e90039590 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Thu, 12 Aug 2021 02:13:47 +0800 Subject: [PATCH 065/277] Fix using logical unary assignment operators --- src/collecting.ts | 2 + src/main.ts | 131 +++++++++++++++++++++++----------------------- 2 files changed, 68 insertions(+), 65 deletions(-) diff --git a/src/collecting.ts b/src/collecting.ts index 67f2b27..fcf95ae 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -12,6 +12,7 @@ import { import * as helper from "./helper"; export function getDateFromFilename(file: TFile, renderInfo: RenderInfo) { + // console.log(`getDateFromFilename: ${file.name}`); let fileBaseName = file.basename; let dateString = helper.getDateStringFromInputString( @@ -796,6 +797,7 @@ export function collectDataFromTask( dataMap: DataMap, xValueMap: XValueMap ): boolean { + // console.log("collectDataFromTask"); let searchType = query.getType(); // console.log(searchType); diff --git a/src/main.ts b/src/main.ts index dc238cc..e46dbb2 100644 --- a/src/main.ts +++ b/src/main.ts @@ -329,18 +329,19 @@ export default class Tracker extends Plugin { // Get xValue from file if xDataset assigned // if (renderInfo.xDataset !== null) // let xDatasetId = renderInfo.xDataset; + // console.log(query); // console.log("Search frontmatter tags"); if (fileCache && query.getType() === SearchType.Tag) { // Add frontmatter tags, allow simple tag only - processInfo.gotAnyValidYValue ||= - collecting.collectDataFromFrontmatterTag( - fileCache, - query, - renderInfo, - dataMap, - xValueMap - ); + let gotAnyValue = collecting.collectDataFromFrontmatterTag( + fileCache, + query, + renderInfo, + dataMap, + xValueMap + ); + processInfo.gotAnyValidYValue ||= gotAnyValue; } // Search frontmatter tags // console.log("Search frontmatter keys"); @@ -349,75 +350,75 @@ export default class Tracker extends Plugin { query.getType() === SearchType.Frontmatter && query.getTarget() !== "tags" ) { - processInfo.gotAnyValidYValue ||= - collecting.collectDataFromFrontmatterKey( - fileCache, - query, - renderInfo, - dataMap, - xValueMap - ); + let gotAnyValue = collecting.collectDataFromFrontmatterKey( + fileCache, + query, + renderInfo, + dataMap, + xValueMap + ); + processInfo.gotAnyValidYValue ||= gotAnyValue; } // console.log("Search frontmatter keys"); // console.log("Search wiki links"); if (fileCache && query.getType() === SearchType.Wiki) { - processInfo.gotAnyValidYValue ||= - collecting.collectDataFromWiki( - fileCache, - query, - renderInfo, - dataMap, - xValueMap - ); + let gotAnyValue = collecting.collectDataFromWiki( + fileCache, + query, + renderInfo, + dataMap, + xValueMap + ); + processInfo.gotAnyValidYValue ||= gotAnyValue; } // console.log("Search inline tags"); if (content && query.getType() === SearchType.Tag) { - processInfo.gotAnyValidYValue ||= - collecting.collectDataFromInlineTag( - content, - query, - renderInfo, - dataMap, - xValueMap - ); + let gotAnyValue = collecting.collectDataFromInlineTag( + content, + query, + renderInfo, + dataMap, + xValueMap + ); + processInfo.gotAnyValidYValue ||= gotAnyValue; } // Search inline tags // console.log("Search Text"); if (content && query.getType() === SearchType.Text) { - processInfo.gotAnyValidYValue ||= - collecting.collectDataFromText( - content, - query, - renderInfo, - dataMap, - xValueMap - ); + let gotAnyValue = collecting.collectDataFromText( + content, + query, + renderInfo, + dataMap, + xValueMap + ); + processInfo.gotAnyValidYValue ||= gotAnyValue; } // Search text // console.log("Search FileMeta"); if (query.getType() === SearchType.FileMeta) { - processInfo.gotAnyValidYValue ||= - collecting.collectDataFromFileMeta( - file, - content, - query, - renderInfo, - dataMap, - xValueMap - ); + let gotAnyValue = collecting.collectDataFromFileMeta( + file, + content, + query, + renderInfo, + dataMap, + xValueMap + ); + processInfo.gotAnyValidYValue ||= gotAnyValue; } // Search FileMeta // console.log("Search dvField"); if (content && query.getType() === SearchType.dvField) { - processInfo.gotAnyValidYValue ||= - collecting.collectDataFromDvField( - content, - query, - renderInfo, - dataMap, - xValueMap - ); + let gotAnyValue = collecting.collectDataFromDvField( + content, + query, + renderInfo, + dataMap, + xValueMap + ); + processInfo.gotAnyValidYValue ||= gotAnyValue; } // search dvField // console.log("Search Task"); @@ -427,14 +428,14 @@ export default class Tracker extends Plugin { query.getType() === SearchType.TaskDone || query.getType() === SearchType.TaskNotDone) ) { - processInfo.gotAnyValidYValue ||= - collecting.collectDataFromTask( - content, - query, - renderInfo, - dataMap, - xValueMap - ); + let gotAnyValue = collecting.collectDataFromTask( + content, + query, + renderInfo, + dataMap, + xValueMap + ); + processInfo.gotAnyValidYValue ||= gotAnyValue; } // search Task }); await Promise.all(loopQueryPromises); From fc20ce26b11cdcada7ee822c6c42ce781b77a71a Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Thu, 12 Aug 2021 02:15:27 +0800 Subject: [PATCH 066/277] Update example TestPieChart.md --- examples/TestPieChart.md | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/examples/TestPieChart.md b/examples/TestPieChart.md index b6927a9..999f677 100644 --- a/examples/TestPieChart.md +++ b/examples/TestPieChart.md @@ -1,12 +1,5 @@ # Test Pie Chart -``` tracker -searchType: task.done, task.notdone -searchTarget: Say I love you, Say I love you -folder: diary -summary: - template: "How many days I said love: {{sum(dataset(0))::i}}\nHow many days I didn't say love: {{sum(dataset(1))::i}}" -``` - extract value +// regex without value --> count occurrencies +function extractDataUsingRegex( + text: string, + strRegex: string, + query: Query, + dataMap: DataMap, + xValueMap: XValueMap, + renderInfo: RenderInfo +) { + let textRegex = new RegExp(strRegex, "gm"); + let match; + let measure = 0.0; + let extracted = false; + while ((match = textRegex.exec(text))) { + // console.log(match); + // match[0] whole match + if (!renderInfo.ignoreAttachedValue[query.getId()]) { + if ( + typeof match.groups !== "undefined" && + typeof match.groups.value !== "undefined" + ) { + // set as null for missing value if it is valued-tag + let retParse = helper.parseFloatFromAny( + match.groups.value, + renderInfo.textValueMap + ); + // console.log(value); + if (retParse.value !== null) { + if (retParse.type === ValueType.Time) { + measure = retParse.value; + extracted = true; + query.valueType = ValueType.Time; + query.addNumTargets(); + } else { + if ( + !renderInfo.ignoreZeroValue[query.getId()] || + retParse.value !== 0 + ) { + measure += retParse.value; + extracted = true; + query.addNumTargets(); + } + } + } + } else { + // no named groups, count occurrencies + // console.log("count occurrencies"); + measure += renderInfo.constValue[query.getId()]; + extracted = true; + query.addNumTargets(); + } + } else { + // force to count occurrencies + // console.log("count occurrencies"); + measure += renderInfo.constValue[query.getId()]; + extracted = true; + query.addNumTargets(); + } + } + + if (extracted) { + let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); + addToDataMap(dataMap, xValue, query, measure); + return true; + } + + return false; +} + // no value export function collectDataFromFrontmatterTag( fileCache: CachedMetadata, @@ -520,7 +517,9 @@ export function collectDataFromFrontmatterKey( return false; } -// regex-value +// no key +// regex with value --> extract value +// regex without value --> count occurrencies export function collectDataFromWiki( fileCache: CachedMetadata, query: Query, @@ -529,27 +528,49 @@ export function collectDataFromWiki( xValueMap: XValueMap ): boolean { let links = fileCache.links; - if (!links) return; + if (!links) return false; + + let searchTarget = query.getTarget(); + let searchType = query.getType(); - let linkMeasure = 0.0; - let linkExist = false; for (let link of links) { - if (link.link.startsWith(query.getTarget())) { - linkExist = true; - linkMeasure = linkMeasure + renderInfo.constValue[query.getId()]; - query.addNumTargets(); + if (!link) continue; + + let wikiText = ""; + if (searchType === SearchType.Wiki) { + if (link.displayText) { + wikiText = link.displayText; + } else { + wikiText = link.link; + } + } else if (searchType === SearchType.WikiLink) { + // wiki.link point to a file name + // a colon is not allowed be in file name + wikiText = link.link; + } else if (searchType === SearchType.WikiDisplay) { + if (link.displayText) { + wikiText = link.displayText; + } + } else { + if (link.displayText) { + wikiText = link.displayText; + } else { + wikiText = link.link; + } } - } + wikiText = wikiText.trim(); - let linkValue = null; - if (linkExist) { - linkValue = linkMeasure; - } + let strRegex = "^" + searchTarget + "$"; - if (linkValue !== null) { - let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); - addToDataMap(dataMap, xValue, query, linkValue); - return true; + let extracted = extractDataUsingRegex( + wikiText, + strRegex, + query, + dataMap, + xValueMap, + renderInfo + ); + if (extracted) return true; } return false; @@ -661,6 +682,9 @@ export function collectDataFromInlineTag( return false; } +// no key +// regex with value --> extract value +// regex without value --> count occurrencies export function collectDataFromText( content: string, query: Query, @@ -668,59 +692,17 @@ export function collectDataFromText( dataMap: DataMap, xValueMap: XValueMap ): boolean { - let strTextRegex = query.getTarget(); + let strRegex = query.getTarget(); // console.log(strTextRegex); - let textRegex = new RegExp(strTextRegex, "gm"); - let match; - let textMeasure = 0.0; - let textExist = false; - while ((match = textRegex.exec(content))) { - // console.log(match); - if ( - !renderInfo.ignoreAttachedValue[query.getId()] && - typeof match.groups !== "undefined" - ) { - // match[0] whole match - // console.log("valued-text"); - if (typeof match.groups.value !== "undefined") { - // set as null for missing value if it is valued-tag - let retParse = helper.parseFloatFromAny( - match.groups.value, - renderInfo.textValueMap - ); - if (retParse.value !== null) { - if (retParse.type === ValueType.Time) { - textMeasure = retParse.value; - textExist = true; - query.valueType = ValueType.Time; - query.addNumTargets(); - } else { - if ( - !renderInfo.ignoreZeroValue[query.getId()] || - retParse.value !== 0 - ) { - textMeasure += retParse.value; - textExist = true; - query.addNumTargets(); - } - } - } - } - } else { - // console.log("simple-text"); - textMeasure = textMeasure + renderInfo.constValue[query.getId()]; - textExist = true; - query.addNumTargets(); - } - } - - if (textExist) { - let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); - addToDataMap(dataMap, xValue, query, textMeasure); - return true; - } - return false; + return extractDataUsingRegex( + content, + strRegex, + query, + dataMap, + xValueMap, + renderInfo + ); } export function collectDataFromFileMeta( @@ -919,7 +901,8 @@ export function collectDataFromDvField( return false; } -// regex-value +// no key + export function collectDataFromTask( content: string, query: Query, @@ -931,69 +914,25 @@ export function collectDataFromTask( let searchType = query.getType(); // console.log(searchType); - let strTextRegex = query.getTarget(); + let strRegex = query.getTarget(); if (searchType === SearchType.Task) { - strTextRegex = "\\[[\\sx]\\]\\s" + strTextRegex; + strRegex = "\\[[\\sx]\\]\\s" + strRegex; } else if (searchType === SearchType.TaskDone) { - strTextRegex = "\\[x\\]\\s" + strTextRegex; + strRegex = "\\[x\\]\\s" + strRegex; } else if (searchType === SearchType.TaskNotDone) { - strTextRegex = "\\[\\s\\]\\s" + strTextRegex; + strRegex = "\\[\\s\\]\\s" + strRegex; } else { // all - strTextRegex = "\\[[\\sx]\\]\\s" + strTextRegex; + strRegex = "\\[[\\sx]\\]\\s" + strRegex; } - // console.log(strTextRegex); - - let textRegex = new RegExp(strTextRegex, "gm"); - let match; - let textMeasure = 0.0; - let textExist = false; - while ((match = textRegex.exec(content))) { - // console.log(match); - if ( - !renderInfo.ignoreAttachedValue[query.getId()] && - typeof match.groups !== "undefined" - ) { - // match[0] whole match - // console.log("valued-text"); - if (typeof match.groups.value !== "undefined") { - // set as null for missing value if it is valued-tag - let retParse = helper.parseFloatFromAny( - match.groups.value, - renderInfo.textValueMap - ); - // console.log(value); - if (retParse.value !== null) { - if (retParse.type === ValueType.Time) { - textMeasure = retParse.value; - textExist = true; - query.valueType = ValueType.Time; - query.addNumTargets(); - } else { - if ( - !renderInfo.ignoreZeroValue[query.getId()] || - retParse.value !== 0 - ) { - textMeasure += retParse.value; - textExist = true; - query.addNumTargets(); - } - } - } - } - } else { - // console.log("simple-text"); - textMeasure = textMeasure + renderInfo.constValue[query.getId()]; - textExist = true; - query.addNumTargets(); - } - } - - if (textExist) { - let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); - addToDataMap(dataMap, xValue, query, textMeasure); - return true; - } - - return false; + // console.log(strRegex); + + return extractDataUsingRegex( + content, + strRegex, + query, + dataMap, + xValueMap, + renderInfo + ); } From 28dde8276b2b54d13416cd8d537294087fc562ce Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 16 Aug 2021 14:37:20 +0800 Subject: [PATCH 070/277] Do refactoring on collecting module --- src/collecting.ts | 319 +++++++++++++++++++--------------------------- 1 file changed, 132 insertions(+), 187 deletions(-) diff --git a/src/collecting.ts b/src/collecting.ts index d1d24eb..dc949ca 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -36,7 +36,7 @@ export function getDateFromFilename( } // Not support multiple targets -// In form 'key: value', target used to identify 'key' +// In form 'key: value', target used to identify 'frontmatter key' export function getDateFromFrontmatter( fileCache: CachedMetadata, query: Query, @@ -76,7 +76,7 @@ function extractDateUsingRegexWithValue( text: string, strRegex: string, renderInfo: RenderInfo -) { +): Moment { let date = window.moment(""); let regex = new RegExp(strRegex, "gm"); @@ -314,14 +314,14 @@ export function addToDataMap( // regex with value --> extract value // regex without value --> count occurrencies -function extractDataUsingRegex( +function extractDataUsingRegexWithSingleValue( text: string, strRegex: string, query: Query, dataMap: DataMap, xValueMap: XValueMap, renderInfo: RenderInfo -) { +): boolean { let textRegex = new RegExp(strRegex, "gm"); let match; let measure = 0.0; @@ -382,7 +382,104 @@ function extractDataUsingRegex( return false; } -// no value +function extractDataUsingRegexWithMultipleValues( + text: string, + strRegex: string, + query: Query, + dataMap: DataMap, + xValueMap: XValueMap, + renderInfo: RenderInfo +): boolean { + let regex = new RegExp(strRegex, "gm"); + let match; + let measure = 0.0; + let extracted = false; + while ((match = regex.exec(text))) { + // console.log(match); + if (!renderInfo.ignoreAttachedValue[query.getId()]) { + } + + if ( + typeof match.groups !== "undefined" && + typeof match.groups.values !== "undefined" + ) { + let values = match.groups.values.trim(); + // console.log(values); + // console.log(query.getSeparator()); + let splitted = values.split(query.getSeparator()); + // console.log(splitted); + if (!splitted) continue; + if (splitted.length === 1) { + // console.log("single-value"); + let toParse = splitted[0].trim(); + // console.log(toParse); + let retParse = helper.parseFloatFromAny( + toParse, + renderInfo.textValueMap + ); + if (retParse.value !== null) { + if (retParse.type === ValueType.Time) { + measure = retParse.value; + extracted = true; + query.valueType = ValueType.Time; + query.addNumTargets(); + } else { + if ( + !renderInfo.ignoreZeroValue[query.getId()] || + retParse.value !== 0 + ) { + measure += retParse.value; + extracted = true; + query.addNumTargets(); + } + } + } + } else if ( + splitted.length > query.getAccessor() && + query.getAccessor() >= 0 + ) { + // TODO: it's not efficent to retrieve one value at a time, enhance this + // console.log("multiple-values"); + let toParse = splitted[query.getAccessor()].trim(); + let retParse = helper.parseFloatFromAny( + toParse, + renderInfo.textValueMap + ); + //console.log(retParse); + if (retParse.value !== null) { + if (retParse.type === ValueType.Time) { + measure = retParse.value; + extracted = true; + query.valueType = ValueType.Time; + query.addNumTargets(); + } else { + measure += retParse.value; + extracted = true; + query.addNumTargets(); + } + } + } + } else { + measure += renderInfo.constValue[query.getId()]; + extracted = true; + query.addNumTargets(); + } + } + + let value = null; + if (extracted) { + value = measure; + } + if (value !== null) { + let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); + addToDataMap(dataMap, xValue, query, value); + return true; + } + + return false; +} + +// no value, count occurrences only export function collectDataFromFrontmatterTag( fileCache: CachedMetadata, query: Query, @@ -423,7 +520,7 @@ export function collectDataFromFrontmatterTag( } // valued-tag in frontmatter is not supported - // because the "tag:value" in frontmatter will be consider as a new tag for different values + // because the "tag:value" in frontmatter will be consider as a new tag for each existing value let value = null; if (tagExist) { @@ -438,7 +535,7 @@ export function collectDataFromFrontmatterTag( return false; } -// key-value +// In form 'key: value', target used to identify 'frontmatter key' export function collectDataFromFrontmatterKey( fileCache: CachedMetadata, query: Query, @@ -517,9 +614,7 @@ export function collectDataFromFrontmatterKey( return false; } -// no key -// regex with value --> extract value -// regex without value --> count occurrencies +// In form 'regex with value', name group 'value' from users export function collectDataFromWiki( fileCache: CachedMetadata, query: Query, @@ -562,7 +657,7 @@ export function collectDataFromWiki( let strRegex = "^" + searchTarget + "$"; - let extracted = extractDataUsingRegex( + let extracted = extractDataUsingRegexWithSingleValue( wikiText, strRegex, query, @@ -576,7 +671,7 @@ export function collectDataFromWiki( return false; } -// key-value +// In form 'key: value', name group 'value' from plugin, not from users export function collectDataFromInlineTag( content: string, query: Query, @@ -594,97 +689,23 @@ export function collectDataFromInlineTag( if (tagName.length > 1 && tagName.startsWith("#")) { tagName = tagName.substring(1); } - let strHashtagRegex = + let strRegex = "(^|\\s)#" + tagName + "(\\/[\\w-]+)*(:(?[\\d\\.\\/-]*)[a-zA-Z]*)?([\\.!,\\?;~-]*)?(\\s|$)"; - // console.log(strHashtagRegex); - let hashTagRegex = new RegExp(strHashtagRegex, "gm"); - let match; - let tagMeasure = 0.0; - let tagExist = false; - while ((match = hashTagRegex.exec(content))) { - // console.log(match); - if ( - !renderInfo.ignoreAttachedValue[query.getId()] && - typeof match.groups !== "undefined" && - typeof match.groups.values !== "undefined" - ) { - // console.log("value-attached tag"); - let values = match.groups.values; - let splitted = values.split(query.getSeparator()); - if (!splitted) continue; - if (splitted.length === 1) { - // console.log("single-value"); - let toParse = splitted[0].trim(); - let retParse = helper.parseFloatFromAny( - toParse, - renderInfo.textValueMap - ); - if (retParse.value !== null) { - if (retParse.type === ValueType.Time) { - tagMeasure = retParse.value; - tagExist = true; - query.valueType = ValueType.Time; - query.addNumTargets(); - } else { - if ( - !renderInfo.ignoreZeroValue[query.getId()] || - retParse.value !== 0 - ) { - tagMeasure += retParse.value; - tagExist = true; - query.addNumTargets(); - } - } - } - } else if ( - splitted.length > query.getAccessor() && - query.getAccessor() >= 0 - ) { - let toParse = splitted[query.getAccessor()].trim(); - let retParse = helper.parseFloatFromAny( - toParse, - renderInfo.textValueMap - ); - //console.log(retParse); - if (retParse.value !== null) { - if (retParse.type === ValueType.Time) { - tagMeasure = retParse.value; - tagExist = true; - query.valueType = ValueType.Time; - query.addNumTargets(); - } else { - tagMeasure += retParse.value; - tagExist = true; - query.addNumTargets(); - } - } - } - } else { - // console.log("simple-tag"); - tagMeasure = tagMeasure + renderInfo.constValue[query.getId()]; - tagExist = true; - query.addNumTargets(); - } - } - - let value = null; - if (tagExist) { - value = tagMeasure; - } - if (value !== null) { - let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); - addToDataMap(dataMap, xValue, query, value); - return true; - } + // console.log(strRegex); - return false; + return extractDataUsingRegexWithMultipleValues( + content, + strRegex, + query, + dataMap, + xValueMap, + renderInfo + ); } -// no key -// regex with value --> extract value -// regex without value --> count occurrencies +// In form 'regex with value', name group 'value' from users export function collectDataFromText( content: string, query: Query, @@ -695,7 +716,7 @@ export function collectDataFromText( let strRegex = query.getTarget(); // console.log(strTextRegex); - return extractDataUsingRegex( + return extractDataUsingRegexWithMultipleValues( content, strRegex, query, @@ -791,7 +812,7 @@ export function collectDataFromFileMeta( return false; } -// key-value +// In form 'key::value', named group 'value' from plugin export function collectDataFromDvField( content: string, query: Query, @@ -810,99 +831,23 @@ export function collectDataFromDvField( // Test this in Regex101 // remember '\s' includes new line // (^| |\t)\*{0,2}dvTarget\*{0,2}(::[ |\t]*(?[\d\.\/\-\w,@; \t:]*))(\r?\n|\r|$) - let strHashtagRegex = + let strRegex = "(^| |\\t)\\*{0,2}" + dvTarget + "\\*{0,2}(::[ |\\t]*(?[\\d\\.\\/\\-\\w,@; \\t:]*))(\\r\\?\\n|\\r|$)"; - // console.log(strHashtagRegex); - let hashTagRegex = new RegExp(strHashtagRegex, "gm"); - let match; - let tagMeasure = 0.0; - let tagExist = false; - while ((match = hashTagRegex.exec(content))) { - // console.log(match); - if ( - typeof match.groups !== "undefined" && - typeof match.groups.values !== "undefined" - ) { - let values = match.groups.values.trim(); - // console.log(values); - // console.log(query.getSeparator()); - let splitted = values.split(query.getSeparator()); - // console.log(splitted); - if (!splitted) continue; - if (splitted.length === 1) { - // console.log("single-value"); - let toParse = splitted[0]; - // console.log(toParse); - let retParse = helper.parseFloatFromAny( - toParse, - renderInfo.textValueMap - ); - if (retParse.value !== null) { - if (retParse.type === ValueType.Time) { - tagMeasure = retParse.value; - tagExist = true; - query.valueType = ValueType.Time; - query.addNumTargets(); - } else { - if ( - !renderInfo.ignoreZeroValue[query.getId()] || - retParse.value !== 0 - ) { - tagMeasure += retParse.value; - tagExist = true; - query.addNumTargets(); - } - } - } - } else if ( - splitted.length > query.getAccessor() && - query.getAccessor() >= 0 - ) { - // TODO: it's not efficent to retrieve one value at a time, enhance this - // console.log("multiple-values"); - let toParse = splitted[query.getAccessor()].trim(); - let retParse = helper.parseFloatFromAny( - toParse, - renderInfo.textValueMap - ); - if (retParse.value !== null) { - if (retParse.type === ValueType.Time) { - tagMeasure = retParse.value; - tagExist = true; - query.valueType = ValueType.Time; - query.addNumTargets(); - } else { - tagMeasure += retParse.value; - tagExist = true; - query.addNumTargets(); - } - } - } - } else { - // console.log("simple-tag"); - tagMeasure = tagMeasure + renderInfo.constValue[query.getId()]; - tagExist = true; - query.addNumTargets(); - } - } - - let value = null; - if (tagExist) { - value = tagMeasure; - } - if (value !== null) { - let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); - addToDataMap(dataMap, xValue, query, value); - return true; - } + // console.log(strRegex); - return false; + return extractDataUsingRegexWithMultipleValues( + content, + strRegex, + query, + dataMap, + xValueMap, + renderInfo + ); } -// no key - +// In form 'regex with value', name group 'value' from users export function collectDataFromTask( content: string, query: Query, @@ -927,7 +872,7 @@ export function collectDataFromTask( } // console.log(strRegex); - return extractDataUsingRegex( + return extractDataUsingRegexWithSingleValue( content, strRegex, query, From 58cf5cd719e674c603923a112da32f8c15f13207 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 16 Aug 2021 14:44:59 +0800 Subject: [PATCH 071/277] Fix extractDataUsingRegexWithMultipleValues for ignoreAttachedValue --- src/collecting.ts | 129 +++++++++++++++++++++++++--------------------- 1 file changed, 69 insertions(+), 60 deletions(-) diff --git a/src/collecting.ts b/src/collecting.ts index dc949ca..6f812fc 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -397,82 +397,91 @@ function extractDataUsingRegexWithMultipleValues( while ((match = regex.exec(text))) { // console.log(match); if (!renderInfo.ignoreAttachedValue[query.getId()]) { - } - - if ( - typeof match.groups !== "undefined" && - typeof match.groups.values !== "undefined" - ) { - let values = match.groups.values.trim(); - // console.log(values); - // console.log(query.getSeparator()); - let splitted = values.split(query.getSeparator()); - // console.log(splitted); - if (!splitted) continue; - if (splitted.length === 1) { - // console.log("single-value"); - let toParse = splitted[0].trim(); - // console.log(toParse); - let retParse = helper.parseFloatFromAny( - toParse, - renderInfo.textValueMap - ); - if (retParse.value !== null) { - if (retParse.type === ValueType.Time) { - measure = retParse.value; - extracted = true; - query.valueType = ValueType.Time; - query.addNumTargets(); - } else { - if ( - !renderInfo.ignoreZeroValue[query.getId()] || - retParse.value !== 0 - ) { - measure += retParse.value; + if ( + typeof match.groups !== "undefined" && + typeof match.groups.values !== "undefined" + ) { + let values = match.groups.values.trim(); + // console.log(values); + // console.log(query.getSeparator()); + let splitted = values.split(query.getSeparator()); + // console.log(splitted); + if (!splitted) continue; + if (splitted.length === 1) { + // console.log("single-value"); + let toParse = splitted[0].trim(); + // console.log(toParse); + let retParse = helper.parseFloatFromAny( + toParse, + renderInfo.textValueMap + ); + if (retParse.value !== null) { + if (retParse.type === ValueType.Time) { + measure = retParse.value; extracted = true; + query.valueType = ValueType.Time; query.addNumTargets(); + } else { + if ( + !renderInfo.ignoreZeroValue[query.getId()] || + retParse.value !== 0 + ) { + measure += retParse.value; + extracted = true; + query.addNumTargets(); + } } } - } - } else if ( - splitted.length > query.getAccessor() && - query.getAccessor() >= 0 - ) { - // TODO: it's not efficent to retrieve one value at a time, enhance this - // console.log("multiple-values"); - let toParse = splitted[query.getAccessor()].trim(); - let retParse = helper.parseFloatFromAny( - toParse, - renderInfo.textValueMap - ); - //console.log(retParse); - if (retParse.value !== null) { - if (retParse.type === ValueType.Time) { - measure = retParse.value; - extracted = true; - query.valueType = ValueType.Time; - query.addNumTargets(); - } else { - measure += retParse.value; - extracted = true; - query.addNumTargets(); + } else if ( + splitted.length > query.getAccessor() && + query.getAccessor() >= 0 + ) { + // TODO: it's not efficent to retrieve one value at a time, enhance this + // console.log("multiple-values"); + let toParse = splitted[query.getAccessor()].trim(); + let retParse = helper.parseFloatFromAny( + toParse, + renderInfo.textValueMap + ); + //console.log(retParse); + if (retParse.value !== null) { + if (retParse.type === ValueType.Time) { + measure = retParse.value; + extracted = true; + query.valueType = ValueType.Time; + query.addNumTargets(); + } else { + measure += retParse.value; + extracted = true; + query.addNumTargets(); + } } + } else { + // no named groups, count occurrencies + // console.log("count occurrencies"); + measure += renderInfo.constValue[query.getId()]; + extracted = true; + query.addNumTargets(); } + } else { + // no named groups, count occurrencies + // console.log("count occurrencies"); + measure += renderInfo.constValue[query.getId()]; + extracted = true; + query.addNumTargets(); } } else { + // force to count occurrencies + // console.log("count occurrencies"); measure += renderInfo.constValue[query.getId()]; extracted = true; query.addNumTargets(); } } - let value = null; if (extracted) { - value = measure; - } - if (value !== null) { let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); - addToDataMap(dataMap, xValue, query, value); + addToDataMap(dataMap, xValue, query, measure); return true; } From 615b4591addb2fc398c5c54efc9620e8d1ee083c Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 16 Aug 2021 14:55:07 +0800 Subject: [PATCH 072/277] Using extractDataUsingRegexWithMultipleValues for all data collecting --- src/collecting.ts | 76 ++++------------------------------------------- 1 file changed, 5 insertions(+), 71 deletions(-) diff --git a/src/collecting.ts b/src/collecting.ts index 6f812fc..0cef8fb 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -312,76 +312,10 @@ export function addToDataMap( } } +// Helper function +// Accept multiple values using custom separators // regex with value --> extract value // regex without value --> count occurrencies -function extractDataUsingRegexWithSingleValue( - text: string, - strRegex: string, - query: Query, - dataMap: DataMap, - xValueMap: XValueMap, - renderInfo: RenderInfo -): boolean { - let textRegex = new RegExp(strRegex, "gm"); - let match; - let measure = 0.0; - let extracted = false; - while ((match = textRegex.exec(text))) { - // console.log(match); - // match[0] whole match - if (!renderInfo.ignoreAttachedValue[query.getId()]) { - if ( - typeof match.groups !== "undefined" && - typeof match.groups.value !== "undefined" - ) { - // set as null for missing value if it is valued-tag - let retParse = helper.parseFloatFromAny( - match.groups.value, - renderInfo.textValueMap - ); - // console.log(value); - if (retParse.value !== null) { - if (retParse.type === ValueType.Time) { - measure = retParse.value; - extracted = true; - query.valueType = ValueType.Time; - query.addNumTargets(); - } else { - if ( - !renderInfo.ignoreZeroValue[query.getId()] || - retParse.value !== 0 - ) { - measure += retParse.value; - extracted = true; - query.addNumTargets(); - } - } - } - } else { - // no named groups, count occurrencies - // console.log("count occurrencies"); - measure += renderInfo.constValue[query.getId()]; - extracted = true; - query.addNumTargets(); - } - } else { - // force to count occurrencies - // console.log("count occurrencies"); - measure += renderInfo.constValue[query.getId()]; - extracted = true; - query.addNumTargets(); - } - } - - if (extracted) { - let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); - addToDataMap(dataMap, xValue, query, measure); - return true; - } - - return false; -} - function extractDataUsingRegexWithMultipleValues( text: string, strRegex: string, @@ -488,7 +422,7 @@ function extractDataUsingRegexWithMultipleValues( return false; } -// no value, count occurrences only +// No value, count occurrences only export function collectDataFromFrontmatterTag( fileCache: CachedMetadata, query: Query, @@ -666,7 +600,7 @@ export function collectDataFromWiki( let strRegex = "^" + searchTarget + "$"; - let extracted = extractDataUsingRegexWithSingleValue( + let extracted = extractDataUsingRegexWithMultipleValues( wikiText, strRegex, query, @@ -881,7 +815,7 @@ export function collectDataFromTask( } // console.log(strRegex); - return extractDataUsingRegexWithSingleValue( + return extractDataUsingRegexWithMultipleValues( content, strRegex, query, From db64d8e8951eb16a573f22f3aed75be55e34eafc Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 16 Aug 2021 15:41:57 +0800 Subject: [PATCH 073/277] Not force a full match for wiki data extraction --- src/collecting.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/collecting.ts b/src/collecting.ts index 0cef8fb..2937287 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -598,7 +598,7 @@ export function collectDataFromWiki( } wikiText = wikiText.trim(); - let strRegex = "^" + searchTarget + "$"; + let strRegex = searchTarget; let extracted = extractDataUsingRegexWithMultipleValues( wikiText, From 15e577fbf6ddf33d28e1886aec9d860b0a0eff5c Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 16 Aug 2021 15:44:52 +0800 Subject: [PATCH 074/277] Update examples --- examples/TestDateFormats.md | 4 ++-- examples/TestRegex.md | 6 +++++- examples/TestRelativeStartEndDate.md | 1 + examples/TestWordCounting.md | 2 +- examples/WikiTracker.md | 29 +++++++++++++++++++++++----- examples/diary/2021-01-04.md | 1 + examples/diary/2021-01-06.md | 1 + examples/diary/2021-01-14.md | 1 + examples/diary/2021-01-16.md | 1 + examples/example_generator.ts | 2 +- 10 files changed, 38 insertions(+), 10 deletions(-) diff --git a/examples/TestDateFormats.md b/examples/TestDateFormats.md index e2b481c..d332f08 100644 --- a/examples/TestDateFormats.md +++ b/examples/TestDateFormats.md @@ -178,14 +178,14 @@ The reference date of the relative date input is 'today' (The current date of yo - 0d ==> today - -1d ==> yesterday - -1w ==> last week -- -1m ==> last month +- -1M ==> last month - -1y ==> last year ``` tracker searchType: tag searchTarget: weight folder: diary -startDate: -1m +startDate: -1M endDate: 0d line: title: Weight Log diff --git a/examples/TestRegex.md b/examples/TestRegex.md index b790cf3..482bb15 100644 --- a/examples/TestRegex.md +++ b/examples/TestRegex.md @@ -18,6 +18,10 @@ line: title: Email Occurencies yAxisLabel: Count lineColor: yellow + yAxisTickInterval: 1.0 + yAxisTickLabelFormat: i + yMin: 0 + yMax: 5 ``` ``` tracker @@ -27,7 +31,7 @@ folder: diary startDate: 2021-01-01 endDate: 2021-01-31 summary: - template: "Total number of emails found: {{sum()}}" + template: "Total number of emails found: {{sum()::i}}" style: "font-size:20px;color:red;margin-left: 50px;margin-top:00px;" ``` diff --git a/examples/TestRelativeStartEndDate.md b/examples/TestRelativeStartEndDate.md index 1b0e02f..aac55e0 100644 --- a/examples/TestRelativeStartEndDate.md +++ b/examples/TestRelativeStartEndDate.md @@ -10,4 +10,5 @@ line: title: PushUp yAxisLabel: Count lineColor: "#d65d0e" + yAxisTickInterval: 2 ``` \ No newline at end of file diff --git a/examples/TestWordCounting.md b/examples/TestWordCounting.md index 8d59613..eba5234 100644 --- a/examples/TestWordCounting.md +++ b/examples/TestWordCounting.md @@ -37,7 +37,7 @@ summary: template: 'Total number of characters: {{sum()}}' ``` -## Word counts of any notes +## Word counts of all notes Use file creation dates as x values then sum the counts up ``` tracker searchType: fileMeta diff --git a/examples/WikiTracker.md b/examples/WikiTracker.md index ba551e5..dc92a6c 100644 --- a/examples/WikiTracker.md +++ b/examples/WikiTracker.md @@ -1,15 +1,34 @@ # Wiki Tracker +wiki --> Try parse the display text first, if it does not exist, parse the link text +wiki.link --> Parse the link text +wiki.display --> Parse the display text + +In the exaample notes, we have +[[todo_family|To-Do @Family]] +[[todo_work|To-Do @Work]] + +## wiki.link ``` tracker -searchType: wiki +searchType: wiki.link searchTarget: todo_work folder: diary startDate: 2021-01-01 endDate: 2021-01-31 -line: - title: Wiki Links - yAxisLabel: Count - lineColor: yellow +summary: + template: '{{sum()::i}}' ``` +## wiki.display +``` tracker +searchType: wiki.display +searchTarget: To +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-31 +summary: + template: '{{sum()::i}}' +``` + + Please also check those search targets in markdown files under folder 'diary'. \ No newline at end of file diff --git a/examples/diary/2021-01-04.md b/examples/diary/2021-01-04.md index 307cc70..dd68aa2 100644 --- a/examples/diary/2021-01-04.md +++ b/examples/diary/2021-01-04.md @@ -29,6 +29,7 @@ randchar: B ⭐ +#clean-up #finance/bank1:-3.8USD diff --git a/examples/diary/2021-01-06.md b/examples/diary/2021-01-06.md index cc68d46..b63f5b6 100644 --- a/examples/diary/2021-01-06.md +++ b/examples/diary/2021-01-06.md @@ -29,6 +29,7 @@ randchar: D ⭐⭐⭐ +#clean-up #finance/bank1:-2.4USD diff --git a/examples/diary/2021-01-14.md b/examples/diary/2021-01-14.md index 8ef4cbc..ef3a44a 100644 --- a/examples/diary/2021-01-14.md +++ b/examples/diary/2021-01-14.md @@ -29,6 +29,7 @@ randchar: C ⭐ +#clean-up #finance/bank1:-2.5USD diff --git a/examples/diary/2021-01-16.md b/examples/diary/2021-01-16.md index f84dfa1..866fb52 100644 --- a/examples/diary/2021-01-16.md +++ b/examples/diary/2021-01-16.md @@ -28,6 +28,7 @@ randchar: E ⭐⭐ +#clean-up #finance/bank1:-2.6USD diff --git a/examples/example_generator.ts b/examples/example_generator.ts index 805fd11..3362727 100644 --- a/examples/example_generator.ts +++ b/examples/example_generator.ts @@ -165,7 +165,7 @@ for ( // clean up let tagCleanUp = "#clean-up"; - let doCleanUp = randomIntFromInterval(0, 30); + let doCleanUp = randomIntFromInterval(0, 5); if (doCleanUp === 1) { content += tagCleanUp + "\n"; } From 76daeff870d22119ec84789d35996395afb31c5f Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 16 Aug 2021 18:05:03 +0800 Subject: [PATCH 075/277] Fix the returning of error message in function collectDataFromTable --- src/main.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main.ts b/src/main.ts index cee0e3b..74d5106 100644 --- a/src/main.ts +++ b/src/main.ts @@ -655,8 +655,8 @@ export default class Tracker extends Plugin { // console.log(tables); if (tableFileNotFound) { - let errorMessage = "File containing tables not found"; - return errorMessage; + processInfo.errorMessage = "File containing tables not found"; + return; } for (let tableData of tables) { @@ -780,8 +780,8 @@ export default class Tracker extends Plugin { return v === null; }) ) { - let errorMessage = "No valid X value found in table"; - return errorMessage; + processInfo.errorMessage = "No valid X value found in table"; + return; } else { processInfo.gotAnyValidXValue ||= true; } From 7aba0240bc7c63bec2aea13f41c055a3152f9e0f Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 16 Aug 2021 18:33:08 +0800 Subject: [PATCH 076/277] Use named group 'value' instead of 'values' in regex --- src/collecting.ts | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/src/collecting.ts b/src/collecting.ts index 2937287..6f54884 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -175,7 +175,7 @@ export function getDateFromDvField( // Test this in Regex101 // remember '\s' includes new line - // (^| |\t)\*{0,2}dvTarget\*{0,2}(::[ |\t]*(?[\d\.\/\-\w,@; \t:]*))(\r?\n|\r|$) + // (^| |\t)\*{0,2}dvTarget\*{0,2}(::[ |\t]*(?[\d\.\/\-\w,@; \t:]*))(\r?\n|\r|$) let strRegex = "(^| |\\t)\\*{0,2}" + dvTarget + @@ -324,6 +324,8 @@ function extractDataUsingRegexWithMultipleValues( xValueMap: XValueMap, renderInfo: RenderInfo ): boolean { + // console.log("extractDataUsingRegexWithMultipleValues"); + let regex = new RegExp(strRegex, "gm"); let match; let measure = 0.0; @@ -333,9 +335,9 @@ function extractDataUsingRegexWithMultipleValues( if (!renderInfo.ignoreAttachedValue[query.getId()]) { if ( typeof match.groups !== "undefined" && - typeof match.groups.values !== "undefined" + typeof match.groups.value !== "undefined" ) { - let values = match.groups.values.trim(); + let values = match.groups.value.trim(); // console.log(values); // console.log(query.getSeparator()); let splitted = values.split(query.getSeparator()); @@ -370,7 +372,6 @@ function extractDataUsingRegexWithMultipleValues( splitted.length > query.getAccessor() && query.getAccessor() >= 0 ) { - // TODO: it's not efficent to retrieve one value at a time, enhance this // console.log("multiple-values"); let toParse = splitted[query.getAccessor()].trim(); let retParse = helper.parseFloatFromAny( @@ -390,12 +391,6 @@ function extractDataUsingRegexWithMultipleValues( query.addNumTargets(); } } - } else { - // no named groups, count occurrencies - // console.log("count occurrencies"); - measure += renderInfo.constValue[query.getId()]; - extracted = true; - query.addNumTargets(); } } else { // no named groups, count occurrencies @@ -406,7 +401,7 @@ function extractDataUsingRegexWithMultipleValues( } } else { // force to count occurrencies - // console.log("count occurrencies"); + // console.log("forced count occurrencies"); measure += renderInfo.constValue[query.getId()]; extracted = true; query.addNumTargets(); @@ -624,7 +619,7 @@ export function collectDataFromInlineTag( ): boolean { // console.log(content); // Test this in Regex101 - // (^|\s)#tagName(\/[\w-]+)*(:(?[\d\.\/-]*)[a-zA-Z]*)?([\\.!,\\?;~-]*)?(\s|$) + // (^|\s)#tagName(\/[\w-]+)*(:(?[\d\.\/-]*)[a-zA-Z]*)?([\\.!,\\?;~-]*)?(\s|$) let tagName = query.getTarget(); if (query.getParentTarget()) { tagName = query.getParentTarget(); // use parent tag name for multiple values @@ -635,7 +630,7 @@ export function collectDataFromInlineTag( let strRegex = "(^|\\s)#" + tagName + - "(\\/[\\w-]+)*(:(?[\\d\\.\\/-]*)[a-zA-Z]*)?([\\.!,\\?;~-]*)?(\\s|$)"; + "(\\/[\\w-]+)*(:(?[\\d\\.\\/-]*)[a-zA-Z]*)?([\\.!,\\?;~-]*)?(\\s|$)"; // console.log(strRegex); return extractDataUsingRegexWithMultipleValues( @@ -656,8 +651,10 @@ export function collectDataFromText( dataMap: DataMap, xValueMap: XValueMap ): boolean { + // console.log("collectDataFromText"); + let strRegex = query.getTarget(); - // console.log(strTextRegex); + // console.log(strRegex); return extractDataUsingRegexWithMultipleValues( content, @@ -773,11 +770,11 @@ export function collectDataFromDvField( // Test this in Regex101 // remember '\s' includes new line - // (^| |\t)\*{0,2}dvTarget\*{0,2}(::[ |\t]*(?[\d\.\/\-\w,@; \t:]*))(\r?\n|\r|$) + // (^| |\t)\*{0,2}dvTarget\*{0,2}(::[ |\t]*(?[\d\.\/\-\w,@; \t:]*))(\r?\n|\r|$) let strRegex = "(^| |\\t)\\*{0,2}" + dvTarget + - "\\*{0,2}(::[ |\\t]*(?[\\d\\.\\/\\-\\w,@; \\t:]*))(\\r\\?\\n|\\r|$)"; + "\\*{0,2}(::[ |\\t]*(?[\\d\\.\\/\\-\\w,@; \\t:]*))(\\r\\?\\n|\\r|$)"; // console.log(strRegex); return extractDataUsingRegexWithMultipleValues( From 32953013c78832b680d3b63be193f20fb468f840 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 16 Aug 2021 18:55:25 +0800 Subject: [PATCH 077/277] Fix wiki counting --- src/collecting.ts | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/collecting.ts b/src/collecting.ts index 6f54884..20a172e 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -566,6 +566,10 @@ export function collectDataFromWiki( let searchTarget = query.getTarget(); let searchType = query.getType(); + let textToSearch = ""; + let strRegex = searchTarget; + + // Prepare textToSearch for (let link of links) { if (!link) continue; @@ -593,20 +597,17 @@ export function collectDataFromWiki( } wikiText = wikiText.trim(); - let strRegex = searchTarget; - - let extracted = extractDataUsingRegexWithMultipleValues( - wikiText, - strRegex, - query, - dataMap, - xValueMap, - renderInfo - ); - if (extracted) return true; + textToSearch += wikiText + "\n"; } - return false; + return extractDataUsingRegexWithMultipleValues( + textToSearch, + strRegex, + query, + dataMap, + xValueMap, + renderInfo + ); } // In form 'key: value', name group 'value' from plugin, not from users From df273c09bad744a230f4931570cd6327649a0850 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 16 Aug 2021 19:12:39 +0800 Subject: [PATCH 078/277] Update example TestFrontmatter --- examples/TestFrontmatter.md | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/examples/TestFrontmatter.md b/examples/TestFrontmatter.md index c8f547b..b54acdc 100644 --- a/examples/TestFrontmatter.md +++ b/examples/TestFrontmatter.md @@ -1,6 +1,13 @@ # Test Frontmatter - +## Deep Values +deepValue: + very: + very: + very: + very: + very: + deep: 27.4 ``` tracker searchType: frontmatter searchTarget: deepValue.very.very.very.very.very.deep @@ -10,4 +17,22 @@ line: title: Deep Values ``` +## Multiple Values +bloodpressure: 184.4/118.8 +``` tracker +searchType: frontmatter +searchTarget: bloodpressure[0], bloodpressure[1] +datasetName: systolic, diastolic +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-31 +line: + title: Blood Pressures + yAxisLabel: BP + yAxisUnit: mmHg + lineColor: yellow, red + showLegend: true + legendPosition: bottom +``` + Please also check those search targets in markdown files under folder 'diary'. \ No newline at end of file From 898cd8753baa3cd7c036105fa526bcfb27275b33 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 16 Aug 2021 20:12:25 +0800 Subject: [PATCH 079/277] Do refactoring on renderErrorMessage --- src/main.ts | 102 ++++++++++++++++++++++++++++------------------------ 1 file changed, 55 insertions(+), 47 deletions(-) diff --git a/src/main.ts b/src/main.ts index 74d5106..c01d31f 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,7 +1,7 @@ import { App, CachedMetadata, Plugin } from "obsidian"; import { MarkdownPostProcessorContext, MarkdownView, Editor } from "obsidian"; import { TFile, TFolder, normalizePath } from "obsidian"; -import { render, renderErrorMessage } from "./rendering"; +import * as rendering from "./rendering"; import { getRenderInfoFromYaml } from "./parsing"; import { Datasets, @@ -79,6 +79,12 @@ export default class Tracker extends Plugin { await this.saveData(this.settings); } + renderErrorMessage(message: string, canvas: HTMLElement, el: HTMLElement) { + rendering.renderErrorMessage(canvas, message); + el.appendChild(canvas); + return; + } + onunload() { console.log("unloading obsidian-tracker plugin"); } @@ -130,10 +136,7 @@ export default class Tracker extends Plugin { let yamlText = source.trim(); let retRenderInfo = getRenderInfoFromYaml(yamlText, this); if (typeof retRenderInfo === "string") { - let errorMessage = retRenderInfo; - renderErrorMessage(canvas, errorMessage); - el.appendChild(canvas); - return; + return this.renderErrorMessage(retRenderInfo, canvas, el); } let renderInfo = retRenderInfo as RenderInfo; // console.log(renderInfo); @@ -143,10 +146,14 @@ export default class Tracker extends Plugin { try { files = this.getFiles(renderInfo.folder); } catch (e) { - let errorMessage = e.message; - renderErrorMessage(canvas, errorMessage); - el.appendChild(canvas); - return; + return this.renderErrorMessage(e.message, canvas, el); + } + if (files.length === 0) { + return this.renderErrorMessage( + "No files found in folder", + canvas, + el + ); } // console.log(files); @@ -453,31 +460,35 @@ export default class Tracker extends Plugin { // Collect data from a file, one file contains full dataset await this.collectDataFromTable(dataMap, renderInfo, processInfo); if (processInfo.errorMessage) { - renderErrorMessage(canvas, processInfo.errorMessage); - el.appendChild(canvas); - return; + return this.renderErrorMessage( + processInfo.errorMessage, + canvas, + el + ); } if (!processInfo.gotAnyValidXValue) { - let errorMessage = "No valid X values found in notes"; - renderErrorMessage(canvas, errorMessage); - el.appendChild(canvas); - return; + return this.renderErrorMessage( + "No valid X values found in notes", + canvas, + el + ); } if (!processInfo.gotAnyValidYValue) { - let errorMessage = "No valid Y values found in notes"; - renderErrorMessage(canvas, errorMessage); - el.appendChild(canvas); - return; + return this.renderErrorMessage( + "No valid Y values found in notes", + canvas, + el + ); } if (processInfo.fileCounter === 0) { - let errorMessage = - "No notes found under the given search condition"; - renderErrorMessage(canvas, errorMessage); - el.appendChild(canvas); - return; + return this.renderErrorMessage( + "No notes found under the given search condition", + canvas, + el + ); } // console.log(minDate); // console.log(maxDate); @@ -485,10 +496,7 @@ export default class Tracker extends Plugin { // Check date range if (!processInfo.minDate.isValid() || !processInfo.maxDate.isValid()) { - let errorMessage = "Invalid date range"; - renderErrorMessage(canvas, errorMessage); - el.appendChild(canvas); - return; + return this.renderErrorMessage("Invalid date range", canvas, el); } if (renderInfo.startDate === null && renderInfo.endDate === null) { // No date arguments @@ -501,10 +509,11 @@ export default class Tracker extends Plugin { if (renderInfo.startDate < processInfo.maxDate) { renderInfo.endDate = processInfo.maxDate.clone(); } else { - let errorMessage = "Invalid date range"; - renderErrorMessage(canvas, errorMessage); - el.appendChild(canvas); - return; + return this.renderErrorMessage( + "Invalid date range", + canvas, + el + ); } } else if ( renderInfo.endDate !== null && @@ -513,10 +522,11 @@ export default class Tracker extends Plugin { if (renderInfo.endDate > processInfo.minDate) { renderInfo.startDate = processInfo.minDate.clone(); } else { - let errorMessage = "Invalid date range"; - renderErrorMessage(canvas, errorMessage); - el.appendChild(canvas); - return; + return this.renderErrorMessage( + "Invalid date range", + canvas, + el + ); } } else { // startDate and endDate are valid @@ -526,10 +536,11 @@ export default class Tracker extends Plugin { (renderInfo.startDate > processInfo.maxDate && renderInfo.endDate > processInfo.maxDate) ) { - let errorMessage = "Invalid date range"; - renderErrorMessage(canvas, errorMessage); - el.appendChild(canvas); - return; + return this.renderErrorMessage( + "Invalid date range", + canvas, + el + ); } } // console.log(renderInfo.startDate); @@ -594,12 +605,9 @@ export default class Tracker extends Plugin { renderInfo.datasets = datasets; // console.log(renderInfo.datasets); - let result = render(canvas, renderInfo); - if (typeof result === "string") { - let errorMessage = result; - renderErrorMessage(canvas, errorMessage); - el.appendChild(canvas); - return; + let retRender = rendering.render(canvas, renderInfo); + if (typeof retRender === "string") { + return this.renderErrorMessage(retRender, canvas, el); } el.appendChild(canvas); From 6b5b3d44c7c1de3667276117a6a962343202722d Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 16 Aug 2021 21:34:29 +0800 Subject: [PATCH 080/277] Modify error message "No markdown files found in folder' --- examples/ErrorMessages.md | 28 ++++++++++++++++++++-------- src/main.ts | 2 +- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/examples/ErrorMessages.md b/examples/ErrorMessages.md index bf2a519..41c5078 100644 --- a/examples/ErrorMessages.md +++ b/examples/ErrorMessages.md @@ -8,21 +8,24 @@ searchTarget: "\" line: ``` -'searchTypes' wrong, 'searchType' right +'searchTypes' --> typo +'searchType' --> correct ``` tracker searchTypes: tag searchTarget: weight line: ``` -'searchTargets' wrong, searchTarget right +'searchTargets' --> typo +'searchTarget' --> correct ``` tracker searchType: tag searchTargets: weight line: ``` -'lines' wrong, 'line' right +'lines' --> typo +'line' --> correct ``` tracker searchType: tag searchTarget: weight @@ -36,15 +39,15 @@ searchTarget: weight line: ``` -## Target -Missing search target +## searchTarget +Missing searchTarget ``` tracker searchType: tag searchTarget: line: ``` -Invalid search target, '#' is not allowed +Invalid searchTarget, '#' is a special character to YAML, use single quotes to wrap it ``` tracker searchType: tag searchTarget: #weight @@ -60,7 +63,16 @@ folder: abc line: ``` -## Date +## Files +No file in folder +``` tracker +searchType: tag +searchTarget: weight +folder: empty +line: +``` + +## X Values (Date) The format of startDate or endDate does not match dateFormat in the plugin settings. Change the settings or Add a dateFormat parameter into YAML. ``` tracker searchType: tag @@ -104,7 +116,7 @@ line: yAxisLabel: BP1, BP2, BP3 ``` -## Input +## Y Values No valid X values, add "xDataset: 0" to fix it ``` tracker searchType: fileMeta, dvField diff --git a/src/main.ts b/src/main.ts index c01d31f..6e99c7d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -150,7 +150,7 @@ export default class Tracker extends Plugin { } if (files.length === 0) { return this.renderErrorMessage( - "No files found in folder", + "No markdown files found in folder", canvas, el ); From 3954ea11ab279dbc4a7ea8bed9bebe0aec7c8699 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 17 Aug 2021 10:42:34 +0800 Subject: [PATCH 081/277] Record fileTotal, fileAvailable, fileNotInFormat, fileOutOfDateRange and use them for error messages --- examples/ErrorMessages.md | 45 +++++++++---------- examples/TestDateFormats.md | 4 ++ src/data.ts | 10 ++++- src/main.ts | 86 ++++++++++++++++++------------------- 4 files changed, 76 insertions(+), 69 deletions(-) diff --git a/examples/ErrorMessages.md b/examples/ErrorMessages.md index 41c5078..fdf61ba 100644 --- a/examples/ErrorMessages.md +++ b/examples/ErrorMessages.md @@ -72,22 +72,29 @@ folder: empty line: ``` -## X Values (Date) -The format of startDate or endDate does not match dateFormat in the plugin settings. Change the settings or Add a dateFormat parameter into YAML. +## Number of parameters +Two search targets provided, the number of search types shouldn't be more than two. ``` tracker -searchType: tag -searchTarget: weight -startDate: 2020-01-01_Fri -endDate: 2020-01-31_Mon +searchType: frontmatter, frontmatter, frontmatter +searchTarget: bloodpressure[0], bloodpressure[1] line: ``` -No note found in the given date range +yAxisLabel allows only two inputs +``` tracker +searchType: frontmatter, frontmatter +searchTarget: bloodpressure[0], bloodpressure[1] +line: + yAxisLabel: BP1, BP2, BP3 +``` + +## startDate & endDate +The format of startDate or endDate does not match dateFormat in the plugin settings. Change the settings or Add a dateFormat parameter into YAML. ``` tracker searchType: tag searchTarget: weight -startDate: 2020-01-01 -endDate: 2020-01-31 +startDate: 2020-01-01_Fri +endDate: 2020-01-31_Mon line: ``` @@ -100,23 +107,16 @@ endDate: 2021-02-30 line: ``` -## Number of parameters -Two search targets provided, the number of search types shouldn't be more than two. -``` tracker -searchType: frontmatter, frontmatter, frontmatter -searchTarget: bloodpressure[0], bloodpressure[1] -line: -``` - -yAxisLabel allows only two inputs +## X Values (Dates) +No note found in the given date range ``` tracker -searchType: frontmatter, frontmatter -searchTarget: bloodpressure[0], bloodpressure[1] +searchType: tag +searchTarget: weight +startDate: 2020-01-01 +endDate: 2020-01-31 line: - yAxisLabel: BP1, BP2, BP3 ``` -## Y Values No valid X values, add "xDataset: 0" to fix it ``` tracker searchType: fileMeta, dvField @@ -126,6 +126,7 @@ line: fillGap: true ``` +## Y Values No valid Y values!!!!! Use parameter `textValueMap` to map a text to a value. ``` tracker diff --git a/examples/TestDateFormats.md b/examples/TestDateFormats.md index d332f08..ff6fc79 100644 --- a/examples/TestDateFormats.md +++ b/examples/TestDateFormats.md @@ -181,6 +181,10 @@ The reference date of the relative date input is 'today' (The current date of yo - -1M ==> last month - -1y ==> last year +Notice!! +- small 'm' represent 'minute' +- If the date range is less than 1 day, you will get the error message 'No valid date as X value found in notes'. + ``` tracker searchType: tag searchTarget: weight diff --git a/src/data.ts b/src/data.ts index 596ac19..cae3b88 100644 --- a/src/data.ts +++ b/src/data.ts @@ -1002,7 +1002,10 @@ export class TableData { } export class CollectingProcessInfo { - fileCounter: number; + fileTotal: number; // total number of files + fileAvailable: number; // total available count + fileOutOfDateRange: number; + fileNotInFormat: number; errorMessage: string; minDate: Moment; maxDate: Moment; @@ -1010,7 +1013,10 @@ export class CollectingProcessInfo { gotAnyValidYValue: boolean; constructor() { - this.fileCounter = 0; + this.fileTotal = 0; + this.fileAvailable = 0; + this.fileOutOfDateRange = 0; + this.fileNotInFormat = 0; this.errorMessage = ""; this.minDate = window.moment(""); // invalid date this.maxDate = window.moment(""); // invalid date diff --git a/src/main.ts b/src/main.ts index 6e99c7d..f6af687 100644 --- a/src/main.ts +++ b/src/main.ts @@ -165,6 +165,7 @@ export default class Tracker extends Plugin { // Collecting data to dataMap first let dataMap: DataMap = new Map(); // {strDate: [query: value, ...]} let processInfo = new CollectingProcessInfo(); + processInfo.fileTotal = files.length; // Collect data from files, each file has one data point for each query const loopFilePromises = files.map(async (file) => { @@ -286,16 +287,19 @@ export default class Tracker extends Plugin { if (!xDate.isValid()) { // console.log("Invalid xDate"); skipThisFile = true; + processInfo.fileNotInFormat++; } else { // console.log("file " + file.basename + " accepted"); if (renderInfo.startDate !== null) { if (xDate < renderInfo.startDate) { skipThisFile = true; + processInfo.fileOutOfDateRange++; } } if (renderInfo.endDate !== null) { if (xDate > renderInfo.endDate) { skipThisFile = true; + processInfo.fileOutOfDateRange++; } } } @@ -306,10 +310,10 @@ export default class Tracker extends Plugin { xDatasetId, helper.dateToStr(xDate, renderInfo.dateFormat) ); - processInfo.fileCounter++; + processInfo.fileAvailable++; // Get min/max date - if (processInfo.fileCounter == 1) { + if (processInfo.fileAvailable == 1) { processInfo.minDate = xDate.clone(); processInfo.maxDate = xDate.clone(); } else { @@ -466,37 +470,30 @@ export default class Tracker extends Plugin { el ); } - - if (!processInfo.gotAnyValidXValue) { - return this.renderErrorMessage( - "No valid X values found in notes", - canvas, - el - ); - } - - if (!processInfo.gotAnyValidYValue) { - return this.renderErrorMessage( - "No valid Y values found in notes", - canvas, - el - ); - } - - if (processInfo.fileCounter === 0) { - return this.renderErrorMessage( - "No notes found under the given search condition", - canvas, - el - ); - } // console.log(minDate); // console.log(maxDate); // console.log(dataMap); // Check date range - if (!processInfo.minDate.isValid() || !processInfo.maxDate.isValid()) { - return this.renderErrorMessage("Invalid date range", canvas, el); + // minDate and maxDate are collected without knowing startDate and endDate + // console.log(`fileTotal: ${processInfo.fileTotal}`); + // console.log(`fileAvailable: ${processInfo.fileAvailable}`); + // console.log(`fileNotInFormat: ${processInfo.fileNotInFormat}`); + // console.log(`fileOutOfDateRange: ${processInfo.fileOutOfDateRange}`); + let dateErrorMessage = ""; + if ( + !processInfo.minDate.isValid() || + !processInfo.maxDate.isValid() || + processInfo.fileAvailable === 0 || + !processInfo.gotAnyValidXValue + ) { + dateErrorMessage = `No valid date as X value found in notes.`; + if (processInfo.fileOutOfDateRange > 0) { + dateErrorMessage += `\n${processInfo.fileOutOfDateRange} files are out of the date range.`; + } + if (processInfo.fileNotInFormat) { + dateErrorMessage += `\n${processInfo.fileNotInFormat} files are not in the right format.`; + } } if (renderInfo.startDate === null && renderInfo.endDate === null) { // No date arguments @@ -509,11 +506,7 @@ export default class Tracker extends Plugin { if (renderInfo.startDate < processInfo.maxDate) { renderInfo.endDate = processInfo.maxDate.clone(); } else { - return this.renderErrorMessage( - "Invalid date range", - canvas, - el - ); + dateErrorMessage = "Invalid date range"; } } else if ( renderInfo.endDate !== null && @@ -522,11 +515,7 @@ export default class Tracker extends Plugin { if (renderInfo.endDate > processInfo.minDate) { renderInfo.startDate = processInfo.minDate.clone(); } else { - return this.renderErrorMessage( - "Invalid date range", - canvas, - el - ); + dateErrorMessage = "Invalid date range"; } } else { // startDate and endDate are valid @@ -536,16 +525,23 @@ export default class Tracker extends Plugin { (renderInfo.startDate > processInfo.maxDate && renderInfo.endDate > processInfo.maxDate) ) { - return this.renderErrorMessage( - "Invalid date range", - canvas, - el - ); + dateErrorMessage = "Invalid date range"; } } + if (dateErrorMessage) { + return this.renderErrorMessage(dateErrorMessage, canvas, el); + } // console.log(renderInfo.startDate); // console.log(renderInfo.endDate); + if (!processInfo.gotAnyValidYValue) { + return this.renderErrorMessage( + "No valid Y value found in notes", + canvas, + el + ); + } + // Reshape data for rendering let datasets = new Datasets(renderInfo.startDate, renderInfo.endDate); for (let query of renderInfo.queries) { @@ -685,7 +681,7 @@ export default class Tracker extends Plugin { normalizePath(filePath) ); if (file && file instanceof TFile) { - processInfo.fileCounter++; + processInfo.fileAvailable++; let content = await this.app.vault.adapter.read(file.path); // console.log(content); @@ -788,7 +784,7 @@ export default class Tracker extends Plugin { return v === null; }) ) { - processInfo.errorMessage = "No valid X value found in table"; + processInfo.errorMessage = "No valid date as X value found in table"; return; } else { processInfo.gotAnyValidXValue ||= true; From 92f3355925dfc967d5e67b97eb1dc56bee6c554b Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 17 Aug 2021 13:58:03 +0800 Subject: [PATCH 082/277] Support specifying files and files from links --- README.md | 20 ++++------ docs/Examples.md | 2 +- docs/Expressions.md | 4 ++ docs/InputParameters.md | 8 ++++ docs/Questions.md | 15 +++++-- docs/ReleaseNotes.md | 3 ++ examples/TestSpecifiedFiles.md | 25 ++++++++++++ examples/data/MTG-Card-1.md | 3 ++ examples/data/MTG-Card-2.md | 3 ++ examples/data/MTG-Card-3.md | 3 ++ examples/data/MTG-Deck-1.md | 5 +++ src/data.ts | 6 +++ src/main.ts | 71 ++++++++++++++++++++++++++++------ src/parsing.ts | 29 ++++++++++++++ 14 files changed, 168 insertions(+), 29 deletions(-) create mode 100644 examples/TestSpecifiedFiles.md create mode 100644 examples/data/MTG-Card-1.md create mode 100644 examples/data/MTG-Card-2.md create mode 100644 examples/data/MTG-Card-3.md create mode 100644 examples/data/MTG-Deck-1.md diff --git a/README.md b/README.md index c07cda0..f04d9b4 100644 --- a/README.md +++ b/README.md @@ -13,19 +13,13 @@ This is an [Obsidian](https://obsidian.md/) plugin that helps you collect data f From version 1.9.0, template variables, e.g. '{{sum}}', are deprecated. Instead, Tracker provide operators (+, -, *, /, %) and functions (dataset(), sum(), maxStreak(), ......etc) to help us do data processing. For users having code blocks from previous version, please replace '{{sum}}' by '{{sum()}}' or '{{sum(1)}}' by '{{sum(dataset(1))}}'. More information about the new expressions could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md). ## What's New - -Version 1.9.0 -- Add a new output type `pie`, rendering a pie chart ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md)) -- Allow expressions (operators and functions) as data inputs for output type `summary`, `bullet`, and `pie` (examples: [expression](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md), [summary](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestSummary.md), [bullet](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestBullet.md), [pie](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md)) -- Allow formatting evaluated expressions by a follwing format string ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md)) - -Version 1.9.1 -- Fixed errors on collecting time values from `dvField` -- Fixed errors on collecting wiki while fileCache.links is undefined - -Version 1.9.2 -- Allow using seconds in time values -- Fixed error parsing `dvField` +Version 1.10.0 +- Add annotation mode to month view ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md)) +- Add parameter `yAxisTickInterval` and `yAxisTickFormat` for the line and bar chart ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md)) +- Allow using regular expression in parameter `dateFormatPrefix` and `dateFormatSuffix` ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md)) +- Fixed external label positioning in the pie chart +- Enhanced error messages for 'no values found' +- Fixed using double quotes for multiple lines in summary template ## Usage diff --git a/docs/Examples.md b/docs/Examples.md index ee15fe7..38a2fa0 100644 --- a/docs/Examples.md +++ b/docs/Examples.md @@ -28,7 +28,7 @@ The following table lists use cases with information of target location (Locatio | content | I walked 10000 steps today. | searchType: text
searchTarget: 'walked\\s+(?\[0-9]+)\\s+steps' | V | | content | myvalues 1/2/3 | searchType: text
searchTarget: 'myvalues\\s+(?\[0-9]+)/([0-9]+)/([0-9]+), myvalues\\s+([0-9]+)/(?\[0-9]+)/([0-9]+), myvalues\\s+([0-9]+)/([0-9]+)/(?\[0-9]+)' | V | | table content | { a table filled with dates and values }
[example table](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/data/Tables.md) | searchType: table
searchTarget: filePath[0][0], filePath[0][1] | V | -| talbe content | { a table filled with dates and values }
[example table](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/data/Tables.md) | searchType: table
searchTarget: filePath[1][0], filePath[1][1][0], filePath[1][1][1] | V | +| table content | { a table filled with dates and values }
[example table](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/data/Tables.md) | searchType: table
searchTarget: filePath[1][0], filePath[1][1][0], filePath[1][1][1] | V | | file meta | meta data from files
(size, cDate, mDate, numWords, numChars, numSentences) | searchType: fileMeta
searchTarget: size | V | | content | - [x] Say love
- [ ] Say love | searchType:task
searchTarget: Say love | O | | content | - [x] Say love | searchType:task.done
searchTarget: Say love | O | diff --git a/docs/Expressions.md b/docs/Expressions.md index 4855eeb..a26ebe5 100644 --- a/docs/Expressions.md +++ b/docs/Expressions.md @@ -93,3 +93,7 @@ e.g. ## Missing Values Notice that the missing values (null values) are ignored in function like sum or average. Moreover, a value plus a missing value will leads to null value (missing value). To avoid these, you can set those missing values to a value by using parameter `penalty` or use expression function `setMissingValues`. + +## String Output Format + +If the output of an expression is string, you can assign the format by using \ No newline at end of file diff --git a/docs/InputParameters.md b/docs/InputParameters.md index f2a8944..7a916cd 100644 --- a/docs/InputParameters.md +++ b/docs/InputParameters.md @@ -59,6 +59,9 @@ These key-value pairs should be placed under the key `line` or `bar`. | `yAxisColor` | Color of Y axis | 1~2 | 'white'('black'*) | | `yAxisLabelColor` | Color of Y axis label | 1~2 | 'white'('black'*) | | `yAxisUnit` | Unit displayed aside Y axis label | 1~2 | '' | +yAxisTickInterval +yAxisTickFormat + | `yMin` | Minimum value on Y axis | 1~2 |Minimum Y value found | | `yMax` | Maximum value on Y axis | 1~2 | Maximum Y value found | | `reverseYAxis` | Flip (upside down) the Y Axis or not (true\|false) | 1~2 | false | @@ -123,6 +126,7 @@ These key-value pairs should be placed under the key `month`. | Key | Description | Number of Values | Default | |:--------|:-------|:-----------:|:------| +| `mode` | () | 1 | | `dataset` | Index of the dataset of your interest | 1~NT | all indices of non-x searchTarget | | `startWeekOn` | First day of a week ('Sun'\|'Mon') | 1 | 'Sun' | | `threshold` | Threshold to determine showing a circle on a day or not | 1~NT | 0 | @@ -143,6 +147,10 @@ These key-value pairs should be placed under the key `month`. | `todayRingColor` | Color of the ring on today | 1 | 'white' | | `selectedRingColor` | Color of the ring on the selected day | 1 | 'firebrick' | | `initMonth` | Initial month to show (YYYY-MM) | 1 | last month found | +showAnnotation +annotation +showAnnotationOfAllTargets + ### Parameters for Pie Chart These key-value pairs should be placed under the key `pie`. diff --git a/docs/Questions.md b/docs/Questions.md index 90852c9..b14daff 100644 --- a/docs/Questions.md +++ b/docs/Questions.md @@ -1,22 +1,29 @@ # Frequently Asked Questions -- Does Tracker only track data in daily notes (notes named by dates)? +- Does Tracker only track data in daily notes (file names contain dates)? - No. From version 1.6.0, you can use collect date data from file meta data with search type `fileMeta` and use that dataset as `xDataset`. So any notes can be included. + No. You can get date from any `searchType` including `fileMeta`. The collected dates use that dataset as `xDataset`. So any notes can be included. - Does Tracker only track data over dates? Yes. The data type of x values should be in the form of date for now. This constrain might be relaxed in future. -- Why my line chart looks broken at some points? +- Why my line chart looks broken (not connected) at some points? The plugin only connects adjacent points (by date) by default. To force it connecting points over missing data, set the parameter `fillGap` under `line` to true. +- Why the plugin shows error 'No valid X values found in notes'? + + The default X values were extracted from the title of your notes. By assigning proper `dateFormat`, and combine with `dateFormatPrefix` and `dateFormatSuffix`. The date could be extracted from your title successfully. + The X values in Tracker should be of Date type. No files or x data values matched the dateFormat you gave in the given folder + +- Wny the plugin shows error 'No valid Y values found in notes'? + No y data values found + - Why the plugin shows 'No notes found under the given search condition'? There are few possibilities for this error messages. 1. No files in the given folder - 2. No files or x data values matched the dateFormat you gave in the given folder 3. No files in the date range you gave (from startDate to endDate) - Why the plugin shows 'Error parsing YAML'? diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index 2a5f8d4..0bd5de2 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,8 @@ # Release Notes +## v1.10.0 +- + ## v1.9.2 - Allow using seconds in time values - Fixed error parsing `dvField` diff --git a/examples/TestSpecifiedFiles.md b/examples/TestSpecifiedFiles.md new file mode 100644 index 0000000..17e82dc --- /dev/null +++ b/examples/TestSpecifiedFiles.md @@ -0,0 +1,25 @@ +# Test Specified Files + +## Collect Data from the Specified Files Only +``` tracker +searchType: frontmatter, dvField +searchTarget: date, dataviewTarget +xDataset: 0 +file: data/data1, data/data2, data/data3 +specifiedFilesOnly: true +line: +``` + +## Collect Data from the Linked Files Only +Count the MTG mana cost in linked files +``` tracker +searchType: fileMeta, text +searchTarget: 'cDate, {R}, {G}, {B}' +fileContainsLinkedFiles: data/MTG-Deck-1 +specifiedFilesOnly: true +xDataset: 0 +pie: + label: '{{sum(dataset(1))::i}},{{sum(dataset(2))::i}}, {{sum(dataset(3))::i}}' + data: '{{sum(dataset(1))}},{{sum(dataset(2))}}, {{sum(dataset(3))}}' + dataColor: red, green, blue +``` \ No newline at end of file diff --git a/examples/data/MTG-Card-1.md b/examples/data/MTG-Card-1.md new file mode 100644 index 0000000..fdeb29c --- /dev/null +++ b/examples/data/MTG-Card-1.md @@ -0,0 +1,3 @@ + + +{R}{R} \ No newline at end of file diff --git a/examples/data/MTG-Card-2.md b/examples/data/MTG-Card-2.md new file mode 100644 index 0000000..916a10c --- /dev/null +++ b/examples/data/MTG-Card-2.md @@ -0,0 +1,3 @@ + + +{B}{R} \ No newline at end of file diff --git a/examples/data/MTG-Card-3.md b/examples/data/MTG-Card-3.md new file mode 100644 index 0000000..1d95e77 --- /dev/null +++ b/examples/data/MTG-Card-3.md @@ -0,0 +1,3 @@ + + +{G}{G}{G}{G}{G} \ No newline at end of file diff --git a/examples/data/MTG-Deck-1.md b/examples/data/MTG-Deck-1.md new file mode 100644 index 0000000..ca577d3 --- /dev/null +++ b/examples/data/MTG-Deck-1.md @@ -0,0 +1,5 @@ + + +[[MTG-Card-1]] +[[MTG-Card-2]] +[[MTG-Card-3]] \ No newline at end of file diff --git a/src/data.ts b/src/data.ts index cae3b88..2cdfb11 100644 --- a/src/data.ts +++ b/src/data.ts @@ -540,6 +540,9 @@ export class RenderInfo { queries: Query[]; xDataset: number[]; folder: string; + file: string[]; + specifiedFilesOnly: boolean; + fileContainsLinkedFiles: string[]; dateFormat: string; dateFormatPrefix: string; dateFormatSuffix: string; @@ -578,6 +581,9 @@ export class RenderInfo { this.queries = queries; this.xDataset = []; // use file name this.folder = "/"; + this.file = []; // extra files to use + this.specifiedFilesOnly = false; // if true, use files specified only + this.fileContainsLinkedFiles = []; this.dateFormat = "YYYY-MM-DD"; this.dateFormatPrefix = ""; this.dateFormatSuffix = ""; diff --git a/src/main.ts b/src/main.ts index f6af687..e4bcb3b 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,4 +1,4 @@ -import { App, CachedMetadata, Plugin } from "obsidian"; +import { App, CachedMetadata, getLinkpath, Plugin } from "obsidian"; import { MarkdownPostProcessorContext, MarkdownView, Editor } from "obsidian"; import { TFile, TFolder, normalizePath } from "obsidian"; import * as rendering from "./rendering"; @@ -110,18 +110,66 @@ export default class Tracker extends Plugin { return files; } - getFiles(folderToSearch: string, includeSubFolders: boolean = true) { + getFiles(renderInfo: RenderInfo, includeSubFolders: boolean = true) { let files: TFile[] = []; - let folder = this.app.vault.getAbstractFileByPath( - normalizePath(folderToSearch) - ); - if (!folder || !(folder instanceof TFolder)) { - // Folder not exists - } else { - files = files.concat(this.getFilesInFolder(folder)); + let folderToSearch = renderInfo.folder; + let useSpecifiedFilesOnly = renderInfo.specifiedFilesOnly; + let specifiedFiles = renderInfo.file; + let filesContainsLinkedFiles = renderInfo.fileContainsLinkedFiles; + + // Include files in folder + if (!useSpecifiedFilesOnly) { + let folder = this.app.vault.getAbstractFileByPath( + normalizePath(folderToSearch) + ); + if (folder && folder instanceof TFolder) { + files = files.concat(this.getFilesInFolder(folder)); + } + } + + // Include specified file + for (let filePath of specifiedFiles) { + if (!filePath.endsWith(".md")) { + filePath += ".md"; + } + let file = this.app.vault.getAbstractFileByPath( + normalizePath(filePath) + ); + if (file && file instanceof TFile) { + files.push(file); + } } + // Include files in pointed by links in file + for (let filePath of filesContainsLinkedFiles) { + if (!filePath.endsWith(".md")) { + filePath += ".md"; + } + let file = this.app.vault.getAbstractFileByPath( + normalizePath(filePath) + ); + if (file && file instanceof TFile) { + // Get linked files + let fileCache = this.app.metadataCache.getFileCache(file); + // this.app.metadataCache. + if (fileCache?.links) { + for (let link of fileCache.links) { + if (!link) continue; + let linkedFile = + this.app.metadataCache.getFirstLinkpathDest( + link.link, + filePath + ); + if (linkedFile && linkedFile instanceof TFile) { + files.push(linkedFile); + } + } + } + } + } + + // console.log(files); return files; } @@ -144,7 +192,7 @@ export default class Tracker extends Plugin { // Get files let files: TFile[]; try { - files = this.getFiles(renderInfo.folder); + files = this.getFiles(renderInfo); } catch (e) { return this.renderErrorMessage(e.message, canvas, el); } @@ -784,7 +832,8 @@ export default class Tracker extends Plugin { return v === null; }) ) { - processInfo.errorMessage = "No valid date as X value found in table"; + processInfo.errorMessage = + "No valid date as X value found in table"; return; } else { processInfo.gotAnyValidXValue ||= true; diff --git a/src/parsing.ts b/src/parsing.ts index a38b163..345652b 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -1172,6 +1172,35 @@ export function getRenderInfoFromYaml( return errorMessage; } + // file + if (typeof yaml.file === "string") { + let retFiles = getStringArray("file", yaml.file); + if (typeof retFiles === "string") { + return retFiles; // error message + } + renderInfo.file = retFiles; + } + // console.log(renderInfo.file); + + // specifiedFilesOnly + if (typeof yaml.specifiedFilesOnly === "boolean") { + renderInfo.specifiedFilesOnly = yaml.specifiedFilesOnly; + } + // console.log(renderInfo.specifiedFilesOnly); + + // fileContainsLinkedFiles + if (typeof yaml.fileContainsLinkedFiles === "string") { + let retFiles = getStringArray( + "fileContainsLinkedFiles", + yaml.fileContainsLinkedFiles + ); + if (typeof retFiles === "string") { + return retFiles; + } + renderInfo.fileContainsLinkedFiles = retFiles; + } + // console.log(renderInfo.fileContainsLinkedFiles); + // Date format const dateFormat = yaml.dateFormat; //?? not sure why I need this to make it works, From 58cc8b14e2641d920aa13934e4c2ce7bec707bed Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 17 Aug 2021 15:05:05 +0800 Subject: [PATCH 083/277] Fix spaces in file names --- src/main.ts | 57 +++++++++++++++++++++++++++++++------------------- src/parsing.ts | 4 ++-- 2 files changed, 37 insertions(+), 24 deletions(-) diff --git a/src/main.ts b/src/main.ts index e4bcb3b..7f574e6 100644 --- a/src/main.ts +++ b/src/main.ts @@ -110,8 +110,12 @@ export default class Tracker extends Plugin { return files; } - getFiles(renderInfo: RenderInfo, includeSubFolders: boolean = true) { - let files: TFile[] = []; + getFiles( + files: TFile[], + renderInfo: RenderInfo, + includeSubFolders: boolean = true + ) { + if (!files) return; let folderToSearch = renderInfo.folder; let useSpecifiedFilesOnly = renderInfo.specifiedFilesOnly; @@ -119,29 +123,39 @@ export default class Tracker extends Plugin { let filesContainsLinkedFiles = renderInfo.fileContainsLinkedFiles; // Include files in folder + // console.log(useSpecifiedFilesOnly); if (!useSpecifiedFilesOnly) { let folder = this.app.vault.getAbstractFileByPath( normalizePath(folderToSearch) ); if (folder && folder instanceof TFolder) { - files = files.concat(this.getFilesInFolder(folder)); + let folderFiles = this.getFilesInFolder(folder); + for (let file of folderFiles) { + files.push(file); + } } } // Include specified file + // console.log(specifiedFiles); for (let filePath of specifiedFiles) { - if (!filePath.endsWith(".md")) { - filePath += ".md"; + let path = filePath; + if (!path.endsWith(".md")) { + path += ".md"; } - let file = this.app.vault.getAbstractFileByPath( - normalizePath(filePath) - ); + path = normalizePath(path); + // console.log(path); + + let file = this.app.vault.getAbstractFileByPath(path); + // console.log(file); if (file && file instanceof TFile) { files.push(file); } } + // console.log(files); // Include files in pointed by links in file + // console.log(filesContainsLinkedFiles); for (let filePath of filesContainsLinkedFiles) { if (!filePath.endsWith(".md")) { filePath += ".md"; @@ -153,24 +167,23 @@ export default class Tracker extends Plugin { // Get linked files let fileCache = this.app.metadataCache.getFileCache(file); // this.app.metadataCache. - if (fileCache?.links) { - for (let link of fileCache.links) { - if (!link) continue; - let linkedFile = - this.app.metadataCache.getFirstLinkpathDest( - link.link, - filePath - ); - if (linkedFile && linkedFile instanceof TFile) { - files.push(linkedFile); - } + if (!fileCache?.links) continue; + + for (let link of fileCache.links) { + if (!link) continue; + let linkedFile = + this.app.metadataCache.getFirstLinkpathDest( + link.link, + filePath + ); + if (linkedFile && linkedFile instanceof TFile) { + files.push(linkedFile); } } } } // console.log(files); - return files; } async postprocessor( @@ -190,9 +203,9 @@ export default class Tracker extends Plugin { // console.log(renderInfo); // Get files - let files: TFile[]; + let files: TFile[] = []; try { - files = this.getFiles(renderInfo); + this.getFiles(files, renderInfo); } catch (e) { return this.renderErrorMessage(e.message, canvas, el); } diff --git a/src/parsing.ts b/src/parsing.ts index 345652b..9c5705e 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -595,7 +595,7 @@ function getStringArray(name: string, input: any): Array | string { if (Array.isArray(input)) { for (let elem of input) { if (typeof elem === "string") { - strArray.push(elem); + strArray.push(elem.trim()); } } } @@ -604,7 +604,7 @@ function getStringArray(name: string, input: any): Array | string { // console.log(splitted); if (splitted.length > 1) { for (let piece of splitted) { - strArray.push(piece); + strArray.push(piece.trim()); } } else if (input === "") { let errorMessage = `Empty ${name} is not allowed.`; From 56d3afc62eaa1c57b196eb4326d3049c838176ab Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Thu, 19 Aug 2021 01:28:03 +0800 Subject: [PATCH 084/277] Add parameter fileMultiplierAfterLink --- examples/TestSpecifiedFiles.md | 9 ++--- examples/data/MTG-Card-2.md | 2 +- examples/data/MTG-Card-3.md | 2 +- examples/data/MTG-Deck-1.md | 7 ++-- src/data.ts | 2 ++ src/main.ts | 64 +++++++++++++++++++++++++++++++--- src/parsing.ts | 10 ++++++ 7 files changed, 83 insertions(+), 13 deletions(-) diff --git a/examples/TestSpecifiedFiles.md b/examples/TestSpecifiedFiles.md index 17e82dc..92df344 100644 --- a/examples/TestSpecifiedFiles.md +++ b/examples/TestSpecifiedFiles.md @@ -14,12 +14,13 @@ line: Count the MTG mana cost in linked files ``` tracker searchType: fileMeta, text -searchTarget: 'cDate, {R}, {G}, {B}' +searchTarget: 'cDate, {W}, {R}, {G}, {B}, {(?[0-9]+)}' fileContainsLinkedFiles: data/MTG-Deck-1 specifiedFilesOnly: true +fileMultiplierAfterLink: 'x(?[0-9]+)' xDataset: 0 pie: - label: '{{sum(dataset(1))::i}},{{sum(dataset(2))::i}}, {{sum(dataset(3))::i}}' - data: '{{sum(dataset(1))}},{{sum(dataset(2))}}, {{sum(dataset(3))}}' - dataColor: red, green, blue + label: '{{sum(dataset(1))::i}},{{sum(dataset(2))::i}},{{sum(dataset(3))::i}},{{sum(dataset(4))::i}},{{sum(dataset(5))::i}}' + data: '{{sum(dataset(1))}},{{sum(dataset(2))}}, {{sum(dataset(3))}}, {{sum(dataset(4))}},{{sum(dataset(5))}}' + dataColor: lightgray, red, green, blue, gray ``` \ No newline at end of file diff --git a/examples/data/MTG-Card-2.md b/examples/data/MTG-Card-2.md index 916a10c..b2d5956 100644 --- a/examples/data/MTG-Card-2.md +++ b/examples/data/MTG-Card-2.md @@ -1,3 +1,3 @@ -{B}{R} \ No newline at end of file +{B}{B}{R}{2} \ No newline at end of file diff --git a/examples/data/MTG-Card-3.md b/examples/data/MTG-Card-3.md index 1d95e77..b591837 100644 --- a/examples/data/MTG-Card-3.md +++ b/examples/data/MTG-Card-3.md @@ -1,3 +1,3 @@ -{G}{G}{G}{G}{G} \ No newline at end of file +{G}{G}{G}{G}{G}{0} \ No newline at end of file diff --git a/examples/data/MTG-Deck-1.md b/examples/data/MTG-Deck-1.md index ca577d3..6194350 100644 --- a/examples/data/MTG-Deck-1.md +++ b/examples/data/MTG-Deck-1.md @@ -1,5 +1,6 @@ -[[MTG-Card-1]] -[[MTG-Card-2]] -[[MTG-Card-3]] \ No newline at end of file +[[MTG-Card-1]] x1 +[[MTG-Card-2]] x2 +[[MTG-Card-3]] x2 +[[MTG-Card-4]] x5 \ No newline at end of file diff --git a/src/data.ts b/src/data.ts index 2cdfb11..a3c99b9 100644 --- a/src/data.ts +++ b/src/data.ts @@ -543,6 +543,7 @@ export class RenderInfo { file: string[]; specifiedFilesOnly: boolean; fileContainsLinkedFiles: string[]; + fileMultiplierAfterLink: string; dateFormat: string; dateFormatPrefix: string; dateFormatSuffix: string; @@ -584,6 +585,7 @@ export class RenderInfo { this.file = []; // extra files to use this.specifiedFilesOnly = false; // if true, use files specified only this.fileContainsLinkedFiles = []; + this.fileMultiplierAfterLink = ""; // regex pattern to extract multiplier after link this.dateFormat = "YYYY-MM-DD"; this.dateFormatPrefix = ""; this.dateFormatSuffix = ""; diff --git a/src/main.ts b/src/main.ts index 7f574e6..5c46b4d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -110,7 +110,7 @@ export default class Tracker extends Plugin { return files; } - getFiles( + async getFiles( files: TFile[], renderInfo: RenderInfo, includeSubFolders: boolean = true @@ -121,6 +121,7 @@ export default class Tracker extends Plugin { let useSpecifiedFilesOnly = renderInfo.specifiedFilesOnly; let specifiedFiles = renderInfo.file; let filesContainsLinkedFiles = renderInfo.fileContainsLinkedFiles; + let fileMultiplierAfterLink = renderInfo.fileMultiplierAfterLink; // Include files in folder // console.log(useSpecifiedFilesOnly); @@ -156,6 +157,18 @@ export default class Tracker extends Plugin { // Include files in pointed by links in file // console.log(filesContainsLinkedFiles); + // console.log(fileMultiplierAfterLink); + let linkedFileMultiplier = 1; + let searchFileMultifpierAfterLink = true; + if (fileMultiplierAfterLink === "") { + searchFileMultifpierAfterLink = false; + } else if (/^[0-9]+$/.test(fileMultiplierAfterLink)) { + linkedFileMultiplier = parseFloat(fileMultiplierAfterLink); + searchFileMultifpierAfterLink = false; + } else if (!/\?/.test(fileMultiplierAfterLink)) { + // no 'value' named group + searchFileMultifpierAfterLink = false; + } for (let filePath of filesContainsLinkedFiles) { if (!filePath.endsWith(".md")) { filePath += ".md"; @@ -166,7 +179,12 @@ export default class Tracker extends Plugin { if (file && file instanceof TFile) { // Get linked files let fileCache = this.app.metadataCache.getFileCache(file); - // this.app.metadataCache. + let fileContent = await this.app.vault.adapter.read(file.path); + let lines = fileContent.split( + /\r\n|[\n\v\f\r\x85\u2028\u2029]/ + ); + // console.log(lines); + if (!fileCache?.links) continue; for (let link of fileCache.links) { @@ -177,7 +195,45 @@ export default class Tracker extends Plugin { filePath ); if (linkedFile && linkedFile instanceof TFile) { - files.push(linkedFile); + if (searchFileMultifpierAfterLink) { + // Get the line of link in file + let lineNumber = link.position.end.line; + // console.log(lineNumber); + if (lineNumber >= 0 && lineNumber < lines.length) { + let line = lines[lineNumber]; + // console.log(line); + + // Try extract multiplier + // if (link.position) + let splitted = line.split(link.original); + console.log(splitted); + if (splitted.length === 2) { + let toParse = splitted[1].trim(); + let strRegex = fileMultiplierAfterLink; + let regex = new RegExp(strRegex, "gm"); + let match; + while ((match = regex.exec(toParse))) { + // console.log(match); + if ( + typeof match.groups !== + "undefined" && + typeof match.groups.value !== + "undefined" + ) { + // must have group name 'value' + linkedFileMultiplier = parseFloat( + match.groups.value.trim() + ); + break; + } + } + } + } + } + + for (let i = 0; i < linkedFileMultiplier; i++) { + files.push(linkedFile); + } } } } @@ -205,7 +261,7 @@ export default class Tracker extends Plugin { // Get files let files: TFile[] = []; try { - this.getFiles(files, renderInfo); + await this.getFiles(files, renderInfo); } catch (e) { return this.renderErrorMessage(e.message, canvas, el); } diff --git a/src/parsing.ts b/src/parsing.ts index 9c5705e..9eb294a 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -1201,6 +1201,16 @@ export function getRenderInfoFromYaml( } // console.log(renderInfo.fileContainsLinkedFiles); + // fileMultiplierAfterLink + if (typeof yaml.fileMultiplierAfterLink === "string") { + renderInfo.fileMultiplierAfterLink = yaml.fileMultiplierAfterLink; + } + if (typeof yaml.fileMultiplierAfterLink === "number") { + renderInfo.fileMultiplierAfterLink = + yaml.fileMultiplierAfterLink.toString(); + } + // console.log(renderInfo.fileMultiplierAfterLink); + // Date format const dateFormat = yaml.dateFormat; //?? not sure why I need this to make it works, From 8486ef1c1a183d13d869d09f0694232cc843aff4 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Thu, 19 Aug 2021 09:39:04 +0800 Subject: [PATCH 085/277] Add error messages for using minute in startDate or endDate --- src/parsing.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/parsing.ts b/src/parsing.ts index 9eb294a..e71a387 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -1239,6 +1239,11 @@ export function getRenderInfoFromYaml( // startDate, endDate // console.log("Parsing startDate"); if (typeof yaml.startDate === "string") { + if (/^([\-]?[0-9]+[\.][0-9]+|[\-]?[0-9]+)m$/.test(yaml.startDate)) { + let errorMessage = + "'m' for 'minute' is too small for parameter startDate, please use 'd' for 'day' or 'M' for month"; + return errorMessage; + } let strStartDate = helper.getDateStringFromInputString( yaml.startDate, renderInfo.dateFormatPrefix, @@ -1276,6 +1281,11 @@ export function getRenderInfoFromYaml( // console.log("Parsing endDate"); if (typeof yaml.endDate === "string") { + if (/^([\-]?[0-9]+[\.][0-9]+|[\-]?[0-9]+)m$/.test(yaml.endDate)) { + let errorMessage = + "'m' for 'minute' is too small for parameter endDate, please use 'd' for 'day' or 'M' for month"; + return errorMessage; + } let strEndDate = helper.getDateStringFromInputString( yaml.endDate, renderInfo.dateFormatPrefix, From bc540bef5c132bcb9e895a03768f1443bbf69e59 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Thu, 19 Aug 2021 16:58:22 +0800 Subject: [PATCH 086/277] Comment out console.log --- src/main.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main.ts b/src/main.ts index 5c46b4d..aa74221 100644 --- a/src/main.ts +++ b/src/main.ts @@ -206,7 +206,7 @@ export default class Tracker extends Plugin { // Try extract multiplier // if (link.position) let splitted = line.split(link.original); - console.log(splitted); + // console.log(splitted); if (splitted.length === 2) { let toParse = splitted[1].trim(); let strRegex = fileMultiplierAfterLink; @@ -604,7 +604,7 @@ export default class Tracker extends Plugin { processInfo.fileAvailable === 0 || !processInfo.gotAnyValidXValue ) { - dateErrorMessage = `No valid date as X value found in notes.`; + dateErrorMessage = `No valid date as X value found in notes`; if (processInfo.fileOutOfDateRange > 0) { dateErrorMessage += `\n${processInfo.fileOutOfDateRange} files are out of the date range.`; } From 4a084aff7c646cb2155b0a85ecbe8b48214bc9e8 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Thu, 19 Aug 2021 17:38:19 +0800 Subject: [PATCH 087/277] Update documents --- README.md | 19 +++++++++-------- docs/Examples.md | 11 +++++++--- docs/Expressions.md | 16 +++++++------- docs/InputParameters.md | 36 ++++++++++++++++++-------------- docs/Questions.md | 46 +++++++++++------------------------------ docs/ReleaseNotes.md | 8 ++++++- 6 files changed, 65 insertions(+), 71 deletions(-) diff --git a/README.md b/README.md index f04d9b4..1724dc5 100644 --- a/README.md +++ b/README.md @@ -8,19 +8,20 @@ This is an [Obsidian](https://obsidian.md/) plugin that helps you collect data f [Here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Examples.md) is a table containing simplified examples showing what you can track. +## What's New +Version 1.10.0 +- Add annotation mode for month view ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestCalendar.md)) +- Add parameters `xAxisTickInterval`, `yAxisTickInterval`, `xAxisTickLabelFormat` and `yAxisTickLabelFormat` for the line and bar chart ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestAxisIntervalAndFormat.md)) +- Allow using regular expression in parameter `dateFormatPrefix` and `dateFormatSuffix` ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md)) +- Add parameters `file`, `specifiedFilesOnly`, `fileContainsLinkedFiles`, and `fileMultiplierAfterLink` to retrieve data from specified files ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestSpecifiedFiles.md)) +- Add a parameter `textValueMap` to convert texts or emojis to specified values ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTextValueMap.md)) +- Fixed bugs +- Enhanced error messages + ## !!! Breaking Changes !!! From version 1.9.0, template variables, e.g. '{{sum}}', are deprecated. Instead, Tracker provide operators (+, -, *, /, %) and functions (dataset(), sum(), maxStreak(), ......etc) to help us do data processing. For users having code blocks from previous version, please replace '{{sum}}' by '{{sum()}}' or '{{sum(1)}}' by '{{sum(dataset(1))}}'. More information about the new expressions could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md). -## What's New -Version 1.10.0 -- Add annotation mode to month view ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md)) -- Add parameter `yAxisTickInterval` and `yAxisTickFormat` for the line and bar chart ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md)) -- Allow using regular expression in parameter `dateFormatPrefix` and `dateFormatSuffix` ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md)) -- Fixed external label positioning in the pie chart -- Enhanced error messages for 'no values found' -- Fixed using double quotes for multiple lines in summary template - ## Usage 1. Have some targets you want to track in daily notes. diff --git a/docs/Examples.md b/docs/Examples.md index 38a2fa0..d05045d 100644 --- a/docs/Examples.md +++ b/docs/Examples.md @@ -1,10 +1,12 @@ # Examples -The following table lists use cases with information of target location (Location), target to track (Target to Track), simplified tracker block (Tracker), and what kind of data you will get ((((O)ccurence/(V)alue). Various kinds of full examples can also be found in the following section after the table. +We provide a simplified table of use cases and full examples including data. ## Table of Use Cases -| Location | Target to Track | Tracker | Get (O)ccurrence/(V)alue | +Check where (Location) and what (Target to Track) is your target and find the settings (Tracker) you need. + +| Location | Target to Track | Tracker | Get (O)ccurrences/(V)alues | |:--------|:-------|:---------|:--:| | content | #meditation | searchType: tag
searchTarget: meditation | O | | frontmatter | ---
tags: meditation
--- | searchType: tag
searchTarget: meditation | O | @@ -36,7 +38,7 @@ The following table lists use cases with information of target location (Locatio ## Full examples -Full tracker code blocks can be found in [this folder](https://github.com/pyrochlore/obsidian-tracker/tree/master/examples) and the corresponding notes can be found under folder 'diary' and 'data'. +Full tracker code blocks can be found in folder [examples](https://github.com/pyrochlore/obsidian-tracker/tree/master/examples) and the corresponding notes (data) can be found under folder '[diary](https://github.com/pyrochlore/obsidian-tracker/tree/master/examples/diary)' and '[data](https://github.com/pyrochlore/obsidian-tracker/tree/master/examples/data)'. List of all examples - [Bloodpressure Tracker](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/BloodPressureTracker.md) @@ -46,6 +48,7 @@ List of all examples - [Mood Tracker](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/MoodTracker.md) - [Star Tracker](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/StarTracker.md) - [Bar Chart](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestBarChart.md) +- [Axis Interval and Format](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestAxisIntervalAndFormat.md) - [Bullet Chart](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestBullet.md) - [Calendar](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestCalendar.md) - [Date Formats](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md) @@ -56,9 +59,11 @@ List of all examples - [Multiple Targets / Multiple Values](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestMultipleTargetsMultipleValues.md) - [Pie Chart](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md) - [Scaling and Positioning](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestScalingAndPositioning.md) +- [Specified Files](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestSpecifiedFiles.md)) - [Summary](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestSummary.md) - [Table](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTable.md) - [Task](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTask.md) +- [Text-value Map](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTextValueMap.md) - [Time Values](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTimeValues.md) - [Word Counting](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestWordCounting.md) - [X Dataset](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestXDataset.md) diff --git a/docs/Expressions.md b/docs/Expressions.md index a26ebe5..fe17aee 100644 --- a/docs/Expressions.md +++ b/docs/Expressions.md @@ -8,15 +8,17 @@ From version 1.9.0, template variables, e.g. '{{sum}}', are deprecated. Instead, ## Where to Use -Currently, we can only use expressions in some parameters. These includes `template` in `summary` output, `value` in `bullet` output, and `data` `label` `extLabel` in `pie` output. In future release, we might add a parameter `dataset` accepting expressions to be used with other output type. +Currently, we can only use expressions in some parameters. These includes `template` in `summary` output, `value` in `bullet` output, and `data` `label` `extLabel` in `pie` output. In future release, there will be more parameters using expressiones as input. ## How to Use -Expressions should be be wrapped in curly brackets. By Using the combination of operatora and funtions listed beloew, Tracker will try to resolve the whole expression in brackets and then generate a number or a string according to what was requested. +Expressions should be be wrapped in curly brackets. By using the combination of operators and funtions, Tracker can resolve the whole expression in brackets and then generate a number or a string according to what was requested. -If the resolved expreasion is a string, we can optionally provide a format string by adding it right after the expression and two extra colons. +If the resolved output of an expression is a string, we can assign a format string to it. The format string should be placed after the expression in curly brackets following by two colons. For example, The expression '{{sum()::i}}' will force the output number represented as an integer (i for integer). -The following tables show all the operators and functions available for now. Please make sure the input type and output type when you are combining them together. Examples could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md). +For the number output, use '[Printf Format String](https://en.wikipedia.org/wiki/Printf_format_string)' for the format string. For the date output, use the date format string defined in [Moment.js](https://momentjscom.readthedocs.io/en/latest/moment/04-displaying/01-format/). + +The following tables show all the operators and functions available for now. Please make sure the input type and output type when you are combining them together. Examples could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md). Requests for operators or functions are welcome. ## List of Operators @@ -45,7 +47,7 @@ e.g. ## List of Functions -### Get dataset from index +### Get Dataset by Index | Function(InputType): OutputType | Description | |:------------------|:-----------| @@ -93,7 +95,3 @@ e.g. ## Missing Values Notice that the missing values (null values) are ignored in function like sum or average. Moreover, a value plus a missing value will leads to null value (missing value). To avoid these, you can set those missing values to a value by using parameter `penalty` or use expression function `setMissingValues`. - -## String Output Format - -If the output of an expression is string, you can assign the format by using \ No newline at end of file diff --git a/docs/InputParameters.md b/docs/InputParameters.md index 7a916cd..903adff 100644 --- a/docs/InputParameters.md +++ b/docs/InputParameters.md @@ -1,26 +1,30 @@ # Input Parameters -Obsidian-tracker parses key-value pairs in your code block in YAML format and uses them as input parameters. The minimum requirements for parameters are `searchType`, `searchTarget` and one output parameter (`line`, `bar`, `summary`, `bullet`, `month`, or `pie`). +Obsidian-tracker parses key-value pairs in YAML format in your code block and uses them as input parameters. The minimum requirements for parameters are `searchType`, `searchTarget` and at least one output parameter (`line`, `bar`, `summary`, `bullet`, `month`, or `pie`). ## Array Input for a Parameter -Some of the parameters can accept more than one value for each target, thus the maximum number of values of the parameter equals the number of targets (NT). If the number of values is less than the number of targets, the plugin will use the previously provided value or use the default value if nothing is provided. +Some of the parameters can accept more than one value for each target. For those parameters accept different value for each given search target, the maximum number of values should equal to the number of search target (NT). If the number of values are less than the number of targets, Tracker will use the previously provided one in sequence or use the default value if nothing is provided. -Also, some y-axis related parameters for chart (`line` or `bar`), like `yMin`, `yMax`, and `yAxisLabel` accept one value for each y-axis (`left` and `right`). If you only use one axis, or the values for the two axes are the same, only one value is required. If you need the two axes to have different values, assign two values to them. The first one will be used for the left axis and the second one for the right axis. +For Y axis related parameters, like `yMin`, `yMax`, or `yAxisLabel`, they accept one value for each Y axis (`left` and `right`). If you only use one axis, or the values for the two axes are the same, only one value is required. If you need the two axes to have different values, provide two values to do the work. The first one will be used for the left Y axis and the second one for the right Y axis. -To enter array of values, Use YAML array (e.g. ['value1', 'value2', 'value3']) or simply values separated by comma (e.g. value1, value2, value3). The second method is a syntax surgar of Tracker to simplify the inputs. If YAML special characters are included, be sure to wrap the whole values by single quotes (e.g. 'value1, value2, value3'). Please also check [this](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/TargetEvaluation.md) for more information about YAML in Tracker. +To enter array of values, we can use YAML array (e.g. ['value1', 'value2', 'value3']) or simply values separated by comma (e.g. value1, value2, value3). The second method is a syntax surgar of Tracker to simplify input process. If YAML special characters are required in the inputs, be sure to wrap the whole values by single quotes (e.g. 'value1, value2, value3'). Please also check [this](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/YAML.md) for more information about YAML in Tracker. ## List of Parameters ### Root Parameters -These key-value pairs are placed under the code block root. +These key-value pairs are placed under the root of the code block. | Key | Description | Number of Values | Default | |:--------|:-------|:-----------:|:------| | `searchType` | Type of `searchTarget` (tag\|frontmatter\|wiki\|text\|dvField\|table\|fileMeta\|task) | 1~NT | Must be provided | | `searchTarget` | Target to search
[[detail](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/TargetEvaluation.md)] | NT (Number of Targets) | Must be provided | | `folder` | Root path containing notes to search | 1 | Root of this vault | +| `file` | Files to include for searching | N | null | +| `specifiedFilesOnly` | Ignore files found in `folder` | 1 | false | +| `fileContainsLinkedFiles` | Include the linked files in the specified files here | N | null | +| `fileMultiplierAfterLink` | Regex string include named group 'value'
to search the multiplier after link | 1 | '' | | `dateFormat` | Date format
Use [Moment.js](https://momentjscom.readthedocs.io/en/latest/moment/04-displaying/01-format/) format or use [iso-8601](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md#iso-8601-date-format) | 1 | 'YYYY-MM-DD' | | `dateFormatPrefix` | Prefix before your dateFormat (accept regex) | 1 | '' | | `dateFormatSuffix` | Suffix after your dateFormat (accept regex) | 1 | '' | @@ -36,15 +40,16 @@ These key-value pairs are placed under the code block root. | `penalty` | Value to use if the search target is missing on the day | 1~NT | | | `valueShift` | Amount to shift for each collected value | 1~NT | 0 | | `valueType` | Not implemented yet | 1~NT | | +| `textValueMap` | A container key for multiple text-value mapping | | | | `fixedScale` | Uniform scaling factor to the graph dimensions | 1 | 1.0 | | `fitPanelWidth` | Auto-fit the width of the chart to the container | 1 | false | | `margin` | Four margins (top|right|bottom|left) of the graph | 1~4 | 10 | | `line` | A container key for parameters related to the line chart | | | | `bar` | A container key for parameters related to the bar chart | | | | `summary` | A container key for parameters related to the summary output | | | -| `bullet` | A container key for parameters related to the bullet chart | -| `month` | A container key for parameters related to the month view | -| `pie` | A container key for parameters related to the pie chart | +| `bullet` | A container key for parameters related to the bullet chart | | | +| `month` | A container key for parameters related to the month view | | | +| `pie` | A container key for parameters related to the pie chart | | | ### Parameters for Common Charts These key-value pairs should be placed under the key `line` or `bar`. @@ -59,9 +64,10 @@ These key-value pairs should be placed under the key `line` or `bar`. | `yAxisColor` | Color of Y axis | 1~2 | 'white'('black'*) | | `yAxisLabelColor` | Color of Y axis label | 1~2 | 'white'('black'*) | | `yAxisUnit` | Unit displayed aside Y axis label | 1~2 | '' | -yAxisTickInterval -yAxisTickFormat - +| `xAxisTickInterval` | X axis interval between ticks | 1~2 | null | +| `xAxisTickLabelFormat` | Format of tick label on X axis
| 1~2 | null | +| `yAxisTickInterval` | Y axis interval between ticks | 1~2 | null | +| `yAxisTickLabelFormat` | Format of tick label on Y axis
| 1~2 | null | | `yMin` | Minimum value on Y axis | 1~2 |Minimum Y value found | | `yMax` | Maximum value on Y axis | 1~2 | Maximum Y value found | | `reverseYAxis` | Flip (upside down) the Y Axis or not (true\|false) | 1~2 | false | @@ -126,7 +132,7 @@ These key-value pairs should be placed under the key `month`. | Key | Description | Number of Values | Default | |:--------|:-------|:-----------:|:------| -| `mode` | () | 1 | +| `mode` | Pick one mode of the two(circle\|annotation) | 1 | | `dataset` | Index of the dataset of your interest | 1~NT | all indices of non-x searchTarget | | `startWeekOn` | First day of a week ('Sun'\|'Mon') | 1 | 'Sun' | | `threshold` | Threshold to determine showing a circle on a day or not | 1~NT | 0 | @@ -147,9 +153,9 @@ These key-value pairs should be placed under the key `month`. | `todayRingColor` | Color of the ring on today | 1 | 'white' | | `selectedRingColor` | Color of the ring on the selected day | 1 | 'firebrick' | | `initMonth` | Initial month to show (YYYY-MM) | 1 | last month found | -showAnnotation -annotation -showAnnotationOfAllTargets +| `showAnnotation` | Show/hide annotation | 1 | false | +| `annotation` | Annotation for each piece of data | NT | '' | +| `showAnnotationOfAllTargets` | Show annotation of all targets at the same time | 1 | false | ### Parameters for Pie Chart diff --git a/docs/Questions.md b/docs/Questions.md index b14daff..d6ca037 100644 --- a/docs/Questions.md +++ b/docs/Questions.md @@ -2,53 +2,31 @@ - Does Tracker only track data in daily notes (file names contain dates)? - No. You can get date from any `searchType` including `fileMeta`. The collected dates use that dataset as `xDataset`. So any notes can be included. - -- Does Tracker only track data over dates? - - Yes. The data type of x values should be in the form of date for now. This constrain might be relaxed in future. + No. The file name of your notes could be any string. But we do need a date from each file. If it is not from the file name, we should add one more `searchTarget` and use that target as the source of X values by setting parameter `xDataset` to its index. The searchType `fileMeta` with `searchTarget` cDate (creation date) and mDate (modification date) are always accessible as date sources if you don't have any. Examples of these use cases could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestXDataset.md). - Why my line chart looks broken (not connected) at some points? - The plugin only connects adjacent points (by date) by default. To force it connecting points over missing data, set the parameter `fillGap` under `line` to true. - -- Why the plugin shows error 'No valid X values found in notes'? + Tracker only connects adjacent points (neighbor points by date) by default. To force it connecting points over missing data, set the parameter `fillGap` under `line` or `bar` to true. - The default X values were extracted from the title of your notes. By assigning proper `dateFormat`, and combine with `dateFormatPrefix` and `dateFormatSuffix`. The date could be extracted from your title successfully. - The X values in Tracker should be of Date type. No files or x data values matched the dateFormat you gave in the given folder +- Why the plugin shows error 'No valid date as X value found in notes'? -- Wny the plugin shows error 'No valid Y values found in notes'? - No y data values found + First we have to confirm where is the source of your X values. Tracker always needs X values in dates. The default source of X values are the file names of your notes. As long as a proper `dateFormat` was assigned, and combine with `dateFormatPrefix` and `dateFormatSuffix`, the dates in file names could be extracted from your file names successfully. -- Why the plugin shows 'No notes found under the given search condition'? + If the date values are from front matter, dataview inline field, or other places, choose the right `searchType` and `searchTarget` and mark them as `xDataset`, Tracker will collect X values for you. - There are few possibilities for this error messages. - 1. No files in the given folder - 3. No files in the date range you gave (from startDate to endDate) - -- Why the plugin shows 'Error parsing YAML'? + If you don't have any date values, and you just want to count the number of occurrences of a target. As a trick, you can use the creation date (cDate) or modification date (mDate) of the file as X data source. - There are syntax errors in your code block. Please check [this document](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/YAML.md) for common mistakes. + Examples of these use cases could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestXDataset.md). -- Why no data (points or lines) is shown in my chart? +- Wny the plugin shows error 'No valid Y value found in notes'? - That means no matched data found in your notes. Please check `searchType` and `searchTarget` in your notes and the document for [target evaluation](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/TargetEvaluation.md). + That means no matched data found in your notes. Please check the document for the detail of [target evaluation](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/TargetEvaluation.md). - For example, if you were doing tag search (`searchType` input is `tag`), an additional space between the colon and the value will leads to data missing. If the space in between is a must, you can use `text` search with regular expression instead of `tag`. Here is an example. - - To Track '#tagName: 10' in daily notes. Use -``` -searchType: text -searchTarget: 'tagName:\s(?[0-9]+)' -...... -``` - More cases can be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestRegex.md) - ---- +- Why the plugin shows 'Error parsing YAML'? -Please also check [these trackers](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/ErrorMessages.md) for more cases leading to error messages. + There are syntax errors in your code block. Please check [this document](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/YAML.md) for common issues. --- -Still have problems?? You might encounter bugs. +Still have problems?? You might encounter a bug. Welcome to leave an issue [here](https://github.com/pyrochlore/obsidian-tracker/issues). \ No newline at end of file diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index 0bd5de2..de38252 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,7 +1,13 @@ # Release Notes ## v1.10.0 -- +- Add annotation mode for month view ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestCalendar.md)) +- Add parameters `xAxisTickInterval`, `yAxisTickInterval`, `xAxisTickLabelFormat` and `yAxisTickLabelFormat` for the line and bar chart ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestAxisIntervalAndFormat.md)) +- Allow using regular expression in parameter `dateFormatPrefix` and `dateFormatSuffix` ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md)) +- Add parameters `file`, `specifiedFilesOnly`, `fileContainsLinkedFiles`, and `fileMultiplierAfterLink` to retrieve data from specified files ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestSpecifiedFiles.md)) +- Add a parameter `textValueMap` to convert texts or emojis to specified values ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTextValueMap.md)) +- Fixed bugs +- Enhanced error messages ## v1.9.2 - Allow using seconds in time values From ae43fe58534635db7fc12b7732924fe69b074535 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Thu, 19 Aug 2021 17:38:49 +0800 Subject: [PATCH 088/277] Add missing example data --- examples/data/MTG-Card-4.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 examples/data/MTG-Card-4.md diff --git a/examples/data/MTG-Card-4.md b/examples/data/MTG-Card-4.md new file mode 100644 index 0000000..fa7a98c --- /dev/null +++ b/examples/data/MTG-Card-4.md @@ -0,0 +1,3 @@ + + +{W} \ No newline at end of file From b2eda6f9653eb1ed82e9819486c1dc642c240bb5 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Thu, 19 Aug 2021 22:42:35 +0800 Subject: [PATCH 089/277] Fix using separator in collectDataFromFrontmatterTag; Allow using escaped comma as separator; --- src/collecting.ts | 10 ++++++++-- src/parsing.ts | 14 +++++++------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/collecting.ts b/src/collecting.ts index 20a172e..8128544 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -438,8 +438,14 @@ export function collectDataFromFrontmatterTag( let tagExist = false; if (Array.isArray(frontMatter.tags)) { frontMatterTags = frontMatterTags.concat(frontMatter.tags); - } else { - frontMatterTags.push(frontMatter.tags); + } else if (typeof frontMatter.tags === "string") { + let splitted = frontMatter.tags.split(query.getSeparator()); + for (let splittedPart of splitted) { + let part = splittedPart.trim(); + if (part !== "") { + frontMatterTags.push(part); + } + } } for (let tag of frontMatterTags) { diff --git a/src/parsing.ts b/src/parsing.ts index e71a387..3c96adc 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -134,7 +134,7 @@ function getBoolArrayFromInput( } } } else if (typeof input === "string") { - let splitted = input.split(","); + let splitted = input.split("(? 1) { if (splitted.length > numDataset) { errorMessage = "Too many inputs for parameter '" + name + "'"; @@ -275,7 +275,7 @@ function getNumberArrayFromInput( } } } else if (typeof input === "string") { - let splitted = input.split(","); + let splitted = input.split("(? 1) { if (splitted.length > numDataset) { errorMessage = "Too many inputs for parameter '" + name + "'"; @@ -432,7 +432,7 @@ function getStringArrayFromInput( } } } else if (typeof input === "string") { - let splitted = input.split(","); + let splitted = input.split("(? 1) { if (splitted.length > numDataset) { errorMessage = "Too many inputs for parameter '" + name + "'"; @@ -552,7 +552,7 @@ function getNumberArray(name: string, input: any): Array | string { } } } else if (typeof input === "string") { - let splitted = input.split(","); + let splitted = input.split("(? 1) { for (let piece of splitted) { let v = parseFloat(piece.trim()); @@ -600,7 +600,7 @@ function getStringArray(name: string, input: any): Array | string { } } } else if (typeof input === "string") { - let splitted = input.split(","); + let splitted = input.split("(? 1) { for (let piece of splitted) { @@ -909,7 +909,7 @@ export function getRenderInfoFromYaml( } } } else if (typeof yaml.searchTarget === "string") { - let splitted = yaml.searchTarget.split(","); + let splitted = yaml.searchTarget.split("(? 1) { for (let piece of splitted) { piece = piece.trim(); @@ -1021,7 +1021,7 @@ export function getRenderInfoFromYaml( return retMultipleValueSparator; // errorMessage } multipleValueSparator = retMultipleValueSparator.map((sep) => { - if (sep === "comma") { + if (sep === "comma" || sep === "\\,") { return ","; } return sep; From 0974440978047dce64885bc519f5b8235ab54781 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Thu, 19 Aug 2021 22:56:40 +0800 Subject: [PATCH 090/277] Use textValueMap where we need it --- src/main.ts | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/main.ts b/src/main.ts index aa74221..4d09648 100644 --- a/src/main.ts +++ b/src/main.ts @@ -163,6 +163,7 @@ export default class Tracker extends Plugin { if (fileMultiplierAfterLink === "") { searchFileMultifpierAfterLink = false; } else if (/^[0-9]+$/.test(fileMultiplierAfterLink)) { + // integer linkedFileMultiplier = parseFloat(fileMultiplierAfterLink); searchFileMultifpierAfterLink = false; } else if (!/\?/.test(fileMultiplierAfterLink)) { @@ -221,10 +222,15 @@ export default class Tracker extends Plugin { "undefined" ) { // must have group name 'value' - linkedFileMultiplier = parseFloat( - match.groups.value.trim() - ); - break; + let retParse = + helper.parseFloatFromAny( + match.groups.value.trim(), + renderInfo.textValueMap + ); + if (Number.isNumber(retParse)) { + linkedFileMultiplier = retParse; + break; + } } } } @@ -923,8 +929,12 @@ export default class Tracker extends Plugin { let splitted = data.split(yDatasetQuery.getSeparator()); if (!splitted) continue; if (splitted.length === 1) { - let value = parseFloat(splitted[0]); - if (Number.isNumber(value)) { + let retParse = helper.parseFloatFromAny( + splitted[0], + renderInfo.textValueMap + ); + if (Number.isNumber(retParse)) { + let value = retParse as number; if ( indLine < xValues.length && xValues[indLine] @@ -948,8 +958,12 @@ export default class Tracker extends Plugin { let value = null; let splittedPart = splitted[yDatasetQuery.getAccessor(2)].trim(); - value = parseFloat(splittedPart); - if (Number.isNumber(value)) { + let retParse = helper.parseFloatFromAny( + splittedPart, + renderInfo.textValueMap + ); + if (Number.isNumber(retParse)) { + value = retParse as number; if ( indLine < xValues.length && xValues[indLine] From f9a2017f776b0cf3973323ded465733b2a1cc281 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Thu, 19 Aug 2021 23:58:19 +0800 Subject: [PATCH 091/277] Fix making regex for separators --- src/collecting.ts | 11 ++++++++--- src/parsing.ts | 13 +++++++------ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/collecting.ts b/src/collecting.ts index 8128544..cb71cae 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -491,12 +491,16 @@ export function collectDataFromFrontmatterKey( let frontMatter = fileCache.frontmatter; if (frontMatter) { - if (helper.deepValue(frontMatter, query.getTarget())) { - let toParse = helper.deepValue(frontMatter, query.getTarget()); + // console.log(frontMatter); + // console.log(query.getTarget()); + let deepValue = helper.deepValue(frontMatter, query.getTarget()); + // console.log(deepValue); + if (deepValue) { let retParse = helper.parseFloatFromAny( - toParse, + deepValue, renderInfo.textValueMap ); + // console.log(retParse); if (retParse.value !== null) { if (retParse.type === ValueType.Time) { query.valueType = ValueType.Time; @@ -529,6 +533,7 @@ export function collectDataFromFrontmatterKey( } else if (typeof toParse === "string") { splitted = toParse.split(query.getSeparator()); } + // console.log(splitted); if ( splitted && splitted.length > query.getAccessor() && diff --git a/src/parsing.ts b/src/parsing.ts index 3c96adc..fd0ab58 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -134,7 +134,7 @@ function getBoolArrayFromInput( } } } else if (typeof input === "string") { - let splitted = input.split("(? 1) { if (splitted.length > numDataset) { errorMessage = "Too many inputs for parameter '" + name + "'"; @@ -275,7 +275,7 @@ function getNumberArrayFromInput( } } } else if (typeof input === "string") { - let splitted = input.split("(? 1) { if (splitted.length > numDataset) { errorMessage = "Too many inputs for parameter '" + name + "'"; @@ -432,7 +432,7 @@ function getStringArrayFromInput( } } } else if (typeof input === "string") { - let splitted = input.split("(? 1) { if (splitted.length > numDataset) { errorMessage = "Too many inputs for parameter '" + name + "'"; @@ -552,7 +552,7 @@ function getNumberArray(name: string, input: any): Array | string { } } } else if (typeof input === "string") { - let splitted = input.split("(? 1) { for (let piece of splitted) { let v = parseFloat(piece.trim()); @@ -600,7 +600,7 @@ function getStringArray(name: string, input: any): Array | string { } } } else if (typeof input === "string") { - let splitted = input.split("(? 1) { for (let piece of splitted) { @@ -909,7 +909,8 @@ export function getRenderInfoFromYaml( } } } else if (typeof yaml.searchTarget === "string") { - let splitted = yaml.searchTarget.split("(? 1) { for (let piece of splitted) { piece = piece.trim(); From cc54ad4c410fd21fca26edf0084986e61891b5a5 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 20 Aug 2021 00:36:09 +0800 Subject: [PATCH 092/277] Fix using the return value of function parseFloatFromAny --- src/main.ts | 17 +++++++++++------ src/parsing.ts | 6 +++--- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/main.ts b/src/main.ts index 4d09648..699b33c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -227,8 +227,9 @@ export default class Tracker extends Plugin { match.groups.value.trim(), renderInfo.textValueMap ); - if (Number.isNumber(retParse)) { - linkedFileMultiplier = retParse; + if (retParse.value !== null) { + linkedFileMultiplier = + retParse.value; break; } } @@ -927,14 +928,16 @@ export default class Tracker extends Plugin { if (columnOfInterest < dataRowSplitted.length) { let data = dataRowSplitted[columnOfInterest].trim(); let splitted = data.split(yDatasetQuery.getSeparator()); + // console.log(splitted); if (!splitted) continue; if (splitted.length === 1) { let retParse = helper.parseFloatFromAny( splitted[0], renderInfo.textValueMap ); - if (Number.isNumber(retParse)) { - let value = retParse as number; + // console.log(retParse); + if (retParse.value !== null) { + let value = retParse.value; if ( indLine < xValues.length && xValues[indLine] @@ -958,12 +961,14 @@ export default class Tracker extends Plugin { let value = null; let splittedPart = splitted[yDatasetQuery.getAccessor(2)].trim(); + // console.log(splittedPart); let retParse = helper.parseFloatFromAny( splittedPart, renderInfo.textValueMap ); - if (Number.isNumber(retParse)) { - value = retParse as number; + // console.log(retParse); + if (retParse.value !== null) { + value = retParse.value; if ( indLine < xValues.length && xValues[indLine] diff --git a/src/parsing.ts b/src/parsing.ts index fd0ab58..794227c 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -298,7 +298,7 @@ function getNumberArrayFromInput( } } else { let currNum = helper.parseFloatFromAny(curr).value; - if (Number.isNumber(currNum)) { + if (currNum !== null) { array[ind] = currNum; numValidValue++; } else { @@ -311,7 +311,7 @@ function getNumberArrayFromInput( let last = helper.parseFloatFromAny( splitted[input.length - 1].trim() ).value; - if (numValidValue > 0 && Number.isNumber(last)) { + if (numValidValue > 0 && last !== null) { array[ind] = last; } else { array[ind] = defaultValue; @@ -323,7 +323,7 @@ function getNumberArrayFromInput( // all defaultValue } else { let inputNum = helper.parseFloatFromAny(input).value; - if (Number.isNumber(inputNum)) { + if (inputNum !== null) { array[0] = inputNum; numValidValue++; for (let ind = 1; ind < array.length; ind++) { From c8002ec50270d15e21e721093678483ab70f2bd1 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 20 Aug 2021 09:47:57 +0800 Subject: [PATCH 093/277] Fix wrong curValue in month view for front matter tags --- examples/TestFrontmatter.md | 13 ++++++++++ examples/TestSpecifiedFiles.md | 2 +- examples/diary/2021-01-01.md | 2 +- examples/diary/2021-01-04.md | 2 +- examples/diary/2021-01-05.md | 2 +- examples/diary/2021-01-06.md | 2 +- examples/diary/2021-01-07.md | 2 +- examples/diary/2021-01-08.md | 2 +- examples/diary/2021-01-11.md | 2 +- examples/diary/2021-01-12.md | 2 +- examples/diary/2021-01-13.md | 2 +- examples/diary/2021-01-14.md | 2 +- examples/diary/2021-01-15.md | 2 +- examples/diary/2021-01-18.md | 2 +- examples/diary/2021-01-19.md | 2 +- examples/diary/2021-01-20.md | 2 +- examples/diary/2021-01-21.md | 2 +- examples/diary/2021-01-22.md | 2 +- examples/diary/2021-01-25.md | 2 +- examples/diary/2021-01-26.md | 2 +- examples/diary/2021-01-27.md | 2 +- examples/diary/2021-01-28.md | 2 +- examples/diary/2021-01-29.md | 2 +- examples/example_generator.ts | 2 +- src/month.ts | 43 ++++++++++++++++++++++++---------- 25 files changed, 67 insertions(+), 35 deletions(-) diff --git a/examples/TestFrontmatter.md b/examples/TestFrontmatter.md index b54acdc..dc31cbd 100644 --- a/examples/TestFrontmatter.md +++ b/examples/TestFrontmatter.md @@ -35,4 +35,17 @@ line: legendPosition: bottom ``` +## Multiple Tags in Front Matter +Use 'comma', or '\,' in parameter `separator` +Notice the comma character should be escaped +``` tracker +searchType: tag +searchTarget: work_log, work_log2 +folder: diary +datasetName: Work1, Work2 +separator: '\,' +month: + initMonth: 2021-01 +``` + Please also check those search targets in markdown files under folder 'diary'. \ No newline at end of file diff --git a/examples/TestSpecifiedFiles.md b/examples/TestSpecifiedFiles.md index 92df344..857180d 100644 --- a/examples/TestSpecifiedFiles.md +++ b/examples/TestSpecifiedFiles.md @@ -22,5 +22,5 @@ xDataset: 0 pie: label: '{{sum(dataset(1))::i}},{{sum(dataset(2))::i}},{{sum(dataset(3))::i}},{{sum(dataset(4))::i}},{{sum(dataset(5))::i}}' data: '{{sum(dataset(1))}},{{sum(dataset(2))}}, {{sum(dataset(3))}}, {{sum(dataset(4))}},{{sum(dataset(5))}}' - dataColor: lightgray, red, green, blue, gray + dataColor: lightgray, firebrick, yellowgreen, lightblue, gray ``` \ No newline at end of file diff --git a/examples/diary/2021-01-01.md b/examples/diary/2021-01-01.md index 1e43b42..9539ed2 100644 --- a/examples/diary/2021-01-01.md +++ b/examples/diary/2021-01-01.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 🙁 bloodpressure: 184.4/118.8 bloodpressure1: 184.4, 118.8 diff --git a/examples/diary/2021-01-04.md b/examples/diary/2021-01-04.md index dd68aa2..05cf37f 100644 --- a/examples/diary/2021-01-04.md +++ b/examples/diary/2021-01-04.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 🙂 bloodpressure: 176.6/121.2 bloodpressure1: 176.6, 121.2 diff --git a/examples/diary/2021-01-05.md b/examples/diary/2021-01-05.md index 4d60cee..cea72c4 100644 --- a/examples/diary/2021-01-05.md +++ b/examples/diary/2021-01-05.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 😀 bloodpressure: 180/118 bloodpressure1: 180, 118 diff --git a/examples/diary/2021-01-06.md b/examples/diary/2021-01-06.md index b63f5b6..45daced 100644 --- a/examples/diary/2021-01-06.md +++ b/examples/diary/2021-01-06.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 🙁 bloodpressure: 171.4/118.8 bloodpressure1: 171.4, 118.8 diff --git a/examples/diary/2021-01-07.md b/examples/diary/2021-01-07.md index a0d5d32..b99af2e 100644 --- a/examples/diary/2021-01-07.md +++ b/examples/diary/2021-01-07.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 😀 bloodpressure: 175.8/120.6 bloodpressure1: 175.8, 120.6 diff --git a/examples/diary/2021-01-08.md b/examples/diary/2021-01-08.md index 8b6f63b..ca1e559 100644 --- a/examples/diary/2021-01-08.md +++ b/examples/diary/2021-01-08.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 😀 bloodpressure: 172.2/116.4 bloodpressure1: 172.2, 116.4 diff --git a/examples/diary/2021-01-11.md b/examples/diary/2021-01-11.md index 892656f..3a751fb 100644 --- a/examples/diary/2021-01-11.md +++ b/examples/diary/2021-01-11.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 😐 bloodpressure: 173.4/117.8 bloodpressure1: 173.4, 117.8 diff --git a/examples/diary/2021-01-12.md b/examples/diary/2021-01-12.md index 94e3967..3999d50 100644 --- a/examples/diary/2021-01-12.md +++ b/examples/diary/2021-01-12.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 😀 bloodpressure: 176.8/118.6 bloodpressure1: 176.8, 118.6 diff --git a/examples/diary/2021-01-13.md b/examples/diary/2021-01-13.md index f2e12ef..d49e5e6 100644 --- a/examples/diary/2021-01-13.md +++ b/examples/diary/2021-01-13.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 😞 bloodpressure: 168.2/116.4 bloodpressure1: 168.2, 116.4 diff --git a/examples/diary/2021-01-14.md b/examples/diary/2021-01-14.md index ef3a44a..5d6e37f 100644 --- a/examples/diary/2021-01-14.md +++ b/examples/diary/2021-01-14.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 😐 bloodpressure: 175.6/117.2 bloodpressure1: 175.6, 117.2 diff --git a/examples/diary/2021-01-15.md b/examples/diary/2021-01-15.md index ac1f2fc..7da38fe 100644 --- a/examples/diary/2021-01-15.md +++ b/examples/diary/2021-01-15.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 😀 bloodpressure: 176/115 bloodpressure1: 176, 115 diff --git a/examples/diary/2021-01-18.md b/examples/diary/2021-01-18.md index ec91c1a..b06ee71 100644 --- a/examples/diary/2021-01-18.md +++ b/examples/diary/2021-01-18.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 😀 bloodpressure: 167.2/118.4 bloodpressure1: 167.2, 118.4 diff --git a/examples/diary/2021-01-19.md b/examples/diary/2021-01-19.md index ded2151..11ce05b 100644 --- a/examples/diary/2021-01-19.md +++ b/examples/diary/2021-01-19.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 😐 bloodpressure: 165.6/117.2 bloodpressure1: 165.6, 117.2 diff --git a/examples/diary/2021-01-20.md b/examples/diary/2021-01-20.md index 99daaa1..e4a2a0a 100644 --- a/examples/diary/2021-01-20.md +++ b/examples/diary/2021-01-20.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 🙂 bloodpressure: 163/117 bloodpressure1: 163, 117 diff --git a/examples/diary/2021-01-21.md b/examples/diary/2021-01-21.md index fd0233b..94eecce 100644 --- a/examples/diary/2021-01-21.md +++ b/examples/diary/2021-01-21.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 🙂 bloodpressure: 170.4/113.8 bloodpressure1: 170.4, 113.8 diff --git a/examples/diary/2021-01-22.md b/examples/diary/2021-01-22.md index 43a6889..1d59f28 100644 --- a/examples/diary/2021-01-22.md +++ b/examples/diary/2021-01-22.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 😞 bloodpressure: 165.8/116.6 bloodpressure1: 165.8, 116.6 diff --git a/examples/diary/2021-01-25.md b/examples/diary/2021-01-25.md index 811eea5..569cbf6 100644 --- a/examples/diary/2021-01-25.md +++ b/examples/diary/2021-01-25.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 😞 bloodpressure: 167/114 bloodpressure1: 167, 114 diff --git a/examples/diary/2021-01-26.md b/examples/diary/2021-01-26.md index 4b37aab..c189d61 100644 --- a/examples/diary/2021-01-26.md +++ b/examples/diary/2021-01-26.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 🙂 bloodpressure: 162.4/114.8 bloodpressure1: 162.4, 114.8 diff --git a/examples/diary/2021-01-27.md b/examples/diary/2021-01-27.md index 27c95a9..e7c320e 100644 --- a/examples/diary/2021-01-27.md +++ b/examples/diary/2021-01-27.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 🙂 bloodpressure: 165.8/113.6 bloodpressure1: 165.8, 113.6 diff --git a/examples/diary/2021-01-28.md b/examples/diary/2021-01-28.md index e239cd0..efc0f2d 100644 --- a/examples/diary/2021-01-28.md +++ b/examples/diary/2021-01-28.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 😀 bloodpressure: 158.2/115.4 bloodpressure1: 158.2, 115.4 diff --git a/examples/diary/2021-01-29.md b/examples/diary/2021-01-29.md index d57ebc4..d2f984a 100644 --- a/examples/diary/2021-01-29.md +++ b/examples/diary/2021-01-29.md @@ -1,5 +1,5 @@ --- -tags: work_log +tags: work_log, work_log2 mood: 🙁 bloodpressure: 163.6/112.2 bloodpressure1: 163.6, 112.2 diff --git a/examples/example_generator.ts b/examples/example_generator.ts index 3362727..53e67ae 100644 --- a/examples/example_generator.ts +++ b/examples/example_generator.ts @@ -50,7 +50,7 @@ for ( if (weekday == 0 || weekday == 6) { frontmatter += "tags: " + "\n"; } else { - frontmatter += "tags: " + "work_log" + "\n"; + frontmatter += "tags: " + "work_log" + ", " + "work_log2" + "\n"; } // frontmatter mood let moodSymbols = ["😀", "🙂", "😐", "🙁", "😞"]; diff --git a/src/month.ts b/src/month.ts index 35dea32..e4352c3 100644 --- a/src/month.ts +++ b/src/month.ts @@ -487,6 +487,7 @@ function renderMonthDays( ) { // console.log("renderMonthDays"); // console.log(renderInfo); + // console.log(monthInfo); if (!renderInfo || !monthInfo) return; let mode = monthInfo.mode; @@ -498,6 +499,7 @@ function renderMonthDays( if (curDatasetId === null) return; let dataset = renderInfo.datasets.getDatasetById(curDatasetId); if (!dataset) return; + // console.log(dataset); let curDatasetIndex = monthInfo.dataset.findIndex((id) => { return id === curDatasetId; @@ -566,6 +568,16 @@ function renderMonthDays( curDate <= endDate; curDate.add(1, "days") ) { + // not sure why we need to do this to stablize the date + // sometimes, curValue is wrong without doing this + curDate = helper.strToDate( + helper.dateToStr(curDate, renderInfo.dateFormat), + renderInfo.dateFormat + ); + if (curDate.format("YYYY-MM-DD") === "2021-01-02") { + logToConsole = false; // Change this to do dubugging + } + if (monthInfo.startWeekOn.toLowerCase() === "mon") { indCol = curDate.day() - 1; if (indCol < 0) { @@ -596,8 +608,13 @@ function renderMonthDays( isOutOfDataRange = false; } - // curValue - let curValue = dataset.getValue(curDate); + const curValue = dataset.getValue(curDate); + if (logToConsole) { + console.log(dataset); + console.log(helper.dateToStr(curDate, renderInfo.dateFormat)); + console.log(dataset.getValue(window.moment("2021-01-02"))); + console.log(curValue); + } // showCircle let showCircle = false; @@ -631,10 +648,6 @@ function renderMonthDays( // console.log(yMax); // console.log(scaledValue); - // if (curDate.format("YYYY-MM-DD") === "2021-11-02") { - // logToConsole = true; - // } - // streakIn and streakOut let nextValue = dataset.getValue(curDate, 1); let prevValue = dataset.getValue(curDate, -1); @@ -650,12 +663,13 @@ function renderMonthDays( streakOut = true; } } - // if (logToConsole) { - // console.log(`preValue: ${prevValue}, curValue: ${curValue}, nextValue: ${nextValue}`); - // console.log(monthInfo.threshold); - // console.log(`streakIn: ${streakIn}, streakOut: ${streakOut}`); - // logToConsole = false; - // } + if (logToConsole) { + console.log( + `preValue: ${prevValue}, curValue: ${curValue}, nextValue: ${nextValue}` + ); + console.log(monthInfo.threshold); + console.log(`streakIn: ${streakIn}, streakOut: ${streakOut}`); + } let textAnnotation = ""; if (showAnnotation) { @@ -697,6 +711,11 @@ function renderMonthDays( }); ind++; + + // Disable logging starts at the beginning of each loop + if (logToConsole) { + logToConsole = false; + } } // console.log(daysInMonthView); // console.log(daysInMonthView.filter(function (d: DayInfo) { From 76c7fa4ef79d1503124ac0207fd610c617ac7c2f Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 20 Aug 2021 10:54:05 +0800 Subject: [PATCH 094/277] Fix default separator --- docs/InputParameters.md | 2 +- examples/TestFrontmatter.md | 23 ++++++++++++++++++++--- src/collecting.ts | 4 +++- src/data.ts | 10 ++++++++-- src/parsing.ts | 2 +- 5 files changed, 33 insertions(+), 8 deletions(-) diff --git a/docs/InputParameters.md b/docs/InputParameters.md index 903adff..cddcc93 100644 --- a/docs/InputParameters.md +++ b/docs/InputParameters.md @@ -31,7 +31,7 @@ These key-value pairs are placed under the root of the code block. | `startDate` | Start date to collect data from
accept [relative date](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md#relative-date-input-for-startdate-and-enddate) | 1 | Min date found | | `endDate` | End date of to collect data
accept [relative date](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md#relative-date-input-for-startdate-and-enddate) | 1 | Max date found | | `datasetName` | Name of the dataset for a search target` | 1~NT | untitled | -| `separator` | Character used to separate multiple values appearing in the search target | 1~NT | '/' | +| `separator` | Character used to separate multiple values appearing in the search target | 1~NT | '/'
',' in front matter tags | | `xDataset` | Index of `searchTarget` used as xDataset | 1~NT | -1 (use filename as xDataset) | | `constValue` | Constant value of a target if no value attached | 1~NT | 1.0 | | `ignoreAttachedValue` | Use `constValue` even if the target has a value attached on (true\|false) | 1~NT | false | diff --git a/examples/TestFrontmatter.md b/examples/TestFrontmatter.md index dc31cbd..1494036 100644 --- a/examples/TestFrontmatter.md +++ b/examples/TestFrontmatter.md @@ -36,14 +36,31 @@ line: ``` ## Multiple Tags in Front Matter -Use 'comma', or '\,' in parameter `separator` -Notice the comma character should be escaped +Extract data of one tag from multiple tags +The default separator in front matter tags is comma (,) +``` tracker +searchType: tag +searchTarget: work_log +folder: diary +accum: true +startDate: 2021-01-01 +endDate: 2021-01-31 +line: + title: Work Log + yAxisLabel: Count + pointSize: 5 + pointColor: white + pointBorderWidth: 2 + pointBorderColor: "#d65d0e" +``` + +Use the data of two tags +The default separator in front matter tags is comma (,) ``` tracker searchType: tag searchTarget: work_log, work_log2 folder: diary datasetName: Work1, Work2 -separator: '\,' month: initMonth: 2021-01 ``` diff --git a/src/collecting.ts b/src/collecting.ts index cb71cae..7c3fe09 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -439,7 +439,7 @@ export function collectDataFromFrontmatterTag( if (Array.isArray(frontMatter.tags)) { frontMatterTags = frontMatterTags.concat(frontMatter.tags); } else if (typeof frontMatter.tags === "string") { - let splitted = frontMatter.tags.split(query.getSeparator()); + let splitted = frontMatter.tags.split(query.getSeparator(true)); for (let splittedPart of splitted) { let part = splittedPart.trim(); if (part !== "") { @@ -447,6 +447,8 @@ export function collectDataFromFrontmatterTag( } } } + // console.log(frontMatterTags); + // console.log(query.getTarget()); for (let tag of frontMatterTags) { if (tag === query.getTarget()) { diff --git a/src/data.ts b/src/data.ts index a3c99b9..4ddd92f 100644 --- a/src/data.ts +++ b/src/data.ts @@ -68,7 +68,7 @@ export class Query { constructor(id: number, searchType: SearchType, searchTarget: string) { this.type = searchType; this.target = searchTarget; - this.separator = "/"; + this.separator = "";// separator to separate multiple values this.id = id; this.accessor = -1; this.accessor1 = -1; @@ -172,7 +172,13 @@ export class Query { this.separator = sep; } - public getSeparator() { + public getSeparator(isForFrontmatterTags: boolean = false) { + if (this.separator === "") { + if (isForFrontmatterTags) { + return ","; + } + return "/"; + } return this.separator; } diff --git a/src/parsing.ts b/src/parsing.ts index 794227c..c4326e4 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -1014,7 +1014,7 @@ export function getRenderInfoFromYaml( "separator", yaml.separator, numDatasets, - "/", + "",// set the default value later null, true ); From 44d7cb087b2a85cc23c68e3fd3b077665a184add Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 20 Aug 2021 12:19:00 +0800 Subject: [PATCH 095/277] Add warning for current situation on mobile --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 1724dc5..ee77f4a 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,9 @@ This is an [Obsidian](https://obsidian.md/) plugin that helps you collect data f [Here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Examples.md) is a table containing simplified examples showing what you can track. ## What's New + +!!! Warning: For some reasons version 1.10.0 is not working on mobile. If you need Tracker on your mobile, do not update it until the issue is fixed. + Version 1.10.0 - Add annotation mode for month view ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestCalendar.md)) - Add parameters `xAxisTickInterval`, `yAxisTickInterval`, `xAxisTickLabelFormat` and `yAxisTickLabelFormat` for the line and bar chart ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestAxisIntervalAndFormat.md)) From 0cf11afa0836c2ae82660181e4286b98fcfd0f62 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 20 Aug 2021 14:15:17 +0800 Subject: [PATCH 096/277] Fix lookbehind regex not supported on current iOS --- src/parsing.ts | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/parsing.ts b/src/parsing.ts index c4326e4..7a3c875 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -69,6 +69,18 @@ function validateColor(color: string): boolean { return true; } +function splitInputByComma(input: string) { + // Split string by ',' but not by '\,' + // let splitted = input.split(/(?lookbehind not support in Safari for now + const dummy = "::::::tracker::::::"; + let temp = input.replaceAll("\\,", dummy); + let splitted = temp.split(","); + for (let ind = 0; ind < splitted.length; ind++) { + splitted[ind] = splitted[ind].replaceAll(dummy, ","); + } + return splitted; +} + function getBoolArrayFromInput( name: string, input: any, @@ -134,7 +146,7 @@ function getBoolArrayFromInput( } } } else if (typeof input === "string") { - let splitted = input.split(/(? 1) { if (splitted.length > numDataset) { errorMessage = "Too many inputs for parameter '" + name + "'"; @@ -275,7 +287,7 @@ function getNumberArrayFromInput( } } } else if (typeof input === "string") { - let splitted = input.split(/(? 1) { if (splitted.length > numDataset) { errorMessage = "Too many inputs for parameter '" + name + "'"; @@ -432,7 +444,7 @@ function getStringArrayFromInput( } } } else if (typeof input === "string") { - let splitted = input.split(/(? 1) { if (splitted.length > numDataset) { errorMessage = "Too many inputs for parameter '" + name + "'"; @@ -552,7 +564,7 @@ function getNumberArray(name: string, input: any): Array | string { } } } else if (typeof input === "string") { - let splitted = input.split(/(? 1) { for (let piece of splitted) { let v = parseFloat(piece.trim()); @@ -600,7 +612,7 @@ function getStringArray(name: string, input: any): Array | string { } } } else if (typeof input === "string") { - let splitted = input.split(/(? 1) { for (let piece of splitted) { @@ -909,7 +921,7 @@ export function getRenderInfoFromYaml( } } } else if (typeof yaml.searchTarget === "string") { - let splitted = yaml.searchTarget.split(/(? 1) { for (let piece of splitted) { @@ -1014,7 +1026,7 @@ export function getRenderInfoFromYaml( "separator", yaml.separator, numDatasets, - "",// set the default value later + "", // set the default value later null, true ); @@ -1022,7 +1034,7 @@ export function getRenderInfoFromYaml( return retMultipleValueSparator; // errorMessage } multipleValueSparator = retMultipleValueSparator.map((sep) => { - if (sep === "comma" || sep === "\\,") { + if (sep === "comma") { return ","; } return sep; From 84faa823c1531ef2b5147f65e84db2d5d2857fe6 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 20 Aug 2021 14:16:51 +0800 Subject: [PATCH 097/277] Set version to 1.10.1 --- manifest.json | 2 +- package.json | 2 +- versions.json | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index b6036da..43774cc 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.10.0", + "version": "1.10.1", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package.json b/package.json index 9fc8906..4cc4e3e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.10.0", + "version": "1.10.1", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index 0f2082e..944f15d 100644 --- a/versions.json +++ b/versions.json @@ -19,5 +19,6 @@ "1.9.0": "0.9.12", "1.9.1": "0.9.12", "1.9.2": "0.9.12", - "1.10.0": "0.9.12" + "1.10.0": "0.9.12", + "1.10.1": "0.9.12" } From 94e909ee59d784d4be02492b172ae4de9686346b Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 20 Aug 2021 14:20:27 +0800 Subject: [PATCH 098/277] Update documents --- README.md | 5 +++-- docs/ReleaseNotes.md | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ee77f4a..11e55bf 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,6 @@ This is an [Obsidian](https://obsidian.md/) plugin that helps you collect data f ## What's New -!!! Warning: For some reasons version 1.10.0 is not working on mobile. If you need Tracker on your mobile, do not update it until the issue is fixed. - Version 1.10.0 - Add annotation mode for month view ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestCalendar.md)) - Add parameters `xAxisTickInterval`, `yAxisTickInterval`, `xAxisTickLabelFormat` and `yAxisTickLabelFormat` for the line and bar chart ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestAxisIntervalAndFormat.md)) @@ -21,6 +19,9 @@ Version 1.10.0 - Fixed bugs - Enhanced error messages +Version 1.10.1 +- Fixed 'failed to load plugin' on iOS + ## !!! Breaking Changes !!! From version 1.9.0, template variables, e.g. '{{sum}}', are deprecated. Instead, Tracker provide operators (+, -, *, /, %) and functions (dataset(), sum(), maxStreak(), ......etc) to help us do data processing. For users having code blocks from previous version, please replace '{{sum}}' by '{{sum()}}' or '{{sum(1)}}' by '{{sum(dataset(1))}}'. More information about the new expressions could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md). diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index de38252..ccc38dd 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,8 @@ # Release Notes +## v1.10.1 +- Fixed 'failed to load plugin' on iOS + ## v1.10.0 - Add annotation mode for month view ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestCalendar.md)) - Add parameters `xAxisTickInterval`, `yAxisTickInterval`, `xAxisTickLabelFormat` and `yAxisTickLabelFormat` for the line and bar chart ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestAxisIntervalAndFormat.md)) From 7aaca6cabfb8b61b5f3d5c47393b2d63d10f9630 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 24 Aug 2021 08:15:01 +0800 Subject: [PATCH 099/277] Stop using function replaceAll --- src/expr.ts | 4 +++- src/parsing.ts | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/expr.ts b/src/expr.ts index 38671e6..65562c2 100644 --- a/src/expr.ts +++ b/src/expr.ts @@ -964,6 +964,7 @@ export function resolveTemplate( let exprMap = retResolve as Array; for (let exprResolved of exprMap) { + let source = exprResolved.source; let value = exprResolved.value; let format = exprResolved.format; let strValue = ""; @@ -982,7 +983,8 @@ export function resolveTemplate( } if (strValue) { - template = template.replaceAll(exprResolved.source, strValue); + // console.log(exprResolved); + template = template.split(source).join(strValue); } } diff --git a/src/parsing.ts b/src/parsing.ts index 7a3c875..b53d692 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -73,10 +73,10 @@ function splitInputByComma(input: string) { // Split string by ',' but not by '\,' // let splitted = input.split(/(?lookbehind not support in Safari for now const dummy = "::::::tracker::::::"; - let temp = input.replaceAll("\\,", dummy); + let temp = input.split("\\,").join(dummy); let splitted = temp.split(","); for (let ind = 0; ind < splitted.length; ind++) { - splitted[ind] = splitted[ind].replaceAll(dummy, ","); + splitted[ind] = splitted[ind].split(dummy).join(","); } return splitted; } From 59477f728dae2185f217efa97a252bac45bfe177 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 24 Aug 2021 08:24:00 +0800 Subject: [PATCH 100/277] Fix using separator '\,' --- examples/TestDvField.md | 13 +++++++++++++ src/parsing.ts | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/examples/TestDvField.md b/examples/TestDvField.md index 5f0add1..34b5680 100644 --- a/examples/TestDvField.md +++ b/examples/TestDvField.md @@ -73,6 +73,19 @@ line: lineColor: green, red ``` +Multiple values seprated by '\,' +``` tracker +searchType: dvField +searchTarget: dataviewTarget3[0], dataviewTarget3[1] +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-31 +separator: '\,' +line: + title: dvField + lineColor: green, red +``` + Use custom multiple value separator ``` tracker searchType: dvField diff --git a/src/parsing.ts b/src/parsing.ts index b53d692..40926b5 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -1034,7 +1034,7 @@ export function getRenderInfoFromYaml( return retMultipleValueSparator; // errorMessage } multipleValueSparator = retMultipleValueSparator.map((sep) => { - if (sep === "comma") { + if (sep === "comma" || sep === "\\,") { return ","; } return sep; From f1958b73c112b040aec34db7022d174cb29d736f Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 24 Aug 2021 08:35:29 +0800 Subject: [PATCH 101/277] Set version to 1.10.2 --- manifest.json | 2 +- package.json | 2 +- versions.json | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 43774cc..8c35915 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.10.1", + "version": "1.10.2", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package.json b/package.json index 4cc4e3e..38c4609 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.10.1", + "version": "1.10.2", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index 944f15d..d97d431 100644 --- a/versions.json +++ b/versions.json @@ -20,5 +20,6 @@ "1.9.1": "0.9.12", "1.9.2": "0.9.12", "1.10.0": "0.9.12", - "1.10.1": "0.9.12" + "1.10.1": "0.9.12", + "1.10.2": "0.9.12" } From 99c368eb2e47626a7b57ca810061d338d86d370a Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 24 Aug 2021 09:10:27 +0800 Subject: [PATCH 102/277] Update documents --- README.md | 3 +++ docs/ReleaseNotes.md | 3 +++ 2 files changed, 6 insertions(+) diff --git a/README.md b/README.md index 11e55bf..ec97a29 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,9 @@ Version 1.10.0 Version 1.10.1 - Fixed 'failed to load plugin' on iOS +Version 1.10.2 +- Fixed plugin not rendering on some macOS machines + ## !!! Breaking Changes !!! From version 1.9.0, template variables, e.g. '{{sum}}', are deprecated. Instead, Tracker provide operators (+, -, *, /, %) and functions (dataset(), sum(), maxStreak(), ......etc) to help us do data processing. For users having code blocks from previous version, please replace '{{sum}}' by '{{sum()}}' or '{{sum(1)}}' by '{{sum(dataset(1))}}'. More information about the new expressions could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md). diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index ccc38dd..d9b96e1 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,8 @@ # Release Notes +## v1.10.2 +- Fixed plugin not rendering on some macOS machines + ## v1.10.1 - Fixed 'failed to load plugin' on iOS From 4457b761dad5c352a2e58f0a1e31413664a90748 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 24 Aug 2021 09:55:37 +0800 Subject: [PATCH 103/277] Remove tabs in examples --- examples/TestCalendar.md | 8 ++++---- examples/TestFileMeta.md | 4 ++-- examples/TestFrontmatter.md | 10 +++++----- examples/TestRegex.md | 8 ++++---- examples/TestRelativeStartEndDate.md | 2 +- examples/TestSpecifiedFiles.md | 2 +- examples/TestTimeValues.md | 2 +- 7 files changed, 18 insertions(+), 18 deletions(-) diff --git a/examples/TestCalendar.md b/examples/TestCalendar.md index e93c5bd..893fa3a 100644 --- a/examples/TestCalendar.md +++ b/examples/TestCalendar.md @@ -109,8 +109,8 @@ month: color: green headerMonthColor: orange dimNotInMonth: false - annotation: 💪,🧘‍♂️ - showAnnotationOfAllTargets: false + annotation: 💪,🧘‍♂️ + showAnnotationOfAllTargets: false ``` All targets @@ -126,8 +126,8 @@ month: color: green headerMonthColor: orange dimNotInMonth: false - annotation: 💪,🧘‍♂️ - showAnnotationOfAllTargets: true + annotation: 💪,🧘‍♂️ + showAnnotationOfAllTargets: true ``` Please also check those search targets in markdown files under folder 'diary'. diff --git a/examples/TestFileMeta.md b/examples/TestFileMeta.md index d1436a9..da7634b 100644 --- a/examples/TestFileMeta.md +++ b/examples/TestFileMeta.md @@ -7,8 +7,8 @@ folder: diary endDate: 2021-01-31 line: title: File Size Variation - yAxisLabel: Size - yAxisUnit: bytes + yAxisLabel: Size + yAxisUnit: bytes ``` Use file created dates (cDate) as x values diff --git a/examples/TestFrontmatter.md b/examples/TestFrontmatter.md index 1494036..f3eca7c 100644 --- a/examples/TestFrontmatter.md +++ b/examples/TestFrontmatter.md @@ -3,11 +3,11 @@ ## Deep Values deepValue: very: - very: - very: - very: - very: - deep: 27.4 + very: + very: + very: + very: + deep: 27.4 ``` tracker searchType: frontmatter searchTarget: deepValue.very.very.very.very.very.deep diff --git a/examples/TestRegex.md b/examples/TestRegex.md index 482bb15..9e8fc51 100644 --- a/examples/TestRegex.md +++ b/examples/TestRegex.md @@ -18,10 +18,10 @@ line: title: Email Occurencies yAxisLabel: Count lineColor: yellow - yAxisTickInterval: 1.0 - yAxisTickLabelFormat: i - yMin: 0 - yMax: 5 + yAxisTickInterval: 1.0 + yAxisTickLabelFormat: i + yMin: 0 + yMax: 5 ``` ``` tracker diff --git a/examples/TestRelativeStartEndDate.md b/examples/TestRelativeStartEndDate.md index aac55e0..4c3f0e4 100644 --- a/examples/TestRelativeStartEndDate.md +++ b/examples/TestRelativeStartEndDate.md @@ -10,5 +10,5 @@ line: title: PushUp yAxisLabel: Count lineColor: "#d65d0e" - yAxisTickInterval: 2 + yAxisTickInterval: 2 ``` \ No newline at end of file diff --git a/examples/TestSpecifiedFiles.md b/examples/TestSpecifiedFiles.md index 857180d..d9a4c06 100644 --- a/examples/TestSpecifiedFiles.md +++ b/examples/TestSpecifiedFiles.md @@ -22,5 +22,5 @@ xDataset: 0 pie: label: '{{sum(dataset(1))::i}},{{sum(dataset(2))::i}},{{sum(dataset(3))::i}},{{sum(dataset(4))::i}},{{sum(dataset(5))::i}}' data: '{{sum(dataset(1))}},{{sum(dataset(2))}}, {{sum(dataset(3))}}, {{sum(dataset(4))}},{{sum(dataset(5))}}' - dataColor: lightgray, firebrick, yellowgreen, lightblue, gray + dataColor: lightgray, firebrick, yellowgreen, lightblue, gray ``` \ No newline at end of file diff --git a/examples/TestTimeValues.md b/examples/TestTimeValues.md index 31a3994..52ea234 100644 --- a/examples/TestTimeValues.md +++ b/examples/TestTimeValues.md @@ -14,7 +14,7 @@ line: reverseYAxis: true lineColor: yellow, red showPoint: true - showLegend: true + showLegend: true ``` Sleep time separated by / from front matter From 0b35810149e7f2a7eb8729ddbff652999340fe62 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Wed, 25 Aug 2021 19:11:34 +0800 Subject: [PATCH 104/277] Allow using fitPanelWidth in output type month and pie --- src/month.ts | 30 ++++++++++++++++++++++++++++++ src/pie.ts | 30 ++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/src/month.ts b/src/month.ts index e4352c3..9b5a09d 100644 --- a/src/month.ts +++ b/src/month.ts @@ -33,6 +33,34 @@ interface DayInfo { annotation: string; } +function setChartScale( + _canvas: HTMLElement, + chartElements: ChartElements, + renderInfo: RenderInfo +) { + let canvas = d3.select(_canvas); + let svg = chartElements.svg; + let svgWidth = parseFloat(svg.attr("width")); + let svgHeight = parseFloat(svg.attr("height")); + svg.attr("width", null) + .attr("height", null) + .attr("viewBox", `0 0 ${svgWidth} ${svgHeight}`) + .attr("preserveAspectRatio", "xMidYMid meet"); + + if (renderInfo.fitPanelWidth) { + canvas.style("width", "100%"); + } else { + canvas.style( + "width", + (svgWidth * renderInfo.fixedScale).toString() + "px" + ); + canvas.style( + "height", + (svgHeight * renderInfo.fixedScale).toString() + "px" + ); + } +} + function toNextDataset(renderInfo: RenderInfo, monthInfo: MonthInfo): boolean { let datasetIds = monthInfo.dataset; if (datasetIds.length === 0) return false; // false if selected dataset not changed @@ -1127,4 +1155,6 @@ export function renderMonth( renderMonthHeader(canvas, chartElements, renderInfo, monthInfo, monthDate); renderMonthDays(canvas, chartElements, renderInfo, monthInfo, monthDate); + + setChartScale(canvas, chartElements, renderInfo); } diff --git a/src/pie.ts b/src/pie.ts index 46080a3..992cef6 100644 --- a/src/pie.ts +++ b/src/pie.ts @@ -17,6 +17,34 @@ import * as d3 from "d3"; import * as expr from "./expr"; import { pie } from "d3"; +function setChartScale( + _canvas: HTMLElement, + chartElements: ChartElements, + renderInfo: RenderInfo +) { + let canvas = d3.select(_canvas); + let svg = chartElements.svg; + let svgWidth = parseFloat(svg.attr("width")); + let svgHeight = parseFloat(svg.attr("height")); + svg.attr("width", null) + .attr("height", null) + .attr("viewBox", `0 0 ${svgWidth} ${svgHeight}`) + .attr("preserveAspectRatio", "xMidYMid meet"); + + if (renderInfo.fitPanelWidth) { + canvas.style("width", "100%"); + } else { + canvas.style( + "width", + (svgWidth * renderInfo.fixedScale).toString() + "px" + ); + canvas.style( + "height", + (svgHeight * renderInfo.fixedScale).toString() + "px" + ); + } +} + function createAreas( chartElements: ChartElements, canvas: HTMLElement, @@ -632,4 +660,6 @@ export function renderPieChart( if (pieInfo.showLegend) { renderLegend(canvas, chartElements, renderInfo, pieInfo); } + + setChartScale(canvas, chartElements, renderInfo); } From c9c46a7766b61a3894b0c6113e0a29e7b24ca65d Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Wed, 25 Aug 2021 19:13:06 +0800 Subject: [PATCH 105/277] Set version to 1.10.3 --- manifest.json | 2 +- package.json | 2 +- versions.json | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 8c35915..3d603d2 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.10.2", + "version": "1.10.3", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package.json b/package.json index 38c4609..7f3e322 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.10.2", + "version": "1.10.3", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index d97d431..9a9c9f3 100644 --- a/versions.json +++ b/versions.json @@ -21,5 +21,6 @@ "1.9.2": "0.9.12", "1.10.0": "0.9.12", "1.10.1": "0.9.12", - "1.10.2": "0.9.12" + "1.10.2": "0.9.12", + "1.10.3": "0.9.12" } From 91050fe5655f5f2c6985926b0eb6ca03920122c0 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Wed, 25 Aug 2021 19:16:27 +0800 Subject: [PATCH 106/277] Update documents --- README.md | 3 +++ docs/ReleaseNotes.md | 3 +++ 2 files changed, 6 insertions(+) diff --git a/README.md b/README.md index ec97a29..efc9dae 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,9 @@ Version 1.10.1 Version 1.10.2 - Fixed plugin not rendering on some macOS machines +Version 1.10.3 +- Allow using a parameter `fitPanelWidth` with the output type `month` and `pie` + ## !!! Breaking Changes !!! From version 1.9.0, template variables, e.g. '{{sum}}', are deprecated. Instead, Tracker provide operators (+, -, *, /, %) and functions (dataset(), sum(), maxStreak(), ......etc) to help us do data processing. For users having code blocks from previous version, please replace '{{sum}}' by '{{sum()}}' or '{{sum(1)}}' by '{{sum(dataset(1))}}'. More information about the new expressions could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md). diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index d9b96e1..9561271 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,8 @@ # Release Notes +## v1.10.3 +- Allow using a parameter `fitPanelWidth` with the output type `month` and `pie` + ## v1.10.2 - Fixed plugin not rendering on some macOS machines From ca0566dc56280b2bb3493bc4c1fa37270f6e84ab Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 27 Aug 2021 21:52:02 +0800 Subject: [PATCH 107/277] Fix the sizing and positioning of the chart tooltip --- src/data.ts | 2 - src/rendering.ts | 166 +++++++++++++++++++++++++++++------------------ 2 files changed, 103 insertions(+), 65 deletions(-) diff --git a/src/data.ts b/src/data.ts index 4ddd92f..66fb19c 100644 --- a/src/data.ts +++ b/src/data.ts @@ -567,7 +567,6 @@ export class RenderInfo { dataAreaSize: Size; margin: Margin; - tooltipSize: Size; fixedScale: number; fitPanelWidth: boolean; @@ -609,7 +608,6 @@ export class RenderInfo { this.dataAreaSize = new Size(300, 300); this.margin = new Margin(10, 10, 10, 10); // top, right, bottom, left - this.tooltipSize = new Size(90, 45); this.fixedScale = 1.0; this.fitPanelWidth = false; diff --git a/src/rendering.ts b/src/rendering.ts index 75cef80..4db7156 100644 --- a/src/rendering.ts +++ b/src/rendering.ts @@ -787,73 +787,113 @@ function renderPoints( } if (lineInfo.allowInspectData) { - let tooltip = chartElements.svg.append("g").style("opacity", 0); - let tooltipBg = tooltip - .append("rect") - .attr("width", renderInfo.tooltipSize.width) - .attr("height", renderInfo.tooltipSize.height) - .attr("class", "tracker-tooltip"); - let tooltipLabel = tooltip - .append("text") - .attr("width", renderInfo.tooltipSize.width) - .attr("height", renderInfo.tooltipSize.height) - .attr("class", "tracker-tooltip-label"); - let tooltipLabelDate = tooltipLabel - .append("tspan") - .attr("x", 4) - .attr("y", (renderInfo.tooltipSize.height / 5) * 2); - let tooltipLabelValue = tooltipLabel - .append("tspan") - .attr("x", 4) - .attr("y", (renderInfo.tooltipSize.height / 5) * 4); - - dots.on("mouseenter", function (event: any) { - // Date - tooltipLabelDate.text("date:" + d3.select(this).attr("date")); - // Value - let valueType = d3.select(this).attr("valueType"); - let strValue = d3.select(this).attr("value"); - if (valueType === "Time") { - let dayStart = window.moment("00:00", "HH:mm", true); - let tickTime = dayStart.add( - parseFloat(strValue), - "seconds" - ); - let dateValue = tickTime.format("HH:mm"); - tooltipLabelValue.text("value:" + dateValue); - } else { - tooltipLabelValue.text("value:" + strValue); - } - - const [x, y] = d3.pointer(event); - if (x < renderInfo.dataAreaSize.width / 2) { - tooltip.attr( - "transform", - "translate(" + - (x + renderInfo.tooltipSize.width * 1.3) + - "," + - (y - renderInfo.tooltipSize.height * 1.0) + - ")" - ); - } else { - tooltip.attr( - "transform", - "translate(" + - (x - renderInfo.tooltipSize.width * 0.0) + - "," + - (y - renderInfo.tooltipSize.height * 1.0) + - ")" - ); - } - - tooltip.transition().duration(200).style("opacity", 1); - }).on("mouseleave", function () { - tooltip.transition().duration(500).style("opacity", 0); - }); + renderTooltip(dots, chartElements, renderInfo); } } } +function renderTooltip( + targetElements: any, + chartElements: ChartElements, + renderInfo: RenderInfo +) { + let tooltip = chartElements.dataArea.append("svg").style("opacity", 0); + let tooltipBg = tooltip.append("rect").attr("x", 0).attr("y", 0); + let tooltipLabel = tooltip.append("text"); + let tooltipLabelDate = tooltipLabel + .append("tspan") + .attr("class", "tracker-tooltip-label"); + let tooltipLabelValue = tooltipLabel + .append("tspan") + .attr("class", "tracker-tooltip-label"); + + let xSpacing = 3; + let ySpacing = 3; + + targetElements + .on("mouseenter", function (event: any) { + const [x, y] = d3.pointer(event); + let tooltipBgWidth = 0; + let tooltipBgHeight = 0; + // Date + let labelDateText = "date: " + d3.select(this).attr("date"); + // labelDateText = x.toString();// debug + let labelDateSize = helper.measureTextSize( + labelDateText, + "tracker-tooltip-label" + ); + tooltipLabelDate.text(labelDateText); + if (labelDateSize.width > tooltipBgWidth) { + tooltipBgWidth = labelDateSize.width; + } + tooltipBgHeight += labelDateSize.height; + tooltipLabelDate.attr("x", xSpacing).attr("y", tooltipBgHeight); + + // Value + let labelValueText = "value: "; + let valueType = d3.select(this).attr("valueType"); + let strValue = d3.select(this).attr("value"); + // strValue += y.toString();//debug + if (valueType === "Time") { + let dayStart = window.moment("00:00", "HH:mm", true); + let tickTime = dayStart.add(parseFloat(strValue), "seconds"); + let dateValue = tickTime.format("HH:mm"); + labelValueText += dateValue; + tooltipLabelValue.text(labelValueText); + } else { + labelValueText += strValue; + tooltipLabelValue.text(labelValueText); + } + let labelValueSize = helper.measureTextSize( + labelValueText, + "tracker-tooltip-label" + ); + if (labelValueSize.width > tooltipBgWidth) { + tooltipBgWidth = labelValueSize.width; + } + tooltipBgHeight += ySpacing + labelValueSize.height; + tooltipLabelValue.attr("x", xSpacing).attr("y", tooltipBgHeight); + + tooltipBgWidth += 2 * xSpacing; + tooltipBgHeight += 2 * ySpacing; + tooltipLabel + .attr("width", tooltipBgWidth) + .attr("height", tooltipBgHeight); + + tooltipBg + .attr("width", tooltipBgWidth) + .attr("height", tooltipBgHeight) + .attr("class", "tracker-tooltip"); + + let tooltipPosX = x; + let tooltipPosY = y; + let tooltipXOffset = 12; + let tooltipYOffset = 12; + if ( + x + tooltipXOffset + tooltipBgWidth > + renderInfo.dataAreaSize.width + ) { + // move tooltip to left + tooltipPosX = x - tooltipBgWidth - tooltipXOffset; + } else { + // default at the right side + tooltipPosX = x + tooltipXOffset; + } + if (y - tooltipYOffset - tooltipBgHeight < 0) { + // down side + tooltipPosY = y + tooltipYOffset; + } else { + // default move to up side + tooltipPosY = y - tooltipYOffset - tooltipBgHeight; + } + tooltip.attr("x", tooltipPosX).attr("y", tooltipPosY); + tooltip.transition().duration(200).style("opacity", 1); + }) + .on("mouseleave", function () { + tooltip.transition().duration(500).style("opacity", 0); + }); +} + function renderBar( chartElements: ChartElements, renderInfo: RenderInfo, From cf7b8afb85eb103d4250365d27b62df864031a84 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 27 Aug 2021 23:26:27 +0800 Subject: [PATCH 108/277] Update documents --- README.md | 3 ++- docs/ReleaseNotes.md | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index efc9dae..a9c6b74 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,8 @@ Version 1.10.2 - Fixed plugin not rendering on some macOS machines Version 1.10.3 -- Allow using a parameter `fitPanelWidth` with the output type `month` and `pie` +- Allow using the parameter `fitPanelWidth` with the output type `month` and `pie` +- Fixed the resizing and positioning of the chart tooltip ## !!! Breaking Changes !!! diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index 9561271..814a40a 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,7 +1,8 @@ # Release Notes ## v1.10.3 -- Allow using a parameter `fitPanelWidth` with the output type `month` and `pie` +- Allow using the parameter `fitPanelWidth` with the output type `month` and `pie` +- Fixed the resizing and positioning of the chart tooltip ## v1.10.2 - Fixed plugin not rendering on some macOS machines From 437a856f1626a4c3723898360ac48b0a4ce0027a Mon Sep 17 00:00:00 2001 From: cgourlay Date: Sun, 29 Aug 2021 19:51:13 +0100 Subject: [PATCH 109/277] Fix typo in the description --- src/settings.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/settings.ts b/src/settings.ts index 81375be..75ed0a1 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -27,7 +27,7 @@ export class TrackerSettingTab extends PluginSettingTab { new Setting(containerEl) .setName("Default folder location") .setDesc( - "Files in this folder will be parsed and used as input data of the tracker plugin.\nYou can also override it using 'folder' argument int the tracker codeblock." + "Files in this folder will be parsed and used as input data of the tracker plugin.\nYou can also override it using 'folder' argument in the tracker codeblock." ) .addText((text) => text From 6768547ab08aca4eb158163e7a655417744a91f6 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 30 Aug 2021 11:35:02 +0800 Subject: [PATCH 110/277] Allow using regex in textValueMap --- src/helper.ts | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/helper.ts b/src/helper.ts index cc74735..a0649e9 100644 --- a/src/helper.ts +++ b/src/helper.ts @@ -337,6 +337,9 @@ export function parseFloatFromAny( toParse: any, textValueMap: TextValueMap = null ) { + // console.log("parseFloatFromAny"); + // console.log(toParse); + let value = null; let valueType = ValueType.Number; if (typeof toParse === "string") { @@ -363,17 +366,25 @@ export function parseFloatFromAny( let anyMatch = false; const keys = Object.keys(textValueMap) as Array; for (let key of keys) { - if (toParse === key) { - value = textValueMap[key]; - anyMatch = true; - break; + if (typeof key === "string") { + let regex = new RegExp(key, "gm"); + // console.log(toParse); + if ( + regex.test(toParse) && + Number.isNumber(textValueMap[key]) + ) { + let strReplacedValue = textValueMap[key].toString(); + toParse = toParse.replace(regex, strReplacedValue); + // console.log(toParse); + anyMatch = true; + break; + } } } - if (!anyMatch) { - value = parseFloat(toParse); - if (Number.isNaN(value)) { - value = null; - } + + value = parseFloat(toParse); + if (Number.isNaN(value)) { + value = null; } } else { value = parseFloat(toParse); From 74ce3dd0ddd32e99c70f24a523bb61207aefb7bf Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 30 Aug 2021 12:11:25 +0800 Subject: [PATCH 111/277] Set version to 1.10.4 --- manifest.json | 2 +- package.json | 2 +- versions.json | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 3d603d2..e285058 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.10.3", + "version": "1.10.4", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package.json b/package.json index 7f3e322..ae68025 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.10.3", + "version": "1.10.4", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index 9a9c9f3..c0d572d 100644 --- a/versions.json +++ b/versions.json @@ -22,5 +22,6 @@ "1.10.0": "0.9.12", "1.10.1": "0.9.12", "1.10.2": "0.9.12", - "1.10.3": "0.9.12" + "1.10.3": "0.9.12", + "1.10.4": "0.9.12" } From 18a6181d5a15c76739387501de2f6b6590b00936 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Mon, 30 Aug 2021 12:22:56 +0800 Subject: [PATCH 112/277] Correct an example for the right error message --- examples/ErrorMessages.md | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/ErrorMessages.md b/examples/ErrorMessages.md index fdf61ba..1274219 100644 --- a/examples/ErrorMessages.md +++ b/examples/ErrorMessages.md @@ -212,6 +212,7 @@ Invalid data range (data only contains 1 and null) ``` tracker searchType: tag searchTarget: meditation +folder: diary summary: template: '{{sum(normalize(dataset(0)))}}' ``` From bdd9017727311507f5d3984de0d5f9487ab14e10 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 31 Aug 2021 19:39:42 +0800 Subject: [PATCH 113/277] Update documents --- README.md | 4 ++++ docs/ReleaseNotes.md | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/README.md b/README.md index a9c6b74..34926a7 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,10 @@ Version 1.10.3 - Allow using the parameter `fitPanelWidth` with the output type `month` and `pie` - Fixed the resizing and positioning of the chart tooltip +Version 1.10.4 +- Allow using a regular expression as a key of the parameter `textValueMap` +- Fixed typo in plugin settings + ## !!! Breaking Changes !!! From version 1.9.0, template variables, e.g. '{{sum}}', are deprecated. Instead, Tracker provide operators (+, -, *, /, %) and functions (dataset(), sum(), maxStreak(), ......etc) to help us do data processing. For users having code blocks from previous version, please replace '{{sum}}' by '{{sum()}}' or '{{sum(1)}}' by '{{sum(dataset(1))}}'. More information about the new expressions could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md). diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index 814a40a..cdcbc57 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,9 @@ # Release Notes +## v1.10.4 +- Allow using a regular expression as a key of the parameter `textValueMap` +- Fixed typo in plugin settings + ## v1.10.3 - Allow using the parameter `fitPanelWidth` with the output type `month` and `pie` - Fixed the resizing and positioning of the chart tooltip From 564196ae4ecbbcb67afcffd79ee6cf336e1a6c9d Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 7 Sep 2021 22:18:19 +0800 Subject: [PATCH 114/277] Fix using time values in a table --- src/main.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main.ts b/src/main.ts index 699b33c..5a392bb 100644 --- a/src/main.ts +++ b/src/main.ts @@ -15,6 +15,7 @@ import { DataMap, CustomDatasetInfo, CollectingProcessInfo, + ValueType, } from "./data"; import * as collecting from "./collecting"; import { @@ -937,6 +938,9 @@ export default class Tracker extends Plugin { ); // console.log(retParse); if (retParse.value !== null) { + if (retParse.type === ValueType.Time) { + yDatasetQuery.valueType = ValueType.Time; + } let value = retParse.value; if ( indLine < xValues.length && @@ -968,6 +972,9 @@ export default class Tracker extends Plugin { ); // console.log(retParse); if (retParse.value !== null) { + if (retParse.type === ValueType.Time) { + yDatasetQuery.valueType = ValueType.Time; + } value = retParse.value; if ( indLine < xValues.length && From 3f3b554fb93fbdce2f9dbee369c4173c77e4d19b Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 10 Sep 2021 11:49:29 +0800 Subject: [PATCH 115/277] Add parameter shiftOnlyValueLargerThan --- src/data.ts | 23 ++++++++++++++++++----- src/parsing.ts | 16 ++++++++++++++++ src/rendering.ts | 8 ++++++-- 3 files changed, 40 insertions(+), 7 deletions(-) diff --git a/src/data.ts b/src/data.ts index 66fb19c..46fa250 100644 --- a/src/data.ts +++ b/src/data.ts @@ -68,7 +68,7 @@ export class Query { constructor(id: number, searchType: SearchType, searchTarget: string) { this.type = searchType; this.target = searchTarget; - this.separator = "";// separator to separate multiple values + this.separator = ""; // separator to separate multiple values this.id = id; this.accessor = -1; this.accessor1 = -1; @@ -336,14 +336,25 @@ export class Dataset implements IterableIterator { return this.endDate; } - public shift(shiftAmount: number) { + public shift(shiftAmount: number, doLargerthan: number) { + let anyShifted = false; for (let ind = 0; ind < this.values.length; ind++) { if (this.values[ind] !== null) { - this.values[ind] = this.values[ind] + shiftAmount; + if (doLargerthan === null) { + this.values[ind] = this.values[ind] + shiftAmount; + anyShifted = true; + } else { + if (this.values[ind] >= doLargerthan) { + this.values[ind] = this.values[ind] + shiftAmount; + anyShifted = true; + } + } } } - this.yMin = this.yMin + shiftAmount; - this.yMax = this.yMax + shiftAmount; + if (anyShifted) { + this.yMin = this.yMin + shiftAmount; + this.yMax = this.yMax + shiftAmount; + } } public setPenalty(penalty: number) { @@ -562,6 +573,7 @@ export class RenderInfo { accum: boolean[]; penalty: number[]; valueShift: number[]; + shiftOnlyValueLargerThan: number[]; valueType: string[]; // number/float, int, string, boolean, date, time, datetime textValueMap: TextValueMap; @@ -603,6 +615,7 @@ export class RenderInfo { this.accum = []; // false, accum values start from zero over days this.penalty = []; // null, use this value instead of null value this.valueShift = []; + this.shiftOnlyValueLargerThan = []; this.valueType = []; this.textValueMap = {}; diff --git a/src/parsing.ts b/src/parsing.ts index 40926b5..0ffa668 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -229,6 +229,8 @@ function getNumberArrayFromInput( defaultValue: number, allowNoValidValue: boolean ): Array | string { + console.log("getNumberArrayFromInput"); + let array: Array = []; let errorMessage = ""; let numValidValue = 0; @@ -1463,6 +1465,20 @@ export function getRenderInfoFromYaml( renderInfo.valueShift = retValueShift; // console.log(renderInfo.valueShift); + // shiftOnlyValueLargerThan + let retShiftOnlyValueLargerThan = getNumberArrayFromInput( + "shiftOnlyValueLargerThan", + yaml.shiftOnlyValueLargerThan, + numDatasets, + null, + true + ); + if (typeof retShiftOnlyValueLargerThan === "string") { + return retShiftOnlyValueLargerThan; + } + renderInfo.shiftOnlyValueLargerThan = retShiftOnlyValueLargerThan; + // console.log(renderInfo.shiftOnlyValueLargerThan); + // textValueMap if (typeof yaml.textValueMap !== "undefined") { let keys = getAvailableKeysOfClass(yaml.textValueMap); diff --git a/src/rendering.ts b/src/rendering.ts index 4db7156..543bcaa 100644 --- a/src/rendering.ts +++ b/src/rendering.ts @@ -223,8 +223,12 @@ export function render(canvas: HTMLElement, renderInfo: RenderInfo) { for (let dataset of renderInfo.datasets) { if (dataset.getQuery().usedAsXDataset) continue; // valueShift - if (renderInfo.valueShift[dataset.getId()] !== null) { - dataset.shift(renderInfo.valueShift[dataset.getId()]); + let shiftAmount = renderInfo.valueShift[dataset.getId()]; + if (shiftAmount !== null && shiftAmount !== 0) { + dataset.shift( + shiftAmount, + renderInfo.shiftOnlyValueLargerThan[dataset.getId()] + ); } // penalty if (renderInfo.penalty[dataset.getId()] !== null) { From 58eb41c2ea537a6a5c4a1fed0a0fcae5e9cc6812 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 10 Sep 2021 13:20:52 +0800 Subject: [PATCH 116/277] Fix measuring maxTickLabelWidth in a Y axis --- src/parsing.ts | 2 +- src/rendering.ts | 33 ++++++++++++++------------------- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/src/parsing.ts b/src/parsing.ts index 0ffa668..72272a0 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -229,7 +229,7 @@ function getNumberArrayFromInput( defaultValue: number, allowNoValidValue: boolean ): Array | string { - console.log("getNumberArrayFromInput"); + // console.log("getNumberArrayFromInput"); let array: Array = []; let errorMessage = ""; diff --git a/src/rendering.ts b/src/rendering.ts index 543bcaa..65e80a2 100644 --- a/src/rendering.ts +++ b/src/rendering.ts @@ -605,25 +605,20 @@ function renderYAxis( } // Get max tick label width - let yTickLabelFormat = getYTickLabelFormat( - yLower, - yUpper, - yAxisTickLabelFormat, - valueIsTime - ); - - let yLowerLabelSize = helper.measureTextSize( - yTickLabelFormat(yLower), - "tracker-axis-label" - ); - let yUpperLabelSize = helper.measureTextSize( - yTickLabelFormat(yUpper), - "tracker-axis-label" - ); - let maxTickLabelWidth = Math.max( - yLowerLabelSize.width, - yUpperLabelSize.width - ); + let maxTickLabelWidth = 0; + for (let label of yAxisTickLabels) { + // console.log(label.textContent); + if (label.textContent) { + let labelSize = helper.measureTextSize( + label.textContent, + "tracker-axis-label" + ); + if (labelSize.width > maxTickLabelWidth) { + maxTickLabelWidth = labelSize.width; + } + } + } + // console.log(maxTickLabelWidth); if (yAxisUnitText !== "") { yAxisLabelText += " (" + yAxisUnitText + ")"; From d3f3190e581e3fd99a4a696a40e2765f65133e12 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sat, 11 Sep 2021 17:03:30 +0800 Subject: [PATCH 117/277] Fix the position of elements in the legend --- src/rendering.ts | 120 +++++++++++++++++++++-------------------------- 1 file changed, 53 insertions(+), 67 deletions(-) diff --git a/src/rendering.ts b/src/rendering.ts index 65e80a2..bdfed31 100644 --- a/src/rendering.ts +++ b/src/rendering.ts @@ -1256,8 +1256,6 @@ function renderLegend( }); } } else if (chartInfo.legendOrientation === "horizontal") { - let currRenderPosX = 0.0; - let currRenderPosX2 = 0.0; if (chartInfo.GetGraphType() === GraphType.Line) { // lines legend @@ -1266,36 +1264,30 @@ function renderLegend( .enter() .append("line") .attr("x1", function (name: string, i: number) { - let numElemsExcluded = xDatasetIds.filter((id) => { - return id < i; - }).length; - i = i - numElemsExcluded; - if (i === 0) { - currRenderPosX = firstMarkerX; - } else { - currRenderPosX += - nameSizes[i].width + - xSpacing + - markerWidth + - xSpacing; + let posX = xSpacing; + for (let [ind, size] of nameSizes.entries()) { + if (xDatasetIds.includes(i)) continue; + if (ind < i) { + posX += + markerWidth + xSpacing + size.width + xSpacing; + } else { + break; + } } - return currRenderPosX; + return posX; }) .attr("x2", function (name: string, i: number) { - let numElemsExcluded = xDatasetIds.filter((id) => { - return id < i; - }).length; - i = i - numElemsExcluded; - if (i === 0) { - currRenderPosX2 = firstMarkerX + markerWidth; - } else { - currRenderPosX2 += - nameSizes[i].width + - xSpacing + - markerWidth + - xSpacing; + let posX = xSpacing + markerWidth; + for (let [ind, size] of nameSizes.entries()) { + if (xDatasetIds.includes(i)) continue; + if (ind < i) { + posX += + xSpacing + size.width + xSpacing + markerWidth; + } else { + break; + } } - return currRenderPosX2; + return posX; }) .attr("y1", firstMarkerY) .attr("y2", firstMarkerY) @@ -1305,27 +1297,27 @@ function renderLegend( }); // points - currRenderPosX = 0.0; legend .selectAll("markers") .data(names) .enter() .append("circle") .attr("cx", function (name: string, i: number) { - let numElemsExcluded = xDatasetIds.filter((id) => { - return id < i; - }).length; - i = i - numElemsExcluded; - if (i === 0) { - currRenderPosX = firstMarkerX + markerWidth / 2.0; - } else { - currRenderPosX += - nameSizes[i].width + - xSpacing + - markerWidth + - xSpacing; + let posX = xSpacing + markerWidth / 2.0; + for (let [ind, size] of nameSizes.entries()) { + if (xDatasetIds.includes(i)) continue; + if (ind < i) { + posX += + markerWidth / 2.0 + + xSpacing + + size.width + + xSpacing + + markerWidth / 2.0; + } else { + break; + } } - return currRenderPosX; + return posX; }) .attr("cy", firstMarkerY) .attr("r", function (name: string, i: number) { @@ -1341,7 +1333,6 @@ function renderLegend( }); } else if (chartInfo.GetGraphType() === GraphType.Bar) { // bars - currRenderPosX = 0.0; legend .selectAll("markers") .data( @@ -1352,20 +1343,17 @@ function renderLegend( .enter() .append("rect") .attr("x", function (name: string, i: number) { - let numElemsExcluded = xDatasetIds.filter((id) => { - return id < i; - }).length; - i = i - numElemsExcluded; - if (i === 0) { - currRenderPosX = firstMarkerX; - } else { - currRenderPosX += - nameSizes[i].width + - xSpacing + - markerWidth + - xSpacing; + let posX = xSpacing; + for (let [ind, size] of nameSizes.entries()) { + if (xDatasetIds.includes(i)) continue; + if (ind < i) { + posX += + markerWidth + xSpacing + size.width + xSpacing; + } else { + break; + } } - return currRenderPosX; + return posX; }) .attr("y", firstMarkerY - nameHeight / 2.0) .attr("width", markerWidth) @@ -1377,24 +1365,22 @@ function renderLegend( } // names - currRenderPosX = 0.0; let nameLabels = legend .selectAll("labels") .data(names) .enter() .append("text") .attr("x", function (name: string, i: number) { - let numElemsExcluded = xDatasetIds.filter((id) => { - return id < i; - }).length; - i = i - numElemsExcluded; - if (i === 0) { - currRenderPosX = firstLabelX; - } else { - currRenderPosX += - nameSizes[i].width + xSpacing + markerWidth + xSpacing; + let posX = xSpacing + markerWidth + xSpacing; + for (let [ind, size] of nameSizes.entries()) { + if (xDatasetIds.includes(i)) continue; + if (ind < i) { + posX += size.width + xSpacing + markerWidth + xSpacing; + } else { + break; + } } - return currRenderPosX; + return posX; }) .attr("y", firstLabelY) .text(function (name: string, i: number) { From ad25bf20b63954f4b1a75272f5754d6100c7a046 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sat, 11 Sep 2021 17:09:22 +0800 Subject: [PATCH 118/277] Fix the position of elements in the legend for custom xDataset --- src/rendering.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/rendering.ts b/src/rendering.ts index bdfed31..2d62188 100644 --- a/src/rendering.ts +++ b/src/rendering.ts @@ -1266,7 +1266,7 @@ function renderLegend( .attr("x1", function (name: string, i: number) { let posX = xSpacing; for (let [ind, size] of nameSizes.entries()) { - if (xDatasetIds.includes(i)) continue; + if (xDatasetIds.includes(ind)) continue; if (ind < i) { posX += markerWidth + xSpacing + size.width + xSpacing; @@ -1279,7 +1279,7 @@ function renderLegend( .attr("x2", function (name: string, i: number) { let posX = xSpacing + markerWidth; for (let [ind, size] of nameSizes.entries()) { - if (xDatasetIds.includes(i)) continue; + if (xDatasetIds.includes(ind)) continue; if (ind < i) { posX += xSpacing + size.width + xSpacing + markerWidth; @@ -1305,7 +1305,7 @@ function renderLegend( .attr("cx", function (name: string, i: number) { let posX = xSpacing + markerWidth / 2.0; for (let [ind, size] of nameSizes.entries()) { - if (xDatasetIds.includes(i)) continue; + if (xDatasetIds.includes(ind)) continue; if (ind < i) { posX += markerWidth / 2.0 + @@ -1345,7 +1345,7 @@ function renderLegend( .attr("x", function (name: string, i: number) { let posX = xSpacing; for (let [ind, size] of nameSizes.entries()) { - if (xDatasetIds.includes(i)) continue; + if (xDatasetIds.includes(ind)) continue; if (ind < i) { posX += markerWidth + xSpacing + size.width + xSpacing; @@ -1373,7 +1373,7 @@ function renderLegend( .attr("x", function (name: string, i: number) { let posX = xSpacing + markerWidth + xSpacing; for (let [ind, size] of nameSizes.entries()) { - if (xDatasetIds.includes(i)) continue; + if (xDatasetIds.includes(ind)) continue; if (ind < i) { posX += size.width + xSpacing + markerWidth + xSpacing; } else { From 66dc3984918f6a81c5022adce6ba082e2e942d0e Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sat, 11 Sep 2021 17:37:19 +0800 Subject: [PATCH 119/277] Update documents --- README.md | 3 +++ docs/InputParameters.md | 1 + docs/ReleaseNotes.md | 3 +++ 3 files changed, 7 insertions(+) diff --git a/README.md b/README.md index 34926a7..2945379 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,9 @@ Version 1.10.3 Version 1.10.4 - Allow using a regular expression as a key of the parameter `textValueMap` +- Allow using a relative date value in `initMonth` in the month view +- Add a parameter `shiftOnlyValueLargerThan` to determine when to do `valueShift` +- Fixed bugs reported by users - Fixed typo in plugin settings ## !!! Breaking Changes !!! diff --git a/docs/InputParameters.md b/docs/InputParameters.md index cddcc93..5a35949 100644 --- a/docs/InputParameters.md +++ b/docs/InputParameters.md @@ -39,6 +39,7 @@ These key-value pairs are placed under the root of the code block. | `accum` | Accumulatively sum the values over time (true\|false) | 1~NT | false | | `penalty` | Value to use if the search target is missing on the day | 1~NT | | | `valueShift` | Amount to shift for each collected value | 1~NT | 0 | +| `shiftOnlyValueLargerThan` | Do `valueShift` only if the value is larger then the specifed one | 1~NT | null | | `valueType` | Not implemented yet | 1~NT | | | `textValueMap` | A container key for multiple text-value mapping | | | | `fixedScale` | Uniform scaling factor to the graph dimensions | 1 | 1.0 | diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index cdcbc57..5c6bc26 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -2,6 +2,9 @@ ## v1.10.4 - Allow using a regular expression as a key of the parameter `textValueMap` +- Allow using a relative date value in `initMonth` in the month view +- Add a parameter `shiftOnlyValueLargerThan` to determine when to do `valueShift` +- Fixed bugs reported by users - Fixed typo in plugin settings ## v1.10.3 From d0c2f2644be21c7b8669cc30924e4e352ddd7e16 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sat, 11 Sep 2021 18:48:13 +0800 Subject: [PATCH 120/277] Set version to 1.10.5 --- manifest.json | 2 +- package.json | 2 +- versions.json | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index e285058..6c2a71c 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.10.4", + "version": "1.10.5", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package.json b/package.json index ae68025..4faef08 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.10.4", + "version": "1.10.5", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index c0d572d..d3efe8e 100644 --- a/versions.json +++ b/versions.json @@ -23,5 +23,6 @@ "1.10.1": "0.9.12", "1.10.2": "0.9.12", "1.10.3": "0.9.12", - "1.10.4": "0.9.12" + "1.10.4": "0.9.12", + "1.10.5": "0.9.12" } From 9baee06e1c9276e254251e510dca6adaa53c5aa6 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sat, 11 Sep 2021 18:51:39 +0800 Subject: [PATCH 121/277] Allow using a relative date value in initMonth in month view --- src/month.ts | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/month.ts b/src/month.ts index 9b5a09d..b2285ad 100644 --- a/src/month.ts +++ b/src/month.ts @@ -1139,15 +1139,20 @@ export function renderMonth( let monthDate: Moment = null; if (monthInfo.initMonth) { - let initMonth = window.moment(monthInfo.initMonth, "YYYY-MM", true); - // console.log(initMonth); - if (initMonth.isValid()) { - monthDate = initMonth; - } else { - return "Invalid initMonth"; + monthDate = helper.getDateByDurationToToday( + monthInfo.initMonth, + renderInfo.dateFormat + ); + if (!monthDate) { + let initMonth = window.moment(monthInfo.initMonth, "YYYY-MM", true); + // console.log(initMonth); + if (initMonth.isValid()) { + monthDate = initMonth; + } else { + return "Invalid initMonth"; + } } } else { - let today = window.moment(); monthDate = renderInfo.datasets.getDates().last(); } if (!monthDate) return; From 0fa726e8232e84d0a9ee71c3c5d71abab497508d Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sat, 11 Sep 2021 18:52:22 +0800 Subject: [PATCH 122/277] Update documents and examples --- README.md | 4 +++- docs/ReleaseNotes.md | 4 +++- examples/TestCalendar.md | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2945379..cb84b02 100644 --- a/README.md +++ b/README.md @@ -31,11 +31,13 @@ Version 1.10.3 Version 1.10.4 - Allow using a regular expression as a key of the parameter `textValueMap` -- Allow using a relative date value in `initMonth` in the month view - Add a parameter `shiftOnlyValueLargerThan` to determine when to do `valueShift` - Fixed bugs reported by users - Fixed typo in plugin settings +Version 1.10.5 +- Allow using a relative date value in `initMonth` in the month view + ## !!! Breaking Changes !!! From version 1.9.0, template variables, e.g. '{{sum}}', are deprecated. Instead, Tracker provide operators (+, -, *, /, %) and functions (dataset(), sum(), maxStreak(), ......etc) to help us do data processing. For users having code blocks from previous version, please replace '{{sum}}' by '{{sum()}}' or '{{sum(1)}}' by '{{sum(dataset(1))}}'. More information about the new expressions could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md). diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index 5c6bc26..c085aca 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,8 +1,10 @@ # Release Notes +## v1.10.5 +- Allow using a relative date value in `initMonth` in the month view + ## v1.10.4 - Allow using a regular expression as a key of the parameter `textValueMap` -- Allow using a relative date value in `initMonth` in the month view - Add a parameter `shiftOnlyValueLargerThan` to determine when to do `valueShift` - Fixed bugs reported by users - Fixed typo in plugin settings diff --git a/examples/TestCalendar.md b/examples/TestCalendar.md index 893fa3a..df752f4 100644 --- a/examples/TestCalendar.md +++ b/examples/TestCalendar.md @@ -72,6 +72,46 @@ summary: template: "minDate: {{minDate()}}\nminValue: {{min()}}\nmaxDate: {{maxDate()}}\nmaxValue: {{max()}}" ``` +### initMonth + +Specify the initial month in YYYY-MM format +``` tracker +searchType: tag +searchTarget: exercise-pushup +datasetName: PushUp +folder: diary +month: + startWeekOn: + threshold: 40 + color: green + headerMonthColor: orange + dimNotInMonth: false + todayRingColor: orange + selectedRingColor: steelblue + circleColorByValue: true + showSelectedValue: true + initMonth: 2021-09 +``` + +Specify the initial month by relative date +``` tracker +searchType: tag +searchTarget: exercise-pushup +datasetName: PushUp +folder: diary +month: + startWeekOn: + threshold: 40 + color: green + headerMonthColor: orange + dimNotInMonth: false + todayRingColor: orange + selectedRingColor: steelblue + circleColorByValue: true + showSelectedValue: true + initMonth: -1M +``` + ## Multiple targets 1. Use parameter `datasetName` to specify the name of each dataset 2. Use parameter `dataset` to include dataset we are going to view From 1f780200a8c5ee95b794f230ca8084830c9c872a Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sun, 12 Sep 2021 10:27:56 +0800 Subject: [PATCH 123/277] Fix null scaledValue showing color in the month view --- src/month.ts | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/month.ts b/src/month.ts index b2285ad..73af68d 100644 --- a/src/month.ts +++ b/src/month.ts @@ -602,8 +602,8 @@ function renderMonthDays( helper.dateToStr(curDate, renderInfo.dateFormat), renderInfo.dateFormat ); - if (curDate.format("YYYY-MM-DD") === "2021-01-02") { - logToConsole = false; // Change this to do dubugging + if (curDate.format("YYYY-MM-DD") === "2021-09-13") { + logToConsole = true; // Change this to do dubugging } if (monthInfo.startWeekOn.toLowerCase() === "mon") { @@ -640,7 +640,6 @@ function renderMonthDays( if (logToConsole) { console.log(dataset); console.log(helper.dateToStr(curDate, renderInfo.dateFormat)); - console.log(dataset.getValue(window.moment("2021-01-02"))); console.log(curValue); } @@ -672,9 +671,11 @@ function renderMonthDays( scaledValue = (curValue - yMin) / (yMax - yMin); } } - // console.log(yMin); - // console.log(yMax); - // console.log(scaledValue); + if (logToConsole) { + console.log(yMin); + console.log(yMax); + console.log(scaledValue); + } // streakIn and streakOut let nextValue = dataset.getValue(curDate, 1); @@ -745,7 +746,7 @@ function renderMonthDays( logToConsole = false; } } - // console.log(daysInMonthView); + console.log(daysInMonthView); // console.log(daysInMonthView.filter(function (d: DayInfo) { // return d.streakIn; // })); @@ -803,7 +804,7 @@ function renderMonthDays( streakColor )(d.scaledValue * 0.8 + 0.2); } else { - return streakColor; + return "none"; } } return "none"; @@ -850,7 +851,7 @@ function renderMonthDays( streakColor )(d.scaledValue * 0.8 + 0.2); } else { - return streakColor; + return "none"; } } return "none"; @@ -900,7 +901,7 @@ function renderMonthDays( // console.log(scaledColor); return scaledColor; } else { - return circleColor; + return "none"; } } return "none"; From 310bafc8bf65ad39155afa90644d1f07c0207136 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sun, 12 Sep 2021 10:34:34 +0800 Subject: [PATCH 124/277] Disable logToConsole in month view --- src/month.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/month.ts b/src/month.ts index 73af68d..d4eba3f 100644 --- a/src/month.ts +++ b/src/month.ts @@ -603,7 +603,7 @@ function renderMonthDays( renderInfo.dateFormat ); if (curDate.format("YYYY-MM-DD") === "2021-09-13") { - logToConsole = true; // Change this to do dubugging + logToConsole = false; // Change this to do dubugging } if (monthInfo.startWeekOn.toLowerCase() === "mon") { @@ -746,7 +746,7 @@ function renderMonthDays( logToConsole = false; } } - console.log(daysInMonthView); + // console.log(daysInMonthView); // console.log(daysInMonthView.filter(function (d: DayInfo) { // return d.streakIn; // })); From a26d84edd12dcbb5f46f6c52641e4ad6e8b28baa Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sun, 12 Sep 2021 10:36:39 +0800 Subject: [PATCH 125/277] Set version to 1.10.6 --- manifest.json | 2 +- package.json | 2 +- versions.json | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 6c2a71c..0e1e60c 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.10.5", + "version": "1.10.6", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package.json b/package.json index 4faef08..8d29e07 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.10.5", + "version": "1.10.6", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index d3efe8e..08d0e18 100644 --- a/versions.json +++ b/versions.json @@ -24,5 +24,6 @@ "1.10.2": "0.9.12", "1.10.3": "0.9.12", "1.10.4": "0.9.12", - "1.10.5": "0.9.12" + "1.10.5": "0.9.12", + "1.10.6": "0.9.12" } From 06a8f0c55df8883ad3fffe40232ae526c3c91c05 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sun, 12 Sep 2021 13:54:24 +0800 Subject: [PATCH 126/277] Update documents --- README.md | 3 +++ docs/ReleaseNotes.md | 3 +++ 2 files changed, 6 insertions(+) diff --git a/README.md b/README.md index cb84b02..54267da 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,9 @@ Version 1.10.4 Version 1.10.5 - Allow using a relative date value in `initMonth` in the month view +Version 1.10.6 +- Fix the coloring for missing data in the month view + ## !!! Breaking Changes !!! From version 1.9.0, template variables, e.g. '{{sum}}', are deprecated. Instead, Tracker provide operators (+, -, *, /, %) and functions (dataset(), sum(), maxStreak(), ......etc) to help us do data processing. For users having code blocks from previous version, please replace '{{sum}}' by '{{sum()}}' or '{{sum(1)}}' by '{{sum(dataset(1))}}'. More information about the new expressions could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md). diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index c085aca..202dc37 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,8 @@ # Release Notes +## v1.10.6 +- Fix the coloring for missing data in the month view + ## v1.10.5 - Allow using a relative date value in `initMonth` in the month view From e69d751b7d449c3aa1cef5665af115340e376df8 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sun, 12 Sep 2021 19:07:48 +0800 Subject: [PATCH 127/277] Fix typo --- README.md | 2 +- docs/ReleaseNotes.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 54267da..73cd1dd 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ Version 1.10.5 - Allow using a relative date value in `initMonth` in the month view Version 1.10.6 -- Fix the coloring for missing data in the month view +- Fixed the coloring for missing data in the month view ## !!! Breaking Changes !!! diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index 202dc37..f06ba35 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,7 +1,7 @@ # Release Notes ## v1.10.6 -- Fix the coloring for missing data in the month view +- Fixed the coloring for missing data in the month view ## v1.10.5 - Allow using a relative date value in `initMonth` in the month view From 3810a63ce71502173389ecfc6438f0977b03a25a Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Thu, 16 Sep 2021 10:46:38 +0800 Subject: [PATCH 128/277] Replace emoji img tag by emoji --- src/helper.ts | 19 +++++++++++++++++++ src/parsing.ts | 11 +++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/helper.ts b/src/helper.ts index a0649e9..aad7c85 100644 --- a/src/helper.ts +++ b/src/helper.ts @@ -332,6 +332,25 @@ export function trimByChar(str: string, char: string) { : str.substring(first, str.length - last); } +export function replaceEmojiImgTagByEmoji(input: string) { + if (input === null) return null; + + // ]*?alt\s*=\s*[""']?(?[^'"" >]+?)[ '""][^>]*?> + let strRegex = + ']*?alt\\s*=\\s*[""\']?(?[^\'"" >]+?)[ \'""][^>]*?>'; + // console.log(strRegex); + let regex = new RegExp(strRegex, "g"); + + let output = input.replace(regex, (...args) => { + let groups = args[args.length - 1]; + if (groups && groups.emoji) { + return groups.emoji.trim(); + } + return ""; + }); + + return output; +} // Parsing export function parseFloatFromAny( toParse: any, diff --git a/src/parsing.ts b/src/parsing.ts index 72272a0..16ba62e 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -543,6 +543,10 @@ function getStringArrayFromInput( return errorMessage; } + for (let ind = 0; ind < array.length; ind++) { + array[ind] = helper.replaceEmojiImgTagByEmoji(array[ind]); + } + return array; } @@ -631,6 +635,10 @@ function getStringArray(name: string, input: any): Array | string { return errorMessage; } + for (let ind = 0; ind < strArray.length; ind++) { + strArray[ind] = helper.replaceEmojiImgTagByEmoji(strArray[ind]); + } + return strArray; } @@ -943,6 +951,9 @@ export function getRenderInfoFromYaml( } else { errorMessage = "Invalid search target (searchTarget)"; } + for (let ind = 0; ind < searchTarget.length; ind++) { + searchTarget[ind] = helper.replaceEmojiImgTagByEmoji(searchTarget[ind]); + } // console.log(searchTarget); if (errorMessage !== "") { From af0711a86508867dc9bbc5c66768f567848a0b12 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Thu, 16 Sep 2021 10:48:33 +0800 Subject: [PATCH 129/277] Set version to 1.10.7 --- manifest.json | 2 +- package.json | 2 +- versions.json | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 0e1e60c..c298533 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.10.6", + "version": "1.10.7", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package.json b/package.json index 8d29e07..42574b5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.10.6", + "version": "1.10.7", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index 08d0e18..c0ea03d 100644 --- a/versions.json +++ b/versions.json @@ -25,5 +25,6 @@ "1.10.3": "0.9.12", "1.10.4": "0.9.12", "1.10.5": "0.9.12", - "1.10.6": "0.9.12" + "1.10.6": "0.9.12", + "1.10.7": "0.9.12" } From cd870af44bd59796f9fdd1bb9eb16add0fa80ca1 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Thu, 16 Sep 2021 11:11:17 +0800 Subject: [PATCH 130/277] Rename function replaceEmojiImgTagByEmoji to replaceImgTagByAlt --- src/helper.ts | 2 +- src/parsing.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/helper.ts b/src/helper.ts index aad7c85..7523e62 100644 --- a/src/helper.ts +++ b/src/helper.ts @@ -332,7 +332,7 @@ export function trimByChar(str: string, char: string) { : str.substring(first, str.length - last); } -export function replaceEmojiImgTagByEmoji(input: string) { +export function replaceImgTagByAlt(input: string) { if (input === null) return null; // ]*?alt\s*=\s*[""']?(?[^'"" >]+?)[ '""][^>]*?> diff --git a/src/parsing.ts b/src/parsing.ts index 16ba62e..38e46ca 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -544,7 +544,7 @@ function getStringArrayFromInput( } for (let ind = 0; ind < array.length; ind++) { - array[ind] = helper.replaceEmojiImgTagByEmoji(array[ind]); + array[ind] = helper.replaceImgTagByAlt(array[ind]); } return array; @@ -636,7 +636,7 @@ function getStringArray(name: string, input: any): Array | string { } for (let ind = 0; ind < strArray.length; ind++) { - strArray[ind] = helper.replaceEmojiImgTagByEmoji(strArray[ind]); + strArray[ind] = helper.replaceImgTagByAlt(strArray[ind]); } return strArray; @@ -952,7 +952,7 @@ export function getRenderInfoFromYaml( errorMessage = "Invalid search target (searchTarget)"; } for (let ind = 0; ind < searchTarget.length; ind++) { - searchTarget[ind] = helper.replaceEmojiImgTagByEmoji(searchTarget[ind]); + searchTarget[ind] = helper.replaceImgTagByAlt(searchTarget[ind]); } // console.log(searchTarget); From 494a6cc58922a0686610178a5bd8f73a17695f9d Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 17 Sep 2021 21:36:40 +0800 Subject: [PATCH 131/277] Use function replaceImgTagByAlt on YAML single value fields --- src/parsing.ts | 273 ++++++++++++++++++++++++++----------------------- 1 file changed, 143 insertions(+), 130 deletions(-) diff --git a/src/parsing.ts b/src/parsing.ts index 38e46ca..4f5037e 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -373,6 +373,15 @@ function getNumberArrayFromInput( return array; } +function getStringFromInput(input: any, defaultValue: string): string { + if (typeof input === "string") { + return helper.replaceImgTagByAlt(input); + } else if (typeof input === "number") { + return input.toString(); + } + return defaultValue; +} + function getStringArrayFromInput( name: string, input: any, @@ -648,24 +657,25 @@ function parseCommonChartInfo(yaml: any, renderInfo: CommonChartInfo) { // single value, use default value if no value from YAML if (yaml) { // title - if (typeof yaml.title === "string") { - renderInfo.title = yaml.title; - } + renderInfo.title = getStringFromInput(yaml?.title, renderInfo.title); // xAxisLabel - if (typeof yaml.xAxisLabel === "string") { - renderInfo.xAxisLabel = yaml.xAxisLabel; - } + renderInfo.xAxisLabel = getStringFromInput( + yaml?.xAxisLabel, + renderInfo.xAxisLabel + ); // xAxisColor - if (typeof yaml.xAxisColor === "string") { - renderInfo.xAxisColor = yaml.xAxisColor; - } + renderInfo.xAxisColor = getStringFromInput( + yaml?.xAxisColor, + renderInfo.xAxisColor + ); // xAxisLabelColor - if (typeof yaml.xAxisLabelColor === "string") { - renderInfo.xAxisLabelColor = yaml.xAxisLabelColor; - } + renderInfo.xAxisLabelColor = getStringFromInput( + yaml?.xAxisLabelColor, + renderInfo.xAxisLabelColor + ); // allowInspectData if (typeof yaml.allowInspectData === "boolean") { @@ -706,14 +716,16 @@ function parseCommonChartInfo(yaml: any, renderInfo: CommonChartInfo) { // console.log(renderInfo.legendOrientation); // legendBgColor - if (typeof yaml.legendBgColor === "string") { - renderInfo.legendBgColor = yaml.legendBgColor; - } + renderInfo.legendBgColor = getStringFromInput( + yaml?.legendBgColor, + renderInfo.legendBgColor + ); // legendBorderColor - if (typeof yaml.legendBorderColor === "string") { - renderInfo.legendBorderColor = yaml.legendBorderColor; - } + renderInfo.legendBorderColor = getStringFromInput( + yaml?.legendBorderColor, + renderInfo.legendBorderColor + ); } // yAxisLabel @@ -789,11 +801,10 @@ function parseCommonChartInfo(yaml: any, renderInfo: CommonChartInfo) { // console.log(renderInfo.yAxisUnit); // xAxisTickInterval - if (typeof yaml?.xAxisTickInterval === "string") { - renderInfo.xAxisTickInterval = yaml.xAxisTickInterval; - } else if (typeof yaml?.xAxisTickInterval === "number") { - renderInfo.xAxisTickInterval = yaml.xAxisTickInterval.toString(); - } + renderInfo.xAxisTickInterval = getStringFromInput( + yaml?.xAxisTickInterval, + renderInfo.xAxisTickInterval + ); // console.log(renderInfo.xAxisTickInterval); // yAxisTickInterval @@ -815,9 +826,10 @@ function parseCommonChartInfo(yaml: any, renderInfo: CommonChartInfo) { // console.log(renderInfo.yAxisTickInterval); // xAxisTickLabelFormat - if (typeof yaml?.xAxisTickLabelFormat === "string") { - renderInfo.xAxisTickLabelFormat = yaml.xAxisTickLabelFormat; - } + renderInfo.xAxisTickLabelFormat = getStringFromInput( + yaml?.xAxisTickLabelFormat, + renderInfo.xAxisTickLabelFormat + ); // console.log(renderInfo.xAxisTickLabelFormat); // yAxisTickLabelFormat @@ -1228,13 +1240,10 @@ export function getRenderInfoFromYaml( // console.log(renderInfo.fileContainsLinkedFiles); // fileMultiplierAfterLink - if (typeof yaml.fileMultiplierAfterLink === "string") { - renderInfo.fileMultiplierAfterLink = yaml.fileMultiplierAfterLink; - } - if (typeof yaml.fileMultiplierAfterLink === "number") { - renderInfo.fileMultiplierAfterLink = - yaml.fileMultiplierAfterLink.toString(); - } + renderInfo.fileMultiplierAfterLink = getStringFromInput( + yaml?.fileMultiplierAfterLink, + renderInfo.fileMultiplierAfterLink + ); // console.log(renderInfo.fileMultiplierAfterLink); // Date format @@ -1253,14 +1262,16 @@ export function getRenderInfoFromYaml( // console.log("renderInfo dateFormat: " + renderInfo.dateFormat); // Date format prefix - if (typeof yaml.dateFormatPrefix === "string") { - renderInfo.dateFormatPrefix = yaml.dateFormatPrefix; - } + renderInfo.dateFormatPrefix = getStringFromInput( + yaml?.dateFormatPrefix, + renderInfo.dateFormatPrefix + ); // Date fromat suffix - if (typeof yaml.dateFormatSuffix === "string") { - renderInfo.dateFormatSuffix = yaml.dateFormatSuffix; - } + renderInfo.dateFormatSuffix = getStringFromInput( + yaml?.dateFormatSuffix, + renderInfo.dateFormatSuffix + ); // startDate, endDate // console.log("Parsing startDate"); @@ -1554,9 +1565,10 @@ export function getRenderInfoFromYaml( customDataset.id = customDatasetId; // name - if (typeof yamlCustomDataset?.name === "string") { - customDataset.name = yamlCustomDataset.name; - } + customDataset.name = getStringFromInput( + yamlCustomDataset?.name, + customDataset.name + ); // xData let retXData = getStringArray("xData", yamlCustomDataset?.xData); @@ -1825,9 +1837,7 @@ export function getRenderInfoFromYaml( } // title - if (typeof yamlPie?.title === "string") { - pie.title = yamlPie.title; - } + pie.title = getStringFromInput(yamlPie?.title, pie.title); // console.log(pie.title); // data @@ -1923,42 +1933,41 @@ export function getRenderInfoFromYaml( } // legendPosition - if (typeof yamlPie?.legendPosition === "string") { - pie.legendPosition = yamlPie.legendPosition; - } else { - pie.legendPosition = "right"; - } + pie.legendPosition = getStringFromInput( + yamlPie?.legendPosition, + "right" + ); // legendOrient - if (typeof yamlPie?.legendOrientation === "string") { - pie.legendOrientation = yamlPie.legendOrientation; + let defaultLegendOrientation = "horizontal"; + if (pie.legendPosition === "top" || pie.legendPosition === "bottom") { + defaultLegendOrientation = "horizontal"; + } else if ( + pie.legendPosition === "left" || + pie.legendPosition === "right" + ) { + defaultLegendOrientation = "vertical"; } else { - if ( - pie.legendPosition === "top" || - pie.legendPosition === "bottom" - ) { - pie.legendOrientation = "horizontal"; - } else if ( - pie.legendPosition === "left" || - pie.legendPosition === "right" - ) { - pie.legendOrientation = "vertical"; - } else { - pie.legendOrientation = "horizontal"; - } + defaultLegendOrientation = "horizontal"; } + pie.legendOrientation = getStringFromInput( + yamlPie?.legendOrientation, + defaultLegendOrientation + ); // console.log(pie.legendPosition); // console.log(pie.legendOrientation); // legendBgColor - if (typeof yamlPie?.legendBgColor === "string") { - pie.legendBgColor = yamlPie.legendBgColor; - } + pie.legendBgColor = getStringFromInput( + yamlPie?.legendBgColor, + pie.legendBgColor + ); // legendBorderColor - if (typeof yamlPie?.legendBorderColor === "string") { - pie.legendBorderColor = yamlPie.legendBorderColor; - } + pie.legendBorderColor = getStringFromInput( + yamlPie?.legendBorderColor, + pie.legendBorderColor + ); renderInfo.pie.push(pie); } // pie related parameters @@ -1981,12 +1990,13 @@ export function getRenderInfoFromYaml( } // template - if (typeof yamlSummary?.template === "string") { - summary.template = yamlSummary.template; - } - if (typeof yamlSummary?.style === "string") { - summary.style = yamlSummary.style; - } + summary.template = getStringFromInput( + yamlSummary?.template, + summary.template + ); + + // style + summary.style = getStringFromInput(yamlSummary?.style, summary.style); renderInfo.summary.push(summary); } // summary related parameters @@ -2008,9 +2018,7 @@ export function getRenderInfoFromYaml( } // mode - if (typeof yamlMonth?.mode === "string") { - month.mode = yamlMonth.mode; - } + month.mode = getStringFromInput(yamlMonth?.mode, month.mode); // console.log(month.mode); // dataset @@ -2029,9 +2037,10 @@ export function getRenderInfoFromYaml( let numDataset = month.dataset.length; // startWeekOn - if (typeof yamlMonth?.startWeekOn === "string") { - month.startWeekOn = yamlMonth.startWeekOn; - } + month.startWeekOn = getStringFromInput( + yamlMonth?.startWeekOn, + month.startWeekOn + ); // console.log(month.startWeekOn); // showCircle @@ -2097,9 +2106,7 @@ export function getRenderInfoFromYaml( // console.log(month.yMax); // color - if (typeof yamlMonth?.color === "string") { - month.color = yamlMonth.color; - } + month.color = getStringFromInput(yamlMonth?.color, month.color); // console.log(month.color); // dimNotInMonth @@ -2133,9 +2140,10 @@ export function getRenderInfoFromYaml( // console.log(month.showSelectedRing); // circleColor - if (typeof yamlMonth?.circleColor === "string") { - month.circleColor = yamlMonth.circleColor; - } + month.circleColor = getStringFromInput( + yamlMonth?.circleColor, + month.circleColor + ); // console.log(month.circleColor); // circleColorByValue @@ -2145,39 +2153,45 @@ export function getRenderInfoFromYaml( // console.log(month.circleColorByValue); // headerYearColor - if (typeof yamlMonth?.headerYearColor === "string") { - month.headerYearColor = yamlMonth.headerYearColor; - } + month.headerYearColor = getStringFromInput( + yamlMonth?.headerYearColor, + month.headerYearColor + ); // console.log(month.headerYearColor); // headerMonthColor - if (typeof yamlMonth?.headerMonthColor === "string") { - month.headerMonthColor = yamlMonth.headerMonthColor; - } + month.headerMonthColor = getStringFromInput( + yamlMonth?.headerMonthColor, + month.headerMonthColor + ); // console.log(month.headerMonthColor); // dividingLineColor - if (typeof yamlMonth?.dividingLineColor === "string") { - month.dividingLineColor = yamlMonth.dividingLineColor; - } + month.dividingLineColor = getStringFromInput( + yamlMonth?.dividingLineColor, + month.dividingLineColor + ); // console.log(month.dividingLineColor); // todayRingColor - if (typeof yamlMonth?.todayRingColor === "string") { - month.todayRingColor = yamlMonth.todayRingColor; - } + month.todayRingColor = getStringFromInput( + yamlMonth.todayRingColor, + month.todayRingColor + ); // console.log(month.todayRingColor); // selectedRingColor - if (typeof yamlMonth?.selectedRingColor === "string") { - month.selectedRingColor = yamlMonth.selectedRingColor; - } + month.selectedRingColor = getStringFromInput( + yamlMonth?.selectedRingColor, + month.selectedRingColor + ); // console.log(month.selectedRingColor); // initMonth - if (typeof yamlMonth?.initMonth === "string") { - month.initMonth = yamlMonth.initMonth; - } + month.initMonth = getStringFromInput( + yamlMonth?.initMonth, + month.initMonth + ); // console.log(month.initMonth); // showAnnotation @@ -2252,21 +2266,21 @@ export function getRenderInfoFromYaml( } // title - if (typeof yamlBullet?.title === "string") { - bullet.title = yamlBullet.title; - } + bullet.title = getStringFromInput(yamlBullet?.title, bullet.title); // console.log(bullet.title); // dataset - if (typeof yamlBullet?.dataset === "string") { - bullet.dataset = yamlBullet.dataset; - } + bullet.dataset = getStringFromInput( + yamlBullet?.dataset, + bullet.dataset + ); // console.log(bullet.dataset); // orientation - if (typeof yamlBullet?.orientation === "string") { - bullet.orientation = yamlBullet.orientation; - } + bullet.orientation = getStringFromInput( + yamlBullet?.orientation, + bullet.orientation + ); // console.log(bullet.orientation); // range @@ -2320,23 +2334,21 @@ export function getRenderInfoFromYaml( // console.log(bullet.rangeColor); // actual value, can possess template variable - if (typeof yamlBullet?.value === "string") { - bullet.value = yamlBullet.value; - } else if (typeof yamlBullet?.value === "number") { - bullet.value = yamlBullet.value.toString(); - } + bullet.value = getStringFromInput(yamlBullet?.value, bullet.value); // console.log(bullet.value); // value unit - if (typeof yamlBullet?.valueUnit === "string") { - bullet.valueUnit = yamlBullet.valueUnit; - } + bullet.valueUnit = getStringFromInput( + yamlBullet?.valueUnit, + bullet.valueUnit + ); // console.log(bullet.valueUnit); // value color - if (typeof yamlBullet?.valueColor === "string") { - bullet.valueColor = yamlBullet.valueColor; - } + bullet.valueColor = getStringFromInput( + yamlBullet?.valueColor, + bullet.valueColor + ); // console.log(bullet.valueColor); // show mark @@ -2352,9 +2364,10 @@ export function getRenderInfoFromYaml( // console.log(bullet.markValue); // mark color - if (typeof yamlBullet?.markerColor === "string") { - bullet.markerColor = yamlBullet.markerColor; - } + bullet.markerColor = getStringFromInput( + yamlBullet?.markerColor, + bullet.markerColor + ); // console.log(bullet.markValue); renderInfo.bullet.push(bullet); From b358b74d06d5b670f28e226ec8360dfb63ec6f35 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sat, 18 Sep 2021 11:18:07 +0800 Subject: [PATCH 132/277] Update documents --- README.md | 3 +++ docs/ReleaseNotes.md | 3 +++ 2 files changed, 6 insertions(+) diff --git a/README.md b/README.md index 73cd1dd..568fdbe 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,9 @@ Version 1.10.5 Version 1.10.6 - Fixed the coloring for missing data in the month view +Version 1.10.7 +- Allow using html image tags as emoji inputs + ## !!! Breaking Changes !!! From version 1.9.0, template variables, e.g. '{{sum}}', are deprecated. Instead, Tracker provide operators (+, -, *, /, %) and functions (dataset(), sum(), maxStreak(), ......etc) to help us do data processing. For users having code blocks from previous version, please replace '{{sum}}' by '{{sum()}}' or '{{sum(1)}}' by '{{sum(dataset(1))}}'. More information about the new expressions could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md). diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index f06ba35..7b80e68 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,8 @@ # Release Notes +## v1.10.7 +- Allow using html image tags as emoji inputs + ## v1.10.6 - Fixed the coloring for missing data in the month view From f7b1e306f3d2879914c470c8b268cc5278973186 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 24 Sep 2021 18:49:17 +0800 Subject: [PATCH 133/277] Fix startDate/endDate being treated as relative dates --- src/helper.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helper.ts b/src/helper.ts index 7523e62..22aef7d 100644 --- a/src/helper.ts +++ b/src/helper.ts @@ -105,7 +105,7 @@ function extractValueFromDurationString( } let value = null; - const strRegex = "(?[0-9]+)(" + units.join("|") + ")"; + const strRegex = "^(?[0-9]+)(" + units.join("|") + ")$"; // console.log(strRegex); const regex = new RegExp(strRegex, "gm"); let match = regex.exec(strDuration); From 3a6ad3bd4091e6fecdad834035c70dd2c71be8fe Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 24 Sep 2021 18:50:21 +0800 Subject: [PATCH 134/277] Set version to 1.10.8 --- manifest.json | 2 +- package.json | 2 +- versions.json | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index c298533..9c2dd6c 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.10.7", + "version": "1.10.8", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package.json b/package.json index 42574b5..9a9ff4e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.10.7", + "version": "1.10.8", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index c0ea03d..30226ea 100644 --- a/versions.json +++ b/versions.json @@ -26,5 +26,6 @@ "1.10.4": "0.9.12", "1.10.5": "0.9.12", "1.10.6": "0.9.12", - "1.10.7": "0.9.12" + "1.10.7": "0.9.12", + "1.10.8": "0.9.12" } From c5e354dc07af46fb08cc04e44a44073d8ea89182 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 24 Sep 2021 19:09:47 +0800 Subject: [PATCH 135/277] Update documents --- README.md | 3 +++ docs/ReleaseNotes.md | 3 +++ 2 files changed, 6 insertions(+) diff --git a/README.md b/README.md index 568fdbe..14a17d5 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,9 @@ Version 1.10.6 Version 1.10.7 - Allow using html image tags as emoji inputs +Version 1.10.8 +- Fixed startDat/endDate misread as a relative date + ## !!! Breaking Changes !!! From version 1.9.0, template variables, e.g. '{{sum}}', are deprecated. Instead, Tracker provide operators (+, -, *, /, %) and functions (dataset(), sum(), maxStreak(), ......etc) to help us do data processing. For users having code blocks from previous version, please replace '{{sum}}' by '{{sum()}}' or '{{sum(1)}}' by '{{sum(dataset(1))}}'. More information about the new expressions could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md). diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index 7b80e68..560977f 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,8 @@ # Release Notes +## v1.10.8 +- Fixed startDat/endDate misread as a relative date + ## v1.10.7 - Allow using html image tags as emoji inputs From 342cdb4c10de40ffae410b10e741e512663d6b3f Mon Sep 17 00:00:00 2001 From: Morteza Mehrdad <79282493+MoriXplus@users.noreply.github.com> Date: Tue, 28 Sep 2021 19:26:27 +0330 Subject: [PATCH 136/277] Fix Wrong argument name --- src/settings.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/settings.ts b/src/settings.ts index 75ed0a1..bd23a2e 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -42,7 +42,7 @@ export class TrackerSettingTab extends PluginSettingTab { new Setting(containerEl) .setName("Default date format") .setDesc( - "This format is used to parse the date in your diary title.\nYou can also override it using 'date-format' argument in the tracker codeblock." + "This format is used to parse the date in your diary title.\nYou can also override it using 'dateFormat' argument in the tracker codeblock." ) .addText((text) => text From 071b99e57cdfd33b6686e77a87a1798dc9a5c477 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Wed, 29 Sep 2021 11:27:54 +0800 Subject: [PATCH 137/277] Set version to 1.10.9 --- manifest.json | 2 +- package.json | 2 +- versions.json | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 9c2dd6c..773d983 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.10.8", + "version": "1.10.9", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package.json b/package.json index 9a9ff4e..9c3cde9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.10.8", + "version": "1.10.9", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index 30226ea..2e7ef45 100644 --- a/versions.json +++ b/versions.json @@ -27,5 +27,6 @@ "1.10.5": "0.9.12", "1.10.6": "0.9.12", "1.10.7": "0.9.12", - "1.10.8": "0.9.12" + "1.10.8": "0.9.12", + "1.10.9": "0.9.12" } From 67015bc41d96e1581f56d06deeddfd5a497a629d Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Fri, 1 Oct 2021 07:46:20 +0800 Subject: [PATCH 138/277] Also allow emojis in the folder path --- src/parsing.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/parsing.ts b/src/parsing.ts index 4f5037e..163d890 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -1191,13 +1191,11 @@ export function getRenderInfoFromYaml( } // Root folder to search - if (typeof yaml.folder === "string") { - if (yaml.folder === "") { - renderInfo.folder = plugin.settings.folder; - } else { - renderInfo.folder = yaml.folder; - } - } else { + renderInfo.folder = getStringFromInput( + yaml?.folder, + plugin.settings.folder + ); + if (renderInfo.folder.trim() === "") { renderInfo.folder = plugin.settings.folder; } // console.log("renderInfo folder: " + renderInfo.folder); From de456721d7a3fe1a4f65a4001b10f88064b45cef Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sat, 13 Nov 2021 14:00:10 +0800 Subject: [PATCH 139/277] Show error messages for tab indentation in YAML --- examples/ErrorMessages.md | 8 ++++++++ examples/TestCalendar.md | 4 ++-- examples/TestCommands.md | 2 +- src/parsing.ts | 6 ++++++ 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/examples/ErrorMessages.md b/examples/ErrorMessages.md index 1274219..2aad3cd 100644 --- a/examples/ErrorMessages.md +++ b/examples/ErrorMessages.md @@ -39,6 +39,14 @@ searchTarget: weight line: ``` +Tabs are not allowed as indentation +``` tracker +searchType: tag +searchTarget: weight +line: + fillGap: true +``` + ## searchTarget Missing searchTarget ``` tracker diff --git a/examples/TestCalendar.md b/examples/TestCalendar.md index df752f4..84902b0 100644 --- a/examples/TestCalendar.md +++ b/examples/TestCalendar.md @@ -90,7 +90,7 @@ month: selectedRingColor: steelblue circleColorByValue: true showSelectedValue: true - initMonth: 2021-09 + initMonth: 2021-09 ``` Specify the initial month by relative date @@ -109,7 +109,7 @@ month: selectedRingColor: steelblue circleColorByValue: true showSelectedValue: true - initMonth: -1M + initMonth: -1M ``` ## Multiple targets diff --git a/examples/TestCommands.md b/examples/TestCommands.md index 38c81e1..24b414e 100644 --- a/examples/TestCommands.md +++ b/examples/TestCommands.md @@ -33,6 +33,6 @@ folder: / startDate: endDate: summary: - template: "Average value of tagName is {{average}}" + template: "Average value of tagName is {{average()}}" style: "color:white;" ``` \ No newline at end of file diff --git a/src/parsing.ts b/src/parsing.ts index 163d890..aa73c5c 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -907,6 +907,12 @@ export function getRenderInfoFromYaml( ): RenderInfo | string { let yaml; try { + // console.log(yamlText); + let result = yamlText.match(/^\t.+/m); + if (result !== null) { + let errorMessage = "Tabs are not allowed as indentation"; + return errorMessage; + } yaml = parseYaml(yamlText); } catch (err) { let errorMessage = "Error parsing YAML"; From 67fb02c6fbbb5c55053c0158be527317710521fd Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sat, 13 Nov 2021 14:56:13 +0800 Subject: [PATCH 140/277] Fix accessing todayRingColor from null yamlMonth --- src/parsing.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/parsing.ts b/src/parsing.ts index aa73c5c..74807d5 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -2179,7 +2179,7 @@ export function getRenderInfoFromYaml( // todayRingColor month.todayRingColor = getStringFromInput( - yamlMonth.todayRingColor, + yamlMonth?.todayRingColor, month.todayRingColor ); // console.log(month.todayRingColor); From 070faf121b2ec63017c0e6b3f04bb91098dc8b9f Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sat, 13 Nov 2021 21:52:04 +0800 Subject: [PATCH 141/277] Accept more characters in dvField --- src/collecting.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/collecting.ts b/src/collecting.ts index 7c3fe09..0f91aad 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -12,6 +12,13 @@ import { import * as helper from "./helper"; import { Moment } from "moment"; +// ref: https://www.rapidtables.com/code/text/unicode-characters.html +const CurrencyCodes = "\u0024\u20AC\u00A3\u00A5\u00A2\u20B9\u20A8\u20B1\u20A9\u0E3F\u20AB\u20AA"; +const AlphabetCodes = "\u03B1-\u03C9\u0391-\u03A9"; +const IntellectualPropertyCodes = "\u00A9\u00AE\u2117\u2122\u2120"; +const CJKCodes = "\u4E00-\u9FFF\u3400-\u4DBF\u3000\u3001-\u303F"; +const WordCharacters = "\\w" + CurrencyCodes + AlphabetCodes + IntellectualPropertyCodes + CJKCodes; + // fileBaseName is a string contains dateFormat only export function getDateFromFilename( file: TFile, @@ -788,7 +795,9 @@ export function collectDataFromDvField( let strRegex = "(^| |\\t)\\*{0,2}" + dvTarget + - "\\*{0,2}(::[ |\\t]*(?[\\d\\.\\/\\-\\w,@; \\t:]*))(\\r\\?\\n|\\r|$)"; + "\\*{0,2}(::[ |\\t]*(?[\\d\\.\\/\\-,@; \\t:" + + WordCharacters + + "]*))(\\r\\?\\n|\\r|$)"; // console.log(strRegex); return extractDataUsingRegexWithMultipleValues( From 7f65dd0dd4ecedb03e65e9954117e8c32265bd0d Mon Sep 17 00:00:00 2001 From: Ganessh Kumar Date: Mon, 15 Nov 2021 05:32:47 +0000 Subject: [PATCH 142/277] fixing typos and links --- docs/Examples.md | 4 ++-- examples/TestExpression.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/Examples.md b/docs/Examples.md index d05045d..c4e15c3 100644 --- a/docs/Examples.md +++ b/docs/Examples.md @@ -45,7 +45,7 @@ List of all examples - [Error Messages](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/ErrorMessages.md) - [Finance Tracker](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/FinanceTracker.md) - [Habit Trakcer](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/HabitTracker.md) -- [Mood Tracker](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/MoodTracker.md) +- [Mood Tracker](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTextValueMap.md) - [Star Tracker](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/StarTracker.md) - [Bar Chart](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestBarChart.md) - [Axis Interval and Format](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestAxisIntervalAndFormat.md) @@ -59,7 +59,7 @@ List of all examples - [Multiple Targets / Multiple Values](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestMultipleTargetsMultipleValues.md) - [Pie Chart](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md) - [Scaling and Positioning](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestScalingAndPositioning.md) -- [Specified Files](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestSpecifiedFiles.md)) +- [Specified Files](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestSpecifiedFiles.md) - [Summary](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestSummary.md) - [Table](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTable.md) - [Task](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTask.md) diff --git a/examples/TestExpression.md b/examples/TestExpression.md index 8d7f38c..d14c3f1 100644 --- a/examples/TestExpression.md +++ b/examples/TestExpression.md @@ -39,7 +39,7 @@ folder: /diary startDate: 2021-01-01 endDate: 2021-01-03 summary: - template: 'Maximum value: {{max() / 2::i}} <-- should be 48 / 2' + template: 'Maximum value: {{max() - 2::i}} <-- should be 48 - 2' ``` Dataset \* number --> Dataset @@ -61,7 +61,7 @@ folder: /diary startDate: 2021-01-01 endDate: 2021-01-03 summary: - template: 'Maximum value: {{max() /2::i}} <-- should be 48 / 2' + template: 'Maximum value: {{max() / 2::i}} <-- should be 48 / 2' ``` Dataset % number --> Dataset From 8d0b2973dbf008f315db210971b4df659f11296c Mon Sep 17 00:00:00 2001 From: Joey Seal Date: Thu, 25 Nov 2021 11:17:21 -0600 Subject: [PATCH 143/277] correct typo --- docs/Examples.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Examples.md b/docs/Examples.md index d05045d..6a550dc 100644 --- a/docs/Examples.md +++ b/docs/Examples.md @@ -44,7 +44,7 @@ List of all examples - [Bloodpressure Tracker](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/BloodPressureTracker.md) - [Error Messages](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/ErrorMessages.md) - [Finance Tracker](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/FinanceTracker.md) -- [Habit Trakcer](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/HabitTracker.md) +- [Habit Tracker](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/HabitTracker.md) - [Mood Tracker](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/MoodTracker.md) - [Star Tracker](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/StarTracker.md) - [Bar Chart](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestBarChart.md) From 857dcd256872cd65ca87eaf066fc2eadacacb02f Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Sat, 27 Nov 2021 13:57:17 +0800 Subject: [PATCH 144/277] Merge links to 'Text-value Map' and 'Mood Tracker' --- docs/Examples.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/Examples.md b/docs/Examples.md index c4e15c3..5612faf 100644 --- a/docs/Examples.md +++ b/docs/Examples.md @@ -45,7 +45,6 @@ List of all examples - [Error Messages](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/ErrorMessages.md) - [Finance Tracker](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/FinanceTracker.md) - [Habit Trakcer](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/HabitTracker.md) -- [Mood Tracker](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTextValueMap.md) - [Star Tracker](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/StarTracker.md) - [Bar Chart](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestBarChart.md) - [Axis Interval and Format](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestAxisIntervalAndFormat.md) @@ -63,7 +62,7 @@ List of all examples - [Summary](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestSummary.md) - [Table](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTable.md) - [Task](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTask.md) -- [Text-value Map](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTextValueMap.md) +- [Text-value Map/ Mood Tracker](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTextValueMap.md) - [Time Values](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTimeValues.md) - [Word Counting](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestWordCounting.md) - [X Dataset](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestXDataset.md) From 800e12896f7601e702a7e575da903f1129e6e7fc Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 22 Feb 2022 20:21:21 +0800 Subject: [PATCH 145/277] Replace tab characters by spaces --- examples/TestTabCharacters.md | 33 +++++++++++++++++++++++++++++++++ src/main.ts | 13 +++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 examples/TestTabCharacters.md diff --git a/examples/TestTabCharacters.md b/examples/TestTabCharacters.md new file mode 100644 index 0000000..c9b613d --- /dev/null +++ b/examples/TestTabCharacters.md @@ -0,0 +1,33 @@ +# Test Tab Characters + +Tab characters will be replaced by numbers of spaces according to the tabSize defined in your editor settings + +## Single Tab +``` tracker +searchType: tag +searchTarget: exercise-pushup +folder: diary +endDate: 2021-01-31 +line: + title: PushUp + yAxisLabel: Count + lineColor: "#d65d0e" +``` + +## Multiple Tabs + +``` tracker +searchType: tag +searchTarget: exercise-pushup +folder: diary +endDate: 2021-01-31 +line: + title: PushUp + yAxisLabel: Count + lineColor: "#d65d0e" +``` + + + + + diff --git a/src/main.ts b/src/main.ts index 5a392bb..31d9835 100644 --- a/src/main.ts +++ b/src/main.ts @@ -34,6 +34,12 @@ declare global { } } +declare module 'obsidian' { + interface Vault { + getConfig(prop: string): any; + } +} + export default class Tracker extends Plugin { settings: TrackerSettings; @@ -259,6 +265,13 @@ export default class Tracker extends Plugin { const canvas = document.createElement("div"); let yamlText = source.trim(); + + // Replace all tabs by spaces + let tabSize = this.app.vault.getConfig("tabSize"); + let spaces = Array(tabSize).fill(" ").join(""); + yamlText = yamlText.replace(/\t/gm, spaces); + + // Get render info let retRenderInfo = getRenderInfoFromYaml(yamlText, this); if (typeof retRenderInfo === "string") { return this.renderErrorMessage(retRenderInfo, canvas, el); From 757de222f7bd813d3963e50e8de91d53b957df68 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Tue, 22 Feb 2022 20:25:57 +0800 Subject: [PATCH 146/277] Remove error messages for tabs since we have replaced them --- examples/ErrorMessages.md | 8 -------- src/parsing.ts | 5 ----- 2 files changed, 13 deletions(-) diff --git a/examples/ErrorMessages.md b/examples/ErrorMessages.md index 2aad3cd..1274219 100644 --- a/examples/ErrorMessages.md +++ b/examples/ErrorMessages.md @@ -39,14 +39,6 @@ searchTarget: weight line: ``` -Tabs are not allowed as indentation -``` tracker -searchType: tag -searchTarget: weight -line: - fillGap: true -``` - ## searchTarget Missing searchTarget ``` tracker diff --git a/src/parsing.ts b/src/parsing.ts index 74807d5..dc4c17a 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -908,11 +908,6 @@ export function getRenderInfoFromYaml( let yaml; try { // console.log(yamlText); - let result = yamlText.match(/^\t.+/m); - if (result !== null) { - let errorMessage = "Tabs are not allowed as indentation"; - return errorMessage; - } yaml = parseYaml(yamlText); } catch (err) { let errorMessage = "Error parsing YAML"; From c07e2377e5e97ce9c135dd3f510dd6a485785f73 Mon Sep 17 00:00:00 2001 From: pyrochlore Date: Wed, 23 Feb 2022 20:03:15 +0800 Subject: [PATCH 147/277] Update documents --- README.md | 6 ++++++ docs/ReleaseNotes.md | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/README.md b/README.md index 14a17d5..6c6b91d 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,12 @@ Version 1.10.7 Version 1.10.8 - Fixed startDat/endDate misread as a relative date +Version 1.10.9 +- Replace tab characters by spaces +- Accept more unicode characters in dvField +- Allow emojis in the folder path +- Fixed bugs + ## !!! Breaking Changes !!! From version 1.9.0, template variables, e.g. '{{sum}}', are deprecated. Instead, Tracker provide operators (+, -, *, /, %) and functions (dataset(), sum(), maxStreak(), ......etc) to help us do data processing. For users having code blocks from previous version, please replace '{{sum}}' by '{{sum()}}' or '{{sum(1)}}' by '{{sum(dataset(1))}}'. More information about the new expressions could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md). diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index 560977f..9453853 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,11 @@ # Release Notes +## v1.10.9 +- Replace tab characters by spaces +- Accept more unicode characters in dvField +- Allow emojis in the folder path +- Fixed bugs + ## v1.10.8 - Fixed startDat/endDate misread as a relative date From e1410c9597595913d2e86840173d5a981d268124 Mon Sep 17 00:00:00 2001 From: Gnopps Date: Thu, 24 Mar 2022 09:24:02 +0200 Subject: [PATCH 148/277] Rename TestMultipleTargesMultipleValues.md to TestMultipleTargetsMultipleValues.md Corrected spelling error to fix broken link in https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Examples.md --- ...esMultipleValues.md => TestMultipleTargetsMultipleValues.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename examples/{TestMultipleTargesMultipleValues.md => TestMultipleTargetsMultipleValues.md} (99%) diff --git a/examples/TestMultipleTargesMultipleValues.md b/examples/TestMultipleTargetsMultipleValues.md similarity index 99% rename from examples/TestMultipleTargesMultipleValues.md rename to examples/TestMultipleTargetsMultipleValues.md index bd6a330..b78845b 100644 --- a/examples/TestMultipleTargesMultipleValues.md +++ b/examples/TestMultipleTargetsMultipleValues.md @@ -185,4 +185,4 @@ line: lineColor: none, yellow, red ``` -Please also check those search targets in markdown files under folder 'diary' and 'data'. \ No newline at end of file +Please also check those search targets in markdown files under folder 'diary' and 'data'. From fce6d1ef2973dc7352e01ffd68907cf9848537a1 Mon Sep 17 00:00:00 2001 From: BC Date: Mon, 4 Apr 2022 22:58:36 +0200 Subject: [PATCH 149/277] Update Questions.md Fixed some typos. --- docs/Questions.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/Questions.md b/docs/Questions.md index d6ca037..94cafd3 100644 --- a/docs/Questions.md +++ b/docs/Questions.md @@ -8,7 +8,7 @@ Tracker only connects adjacent points (neighbor points by date) by default. To force it connecting points over missing data, set the parameter `fillGap` under `line` or `bar` to true. -- Why the plugin shows error 'No valid date as X value found in notes'? +- Why does the plugin show: error 'No valid date as X value found in notes'? First we have to confirm where is the source of your X values. Tracker always needs X values in dates. The default source of X values are the file names of your notes. As long as a proper `dateFormat` was assigned, and combine with `dateFormatPrefix` and `dateFormatSuffix`, the dates in file names could be extracted from your file names successfully. @@ -18,15 +18,15 @@ Examples of these use cases could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestXDataset.md). -- Wny the plugin shows error 'No valid Y value found in notes'? +- Why does the plugin show: error 'No valid Y value found in notes'? That means no matched data found in your notes. Please check the document for the detail of [target evaluation](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/TargetEvaluation.md). -- Why the plugin shows 'Error parsing YAML'? +- Why does the plugin show: 'Error parsing YAML'? There are syntax errors in your code block. Please check [this document](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/YAML.md) for common issues. --- Still have problems?? You might encounter a bug. -Welcome to leave an issue [here](https://github.com/pyrochlore/obsidian-tracker/issues). \ No newline at end of file +Welcome to leave an issue [here](https://github.com/pyrochlore/obsidian-tracker/issues). From 99bd1bc9c3a043d0b0f3c48d7b683619493f1db5 Mon Sep 17 00:00:00 2001 From: Huy Z Date: Fri, 12 Aug 2022 04:59:52 -0700 Subject: [PATCH 150/277] Fix searchType: `task` instead of `tasks` --- docs/TargetEvaluation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/TargetEvaluation.md b/docs/TargetEvaluation.md index fdcdc9a..40beb65 100644 --- a/docs/TargetEvaluation.md +++ b/docs/TargetEvaluation.md @@ -120,8 +120,8 @@ With this search type, you can retrieve infomation of files. Currently, three ki ### searchType: task -You can retrieve infomation from tasks by using `searchType` `tasks`. +You can retrieve infomation from tasks by using `searchType` `task`. The provided `searchTarget` will limit the result with task's contents match the input. Using type `task` or `task.all` will get you all tasks no matter it is done or not. -To get task done, use `task.done`. By contrast, use `task.notdone`. \ No newline at end of file +To get task done, use `task.done`. By contrast, use `task.notdone`. From f1c3416336dc85ecc7da62a699f9eca9605af08c Mon Sep 17 00:00:00 2001 From: Huy Z Date: Sat, 13 Aug 2022 02:11:40 -0700 Subject: [PATCH 151/277] Fix table formatting of `margin` row `|` needed to be escaped. --- docs/InputParameters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/InputParameters.md b/docs/InputParameters.md index 5a35949..433a466 100644 --- a/docs/InputParameters.md +++ b/docs/InputParameters.md @@ -44,7 +44,7 @@ These key-value pairs are placed under the root of the code block. | `textValueMap` | A container key for multiple text-value mapping | | | | `fixedScale` | Uniform scaling factor to the graph dimensions | 1 | 1.0 | | `fitPanelWidth` | Auto-fit the width of the chart to the container | 1 | false | -| `margin` | Four margins (top|right|bottom|left) of the graph | 1~4 | 10 | +| `margin` | Four margins (top\|right\|bottom\|left) of the graph | 1~4 | 10 | | `line` | A container key for parameters related to the line chart | | | | `bar` | A container key for parameters related to the bar chart | | | | `summary` | A container key for parameters related to the summary output | | | From 3dad78249fd49f392968d73900a2ca5506e88571 Mon Sep 17 00:00:00 2001 From: Channing Walton Date: Sun, 9 Oct 2022 13:13:29 +0100 Subject: [PATCH 152/277] Fix a typo --- examples/WikiTracker.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/WikiTracker.md b/examples/WikiTracker.md index dc92a6c..d6ccf27 100644 --- a/examples/WikiTracker.md +++ b/examples/WikiTracker.md @@ -4,7 +4,7 @@ wiki --> Try parse the display text first, if it does not exist, parse the link wiki.link --> Parse the link text wiki.display --> Parse the display text -In the exaample notes, we have +In the example notes, we have [[todo_family|To-Do @Family]] [[todo_work|To-Do @Work]] @@ -31,4 +31,4 @@ summary: ``` -Please also check those search targets in markdown files under folder 'diary'. \ No newline at end of file +Please also check those search targets in markdown files under folder 'diary'. From 28789e2d01945c4ad5813d339aae6848b6100acc Mon Sep 17 00:00:00 2001 From: Benjamin Bouvier Date: Mon, 12 Dec 2022 00:49:11 +0100 Subject: [PATCH 153/277] Parse booleans from the frontmatter (fixes #79) --- src/collecting.ts | 7 +++++++ src/helper.ts | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/collecting.ts b/src/collecting.ts index 0f91aad..1f0325a 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -510,6 +510,13 @@ export function collectDataFromFrontmatterKey( renderInfo.textValueMap ); // console.log(retParse); + if (retParse.value === null) { + // Try parsing as a boolean: true means 1, false means 0. + if (deepValue === 'true' || deepValue === 'false') { + retParse.type = ValueType.Number; + retParse.value = deepValue === 'true' ? 1 : 0; + } + } if (retParse.value !== null) { if (retParse.type === ValueType.Time) { query.valueType = ValueType.Time; diff --git a/src/helper.ts b/src/helper.ts index 22aef7d..3c7fd36 100644 --- a/src/helper.ts +++ b/src/helper.ts @@ -316,7 +316,7 @@ export function deepValue(obj: any, str: string) { } if (typeof obj === "string" || Array.isArray(obj)) { return obj; - } else if (typeof obj === "number") { + } else if (typeof obj === "number" || typeof obj === "boolean") { return obj.toString(); } return null; From 0223662db4e16a7e876af23532fa7b111cbcf15a Mon Sep 17 00:00:00 2001 From: Graham Ashton Date: Wed, 1 Mar 2023 12:51:13 +0000 Subject: [PATCH 154/277] Fix link to scaling/positioning docs --- .../{TestScalingAndPositioing.md => TestScalingAndPositioning.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename examples/{TestScalingAndPositioing.md => TestScalingAndPositioning.md} (100%) diff --git a/examples/TestScalingAndPositioing.md b/examples/TestScalingAndPositioning.md similarity index 100% rename from examples/TestScalingAndPositioing.md rename to examples/TestScalingAndPositioning.md From d17e186c2627e63b35e8e61fbf16ae572944ac47 Mon Sep 17 00:00:00 2001 From: Ian Hakes <6351790+ianhakes@users.noreply.github.com> Date: Sun, 9 Apr 2023 12:45:57 -0400 Subject: [PATCH 155/277] Update TestXDataset.md Two typos ;-) --- examples/TestXDataset.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/TestXDataset.md b/examples/TestXDataset.md index c657268..06d2d37 100644 --- a/examples/TestXDataset.md +++ b/examples/TestXDataset.md @@ -32,7 +32,7 @@ line: fillGap: true ``` -Ue dates from Dataview inline fields as x values +Use dates from Dataview inline fields as x values ``` tracker searchType: dvField, dvField searchTarget: date, dataviewTarget @@ -43,7 +43,7 @@ line: fillGap: true ``` -Ue dates from formatted text as x values +Use dates from formatted text as x values ``` tracker searchType: text, dvField searchTarget: 'Today\sis\s(?([0-9]{4})-([0-9]{2})-([0-9]{2})), dataviewTarget' @@ -54,4 +54,4 @@ line: fillGap: true ``` -Please also check those search targets in markdown files under folder 'data'. \ No newline at end of file +Please also check those search targets in markdown files under folder 'data'. From b94b74930424eeaa5e1f03eee274568fd3dda8b8 Mon Sep 17 00:00:00 2001 From: Martin Holzhauer Date: Wed, 2 Aug 2023 21:58:31 +0200 Subject: [PATCH 156/277] added aspect ratio parameter for graphs --- docs/InputParameters.md | 1 + examples/WeightTracker.md | 2 ++ src/data.ts | 18 ++++++++++++++++++ src/parsing.ts | 14 ++++++++++++++ 4 files changed, 35 insertions(+) diff --git a/docs/InputParameters.md b/docs/InputParameters.md index 5a35949..6948889 100644 --- a/docs/InputParameters.md +++ b/docs/InputParameters.md @@ -44,6 +44,7 @@ These key-value pairs are placed under the root of the code block. | `textValueMap` | A container key for multiple text-value mapping | | | | `fixedScale` | Uniform scaling factor to the graph dimensions | 1 | 1.0 | | `fitPanelWidth` | Auto-fit the width of the chart to the container | 1 | false | +| `aspectRatio` | Change the 1:1 aspect ratio of the graph | number:number | 1:1 | | `margin` | Four margins (top|right|bottom|left) of the graph | 1~4 | 10 | | `line` | A container key for parameters related to the line chart | | | | `bar` | A container key for parameters related to the bar chart | | | diff --git a/examples/WeightTracker.md b/examples/WeightTracker.md index abc4881..2cd0f8d 100644 --- a/examples/WeightTracker.md +++ b/examples/WeightTracker.md @@ -6,6 +6,8 @@ searchTarget: weight folder: diary startDate: 2021-01-01 endDate: 2021-01-31 +aspectRatio: 20:9 +fitPanelWidth: 1 line: title: Weight Log yAxisLabel: Weight diff --git a/src/data.ts b/src/data.ts index 46fa250..695c797 100644 --- a/src/data.ts +++ b/src/data.ts @@ -582,6 +582,7 @@ export class RenderInfo { fixedScale: number; fitPanelWidth: boolean; + aspectRatio: AspectRatio; output: any[]; line: LineInfo[]; @@ -620,6 +621,7 @@ export class RenderInfo { this.textValueMap = {}; this.dataAreaSize = new Size(300, 300); + this.aspectRatio = new AspectRatio(1, 1); this.margin = new Margin(10, 10, 10, 10); // top, right, bottom, left this.fixedScale = 1.0; @@ -974,6 +976,22 @@ export class Size { } } +export class AspectRatio { + x: number; + y: number; + + constructor(x: number, y: number) { + this.x = x; + this.y = y; + } + + public recalculateSize(size: Size): Size { + let aspectRatio = this.x / this.y; + let width = parseFloat((size.width * aspectRatio).toFixed(2)) + return new Size(width, size.height); + } +} + export class Margin { top: number; right: number; diff --git a/src/parsing.ts b/src/parsing.ts index dc4c17a..5478811 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -15,6 +15,7 @@ import { BulletInfo, Dataset, CustomDatasetInfo, + AspectRatio, } from "./data"; import { TFolder, normalizePath } from "obsidian"; import { parseYaml } from "obsidian"; @@ -1521,6 +1522,19 @@ export function getRenderInfoFromYaml( renderInfo.fitPanelWidth = yaml.fitPanelWidth; } + // aspectRatio + if (typeof yaml.aspectRatio === "string") { + // yaml.fitPanelWidth + let ratioRegEx = /([0-9]*):([0-9]*)/; + let parts = yaml.aspectRatio.match(ratioRegEx); + parts.shift(); + parts = parts.map((i: string)=>parseInt(i,10)); + if (parts.length==2) { + renderInfo.aspectRatio = new AspectRatio(parts[0], parts[1]); + renderInfo.dataAreaSize = renderInfo.aspectRatio.recalculateSize(renderInfo.dataAreaSize) + } + } + // margin let retMargin = getNumberArrayFromInput("margin", yaml.margin, 4, 10, true); if (typeof retMargin === "string") { From 2e2de022cdaa9e28a60782f5957d1799f35e91ec Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Sun, 5 Nov 2023 16:28:32 -0700 Subject: [PATCH 157/277] Release 1.11.0 --- .github/dependabot.yml | 18 ++++++++++++++++++ .github/workflows/releases.yml | 32 ++++++++++++++++++++++++++++++++ README.md | 4 ++++ manifest.json | 2 +- package.json | 2 +- versions.json | 3 ++- 6 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/releases.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..d62873e --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,18 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + # Maintain dependencies for GitHub Actions + - package-ecosystem: "github-actions" + # Workflow files stored in the default location of `.github/workflows`. (You don't need to specify `/.github/workflows` for `directory`. You can use `directory: "/"`.) + directory: "/" + schedule: + interval: "weekly" + # Maintain dependencies for yarn + - package-ecosystem: "yarn" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "weekly" diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml new file mode 100644 index 0000000..c695178 --- /dev/null +++ b/.github/workflows/releases.yml @@ -0,0 +1,32 @@ +name: Release + +on: + release: + types: [published] + +jobs: + build: + permissions: + contents: write + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version: '18.x' + - name: Build + run: | + yarn + yarn build + yarn zip + - name: Release with Notes + uses: softprops/action-gh-release@v1 + with: + files: | + main.js + manifest.json + styles.css + obsidian-tracker-*.zip + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/README.md b/README.md index 6c6b91d..07e1172 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,10 @@ Version 1.10.9 - Allow emojis in the folder path - Fixed bugs +Version 1.11.0 +* Add support for checkboxes in new properties added in Obsidian 1.4 +* Fix typos in documentation and examples + ## !!! Breaking Changes !!! From version 1.9.0, template variables, e.g. '{{sum}}', are deprecated. Instead, Tracker provide operators (+, -, *, /, %) and functions (dataset(), sum(), maxStreak(), ......etc) to help us do data processing. For users having code blocks from previous version, please replace '{{sum}}' by '{{sum()}}' or '{{sum(1)}}' by '{{sum(dataset(1))}}'. More information about the new expressions could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md). diff --git a/manifest.json b/manifest.json index 773d983..5340f93 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.10.9", + "version": "1.11.0", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package.json b/package.json index 9c3cde9..4c54b17 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.10.9", + "version": "1.11.0", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index 2e7ef45..b1fa38e 100644 --- a/versions.json +++ b/versions.json @@ -28,5 +28,6 @@ "1.10.6": "0.9.12", "1.10.7": "0.9.12", "1.10.8": "0.9.12", - "1.10.9": "0.9.12" + "1.10.9": "0.9.12", + "1.11.0": "0.9.12" } From 03456020209aba00fd0d6ddcc78ed335c5a82bbe Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Wed, 8 Nov 2023 03:04:50 +0000 Subject: [PATCH 158/277] Update copyright year Update copyright year from 2021 to 2021-2023 --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 6098b16..e1d3f7d 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2021 Hsuan Hao Chang +Copyright (c) 2021-2023 Hsuan Hao Chang Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From 4b37f3a86fdc62255c3513e59046ef4433d33300 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Wed, 8 Nov 2023 03:05:51 +0000 Subject: [PATCH 159/277] Release 1.12.0 --- README.md | 66 +++++++++++++++++++++++++++------------------------ manifest.json | 16 ++++++------- package.json | 2 +- versions.json | 63 ++++++++++++++++++++++++------------------------ 4 files changed, 76 insertions(+), 71 deletions(-) diff --git a/README.md b/README.md index 07e1172..e47a2e9 100644 --- a/README.md +++ b/README.md @@ -10,24 +10,31 @@ This is an [Obsidian](https://obsidian.md/) plugin that helps you collect data f ## What's New -Version 1.10.0 -- Add annotation mode for month view ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestCalendar.md)) -- Add parameters `xAxisTickInterval`, `yAxisTickInterval`, `xAxisTickLabelFormat` and `yAxisTickLabelFormat` for the line and bar chart ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestAxisIntervalAndFormat.md)) -- Allow using regular expression in parameter `dateFormatPrefix` and `dateFormatSuffix` ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md)) -- Add parameters `file`, `specifiedFilesOnly`, `fileContainsLinkedFiles`, and `fileMultiplierAfterLink` to retrieve data from specified files ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestSpecifiedFiles.md)) -- Add a parameter `textValueMap` to convert texts or emojis to specified values ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTextValueMap.md)) +Version 1.12.0 +* Add aspect ratio parameter for graphs +* Reorganize release notes in readme to be in descending order (latest release first) + +Version 1.11.0 +* Add support for checkboxes in new properties added in Obsidian 1.4 +* Fix typos in documentation and examples + +Version 1.10.9 +- Replace tab characters by spaces +- Accept more unicode characters in dvField +- Allow emojis in the folder path - Fixed bugs -- Enhanced error messages -Version 1.10.1 -- Fixed 'failed to load plugin' on iOS +Version 1.10.8 +- Fixed startDat/endDate misread as a relative date -Version 1.10.2 -- Fixed plugin not rendering on some macOS machines +Version 1.10.7 +- Allow using html image tags as emoji inputs -Version 1.10.3 -- Allow using the parameter `fitPanelWidth` with the output type `month` and `pie` -- Fixed the resizing and positioning of the chart tooltip +Version 1.10.6 +- Fixed the coloring for missing data in the month view + +Version 1.10.5 +- Allow using a relative date value in `initMonth` in the month view Version 1.10.4 - Allow using a regular expression as a key of the parameter `textValueMap` @@ -35,27 +42,24 @@ Version 1.10.4 - Fixed bugs reported by users - Fixed typo in plugin settings -Version 1.10.5 -- Allow using a relative date value in `initMonth` in the month view - -Version 1.10.6 -- Fixed the coloring for missing data in the month view +Version 1.10.3 +- Allow using the parameter `fitPanelWidth` with the output type `month` and `pie` +- Fixed the resizing and positioning of the chart tooltip -Version 1.10.7 -- Allow using html image tags as emoji inputs +Version 1.10.2 +- Fixed plugin not rendering on some macOS machines -Version 1.10.8 -- Fixed startDat/endDate misread as a relative date +Version 1.10.1 +- Fixed 'failed to load plugin' on iOS -Version 1.10.9 -- Replace tab characters by spaces -- Accept more unicode characters in dvField -- Allow emojis in the folder path +Version 1.10.0 +- Add annotation mode for month view ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestCalendar.md)) +- Add parameters `xAxisTickInterval`, `yAxisTickInterval`, `xAxisTickLabelFormat` and `yAxisTickLabelFormat` for the line and bar chart ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestAxisIntervalAndFormat.md)) +- Allow using regular expression in parameter `dateFormatPrefix` and `dateFormatSuffix` ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md)) +- Add parameters `file`, `specifiedFilesOnly`, `fileContainsLinkedFiles`, and `fileMultiplierAfterLink` to retrieve data from specified files ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestSpecifiedFiles.md)) +- Add a parameter `textValueMap` to convert texts or emojis to specified values ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTextValueMap.md)) - Fixed bugs - -Version 1.11.0 -* Add support for checkboxes in new properties added in Obsidian 1.4 -* Fix typos in documentation and examples +- Enhanced error messages ## !!! Breaking Changes !!! diff --git a/manifest.json b/manifest.json index 5340f93..6b71779 100644 --- a/manifest.json +++ b/manifest.json @@ -1,10 +1,10 @@ { - "id": "obsidian-tracker", - "name": "Tracker", - "version": "1.11.0", - "minAppVersion": "0.9.12", - "description": "A plugin tracks occurrences and numbers in your notes", - "author": "pyrochlore", - "authorUrl": "", - "isDesktopOnly": false + "id": "obsidian-tracker", + "name": "Tracker", + "version": "1.12.0", + "minAppVersion": "0.9.12", + "description": "A plugin tracks occurrences and numbers in your notes", + "author": "pyrochlore", + "authorUrl": "", + "isDesktopOnly": false } diff --git a/package.json b/package.json index 4c54b17..0e7d909 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.11.0", + "version": "1.12.0", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index b1fa38e..93de177 100644 --- a/versions.json +++ b/versions.json @@ -1,33 +1,34 @@ { - "1.0.0": "0.9.12", - "1.0.1": "0.9.12", - "1.0.2": "0.9.12", - "1.1.0": "0.9.12", - "1.2.0": "0.9.12", - "1.2.1": "0.9.12", - "1.3.0": "0.9.12", - "1.4.0": "0.9.12", - "1.4.1": "0.9.12", - "1.5.0": "0.9.12", - "1.5.1": "0.9.12", - "1.6.0": "0.9.12", - "1.6.1": "0.9.12", - "1.7.0": "0.9.12", - "1.8.0": "0.9.12", - "1.8.1": "0.9.12", - "1.8.2": "0.9.12", - "1.9.0": "0.9.12", - "1.9.1": "0.9.12", - "1.9.2": "0.9.12", - "1.10.0": "0.9.12", - "1.10.1": "0.9.12", - "1.10.2": "0.9.12", - "1.10.3": "0.9.12", - "1.10.4": "0.9.12", - "1.10.5": "0.9.12", - "1.10.6": "0.9.12", - "1.10.7": "0.9.12", - "1.10.8": "0.9.12", - "1.10.9": "0.9.12", - "1.11.0": "0.9.12" + "1.0.0": "0.9.12", + "1.0.1": "0.9.12", + "1.0.2": "0.9.12", + "1.1.0": "0.9.12", + "1.2.0": "0.9.12", + "1.2.1": "0.9.12", + "1.3.0": "0.9.12", + "1.4.0": "0.9.12", + "1.4.1": "0.9.12", + "1.5.0": "0.9.12", + "1.5.1": "0.9.12", + "1.6.0": "0.9.12", + "1.6.1": "0.9.12", + "1.7.0": "0.9.12", + "1.8.0": "0.9.12", + "1.8.1": "0.9.12", + "1.8.2": "0.9.12", + "1.9.0": "0.9.12", + "1.9.1": "0.9.12", + "1.9.2": "0.9.12", + "1.10.0": "0.9.12", + "1.10.1": "0.9.12", + "1.10.2": "0.9.12", + "1.10.3": "0.9.12", + "1.10.4": "0.9.12", + "1.10.5": "0.9.12", + "1.10.6": "0.9.12", + "1.10.7": "0.9.12", + "1.10.8": "0.9.12", + "1.10.9": "0.9.12", + "1.11.0": "0.9.12", + "1.12.0": "0.9.12" } From 41e8c714d09586e1ddcd38f211e7e12f716b1594 Mon Sep 17 00:00:00 2001 From: laharah Date: Thu, 9 Nov 2023 12:36:52 -0800 Subject: [PATCH 160/277] Add support for in-sentence dvfields --- examples/TestInSentenceFields.md | 15 +++++++++++++++ examples/data/In-Sentence-Fields.md | 9 +++++++++ src/collecting.ts | 22 ++++++++++++++-------- 3 files changed, 38 insertions(+), 8 deletions(-) create mode 100644 examples/TestInSentenceFields.md create mode 100644 examples/data/In-Sentence-Fields.md diff --git a/examples/TestInSentenceFields.md b/examples/TestInSentenceFields.md new file mode 100644 index 0000000..92d460b --- /dev/null +++ b/examples/TestInSentenceFields.md @@ -0,0 +1,15 @@ + +```tracker +searchType: frontmatter, dvField +searchTarget: date, count +xDataset: 0 +folder: "data" +bullet: + title: Total Counts + value: "{{sum()}}" + range: 1,5,10,20 + rangeColor: darkRed, lightBlue, lightGreen, blue + showMarker: true + markerValue: 2 + markerColor: red +``` diff --git a/examples/data/In-Sentence-Fields.md b/examples/data/In-Sentence-Fields.md new file mode 100644 index 0000000..ca1556e --- /dev/null +++ b/examples/data/In-Sentence-Fields.md @@ -0,0 +1,9 @@ +--- +date: 2021-01-05 +--- + +I am [count:: 1] inline +So am (count::2) I +count:: 3 +| count:: 4 | +|count:: 5| \ No newline at end of file diff --git a/src/collecting.ts b/src/collecting.ts index 1f0325a..ab352b6 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -13,11 +13,17 @@ import * as helper from "./helper"; import { Moment } from "moment"; // ref: https://www.rapidtables.com/code/text/unicode-characters.html -const CurrencyCodes = "\u0024\u20AC\u00A3\u00A5\u00A2\u20B9\u20A8\u20B1\u20A9\u0E3F\u20AB\u20AA"; +const CurrencyCodes = + "\u0024\u20AC\u00A3\u00A5\u00A2\u20B9\u20A8\u20B1\u20A9\u0E3F\u20AB\u20AA"; const AlphabetCodes = "\u03B1-\u03C9\u0391-\u03A9"; const IntellectualPropertyCodes = "\u00A9\u00AE\u2117\u2122\u2120"; const CJKCodes = "\u4E00-\u9FFF\u3400-\u4DBF\u3000\u3001-\u303F"; -const WordCharacters = "\\w" + CurrencyCodes + AlphabetCodes + IntellectualPropertyCodes + CJKCodes; +const WordCharacters = + "\\w" + + CurrencyCodes + + AlphabetCodes + + IntellectualPropertyCodes + + CJKCodes; // fileBaseName is a string contains dateFormat only export function getDateFromFilename( @@ -512,9 +518,9 @@ export function collectDataFromFrontmatterKey( // console.log(retParse); if (retParse.value === null) { // Try parsing as a boolean: true means 1, false means 0. - if (deepValue === 'true' || deepValue === 'false') { + if (deepValue === "true" || deepValue === "false") { retParse.type = ValueType.Number; - retParse.value = deepValue === 'true' ? 1 : 0; + retParse.value = deepValue === "true" ? 1 : 0; } } if (retParse.value !== null) { @@ -798,13 +804,13 @@ export function collectDataFromDvField( // Test this in Regex101 // remember '\s' includes new line - // (^| |\t)\*{0,2}dvTarget\*{0,2}(::[ |\t]*(?[\d\.\/\-\w,@; \t:]*))(\r?\n|\r|$) + // (^| |\t|\|)(\[|\()?\*{0,2}dvTarget\*{0,2}(::[ |\t]*(?[\d\.\/\-\w,@; \t:]*)(\]|\))?) let strRegex = - "(^| |\\t)\\*{0,2}" + + String.raw`(^| |\t|\|)(\[|\()?\*{0,2}` + dvTarget + - "\\*{0,2}(::[ |\\t]*(?[\\d\\.\\/\\-,@; \\t:" + + String.raw`\*{0,2}(::[ |\t]*(?[\d\.\/\-\w,@; \t:` + WordCharacters + - "]*))(\\r\\?\\n|\\r|$)"; + String.raw`]*)(\]|\))?)`; // console.log(strRegex); return extractDataUsingRegexWithMultipleValues( From 92a901839586cc4b19f04e183e7be640e54a16e8 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Thu, 16 Nov 2023 19:01:12 -0700 Subject: [PATCH 161/277] Add support for emoji values --- examples/TestEmoji.md | 20 ++++++++++++++++++++ examples/diary/2023-06-05.md | 1 + examples/diary/2023-06-06.md | 1 + examples/diary/2023-06-07.md | 1 + examples/diary/2023-06-08.md | 1 + src/collecting.ts | 4 ++-- 6 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 examples/TestEmoji.md create mode 100644 examples/diary/2023-06-05.md create mode 100644 examples/diary/2023-06-06.md create mode 100644 examples/diary/2023-06-07.md create mode 100644 examples/diary/2023-06-08.md diff --git a/examples/TestEmoji.md b/examples/TestEmoji.md new file mode 100644 index 0000000..a5c84b6 --- /dev/null +++ b/examples/TestEmoji.md @@ -0,0 +1,20 @@ + +```tracker +searchType: dvfield +searchTarget: Physical +folder: diary +startDate: 2023-06-04 +endDate: 2023-06-11 +textValueMap: + 😀: 5 + 🙂: 4 + 😐: 3 + 🙁: 2 + 😞: 1 +datasetName: 🚹 Physical +line: + lineColor: orange + lineWidth: 3 + showLegend: true + legendPosition: right +``` \ No newline at end of file diff --git a/examples/diary/2023-06-05.md b/examples/diary/2023-06-05.md new file mode 100644 index 0000000..80f84e7 --- /dev/null +++ b/examples/diary/2023-06-05.md @@ -0,0 +1 @@ +Physical:: 😐 \ No newline at end of file diff --git a/examples/diary/2023-06-06.md b/examples/diary/2023-06-06.md new file mode 100644 index 0000000..80f84e7 --- /dev/null +++ b/examples/diary/2023-06-06.md @@ -0,0 +1 @@ +Physical:: 😐 \ No newline at end of file diff --git a/examples/diary/2023-06-07.md b/examples/diary/2023-06-07.md new file mode 100644 index 0000000..6378774 --- /dev/null +++ b/examples/diary/2023-06-07.md @@ -0,0 +1 @@ +Physical:: 😀 \ No newline at end of file diff --git a/examples/diary/2023-06-08.md b/examples/diary/2023-06-08.md new file mode 100644 index 0000000..7074a69 --- /dev/null +++ b/examples/diary/2023-06-08.md @@ -0,0 +1 @@ +Physical:: 😞 \ No newline at end of file diff --git a/src/collecting.ts b/src/collecting.ts index ab352b6..2e7e47a 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -339,7 +339,7 @@ function extractDataUsingRegexWithMultipleValues( ): boolean { // console.log("extractDataUsingRegexWithMultipleValues"); - let regex = new RegExp(strRegex, "gm"); + let regex = new RegExp(strRegex, "gmu"); let match; let measure = 0.0; let extracted = false; @@ -808,7 +808,7 @@ export function collectDataFromDvField( let strRegex = String.raw`(^| |\t|\|)(\[|\()?\*{0,2}` + dvTarget + - String.raw`\*{0,2}(::[ |\t]*(?[\d\.\/\-\w,@; \t:` + + String.raw`\*{0,2}(::[ |\t]*(?[\p{ExtPict}\d\.\/\-\w,@; \t:` + WordCharacters + String.raw`]*)(\]|\))?)`; // console.log(strRegex); From 54a8b7450805654249208b31502c81280a4422f3 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Thu, 16 Nov 2023 19:19:23 -0700 Subject: [PATCH 162/277] Update dependencies --- .gitignore | 3 +- package-lock.json | 4825 +++++++++++++++++ package.json | 38 +- ...config.build.js => rollup.config.build.mjs | 2 +- rollup.config.dev.js => rollup.config.dev.mjs | 0 5 files changed, 4845 insertions(+), 23 deletions(-) create mode 100644 package-lock.json rename rollup.config.build.js => rollup.config.build.mjs (93%) rename rollup.config.dev.js => rollup.config.dev.mjs (100%) diff --git a/.gitignore b/.gitignore index bb7f74e..1c6405e 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,6 @@ # npm node_modules -package-lock.json # build main.js @@ -16,4 +15,4 @@ examples/*.js .obsidian # examples for users -examples/case \ No newline at end of file +examples/case diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..29afbe7 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4825 @@ +{ + "name": "obsidian-tracker", + "version": "1.13.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "obsidian-tracker", + "version": "1.13.0", + "license": "MIT", + "dependencies": { + "d3": "^7.8.5", + "d3-interpolate": "^3.0.1", + "jsep": "^1.3.8", + "sprintf-js": "^1.1.3" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^25.0.7", + "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/plugin-terser": "^0.4.4", + "@rollup/plugin-typescript": "^11.1.5", + "@types/d3": "^7.4.3", + "@types/node": "^20.9.1", + "@types/sprintf-js": "^1.1.4", + "gulp": "^3.9.1", + "gulp-zip": "^4.2.0", + "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", + "rollup": "^4.4.1", + "rollup-plugin-copy": "^3.5.0", + "tslib": "^2.6.2", + "typescript": "^5.2.2" + } + }, + "node_modules/@codemirror/state": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.3.1.tgz", + "integrity": "sha512-88e4HhMtKJyw6fKprGaN/yZfiaoGYOi2nM45YCUC6R/kex9sxFWBDGatS1vk4lMgnWmdIIB9tk8Gj1LmL8YfvA==", + "dev": true, + "peer": true + }, + "node_modules/@codemirror/view": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.22.0.tgz", + "integrity": "sha512-6zLj4YIoIpfTGKrDMTbeZRpa8ih4EymMCKmddEDcJWrCdp/N1D46B38YEz4creTb4T177AVS9EyXkLeC/HL2jA==", + "dev": true, + "peer": true, + "dependencies": { + "@codemirror/state": "^6.1.4", + "style-mod": "^4.1.0", + "w3c-keyname": "^2.2.4" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "25.0.7", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.7.tgz", + "integrity": "sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", + "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.1", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-terser": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", + "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", + "dev": true, + "dependencies": { + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-typescript": { + "version": "11.1.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.5.tgz", + "integrity": "sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0||^3.0.0||^4.0.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "tslib": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz", + "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.4.1.tgz", + "integrity": "sha512-Ss4suS/sd+6xLRu+MLCkED2mUrAyqHmmvZB+zpzZ9Znn9S8wCkTQCJaQ8P8aHofnvG5L16u9MVnJjCqioPErwQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.4.1.tgz", + "integrity": "sha512-sRSkGTvGsARwWd7TzC8LKRf8FiPn7257vd/edzmvG4RIr9x68KBN0/Ek48CkuUJ5Pj/Dp9vKWv6PEupjKWjTYA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.4.1.tgz", + "integrity": "sha512-nz0AiGrrXyaWpsmBXUGOBiRDU0wyfSXbFuF98pPvIO8O6auQsPG6riWsfQqmCCC5FNd8zKQ4JhgugRNAkBJ8mQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.4.1.tgz", + "integrity": "sha512-Ogqvf4/Ve/faMaiPRvzsJEqajbqs00LO+8vtrPBVvLgdw4wBg6ZDXdkDAZO+4MLnrc8mhGV6VJAzYScZdPLtJg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.4.1.tgz", + "integrity": "sha512-9zc2tqlr6HfO+hx9+wktUlWTRdje7Ub15iJqKcqg5uJZ+iKqmd2CMxlgPpXi7+bU7bjfDIuvCvnGk7wewFEhCg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.4.1.tgz", + "integrity": "sha512-phLb1fN3rq2o1j1v+nKxXUTSJnAhzhU0hLrl7Qzb0fLpwkGMHDem+o6d+ZI8+/BlTXfMU4kVWGvy6g9k/B8L6Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.4.1.tgz", + "integrity": "sha512-M2sDtw4tf57VPSjbTAN/lz1doWUqO2CbQuX3L9K6GWIR5uw9j+ROKCvvUNBY8WUbMxwaoc8mH9HmmBKsLht7+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.4.1.tgz", + "integrity": "sha512-mHIlRLX+hx+30cD6c4BaBOsSqdnCE4ok7/KDvjHYAHoSuveoMMxIisZFvcLhUnyZcPBXDGZTuBoalcuh43UfQQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.4.1.tgz", + "integrity": "sha512-tB+RZuDi3zxFx7vDrjTNGVLu2KNyzYv+UY8jz7e4TMEoAj7iEt8Qk6xVu6mo3pgjnsHj6jnq3uuRsHp97DLwOA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.4.1.tgz", + "integrity": "sha512-Hdn39PzOQowK/HZzYpCuZdJC91PE6EaGbTe2VCA9oq2u18evkisQfws0Smh9QQGNNRa/T7MOuGNQoLeXhhE3PQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.4.1.tgz", + "integrity": "sha512-tLpKb1Elm9fM8c5w3nl4N1eLTP4bCqTYw9tqUBxX8/hsxqHO3dxc2qPbZ9PNkdK4tg4iLEYn0pOUnVByRd2CbA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.4.1.tgz", + "integrity": "sha512-eAhItDX9yQtZVM3yvXS/VR3qPqcnXvnLyx1pLXl4JzyNMBNO3KC986t/iAg2zcMzpAp9JSvxB5VZGnBiNoA98w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/codemirror": { + "version": "5.60.8", + "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.8.tgz", + "integrity": "sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw==", + "dev": true, + "dependencies": { + "@types/tern": "*" + } + }, + "node_modules/@types/d3": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", + "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", + "dev": true, + "dependencies": { + "@types/d3-array": "*", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-delaunay": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-zoom": "*" + } + }, + "node_modules/@types/d3-array": { + "version": "2.12.7", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-2.12.7.tgz", + "integrity": "sha512-SVvxzxRVnIgtJbNTj5ZVJ9CZkVOANCpW0nQbRi7EOU5Q9G+JQQjXD2SCpr1OYCX09b3Yr7o0+CBofZAgU42rbQ==", + "dev": true + }, + "node_modules/@types/d3-axis": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-2.1.6.tgz", + "integrity": "sha512-X/CazlQun7XcSbRhaxwr605neUIGiUeURvsOGAIdvH1nD6o25pzkdxPNe7XcTKyRJeShlubjsUEG9tNeZZdRaQ==", + "dev": true, + "dependencies": { + "@types/d3-selection": "^2" + } + }, + "node_modules/@types/d3-brush": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-2.1.5.tgz", + "integrity": "sha512-ycizd1l+vIceUIO+JA6HAjivlXSGlDbqKXe4Q8cjUPtY/NMkz6CvpcBqzLPRa9iMDqRnUQHwSIEakb0sX+PM2A==", + "dev": true, + "dependencies": { + "@types/d3-selection": "^2" + } + }, + "node_modules/@types/d3-chord": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-2.0.6.tgz", + "integrity": "sha512-PTZyfJ7z9Ttl7joKRfyBl0icMYAMRj4n5trsE9Iinipp8Fe0DlwK6xwboWWMTEaj6Vzko68brnpvpoDl4qAKwA==", + "dev": true + }, + "node_modules/@types/d3-color": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-2.0.6.tgz", + "integrity": "sha512-tbaFGDmJWHqnenvk3QGSvD3RVwr631BjKRD7Sc7VLRgrdX5mk5hTyoeBL6rXZaeoXzmZwIl1D2HPogEdt1rHBg==", + "dev": true + }, + "node_modules/@types/d3-contour": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-2.0.7.tgz", + "integrity": "sha512-oJNOYtQzKY+04lhEr4aTnW2IrCVK5jiF2YMJf687HV5dIGsOgM8Xc15uSuu9zu4FYOJJ/FTqVaspHFR9pxVNTg==", + "dev": true, + "dependencies": { + "@types/d3-array": "^2", + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-delaunay": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-5.3.4.tgz", + "integrity": "sha512-GEQuDXVKQvHulQ+ecKyCubOmVjXrifAj7VR26rWVAER/IbWemaT/Tmo84ESiTtoDghg5ILdMZH7pYXQEt/Vu9A==", + "dev": true + }, + "node_modules/@types/d3-dispatch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-2.0.4.tgz", + "integrity": "sha512-63uJJO3Eflu1tYXjD+Gmkk5Bc/ribIWyCnOfAY+WB9ihBw7Tdd1IRKZ34ASxy+Dzlg+lOT5+ZHCSZw0V+UNAEQ==", + "dev": true + }, + "node_modules/@types/d3-drag": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-2.0.5.tgz", + "integrity": "sha512-VbvN7t3TelH6R0cKVXkOXmDiC7pRhtoodiPZ94p0n9TayGqg0Z/5vSxsPelVsZyVzloEo2kdZ7BO1n9ezWux+w==", + "dev": true, + "dependencies": { + "@types/d3-selection": "^2" + } + }, + "node_modules/@types/d3-dsv": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-2.0.9.tgz", + "integrity": "sha512-mjbmiSz8p7rCCyan4Ai6Rxqtp4MW447RfyKPfE1VaFl61l/nkLsFObF26X279eQMjHqGKDI2kdx26qEdkLAVBQ==", + "dev": true + }, + "node_modules/@types/d3-ease": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-2.0.4.tgz", + "integrity": "sha512-DGh1MzShlCPTTau4+C8JLJjKt9sT9LgGZokYFx8fSxy+Z6fHns/Lc+lwTc4owuq8FwCDg7Mw2/mp0G8S5DBm7Q==", + "dev": true + }, + "node_modules/@types/d3-fetch": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-2.0.5.tgz", + "integrity": "sha512-azKhvVVUbAK6sJy22b9t8TtsGmPlauU9aGVLSP5cGYSWMCbtMRf3nGz58Eu+UgP1u3VEK+12JVc4HB1MMeVaSg==", + "dev": true, + "dependencies": { + "@types/d3-dsv": "^2" + } + }, + "node_modules/@types/d3-force": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-2.1.7.tgz", + "integrity": "sha512-x5pvWw0HUBrcpMaMOd70ICEL27gOeC9hyhilTc+OP+4tErgEg3w+fZWA475eTrG7gi8BB0TNdfGRprpy09Vo9A==", + "dev": true + }, + "node_modules/@types/d3-format": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-2.0.5.tgz", + "integrity": "sha512-ntJZQfz4BK8m53vkUVk+3PE7PHr9esrfVkClxebcMNP/4N1F0rPdzv9hKNqx2gZBRHSYg1kQumeUDIrHDpQGwQ==", + "dev": true + }, + "node_modules/@types/d3-geo": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-2.0.7.tgz", + "integrity": "sha512-RIXlxPdxvX+LAZFv+t78CuYpxYag4zuw9mZc+AwfB8tZpKU90rMEn2il2ADncmeZlb7nER9dDsJpRisA3lRvjA==", + "dev": true, + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-hierarchy": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-2.0.5.tgz", + "integrity": "sha512-t/xXqB6MXT6Hp0BgFV00ZonpZbs9fUtYPM3QzqOlmghefovpnnxEN7mAdUqE/mNinRI/eR8gewDAobFJA0TNBw==", + "dev": true + }, + "node_modules/@types/d3-interpolate": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-2.0.5.tgz", + "integrity": "sha512-UINE41RDaUMbulp+bxQMDnhOi51rh5lA2dG+dWZU0UY/IwQiG/u2x8TfnWYU9+xwGdXsJoAvrBYUEQl0r91atg==", + "dev": true, + "dependencies": { + "@types/d3-color": "^2" + } + }, + "node_modules/@types/d3-path": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-2.0.4.tgz", + "integrity": "sha512-jjZVLBjEX4q6xneKMmv62UocaFJFOTQSb/1aTzs3m3ICTOFoVaqGBHpNLm/4dVi0/FTltfBKgmOK1ECj3/gGjA==", + "dev": true + }, + "node_modules/@types/d3-polygon": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-2.0.3.tgz", + "integrity": "sha512-4hwYYp/KDSNDdBFhf08SifGD7YJgMyUuDulnMsAGVi9X2w5QvdB47wlXMiJr+rdiBKALMq3VJ/i8qKy9gUzCbg==", + "dev": true + }, + "node_modules/@types/d3-quadtree": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-2.0.5.tgz", + "integrity": "sha512-4eArsbkJTAAfFCDVtVrOlkmHJ/Er0zuL1bUAM7nMbwufIUHXAWYu+081tylzSdiZpcUo2vSJjfgNDtLnsDUoxw==", + "dev": true + }, + "node_modules/@types/d3-random": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-2.2.3.tgz", + "integrity": "sha512-Ghs4R3CcgJ3o6svszRzIH4b8PPYex/COo+rhhZjDAs+bVducXwjmVSi27WcDOaLLCBV2t3tfVH9bYXAL76IvQA==", + "dev": true + }, + "node_modules/@types/d3-scale": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-3.3.5.tgz", + "integrity": "sha512-YOpKj0kIEusRf7ofeJcSZQsvKbnTwpe1DUF+P2qsotqG53kEsjm7EzzliqQxMkAWdkZcHrg5rRhB4JiDOQPX+A==", + "dev": true, + "dependencies": { + "@types/d3-time": "^2" + } + }, + "node_modules/@types/d3-scale-chromatic": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-2.0.3.tgz", + "integrity": "sha512-/G5A5ioXNfOAb6E4X6YkJ9u0ryWLVrSkTwvO2DohXQ2zSvgqDOhWU/uj3JVhBrEnGiG+nQSjqXujsl710jSfMw==", + "dev": true + }, + "node_modules/@types/d3-selection": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-2.0.4.tgz", + "integrity": "sha512-5a21DF7avVPmiUau8KTsv5r76yGqbMgq4QtByoCBPXUrVFWFkd3Ob4OOhmePNRbQqfUCNFjgB4sO7sUURnKcBg==", + "dev": true + }, + "node_modules/@types/d3-shape": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-2.1.6.tgz", + "integrity": "sha512-UvUXi3uJk7i9gstNlyh/+lidKy96AVp6lG6it586lYVIHjS2oRKkOSfaWdON6+Ziu+EqB8kbN3onxk+eP2wSmw==", + "dev": true, + "dependencies": { + "@types/d3-path": "^2" + } + }, + "node_modules/@types/d3-time": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-2.1.4.tgz", + "integrity": "sha512-BTfLsxTeo7yFxI/haOOf1ZwJ6xKgQLT9dCp+EcmQv87Gox6X+oKl4mLKfO6fnWm3P22+A6DknMNEZany8ql2Rw==", + "dev": true + }, + "node_modules/@types/d3-time-format": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-3.0.4.tgz", + "integrity": "sha512-or9DiDnYI1h38J9hxKEsw513+KVuFbEVhl7qdxcaudoiqWWepapUen+2vAriFGexr6W5+P4l9+HJrB39GG+oRg==", + "dev": true + }, + "node_modules/@types/d3-timer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-2.0.3.tgz", + "integrity": "sha512-jhAJzaanK5LqyLQ50jJNIrB8fjL9gwWZTgYjevPvkDLMU+kTAZkYsobI59nYoeSrH1PucuyJEi247Pb90t6XUg==", + "dev": true + }, + "node_modules/@types/d3-transition": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-2.0.5.tgz", + "integrity": "sha512-G+ne0FD8EK76ejXuB1sszSoPRDdTf+FDx6D3ilwYehfcQpo3WAY0xxkjXTQiP9Tu26qSNA7kyZ07PXZPby/Gdg==", + "dev": true, + "dependencies": { + "@types/d3-selection": "^2" + } + }, + "node_modules/@types/d3-zoom": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-2.0.7.tgz", + "integrity": "sha512-JWke4E8ZyrKUQ68ESTWSK16fVb0OYnaiJ+WXJRYxKLn4aXU0o4CLYxMWBEiouUfO3TTCoyroOrGPcBG6u1aAxA==", + "dev": true, + "dependencies": { + "@types/d3-interpolate": "^2", + "@types/d3-selection": "^2" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/fs-extra": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz", + "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/geojson": { + "version": "7946.0.13", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.13.tgz", + "integrity": "sha512-bmrNrgKMOhM3WsafmbGmC+6dsF2Z308vLFsQ3a/bT8X8Sv5clVYpPars/UPq+sAaJP+5OoLAYgwbkS5QEJdLUQ==", + "dev": true + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.1.tgz", + "integrity": "sha512-HhmzZh5LSJNS5O8jQKpJ/3ZcrrlG6L70hpGqMIAoM9YVD0YBRNWYsfwcXq8VnSjlNpCpgLzMXdiPo+dxcvSmiA==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, + "node_modules/@types/sprintf-js": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@types/sprintf-js/-/sprintf-js-1.1.4.tgz", + "integrity": "sha512-aWK1reDYWxcjgcIIPmQi3u+OQDuYa9b+lr6eIsGWrekJ9vr1NSjr4Eab8oQ1iKuH1ltFHpXGyerAv1a3FMKxzQ==", + "dev": true + }, + "node_modules/@types/tern": { + "version": "0.23.7", + "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.7.tgz", + "integrity": "sha512-0YS9XCZ0LAhlP11HV9SqncUYyz9Ggsgc7Om/AmchKvoeFyj0qPaJmX6rJ93mJVExizWDzUMb49gAtVpI1uHd8Q==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-cyan": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", + "integrity": "sha512-eCjan3AVo/SxZ0/MyIYRtkpxIu/H3xZN7URr1vXVrISxeyz8fUFz0FJziamK4sS8I+t35y4rHg1b2PklyBe/7A==", + "dev": true, + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==", + "dev": true, + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-red": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", + "integrity": "sha512-ewaIr5y+9CUTGFwZfpECUbFlGcC0GCw1oqR9RI6h1gQCd9Aj2GxSckCnPsVJnmfMZbwFYE+leZGASgkWl06Jow==", + "dev": true, + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", + "integrity": "sha512-t5db90jq+qdgk8aFnxEkjqta0B/GHrM1pxzuuZz2zWsOXc5nKu3t+76s/PQBA8FTcM/ipspIH9jWG4OxCBc2eA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha512-3vqtKL1N45I5dV0RdssXZG7X6pCqQrWPNOlBPZPrd+QkE2HEhR57Z04m0KtpbsZH73j+a3F8UD1TQnn+ExTvIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/braces/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==", + "dev": true + }, + "node_modules/cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "node_modules/cloneable-readable/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/cloneable-readable/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/cloneable-readable/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "dev": true + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/d3": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.8.5.tgz", + "integrity": "sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA==", + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz", + "integrity": "sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha512-GODcnWq3YGoTnygPfi02ygEiRxqUxpJwuRHjdhJYuxpcZmDq4rjBiXYmbCCzStxo176ixfLT6i4NPwQooRySnw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delaunator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", + "dependencies": { + "robust-predicates": "^3.0.0" + } + }, + "node_modules/deprecated": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", + "integrity": "sha512-BRACtc6B1mJe2J2mruHFqHWrtLy0Qppu/7LKdqWH3o/9j1L/1phPUaQV+2S3H8ZDW0k6h+NEOKcHBDRikWLiOA==", + "dev": true, + "engines": { + "node": ">= 0.9" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha512-+AWBwjGadtksxjOQSFDhPNQbed7icNXApT4+2BNpsXzcCBiInq2H9XW0O8sfHFaPmnQRs7cg/P0fAr2IWQSW0g==", + "dev": true, + "dependencies": { + "readable-stream": "~1.1.9" + } + }, + "node_modules/end-of-stream": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", + "integrity": "sha512-go5TQkd0YRXYhX+Lc3UrXkoKU5j+m72jEP5lHWr2Nh82L8wfZtH8toKgcg4T10o23ELIMGXQdwCbl+qAXIPDrw==", + "dev": true, + "dependencies": { + "once": "~1.3.0" + } + }, + "node_modules/end-of-stream/node_modules/once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "dependencies": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-glob/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-glob/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/fast-glob/node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/fast-glob/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fill-range/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-index": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", + "integrity": "sha512-uJ5vWrfBKMcE6y2Z8834dwEZj9mNGxYa3t3I53OwFeuZ8D9oc2E5zcsrkuhX6h4iYrjhiv0T3szQmxlAV9uxDg==", + "dev": true + }, + "node_modules/findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==", + "dev": true, + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/findup-sync/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/first-chunk-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", + "integrity": "sha512-ArRi5axuv66gEsyl3UuK80CzW7t56hem73YGNYxNWTGNKFJUadSb9Gu9SHijYEUi8ulQMf1bJomYNwSCPHhtTQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "dev": true, + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gaze": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", + "integrity": "sha512-3IWbXGkDDHFX8zIlNdfnmhvlSMhpBO6tDr4InB8fGku6dh/gjFPGNqcdsXJajZg05x9jRzXbL6gCnCnuMap4tw==", + "dev": true, + "dependencies": { + "globule": "~0.1.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-stream": { + "version": "3.1.18", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", + "integrity": "sha512-owHtlMMXIAbxLjhUAO0HhW1/TB7kV0AwDduI3BLbYsWCaRzNIcLBu8N0wHZft2Za2SCmUXCEOdpZzC7k/H19eg==", + "dev": true, + "dependencies": { + "glob": "^4.3.1", + "glob2base": "^0.0.12", + "minimatch": "^2.0.1", + "ordered-read-streams": "^0.1.0", + "through2": "^0.6.1", + "unique-stream": "^1.0.0" + }, + "engines": { + "node": ">= 0.9" + } + }, + "node_modules/glob-stream/node_modules/glob": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "integrity": "sha512-I0rTWUKSZKxPSIAIaqhSXTM/DiII6wame+rEC3cFA5Lqmr9YmdL7z6Hj9+bdWtTvoY1Su4/OiMLmb37Y7JzvJQ==", + "dev": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^2.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-stream/node_modules/minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha512-jQo6o1qSVLEWaw3l+bwYA2X0uLuK2KjNh2wjgO7Q/9UJnXr1Q3yQKR8BI0/Bt/rPg75e6SMW4hW/6cBHVTZUjA==", + "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", + "dev": true, + "dependencies": { + "brace-expansion": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-stream/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/glob-stream/node_modules/through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", + "dev": true, + "dependencies": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "node_modules/glob-watcher": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", + "integrity": "sha512-lzYWq1BJLBmtb9rzT6+lgbFlEW6Sc7B+Qs3RmsNA9lbdFSqLHhebfypPR3nbEOMeEQyawVXqSDH0aqjtImldow==", + "dev": true, + "dependencies": { + "gaze": "^0.5.1" + }, + "engines": { + "node": ">= 0.9" + } + }, + "node_modules/glob2base": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", + "integrity": "sha512-ZyqlgowMbfj2NPjxaZZ/EtsXlOch28FRXgMd64vqZWk1bT9+wvSRLYD1om9M7QfQru51zJPAT17qXm4/zd+9QA==", + "dev": true, + "dependencies": { + "find-index": "^0.1.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", + "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/globule": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "integrity": "sha512-3eIcA2OjPCm4VvwIwZPzIxCVssA8HSpM2C6c6kK5ufJH4FGwWoyqL3In19uuX4oe+TwH3w2P1nQDmW56iehO4A==", + "dev": true, + "dependencies": { + "glob": "~3.1.21", + "lodash": "~1.0.1", + "minimatch": "~0.2.11" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/globule/node_modules/glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha512-ANhy2V2+tFpRajE3wN4DhkNQ08KDr0Ir1qL12/cUe5+a7STEK8jkW4onUYuY8/06qAFuT5je7mjAqzx0eKI2tQ==", + "dev": true, + "dependencies": { + "graceful-fs": "~1.2.0", + "inherits": "1", + "minimatch": "~0.2.11" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globule/node_modules/graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha512-iiTUZ5vZ+2ZV+h71XAgwCSu6+NAizhFU3Yw8aC/hH5SQ3SnISqEqAek40imAFGtDcwJKNhXvSY+hzIolnLwcdQ==", + "deprecated": "please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/globule/node_modules/inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha512-Al67oatbRSo3RV5hRqIoln6Y5yMVbJSIn4jEJNL7VCImzq/kLr7vvb6sFRJXqr8rpHc/2kJOM+y0sPKN47VdzA==", + "dev": true + }, + "node_modules/globule/node_modules/minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha512-zZ+Jy8lVWlvqqeM8iZB7w7KmQkoJn8djM585z88rywrEbzoqawVa9FR5p2hwD+y74nfuKOjmNvi9gtWJNLqHvA==", + "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", + "dev": true, + "dependencies": { + "lru-cache": "2", + "sigmund": "~1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "dependencies": { + "sparkles": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/gulp": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", + "integrity": "sha512-6FHNdR+VG1LcPz6gZGGqgvimWWGtl4x3FvshAdK/UnAjU7aFOyzft3Fjp35r0Y3ZF4u8vND0S4nGsIB/sxTqzQ==", + "dev": true, + "dependencies": { + "archy": "^1.0.0", + "chalk": "^1.0.0", + "deprecated": "^0.0.1", + "gulp-util": "^3.0.0", + "interpret": "^1.0.0", + "liftoff": "^2.1.0", + "minimist": "^1.1.0", + "orchestrator": "^0.3.0", + "pretty-hrtime": "^1.0.0", + "semver": "^4.1.0", + "tildify": "^1.0.0", + "v8flags": "^2.0.2", + "vinyl-fs": "^0.3.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.9" + } + }, + "node_modules/gulp-util": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha512-q5oWPc12lwSFS9h/4VIjG+1NuNDlJ48ywV2JKItY4Ycc/n1fXJeYPVQsfu5ZrhQi7FGSDBalwUCLar/GyHXKGw==", + "deprecated": "gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5", + "dev": true, + "dependencies": { + "array-differ": "^1.0.0", + "array-uniq": "^1.0.2", + "beeper": "^1.0.0", + "chalk": "^1.0.0", + "dateformat": "^2.0.0", + "fancy-log": "^1.1.0", + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "lodash._reescape": "^3.0.0", + "lodash._reevaluate": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.template": "^3.0.0", + "minimist": "^1.1.0", + "multipipe": "^0.1.2", + "object-assign": "^3.0.0", + "replace-ext": "0.0.1", + "through2": "^2.0.0", + "vinyl": "^0.5.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/gulp-zip": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/gulp-zip/-/gulp-zip-4.2.0.tgz", + "integrity": "sha512-I+697f6jf+PncdTrqfuwoauxgnLG1yHRg3vlmvDgmJuEnlEHy4meBktJ/oHgfyg4tp6X25wuZqUOraVeVg97wQ==", + "dev": true, + "dependencies": { + "get-stream": "^3.0.0", + "plugin-error": "^0.1.2", + "through2": "^2.0.1", + "vinyl": "^2.1.0", + "yazl": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/gulp-zip/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/gulp-zip/node_modules/clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", + "dev": true + }, + "node_modules/gulp-zip/node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-zip/node_modules/vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==", + "dev": true, + "dependencies": { + "glogg": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha512-+F4GzLjwHNNDEAJW2DC1xXfEoPkRDmUdJ7CBYw4MpqtDwOnqdImJl7GWlpqx+Wko6//J8uKTnIe4wZSv7yCqmw==", + "dev": true, + "dependencies": { + "sparkles": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsep": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.3.8.tgz", + "integrity": "sha512-qofGylTGgYj9gZFsHuyWAN4jr35eJ66qJCK4eKDnldohuUoQFbU3iZn2zjvEbd9wOAhP9Wx5DsAAduTyE1PSWQ==", + "engines": { + "node": ">= 10.16.0" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha512-01zfGFqfORP1CGmZZP2Zn51zsqz4RltDi0RDOhbGoLYdUT5Lw+I2gX6QdwXhPITF6hPOHEOp+At6/L24hIg9WQ==", + "dev": true, + "dependencies": { + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/lodash": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "integrity": "sha512-0VSEDVec/Me2eATuoiQd8IjyBMMX0fahob8YJ96V1go2RjvCk1m1GxmtfXn8RNSaLaTtop7fsuhhu9oLk3hUgA==", + "dev": true, + "engines": [ + "node", + "rhino" + ] + }, + "node_modules/lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ==", + "dev": true + }, + "node_modules/lodash._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha512-mTzAr1aNAv/i7W43vOR/uD/aJ4ngbtsRaCubp2BfZhlGU/eORUjg/7F6X0orNMdv33JOrdgGybtvMN/po3EWrA==", + "dev": true + }, + "node_modules/lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha512-H94wl5P13uEqlCg7OcNNhMQ8KvWSIyqXzOPusRgHC9DK3o54P6P3xtbXlVbRABG4q5gSmp7EDdJ0MSuW9HX6Mg==", + "dev": true + }, + "node_modules/lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==", + "dev": true + }, + "node_modules/lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ==", + "dev": true + }, + "node_modules/lodash._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha512-Sjlavm5y+FUVIF3vF3B75GyXrzsfYV8Dlv3L4mEpuB9leg8N6yf/7rU06iLPx9fY0Mv3khVp9p7Dx0mGV6V5OQ==", + "dev": true + }, + "node_modules/lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha512-OrPwdDc65iJiBeUe5n/LIjd7Viy99bKwDdk7Z5ljfZg0uFRFlfQaCy9tZ4YMAag9WAZmlVpe1iZrkIMMSMHD3w==", + "dev": true + }, + "node_modules/lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", + "dev": true + }, + "node_modules/lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha512-O0pWuFSK6x4EXhM1dhZ8gchNtG7JMqBtrHdoUFUWXD7dJnNSUze1GuyQr5sOs0aCvgGeI3o/OJW8f4ca7FDxmQ==", + "dev": true + }, + "node_modules/lodash.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha512-n1PZMXgaaDWZDSvuNZ/8XOcYO2hOKDqZel5adtR30VKQAtoWs/5AOeFA0vPV8moiPzlqe7F4cP2tzpFewQyelQ==", + "dev": true, + "dependencies": { + "lodash._root": "^3.0.0" + } + }, + "node_modules/lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", + "dev": true + }, + "node_modules/lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==", + "dev": true + }, + "node_modules/lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ==", + "dev": true, + "dependencies": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "node_modules/lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw==", + "dev": true + }, + "node_modules/lodash.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha512-0B4Y53I0OgHUJkt+7RmlDFWKjVAI/YUpWNiL9GQz5ORDr4ttgfQGo+phBWKFLJbBdtOwgMuUkdOHOnPg45jKmQ==", + "dev": true, + "dependencies": { + "lodash._basecopy": "^3.0.0", + "lodash._basetostring": "^3.0.0", + "lodash._basevalues": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0", + "lodash.keys": "^3.0.0", + "lodash.restparam": "^3.0.0", + "lodash.templatesettings": "^3.0.0" + } + }, + "node_modules/lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha512-TcrlEr31tDYnWkHFWDCV3dHYroKEXpJZ2YJYvJdhN+y4AkWMDZ5I4I8XDtUKqSAyG81N7w+I1mFEJtcED+tGqQ==", + "dev": true, + "dependencies": { + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0" + } + }, + "node_modules/lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha512-WpibWJ60c3AgAz8a2iYErDrcT2C7OmKnsWhIcHOjkUHFjkXncJhtLxNSqUmxRxRunpb5I8Vprd7aNSd2NtksJQ==", + "dev": true + }, + "node_modules/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/multipipe": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha512-7ZxrUybYv9NonoXgwoOqtStIu18D1c3eFZj27hqgf5kBrBF8Q+tE8V0MW8dKM5QLkQPh1JhhbKgHLY9kifov4Q==", + "dev": true, + "dependencies": { + "duplexer2": "0.0.2" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natives": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz", + "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==", + "deprecated": "This module relies on Node.js's internals and will break at some point. Do not use it, and update to graceful-fs@4.x.", + "dev": true + }, + "node_modules/object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", + "dev": true, + "dependencies": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", + "dev": true, + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/obsidian": { + "version": "1.4.11", + "resolved": "https://github.com/obsidianmd/obsidian-api/tarball/master", + "integrity": "sha512-erAaIpFoS77/0/Z2EdNXMI5Kd0jTZvS17Cl/753klHvV7IFgdqD7GPUmiACPN52yOc6iHBwuDuPR1sv6Lz6DCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/codemirror": "5.60.8", + "moment": "2.29.4" + }, + "peerDependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/orchestrator": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", + "integrity": "sha512-DrQ43ngaJ0e36j2CHyoDoIg1K4zbc78GnTQESebK9vu6hj4W5/pvfSFO/kgM620Yd0YnhseSNYsLK3/SszZ5NQ==", + "dev": true, + "dependencies": { + "end-of-stream": "~0.1.5", + "sequencify": "~0.0.7", + "stream-consume": "~0.1.0" + } + }, + "node_modules/ordered-read-streams": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", + "integrity": "sha512-PMX5ehiNri4+lgk9fl09xuPeciGmyPyVUSBwwPT4C/3EHGxoVf7UdgKDE3SLBD4pUDmlzrg1L1cK5igrp+Tyuw==", + "dev": true + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "dev": true, + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/plugin-error": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", + "integrity": "sha512-WzZHcm4+GO34sjFMxQMqZbsz3xiNEgonCskQ9v+IroMmYgk/tas8dG+Hr2D6IbRPybZ12oWpzE/w3cGJ6FJzOw==", + "dev": true, + "dependencies": { + "ansi-cyan": "^0.1.1", + "ansi-red": "^0.1.1", + "arr-diff": "^1.0.1", + "arr-union": "^2.0.1", + "extend-shallow": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/arr-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", + "integrity": "sha512-OQwDZUqYaQwyyhDJHThmzId8daf4/RFNLaeh3AevmSeZ5Y7ug4Ga/yKc6l6kTZOBW781rCj103ZuTh8GAsB3+Q==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.0.1", + "array-slice": "^0.2.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/extend-shallow": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", + "integrity": "sha512-L7AGmkO6jhDkEBBGWlLtftA80Xq8DipnrRPr0pyi7GQLXkaq9JYA4xF4z6qnadIC6euiTDKco0cGSU9muw+WTw==", + "dev": true, + "dependencies": { + "kind-of": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/kind-of": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", + "integrity": "sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/robust-predicates": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" + }, + "node_modules/rollup": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.4.1.tgz", + "integrity": "sha512-idZzrUpWSblPJX66i+GzrpjKE3vbYrlWirUHteoAbjKReZwa0cohAErOYA5efoMmNCdvG9yrJS+w9Kl6csaH4w==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.4.1", + "@rollup/rollup-android-arm64": "4.4.1", + "@rollup/rollup-darwin-arm64": "4.4.1", + "@rollup/rollup-darwin-x64": "4.4.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.4.1", + "@rollup/rollup-linux-arm64-gnu": "4.4.1", + "@rollup/rollup-linux-arm64-musl": "4.4.1", + "@rollup/rollup-linux-x64-gnu": "4.4.1", + "@rollup/rollup-linux-x64-musl": "4.4.1", + "@rollup/rollup-win32-arm64-msvc": "4.4.1", + "@rollup/rollup-win32-ia32-msvc": "4.4.1", + "@rollup/rollup-win32-x64-msvc": "4.4.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-copy": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-copy/-/rollup-plugin-copy-3.5.0.tgz", + "integrity": "sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA==", + "dev": true, + "dependencies": { + "@types/fs-extra": "^8.0.1", + "colorette": "^1.1.0", + "fs-extra": "^8.1.0", + "globby": "10.0.1", + "is-plain-object": "^3.0.0" + }, + "engines": { + "node": ">=8.3" + } + }, + "node_modules/rollup-plugin-copy/node_modules/is-plain-object": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", + "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha512-IrpJ+yoG4EOH8DFWuVg+8H1kW1Oaof0Wxe7cPcXW3x9BjkN/eVo54F15LyqemnDIUYskQWr9qvl/RihmSy6+xQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/sequencify": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", + "integrity": "sha512-YL8BPm0tp6SlXef/VqYpA/ijmTsDP2ZEXzsnqjkaWS7NP7Bfvw18NboL0O8WCIjy67sOCG3MYSK1PB4GC9XdtQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/smob": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.4.1.tgz", + "integrity": "sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==", + "dev": true + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true + }, + "node_modules/sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/stream-consume": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz", + "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==", + "dev": true + }, + "node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", + "integrity": "sha512-qVAeAIjblKDp/8Cd0tJdxpe3Iq/HooI7En98alEaMbz4Wedlrcj3WI72dDQSrziRW5IQ0zeBo3JXsmS8RcS9jg==", + "dev": true, + "dependencies": { + "first-chunk-stream": "^1.0.0", + "is-utf8": "^0.2.0" + }, + "bin": { + "strip-bom": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/style-mod": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.0.tgz", + "integrity": "sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==", + "dev": true, + "peer": true + }, + "node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/terser": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", + "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/tildify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", + "integrity": "sha512-Y9q1GaV/BO65Z9Yf4NOGMuwt3SGdptkZBnaaKfTQakrDyCLiuO1Kc5wxW4xLdsjzunRtqtOdhekiUFmZbklwYQ==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/union-value/node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", + "integrity": "sha512-L8KM6TdpsoBk6TJTXevbmpub3bATS06Znu3BcfVPVQkFtnh1MFeCZ3gFKCQcji7f7YYiigsO5OR99vqhoNT8nQ==", + "dev": true + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha512-aggiKfEEubv3UwRNqTzLInZpAOmKzwdHqEBmW/hBA/mt99eg+b4VrX6i+IRLxU8+WJYfa33rGwRseg4eElUgsQ==", + "dev": true, + "bin": { + "user-home": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha512-SKfhk/LlaXzvtowJabLZwD4K6SGRYeoxA7KJeISlUMAB/NT4CBkZjMq3WceX2Ckm4llwqYVo8TICgsDYCBU2tA==", + "dev": true, + "dependencies": { + "user-home": "^1.1.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/vinyl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha512-P5zdf3WB9uzr7IFoVQ2wZTmUwHL8cMZWJGzLBNCHNZ3NB6HTMsYABtt7z8tAGIINLXyAob9B9a1yzVGMFOYKEA==", + "dev": true, + "dependencies": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + }, + "engines": { + "node": ">= 0.9" + } + }, + "node_modules/vinyl-fs": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", + "integrity": "sha512-9CTKjt8378nhdydwFDTwywKio0n8aqq6xA70g0uypcnTNSCow/gQOwv0L9E2GaKd7EQ3kZl/diBxPSCgcBXESw==", + "dev": true, + "dependencies": { + "defaults": "^1.0.0", + "glob-stream": "^3.1.5", + "glob-watcher": "^0.0.6", + "graceful-fs": "^3.0.0", + "mkdirp": "^0.5.0", + "strip-bom": "^1.0.0", + "through2": "^0.6.1", + "vinyl": "^0.4.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs/node_modules/clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha512-g62n3Kb9cszeZvmvBUqP/dsEJD/+80pDA8u8KqHnAPrVnQ2Je9rVV6opxkhuWCd1kCn2gOibzDKxCtBvD3q5kA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/vinyl-fs/node_modules/graceful-fs": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.12.tgz", + "integrity": "sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg==", + "dev": true, + "dependencies": { + "natives": "^1.1.3" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/vinyl-fs/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/vinyl-fs/node_modules/through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", + "dev": true, + "dependencies": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "node_modules/vinyl-fs/node_modules/vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha512-pmza4M5VA15HOImIQYWhoXGlGNafCm0QK5BpBUXkzzEwrRxKqBsbAhTfkT2zMcJhUX1G1Gkid0xaV8WjOl7DsA==", + "dev": true, + "dependencies": { + "clone": "^0.2.0", + "clone-stats": "^0.0.1" + }, + "engines": { + "node": ">= 0.9" + } + }, + "node_modules/w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", + "dev": true, + "peer": true + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yazl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", + "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3" + } + } + } +} diff --git a/package.json b/package.json index 0e7d909..dce1145 100644 --- a/package.json +++ b/package.json @@ -4,35 +4,33 @@ "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { - "dev": "rollup --config rollup.config.dev.js -w", - "build": "rollup --config rollup.config.build.js", + "dev": "rollup --config rollup.config.dev.mjs -w", + "build": "rollup --config rollup.config.build.mjs", "zip": "gulp" }, "keywords": [], "author": "pyrochlore", "license": "MIT", "devDependencies": { - "@rollup/plugin-commonjs": "^15.1.0", - "@rollup/plugin-node-resolve": "^9.0.0", - "@rollup/plugin-typescript": "^6.0.0", - "@types/d3": "^6.3.0", - "@types/moment": "^2.13.0", - "@types/node": "^14.14.2", - "@types/sprintf-js": "^1.1.2", - "@types/yaml": "^1.9.7", - "gulp": "^4.0.2", - "gulp-zip": "^5.1.0", + "@rollup/plugin-commonjs": "^25.0.7", + "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/plugin-terser": "^0.4.4", + "@rollup/plugin-typescript": "^11.1.5", + "@types/d3": "^7.4.3", + "@types/node": "^20.9.1", + "@types/sprintf-js": "^1.1.4", + "gulp": "^3.9.1", + "gulp-zip": "^4.2.0", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^2.32.1", - "rollup-plugin-copy": "^3.4.0", - "rollup-plugin-terser": "^7.0.2", - "tslib": "^2.0.3", - "typescript": "^4.0.3" + "rollup": "^4.4.1", + "rollup-plugin-copy": "^3.5.0", + "tslib": "^2.6.2", + "typescript": "^5.2.2" }, "dependencies": { - "d3": "^6.5.0", + "d3": "^7.8.5", "d3-interpolate": "^3.0.1", - "jsep": "^0.4.0", - "sprintf-js": "^1.1.2" + "jsep": "^1.3.8", + "sprintf-js": "^1.1.3" } } diff --git a/rollup.config.build.js b/rollup.config.build.mjs similarity index 93% rename from rollup.config.build.js rename to rollup.config.build.mjs index 9436f78..f5313c8 100644 --- a/rollup.config.build.js +++ b/rollup.config.build.mjs @@ -1,7 +1,7 @@ import typescript from '@rollup/plugin-typescript'; import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; -import { terser } from "rollup-plugin-terser"; +import terser from "@rollup/plugin-terser"; export default { input: 'src/main.ts', diff --git a/rollup.config.dev.js b/rollup.config.dev.mjs similarity index 100% rename from rollup.config.dev.js rename to rollup.config.dev.mjs From ff4628d004da0cba3a659f1e68d1932ab30612ba Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Thu, 16 Nov 2023 20:00:03 -0700 Subject: [PATCH 163/277] Release 1.13.0 --- README.md | 33 ++++++++++++++---- docs/ReleaseNotes.md | 79 ++++++++++++++++++++++++++++++++++---------- manifest.json | 2 +- package.json | 2 +- versions.json | 3 +- 5 files changed, 92 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index e47a2e9..b0acf0e 100644 --- a/README.md +++ b/README.md @@ -10,49 +10,66 @@ This is an [Obsidian](https://obsidian.md/) plugin that helps you collect data f ## What's New +Version 1.13.0 + +- Add support for inline dataview fields (including emoji support for values) +- Update dependencies + Version 1.12.0 -* Add aspect ratio parameter for graphs -* Reorganize release notes in readme to be in descending order (latest release first) + +- Add aspect ratio parameter for graphs +- Reorganize release notes in readme to be in descending order (latest release first) Version 1.11.0 -* Add support for checkboxes in new properties added in Obsidian 1.4 -* Fix typos in documentation and examples + +- Add support for checkboxes in new properties added in Obsidian 1.4 +- Fix typos in documentation and examples Version 1.10.9 + - Replace tab characters by spaces - Accept more unicode characters in dvField - Allow emojis in the folder path - Fixed bugs Version 1.10.8 + - Fixed startDat/endDate misread as a relative date Version 1.10.7 + - Allow using html image tags as emoji inputs Version 1.10.6 + - Fixed the coloring for missing data in the month view Version 1.10.5 + - Allow using a relative date value in `initMonth` in the month view Version 1.10.4 + - Allow using a regular expression as a key of the parameter `textValueMap` - Add a parameter `shiftOnlyValueLargerThan` to determine when to do `valueShift` - Fixed bugs reported by users - Fixed typo in plugin settings Version 1.10.3 + - Allow using the parameter `fitPanelWidth` with the output type `month` and `pie` - Fixed the resizing and positioning of the chart tooltip Version 1.10.2 + - Fixed plugin not rendering on some macOS machines Version 1.10.1 + - Fixed 'failed to load plugin' on iOS Version 1.10.0 + - Add annotation mode for month view ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestCalendar.md)) - Add parameters `xAxisTickInterval`, `yAxisTickInterval`, `xAxisTickLabelFormat` and `yAxisTickLabelFormat` for the line and bar chart ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestAxisIntervalAndFormat.md)) - Allow using regular expression in parameter `dateFormatPrefix` and `dateFormatSuffix` ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md)) @@ -75,11 +92,12 @@ From version 1.9.0, template variables, e.g. '{{sum}}', are deprecated. Instead, For more use cases, please download and open the [examples](https://github.com/pyrochlore/obsidian-tracker/tree/master/examples) folder in obsidian with this plugin installed and enabled. ## More Details You May Want to Know + - [Installation](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Installation.md): Install the plugin from Obsidian or install it manually - [Concepts](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Concepts.md): Explain how this plugin works and what to setup - - [Target Evaluation](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/TargetEvaluation.md) - - [Input Parameters](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/InputParameters.md) - - [Expressions](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md) + - [Target Evaluation](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/TargetEvaluation.md) + - [Input Parameters](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/InputParameters.md) + - [Expressions](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md) - [Examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Examples.md) - [Plugin Settings](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Settings.md) - [Release Notes](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/ReleaseNotes.md) @@ -87,5 +105,6 @@ For more use cases, please download and open the [examples](https://github.com/p - [Frequently Asked Questions](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Questions.md) ## Support + - If you like this plugin or want to support further development, you can [Buy Me a Coffee](https://www.buymeacoffee.com/pyrochlore). - Please report bugs and request features in [GitHub Issues](https://github.com/pyrochlore/obsidian-tracker/issues) diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index 9453853..3876b5e 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,40 +1,65 @@ # Release Notes +## 1.13.0 + +- Add support for inline dataview fields (including emoji support for values) +- Update dependencies + +## 1.12.0 + +- Add aspect ratio parameter for graphs +- Reorganize release notes in readme to be in descending order (latest release first) + +## 1.11.0 + +- Add support for checkboxes in new properties added in Obsidian 1.4 +- Fix typos in documentation and examples + ## v1.10.9 + - Replace tab characters by spaces - Accept more unicode characters in dvField - Allow emojis in the folder path - Fixed bugs ## v1.10.8 + - Fixed startDat/endDate misread as a relative date ## v1.10.7 + - Allow using html image tags as emoji inputs ## v1.10.6 + - Fixed the coloring for missing data in the month view ## v1.10.5 + - Allow using a relative date value in `initMonth` in the month view ## v1.10.4 + - Allow using a regular expression as a key of the parameter `textValueMap` - Add a parameter `shiftOnlyValueLargerThan` to determine when to do `valueShift` - Fixed bugs reported by users - Fixed typo in plugin settings ## v1.10.3 + - Allow using the parameter `fitPanelWidth` with the output type `month` and `pie` - Fixed the resizing and positioning of the chart tooltip ## v1.10.2 + - Fixed plugin not rendering on some macOS machines ## v1.10.1 + - Fixed 'failed to load plugin' on iOS ## v1.10.0 + - Add annotation mode for month view ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestCalendar.md)) - Add parameters `xAxisTickInterval`, `yAxisTickInterval`, `xAxisTickLabelFormat` and `yAxisTickLabelFormat` for the line and bar chart ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestAxisIntervalAndFormat.md)) - Allow using regular expression in parameter `dateFormatPrefix` and `dateFormatSuffix` ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md)) @@ -44,72 +69,85 @@ - Enhanced error messages ## v1.9.2 + - Allow using seconds in time values - Fixed error parsing `dvField` ## v1.9.1 + - Fixed errors on collecting time values from `dvField` - Fixed errors on collecting wiki while fileCache.links is undefined ## v1.9.0 + - Add a new output type `pie`, rendering a pie chart ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md)) - Allow expressions (operators and functions) as data inputs for output type `summary`, `bullet`, and `pie` (examples: [expression](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md), [summary](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestSummary.md), [bullet](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestBullet.md), [pie](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md)) - Allow formatting evaluated expressions by a follwing format string ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md)) ## v1.8.2 + - Fixed tasks searching not working for multiple targets ## v1.8.1 + - Fixed bugs while using month view with parameter `xDataset` ## v1.8.0 + - Add a new `searchType` `task`, retrieving data from tasks ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTask.md)) - Enhancement - - Month view ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestCalendar.md)) - - Add parameter `circleColorByValue` to show color based on the value - - Support multiple targets (dataset), change the dataset by clicking the header - - Add a button (◦) to show current month - - Accept ISO-8601 date as `dateFormat` ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md#iso-8601-date-format)) - - Relative date input for `startDate` and `endDate` ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md#relative-date-input-for-startdate-and-enddate)) + - Month view ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestCalendar.md)) + - Add parameter `circleColorByValue` to show color based on the value + - Support multiple targets (dataset), change the dataset by clicking the header + - Add a button (◦) to show current month + - Accept ISO-8601 date as `dateFormat` ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md#iso-8601-date-format)) + - Relative date input for `startDate` and `endDate` ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md#relative-date-input-for-startdate-and-enddate)) - Fixed missing dvField values at the last line of files ## v1.7.0 + - Add a new output type 'month', rendering a month view for a given dataset ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestCalendar.md)) ## v1.6.1 + - Add new targets 'numWords', 'numChars', and 'numSentences' for input type 'fileMeta' ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestWordCounting.md)) ## v1.6.0 + - Add a new input type 'fileMeta', getting meta data from a file ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestFileMeta.md)) - Add a new output type 'bullet', rendering a bullet chart ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestBullet.md)) - Enhancement - - Accept tracking time values ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTimeValues.md)) - - Allow tracking nested values from front matter - - Allow using dataset with date values as xDataset ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestXDataset.md)) - - Add more template variables ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTemplateVariables.md)) - - Allow parsing date in wiki brackets + - Accept tracking time values ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTimeValues.md)) + - Allow tracking nested values from front matter + - Allow using dataset with date values as xDataset ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestXDataset.md)) + - Add more template variables ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTemplateVariables.md)) + - Allow parsing date in wiki brackets - Fixed bugs ## v1.5.1 + - Fixed labels not shown in light theme - Enhanced error handling for searchType 'table' ## v1.5.0 + - New searchType 'table', searching records from a given table - New searchType 'dvField', searching the inline fields used with Dataview plugin - Enhance multiple values extraction - - Allow using multiple values in searchType 'text' - - Allow using array values in searchType 'frontmatter' - - Allow using multiple values in searchType 'dvField' - - Allow using multiple values in searchType 'table' - - Allow using custom separator for multiple values extraction + - Allow using multiple values in searchType 'text' + - Allow using array values in searchType 'frontmatter' + - Allow using multiple values in searchType 'dvField' + - Allow using multiple values in searchType 'table' + - Allow using custom separator for multiple values extraction - Improved performance - Reduced package size ## v1.4.1 + - Enhanced error handling ## v1.4.0 + - Add a new parameter (fixedScale) for the scaling of the output chart - Add a new parameter (fitPanelWidth) to enable/disable the auto-scaling of the output chart - Add a new parameter (margin) to help to position the chart @@ -117,6 +155,7 @@ - Fixed bugs ## v1.3.0 + - Support reading and rendering multiple targets - Support reading and rendering multiple values (a tuple of values) under a target - New output type 'bar', rendering a bar chart @@ -124,33 +163,39 @@ - Fixed bugs ## v1.2.1 + - Fixed files with the specified dateFormat are not recognized - Restored the plugin's settings panel for dateFormat and folder ## v1.2.0 + - Enable using regular expression in text searching - New search type 'frontmatter', searching for key-value pairs in the front matter - New search type 'wiki', searching for wiki links - Reduced package size ## v1.1.0 + - New output type 'summary' - Add commands help create Tracker code blocks - Relaxed the regex for searching tags, allowing tags embedded in sentences - Fixed issues ## v1.0.2 + - Fixed the searching of nested tag in frontmatter - Reduced the package size by using the module from Obsidian ## v1.0.1 + - Remove dependencies to Node.js modules - Add example markdown files ## v1.0.0 + First version released at 2021-03-23 - Track simple tags, value-attached tags, and texts using code blocks - Represent the tracked data in a customizable line chart - Allow tracking in-line tags and tags in frontmatter -- Allow tracking nested tags \ No newline at end of file +- Allow tracking nested tags diff --git a/manifest.json b/manifest.json index 6b71779..6d55e6d 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.12.0", + "version": "1.13.0", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package.json b/package.json index dce1145..0e9409f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.12.0", + "version": "1.13.0", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index 93de177..acde4e3 100644 --- a/versions.json +++ b/versions.json @@ -30,5 +30,6 @@ "1.10.8": "0.9.12", "1.10.9": "0.9.12", "1.11.0": "0.9.12", - "1.12.0": "0.9.12" + "1.12.0": "0.9.12", + "1.13.0": "0.9.12" } From d2b443fa7b14e15093cc41f78545d6e53165a93c Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Thu, 16 Nov 2023 20:37:32 -0700 Subject: [PATCH 164/277] Fix packaging script --- gulpfile.js | 13 - package-lock.json | 3685 ++++++--------------------------------------- package.json | 4 +- 3 files changed, 432 insertions(+), 3270 deletions(-) delete mode 100644 gulpfile.js diff --git a/gulpfile.js b/gulpfile.js deleted file mode 100644 index a321f1c..0000000 --- a/gulpfile.js +++ /dev/null @@ -1,13 +0,0 @@ -const { src, dest } = require("gulp"); -const zip = require("gulp-zip"); -const fs = require("fs"); - -const manifest = fs.readFileSync("./manifest.json"); -var version = JSON.parse(manifest)["version"]; -var zipFileName = "obsidian-tracker-v" + version + ".zip"; - -exports.default = function () { - return src(["main.js", "manifest.json", "styles.css"]) - .pipe(zip(zipFileName)) - .pipe(dest(".")); -}; diff --git a/package-lock.json b/package-lock.json index 29afbe7..5387a69 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "obsidian-tracker", - "version": "1.13.0", + "version": "1.13.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "obsidian-tracker", - "version": "1.13.0", + "version": "1.13.1", "license": "MIT", "dependencies": { "d3": "^7.8.5", @@ -22,8 +22,6 @@ "@types/d3": "^7.4.3", "@types/node": "^20.9.1", "@types/sprintf-js": "^1.1.4", - "gulp": "^3.9.1", - "gulp-zip": "^4.2.0", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.4.1", "rollup-plugin-copy": "^3.5.0", @@ -168,46 +166,6 @@ } } }, - "node_modules/@rollup/plugin-commonjs/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@rollup/plugin-commonjs/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@rollup/plugin-commonjs/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@rollup/plugin-node-resolve": { "version": "15.2.3", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", @@ -507,218 +465,218 @@ } }, "node_modules/@types/d3-array": { - "version": "2.12.7", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-2.12.7.tgz", - "integrity": "sha512-SVvxzxRVnIgtJbNTj5ZVJ9CZkVOANCpW0nQbRi7EOU5Q9G+JQQjXD2SCpr1OYCX09b3Yr7o0+CBofZAgU42rbQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", + "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", "dev": true }, "node_modules/@types/d3-axis": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-2.1.6.tgz", - "integrity": "sha512-X/CazlQun7XcSbRhaxwr605neUIGiUeURvsOGAIdvH1nD6o25pzkdxPNe7XcTKyRJeShlubjsUEG9tNeZZdRaQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", + "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", "dev": true, "dependencies": { - "@types/d3-selection": "^2" + "@types/d3-selection": "*" } }, "node_modules/@types/d3-brush": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-2.1.5.tgz", - "integrity": "sha512-ycizd1l+vIceUIO+JA6HAjivlXSGlDbqKXe4Q8cjUPtY/NMkz6CvpcBqzLPRa9iMDqRnUQHwSIEakb0sX+PM2A==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", + "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", "dev": true, "dependencies": { - "@types/d3-selection": "^2" + "@types/d3-selection": "*" } }, "node_modules/@types/d3-chord": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-2.0.6.tgz", - "integrity": "sha512-PTZyfJ7z9Ttl7joKRfyBl0icMYAMRj4n5trsE9Iinipp8Fe0DlwK6xwboWWMTEaj6Vzko68brnpvpoDl4qAKwA==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", + "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", "dev": true }, "node_modules/@types/d3-color": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-2.0.6.tgz", - "integrity": "sha512-tbaFGDmJWHqnenvk3QGSvD3RVwr631BjKRD7Sc7VLRgrdX5mk5hTyoeBL6rXZaeoXzmZwIl1D2HPogEdt1rHBg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", "dev": true }, "node_modules/@types/d3-contour": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-2.0.7.tgz", - "integrity": "sha512-oJNOYtQzKY+04lhEr4aTnW2IrCVK5jiF2YMJf687HV5dIGsOgM8Xc15uSuu9zu4FYOJJ/FTqVaspHFR9pxVNTg==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", + "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", "dev": true, "dependencies": { - "@types/d3-array": "^2", + "@types/d3-array": "*", "@types/geojson": "*" } }, "node_modules/@types/d3-delaunay": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-5.3.4.tgz", - "integrity": "sha512-GEQuDXVKQvHulQ+ecKyCubOmVjXrifAj7VR26rWVAER/IbWemaT/Tmo84ESiTtoDghg5ILdMZH7pYXQEt/Vu9A==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", "dev": true }, "node_modules/@types/d3-dispatch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-2.0.4.tgz", - "integrity": "sha512-63uJJO3Eflu1tYXjD+Gmkk5Bc/ribIWyCnOfAY+WB9ihBw7Tdd1IRKZ34ASxy+Dzlg+lOT5+ZHCSZw0V+UNAEQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz", + "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==", "dev": true }, "node_modules/@types/d3-drag": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-2.0.5.tgz", - "integrity": "sha512-VbvN7t3TelH6R0cKVXkOXmDiC7pRhtoodiPZ94p0n9TayGqg0Z/5vSxsPelVsZyVzloEo2kdZ7BO1n9ezWux+w==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", "dev": true, "dependencies": { - "@types/d3-selection": "^2" + "@types/d3-selection": "*" } }, "node_modules/@types/d3-dsv": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-2.0.9.tgz", - "integrity": "sha512-mjbmiSz8p7rCCyan4Ai6Rxqtp4MW447RfyKPfE1VaFl61l/nkLsFObF26X279eQMjHqGKDI2kdx26qEdkLAVBQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", + "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", "dev": true }, "node_modules/@types/d3-ease": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-2.0.4.tgz", - "integrity": "sha512-DGh1MzShlCPTTau4+C8JLJjKt9sT9LgGZokYFx8fSxy+Z6fHns/Lc+lwTc4owuq8FwCDg7Mw2/mp0G8S5DBm7Q==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", "dev": true }, "node_modules/@types/d3-fetch": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-2.0.5.tgz", - "integrity": "sha512-azKhvVVUbAK6sJy22b9t8TtsGmPlauU9aGVLSP5cGYSWMCbtMRf3nGz58Eu+UgP1u3VEK+12JVc4HB1MMeVaSg==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", + "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", "dev": true, "dependencies": { - "@types/d3-dsv": "^2" + "@types/d3-dsv": "*" } }, "node_modules/@types/d3-force": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-2.1.7.tgz", - "integrity": "sha512-x5pvWw0HUBrcpMaMOd70ICEL27gOeC9hyhilTc+OP+4tErgEg3w+fZWA475eTrG7gi8BB0TNdfGRprpy09Vo9A==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.9.tgz", + "integrity": "sha512-IKtvyFdb4Q0LWna6ymywQsEYjK/94SGhPrMfEr1TIc5OBeziTi+1jcCvttts8e0UWZIxpasjnQk9MNk/3iS+kA==", "dev": true }, "node_modules/@types/d3-format": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-2.0.5.tgz", - "integrity": "sha512-ntJZQfz4BK8m53vkUVk+3PE7PHr9esrfVkClxebcMNP/4N1F0rPdzv9hKNqx2gZBRHSYg1kQumeUDIrHDpQGwQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", + "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", "dev": true }, "node_modules/@types/d3-geo": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-2.0.7.tgz", - "integrity": "sha512-RIXlxPdxvX+LAZFv+t78CuYpxYag4zuw9mZc+AwfB8tZpKU90rMEn2il2ADncmeZlb7nER9dDsJpRisA3lRvjA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", "dev": true, "dependencies": { "@types/geojson": "*" } }, "node_modules/@types/d3-hierarchy": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-2.0.5.tgz", - "integrity": "sha512-t/xXqB6MXT6Hp0BgFV00ZonpZbs9fUtYPM3QzqOlmghefovpnnxEN7mAdUqE/mNinRI/eR8gewDAobFJA0TNBw==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.6.tgz", + "integrity": "sha512-qlmD/8aMk5xGorUvTUWHCiumvgaUXYldYjNVOWtYoTYY/L+WwIEAmJxUmTgr9LoGNG0PPAOmqMDJVDPc7DOpPw==", "dev": true }, "node_modules/@types/d3-interpolate": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-2.0.5.tgz", - "integrity": "sha512-UINE41RDaUMbulp+bxQMDnhOi51rh5lA2dG+dWZU0UY/IwQiG/u2x8TfnWYU9+xwGdXsJoAvrBYUEQl0r91atg==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", "dev": true, "dependencies": { - "@types/d3-color": "^2" + "@types/d3-color": "*" } }, "node_modules/@types/d3-path": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-2.0.4.tgz", - "integrity": "sha512-jjZVLBjEX4q6xneKMmv62UocaFJFOTQSb/1aTzs3m3ICTOFoVaqGBHpNLm/4dVi0/FTltfBKgmOK1ECj3/gGjA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.0.2.tgz", + "integrity": "sha512-WAIEVlOCdd/NKRYTsqCpOMHQHemKBEINf8YXMYOtXH0GA7SY0dqMB78P3Uhgfy+4X+/Mlw2wDtlETkN6kQUCMA==", "dev": true }, "node_modules/@types/d3-polygon": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-2.0.3.tgz", - "integrity": "sha512-4hwYYp/KDSNDdBFhf08SifGD7YJgMyUuDulnMsAGVi9X2w5QvdB47wlXMiJr+rdiBKALMq3VJ/i8qKy9gUzCbg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", + "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", "dev": true }, "node_modules/@types/d3-quadtree": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-2.0.5.tgz", - "integrity": "sha512-4eArsbkJTAAfFCDVtVrOlkmHJ/Er0zuL1bUAM7nMbwufIUHXAWYu+081tylzSdiZpcUo2vSJjfgNDtLnsDUoxw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.5.tgz", + "integrity": "sha512-Cb1f3jyNBnvMMkf4KBZ7IgAQVWd9yzBwYcrxGqg3aPCUgWELAS+nyeB7r76aqu1e3+CGDjhk4BrWaFBekMwigg==", "dev": true }, "node_modules/@types/d3-random": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-2.2.3.tgz", - "integrity": "sha512-Ghs4R3CcgJ3o6svszRzIH4b8PPYex/COo+rhhZjDAs+bVducXwjmVSi27WcDOaLLCBV2t3tfVH9bYXAL76IvQA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", + "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", "dev": true }, "node_modules/@types/d3-scale": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-3.3.5.tgz", - "integrity": "sha512-YOpKj0kIEusRf7ofeJcSZQsvKbnTwpe1DUF+P2qsotqG53kEsjm7EzzliqQxMkAWdkZcHrg5rRhB4JiDOQPX+A==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", + "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", "dev": true, "dependencies": { - "@types/d3-time": "^2" + "@types/d3-time": "*" } }, "node_modules/@types/d3-scale-chromatic": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-2.0.3.tgz", - "integrity": "sha512-/G5A5ioXNfOAb6E4X6YkJ9u0ryWLVrSkTwvO2DohXQ2zSvgqDOhWU/uj3JVhBrEnGiG+nQSjqXujsl710jSfMw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.2.tgz", + "integrity": "sha512-kpKNZMDT3OAX6b5ct5nS/mv6LULagnUy4DmS6yyNjclje1qVe7vbjPwY3q1TGz6+Wr2IUkgFatCzqYUl54fHag==", "dev": true }, "node_modules/@types/d3-selection": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-2.0.4.tgz", - "integrity": "sha512-5a21DF7avVPmiUau8KTsv5r76yGqbMgq4QtByoCBPXUrVFWFkd3Ob4OOhmePNRbQqfUCNFjgB4sO7sUURnKcBg==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.10.tgz", + "integrity": "sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg==", "dev": true }, "node_modules/@types/d3-shape": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-2.1.6.tgz", - "integrity": "sha512-UvUXi3uJk7i9gstNlyh/+lidKy96AVp6lG6it586lYVIHjS2oRKkOSfaWdON6+Ziu+EqB8kbN3onxk+eP2wSmw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.5.tgz", + "integrity": "sha512-dfEWpZJ1Pdg8meLlICX1M3WBIpxnaH2eQV2eY43Y5ysRJOTAV9f3/R++lgJKFstfrEOE2zdJ0sv5qwr2Bkic6Q==", "dev": true, "dependencies": { - "@types/d3-path": "^2" + "@types/d3-path": "*" } }, "node_modules/@types/d3-time": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-2.1.4.tgz", - "integrity": "sha512-BTfLsxTeo7yFxI/haOOf1ZwJ6xKgQLT9dCp+EcmQv87Gox6X+oKl4mLKfO6fnWm3P22+A6DknMNEZany8ql2Rw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz", + "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==", "dev": true }, "node_modules/@types/d3-time-format": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-3.0.4.tgz", - "integrity": "sha512-or9DiDnYI1h38J9hxKEsw513+KVuFbEVhl7qdxcaudoiqWWepapUen+2vAriFGexr6W5+P4l9+HJrB39GG+oRg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", + "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", "dev": true }, "node_modules/@types/d3-timer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-2.0.3.tgz", - "integrity": "sha512-jhAJzaanK5LqyLQ50jJNIrB8fjL9gwWZTgYjevPvkDLMU+kTAZkYsobI59nYoeSrH1PucuyJEi247Pb90t6XUg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", "dev": true }, "node_modules/@types/d3-transition": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-2.0.5.tgz", - "integrity": "sha512-G+ne0FD8EK76ejXuB1sszSoPRDdTf+FDx6D3ilwYehfcQpo3WAY0xxkjXTQiP9Tu26qSNA7kyZ07PXZPby/Gdg==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.8.tgz", + "integrity": "sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ==", "dev": true, "dependencies": { - "@types/d3-selection": "^2" + "@types/d3-selection": "*" } }, "node_modules/@types/d3-zoom": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-2.0.7.tgz", - "integrity": "sha512-JWke4E8ZyrKUQ68ESTWSK16fVb0OYnaiJ+WXJRYxKLn4aXU0o4CLYxMWBEiouUfO3TTCoyroOrGPcBG6u1aAxA==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", "dev": true, "dependencies": { - "@types/d3-interpolate": "^2", - "@types/d3-selection": "^2" + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" } }, "node_modules/@types/estree": { @@ -800,129 +758,6 @@ "node": ">=0.4.0" } }, - "node_modules/ansi-cyan": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", - "integrity": "sha512-eCjan3AVo/SxZ0/MyIYRtkpxIu/H3xZN7URr1vXVrISxeyz8fUFz0FJziamK4sS8I+t35y4rHg1b2PklyBe/7A==", - "dev": true, - "dependencies": { - "ansi-wrap": "0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==", - "dev": true, - "dependencies": { - "ansi-wrap": "0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-red": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", - "integrity": "sha512-ewaIr5y+9CUTGFwZfpECUbFlGcC0GCw1oqR9RI6h1gQCd9Aj2GxSckCnPsVJnmfMZbwFYE+leZGASgkWl06Jow==", - "dev": true, - "dependencies": { - "ansi-wrap": "0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha512-t5db90jq+qdgk8aFnxEkjqta0B/GHrM1pxzuuZz2zWsOXc5nKu3t+76s/PQBA8FTcM/ipspIH9jWG4OxCBc2eA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -932,149 +767,31 @@ "node": ">=8" } }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/beeper": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha512-3vqtKL1N45I5dV0RdssXZG7X6pCqQrWPNOlBPZPrd+QkE2HEhR57Z04m0KtpbsZH73j+a3F8UD1TQnn+ExTvIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "fill-range": "^7.0.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/braces/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" + "node": ">=8" } }, "node_modules/buffer-from": { @@ -1095,206 +812,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "dev": true }, - "node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "engines": { - "node": ">=0.10.0" + "node": ">= 10" } }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==", - "dev": true - }, - "node_modules/cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, - "node_modules/cloneable-readable/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/cloneable-readable/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/cloneable-readable/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", - "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true - }, - "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "node_modules/component-emitter": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", - "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true }, "node_modules/concat-map": { "version": "0.0.1", @@ -1302,21 +838,6 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, "node_modules/d3": { "version": "7.8.5", "resolved": "https://registry.npmjs.org/d3/-/d3-7.8.5.tgz", @@ -1687,33 +1208,6 @@ "node": ">=12" } }, - "node_modules/dateformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", - "integrity": "sha512-GODcnWq3YGoTnygPfi02ygEiRxqUxpJwuRHjdhJYuxpcZmDq4rjBiXYmbCCzStxo176ixfLT6i4NPwQooRySnw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -1723,31 +1217,6 @@ "node": ">=0.10.0" } }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/delaunator": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", @@ -1756,24 +1225,6 @@ "robust-predicates": "^3.0.0" } }, - "node_modules/deprecated": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", - "integrity": "sha512-BRACtc6B1mJe2J2mruHFqHWrtLy0Qppu/7LKdqWH3o/9j1L/1phPUaQV+2S3H8ZDW0k6h+NEOKcHBDRikWLiOA==", - "dev": true, - "engines": { - "node": ">= 0.9" - } - }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -1786,1702 +1237,397 @@ "node": ">=8" } }, - "node_modules/duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha512-+AWBwjGadtksxjOQSFDhPNQbed7icNXApT4+2BNpsXzcCBiInq2H9XW0O8sfHFaPmnQRs7cg/P0fAr2IWQSW0g==", - "dev": true, - "dependencies": { - "readable-stream": "~1.1.9" - } - }, - "node_modules/end-of-stream": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", - "integrity": "sha512-go5TQkd0YRXYhX+Lc3UrXkoKU5j+m72jEP5lHWr2Nh82L8wfZtH8toKgcg4T10o23ELIMGXQdwCbl+qAXIPDrw==", - "dev": true, - "dependencies": { - "once": "~1.3.0" - } - }, - "node_modules/end-of-stream/node_modules/once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { - "node": ">=0.10.0" + "node": ">=8.6.0" } }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" + "reusify": "^1.0.4" } }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6 <7 || >=8" } }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=0.10.0" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 6" } }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "node_modules/globby": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", + "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", "dev": true, "dependencies": { - "is-descriptor": "^1.0.0" + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "node_modules/globby/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "dev": true, - "dependencies": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-glob/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-glob/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/fast-glob/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/fast-glob/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fill-range/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/find-index": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", - "integrity": "sha512-uJ5vWrfBKMcE6y2Z8834dwEZj9mNGxYa3t3I53OwFeuZ8D9oc2E5zcsrkuhX6h4iYrjhiv0T3szQmxlAV9uxDg==", - "dev": true - }, - "node_modules/findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==", - "dev": true, - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/findup-sync/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/first-chunk-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", - "integrity": "sha512-ArRi5axuv66gEsyl3UuK80CzW7t56hem73YGNYxNWTGNKFJUadSb9Gu9SHijYEUi8ulQMf1bJomYNwSCPHhtTQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", - "dev": true, - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", - "dev": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gaze": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", - "integrity": "sha512-3IWbXGkDDHFX8zIlNdfnmhvlSMhpBO6tDr4InB8fGku6dh/gjFPGNqcdsXJajZg05x9jRzXbL6gCnCnuMap4tw==", - "dev": true, - "dependencies": { - "globule": "~0.1.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-stream": { - "version": "3.1.18", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", - "integrity": "sha512-owHtlMMXIAbxLjhUAO0HhW1/TB7kV0AwDduI3BLbYsWCaRzNIcLBu8N0wHZft2Za2SCmUXCEOdpZzC7k/H19eg==", - "dev": true, - "dependencies": { - "glob": "^4.3.1", - "glob2base": "^0.0.12", - "minimatch": "^2.0.1", - "ordered-read-streams": "^0.1.0", - "through2": "^0.6.1", - "unique-stream": "^1.0.0" - }, - "engines": { - "node": ">= 0.9" - } - }, - "node_modules/glob-stream/node_modules/glob": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "integrity": "sha512-I0rTWUKSZKxPSIAIaqhSXTM/DiII6wame+rEC3cFA5Lqmr9YmdL7z6Hj9+bdWtTvoY1Su4/OiMLmb37Y7JzvJQ==", - "dev": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^2.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/glob-stream/node_modules/minimatch": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "integrity": "sha512-jQo6o1qSVLEWaw3l+bwYA2X0uLuK2KjNh2wjgO7Q/9UJnXr1Q3yQKR8BI0/Bt/rPg75e6SMW4hW/6cBHVTZUjA==", - "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", - "dev": true, - "dependencies": { - "brace-expansion": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/glob-stream/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/glob-stream/node_modules/through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", - "dev": true, - "dependencies": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, - "node_modules/glob-watcher": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", - "integrity": "sha512-lzYWq1BJLBmtb9rzT6+lgbFlEW6Sc7B+Qs3RmsNA9lbdFSqLHhebfypPR3nbEOMeEQyawVXqSDH0aqjtImldow==", - "dev": true, - "dependencies": { - "gaze": "^0.5.1" - }, - "engines": { - "node": ">= 0.9" - } - }, - "node_modules/glob2base": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", - "integrity": "sha512-ZyqlgowMbfj2NPjxaZZ/EtsXlOch28FRXgMd64vqZWk1bT9+wvSRLYD1om9M7QfQru51zJPAT17qXm4/zd+9QA==", - "dev": true, - "dependencies": { - "find-index": "^0.1.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/globby": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", - "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/globule": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", - "integrity": "sha512-3eIcA2OjPCm4VvwIwZPzIxCVssA8HSpM2C6c6kK5ufJH4FGwWoyqL3In19uuX4oe+TwH3w2P1nQDmW56iehO4A==", - "dev": true, - "dependencies": { - "glob": "~3.1.21", - "lodash": "~1.0.1", - "minimatch": "~0.2.11" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/globule/node_modules/glob": { - "version": "3.1.21", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "integrity": "sha512-ANhy2V2+tFpRajE3wN4DhkNQ08KDr0Ir1qL12/cUe5+a7STEK8jkW4onUYuY8/06qAFuT5je7mjAqzx0eKI2tQ==", - "dev": true, - "dependencies": { - "graceful-fs": "~1.2.0", - "inherits": "1", - "minimatch": "~0.2.11" - }, - "engines": { - "node": "*" - } - }, - "node_modules/globule/node_modules/graceful-fs": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha512-iiTUZ5vZ+2ZV+h71XAgwCSu6+NAizhFU3Yw8aC/hH5SQ3SnISqEqAek40imAFGtDcwJKNhXvSY+hzIolnLwcdQ==", - "deprecated": "please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/globule/node_modules/inherits": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha512-Al67oatbRSo3RV5hRqIoln6Y5yMVbJSIn4jEJNL7VCImzq/kLr7vvb6sFRJXqr8rpHc/2kJOM+y0sPKN47VdzA==", - "dev": true - }, - "node_modules/globule/node_modules/minimatch": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha512-zZ+Jy8lVWlvqqeM8iZB7w7KmQkoJn8djM585z88rywrEbzoqawVa9FR5p2hwD+y74nfuKOjmNvi9gtWJNLqHvA==", - "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", - "dev": true, - "dependencies": { - "lru-cache": "2", - "sigmund": "~1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "dev": true, - "dependencies": { - "sparkles": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/gulp": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", - "integrity": "sha512-6FHNdR+VG1LcPz6gZGGqgvimWWGtl4x3FvshAdK/UnAjU7aFOyzft3Fjp35r0Y3ZF4u8vND0S4nGsIB/sxTqzQ==", - "dev": true, - "dependencies": { - "archy": "^1.0.0", - "chalk": "^1.0.0", - "deprecated": "^0.0.1", - "gulp-util": "^3.0.0", - "interpret": "^1.0.0", - "liftoff": "^2.1.0", - "minimist": "^1.1.0", - "orchestrator": "^0.3.0", - "pretty-hrtime": "^1.0.0", - "semver": "^4.1.0", - "tildify": "^1.0.0", - "v8flags": "^2.0.2", - "vinyl-fs": "^0.3.0" - }, - "bin": { - "gulp": "bin/gulp.js" - }, - "engines": { - "node": ">= 0.9" - } - }, - "node_modules/gulp-util": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", - "integrity": "sha512-q5oWPc12lwSFS9h/4VIjG+1NuNDlJ48ywV2JKItY4Ycc/n1fXJeYPVQsfu5ZrhQi7FGSDBalwUCLar/GyHXKGw==", - "deprecated": "gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5", - "dev": true, - "dependencies": { - "array-differ": "^1.0.0", - "array-uniq": "^1.0.2", - "beeper": "^1.0.0", - "chalk": "^1.0.0", - "dateformat": "^2.0.0", - "fancy-log": "^1.1.0", - "gulplog": "^1.0.0", - "has-gulplog": "^0.1.0", - "lodash._reescape": "^3.0.0", - "lodash._reevaluate": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.template": "^3.0.0", - "minimist": "^1.1.0", - "multipipe": "^0.1.2", - "object-assign": "^3.0.0", - "replace-ext": "0.0.1", - "through2": "^2.0.0", - "vinyl": "^0.5.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/gulp-zip": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/gulp-zip/-/gulp-zip-4.2.0.tgz", - "integrity": "sha512-I+697f6jf+PncdTrqfuwoauxgnLG1yHRg3vlmvDgmJuEnlEHy4meBktJ/oHgfyg4tp6X25wuZqUOraVeVg97wQ==", - "dev": true, - "dependencies": { - "get-stream": "^3.0.0", - "plugin-error": "^0.1.2", - "through2": "^2.0.1", - "vinyl": "^2.1.0", - "yazl": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/gulp-zip/node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/gulp-zip/node_modules/clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", - "dev": true - }, - "node_modules/gulp-zip/node_modules/replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/gulp-zip/node_modules/vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", - "dev": true, - "dependencies": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==", - "dev": true, - "dependencies": { - "glogg": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha512-+F4GzLjwHNNDEAJW2DC1xXfEoPkRDmUdJ7CBYw4MpqtDwOnqdImJl7GWlpqx+Wko6//J8uKTnIe4wZSv7yCqmw==", - "dev": true, - "dependencies": { - "sparkles": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", - "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "dependencies": { - "parse-passwd": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "dependencies": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", - "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/is-builtin-module": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", - "dev": true, - "dependencies": { - "builtin-modules": "^3.3.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", - "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true - }, - "node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "node_modules/globby/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "dependencies": { - "kind-of": "^3.0.2" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" + "node": "*" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "node_modules/globby/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "isobject": "^3.0.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=0.10.0" + "node": "*" } }, - "node_modules/is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", - "dev": true, - "dependencies": { - "@types/estree": "*" - } + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true }, - "node_modules/is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", "dev": true, "dependencies": { - "is-unc-path": "^1.0.0" + "function-bind": "^1.1.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dependencies": { - "unc-path-regex": "^0.1.2" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", - "dev": true - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jsep": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.3.8.tgz", - "integrity": "sha512-qofGylTGgYj9gZFsHuyWAN4jr35eJ66qJCK4eKDnldohuUoQFbU3iZn2zjvEbd9wOAhP9Wx5DsAAduTyE1PSWQ==", - "engines": { - "node": ">= 10.16.0" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha512-01zfGFqfORP1CGmZZP2Zn51zsqz4RltDi0RDOhbGoLYdUT5Lw+I2gX6QdwXhPITF6hPOHEOp+At6/L24hIg9WQ==", + "node_modules/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true, - "dependencies": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - }, "engines": { - "node": ">= 0.8" - } - }, - "node_modules/lodash": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha512-0VSEDVec/Me2eATuoiQd8IjyBMMX0fahob8YJ96V1go2RjvCk1m1GxmtfXn8RNSaLaTtop7fsuhhu9oLk3hUgA==", - "dev": true, - "engines": [ - "node", - "rhino" - ] - }, - "node_modules/lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ==", - "dev": true - }, - "node_modules/lodash._basetostring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "integrity": "sha512-mTzAr1aNAv/i7W43vOR/uD/aJ4ngbtsRaCubp2BfZhlGU/eORUjg/7F6X0orNMdv33JOrdgGybtvMN/po3EWrA==", - "dev": true - }, - "node_modules/lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha512-H94wl5P13uEqlCg7OcNNhMQ8KvWSIyqXzOPusRgHC9DK3o54P6P3xtbXlVbRABG4q5gSmp7EDdJ0MSuW9HX6Mg==", - "dev": true - }, - "node_modules/lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==", - "dev": true - }, - "node_modules/lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ==", - "dev": true - }, - "node_modules/lodash._reescape": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "integrity": "sha512-Sjlavm5y+FUVIF3vF3B75GyXrzsfYV8Dlv3L4mEpuB9leg8N6yf/7rU06iLPx9fY0Mv3khVp9p7Dx0mGV6V5OQ==", - "dev": true - }, - "node_modules/lodash._reevaluate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "integrity": "sha512-OrPwdDc65iJiBeUe5n/LIjd7Viy99bKwDdk7Z5ljfZg0uFRFlfQaCy9tZ4YMAag9WAZmlVpe1iZrkIMMSMHD3w==", - "dev": true - }, - "node_modules/lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", - "dev": true - }, - "node_modules/lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha512-O0pWuFSK6x4EXhM1dhZ8gchNtG7JMqBtrHdoUFUWXD7dJnNSUze1GuyQr5sOs0aCvgGeI3o/OJW8f4ca7FDxmQ==", - "dev": true - }, - "node_modules/lodash.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha512-n1PZMXgaaDWZDSvuNZ/8XOcYO2hOKDqZel5adtR30VKQAtoWs/5AOeFA0vPV8moiPzlqe7F4cP2tzpFewQyelQ==", - "dev": true, - "dependencies": { - "lodash._root": "^3.0.0" - } - }, - "node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", - "dev": true - }, - "node_modules/lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==", - "dev": true - }, - "node_modules/lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ==", - "dev": true, - "dependencies": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "node_modules/lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw==", - "dev": true - }, - "node_modules/lodash.template": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "integrity": "sha512-0B4Y53I0OgHUJkt+7RmlDFWKjVAI/YUpWNiL9GQz5ORDr4ttgfQGo+phBWKFLJbBdtOwgMuUkdOHOnPg45jKmQ==", - "dev": true, - "dependencies": { - "lodash._basecopy": "^3.0.0", - "lodash._basetostring": "^3.0.0", - "lodash._basevalues": "^3.0.0", - "lodash._isiterateecall": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0", - "lodash.keys": "^3.0.0", - "lodash.restparam": "^3.0.0", - "lodash.templatesettings": "^3.0.0" + "node": ">= 4" } }, - "node_modules/lodash.templatesettings": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "integrity": "sha512-TcrlEr31tDYnWkHFWDCV3dHYroKEXpJZ2YJYvJdhN+y4AkWMDZ5I4I8XDtUKqSAyG81N7w+I1mFEJtcED+tGqQ==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "dependencies": { - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha512-WpibWJ60c3AgAz8a2iYErDrcT2C7OmKnsWhIcHOjkUHFjkXncJhtLxNSqUmxRxRunpb5I8Vprd7aNSd2NtksJQ==", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "node_modules/magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", "engines": { "node": ">=12" } }, - "node_modules/make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", - "dev": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", "dev": true, "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "builtin-modules": "^3.3.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" + "node": ">=6" }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "dependencies": { - "minimist": "^1.2.6" + "hasown": "^2.0.0" }, - "bin": { - "mkdirp": "bin/cmd.js" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/multipipe": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "integrity": "sha512-7ZxrUybYv9NonoXgwoOqtStIu18D1c3eFZj27hqgf5kBrBF8Q+tE8V0MW8dKM5QLkQPh1JhhbKgHLY9kifov4Q==", - "dev": true, - "dependencies": { - "duplexer2": "0.0.2" + "node": ">=0.10.0" } }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "is-extglob": "^2.1.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/natives": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz", - "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==", - "deprecated": "This module relies on Node.js's internals and will break at some point. Do not use it, and update to graceful-fs@4.x.", + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", "dev": true }, - "node_modules/object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.12.0" } }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "node_modules/is-plain-object": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", + "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", "dev": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", "dev": true, "dependencies": { - "is-descriptor": "^0.1.0" - }, + "@types/estree": "*" + } + }, + "node_modules/jsep": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.3.8.tgz", + "integrity": "sha512-qofGylTGgYj9gZFsHuyWAN4jr35eJ66qJCK4eKDnldohuUoQFbU3iZn2zjvEbd9wOAhP9Wx5DsAAduTyE1PSWQ==", "engines": { - "node": ">=0.10.0" + "node": ">= 10.16.0" } }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "node_modules/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" + "@jridgewell/sourcemap-codec": "^1.4.15" }, "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, - "dependencies": { - "isobject": "^3.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, - "node_modules/object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "dependencies": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8.6" } }, - "node_modules/object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", + "node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "node_modules/moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, "engines": { - "node": ">=0.10.0" + "node": "*" } }, "node_modules/obsidian": { @@ -3508,73 +1654,6 @@ "wrappy": "1" } }, - "node_modules/orchestrator": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", - "integrity": "sha512-DrQ43ngaJ0e36j2CHyoDoIg1K4zbc78GnTQESebK9vu6hj4W5/pvfSFO/kgM620Yd0YnhseSNYsLK3/SszZ5NQ==", - "dev": true, - "dependencies": { - "end-of-stream": "~0.1.5", - "sequencify": "~0.0.7", - "stream-consume": "~0.1.0" - } - }, - "node_modules/ordered-read-streams": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", - "integrity": "sha512-PMX5ehiNri4+lgk9fl09xuPeciGmyPyVUSBwwPT4C/3EHGxoVf7UdgKDE3SLBD4pUDmlzrg1L1cK5igrp+Tyuw==", - "dev": true - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", - "dev": true, - "dependencies": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -3590,27 +1669,6 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "node_modules/path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", - "dev": true, - "dependencies": { - "path-root-regex": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -3632,186 +1690,33 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha512-WzZHcm4+GO34sjFMxQMqZbsz3xiNEgonCskQ9v+IroMmYgk/tas8dG+Hr2D6IbRPybZ12oWpzE/w3cGJ6FJzOw==", - "dev": true, - "dependencies": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plugin-error/node_modules/arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha512-OQwDZUqYaQwyyhDJHThmzId8daf4/RFNLaeh3AevmSeZ5Y7ug4Ga/yKc6l6kTZOBW781rCj103ZuTh8GAsB3+Q==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plugin-error/node_modules/array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plugin-error/node_modules/extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha512-L7AGmkO6jhDkEBBGWlLtftA80Xq8DipnrRPr0pyi7GQLXkaq9JYA4xF4z6qnadIC6euiTDKco0cGSU9muw+WTw==", - "dev": true, - "dependencies": { - "kind-of": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plugin-error/node_modules/kind-of": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dev": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "dev": true - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "dev": true, - "engines": { - "node": ">=0.10" - } + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "node_modules/replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==", + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "safe-buffer": "^5.1.0" } }, "node_modules/resolve": { @@ -3831,35 +1736,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -3919,29 +1795,6 @@ "node": ">=8.3" } }, - "node_modules/rollup-plugin-copy/node_modules/is-plain-object": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", - "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rollup/node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -3971,377 +1824,78 @@ "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" }, "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/semver": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "integrity": "sha512-IrpJ+yoG4EOH8DFWuVg+8H1kW1Oaof0Wxe7cPcXW3x9BjkN/eVo54F15LyqemnDIUYskQWr9qvl/RihmSy6+xQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/sequencify": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", - "integrity": "sha512-YL8BPm0tp6SlXef/VqYpA/ijmTsDP2ZEXzsnqjkaWS7NP7Bfvw18NboL0O8WCIjy67sOCG3MYSK1PB4GC9XdtQ==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/smob": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/smob/-/smob-1.4.1.tgz", - "integrity": "sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==", - "dev": true - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true - }, - "node_modules/sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", - "dev": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "dev": true, "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" + "randombytes": "^2.1.0" } }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/stream-consume": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz", - "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==", - "dev": true - }, - "node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "node_modules/smob": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.4.1.tgz", + "integrity": "sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==", "dev": true }, - "node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/strip-bom": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", - "integrity": "sha512-qVAeAIjblKDp/8Cd0tJdxpe3Iq/HooI7En98alEaMbz4Wedlrcj3WI72dDQSrziRW5IQ0zeBo3JXsmS8RcS9jg==", + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "dependencies": { - "first-chunk-stream": "^1.0.0", - "is-utf8": "^0.2.0" - }, - "bin": { - "strip-bom": "cli.js" - }, - "engines": { - "node": ">=0.10.0" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" + }, "node_modules/style-mod": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.0.tgz", @@ -4349,15 +1903,6 @@ "dev": true, "peer": true }, - "node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -4394,117 +1939,16 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/tildify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", - "integrity": "sha512-Y9q1GaV/BO65Z9Yf4NOGMuwt3SGdptkZBnaaKfTQakrDyCLiuO1Kc5wxW4xLdsjzunRtqtOdhekiUFmZbklwYQ==", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "^7.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8.0" } }, "node_modules/tslib": { @@ -4526,60 +1970,12 @@ "node": ">=14.17" } }, - "node_modules/unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unique-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", - "integrity": "sha512-L8KM6TdpsoBk6TJTXevbmpub3bATS06Znu3BcfVPVQkFtnh1MFeCZ3gFKCQcji7f7YYiigsO5OR99vqhoNT8nQ==", - "dev": true - }, "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -4589,195 +1985,6 @@ "node": ">= 4.0.0" } }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", - "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", - "dev": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha512-aggiKfEEubv3UwRNqTzLInZpAOmKzwdHqEBmW/hBA/mt99eg+b4VrX6i+IRLxU8+WJYfa33rGwRseg4eElUgsQ==", - "dev": true, - "bin": { - "user-home": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha512-SKfhk/LlaXzvtowJabLZwD4K6SGRYeoxA7KJeISlUMAB/NT4CBkZjMq3WceX2Ckm4llwqYVo8TICgsDYCBU2tA==", - "dev": true, - "dependencies": { - "user-home": "^1.1.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/vinyl": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", - "integrity": "sha512-P5zdf3WB9uzr7IFoVQ2wZTmUwHL8cMZWJGzLBNCHNZ3NB6HTMsYABtt7z8tAGIINLXyAob9B9a1yzVGMFOYKEA==", - "dev": true, - "dependencies": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" - }, - "engines": { - "node": ">= 0.9" - } - }, - "node_modules/vinyl-fs": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", - "integrity": "sha512-9CTKjt8378nhdydwFDTwywKio0n8aqq6xA70g0uypcnTNSCow/gQOwv0L9E2GaKd7EQ3kZl/diBxPSCgcBXESw==", - "dev": true, - "dependencies": { - "defaults": "^1.0.0", - "glob-stream": "^3.1.5", - "glob-watcher": "^0.0.6", - "graceful-fs": "^3.0.0", - "mkdirp": "^0.5.0", - "strip-bom": "^1.0.0", - "through2": "^0.6.1", - "vinyl": "^0.4.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl-fs/node_modules/clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha512-g62n3Kb9cszeZvmvBUqP/dsEJD/+80pDA8u8KqHnAPrVnQ2Je9rVV6opxkhuWCd1kCn2gOibzDKxCtBvD3q5kA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/vinyl-fs/node_modules/graceful-fs": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.12.tgz", - "integrity": "sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg==", - "dev": true, - "dependencies": { - "natives": "^1.1.3" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/vinyl-fs/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/vinyl-fs/node_modules/through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", - "dev": true, - "dependencies": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, - "node_modules/vinyl-fs/node_modules/vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha512-pmza4M5VA15HOImIQYWhoXGlGNafCm0QK5BpBUXkzzEwrRxKqBsbAhTfkT2zMcJhUX1G1Gkid0xaV8WjOl7DsA==", - "dev": true, - "dependencies": { - "clone": "^0.2.0", - "clone-stats": "^0.0.1" - }, - "engines": { - "node": ">= 0.9" - } - }, "node_modules/w3c-keyname": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", @@ -4785,41 +1992,11 @@ "dev": true, "peer": true }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yazl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", - "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3" - } } } } diff --git a/package.json b/package.json index 0e9409f..d53b330 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "rollup --config rollup.config.dev.mjs -w", "build": "rollup --config rollup.config.build.mjs", - "zip": "gulp" + "zip": "zip -9 obsidian-tracker-v$npm_package_version.zip main.js manifest.json styles.css" }, "keywords": [], "author": "pyrochlore", @@ -19,8 +19,6 @@ "@types/d3": "^7.4.3", "@types/node": "^20.9.1", "@types/sprintf-js": "^1.1.4", - "gulp": "^3.9.1", - "gulp-zip": "^4.2.0", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.4.1", "rollup-plugin-copy": "^3.5.0", From ccbca15b8f46bff569cb9dd58389e01d5cae79d8 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Thu, 16 Nov 2023 20:37:53 -0700 Subject: [PATCH 165/277] Release 1.13.1 --- README.md | 4 ++++ docs/ReleaseNotes.md | 4 ++++ manifest.json | 2 +- package.json | 2 +- versions.json | 3 ++- 5 files changed, 12 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b0acf0e..b2e26aa 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,10 @@ This is an [Obsidian](https://obsidian.md/) plugin that helps you collect data f ## What's New +Version 1.13.1 + +- Fix packaging script + Version 1.13.0 - Add support for inline dataview fields (including emoji support for values) diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index 3876b5e..b7ea67b 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,9 @@ # Release Notes +## 1.13.1 + +- Fix packaging script + ## 1.13.0 - Add support for inline dataview fields (including emoji support for values) diff --git a/manifest.json b/manifest.json index 6d55e6d..cc5ce96 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.13.0", + "version": "1.13.1", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package.json b/package.json index d53b330..04ebf73 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.13.0", + "version": "1.13.1", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index acde4e3..49a583c 100644 --- a/versions.json +++ b/versions.json @@ -31,5 +31,6 @@ "1.10.9": "0.9.12", "1.11.0": "0.9.12", "1.12.0": "0.9.12", - "1.13.0": "0.9.12" + "1.13.0": "0.9.12", + "1.13.1": "0.9.12" } From 856ab4b514796eb9f0d30734844be8c3eab81d26 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Thu, 16 Nov 2023 20:43:28 -0700 Subject: [PATCH 166/277] Switch dependabot to use npm instead of yarn --- .github/dependabot.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index d62873e..4a54c35 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -11,8 +11,8 @@ updates: directory: "/" schedule: interval: "weekly" - # Maintain dependencies for yarn - - package-ecosystem: "yarn" # See documentation for possible values + # Maintain dependencies for npm + - package-ecosystem: "npm" # See documentation for possible values directory: "/" # Location of package manifests schedule: interval: "weekly" From 7b2f54497e3f94526ff659f8e8f36b0db225be5b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Nov 2023 03:43:55 +0000 Subject: [PATCH 167/277] Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/releases.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index c695178..f544fe0 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -10,7 +10,7 @@ jobs: contents: write runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Use Node.js uses: actions/setup-node@v3 with: From d825ee9fcdb2841123d3bea74bd559fc9f0df108 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Nov 2023 04:24:06 +0000 Subject: [PATCH 168/277] Bump actions/setup-node from 3 to 4 Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3 to 4. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/releases.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index f544fe0..e44ee1a 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -12,7 +12,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Use Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: '18.x' - name: Build From 9b6d1b1c909d1853c1b39fc6d40d02de901431d7 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Thu, 16 Nov 2023 21:55:22 -0700 Subject: [PATCH 169/277] Add issue and PR templates --- .github/ISSUE_TEMPLATE.md | 24 ++++++++++++++++++++++++ .github/pull_request_template.md | 20 ++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/pull_request_template.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..73f0986 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,24 @@ + + +## Expected Behavior + + + +## Current Behavior + + + +## Possible Solution + + + +## Steps to Reproduce (for bugs) + +1. +2. +3. +4. + +## Context + + diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..e2a3e0d --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,20 @@ +# Description + +Please include a summary of the change and which (if any) issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change. + +Fixes # (issue) + +## Type of change + +Please delete options that are not relevant. + +- [ ] Bug fix (non-breaking change which fixes an issue) +- [ ] New feature (non-breaking change which adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) +- [ ] This change requires a documentation update + +# How Has This Been Tested? + +- [ ] If this is a bug fix, did you add or update a test file to the examples directory that verifies the bug is fixed? +- [ ] If this is a new feature, did you add files to the examples directory to demonstrate the feature? +- [ ] If this is a new feature, did you add documentation to the docs directory for the feature? From 1f41ea6d1bcf08f7f493690bc5be9664f4a5e025 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Nov 2023 13:55:09 +0000 Subject: [PATCH 170/277] Bump typescript from 5.2.2 to 5.3.2 Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.2.2 to 5.3.2. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Commits](https://github.com/Microsoft/TypeScript/compare/v5.2.2...v5.3.2) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5387a69..cbbb7b1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "rollup": "^4.4.1", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", - "typescript": "^5.2.2" + "typescript": "^5.3.2" } }, "node_modules/@codemirror/state": { @@ -1958,9 +1958,9 @@ "dev": true }, "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz", + "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", "dev": true, "bin": { "tsc": "bin/tsc", diff --git a/package.json b/package.json index 04ebf73..820ae29 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "rollup": "^4.4.1", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", - "typescript": "^5.2.2" + "typescript": "^5.3.2" }, "dependencies": { "d3": "^7.8.5", From 95b1439b9e4a781d6461300fc8f39d8d7aaaf76b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Nov 2023 13:55:19 +0000 Subject: [PATCH 171/277] Bump rollup from 4.4.1 to 4.6.0 Bumps [rollup](https://github.com/rollup/rollup) from 4.4.1 to 4.6.0. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.4.1...v4.6.0) --- updated-dependencies: - dependency-name: rollup dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 104 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5387a69..25951de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "@types/node": "^20.9.1", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.4.1", + "rollup": "^4.6.0", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", "typescript": "^5.2.2" @@ -262,9 +262,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.4.1.tgz", - "integrity": "sha512-Ss4suS/sd+6xLRu+MLCkED2mUrAyqHmmvZB+zpzZ9Znn9S8wCkTQCJaQ8P8aHofnvG5L16u9MVnJjCqioPErwQ==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.6.0.tgz", + "integrity": "sha512-keHkkWAe7OtdALGoutLY3utvthkGF+Y17ws9LYT8pxMBYXaCoH/8dXS2uzo6e8+sEhY7y/zi5RFo22Dy2lFpDw==", "cpu": [ "arm" ], @@ -275,9 +275,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.4.1.tgz", - "integrity": "sha512-sRSkGTvGsARwWd7TzC8LKRf8FiPn7257vd/edzmvG4RIr9x68KBN0/Ek48CkuUJ5Pj/Dp9vKWv6PEupjKWjTYA==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.6.0.tgz", + "integrity": "sha512-y3Kt+34smKQNWilicPbBz/MXEY7QwDzMFNgwEWeYiOhUt9MTWKjHqe3EVkXwT2fR7izOvHpDWZ0o2IyD9SWX7A==", "cpu": [ "arm64" ], @@ -288,9 +288,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.4.1.tgz", - "integrity": "sha512-nz0AiGrrXyaWpsmBXUGOBiRDU0wyfSXbFuF98pPvIO8O6auQsPG6riWsfQqmCCC5FNd8zKQ4JhgugRNAkBJ8mQ==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.6.0.tgz", + "integrity": "sha512-oLzzxcUIHltHxOCmaXl+pkIlU+uhSxef5HfntW7RsLh1eHm+vJzjD9Oo4oUKso4YuP4PpbFJNlZjJuOrxo8dPg==", "cpu": [ "arm64" ], @@ -301,9 +301,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.4.1.tgz", - "integrity": "sha512-Ogqvf4/Ve/faMaiPRvzsJEqajbqs00LO+8vtrPBVvLgdw4wBg6ZDXdkDAZO+4MLnrc8mhGV6VJAzYScZdPLtJg==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.6.0.tgz", + "integrity": "sha512-+ANnmjkcOBaV25n0+M0Bere3roeVAnwlKW65qagtuAfIxXF9YxUneRyAn/RDcIdRa7QrjRNJL3jR7T43ObGe8Q==", "cpu": [ "x64" ], @@ -314,9 +314,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.4.1.tgz", - "integrity": "sha512-9zc2tqlr6HfO+hx9+wktUlWTRdje7Ub15iJqKcqg5uJZ+iKqmd2CMxlgPpXi7+bU7bjfDIuvCvnGk7wewFEhCg==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.6.0.tgz", + "integrity": "sha512-tBTSIkjSVUyrekddpkAqKOosnj1Fc0ZY0rJL2bIEWPKqlEQk0paORL9pUIlt7lcGJi3LzMIlUGXvtNi1Z6MOCQ==", "cpu": [ "arm" ], @@ -327,9 +327,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.4.1.tgz", - "integrity": "sha512-phLb1fN3rq2o1j1v+nKxXUTSJnAhzhU0hLrl7Qzb0fLpwkGMHDem+o6d+ZI8+/BlTXfMU4kVWGvy6g9k/B8L6Q==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.6.0.tgz", + "integrity": "sha512-Ed8uJI3kM11de9S0j67wAV07JUNhbAqIrDYhQBrQW42jGopgheyk/cdcshgGO4fW5Wjq97COCY/BHogdGvKVNQ==", "cpu": [ "arm64" ], @@ -340,9 +340,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.4.1.tgz", - "integrity": "sha512-M2sDtw4tf57VPSjbTAN/lz1doWUqO2CbQuX3L9K6GWIR5uw9j+ROKCvvUNBY8WUbMxwaoc8mH9HmmBKsLht7+w==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.6.0.tgz", + "integrity": "sha512-mZoNQ/qK4D7SSY8v6kEsAAyDgznzLLuSFCA3aBHZTmf3HP/dW4tNLTtWh9+LfyO0Z1aUn+ecpT7IQ3WtIg3ViQ==", "cpu": [ "arm64" ], @@ -353,9 +353,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.4.1.tgz", - "integrity": "sha512-mHIlRLX+hx+30cD6c4BaBOsSqdnCE4ok7/KDvjHYAHoSuveoMMxIisZFvcLhUnyZcPBXDGZTuBoalcuh43UfQQ==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.6.0.tgz", + "integrity": "sha512-rouezFHpwCqdEXsqAfNsTgSWO0FoZ5hKv5p+TGO5KFhyN/dvYXNMqMolOb8BkyKcPqjYRBeT+Z6V3aM26rPaYg==", "cpu": [ "x64" ], @@ -366,9 +366,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.4.1.tgz", - "integrity": "sha512-tB+RZuDi3zxFx7vDrjTNGVLu2KNyzYv+UY8jz7e4TMEoAj7iEt8Qk6xVu6mo3pgjnsHj6jnq3uuRsHp97DLwOA==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.6.0.tgz", + "integrity": "sha512-Bbm+fyn3S6u51urfj3YnqBXg5vI2jQPncRRELaucmhBVyZkbWClQ1fEsRmdnCPpQOQfkpg9gZArvtMVkOMsh1w==", "cpu": [ "x64" ], @@ -379,9 +379,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.4.1.tgz", - "integrity": "sha512-Hdn39PzOQowK/HZzYpCuZdJC91PE6EaGbTe2VCA9oq2u18evkisQfws0Smh9QQGNNRa/T7MOuGNQoLeXhhE3PQ==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.6.0.tgz", + "integrity": "sha512-+MRMcyx9L2kTrTUzYmR61+XVsliMG4odFb5UmqtiT8xOfEicfYAGEuF/D1Pww1+uZkYhBqAHpvju7VN+GnC3ng==", "cpu": [ "arm64" ], @@ -392,9 +392,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.4.1.tgz", - "integrity": "sha512-tLpKb1Elm9fM8c5w3nl4N1eLTP4bCqTYw9tqUBxX8/hsxqHO3dxc2qPbZ9PNkdK4tg4iLEYn0pOUnVByRd2CbA==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.6.0.tgz", + "integrity": "sha512-rxfeE6K6s/Xl2HGeK6cO8SiQq3k/3BYpw7cfhW5Bk2euXNEpuzi2cc7llxx1si1QgwfjNtdRNTGqdBzGlFZGFw==", "cpu": [ "ia32" ], @@ -405,9 +405,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.4.1.tgz", - "integrity": "sha512-eAhItDX9yQtZVM3yvXS/VR3qPqcnXvnLyx1pLXl4JzyNMBNO3KC986t/iAg2zcMzpAp9JSvxB5VZGnBiNoA98w==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.6.0.tgz", + "integrity": "sha512-QqmCsydHS172Y0Kc13bkMXvipbJSvzeglBncJG3LsYJSiPlxYACz7MmJBs4A8l1oU+jfhYEIC/+AUSlvjmiX/g==", "cpu": [ "x64" ], @@ -1752,9 +1752,9 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.4.1.tgz", - "integrity": "sha512-idZzrUpWSblPJX66i+GzrpjKE3vbYrlWirUHteoAbjKReZwa0cohAErOYA5efoMmNCdvG9yrJS+w9Kl6csaH4w==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.6.0.tgz", + "integrity": "sha512-R8i5Her4oO1LiMQ3jKf7MUglYV/mhQ5g5OKeld5CnkmPdIGo79FDDQYqPhq/PCVuTQVuxsWgIbDy9F+zdHn80w==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -1764,18 +1764,18 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.4.1", - "@rollup/rollup-android-arm64": "4.4.1", - "@rollup/rollup-darwin-arm64": "4.4.1", - "@rollup/rollup-darwin-x64": "4.4.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.4.1", - "@rollup/rollup-linux-arm64-gnu": "4.4.1", - "@rollup/rollup-linux-arm64-musl": "4.4.1", - "@rollup/rollup-linux-x64-gnu": "4.4.1", - "@rollup/rollup-linux-x64-musl": "4.4.1", - "@rollup/rollup-win32-arm64-msvc": "4.4.1", - "@rollup/rollup-win32-ia32-msvc": "4.4.1", - "@rollup/rollup-win32-x64-msvc": "4.4.1", + "@rollup/rollup-android-arm-eabi": "4.6.0", + "@rollup/rollup-android-arm64": "4.6.0", + "@rollup/rollup-darwin-arm64": "4.6.0", + "@rollup/rollup-darwin-x64": "4.6.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.6.0", + "@rollup/rollup-linux-arm64-gnu": "4.6.0", + "@rollup/rollup-linux-arm64-musl": "4.6.0", + "@rollup/rollup-linux-x64-gnu": "4.6.0", + "@rollup/rollup-linux-x64-musl": "4.6.0", + "@rollup/rollup-win32-arm64-msvc": "4.6.0", + "@rollup/rollup-win32-ia32-msvc": "4.6.0", + "@rollup/rollup-win32-x64-msvc": "4.6.0", "fsevents": "~2.3.2" } }, diff --git a/package.json b/package.json index 04ebf73..c1910a9 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@types/node": "^20.9.1", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.4.1", + "rollup": "^4.6.0", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", "typescript": "^5.2.2" From 269762f93f0b827bfc50e7fb64c8328cb1863f25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Nov 2023 13:55:29 +0000 Subject: [PATCH 172/277] Bump @types/node from 20.9.1 to 20.10.0 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.9.1 to 20.10.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5387a69..a93b271 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", - "@types/node": "^20.9.1", + "@types/node": "^20.10.0", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.4.1", @@ -717,9 +717,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.9.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.1.tgz", - "integrity": "sha512-HhmzZh5LSJNS5O8jQKpJ/3ZcrrlG6L70hpGqMIAoM9YVD0YBRNWYsfwcXq8VnSjlNpCpgLzMXdiPo+dxcvSmiA==", + "version": "20.10.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.0.tgz", + "integrity": "sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==", "dev": true, "dependencies": { "undici-types": "~5.26.4" diff --git a/package.json b/package.json index 04ebf73..d5fc4f3 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", - "@types/node": "^20.9.1", + "@types/node": "^20.10.0", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.4.1", From a7d366876a34e88c545fd0a3614d0c21fba34db1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 13:09:59 +0000 Subject: [PATCH 173/277] Bump @types/node from 20.10.0 to 20.10.4 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.10.0 to 20.10.4. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 316852c..1bacb51 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", - "@types/node": "^20.10.0", + "@types/node": "^20.10.4", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.6.0", @@ -717,9 +717,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.10.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.0.tgz", - "integrity": "sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==", + "version": "20.10.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.4.tgz", + "integrity": "sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" diff --git a/package.json b/package.json index 41c0e51..e0785e8 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", - "@types/node": "^20.10.0", + "@types/node": "^20.10.4", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.6.0", From ec4210e6e6ee68e39c407f43b9224dbbc7f18416 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 20:46:58 +0000 Subject: [PATCH 174/277] Bump rollup from 4.6.0 to 4.8.0 Bumps [rollup](https://github.com/rollup/rollup) from 4.6.0 to 4.8.0. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.6.0...v4.8.0) --- updated-dependencies: - dependency-name: rollup dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 118 ++++++++++++++++++++++++++-------------------- package.json | 2 +- 2 files changed, 67 insertions(+), 53 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1bacb51..e611168 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "@types/node": "^20.10.4", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.6.0", + "rollup": "^4.8.0", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", "typescript": "^5.3.2" @@ -262,9 +262,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.6.0.tgz", - "integrity": "sha512-keHkkWAe7OtdALGoutLY3utvthkGF+Y17ws9LYT8pxMBYXaCoH/8dXS2uzo6e8+sEhY7y/zi5RFo22Dy2lFpDw==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.8.0.tgz", + "integrity": "sha512-zdTObFRoNENrdPpnTNnhOljYIcOX7aI7+7wyrSpPFFIOf/nRdedE6IYsjaBE7tjukphh1tMTojgJ7p3lKY8x6Q==", "cpu": [ "arm" ], @@ -275,9 +275,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.6.0.tgz", - "integrity": "sha512-y3Kt+34smKQNWilicPbBz/MXEY7QwDzMFNgwEWeYiOhUt9MTWKjHqe3EVkXwT2fR7izOvHpDWZ0o2IyD9SWX7A==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.8.0.tgz", + "integrity": "sha512-aiItwP48BiGpMFS9Znjo/xCNQVwTQVcRKkFKsO81m8exrGjHkCBDvm9PHay2kpa8RPnZzzKcD1iQ9KaLY4fPQQ==", "cpu": [ "arm64" ], @@ -288,9 +288,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.6.0.tgz", - "integrity": "sha512-oLzzxcUIHltHxOCmaXl+pkIlU+uhSxef5HfntW7RsLh1eHm+vJzjD9Oo4oUKso4YuP4PpbFJNlZjJuOrxo8dPg==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.8.0.tgz", + "integrity": "sha512-zhNIS+L4ZYkYQUjIQUR6Zl0RXhbbA0huvNIWjmPc2SL0cB1h5Djkcy+RZ3/Bwszfb6vgwUvcVJYD6e6Zkpsi8g==", "cpu": [ "arm64" ], @@ -301,9 +301,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.6.0.tgz", - "integrity": "sha512-+ANnmjkcOBaV25n0+M0Bere3roeVAnwlKW65qagtuAfIxXF9YxUneRyAn/RDcIdRa7QrjRNJL3jR7T43ObGe8Q==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.8.0.tgz", + "integrity": "sha512-A/FAHFRNQYrELrb/JHncRWzTTXB2ticiRFztP4ggIUAfa9Up1qfW8aG2w/mN9jNiZ+HB0t0u0jpJgFXG6BfRTA==", "cpu": [ "x64" ], @@ -314,9 +314,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.6.0.tgz", - "integrity": "sha512-tBTSIkjSVUyrekddpkAqKOosnj1Fc0ZY0rJL2bIEWPKqlEQk0paORL9pUIlt7lcGJi3LzMIlUGXvtNi1Z6MOCQ==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.8.0.tgz", + "integrity": "sha512-JsidBnh3p2IJJA4/2xOF2puAYqbaczB3elZDT0qHxn362EIoIkq7hrR43Xa8RisgI6/WPfvb2umbGsuvf7E37A==", "cpu": [ "arm" ], @@ -327,9 +327,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.6.0.tgz", - "integrity": "sha512-Ed8uJI3kM11de9S0j67wAV07JUNhbAqIrDYhQBrQW42jGopgheyk/cdcshgGO4fW5Wjq97COCY/BHogdGvKVNQ==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.8.0.tgz", + "integrity": "sha512-hBNCnqw3EVCkaPB0Oqd24bv8SklETptQWcJz06kb9OtiShn9jK1VuTgi7o4zPSt6rNGWQOTDEAccbk0OqJmS+g==", "cpu": [ "arm64" ], @@ -340,9 +340,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.6.0.tgz", - "integrity": "sha512-mZoNQ/qK4D7SSY8v6kEsAAyDgznzLLuSFCA3aBHZTmf3HP/dW4tNLTtWh9+LfyO0Z1aUn+ecpT7IQ3WtIg3ViQ==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.8.0.tgz", + "integrity": "sha512-Fw9ChYfJPdltvi9ALJ9wzdCdxGw4wtq4t1qY028b2O7GwB5qLNSGtqMsAel1lfWTZvf4b6/+4HKp0GlSYg0ahA==", "cpu": [ "arm64" ], @@ -352,10 +352,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.8.0.tgz", + "integrity": "sha512-BH5xIh7tOzS9yBi8dFrCTG8Z6iNIGWGltd3IpTSKp6+pNWWO6qy8eKoRxOtwFbMrid5NZaidLYN6rHh9aB8bEw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.6.0.tgz", - "integrity": "sha512-rouezFHpwCqdEXsqAfNsTgSWO0FoZ5hKv5p+TGO5KFhyN/dvYXNMqMolOb8BkyKcPqjYRBeT+Z6V3aM26rPaYg==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.8.0.tgz", + "integrity": "sha512-PmvAj8k6EuWiyLbkNpd6BLv5XeYFpqWuRvRNRl80xVfpGXK/z6KYXmAgbI4ogz7uFiJxCnYcqyvZVD0dgFog7Q==", "cpu": [ "x64" ], @@ -366,9 +379,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.6.0.tgz", - "integrity": "sha512-Bbm+fyn3S6u51urfj3YnqBXg5vI2jQPncRRELaucmhBVyZkbWClQ1fEsRmdnCPpQOQfkpg9gZArvtMVkOMsh1w==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.8.0.tgz", + "integrity": "sha512-mdxnlW2QUzXwY+95TuxZ+CurrhgrPAMveDWI97EQlA9bfhR8tw3Pt7SUlc/eSlCNxlWktpmT//EAA8UfCHOyXg==", "cpu": [ "x64" ], @@ -379,9 +392,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.6.0.tgz", - "integrity": "sha512-+MRMcyx9L2kTrTUzYmR61+XVsliMG4odFb5UmqtiT8xOfEicfYAGEuF/D1Pww1+uZkYhBqAHpvju7VN+GnC3ng==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.8.0.tgz", + "integrity": "sha512-ge7saUz38aesM4MA7Cad8CHo0Fyd1+qTaqoIo+Jtk+ipBi4ATSrHWov9/S4u5pbEQmLjgUjB7BJt+MiKG2kzmA==", "cpu": [ "arm64" ], @@ -392,9 +405,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.6.0.tgz", - "integrity": "sha512-rxfeE6K6s/Xl2HGeK6cO8SiQq3k/3BYpw7cfhW5Bk2euXNEpuzi2cc7llxx1si1QgwfjNtdRNTGqdBzGlFZGFw==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.8.0.tgz", + "integrity": "sha512-p9E3PZlzurhlsN5h9g7zIP1DnqKXJe8ZUkFwAazqSvHuWfihlIISPxG9hCHCoA+dOOspL/c7ty1eeEVFTE0UTw==", "cpu": [ "ia32" ], @@ -405,9 +418,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.6.0.tgz", - "integrity": "sha512-QqmCsydHS172Y0Kc13bkMXvipbJSvzeglBncJG3LsYJSiPlxYACz7MmJBs4A8l1oU+jfhYEIC/+AUSlvjmiX/g==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.8.0.tgz", + "integrity": "sha512-kb4/auKXkYKqlUYTE8s40FcJIj5soOyRLHKd4ugR0dCq0G2EfcF54eYcfQiGkHzjidZ40daB4ulsFdtqNKZtBg==", "cpu": [ "x64" ], @@ -1752,9 +1765,9 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.6.0.tgz", - "integrity": "sha512-R8i5Her4oO1LiMQ3jKf7MUglYV/mhQ5g5OKeld5CnkmPdIGo79FDDQYqPhq/PCVuTQVuxsWgIbDy9F+zdHn80w==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.8.0.tgz", + "integrity": "sha512-NpsklK2fach5CdI+PScmlE5R4Ao/FSWtF7LkoIrHDxPACY/xshNasPsbpG0VVHxUTbf74tJbVT4PrP8JsJ6ZDA==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -1764,18 +1777,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.6.0", - "@rollup/rollup-android-arm64": "4.6.0", - "@rollup/rollup-darwin-arm64": "4.6.0", - "@rollup/rollup-darwin-x64": "4.6.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.6.0", - "@rollup/rollup-linux-arm64-gnu": "4.6.0", - "@rollup/rollup-linux-arm64-musl": "4.6.0", - "@rollup/rollup-linux-x64-gnu": "4.6.0", - "@rollup/rollup-linux-x64-musl": "4.6.0", - "@rollup/rollup-win32-arm64-msvc": "4.6.0", - "@rollup/rollup-win32-ia32-msvc": "4.6.0", - "@rollup/rollup-win32-x64-msvc": "4.6.0", + "@rollup/rollup-android-arm-eabi": "4.8.0", + "@rollup/rollup-android-arm64": "4.8.0", + "@rollup/rollup-darwin-arm64": "4.8.0", + "@rollup/rollup-darwin-x64": "4.8.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.8.0", + "@rollup/rollup-linux-arm64-gnu": "4.8.0", + "@rollup/rollup-linux-arm64-musl": "4.8.0", + "@rollup/rollup-linux-riscv64-gnu": "4.8.0", + "@rollup/rollup-linux-x64-gnu": "4.8.0", + "@rollup/rollup-linux-x64-musl": "4.8.0", + "@rollup/rollup-win32-arm64-msvc": "4.8.0", + "@rollup/rollup-win32-ia32-msvc": "4.8.0", + "@rollup/rollup-win32-x64-msvc": "4.8.0", "fsevents": "~2.3.2" } }, diff --git a/package.json b/package.json index e0785e8..586aead 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@types/node": "^20.10.4", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.6.0", + "rollup": "^4.8.0", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", "typescript": "^5.3.2" From 5f219c6a2d1164332fc31e657f0618edbb59d1c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 20:46:58 +0000 Subject: [PATCH 175/277] Bump typescript from 5.3.2 to 5.3.3 Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.3.2 to 5.3.3. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Commits](https://github.com/Microsoft/TypeScript/compare/v5.3.2...v5.3.3) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1bacb51..82bdbfb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "rollup": "^4.6.0", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", - "typescript": "^5.3.2" + "typescript": "^5.3.3" } }, "node_modules/@codemirror/state": { @@ -1958,9 +1958,9 @@ "dev": true }, "node_modules/typescript": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz", - "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "dev": true, "bin": { "tsc": "bin/tsc", diff --git a/package.json b/package.json index e0785e8..4dc179f 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "rollup": "^4.6.0", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", - "typescript": "^5.3.2" + "typescript": "^5.3.3" }, "dependencies": { "d3": "^7.8.5", From 29637ea4a242121c72db90217ef92feb8ffa88a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jan 2024 13:10:19 +0000 Subject: [PATCH 176/277] Bump @types/node from 20.10.4 to 20.10.6 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.10.4 to 20.10.6. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index d7a13cd..27bffbf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", - "@types/node": "^20.10.4", + "@types/node": "^20.10.6", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.8.0", @@ -730,9 +730,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.10.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.4.tgz", - "integrity": "sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==", + "version": "20.10.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.6.tgz", + "integrity": "sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" diff --git a/package.json b/package.json index 83c5bc2..a5926f3 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", - "@types/node": "^20.10.4", + "@types/node": "^20.10.6", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.8.0", From 053f4c9a4398c495b3b63614d5108d8f9a3e0256 Mon Sep 17 00:00:00 2001 From: prolenodev Date: Fri, 5 Jan 2024 05:52:26 +0800 Subject: [PATCH 177/277] Fix typo in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b2e26aa..5d05cd2 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ Version 1.10.9 Version 1.10.8 -- Fixed startDat/endDate misread as a relative date +- Fixed startDate/endDate misread as a relative date Version 1.10.7 From 6dffcb20d78cc7c0901541457431e4be15060770 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Jan 2024 07:06:51 +0000 Subject: [PATCH 178/277] Bump rollup from 4.8.0 to 4.9.3 Bumps [rollup](https://github.com/rollup/rollup) from 4.8.0 to 4.9.3. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.8.0...v4.9.3) --- updated-dependencies: - dependency-name: rollup dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 115 ++++++++++++++++++++++++---------------------- package.json | 2 +- 2 files changed, 60 insertions(+), 57 deletions(-) diff --git a/package-lock.json b/package-lock.json index 27bffbf..2305608 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "@types/node": "^20.10.6", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.8.0", + "rollup": "^4.9.3", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", "typescript": "^5.3.3" @@ -262,9 +262,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.8.0.tgz", - "integrity": "sha512-zdTObFRoNENrdPpnTNnhOljYIcOX7aI7+7wyrSpPFFIOf/nRdedE6IYsjaBE7tjukphh1tMTojgJ7p3lKY8x6Q==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.3.tgz", + "integrity": "sha512-nvh9bB41vXEoKKvlWCGptpGt8EhrEwPQFDCY0VAto+R+qpSbaErPS3OjMZuXR8i/2UVw952Dtlnl2JFxH31Qvg==", "cpu": [ "arm" ], @@ -275,9 +275,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.8.0.tgz", - "integrity": "sha512-aiItwP48BiGpMFS9Znjo/xCNQVwTQVcRKkFKsO81m8exrGjHkCBDvm9PHay2kpa8RPnZzzKcD1iQ9KaLY4fPQQ==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.3.tgz", + "integrity": "sha512-kffYCJ2RhDL1DlshLzYPyJtVeusHlA8Q1j6k6s4AEVKLq/3HfGa2ADDycLsmPo3OW83r4XtOPqRMbcFzFsEIzQ==", "cpu": [ "arm64" ], @@ -288,9 +288,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.8.0.tgz", - "integrity": "sha512-zhNIS+L4ZYkYQUjIQUR6Zl0RXhbbA0huvNIWjmPc2SL0cB1h5Djkcy+RZ3/Bwszfb6vgwUvcVJYD6e6Zkpsi8g==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.3.tgz", + "integrity": "sha512-Fo7DR6Q9/+ztTyMBZ79+WJtb8RWZonyCgkBCjV51rW5K/dizBzImTW6HLC0pzmHaAevwM0jW1GtB5LCFE81mSw==", "cpu": [ "arm64" ], @@ -301,9 +301,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.8.0.tgz", - "integrity": "sha512-A/FAHFRNQYrELrb/JHncRWzTTXB2ticiRFztP4ggIUAfa9Up1qfW8aG2w/mN9jNiZ+HB0t0u0jpJgFXG6BfRTA==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.3.tgz", + "integrity": "sha512-5HcxDF9fqHucIlTiw/gmMb3Qv23L8bLCg904I74Q2lpl4j/20z9ogaD3tWkeguRuz+/17cuS321PT3PAuyjQdg==", "cpu": [ "x64" ], @@ -314,9 +314,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.8.0.tgz", - "integrity": "sha512-JsidBnh3p2IJJA4/2xOF2puAYqbaczB3elZDT0qHxn362EIoIkq7hrR43Xa8RisgI6/WPfvb2umbGsuvf7E37A==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.3.tgz", + "integrity": "sha512-cO6hKV+99D1V7uNJQn1chWaF9EGp7qV2N8sGH99q9Y62bsbN6Il55EwJppEWT+JiqDRg396vWCgwdHwje8itBQ==", "cpu": [ "arm" ], @@ -327,9 +327,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.8.0.tgz", - "integrity": "sha512-hBNCnqw3EVCkaPB0Oqd24bv8SklETptQWcJz06kb9OtiShn9jK1VuTgi7o4zPSt6rNGWQOTDEAccbk0OqJmS+g==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.3.tgz", + "integrity": "sha512-xANyq6lVg6KMO8UUs0LjA4q7di3tPpDbzLPgVEU2/F1ngIZ54eli8Zdt3uUUTMXVbgTCafIO+JPeGMhu097i3w==", "cpu": [ "arm64" ], @@ -340,9 +340,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.8.0.tgz", - "integrity": "sha512-Fw9ChYfJPdltvi9ALJ9wzdCdxGw4wtq4t1qY028b2O7GwB5qLNSGtqMsAel1lfWTZvf4b6/+4HKp0GlSYg0ahA==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.3.tgz", + "integrity": "sha512-TZJUfRTugVFATQToCMD8DNV6jv/KpSwhE1lLq5kXiQbBX3Pqw6dRKtzNkh5wcp0n09reBBq/7CGDERRw9KmE+g==", "cpu": [ "arm64" ], @@ -353,9 +353,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.8.0.tgz", - "integrity": "sha512-BH5xIh7tOzS9yBi8dFrCTG8Z6iNIGWGltd3IpTSKp6+pNWWO6qy8eKoRxOtwFbMrid5NZaidLYN6rHh9aB8bEw==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.3.tgz", + "integrity": "sha512-4/QVaRyaB5tkEAGfjVvWrmWdPF6F2NoaoO5uEP7N0AyeBw7l8SeCWWKAGrbx/00PUdHrJVURJiYikazslSKttQ==", "cpu": [ "riscv64" ], @@ -366,9 +366,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.8.0.tgz", - "integrity": "sha512-PmvAj8k6EuWiyLbkNpd6BLv5XeYFpqWuRvRNRl80xVfpGXK/z6KYXmAgbI4ogz7uFiJxCnYcqyvZVD0dgFog7Q==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.3.tgz", + "integrity": "sha512-koLC6D3pj1YLZSkTy/jsk3HOadp7q2h6VQl/lPX854twOmmLNekHB6yuS+MkWcKdGGdW1JPuPBv/ZYhr5Yhtdg==", "cpu": [ "x64" ], @@ -379,9 +379,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.8.0.tgz", - "integrity": "sha512-mdxnlW2QUzXwY+95TuxZ+CurrhgrPAMveDWI97EQlA9bfhR8tw3Pt7SUlc/eSlCNxlWktpmT//EAA8UfCHOyXg==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.3.tgz", + "integrity": "sha512-0OAkQ4HBp+JO2ip2Lgt/ShlrveOMzyhwt2D0KvqH28jFPqfZco28KSq76zymZwmU+F6GRojdxtQMJiNSXKNzeA==", "cpu": [ "x64" ], @@ -392,9 +392,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.8.0.tgz", - "integrity": "sha512-ge7saUz38aesM4MA7Cad8CHo0Fyd1+qTaqoIo+Jtk+ipBi4ATSrHWov9/S4u5pbEQmLjgUjB7BJt+MiKG2kzmA==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.3.tgz", + "integrity": "sha512-z5uvoMvdRWggigOnsb9OOCLERHV0ykRZoRB5O+URPZC9zM3pkoMg5fN4NKu2oHqgkzZtfx9u4njqqlYEzM1v9A==", "cpu": [ "arm64" ], @@ -405,9 +405,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.8.0.tgz", - "integrity": "sha512-p9E3PZlzurhlsN5h9g7zIP1DnqKXJe8ZUkFwAazqSvHuWfihlIISPxG9hCHCoA+dOOspL/c7ty1eeEVFTE0UTw==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.3.tgz", + "integrity": "sha512-wxomCHjBVKws+O4N1WLnniKCXu7vkLtdq9Fl9CN/EbwEldojvUrkoHE/fBLZzC7IT/x12Ut6d6cRs4dFvqJkMg==", "cpu": [ "ia32" ], @@ -418,9 +418,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.8.0.tgz", - "integrity": "sha512-kb4/auKXkYKqlUYTE8s40FcJIj5soOyRLHKd4ugR0dCq0G2EfcF54eYcfQiGkHzjidZ40daB4ulsFdtqNKZtBg==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.3.tgz", + "integrity": "sha512-1Qf/qk/iEtx0aOi+AQQt5PBoW0mFngsm7bPuxHClC/hWh2hHBktR6ktSfUg5b5rC9v8hTwNmHE7lBWXkgqluUQ==", "cpu": [ "x64" ], @@ -1765,10 +1765,13 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.8.0.tgz", - "integrity": "sha512-NpsklK2fach5CdI+PScmlE5R4Ao/FSWtF7LkoIrHDxPACY/xshNasPsbpG0VVHxUTbf74tJbVT4PrP8JsJ6ZDA==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.3.tgz", + "integrity": "sha512-JnchF0ZGFiqGpAPjg3e89j656Ne4tTtCY1VZc1AxtoQcRIxjTu9jyYHBAtkDXE+X681n4un/nX9SU52AroSRzg==", "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, "bin": { "rollup": "dist/bin/rollup" }, @@ -1777,19 +1780,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.8.0", - "@rollup/rollup-android-arm64": "4.8.0", - "@rollup/rollup-darwin-arm64": "4.8.0", - "@rollup/rollup-darwin-x64": "4.8.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.8.0", - "@rollup/rollup-linux-arm64-gnu": "4.8.0", - "@rollup/rollup-linux-arm64-musl": "4.8.0", - "@rollup/rollup-linux-riscv64-gnu": "4.8.0", - "@rollup/rollup-linux-x64-gnu": "4.8.0", - "@rollup/rollup-linux-x64-musl": "4.8.0", - "@rollup/rollup-win32-arm64-msvc": "4.8.0", - "@rollup/rollup-win32-ia32-msvc": "4.8.0", - "@rollup/rollup-win32-x64-msvc": "4.8.0", + "@rollup/rollup-android-arm-eabi": "4.9.3", + "@rollup/rollup-android-arm64": "4.9.3", + "@rollup/rollup-darwin-arm64": "4.9.3", + "@rollup/rollup-darwin-x64": "4.9.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.9.3", + "@rollup/rollup-linux-arm64-gnu": "4.9.3", + "@rollup/rollup-linux-arm64-musl": "4.9.3", + "@rollup/rollup-linux-riscv64-gnu": "4.9.3", + "@rollup/rollup-linux-x64-gnu": "4.9.3", + "@rollup/rollup-linux-x64-musl": "4.9.3", + "@rollup/rollup-win32-arm64-msvc": "4.9.3", + "@rollup/rollup-win32-ia32-msvc": "4.9.3", + "@rollup/rollup-win32-x64-msvc": "4.9.3", "fsevents": "~2.3.2" } }, diff --git a/package.json b/package.json index a5926f3..eddc713 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@types/node": "^20.10.6", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.8.0", + "rollup": "^4.9.3", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", "typescript": "^5.3.3" From c8f9af9f86ded209cb281110f3b17697e992f447 Mon Sep 17 00:00:00 2001 From: souponaroom <36963544+souponaroom@users.noreply.github.com> Date: Fri, 19 Jan 2024 13:29:44 -0600 Subject: [PATCH 179/277] Changed null checks to falsey checks so Obsidian frontmatter checkboxes work with streaks --- package-lock.json | 202 +++++++++++++++++++++++----------------------- src/expr.ts | 28 +++---- 2 files changed, 115 insertions(+), 115 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2305608..1b491a8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,20 +30,20 @@ } }, "node_modules/@codemirror/state": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.3.1.tgz", - "integrity": "sha512-88e4HhMtKJyw6fKprGaN/yZfiaoGYOi2nM45YCUC6R/kex9sxFWBDGatS1vk4lMgnWmdIIB9tk8Gj1LmL8YfvA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.4.0.tgz", + "integrity": "sha512-hm8XshYj5Fo30Bb922QX9hXB/bxOAVH+qaqHBzw5TKa72vOeslyGwd4X8M0c1dJ9JqxlaMceOQ8RsL9tC7gU0A==", "dev": true, "peer": true }, "node_modules/@codemirror/view": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.22.0.tgz", - "integrity": "sha512-6zLj4YIoIpfTGKrDMTbeZRpa8ih4EymMCKmddEDcJWrCdp/N1D46B38YEz4creTb4T177AVS9EyXkLeC/HL2jA==", + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.23.0.tgz", + "integrity": "sha512-/51px9N4uW8NpuWkyUX+iam5+PM6io2fm+QmRnzwqBy5v/pwGg9T0kILFtYeum8hjuvENtgsGNKluOfqIICmeQ==", "dev": true, "peer": true, "dependencies": { - "@codemirror/state": "^6.1.4", + "@codemirror/state": "^6.4.0", "style-mod": "^4.1.0", "w3c-keyname": "^2.2.4" } @@ -97,9 +97,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz", + "integrity": "sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -214,12 +214,12 @@ } }, "node_modules/@rollup/plugin-typescript": { - "version": "11.1.5", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.5.tgz", - "integrity": "sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==", + "version": "11.1.6", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.6.tgz", + "integrity": "sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==", "dev": true, "dependencies": { - "@rollup/pluginutils": "^5.0.1", + "@rollup/pluginutils": "^5.1.0", "resolve": "^1.22.1" }, "engines": { @@ -240,9 +240,9 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz", - "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", "dev": true, "dependencies": { "@types/estree": "^1.0.0", @@ -262,9 +262,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.3.tgz", - "integrity": "sha512-nvh9bB41vXEoKKvlWCGptpGt8EhrEwPQFDCY0VAto+R+qpSbaErPS3OjMZuXR8i/2UVw952Dtlnl2JFxH31Qvg==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.5.tgz", + "integrity": "sha512-idWaG8xeSRCfRq9KpRysDHJ/rEHBEXcHuJ82XY0yYFIWnLMjZv9vF/7DOq8djQ2n3Lk6+3qfSH8AqlmHlmi1MA==", "cpu": [ "arm" ], @@ -275,9 +275,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.3.tgz", - "integrity": "sha512-kffYCJ2RhDL1DlshLzYPyJtVeusHlA8Q1j6k6s4AEVKLq/3HfGa2ADDycLsmPo3OW83r4XtOPqRMbcFzFsEIzQ==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.5.tgz", + "integrity": "sha512-f14d7uhAMtsCGjAYwZGv6TwuS3IFaM4ZnGMUn3aCBgkcHAYErhV1Ad97WzBvS2o0aaDv4mVz+syiN0ElMyfBPg==", "cpu": [ "arm64" ], @@ -288,9 +288,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.3.tgz", - "integrity": "sha512-Fo7DR6Q9/+ztTyMBZ79+WJtb8RWZonyCgkBCjV51rW5K/dizBzImTW6HLC0pzmHaAevwM0jW1GtB5LCFE81mSw==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.5.tgz", + "integrity": "sha512-ndoXeLx455FffL68OIUrVr89Xu1WLzAG4n65R8roDlCoYiQcGGg6MALvs2Ap9zs7AHg8mpHtMpwC8jBBjZrT/w==", "cpu": [ "arm64" ], @@ -301,9 +301,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.3.tgz", - "integrity": "sha512-5HcxDF9fqHucIlTiw/gmMb3Qv23L8bLCg904I74Q2lpl4j/20z9ogaD3tWkeguRuz+/17cuS321PT3PAuyjQdg==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.5.tgz", + "integrity": "sha512-UmElV1OY2m/1KEEqTlIjieKfVwRg0Zwg4PLgNf0s3glAHXBN99KLpw5A5lrSYCa1Kp63czTpVll2MAqbZYIHoA==", "cpu": [ "x64" ], @@ -314,9 +314,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.3.tgz", - "integrity": "sha512-cO6hKV+99D1V7uNJQn1chWaF9EGp7qV2N8sGH99q9Y62bsbN6Il55EwJppEWT+JiqDRg396vWCgwdHwje8itBQ==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.5.tgz", + "integrity": "sha512-Q0LcU61v92tQB6ae+udZvOyZ0wfpGojtAKrrpAaIqmJ7+psq4cMIhT/9lfV6UQIpeItnq/2QDROhNLo00lOD1g==", "cpu": [ "arm" ], @@ -327,9 +327,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.3.tgz", - "integrity": "sha512-xANyq6lVg6KMO8UUs0LjA4q7di3tPpDbzLPgVEU2/F1ngIZ54eli8Zdt3uUUTMXVbgTCafIO+JPeGMhu097i3w==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.5.tgz", + "integrity": "sha512-dkRscpM+RrR2Ee3eOQmRWFjmV/payHEOrjyq1VZegRUa5OrZJ2MAxBNs05bZuY0YCtpqETDy1Ix4i/hRqX98cA==", "cpu": [ "arm64" ], @@ -340,9 +340,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.3.tgz", - "integrity": "sha512-TZJUfRTugVFATQToCMD8DNV6jv/KpSwhE1lLq5kXiQbBX3Pqw6dRKtzNkh5wcp0n09reBBq/7CGDERRw9KmE+g==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.5.tgz", + "integrity": "sha512-QaKFVOzzST2xzY4MAmiDmURagWLFh+zZtttuEnuNn19AiZ0T3fhPyjPPGwLNdiDT82ZE91hnfJsUiDwF9DClIQ==", "cpu": [ "arm64" ], @@ -353,9 +353,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.3.tgz", - "integrity": "sha512-4/QVaRyaB5tkEAGfjVvWrmWdPF6F2NoaoO5uEP7N0AyeBw7l8SeCWWKAGrbx/00PUdHrJVURJiYikazslSKttQ==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.5.tgz", + "integrity": "sha512-HeGqmRJuyVg6/X6MpE2ur7GbymBPS8Np0S/vQFHDmocfORT+Zt76qu+69NUoxXzGqVP1pzaY6QIi0FJWLC3OPA==", "cpu": [ "riscv64" ], @@ -366,9 +366,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.3.tgz", - "integrity": "sha512-koLC6D3pj1YLZSkTy/jsk3HOadp7q2h6VQl/lPX854twOmmLNekHB6yuS+MkWcKdGGdW1JPuPBv/ZYhr5Yhtdg==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.5.tgz", + "integrity": "sha512-Dq1bqBdLaZ1Gb/l2e5/+o3B18+8TI9ANlA1SkejZqDgdU/jK/ThYaMPMJpVMMXy2uRHvGKbkz9vheVGdq3cJfA==", "cpu": [ "x64" ], @@ -379,9 +379,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.3.tgz", - "integrity": "sha512-0OAkQ4HBp+JO2ip2Lgt/ShlrveOMzyhwt2D0KvqH28jFPqfZco28KSq76zymZwmU+F6GRojdxtQMJiNSXKNzeA==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.5.tgz", + "integrity": "sha512-ezyFUOwldYpj7AbkwyW9AJ203peub81CaAIVvckdkyH8EvhEIoKzaMFJj0G4qYJ5sw3BpqhFrsCc30t54HV8vg==", "cpu": [ "x64" ], @@ -392,9 +392,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.3.tgz", - "integrity": "sha512-z5uvoMvdRWggigOnsb9OOCLERHV0ykRZoRB5O+URPZC9zM3pkoMg5fN4NKu2oHqgkzZtfx9u4njqqlYEzM1v9A==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.5.tgz", + "integrity": "sha512-aHSsMnUw+0UETB0Hlv7B/ZHOGY5bQdwMKJSzGfDfvyhnpmVxLMGnQPGNE9wgqkLUs3+gbG1Qx02S2LLfJ5GaRQ==", "cpu": [ "arm64" ], @@ -405,9 +405,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.3.tgz", - "integrity": "sha512-wxomCHjBVKws+O4N1WLnniKCXu7vkLtdq9Fl9CN/EbwEldojvUrkoHE/fBLZzC7IT/x12Ut6d6cRs4dFvqJkMg==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.5.tgz", + "integrity": "sha512-AiqiLkb9KSf7Lj/o1U3SEP9Zn+5NuVKgFdRIZkvd4N0+bYrTOovVd0+LmYCPQGbocT4kvFyK+LXCDiXPBF3fyA==", "cpu": [ "ia32" ], @@ -418,9 +418,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.3.tgz", - "integrity": "sha512-1Qf/qk/iEtx0aOi+AQQt5PBoW0mFngsm7bPuxHClC/hWh2hHBktR6ktSfUg5b5rC9v8hTwNmHE7lBWXkgqluUQ==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.5.tgz", + "integrity": "sha512-1q+mykKE3Vot1kaFJIDoUFv5TuW+QQVaf2FmTT9krg86pQrGStOSJJ0Zil7CFagyxDuouTepzt5Y5TVzyajOdQ==", "cpu": [ "x64" ], @@ -614,9 +614,9 @@ "dev": true }, "node_modules/@types/d3-quadtree": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.5.tgz", - "integrity": "sha512-Cb1f3jyNBnvMMkf4KBZ7IgAQVWd9yzBwYcrxGqg3aPCUgWELAS+nyeB7r76aqu1e3+CGDjhk4BrWaFBekMwigg==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", + "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", "dev": true }, "node_modules/@types/d3-random": { @@ -635,9 +635,9 @@ } }, "node_modules/@types/d3-scale-chromatic": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.2.tgz", - "integrity": "sha512-kpKNZMDT3OAX6b5ct5nS/mv6LULagnUy4DmS6yyNjclje1qVe7vbjPwY3q1TGz6+Wr2IUkgFatCzqYUl54fHag==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz", + "integrity": "sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==", "dev": true }, "node_modules/@types/d3-selection": { @@ -647,9 +647,9 @@ "dev": true }, "node_modules/@types/d3-shape": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.5.tgz", - "integrity": "sha512-dfEWpZJ1Pdg8meLlICX1M3WBIpxnaH2eQV2eY43Y5ysRJOTAV9f3/R++lgJKFstfrEOE2zdJ0sv5qwr2Bkic6Q==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.6.tgz", + "integrity": "sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==", "dev": true, "dependencies": { "@types/d3-path": "*" @@ -730,9 +730,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.10.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.6.tgz", - "integrity": "sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==", + "version": "20.11.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.5.tgz", + "integrity": "sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -751,18 +751,18 @@ "dev": true }, "node_modules/@types/tern": { - "version": "0.23.7", - "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.7.tgz", - "integrity": "sha512-0YS9XCZ0LAhlP11HV9SqncUYyz9Ggsgc7Om/AmchKvoeFyj0qPaJmX6rJ93mJVExizWDzUMb49gAtVpI1uHd8Q==", + "version": "0.23.9", + "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.9.tgz", + "integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==", "dev": true, "dependencies": { "@types/estree": "*" } }, "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -1273,9 +1273,9 @@ } }, "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -1644,9 +1644,9 @@ } }, "node_modules/obsidian": { - "version": "1.4.11", + "version": "1.5.1", "resolved": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "integrity": "sha512-erAaIpFoS77/0/Z2EdNXMI5Kd0jTZvS17Cl/753klHvV7IFgdqD7GPUmiACPN52yOc6iHBwuDuPR1sv6Lz6DCA==", + "integrity": "sha512-zXhEivZGOKIBmN2ahr+Shh98RMEM9Ih9RsjD2RLEyVqLwu87mTYYVxLGPfWwsLD06zKUltIGqLpNG9+x5tyILA==", "dev": true, "license": "MIT", "dependencies": { @@ -1765,9 +1765,9 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.3.tgz", - "integrity": "sha512-JnchF0ZGFiqGpAPjg3e89j656Ne4tTtCY1VZc1AxtoQcRIxjTu9jyYHBAtkDXE+X681n4un/nX9SU52AroSRzg==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.5.tgz", + "integrity": "sha512-E4vQW0H/mbNMw2yLSqJyjtkHY9dslf/p0zuT1xehNRqUTBOFMqEjguDvqhXr7N7r/4ttb2jr4T41d3dncmIgbQ==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -1780,19 +1780,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.9.3", - "@rollup/rollup-android-arm64": "4.9.3", - "@rollup/rollup-darwin-arm64": "4.9.3", - "@rollup/rollup-darwin-x64": "4.9.3", - "@rollup/rollup-linux-arm-gnueabihf": "4.9.3", - "@rollup/rollup-linux-arm64-gnu": "4.9.3", - "@rollup/rollup-linux-arm64-musl": "4.9.3", - "@rollup/rollup-linux-riscv64-gnu": "4.9.3", - "@rollup/rollup-linux-x64-gnu": "4.9.3", - "@rollup/rollup-linux-x64-musl": "4.9.3", - "@rollup/rollup-win32-arm64-msvc": "4.9.3", - "@rollup/rollup-win32-ia32-msvc": "4.9.3", - "@rollup/rollup-win32-x64-msvc": "4.9.3", + "@rollup/rollup-android-arm-eabi": "4.9.5", + "@rollup/rollup-android-arm64": "4.9.5", + "@rollup/rollup-darwin-arm64": "4.9.5", + "@rollup/rollup-darwin-x64": "4.9.5", + "@rollup/rollup-linux-arm-gnueabihf": "4.9.5", + "@rollup/rollup-linux-arm64-gnu": "4.9.5", + "@rollup/rollup-linux-arm64-musl": "4.9.5", + "@rollup/rollup-linux-riscv64-gnu": "4.9.5", + "@rollup/rollup-linux-x64-gnu": "4.9.5", + "@rollup/rollup-linux-x64-musl": "4.9.5", + "@rollup/rollup-win32-arm64-msvc": "4.9.5", + "@rollup/rollup-win32-ia32-msvc": "4.9.5", + "@rollup/rollup-win32-x64-msvc": "4.9.5", "fsevents": "~2.3.2" } }, @@ -1866,9 +1866,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, "dependencies": { "randombytes": "^2.1.0" @@ -1933,9 +1933,9 @@ } }, "node_modules/terser": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", - "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", + "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", diff --git a/src/expr.ts b/src/expr.ts index 65562c2..6469950 100644 --- a/src/expr.ts +++ b/src/expr.ts @@ -167,7 +167,7 @@ const fnMapDatasetToValue: FnMapDatasetToValue = { let streak = 0; let maxStreak = 0; for (let dataPoint of dataset) { - if (dataPoint.value !== null) { + if (dataPoint.value) { streak++; } else { streak = 0; @@ -186,7 +186,7 @@ const fnMapDatasetToValue: FnMapDatasetToValue = { let maxStreakStart: Moment = null; if (dataset) { for (let dataPoint of dataset) { - if (dataPoint.value !== null) { + if (dataPoint.value) { if (streak === 0) { streakStart = dataPoint.date; } @@ -216,9 +216,9 @@ const fnMapDatasetToValue: FnMapDatasetToValue = { if (ind < arrayDataset.length - 1) { nextPoint = arrayDataset[ind + 1]; } - if (point.value !== null) { + if (point.value) { streak++; - if (nextPoint?.value === null) { + if (!nextPoint?.value) { streakEnd = point.date; } } else { @@ -239,7 +239,7 @@ const fnMapDatasetToValue: FnMapDatasetToValue = { let breaks = 0; let maxBreaks = 0; for (let dataPoint of dataset) { - if (dataPoint.value === null) { + if (!dataPoint.value) { breaks++; } else { breaks = 0; @@ -258,7 +258,7 @@ const fnMapDatasetToValue: FnMapDatasetToValue = { let maxBreaksStart: Moment = null; if (dataset) { for (let dataPoint of dataset) { - if (dataPoint.value === null) { + if (!dataPoint.value) { if (breaks === 0) { breaksStart = dataPoint.date; } @@ -288,9 +288,9 @@ const fnMapDatasetToValue: FnMapDatasetToValue = { if (ind < arrayDataset.length - 1) { nextPoint = arrayDataset[ind + 1]; } - if (point.value === null) { + if (!point.value) { breaks++; - if (nextPoint?.value !== null) { + if (nextPoint?.value) { breaksEnd = point.date; } } else { @@ -314,7 +314,7 @@ const fnMapDatasetToValue: FnMapDatasetToValue = { let arrayDataset = Array.from(dataset); for (let ind = arrayDataset.length - 1; ind >= 0; ind--) { let point = arrayDataset[ind]; - if (point.value === null) { + if (!point.value) { break; } else { currentStreak++; @@ -334,7 +334,7 @@ const fnMapDatasetToValue: FnMapDatasetToValue = { if (ind < arrayDataset.length - 1) { currentStreakStart = arrayDataset[ind + 1].date; } - if (point.value === null) { + if (!point.value) { break; } else { currentStreak++; @@ -355,7 +355,7 @@ const fnMapDatasetToValue: FnMapDatasetToValue = { let arrayDataset = Array.from(dataset); for (let ind = arrayDataset.length - 1; ind >= 0; ind--) { let point = arrayDataset[ind]; - if (point.value === null) { + if (!point.value) { break; } else { if (currentStreak === 0) { @@ -378,7 +378,7 @@ const fnMapDatasetToValue: FnMapDatasetToValue = { let arrayDataset = Array.from(dataset); for (let ind = arrayDataset.length - 1; ind >= 0; ind--) { let point = arrayDataset[ind]; - if (point.value === null) { + if (!point.value) { currentBreaks++; } else { break; @@ -398,7 +398,7 @@ const fnMapDatasetToValue: FnMapDatasetToValue = { if (ind < arrayDataset.length - 1) { currentBreaksStart = arrayDataset[ind + 1].date; } - if (point.value === null) { + if (!point.value) { currentBreaks++; } else { break; @@ -419,7 +419,7 @@ const fnMapDatasetToValue: FnMapDatasetToValue = { let arrayDataset = Array.from(dataset); for (let ind = arrayDataset.length - 1; ind >= 0; ind--) { let point = arrayDataset[ind]; - if (point.value === null) { + if (!point.value) { if (currentBreaks === 0) { currentBreaksEnd = point.date; } From 0bd5005af783b7490d47169f8249dc8a84ce5dd3 Mon Sep 17 00:00:00 2001 From: souponaroom <36963544+souponaroom@users.noreply.github.com> Date: Fri, 19 Jan 2024 13:43:32 -0600 Subject: [PATCH 180/277] added rudimentary test --- examples/TestSummary.md | 7 +++++++ examples/diary/2021-01-21.md | 1 + examples/diary/2021-01-22.md | 1 + examples/diary/2021-01-23.md | 1 + examples/diary/2021-01-24.md | 1 + examples/diary/2021-01-25.md | 1 + 6 files changed, 12 insertions(+) diff --git a/examples/TestSummary.md b/examples/TestSummary.md index fb3d158..d615338 100644 --- a/examples/TestSummary.md +++ b/examples/TestSummary.md @@ -21,6 +21,13 @@ summary: style: "font-size:20px;color:yellow;margin-left: 50px;margin-top:00px;" ``` +``` tracker +searchType: frontmatter +searchTarget: sleptwell +folder: diary +summary: + template: "I once slept well for {{maxStreak()::i}} days in a row!" +``` ## Using Expressions Please check [expression examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md) for more examples. \ No newline at end of file diff --git a/examples/diary/2021-01-21.md b/examples/diary/2021-01-21.md index 94eecce..95f6869 100644 --- a/examples/diary/2021-01-21.md +++ b/examples/diary/2021-01-21.md @@ -18,6 +18,7 @@ deepValue: very: deep: 11.1 randchar: B +sleptwell: false --- #weight:67.3kg diff --git a/examples/diary/2021-01-22.md b/examples/diary/2021-01-22.md index 1d59f28..c2fe7fb 100644 --- a/examples/diary/2021-01-22.md +++ b/examples/diary/2021-01-22.md @@ -18,6 +18,7 @@ deepValue: very: deep: 83.3 randchar: E +sleptwell: true --- #weight:64.7kg diff --git a/examples/diary/2021-01-23.md b/examples/diary/2021-01-23.md index c793861..8dfa52d 100644 --- a/examples/diary/2021-01-23.md +++ b/examples/diary/2021-01-23.md @@ -18,6 +18,7 @@ deepValue: very: deep: 28.8 randchar: A +sleptwell: true --- #weight:67.3kg diff --git a/examples/diary/2021-01-24.md b/examples/diary/2021-01-24.md index 5a726f8..4c8baef 100644 --- a/examples/diary/2021-01-24.md +++ b/examples/diary/2021-01-24.md @@ -18,6 +18,7 @@ deepValue: very: deep: 39.4 randchar: B +sleptwell: true --- #weight:64.1kg diff --git a/examples/diary/2021-01-25.md b/examples/diary/2021-01-25.md index 569cbf6..ba63688 100644 --- a/examples/diary/2021-01-25.md +++ b/examples/diary/2021-01-25.md @@ -18,6 +18,7 @@ deepValue: very: deep: 81.4 randchar: E +sleptwell: false --- #weight:62.4kg From 4d15256f2464708c0d3c1f6d98acb94dc1ee4e96 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Fri, 19 Jan 2024 20:51:35 -0700 Subject: [PATCH 181/277] Update dependencies --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1b491a8..d5689f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -97,9 +97,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz", - "integrity": "sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==", + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", + "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", From 1ee18ec417d0c08bb3c0b4fca4d61c1eeaac4d52 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Fri, 19 Jan 2024 20:48:57 -0700 Subject: [PATCH 182/277] Update copyright year --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index e1d3f7d..27adb17 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2021-2023 Hsuan Hao Chang +Copyright (c) 2021-2024 Hsuan Hao Chang Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From 229f5cd5b91504d8a9807f406c4909e7c7768ac6 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Fri, 19 Jan 2024 20:49:35 -0700 Subject: [PATCH 183/277] Release 1.13.2 --- README.md | 6 ++++++ docs/ReleaseNotes.md | 6 ++++++ manifest.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- versions.json | 3 ++- 6 files changed, 18 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 5d05cd2..c1f7bad 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,12 @@ This is an [Obsidian](https://obsidian.md/) plugin that helps you collect data f ## What's New +Version 1.13.2 + +- Update dependencies +- Fix typo in README.md +- Change streak counts to terminate on falsey values rather than null + Version 1.13.1 - Fix packaging script diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index b7ea67b..44fa437 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,11 @@ # Release Notes +## 1.13.2 + +- Update dependencies +- Fix typo in README.md +- Change streak counts to terminate on falsey values rather than null + ## 1.13.1 - Fix packaging script diff --git a/manifest.json b/manifest.json index cc5ce96..b2fcb28 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.13.1", + "version": "1.13.2", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package-lock.json b/package-lock.json index d5689f3..3af6d86 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "obsidian-tracker", - "version": "1.13.1", + "version": "1.13.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "obsidian-tracker", - "version": "1.13.1", + "version": "1.13.2", "license": "MIT", "dependencies": { "d3": "^7.8.5", diff --git a/package.json b/package.json index eddc713..1dad812 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.13.1", + "version": "1.13.2", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index 49a583c..3707a72 100644 --- a/versions.json +++ b/versions.json @@ -32,5 +32,6 @@ "1.11.0": "0.9.12", "1.12.0": "0.9.12", "1.13.0": "0.9.12", - "1.13.1": "0.9.12" + "1.13.1": "0.9.12", + "1.13.2": "0.9.12" } From 56fd4cbe75d37a5e990ad8414d658de354eca305 Mon Sep 17 00:00:00 2001 From: lulunac27a Date: Thu, 1 Feb 2024 19:38:04 -0600 Subject: [PATCH 184/277] Fix spelling mistake --- examples/TestExpression.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/TestExpression.md b/examples/TestExpression.md index d14c3f1..5a86464 100644 --- a/examples/TestExpression.md +++ b/examples/TestExpression.md @@ -356,7 +356,7 @@ searchTarget: meditation folder: /diary endDate: 2021-01-04 summary: - template: 'Set missing values to -1, do normalization then do summation: {{sum( normalize( setMissingValues(dataset(0), -1) ) )::i}} <-- sgiydk be 3' + template: 'Set missing values to -1, do normalization then do summation: {{sum( normalize( setMissingValues(dataset(0), -1) ) )::i}} <-- should be 3' ``` setMissingValues(Dataset): Dataset From 23b0013445e0ee96eaa97be231de86da7e6a2d5f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Feb 2024 13:22:25 +0000 Subject: [PATCH 185/277] Bump rollup from 4.9.5 to 4.12.0 Bumps [rollup](https://github.com/rollup/rollup) from 4.9.5 to 4.12.0. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.9.5...v4.12.0) --- updated-dependencies: - dependency-name: rollup dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 112 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 57 insertions(+), 57 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3af6d86..03ae622 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "@types/node": "^20.10.6", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.9.3", + "rollup": "^4.12.0", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", "typescript": "^5.3.3" @@ -262,9 +262,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.5.tgz", - "integrity": "sha512-idWaG8xeSRCfRq9KpRysDHJ/rEHBEXcHuJ82XY0yYFIWnLMjZv9vF/7DOq8djQ2n3Lk6+3qfSH8AqlmHlmi1MA==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz", + "integrity": "sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==", "cpu": [ "arm" ], @@ -275,9 +275,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.5.tgz", - "integrity": "sha512-f14d7uhAMtsCGjAYwZGv6TwuS3IFaM4ZnGMUn3aCBgkcHAYErhV1Ad97WzBvS2o0aaDv4mVz+syiN0ElMyfBPg==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz", + "integrity": "sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==", "cpu": [ "arm64" ], @@ -288,9 +288,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.5.tgz", - "integrity": "sha512-ndoXeLx455FffL68OIUrVr89Xu1WLzAG4n65R8roDlCoYiQcGGg6MALvs2Ap9zs7AHg8mpHtMpwC8jBBjZrT/w==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz", + "integrity": "sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==", "cpu": [ "arm64" ], @@ -301,9 +301,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.5.tgz", - "integrity": "sha512-UmElV1OY2m/1KEEqTlIjieKfVwRg0Zwg4PLgNf0s3glAHXBN99KLpw5A5lrSYCa1Kp63czTpVll2MAqbZYIHoA==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz", + "integrity": "sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==", "cpu": [ "x64" ], @@ -314,9 +314,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.5.tgz", - "integrity": "sha512-Q0LcU61v92tQB6ae+udZvOyZ0wfpGojtAKrrpAaIqmJ7+psq4cMIhT/9lfV6UQIpeItnq/2QDROhNLo00lOD1g==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz", + "integrity": "sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==", "cpu": [ "arm" ], @@ -327,9 +327,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.5.tgz", - "integrity": "sha512-dkRscpM+RrR2Ee3eOQmRWFjmV/payHEOrjyq1VZegRUa5OrZJ2MAxBNs05bZuY0YCtpqETDy1Ix4i/hRqX98cA==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz", + "integrity": "sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==", "cpu": [ "arm64" ], @@ -340,9 +340,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.5.tgz", - "integrity": "sha512-QaKFVOzzST2xzY4MAmiDmURagWLFh+zZtttuEnuNn19AiZ0T3fhPyjPPGwLNdiDT82ZE91hnfJsUiDwF9DClIQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz", + "integrity": "sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==", "cpu": [ "arm64" ], @@ -353,9 +353,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.5.tgz", - "integrity": "sha512-HeGqmRJuyVg6/X6MpE2ur7GbymBPS8Np0S/vQFHDmocfORT+Zt76qu+69NUoxXzGqVP1pzaY6QIi0FJWLC3OPA==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz", + "integrity": "sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==", "cpu": [ "riscv64" ], @@ -366,9 +366,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.5.tgz", - "integrity": "sha512-Dq1bqBdLaZ1Gb/l2e5/+o3B18+8TI9ANlA1SkejZqDgdU/jK/ThYaMPMJpVMMXy2uRHvGKbkz9vheVGdq3cJfA==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz", + "integrity": "sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==", "cpu": [ "x64" ], @@ -379,9 +379,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.5.tgz", - "integrity": "sha512-ezyFUOwldYpj7AbkwyW9AJ203peub81CaAIVvckdkyH8EvhEIoKzaMFJj0G4qYJ5sw3BpqhFrsCc30t54HV8vg==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz", + "integrity": "sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==", "cpu": [ "x64" ], @@ -392,9 +392,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.5.tgz", - "integrity": "sha512-aHSsMnUw+0UETB0Hlv7B/ZHOGY5bQdwMKJSzGfDfvyhnpmVxLMGnQPGNE9wgqkLUs3+gbG1Qx02S2LLfJ5GaRQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz", + "integrity": "sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==", "cpu": [ "arm64" ], @@ -405,9 +405,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.5.tgz", - "integrity": "sha512-AiqiLkb9KSf7Lj/o1U3SEP9Zn+5NuVKgFdRIZkvd4N0+bYrTOovVd0+LmYCPQGbocT4kvFyK+LXCDiXPBF3fyA==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz", + "integrity": "sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==", "cpu": [ "ia32" ], @@ -418,9 +418,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.5.tgz", - "integrity": "sha512-1q+mykKE3Vot1kaFJIDoUFv5TuW+QQVaf2FmTT9krg86pQrGStOSJJ0Zil7CFagyxDuouTepzt5Y5TVzyajOdQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz", + "integrity": "sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==", "cpu": [ "x64" ], @@ -1765,9 +1765,9 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.5.tgz", - "integrity": "sha512-E4vQW0H/mbNMw2yLSqJyjtkHY9dslf/p0zuT1xehNRqUTBOFMqEjguDvqhXr7N7r/4ttb2jr4T41d3dncmIgbQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.12.0.tgz", + "integrity": "sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -1780,19 +1780,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.9.5", - "@rollup/rollup-android-arm64": "4.9.5", - "@rollup/rollup-darwin-arm64": "4.9.5", - "@rollup/rollup-darwin-x64": "4.9.5", - "@rollup/rollup-linux-arm-gnueabihf": "4.9.5", - "@rollup/rollup-linux-arm64-gnu": "4.9.5", - "@rollup/rollup-linux-arm64-musl": "4.9.5", - "@rollup/rollup-linux-riscv64-gnu": "4.9.5", - "@rollup/rollup-linux-x64-gnu": "4.9.5", - "@rollup/rollup-linux-x64-musl": "4.9.5", - "@rollup/rollup-win32-arm64-msvc": "4.9.5", - "@rollup/rollup-win32-ia32-msvc": "4.9.5", - "@rollup/rollup-win32-x64-msvc": "4.9.5", + "@rollup/rollup-android-arm-eabi": "4.12.0", + "@rollup/rollup-android-arm64": "4.12.0", + "@rollup/rollup-darwin-arm64": "4.12.0", + "@rollup/rollup-darwin-x64": "4.12.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.12.0", + "@rollup/rollup-linux-arm64-gnu": "4.12.0", + "@rollup/rollup-linux-arm64-musl": "4.12.0", + "@rollup/rollup-linux-riscv64-gnu": "4.12.0", + "@rollup/rollup-linux-x64-gnu": "4.12.0", + "@rollup/rollup-linux-x64-musl": "4.12.0", + "@rollup/rollup-win32-arm64-msvc": "4.12.0", + "@rollup/rollup-win32-ia32-msvc": "4.12.0", + "@rollup/rollup-win32-x64-msvc": "4.12.0", "fsevents": "~2.3.2" } }, diff --git a/package.json b/package.json index 1dad812..09759fc 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@types/node": "^20.10.6", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.9.3", + "rollup": "^4.12.0", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", "typescript": "^5.3.3" From cf8ae8fb218014b7d573c88ba83c192d0a582688 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 13:50:08 +0000 Subject: [PATCH 186/277] Bump @types/node from 20.11.5 to 20.11.20 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.11.5 to 20.11.20. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3af6d86..3c1c08e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", - "@types/node": "^20.10.6", + "@types/node": "^20.11.20", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.9.3", @@ -730,9 +730,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.5.tgz", - "integrity": "sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==", + "version": "20.11.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz", + "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" diff --git a/package.json b/package.json index 1dad812..8b19af7 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", - "@types/node": "^20.10.6", + "@types/node": "^20.11.20", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.9.3", From a0de4cff1f33ae0fc10d9f046d15df0222b9a3f4 Mon Sep 17 00:00:00 2001 From: Denis Reznikov Date: Sun, 3 Mar 2024 00:08:01 +0300 Subject: [PATCH 187/277] Fix misspell Finace -> Finance --- examples/FinanceTracker.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/FinanceTracker.md b/examples/FinanceTracker.md index 212ec16..64d3d66 100644 --- a/examples/FinanceTracker.md +++ b/examples/FinanceTracker.md @@ -6,7 +6,7 @@ searchTarget: finance folder: diary accum: true line: - title: Finace + title: Finance yAxisLabel: USD lineWidth: 4 ``` @@ -34,4 +34,4 @@ line: fillGap: true ``` -Please also check those search targets in markdown files under folder 'diary'. \ No newline at end of file +Please also check those search targets in markdown files under folder 'diary'. From 0b94963b23cc54cf5d5b1dd96242d98a9d6cfb64 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Mar 2024 13:44:39 +0000 Subject: [PATCH 188/277] Bump softprops/action-gh-release from 1 to 2 Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 1 to 2. - [Release notes](https://github.com/softprops/action-gh-release/releases) - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md) - [Commits](https://github.com/softprops/action-gh-release/compare/v1...v2) --- updated-dependencies: - dependency-name: softprops/action-gh-release dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/releases.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index e44ee1a..4bace7d 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -21,7 +21,7 @@ jobs: yarn build yarn zip - name: Release with Notes - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v2 with: files: | main.js From 14e77dd86b2b99860ebbaadfcfa159f1ec3bed67 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 13:47:07 +0000 Subject: [PATCH 189/277] Bump @types/node from 20.11.20 to 20.11.28 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.11.20 to 20.11.28. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7f546b5..e33f341 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", - "@types/node": "^20.11.20", + "@types/node": "^20.11.28", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.12.0", @@ -730,9 +730,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.20", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz", - "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==", + "version": "20.11.28", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.28.tgz", + "integrity": "sha512-M/GPWVS2wLkSkNHVeLkrF2fD5Lx5UC4PxA0uZcKc6QqbIQUJyW1jVjueJYi1z8n0I5PxYrtpnPnWglE+y9A0KA==", "dev": true, "dependencies": { "undici-types": "~5.26.4" diff --git a/package.json b/package.json index 3502a4d..3285ed4 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", - "@types/node": "^20.11.20", + "@types/node": "^20.11.28", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.12.0", From 7f0641fc33a9eb33566c2a967b1610eca80d62a3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 13:47:16 +0000 Subject: [PATCH 190/277] Bump rollup from 4.12.0 to 4.13.0 Bumps [rollup](https://github.com/rollup/rollup) from 4.12.0 to 4.13.0. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.12.0...v4.13.0) --- updated-dependencies: - dependency-name: rollup dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 112 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 57 insertions(+), 57 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7f546b5..d365220 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "@types/node": "^20.11.20", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.12.0", + "rollup": "^4.13.0", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", "typescript": "^5.3.3" @@ -262,9 +262,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz", - "integrity": "sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", + "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", "cpu": [ "arm" ], @@ -275,9 +275,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz", - "integrity": "sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", + "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", "cpu": [ "arm64" ], @@ -288,9 +288,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz", - "integrity": "sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", + "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", "cpu": [ "arm64" ], @@ -301,9 +301,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz", - "integrity": "sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", + "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", "cpu": [ "x64" ], @@ -314,9 +314,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz", - "integrity": "sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", + "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", "cpu": [ "arm" ], @@ -327,9 +327,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz", - "integrity": "sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", + "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", "cpu": [ "arm64" ], @@ -340,9 +340,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz", - "integrity": "sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", + "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", "cpu": [ "arm64" ], @@ -353,9 +353,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz", - "integrity": "sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", + "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", "cpu": [ "riscv64" ], @@ -366,9 +366,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz", - "integrity": "sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", + "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", "cpu": [ "x64" ], @@ -379,9 +379,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz", - "integrity": "sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", + "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", "cpu": [ "x64" ], @@ -392,9 +392,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz", - "integrity": "sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", + "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", "cpu": [ "arm64" ], @@ -405,9 +405,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz", - "integrity": "sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", + "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", "cpu": [ "ia32" ], @@ -418,9 +418,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz", - "integrity": "sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", + "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", "cpu": [ "x64" ], @@ -1765,9 +1765,9 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.12.0.tgz", - "integrity": "sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", + "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -1780,19 +1780,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.12.0", - "@rollup/rollup-android-arm64": "4.12.0", - "@rollup/rollup-darwin-arm64": "4.12.0", - "@rollup/rollup-darwin-x64": "4.12.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.12.0", - "@rollup/rollup-linux-arm64-gnu": "4.12.0", - "@rollup/rollup-linux-arm64-musl": "4.12.0", - "@rollup/rollup-linux-riscv64-gnu": "4.12.0", - "@rollup/rollup-linux-x64-gnu": "4.12.0", - "@rollup/rollup-linux-x64-musl": "4.12.0", - "@rollup/rollup-win32-arm64-msvc": "4.12.0", - "@rollup/rollup-win32-ia32-msvc": "4.12.0", - "@rollup/rollup-win32-x64-msvc": "4.12.0", + "@rollup/rollup-android-arm-eabi": "4.13.0", + "@rollup/rollup-android-arm64": "4.13.0", + "@rollup/rollup-darwin-arm64": "4.13.0", + "@rollup/rollup-darwin-x64": "4.13.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", + "@rollup/rollup-linux-arm64-gnu": "4.13.0", + "@rollup/rollup-linux-arm64-musl": "4.13.0", + "@rollup/rollup-linux-riscv64-gnu": "4.13.0", + "@rollup/rollup-linux-x64-gnu": "4.13.0", + "@rollup/rollup-linux-x64-musl": "4.13.0", + "@rollup/rollup-win32-arm64-msvc": "4.13.0", + "@rollup/rollup-win32-ia32-msvc": "4.13.0", + "@rollup/rollup-win32-x64-msvc": "4.13.0", "fsevents": "~2.3.2" } }, diff --git a/package.json b/package.json index 3502a4d..d653965 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@types/node": "^20.11.20", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.12.0", + "rollup": "^4.13.0", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", "typescript": "^5.3.3" From f219e5d1d4fee5ab3357c8c2c0ac052ecb4d3355 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 13:47:27 +0000 Subject: [PATCH 191/277] Bump d3 from 7.8.5 to 7.9.0 Bumps [d3](https://github.com/d3/d3) from 7.8.5 to 7.9.0. - [Release notes](https://github.com/d3/d3/releases) - [Changelog](https://github.com/d3/d3/blob/main/CHANGES.md) - [Commits](https://github.com/d3/d3/compare/v7.8.5...v7.9.0) --- updated-dependencies: - dependency-name: d3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7f546b5..97ec0db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.13.2", "license": "MIT", "dependencies": { - "d3": "^7.8.5", + "d3": "^7.9.0", "d3-interpolate": "^3.0.1", "jsep": "^1.3.8", "sprintf-js": "^1.1.3" @@ -852,9 +852,9 @@ "dev": true }, "node_modules/d3": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/d3/-/d3-7.8.5.tgz", - "integrity": "sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", "dependencies": { "d3-array": "3", "d3-axis": "3", diff --git a/package.json b/package.json index 3502a4d..b80aca4 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "typescript": "^5.3.3" }, "dependencies": { - "d3": "^7.8.5", + "d3": "^7.9.0", "d3-interpolate": "^3.0.1", "jsep": "^1.3.8", "sprintf-js": "^1.1.3" From 58eb40ef4db748ec8b3ff6a38bc9f1a9a1e2947d Mon Sep 17 00:00:00 2001 From: Tomas M <2348962+mtomas7@users.noreply.github.com> Date: Thu, 21 Mar 2024 14:20:22 -0500 Subject: [PATCH 192/277] Update main.ts - use new format for {{average}} --- src/main.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.ts b/src/main.ts index 31d9835..3779e80 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1061,7 +1061,7 @@ folder: / startDate: endDate: summary: - template: "Average value of tagName is {{average}}" + template: "Average value of tagName is {{average()}}" style: "color:white;" \`\`\``; break; From 9aea28fae890c6dc3fc184e9c32fd142f547ac16 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 04:23:24 +0000 Subject: [PATCH 193/277] Bump typescript from 5.3.3 to 5.4.3 Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.3.3 to 5.4.3. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/Microsoft/TypeScript/compare/v5.3.3...v5.4.3) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 97ec0db..15a02c1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "rollup": "^4.12.0", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", - "typescript": "^5.3.3" + "typescript": "^5.4.3" } }, "node_modules/@codemirror/state": { @@ -1975,9 +1975,9 @@ "dev": true }, "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz", + "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==", "dev": true, "bin": { "tsc": "bin/tsc", diff --git a/package.json b/package.json index b80aca4..7d448c7 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "rollup": "^4.12.0", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", - "typescript": "^5.3.3" + "typescript": "^5.4.3" }, "dependencies": { "d3": "^7.9.0", From 4a56a5e385113a32c60aa1fc78aa98f7c089c977 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 04:24:26 +0000 Subject: [PATCH 194/277] Bump @types/node from 20.11.28 to 20.11.30 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.11.28 to 20.11.30. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index d29d89a..61bd69f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", - "@types/node": "^20.11.28", + "@types/node": "^20.11.30", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.13.0", @@ -730,9 +730,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.28.tgz", - "integrity": "sha512-M/GPWVS2wLkSkNHVeLkrF2fD5Lx5UC4PxA0uZcKc6QqbIQUJyW1jVjueJYi1z8n0I5PxYrtpnPnWglE+y9A0KA==", + "version": "20.11.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz", + "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" diff --git a/package.json b/package.json index a48b1eb..c4f7539 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", - "@types/node": "^20.11.28", + "@types/node": "^20.11.30", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.13.0", From f3e4600481a1f5a084d879961ebe38ec051b5a6b Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Thu, 21 Mar 2024 23:54:17 -0600 Subject: [PATCH 195/277] Release 1.13.3 --- README.md | 7 +++++++ docs/ReleaseNotes.md | 7 +++++++ manifest.json | 2 +- versions.json | 3 ++- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c1f7bad..f8be9ac 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,13 @@ This is an [Obsidian](https://obsidian.md/) plugin that helps you collect data f ## What's New +Version 1.13.3 + +- Update dependencies +- Fix typo in FinanceTracker.md +- Fix typo in TestExpression.md +- Update main.ts - use new format for {{average}} + Version 1.13.2 - Update dependencies diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index 44fa437..a9bc27e 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,12 @@ # Release Notes +## 1.13.3 + +- Update dependencies +- Fix typo in FinanceTracker.md +- Fix typo in TestExpression.md +- Update main.ts - use new format for {{average}} + ## 1.13.2 - Update dependencies diff --git a/manifest.json b/manifest.json index b2fcb28..5ca257f 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.13.2", + "version": "1.13.3", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/versions.json b/versions.json index 3707a72..8f2fcaf 100644 --- a/versions.json +++ b/versions.json @@ -33,5 +33,6 @@ "1.12.0": "0.9.12", "1.13.0": "0.9.12", "1.13.1": "0.9.12", - "1.13.2": "0.9.12" + "1.13.2": "0.9.12", + "1.13.3": "0.9.12" } From a3f68f1440e282523be1ee623d1cb3e88cb372b5 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Thu, 21 Mar 2024 23:56:51 -0600 Subject: [PATCH 196/277] Release 1.13.3 (take 2) --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 981665f..a4c876c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "obsidian-tracker", - "version": "1.13.2", + "version": "1.13.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "obsidian-tracker", - "version": "1.13.2", + "version": "1.13.3", "license": "MIT", "dependencies": { "d3": "^7.9.0", diff --git a/package.json b/package.json index bbe64a8..e9135ba 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.13.2", + "version": "1.13.3", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { From b84a79c0e66ed3408a8fc7618ec191679948d7af Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 13:30:39 +0000 Subject: [PATCH 197/277] Bump @types/node from 20.11.30 to 20.12.2 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.11.30 to 20.12.2. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index a4c876c..62bdf99 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", - "@types/node": "^20.11.30", + "@types/node": "^20.12.2", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.13.0", @@ -730,9 +730,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.30", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz", - "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==", + "version": "20.12.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.2.tgz", + "integrity": "sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==", "dev": true, "dependencies": { "undici-types": "~5.26.4" diff --git a/package.json b/package.json index e9135ba..3eae161 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", - "@types/node": "^20.11.30", + "@types/node": "^20.12.2", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.13.0", From 954a3eaff300bb77684d6dce5f30214c49aa903d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Apr 2024 00:27:37 +0000 Subject: [PATCH 198/277] Bump rollup from 4.13.0 to 4.13.2 Bumps [rollup](https://github.com/rollup/rollup) from 4.13.0 to 4.13.2. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.13.0...v4.13.2) --- updated-dependencies: - dependency-name: rollup dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 140 +++++++++++++++++++++++++++------------------- package.json | 2 +- 2 files changed, 85 insertions(+), 57 deletions(-) diff --git a/package-lock.json b/package-lock.json index 62bdf99..7298b16 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "@types/node": "^20.12.2", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.13.0", + "rollup": "^4.13.2", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", "typescript": "^5.4.3" @@ -262,9 +262,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.2.tgz", + "integrity": "sha512-3XFIDKWMFZrMnao1mJhnOT1h2g0169Os848NhhmGweEcfJ4rCi+3yMCOLG4zA61rbJdkcrM/DjVZm9Hg5p5w7g==", "cpu": [ "arm" ], @@ -275,9 +275,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.2.tgz", + "integrity": "sha512-GdxxXbAuM7Y/YQM9/TwwP+L0omeE/lJAR1J+olu36c3LqqZEBdsIWeQ91KBe6nxwOnb06Xh7JS2U5ooWU5/LgQ==", "cpu": [ "arm64" ], @@ -288,9 +288,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.2.tgz", + "integrity": "sha512-mCMlpzlBgOTdaFs83I4XRr8wNPveJiJX1RLfv4hggyIVhfB5mJfN4P8Z6yKh+oE4Luz+qq1P3kVdWrCKcMYrrA==", "cpu": [ "arm64" ], @@ -301,9 +301,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.2.tgz", + "integrity": "sha512-yUoEvnH0FBef/NbB1u6d3HNGyruAKnN74LrPAfDQL3O32e3k3OSfLrPgSJmgb3PJrBZWfPyt6m4ZhAFa2nZp2A==", "cpu": [ "x64" ], @@ -314,9 +314,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.2.tgz", + "integrity": "sha512-GYbLs5ErswU/Xs7aGXqzc3RrdEjKdmoCrgzhJWyFL0r5fL3qd1NPcDKDowDnmcoSiGJeU68/Vy+OMUluRxPiLQ==", "cpu": [ "arm" ], @@ -327,9 +327,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.2.tgz", + "integrity": "sha512-L1+D8/wqGnKQIlh4Zre9i4R4b4noxzH5DDciyahX4oOz62CphY7WDWqJoQ66zNR4oScLNOqQJfNSIAe/6TPUmQ==", "cpu": [ "arm64" ], @@ -340,9 +340,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.2.tgz", + "integrity": "sha512-tK5eoKFkXdz6vjfkSTCupUzCo40xueTOiOO6PeEIadlNBkadH1wNOH8ILCPIl8by/Gmb5AGAeQOFeLev7iZDOA==", "cpu": [ "arm64" ], @@ -352,10 +352,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.13.2.tgz", + "integrity": "sha512-zvXvAUGGEYi6tYhcDmb9wlOckVbuD+7z3mzInCSTACJ4DQrdSLPNUeDIcAQW39M3q6PDquqLWu7pnO39uSMRzQ==", + "cpu": [ + "ppc64le" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.2.tgz", + "integrity": "sha512-C3GSKvMtdudHCN5HdmAMSRYR2kkhgdOfye4w0xzyii7lebVr4riCgmM6lRiSCnJn2w1Xz7ZZzHKuLrjx5620kw==", "cpu": [ "riscv64" ], @@ -365,10 +378,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.13.2.tgz", + "integrity": "sha512-l4U0KDFwzD36j7HdfJ5/TveEQ1fUTjFFQP5qIt9gBqBgu1G8/kCaq5Ok05kd5TG9F8Lltf3MoYsUMw3rNlJ0Yg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.2.tgz", + "integrity": "sha512-xXMLUAMzrtsvh3cZ448vbXqlUa7ZL8z0MwHp63K2IIID2+DeP5iWIT6g1SN7hg1VxPzqx0xZdiDM9l4n9LRU1A==", "cpu": [ "x64" ], @@ -379,9 +405,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.2.tgz", + "integrity": "sha512-M/JYAWickafUijWPai4ehrjzVPKRCyDb1SLuO+ZyPfoXgeCEAlgPkNXewFZx0zcnoIe3ay4UjXIMdXQXOZXWqA==", "cpu": [ "x64" ], @@ -392,9 +418,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.2.tgz", + "integrity": "sha512-2YWwoVg9KRkIKaXSh0mz3NmfurpmYoBBTAXA9qt7VXk0Xy12PoOP40EFuau+ajgALbbhi4uTj3tSG3tVseCjuA==", "cpu": [ "arm64" ], @@ -405,9 +431,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.2.tgz", + "integrity": "sha512-2FSsE9aQ6OWD20E498NYKEQLneShWes0NGMPQwxWOdws35qQXH+FplabOSP5zEe1pVjurSDOGEVCE2agFwSEsw==", "cpu": [ "ia32" ], @@ -418,9 +444,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.2.tgz", + "integrity": "sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ==", "cpu": [ "x64" ], @@ -1765,9 +1791,9 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.2.tgz", + "integrity": "sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -1780,19 +1806,21 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", + "@rollup/rollup-android-arm-eabi": "4.13.2", + "@rollup/rollup-android-arm64": "4.13.2", + "@rollup/rollup-darwin-arm64": "4.13.2", + "@rollup/rollup-darwin-x64": "4.13.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.13.2", + "@rollup/rollup-linux-arm64-gnu": "4.13.2", + "@rollup/rollup-linux-arm64-musl": "4.13.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.13.2", + "@rollup/rollup-linux-riscv64-gnu": "4.13.2", + "@rollup/rollup-linux-s390x-gnu": "4.13.2", + "@rollup/rollup-linux-x64-gnu": "4.13.2", + "@rollup/rollup-linux-x64-musl": "4.13.2", + "@rollup/rollup-win32-arm64-msvc": "4.13.2", + "@rollup/rollup-win32-ia32-msvc": "4.13.2", + "@rollup/rollup-win32-x64-msvc": "4.13.2", "fsevents": "~2.3.2" } }, diff --git a/package.json b/package.json index 3eae161..b4f21a1 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@types/node": "^20.12.2", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.13.0", + "rollup": "^4.13.2", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", "typescript": "^5.4.3" From e7c9995d2da86a6be3e63bb81b9f6efc52679dbc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 13:12:46 +0000 Subject: [PATCH 199/277] Bump @types/node from 20.12.2 to 20.12.7 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.12.2 to 20.12.7. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7298b16..44fb5e0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", - "@types/node": "^20.12.2", + "@types/node": "^20.12.7", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.13.2", @@ -756,9 +756,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.12.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.2.tgz", - "integrity": "sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==", + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" diff --git a/package.json b/package.json index b4f21a1..e0da6f7 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", - "@types/node": "^20.12.2", + "@types/node": "^20.12.7", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.13.2", From 7b043c2aa5131fe7524d09765757c78b07d658c4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 13:12:58 +0000 Subject: [PATCH 200/277] Bump typescript from 5.4.3 to 5.4.5 Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.4.3 to 5.4.5. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/Microsoft/TypeScript/compare/v5.4.3...v5.4.5) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7298b16..e416a14 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "rollup": "^4.13.2", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", - "typescript": "^5.4.3" + "typescript": "^5.4.5" } }, "node_modules/@codemirror/state": { @@ -2003,9 +2003,9 @@ "dev": true }, "node_modules/typescript": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz", - "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true, "bin": { "tsc": "bin/tsc", diff --git a/package.json b/package.json index b4f21a1..0480c8e 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "rollup": "^4.13.2", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", - "typescript": "^5.4.3" + "typescript": "^5.4.5" }, "dependencies": { "d3": "^7.9.0", From 38334d41a1e578035925a570676a67c71cab9b0f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 13:13:09 +0000 Subject: [PATCH 201/277] Bump rollup from 4.13.2 to 4.14.3 Bumps [rollup](https://github.com/rollup/rollup) from 4.13.2 to 4.14.3. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.13.2...v4.14.3) --- updated-dependencies: - dependency-name: rollup dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 144 +++++++++++++++++++++++++--------------------- package.json | 2 +- 2 files changed, 80 insertions(+), 66 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7298b16..728610e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "@types/node": "^20.12.2", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.13.2", + "rollup": "^4.14.3", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", "typescript": "^5.4.3" @@ -262,9 +262,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.2.tgz", - "integrity": "sha512-3XFIDKWMFZrMnao1mJhnOT1h2g0169Os848NhhmGweEcfJ4rCi+3yMCOLG4zA61rbJdkcrM/DjVZm9Hg5p5w7g==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.3.tgz", + "integrity": "sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g==", "cpu": [ "arm" ], @@ -275,9 +275,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.2.tgz", - "integrity": "sha512-GdxxXbAuM7Y/YQM9/TwwP+L0omeE/lJAR1J+olu36c3LqqZEBdsIWeQ91KBe6nxwOnb06Xh7JS2U5ooWU5/LgQ==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.3.tgz", + "integrity": "sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ==", "cpu": [ "arm64" ], @@ -288,9 +288,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.2.tgz", - "integrity": "sha512-mCMlpzlBgOTdaFs83I4XRr8wNPveJiJX1RLfv4hggyIVhfB5mJfN4P8Z6yKh+oE4Luz+qq1P3kVdWrCKcMYrrA==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.3.tgz", + "integrity": "sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA==", "cpu": [ "arm64" ], @@ -301,9 +301,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.2.tgz", - "integrity": "sha512-yUoEvnH0FBef/NbB1u6d3HNGyruAKnN74LrPAfDQL3O32e3k3OSfLrPgSJmgb3PJrBZWfPyt6m4ZhAFa2nZp2A==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.3.tgz", + "integrity": "sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw==", "cpu": [ "x64" ], @@ -314,9 +314,22 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.2.tgz", - "integrity": "sha512-GYbLs5ErswU/Xs7aGXqzc3RrdEjKdmoCrgzhJWyFL0r5fL3qd1NPcDKDowDnmcoSiGJeU68/Vy+OMUluRxPiLQ==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.3.tgz", + "integrity": "sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.14.3.tgz", + "integrity": "sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw==", "cpu": [ "arm" ], @@ -327,9 +340,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.2.tgz", - "integrity": "sha512-L1+D8/wqGnKQIlh4Zre9i4R4b4noxzH5DDciyahX4oOz62CphY7WDWqJoQ66zNR4oScLNOqQJfNSIAe/6TPUmQ==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.3.tgz", + "integrity": "sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA==", "cpu": [ "arm64" ], @@ -340,9 +353,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.2.tgz", - "integrity": "sha512-tK5eoKFkXdz6vjfkSTCupUzCo40xueTOiOO6PeEIadlNBkadH1wNOH8ILCPIl8by/Gmb5AGAeQOFeLev7iZDOA==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.3.tgz", + "integrity": "sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw==", "cpu": [ "arm64" ], @@ -353,11 +366,11 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.13.2.tgz", - "integrity": "sha512-zvXvAUGGEYi6tYhcDmb9wlOckVbuD+7z3mzInCSTACJ4DQrdSLPNUeDIcAQW39M3q6PDquqLWu7pnO39uSMRzQ==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.3.tgz", + "integrity": "sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw==", "cpu": [ - "ppc64le" + "ppc64" ], "dev": true, "optional": true, @@ -366,9 +379,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.2.tgz", - "integrity": "sha512-C3GSKvMtdudHCN5HdmAMSRYR2kkhgdOfye4w0xzyii7lebVr4riCgmM6lRiSCnJn2w1Xz7ZZzHKuLrjx5620kw==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.3.tgz", + "integrity": "sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ==", "cpu": [ "riscv64" ], @@ -379,9 +392,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.13.2.tgz", - "integrity": "sha512-l4U0KDFwzD36j7HdfJ5/TveEQ1fUTjFFQP5qIt9gBqBgu1G8/kCaq5Ok05kd5TG9F8Lltf3MoYsUMw3rNlJ0Yg==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.3.tgz", + "integrity": "sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg==", "cpu": [ "s390x" ], @@ -392,9 +405,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.2.tgz", - "integrity": "sha512-xXMLUAMzrtsvh3cZ448vbXqlUa7ZL8z0MwHp63K2IIID2+DeP5iWIT6g1SN7hg1VxPzqx0xZdiDM9l4n9LRU1A==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.3.tgz", + "integrity": "sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA==", "cpu": [ "x64" ], @@ -405,9 +418,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.2.tgz", - "integrity": "sha512-M/JYAWickafUijWPai4ehrjzVPKRCyDb1SLuO+ZyPfoXgeCEAlgPkNXewFZx0zcnoIe3ay4UjXIMdXQXOZXWqA==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.3.tgz", + "integrity": "sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg==", "cpu": [ "x64" ], @@ -418,9 +431,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.2.tgz", - "integrity": "sha512-2YWwoVg9KRkIKaXSh0mz3NmfurpmYoBBTAXA9qt7VXk0Xy12PoOP40EFuau+ajgALbbhi4uTj3tSG3tVseCjuA==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.3.tgz", + "integrity": "sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg==", "cpu": [ "arm64" ], @@ -431,9 +444,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.2.tgz", - "integrity": "sha512-2FSsE9aQ6OWD20E498NYKEQLneShWes0NGMPQwxWOdws35qQXH+FplabOSP5zEe1pVjurSDOGEVCE2agFwSEsw==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.3.tgz", + "integrity": "sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw==", "cpu": [ "ia32" ], @@ -444,9 +457,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.2.tgz", - "integrity": "sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.3.tgz", + "integrity": "sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA==", "cpu": [ "x64" ], @@ -1791,9 +1804,9 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.2.tgz", - "integrity": "sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.3.tgz", + "integrity": "sha512-ag5tTQKYsj1bhrFC9+OEWqb5O6VYgtQDO9hPDBMmIbePwhfSr+ExlcU741t8Dhw5DkPCQf6noz0jb36D6W9/hw==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -1806,21 +1819,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.13.2", - "@rollup/rollup-android-arm64": "4.13.2", - "@rollup/rollup-darwin-arm64": "4.13.2", - "@rollup/rollup-darwin-x64": "4.13.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.2", - "@rollup/rollup-linux-arm64-gnu": "4.13.2", - "@rollup/rollup-linux-arm64-musl": "4.13.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.13.2", - "@rollup/rollup-linux-riscv64-gnu": "4.13.2", - "@rollup/rollup-linux-s390x-gnu": "4.13.2", - "@rollup/rollup-linux-x64-gnu": "4.13.2", - "@rollup/rollup-linux-x64-musl": "4.13.2", - "@rollup/rollup-win32-arm64-msvc": "4.13.2", - "@rollup/rollup-win32-ia32-msvc": "4.13.2", - "@rollup/rollup-win32-x64-msvc": "4.13.2", + "@rollup/rollup-android-arm-eabi": "4.14.3", + "@rollup/rollup-android-arm64": "4.14.3", + "@rollup/rollup-darwin-arm64": "4.14.3", + "@rollup/rollup-darwin-x64": "4.14.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.14.3", + "@rollup/rollup-linux-arm-musleabihf": "4.14.3", + "@rollup/rollup-linux-arm64-gnu": "4.14.3", + "@rollup/rollup-linux-arm64-musl": "4.14.3", + "@rollup/rollup-linux-powerpc64le-gnu": "4.14.3", + "@rollup/rollup-linux-riscv64-gnu": "4.14.3", + "@rollup/rollup-linux-s390x-gnu": "4.14.3", + "@rollup/rollup-linux-x64-gnu": "4.14.3", + "@rollup/rollup-linux-x64-musl": "4.14.3", + "@rollup/rollup-win32-arm64-msvc": "4.14.3", + "@rollup/rollup-win32-ia32-msvc": "4.14.3", + "@rollup/rollup-win32-x64-msvc": "4.14.3", "fsevents": "~2.3.2" } }, diff --git a/package.json b/package.json index b4f21a1..bd8c922 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@types/node": "^20.12.2", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.13.2", + "rollup": "^4.14.3", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", "typescript": "^5.4.3" From 85b9fcd0307801dc469f0471445308b55d8b3267 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 13:35:41 +0000 Subject: [PATCH 202/277] Bump rollup from 4.14.3 to 4.16.1 Bumps [rollup](https://github.com/rollup/rollup) from 4.14.3 to 4.16.1. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.14.3...v4.16.1) --- updated-dependencies: - dependency-name: rollup dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 136 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 69 insertions(+), 69 deletions(-) diff --git a/package-lock.json b/package-lock.json index 655c39f..fd07481 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "@types/node": "^20.12.7", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.14.3", + "rollup": "^4.16.1", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", "typescript": "^5.4.5" @@ -262,9 +262,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.3.tgz", - "integrity": "sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.16.1.tgz", + "integrity": "sha512-92/y0TqNLRYOTXpm6Z7mnpvKAG9P7qmK7yJeRJSdzElNCUnsgbpAsGqerUboYRIQKzgfq4pWu9xVkgpWLfmNsw==", "cpu": [ "arm" ], @@ -275,9 +275,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.3.tgz", - "integrity": "sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.16.1.tgz", + "integrity": "sha512-ttWB6ZCfRLuDIUiE0yiu5gcqOsYjA5F7kEV1ggHMj20FwLZ8A1FMeahZJFl/pnOmcnD2QL0z4AcDuo27utGU8A==", "cpu": [ "arm64" ], @@ -288,9 +288,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.3.tgz", - "integrity": "sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.16.1.tgz", + "integrity": "sha512-QLDvPLetbqjHojTGFw9+nuSP3YY/iz2k1cep6crYlr97sS+ZJ0W43b8Z0zC00+lnFZj6JSNxiA4DjboNQMuh1A==", "cpu": [ "arm64" ], @@ -301,9 +301,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.3.tgz", - "integrity": "sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.16.1.tgz", + "integrity": "sha512-TAUK/D8khRrRIa1KwRzo8JNKk3tcqaeXWdtsiLgA8zmACWwlWLjPCJ4DULGHQrMkeBjp1Cd3Yuwx04lZgFx5Vg==", "cpu": [ "x64" ], @@ -314,9 +314,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.3.tgz", - "integrity": "sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.16.1.tgz", + "integrity": "sha512-KO+WGZjrh6zyFTD1alIFkfdtxf8B4BC+hqd3kBZHscPLvE5FR/6QKsyuCT0JlERxxYBSUKNUQ/UHyX5uwO1x2A==", "cpu": [ "arm" ], @@ -327,9 +327,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.14.3.tgz", - "integrity": "sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.16.1.tgz", + "integrity": "sha512-NqxbllzIB1WoAo4ThUXVtd21iiM5IHMTTXmXySKBLVcZvkU0HIZmatlP7hLzb5yQubcmdIeWmncd2NdsjocEiw==", "cpu": [ "arm" ], @@ -340,9 +340,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.3.tgz", - "integrity": "sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.16.1.tgz", + "integrity": "sha512-snma5NvV8y7IECQ5rq0sr0f3UUu+92NVmG/913JXJMcXo84h9ak9TA5UI9Cl2XRM9j3m37QwDBtEYnJzRkSmxA==", "cpu": [ "arm64" ], @@ -353,9 +353,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.3.tgz", - "integrity": "sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.16.1.tgz", + "integrity": "sha512-KOvqGprlD84ueivhCi2flvcUwDRD20mAsE3vxQNVEI2Di9tnPGAfEu6UcrSPZbM+jG2w1oSr43hrPo0RNg6GGg==", "cpu": [ "arm64" ], @@ -366,9 +366,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.3.tgz", - "integrity": "sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.16.1.tgz", + "integrity": "sha512-/gsNwtiGLqYwN4vP+EIdUC6Q6LTlpupWqokqIndvZcjn9ig/5P01WyaYCU2wvfL/2Z82jp5kX8c1mDBOvCP3zg==", "cpu": [ "ppc64" ], @@ -379,9 +379,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.3.tgz", - "integrity": "sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.16.1.tgz", + "integrity": "sha512-uU8zuGkQfGqfD9w6VRJZI4IuG4JIfNxxJgEmLMAmPVHREKGsxFVfgHy5c6CexQF2vOfgjB33OsET3Vdn2lln9A==", "cpu": [ "riscv64" ], @@ -392,9 +392,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.3.tgz", - "integrity": "sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.16.1.tgz", + "integrity": "sha512-lsjLtDgtcGFEuBP6yrXwkRN5/wKlvUZtfbKZZu0yaoNpiBL4epgnO21osAALIspVRnl4qZgyLFd8xjCYYWgwfw==", "cpu": [ "s390x" ], @@ -405,9 +405,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.3.tgz", - "integrity": "sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.16.1.tgz", + "integrity": "sha512-N2ZizKhUryqqrMfdCnjhJhZRgv61C6gK+hwVtCIKC8ts8J+go+vqENnGexwg21nHIOvLN5mBM8a7DI2vlyIOPg==", "cpu": [ "x64" ], @@ -418,9 +418,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.3.tgz", - "integrity": "sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.16.1.tgz", + "integrity": "sha512-5ICeMxqg66FrOA2AbnBQ2TJVxfvZsKLxmof0ibvPLaYtbsJqnTUtJOofgWb46Gjd4uZcA4rdsp4JCxegzQPqCg==", "cpu": [ "x64" ], @@ -431,9 +431,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.3.tgz", - "integrity": "sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.16.1.tgz", + "integrity": "sha512-1vIP6Ce02L+qWD7uZYRiFiuAJo3m9kARatWmFSnss0gZnVj2Id7OPUU9gm49JPGasgcR3xMqiH3fqBJ8t00yVg==", "cpu": [ "arm64" ], @@ -444,9 +444,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.3.tgz", - "integrity": "sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.16.1.tgz", + "integrity": "sha512-Y3M92DcVsT6LoP+wrKpoUWPaazaP1fzbNkp0a0ZSj5Y//+pQVfVe/tQdsYQQy7dwXR30ZfALUIc9PCh9Izir6w==", "cpu": [ "ia32" ], @@ -457,9 +457,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.3.tgz", - "integrity": "sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.16.1.tgz", + "integrity": "sha512-x0fvpHMuF7fK5r8oZxSi8VYXkrVmRgubXpO/wcf15Lk3xZ4Jvvh5oG+u7Su1776A7XzVKZhD2eRc4t7H50gL3w==", "cpu": [ "x64" ], @@ -1804,9 +1804,9 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.3.tgz", - "integrity": "sha512-ag5tTQKYsj1bhrFC9+OEWqb5O6VYgtQDO9hPDBMmIbePwhfSr+ExlcU741t8Dhw5DkPCQf6noz0jb36D6W9/hw==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.16.1.tgz", + "integrity": "sha512-5CaD3MPDlPKfhqzRvWXK96G6ELJfPZNb3LHiZxTHgDdC6jvwfGz2E8nY+9g1ONk4ttHsK1WaFP19Js4PSr1E3g==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -1819,22 +1819,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.14.3", - "@rollup/rollup-android-arm64": "4.14.3", - "@rollup/rollup-darwin-arm64": "4.14.3", - "@rollup/rollup-darwin-x64": "4.14.3", - "@rollup/rollup-linux-arm-gnueabihf": "4.14.3", - "@rollup/rollup-linux-arm-musleabihf": "4.14.3", - "@rollup/rollup-linux-arm64-gnu": "4.14.3", - "@rollup/rollup-linux-arm64-musl": "4.14.3", - "@rollup/rollup-linux-powerpc64le-gnu": "4.14.3", - "@rollup/rollup-linux-riscv64-gnu": "4.14.3", - "@rollup/rollup-linux-s390x-gnu": "4.14.3", - "@rollup/rollup-linux-x64-gnu": "4.14.3", - "@rollup/rollup-linux-x64-musl": "4.14.3", - "@rollup/rollup-win32-arm64-msvc": "4.14.3", - "@rollup/rollup-win32-ia32-msvc": "4.14.3", - "@rollup/rollup-win32-x64-msvc": "4.14.3", + "@rollup/rollup-android-arm-eabi": "4.16.1", + "@rollup/rollup-android-arm64": "4.16.1", + "@rollup/rollup-darwin-arm64": "4.16.1", + "@rollup/rollup-darwin-x64": "4.16.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.16.1", + "@rollup/rollup-linux-arm-musleabihf": "4.16.1", + "@rollup/rollup-linux-arm64-gnu": "4.16.1", + "@rollup/rollup-linux-arm64-musl": "4.16.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.16.1", + "@rollup/rollup-linux-riscv64-gnu": "4.16.1", + "@rollup/rollup-linux-s390x-gnu": "4.16.1", + "@rollup/rollup-linux-x64-gnu": "4.16.1", + "@rollup/rollup-linux-x64-musl": "4.16.1", + "@rollup/rollup-win32-arm64-msvc": "4.16.1", + "@rollup/rollup-win32-ia32-msvc": "4.16.1", + "@rollup/rollup-win32-x64-msvc": "4.16.1", "fsevents": "~2.3.2" } }, diff --git a/package.json b/package.json index b433c0e..dc0647a 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@types/node": "^20.12.7", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.14.3", + "rollup": "^4.16.1", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", "typescript": "^5.4.5" From 2bfa60fdc86a7f5d7984a2144d1e648a2842349b Mon Sep 17 00:00:00 2001 From: Xinyi Zhang Date: Sat, 27 Apr 2024 21:39:39 -0700 Subject: [PATCH 203/277] Add stacked bar charts (probablly also works with lineCharts). --- examples/TestBarChart.md | 14 +++++++++ src/data.ts | 21 +++++++++++++ src/parsing.ts | 6 ++++ src/rendering.ts | 64 ++++++++++++++++++++++++++++++---------- 4 files changed, 90 insertions(+), 15 deletions(-) diff --git a/examples/TestBarChart.md b/examples/TestBarChart.md index 3fb2478..73c28db 100644 --- a/examples/TestBarChart.md +++ b/examples/TestBarChart.md @@ -53,4 +53,18 @@ bar: barColor: yellow, red, green, blue, orange, white ``` + +``` tracker +searchType: tag +searchTarget: sinsquare[0], sinsquare[1], sinsquare[2], sinsquare[3], sinsquare[4], sinsquare[5] +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-05 +stack: true +bar: + title: Sin Square Wave (Stacked) + yAxisLabel: Value + yMin: 0 + barColor: yellow, red, green, blue, orange, black +``` Please also check those search targets in markdown files under folder 'diary'. \ No newline at end of file diff --git a/src/data.ts b/src/data.ts index 695c797..3160027 100644 --- a/src/data.ts +++ b/src/data.ts @@ -391,6 +391,25 @@ export class Dataset implements IterableIterator { } } + public shiftByDataset(shiftDataset: Dataset) { + // Assume all datasets are of the same length + for (let ind = 0; ind < this.values.length; ind++) { + let currentValue = this.values[ind]; + if (shiftDataset.values[ind] !== null && currentValue !== null) { + currentValue += shiftDataset.values[ind]; + } else if (shiftDataset.values[ind] !== null) { + currentValue = shiftDataset.values[ind]; + } + this.values[ind] = currentValue; + if (currentValue < this.yMin) { + this.yMin = currentValue; + } + if (currentValue > this.yMax) { + this.yMax = currentValue; + } + } + } + public getValues() { return this.values; } @@ -571,6 +590,7 @@ export class RenderInfo { ignoreAttachedValue: boolean[]; ignoreZeroValue: boolean[]; accum: boolean[]; + stack: boolean; penalty: number[]; valueShift: number[]; shiftOnlyValueLargerThan: number[]; @@ -614,6 +634,7 @@ export class RenderInfo { this.ignoreAttachedValue = []; // false this.ignoreZeroValue = []; // false this.accum = []; // false, accum values start from zero over days + this.stack = false; this.penalty = []; // null, use this value instead of null value this.valueShift = []; this.shiftOnlyValueLargerThan = []; diff --git a/src/parsing.ts b/src/parsing.ts index 5478811..9d47feb 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -1459,6 +1459,12 @@ export function getRenderInfoFromYaml( renderInfo.accum = retAccum; // console.log(renderInfo.accum); + // stack + if (typeof yaml.stack === "boolean") { + renderInfo.stack = yaml.stack; + } + // console.log(renderInfo.stack); + // penalty let retPenalty = getNumberArrayFromInput( "penalty", diff --git a/src/rendering.ts b/src/rendering.ts index 2d62188..650ecde 100644 --- a/src/rendering.ts +++ b/src/rendering.ts @@ -239,6 +239,18 @@ export function render(canvas: HTMLElement, renderInfo: RenderInfo) { dataset.accumulateValues(); } } + // stack + if (renderInfo.stack) { + // Traverse the datasets, and add up the values from each dataset. + let lastDataset = null; + for (let dataset of renderInfo.datasets) { + if (dataset.getQuery().usedAsXDataset) continue; + if (lastDataset) { + dataset.shiftByDataset(lastDataset); + } + lastDataset = dataset; + } + } for (let lineInfo of renderInfo.line) { let ret = renderLineChart(canvas, renderInfo, lineInfo); @@ -905,16 +917,23 @@ function renderBar( // console.log(dataset); // console.log(barInfo); // console.log("%d/%d", currBarSet, totalNumOfBarSets); - + if (!renderInfo || !barInfo) return; let barGap = 1; let barSetWidth = renderInfo.dataAreaSize.width / dataset.getLength(); let barWidth = barSetWidth; + let currentDiaplayInd = currBarSet; + let totalDiaplaySet = totalNumOfBarSets; if (barSetWidth - barGap > 0) { barWidth = barSetWidth - barGap; } - barWidth = barWidth / totalNumOfBarSets; + if (!renderInfo.stack) { + barWidth = barWidth / totalNumOfBarSets; + } else { + currentDiaplayInd = 0; + totalDiaplaySet = 1; + } let portionLeft = (currBarSet + 1) / totalNumOfBarSets; @@ -936,12 +955,12 @@ function renderBar( .append("rect") .attr("x", function (p: DataPoint, i: number) { if (i === 0) { - let portionVisible = currBarSet + 1 - totalNumOfBarSets / 2.0; + let portionVisible = currentDiaplayInd + 1 - totalDiaplaySet / 2.0; if (portionVisible < 1.0) { return ( chartElements.xScale(p.date) - barSetWidth / 2.0 + - currBarSet * barWidth + + currentDiaplayInd * barWidth + portionVisible * barWidth ); } @@ -949,7 +968,7 @@ function renderBar( return ( chartElements.xScale(p.date) - barSetWidth / 2.0 + - currBarSet * barWidth + currentDiaplayInd * barWidth ); }) .attr("y", function (p: DataPoint) { @@ -957,7 +976,7 @@ function renderBar( }) .attr("width", function (p: DataPoint, i: number) { if (i === 0) { - let portionVisible = currBarSet + 1 - totalNumOfBarSets / 2.0; + let portionVisible = currentDiaplayInd + 1 - totalDiaplaySet / 2.0; if (portionVisible < 0.0) { return 0.0; } else if (portionVisible < 1.0) { @@ -966,7 +985,7 @@ function renderBar( return barWidth; } else if (i === dataset.getLength() - 1) { let portionVisible = - 1.0 - (currBarSet + 1 - totalNumOfBarSets / 2.0); + 1.0 - (currentDiaplayInd + 1 - totalDiaplaySet / 2.0); if (portionVisible < 0.0) { return 0.0; } else if (portionVisible < 1.0) { @@ -1626,15 +1645,30 @@ function renderBarChart( let datasetOnLeftYAxis = []; let datasetOnRightYAxis = []; let xDatasetIds = renderInfo.datasets.getXDatasetIds(); - for (let ind = 0; ind < barInfo.yAxisLocation.length; ind++) { - if (xDatasetIds.includes(ind)) continue; - let yAxisLocation = barInfo.yAxisLocation[ind]; - if (yAxisLocation.toLowerCase() === "left") { - datasetOnLeftYAxis.push(ind); - } else if (yAxisLocation.toLocaleLowerCase() === "right") { - // right - datasetOnRightYAxis.push(ind); + if (renderInfo.stack) { + for (let ind = barInfo.yAxisLocation.length - 1; ind >= 0; ind--) { + if (xDatasetIds.includes(ind)) continue; + let yAxisLocation = barInfo.yAxisLocation[ind]; + if (yAxisLocation.toLowerCase() === "left") { + datasetOnLeftYAxis.push(ind); + } else if (yAxisLocation.toLocaleLowerCase() === "right") { + // right + datasetOnRightYAxis.push(ind); + } } + + } else { + for (let ind = 0; ind < barInfo.yAxisLocation.length; ind++) { + if (xDatasetIds.includes(ind)) continue; + let yAxisLocation = barInfo.yAxisLocation[ind]; + if (yAxisLocation.toLowerCase() === "left") { + datasetOnLeftYAxis.push(ind); + } else if (yAxisLocation.toLocaleLowerCase() === "right") { + // right + datasetOnRightYAxis.push(ind); + } + } + } let retRenderLeftYAxis = renderYAxis( From fdea6262e08270038909677542c7be33533a674b Mon Sep 17 00:00:00 2001 From: xy Date: Sat, 27 Apr 2024 21:56:35 -0700 Subject: [PATCH 204/277] Update doc string for stacked bar chart --- docs/InputParameters.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/InputParameters.md b/docs/InputParameters.md index ecf7982..1683310 100644 --- a/docs/InputParameters.md +++ b/docs/InputParameters.md @@ -37,6 +37,7 @@ These key-value pairs are placed under the root of the code block. | `ignoreAttachedValue` | Use `constValue` even if the target has a value attached on (true\|false) | 1~NT | false | | `ignoreZeroValue` | Treat zero value as missing (true\|false) | 1~NT | false | | `accum` | Accumulatively sum the values over time (true\|false) | 1~NT | false | +| `stack` | Support stacked charts (true\|false) | 1 | false | | `penalty` | Value to use if the search target is missing on the day | 1~NT | | | `valueShift` | Amount to shift for each collected value | 1~NT | 0 | | `shiftOnlyValueLargerThan` | Do `valueShift` only if the value is larger then the specifed one | 1~NT | null | From c8471b19fd165faa38a28032cc2a6bb9272ebe39 Mon Sep 17 00:00:00 2001 From: xy Date: Sun, 28 Apr 2024 16:58:18 -0700 Subject: [PATCH 205/277] Pervent overlapping external labels in pie chart --- examples/TestPieChart.md | 15 ++++++++++ src/pie.ts | 63 +++++++++++++++++++++++++++++++--------- 2 files changed, 65 insertions(+), 13 deletions(-) diff --git a/examples/TestPieChart.md b/examples/TestPieChart.md index 999f677..a10aef9 100644 --- a/examples/TestPieChart.md +++ b/examples/TestPieChart.md @@ -115,3 +115,18 @@ pie: hideLabelLessThan: 0.03 showExtLabelOnlyIfNoLabel: true ``` + +When there are multiple external labels, make sure they won't overlap with each other +``` tracker +searchType: task.done, task.notdone +searchTarget: Say I love you, Say I love you +datasetName: Done, NotDone +pie: + label: '{{0.5/11*100}}%, B {{0.4/11*100}}%, C {{0.1/11*100}}%, D {{8/11*100}}%, E {{9.7/11*100}}%, F {{0.3/28.5*100}}' + extLabel: 'A {{0.5/11*100}}%, B {{0.4/11*100}}%, C {{0.1/11*100}}%, D {{8/11*100}}%, E {{9.7/11*100}}, F {{0.3/11*100}}%' + data: '0.5, 0.4, 0.1, 8, 9.7, 0.3' + dataColor: '#4daf4a,#377eb8,#ff7f00,#984ea3,#e41a1c,#aaaaaa' + ratioInnerRadius: 0.4 + hideLabelLessThan: 0.03 + showExtLabelOnlyIfNoLabel: true +``` diff --git a/src/pie.ts b/src/pie.ts index 992cef6..c1ddf95 100644 --- a/src/pie.ts +++ b/src/pie.ts @@ -467,6 +467,7 @@ function renderPie( let pie = d3.pie(); let pieValues = pie(values); + pieValues.forEach(function (value: any, i: number) {value.input_index = i}) let sectors = sectorsGroup .selectAll("sector") @@ -526,36 +527,72 @@ function renderPie( return arcObj.startAngle + (arcObj.endAngle - arcObj.startAngle) / 2; } + function externalLabelText(arcObj: any, i: number) { + if (showExtLabelOnlyIfNoLabel) { + if (labels[i] === "" || isLabelHidden(arcObj)) { + return extLabels[i]; + } + return ""; + } else { + return extLabels[i]; + } + } + // external label elements + let prevBB : DOMRect = null; + let extlabelPos : any = {}; let extLabelElements = sectorsGroup .selectAll("extLabel") .data(pieValues) .enter() .append("text") + // Sort external labels based on y value such that we can move down overlapping labels + .sort(function (arcObj1: any, arcObj2: any) { + return Math.cos(getMidAngle(arcObj2)) - Math.cos(getMidAngle(arcObj1)); + }) .text(function (arcObj: any, i: number) { - if (showExtLabelOnlyIfNoLabel) { - if (labels[i] === "" || isLabelHidden(arcObj)) { - return extLabels[i]; - } - return ""; - } else { - return extLabels[i]; - } + i = arcObj.input_index; + return externalLabelText(arcObj, i) }) .attr("transform", function (arcObj: any, i: number) { + i = arcObj.input_index; + // If external label is empty, directly return. + if (externalLabelText(arcObj, i).length == 0) { + return; + } let posLabel = hiddenArc.centroid(arcObj); let midAngle = getMidAngle(arcObj); posLabel[0] = (radius * 0.99 - extLabelSizes[i].width) * (midAngle < Math.PI ? 1 : -1); - return "translate(" + posLabel[0] + "," + posLabel[1] + ")"; + + var yshift = 0; + let thisBB = new DOMRect(posLabel[0], posLabel[1], extLabelSizes[i].width, extLabelSizes[i].height); + + if (prevBB !== null) { + // Check whether there are overlaps + if (!(thisBB.right < prevBB.left || prevBB.right < thisBB.left + || prevBB.bottom < thisBB.top)) { + // Since y is sorted from low to high, we expect to shift this item further down + yshift = prevBB.bottom - thisBB.top; + // console.log("has overlap", yshift); + } + } + if (yshift != 0) { + thisBB = new DOMRect(posLabel[0], posLabel[1] + yshift, extLabelSizes[i].width, extLabelSizes[i].height); + } + prevBB = thisBB; + // Save external label position for connection line plotting + extlabelPos[i] = [posLabel[0], posLabel[1] + yshift] + return "translate(" + posLabel[0] + "," + (posLabel[1] + yshift) + ")"; }) .style("text-anchor", function (arcObj: any) { let midAngle = getMidAngle(arcObj); return midAngle < Math.PI ? "start" : "end"; }) .attr("class", "tracker-pie-label"); + function getPointsForConnectionLines(arcObj: any, i: number) { let labelWidth = labelSizes[i].width; @@ -565,7 +602,8 @@ function renderPie( let posLabel = arc.centroid(arcObj); // line insertion in the slice let posMiddle = hiddenArc.centroid(arcObj); // line break: we use the other arc generator that has been built only for that - let posExtLabel = hiddenArc.centroid(arcObj); // Label position = almost the same as posB + let posExtLabel = extlabelPos[i] || hiddenArc.centroid(arcObj); // Label position = almost the same as posB + posMiddle[1] = posExtLabel[1]; // console.log(labels[i]); // console.log(`label/middle/extLabel: ${posLabel}/${posMiddle}/${posExtLabel}`); @@ -574,7 +612,7 @@ function renderPie( (posMiddle[1] - posLabel[1]) ** 2 ); - if (labels[i] !== "") { + if (labels[i] !== "" && !labelHidden) { // shift posLabel, toward the middle point posLabel[0] = posLabel[0] + @@ -584,8 +622,7 @@ function renderPie( ((posMiddle[1] - posLabel[1]) * labelWidth) / distMiddleToLabel; // shift posExtLabel - posExtLabel[0] = - (radius * 0.99 - extLabelWidth - 3) * + posExtLabel[0] =posExtLabel[0] + (- 3) * (midAngle < Math.PI ? 1 : -1); // multiply by 1 or -1 to put it on the right or on the left } From ed7ac24ab568506404a490184b1401f6a38bb2c5 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Sun, 28 Apr 2024 22:32:03 -0600 Subject: [PATCH 206/277] (nitpick) Remove blank spacing --- src/rendering.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rendering.ts b/src/rendering.ts index 650ecde..a530e19 100644 --- a/src/rendering.ts +++ b/src/rendering.ts @@ -917,7 +917,7 @@ function renderBar( // console.log(dataset); // console.log(barInfo); // console.log("%d/%d", currBarSet, totalNumOfBarSets); - + if (!renderInfo || !barInfo) return; let barGap = 1; From 3550d12f79253ec1d06a94fb70ce469c2f0eccb5 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Sun, 28 Apr 2024 22:45:24 -0600 Subject: [PATCH 207/277] Release 1.14.0 --- README.md | 5 +++++ docs/ReleaseNotes.md | 6 ++++++ manifest.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- versions.json | 3 ++- 6 files changed, 17 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f8be9ac..9f1267a 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,11 @@ This is an [Obsidian](https://obsidian.md/) plugin that helps you collect data f ## What's New +Version 1.14.0 +- Update dependencies +- Prevent overlapping external labels in pie chart +- Enable Stacked Bar Chart + Version 1.13.3 - Update dependencies diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index a9bc27e..85f9f9a 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,11 @@ # Release Notes +## 1.14.0 + +- Update dependencies +- Prevent overlapping external labels in pie chart +- Enable Stacked Bar Chart + ## 1.13.3 - Update dependencies diff --git a/manifest.json b/manifest.json index 5ca257f..9b4559e 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.13.3", + "version": "1.14.0", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package-lock.json b/package-lock.json index fd07481..994be6d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "obsidian-tracker", - "version": "1.13.3", + "version": "1.14.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "obsidian-tracker", - "version": "1.13.3", + "version": "1.14.0", "license": "MIT", "dependencies": { "d3": "^7.9.0", diff --git a/package.json b/package.json index dc0647a..f5eb2ca 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.13.3", + "version": "1.14.0", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index 8f2fcaf..f665075 100644 --- a/versions.json +++ b/versions.json @@ -34,5 +34,6 @@ "1.13.0": "0.9.12", "1.13.1": "0.9.12", "1.13.2": "0.9.12", - "1.13.3": "0.9.12" + "1.13.3": "0.9.12", + "1.14.0": "0.9.12" } From 7b4fb21f31aa9b4f3730a00dea53190daae04f3e Mon Sep 17 00:00:00 2001 From: Matt Karrmann Date: Sun, 2 Jun 2024 22:29:28 -0500 Subject: [PATCH 208/277] Respect thresholds in scaled months --- src/month.ts | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/src/month.ts b/src/month.ts index d4eba3f..a1fa232 100644 --- a/src/month.ts +++ b/src/month.ts @@ -643,26 +643,7 @@ function renderMonthDays( console.log(curValue); } - // showCircle - let showCircle = false; - if (!monthInfo.circleColorByValue) { - // shown or not shown - if (curValue !== null) { - if (curValue > threshold) { - showCircle = true; - } - } - } else { - if (!allowScaledValue) { - if (curValue !== null) { - if (curValue > threshold) { - showCircle = true; - } - } - } else { - showCircle = true; - } - } + const showCircle = curValue != null && curValue > threshold; // scaledValue let scaledValue = null; From 265853d9a2e178e18f2a81f8090936a95dff34f6 Mon Sep 17 00:00:00 2001 From: Matt Karrmann Date: Sun, 2 Jun 2024 22:58:13 -0500 Subject: [PATCH 209/277] Update example --- examples/TestCalendar.md | 6 ++++-- examples/diary/Lucas-20210105-Journal.md | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/examples/TestCalendar.md b/examples/TestCalendar.md index 84902b0..99467fd 100644 --- a/examples/TestCalendar.md +++ b/examples/TestCalendar.md @@ -46,7 +46,7 @@ month: ``` ### Colored by Values -Use parameter `circleColorByValue`, color the circles based on the values +Use parameters `circleColorByValue`, `yMin`, and `yMax`, to color the circles based on the values ``` tracker searchType: tag searchTarget: exercise-pushup @@ -54,13 +54,15 @@ datasetName: PushUp folder: diary month: startWeekOn: - threshold: 40 + threshold: 10 color: green headerMonthColor: orange dimNotInMonth: false todayRingColor: orange selectedRingColor: steelblue circleColorByValue: true + yMin: 0 + yMax: 50 showSelectedValue: true ``` diff --git a/examples/diary/Lucas-20210105-Journal.md b/examples/diary/Lucas-20210105-Journal.md index c836d81..1f8cccf 100644 --- a/examples/diary/Lucas-20210105-Journal.md +++ b/examples/diary/Lucas-20210105-Journal.md @@ -6,7 +6,7 @@ bloodpressure: 177/119 #weight:70.0kg -#exercise-pushup:35 +#exercise-pushup:5 #exercise-plank:34sec #meditation From ea0add16b14a1dd74b53f4f71ef4d1fc94a3d151 Mon Sep 17 00:00:00 2001 From: Matt Karrmann Date: Sun, 2 Jun 2024 23:01:00 -0500 Subject: [PATCH 210/277] Fix spacing --- examples/TestCalendar.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/TestCalendar.md b/examples/TestCalendar.md index 99467fd..d01fef2 100644 --- a/examples/TestCalendar.md +++ b/examples/TestCalendar.md @@ -61,8 +61,8 @@ month: todayRingColor: orange selectedRingColor: steelblue circleColorByValue: true - yMin: 0 - yMax: 50 + yMin: 0 + yMax: 50 showSelectedValue: true ``` From e539b574f830c53e301d44ef9f3fedf1514c9329 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 13:45:03 +0000 Subject: [PATCH 211/277] Bump @rollup/plugin-commonjs from 25.0.7 to 26.0.1 Bumps [@rollup/plugin-commonjs](https://github.com/rollup/plugins/tree/HEAD/packages/commonjs) from 25.0.7 to 26.0.1. - [Changelog](https://github.com/rollup/plugins/blob/master/packages/commonjs/CHANGELOG.md) - [Commits](https://github.com/rollup/plugins/commits/commonjs-v26.0.1/packages/commonjs) --- updated-dependencies: - dependency-name: "@rollup/plugin-commonjs" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 466 ++++++++++++++++++++++++++++++++++++++++++++-- package.json | 2 +- 2 files changed, 448 insertions(+), 20 deletions(-) diff --git a/package-lock.json b/package-lock.json index 994be6d..eacd440 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "sprintf-js": "^1.1.3" }, "devDependencies": { - "@rollup/plugin-commonjs": "^25.0.7", + "@rollup/plugin-commonjs": "^26.0.1", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", @@ -48,6 +48,23 @@ "w3c-keyname": "^2.2.4" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", @@ -141,21 +158,31 @@ "node": ">= 8" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@rollup/plugin-commonjs": { - "version": "25.0.7", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.7.tgz", - "integrity": "sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==", + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-26.0.1.tgz", + "integrity": "sha512-UnsKoZK6/aGIH6AdkptXhNvhaqftcjq3zZdT+LY5Ftms6JR06nADcDsYp5hTU9E2lbJUEOhdlY5J4DNTneM+jQ==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", "commondir": "^1.0.1", "estree-walker": "^2.0.2", - "glob": "^8.0.3", + "glob": "^10.4.1", "is-reference": "1.2.1", "magic-string": "^0.30.3" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0 || 14 >= 14.17" }, "peerDependencies": { "rollup": "^2.68.0||^3.0.0||^4.0.0" @@ -810,6 +837,30 @@ "node": ">=0.4.0" } }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -864,6 +915,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/colorette": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", @@ -890,6 +959,20 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/d3": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", @@ -1289,6 +1372,18 @@ "node": ">=8" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", @@ -1332,6 +1427,22 @@ "node": ">=8" } }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -1376,19 +1487,22 @@ } }, "node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1565,6 +1679,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -1610,6 +1733,30 @@ "@types/estree": "*" } }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", + "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jsep": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.3.8.tgz", @@ -1627,6 +1774,15 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, "node_modules/magic-string": { "version": "0.30.5", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", @@ -1662,15 +1818,27 @@ } }, "node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" } }, "node_modules/moment": { @@ -1715,12 +1883,37 @@ "node": ">=0.10.0" } }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -1916,6 +2109,39 @@ "randombytes": "^2.1.0" } }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -1955,6 +2181,102 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/style-mod": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.0.tgz", @@ -2051,6 +2373,112 @@ "dev": true, "peer": true }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index f5eb2ca..33a1522 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "author": "pyrochlore", "license": "MIT", "devDependencies": { - "@rollup/plugin-commonjs": "^25.0.7", + "@rollup/plugin-commonjs": "^26.0.1", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", From 8fd36ea66427faabfa61078c85f5a128105ad25a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 13:45:21 +0000 Subject: [PATCH 212/277] Bump tslib from 2.6.2 to 2.6.3 Bumps [tslib](https://github.com/Microsoft/tslib) from 2.6.2 to 2.6.3. - [Release notes](https://github.com/Microsoft/tslib/releases) - [Commits](https://github.com/Microsoft/tslib/compare/v2.6.2...v2.6.3) --- updated-dependencies: - dependency-name: tslib dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 994be6d..40975e0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.16.1", "rollup-plugin-copy": "^3.5.0", - "tslib": "^2.6.2", + "tslib": "^2.6.3", "typescript": "^5.4.5" } }, @@ -2011,9 +2011,9 @@ } }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", "dev": true }, "node_modules/typescript": { diff --git a/package.json b/package.json index f5eb2ca..917fcc6 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.16.1", "rollup-plugin-copy": "^3.5.0", - "tslib": "^2.6.2", + "tslib": "^2.6.3", "typescript": "^5.4.5" }, "dependencies": { From d12935b01173770a80109355c06c9a80ebb2d463 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 13:54:49 +0000 Subject: [PATCH 213/277] Bump @types/node from 20.12.7 to 20.14.11 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.12.7 to 20.14.11. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 994be6d..b66baa2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", - "@types/node": "^20.12.7", + "@types/node": "^20.14.11", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.16.1", @@ -769,9 +769,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.12.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", - "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", + "version": "20.14.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.11.tgz", + "integrity": "sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==", "dev": true, "dependencies": { "undici-types": "~5.26.4" diff --git a/package.json b/package.json index f5eb2ca..b2467d1 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", - "@types/node": "^20.12.7", + "@types/node": "^20.14.11", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.16.1", From 37c2b60c8dcaab5418631e02a5d9f4c059e6243f Mon Sep 17 00:00:00 2001 From: Denis Sokolov Date: Thu, 19 Dec 2024 18:12:46 +0300 Subject: [PATCH 214/277] Updated examples with start and end dates so that plots render correctly. --- examples/FinanceTracker.md | 3 +++ examples/HabitTracker.md | 3 +++ examples/StarTracker.md | 2 ++ examples/TestCalendar.md | 11 +++++++++-- examples/TestRelativeStartEndDate.md | 4 ++-- examples/TestTask.md | 2 ++ examples/WeightTracker.md | 1 + 7 files changed, 22 insertions(+), 4 deletions(-) diff --git a/examples/FinanceTracker.md b/examples/FinanceTracker.md index 64d3d66..f63a19f 100644 --- a/examples/FinanceTracker.md +++ b/examples/FinanceTracker.md @@ -5,6 +5,7 @@ searchType: tag searchTarget: finance folder: diary accum: true +endDate: 2021-01-31 line: title: Finance yAxisLabel: USD @@ -17,6 +18,7 @@ searchType: tag searchTarget: finance/bank1 folder: diary accum: true +endDate: 2021-01-31 line: title: Bank1 yAxisLabel: USD @@ -28,6 +30,7 @@ searchType: tag searchTarget: finance/bank2 folder: diary accum: true +endDate: 2021-03-15 line: title: Bank2 yAxisLabel: USD diff --git a/examples/HabitTracker.md b/examples/HabitTracker.md index 568d2c2..71b0f30 100644 --- a/examples/HabitTracker.md +++ b/examples/HabitTracker.md @@ -15,6 +15,7 @@ line: searchType: tag searchTarget: exercise-plank folder: diary +endDate: 2021-01-31 line: title: Plank yAxisLabel: Hold @@ -29,6 +30,7 @@ searchTarget: meditation folder: diary accum: true penalty: -1 +endDate: 2021-01-31 line: title: Meditation yAxisLabel: Count @@ -61,6 +63,7 @@ searchTarget: work_log folder: diary accum: true startDate: 2021-01-01 +endDate: 2021-01-31 line: title: Work Log yAxisLabel: Count diff --git a/examples/StarTracker.md b/examples/StarTracker.md index 41bdb34..9bdd37a 100644 --- a/examples/StarTracker.md +++ b/examples/StarTracker.md @@ -5,6 +5,7 @@ searchType: text searchTarget: ⭐ folder: diary +endDate: 2021-01-31 summary: template: "I have {{sum()}} stars in total." style: "font-size:20px;color:yellow;margin-left: 50px;margin-top:00px;" @@ -14,6 +15,7 @@ summary: searchType: text searchTarget: ⭐ folder: diary +endDate: 2021-01-31 accum: true line: title: Count the Given Stars diff --git a/examples/TestCalendar.md b/examples/TestCalendar.md index 84902b0..489c384 100644 --- a/examples/TestCalendar.md +++ b/examples/TestCalendar.md @@ -9,6 +9,7 @@ searchType: tag searchTarget: meditation datasetName: Meditation folder: diary +endDate: 2021-01-31 month: ``` @@ -21,6 +22,7 @@ searchType: tag searchTarget: exercise-pushup datasetName: PushUp folder: diary +endDate: 2021-01-31 month: startWeekOn: 'Sun' threshold: 40 @@ -38,6 +40,7 @@ searchType: tag searchTarget: meditation datasetName: Meditation folder: diary +endDate: 2021-01-31 month: startWeekOn: 'Sun' color: steelblue @@ -52,6 +55,7 @@ searchType: tag searchTarget: exercise-pushup datasetName: PushUp folder: diary +endDate: 2021-01-31 month: startWeekOn: threshold: 40 @@ -90,7 +94,7 @@ month: selectedRingColor: steelblue circleColorByValue: true showSelectedValue: true - initMonth: 2021-09 + initMonth: 2021-01 ``` Specify the initial month by relative date @@ -109,7 +113,7 @@ month: selectedRingColor: steelblue circleColorByValue: true showSelectedValue: true - initMonth: -1M + initMonth: -47M ``` ## Multiple targets @@ -122,6 +126,7 @@ searchType: tag searchTarget: exercise-pushup, meditation datasetName: PushUp, Meditation folder: diary +endDate: 2021-01-31 month: dataset: 0, 1 startWeekOn: 'Sun' @@ -142,6 +147,7 @@ searchType: tag searchTarget: exercise-pushup, meditation datasetName: PushUp, Meditation folder: diary +endDate: 2021-01-31 month: mode: annotation startWeekOn: 'Sun' @@ -159,6 +165,7 @@ searchType: tag searchTarget: exercise-pushup, meditation datasetName: PushUp, Meditation folder: diary +endDate: 2021-01-31 month: mode: annotation startWeekOn: 'Sun' diff --git a/examples/TestRelativeStartEndDate.md b/examples/TestRelativeStartEndDate.md index 4c3f0e4..8c93f05 100644 --- a/examples/TestRelativeStartEndDate.md +++ b/examples/TestRelativeStartEndDate.md @@ -4,8 +4,8 @@ searchType: tag searchTarget: exercise-pushup folder: diary -startDate: -2M -endDate: -1M +startDate: -48M +endDate: -46M line: title: PushUp yAxisLabel: Count diff --git a/examples/TestTask.md b/examples/TestTask.md index a253698..cc0acc2 100644 --- a/examples/TestTask.md +++ b/examples/TestTask.md @@ -48,6 +48,7 @@ searchType: task.done searchTarget: Say I love you folder: diary datasetName: Love +endDate: 2021-01-31 month: color: tomato headerMonthColor: orange @@ -62,6 +63,7 @@ searchType: task.done, task.notdone searchTarget: Say I love you, Say I love you folder: diary datasetName: Good Lover, Bad Lover +endDate: 2021-01-31 month: color: tomato headerMonthColor: orange diff --git a/examples/WeightTracker.md b/examples/WeightTracker.md index 2cd0f8d..1385fe5 100644 --- a/examples/WeightTracker.md +++ b/examples/WeightTracker.md @@ -28,6 +28,7 @@ summary: searchType: tag searchTarget: weight folder: diary +endDate: 2021-01-31 line: title: Weight Log yAxisLabel: Weight From bdafd21f2f598febee528135a2ad789cb83925a2 Mon Sep 17 00:00:00 2001 From: Shahar Tal Date: Sat, 21 Dec 2024 15:37:08 +0200 Subject: [PATCH 215/277] added first and last expressions --- docs/Expressions.md | 2 ++ src/expr.ts | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/docs/Expressions.md b/docs/Expressions.md index fe17aee..f366067 100644 --- a/docs/Expressions.md +++ b/docs/Expressions.md @@ -59,6 +59,8 @@ e.g. | Function(InputType): OutputType | Description | |:------------------|:-----------| +| first(Dataset): number | First value of the dataset | +| last(Dataset): number | Last value of the dataset | | min(Dataset): number | Minimum value of the dataset | | minDate(Dataset): Date | Latest date of minimum value | | max(Dataset): number | Maximum value of the dataset | diff --git a/src/expr.ts b/src/expr.ts index 6469950..e8af3ae 100644 --- a/src/expr.ts +++ b/src/expr.ts @@ -76,6 +76,16 @@ function checkBinaryOperantType(left: any, right: any) { } const fnMapDatasetToValue: FnMapDatasetToValue = { + // first value of a dataset + first: function (dataset, renderInfo) { + // return number + return dataset.getValue(dataset.getStartDate()); + }, + // last value of a dataset + last: function (dataset, renderInfo) { + // return number + return dataset.getValue(dataset.getEndDate()); + }, // min value of a dataset min: function (dataset, renderInfo) { // return number From d91e4f5b7c37f959dcf2d15463c20dc3bfb0f156 Mon Sep 17 00:00:00 2001 From: Shahar Tal Date: Sat, 21 Dec 2024 15:45:05 +0200 Subject: [PATCH 216/277] added example of the new expressions (first, last) --- examples/WeightTracker.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/WeightTracker.md b/examples/WeightTracker.md index 2cd0f8d..8581e47 100644 --- a/examples/WeightTracker.md +++ b/examples/WeightTracker.md @@ -21,7 +21,7 @@ searchType: tag searchTarget: weight folder: diary summary: - template: "Minimum: {{min()}}kg\nMaximum: {{max()}}kg\nMedian: {{median()}}kg\nAverage: {{average()}}kg" + template: "First: {{first()}}kg\nLast: {{last()}}kg\nMinimum: {{min()}}kg\nMaximum: {{max()}}kg\nMedian: {{median()}}kg\nAverage: {{average()}}kg" ``` ``` tracker From 57efbd58e514adc515d2e0d659c78fc18ba77984 Mon Sep 17 00:00:00 2001 From: Shahar Tal Date: Sat, 21 Dec 2024 16:29:42 +0200 Subject: [PATCH 217/277] utilizing existing fnMapDatasetToValue methods --- src/expr.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/expr.ts b/src/expr.ts index e8af3ae..51c5fc8 100644 --- a/src/expr.ts +++ b/src/expr.ts @@ -79,12 +79,12 @@ const fnMapDatasetToValue: FnMapDatasetToValue = { // first value of a dataset first: function (dataset, renderInfo) { // return number - return dataset.getValue(dataset.getStartDate()); + return dataset.getValue(this.startDate(...arguments)); }, // last value of a dataset last: function (dataset, renderInfo) { // return number - return dataset.getValue(dataset.getEndDate()); + return dataset.getValue(this.endDate(...arguments)); }, // min value of a dataset min: function (dataset, renderInfo) { From a51905f27c3977f5f47559494e7c25d1a9a56f29 Mon Sep 17 00:00:00 2001 From: caleb <68855603+calebvisage@users.noreply.github.com> Date: Sun, 22 Dec 2024 20:27:19 +0200 Subject: [PATCH 218/277] fix: spelling error in Examples.md --- docs/Examples.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Examples.md b/docs/Examples.md index 755afe2..b68f4e7 100644 --- a/docs/Examples.md +++ b/docs/Examples.md @@ -25,7 +25,7 @@ Check where (Location) and what (Target to Track) is your target and find the se | content | [[journal]] | searchType: wiki
searchTarget: journal | O | | content | ⭐ | searchType: text
searchTarget: ⭐ | O | | content | love | searchType: text
searchTarget: love | O | -| content | test@gmail.com
test@hotmail.com | searchType: text
serchTarget: '.+\\@.+\\..+' | O | +| content | test@gmail.com
test@hotmail.com | searchType: text
searchTarget: '.+\\@.+\\..+' | O | | content | #weightlifting: 50 | searchType: text
searchTarget: 'weightlifting: (?\[\\-]?[0-9]+[\\.][0-9]+\|[\\-]?[0-9]+)' | V | | content | I walked 10000 steps today. | searchType: text
searchTarget: 'walked\\s+(?\[0-9]+)\\s+steps' | V | | content | myvalues 1/2/3 | searchType: text
searchTarget: 'myvalues\\s+(?\[0-9]+)/([0-9]+)/([0-9]+), myvalues\\s+([0-9]+)/(?\[0-9]+)/([0-9]+), myvalues\\s+([0-9]+)/([0-9]+)/(?\[0-9]+)' | V | From e65693e7189525eed2400e5d590abd8df56535fe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 5 Jan 2025 03:09:34 +0000 Subject: [PATCH 219/277] Bump rollup from 4.16.1 to 4.29.1 Bumps [rollup](https://github.com/rollup/rollup) from 4.16.1 to 4.29.1. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.16.1...v4.29.1) --- updated-dependencies: - dependency-name: rollup dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 186 ++++++++++++++++++++++++++++------------------ package.json | 2 +- 2 files changed, 115 insertions(+), 73 deletions(-) diff --git a/package-lock.json b/package-lock.json index 994be6d..7b2dbd7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "@types/node": "^20.12.7", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.16.1", + "rollup": "^4.29.1", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", "typescript": "^5.4.5" @@ -262,9 +262,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.16.1.tgz", - "integrity": "sha512-92/y0TqNLRYOTXpm6Z7mnpvKAG9P7qmK7yJeRJSdzElNCUnsgbpAsGqerUboYRIQKzgfq4pWu9xVkgpWLfmNsw==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.29.1.tgz", + "integrity": "sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==", "cpu": [ "arm" ], @@ -275,9 +275,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.16.1.tgz", - "integrity": "sha512-ttWB6ZCfRLuDIUiE0yiu5gcqOsYjA5F7kEV1ggHMj20FwLZ8A1FMeahZJFl/pnOmcnD2QL0z4AcDuo27utGU8A==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.29.1.tgz", + "integrity": "sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==", "cpu": [ "arm64" ], @@ -288,9 +288,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.16.1.tgz", - "integrity": "sha512-QLDvPLetbqjHojTGFw9+nuSP3YY/iz2k1cep6crYlr97sS+ZJ0W43b8Z0zC00+lnFZj6JSNxiA4DjboNQMuh1A==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.29.1.tgz", + "integrity": "sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==", "cpu": [ "arm64" ], @@ -301,9 +301,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.16.1.tgz", - "integrity": "sha512-TAUK/D8khRrRIa1KwRzo8JNKk3tcqaeXWdtsiLgA8zmACWwlWLjPCJ4DULGHQrMkeBjp1Cd3Yuwx04lZgFx5Vg==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.29.1.tgz", + "integrity": "sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==", "cpu": [ "x64" ], @@ -313,10 +313,36 @@ "darwin" ] }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.29.1.tgz", + "integrity": "sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.29.1.tgz", + "integrity": "sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.16.1.tgz", - "integrity": "sha512-KO+WGZjrh6zyFTD1alIFkfdtxf8B4BC+hqd3kBZHscPLvE5FR/6QKsyuCT0JlERxxYBSUKNUQ/UHyX5uwO1x2A==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.29.1.tgz", + "integrity": "sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==", "cpu": [ "arm" ], @@ -327,9 +353,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.16.1.tgz", - "integrity": "sha512-NqxbllzIB1WoAo4ThUXVtd21iiM5IHMTTXmXySKBLVcZvkU0HIZmatlP7hLzb5yQubcmdIeWmncd2NdsjocEiw==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.29.1.tgz", + "integrity": "sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==", "cpu": [ "arm" ], @@ -340,9 +366,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.16.1.tgz", - "integrity": "sha512-snma5NvV8y7IECQ5rq0sr0f3UUu+92NVmG/913JXJMcXo84h9ak9TA5UI9Cl2XRM9j3m37QwDBtEYnJzRkSmxA==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.29.1.tgz", + "integrity": "sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==", "cpu": [ "arm64" ], @@ -353,9 +379,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.16.1.tgz", - "integrity": "sha512-KOvqGprlD84ueivhCi2flvcUwDRD20mAsE3vxQNVEI2Di9tnPGAfEu6UcrSPZbM+jG2w1oSr43hrPo0RNg6GGg==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.29.1.tgz", + "integrity": "sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==", "cpu": [ "arm64" ], @@ -365,10 +391,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.29.1.tgz", + "integrity": "sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.16.1.tgz", - "integrity": "sha512-/gsNwtiGLqYwN4vP+EIdUC6Q6LTlpupWqokqIndvZcjn9ig/5P01WyaYCU2wvfL/2Z82jp5kX8c1mDBOvCP3zg==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.29.1.tgz", + "integrity": "sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==", "cpu": [ "ppc64" ], @@ -379,9 +418,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.16.1.tgz", - "integrity": "sha512-uU8zuGkQfGqfD9w6VRJZI4IuG4JIfNxxJgEmLMAmPVHREKGsxFVfgHy5c6CexQF2vOfgjB33OsET3Vdn2lln9A==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.29.1.tgz", + "integrity": "sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==", "cpu": [ "riscv64" ], @@ -392,9 +431,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.16.1.tgz", - "integrity": "sha512-lsjLtDgtcGFEuBP6yrXwkRN5/wKlvUZtfbKZZu0yaoNpiBL4epgnO21osAALIspVRnl4qZgyLFd8xjCYYWgwfw==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.29.1.tgz", + "integrity": "sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==", "cpu": [ "s390x" ], @@ -405,9 +444,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.16.1.tgz", - "integrity": "sha512-N2ZizKhUryqqrMfdCnjhJhZRgv61C6gK+hwVtCIKC8ts8J+go+vqENnGexwg21nHIOvLN5mBM8a7DI2vlyIOPg==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.29.1.tgz", + "integrity": "sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==", "cpu": [ "x64" ], @@ -418,9 +457,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.16.1.tgz", - "integrity": "sha512-5ICeMxqg66FrOA2AbnBQ2TJVxfvZsKLxmof0ibvPLaYtbsJqnTUtJOofgWb46Gjd4uZcA4rdsp4JCxegzQPqCg==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.29.1.tgz", + "integrity": "sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==", "cpu": [ "x64" ], @@ -431,9 +470,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.16.1.tgz", - "integrity": "sha512-1vIP6Ce02L+qWD7uZYRiFiuAJo3m9kARatWmFSnss0gZnVj2Id7OPUU9gm49JPGasgcR3xMqiH3fqBJ8t00yVg==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.29.1.tgz", + "integrity": "sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==", "cpu": [ "arm64" ], @@ -444,9 +483,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.16.1.tgz", - "integrity": "sha512-Y3M92DcVsT6LoP+wrKpoUWPaazaP1fzbNkp0a0ZSj5Y//+pQVfVe/tQdsYQQy7dwXR30ZfALUIc9PCh9Izir6w==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.29.1.tgz", + "integrity": "sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==", "cpu": [ "ia32" ], @@ -457,9 +496,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.16.1.tgz", - "integrity": "sha512-x0fvpHMuF7fK5r8oZxSi8VYXkrVmRgubXpO/wcf15Lk3xZ4Jvvh5oG+u7Su1776A7XzVKZhD2eRc4t7H50gL3w==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.29.1.tgz", + "integrity": "sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==", "cpu": [ "x64" ], @@ -732,9 +771,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true }, "node_modules/@types/fs-extra": { @@ -1804,12 +1843,12 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.16.1.tgz", - "integrity": "sha512-5CaD3MPDlPKfhqzRvWXK96G6ELJfPZNb3LHiZxTHgDdC6jvwfGz2E8nY+9g1ONk4ttHsK1WaFP19Js4PSr1E3g==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.29.1.tgz", + "integrity": "sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==", "dev": true, "dependencies": { - "@types/estree": "1.0.5" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -1819,22 +1858,25 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.16.1", - "@rollup/rollup-android-arm64": "4.16.1", - "@rollup/rollup-darwin-arm64": "4.16.1", - "@rollup/rollup-darwin-x64": "4.16.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.16.1", - "@rollup/rollup-linux-arm-musleabihf": "4.16.1", - "@rollup/rollup-linux-arm64-gnu": "4.16.1", - "@rollup/rollup-linux-arm64-musl": "4.16.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.16.1", - "@rollup/rollup-linux-riscv64-gnu": "4.16.1", - "@rollup/rollup-linux-s390x-gnu": "4.16.1", - "@rollup/rollup-linux-x64-gnu": "4.16.1", - "@rollup/rollup-linux-x64-musl": "4.16.1", - "@rollup/rollup-win32-arm64-msvc": "4.16.1", - "@rollup/rollup-win32-ia32-msvc": "4.16.1", - "@rollup/rollup-win32-x64-msvc": "4.16.1", + "@rollup/rollup-android-arm-eabi": "4.29.1", + "@rollup/rollup-android-arm64": "4.29.1", + "@rollup/rollup-darwin-arm64": "4.29.1", + "@rollup/rollup-darwin-x64": "4.29.1", + "@rollup/rollup-freebsd-arm64": "4.29.1", + "@rollup/rollup-freebsd-x64": "4.29.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.29.1", + "@rollup/rollup-linux-arm-musleabihf": "4.29.1", + "@rollup/rollup-linux-arm64-gnu": "4.29.1", + "@rollup/rollup-linux-arm64-musl": "4.29.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.29.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.29.1", + "@rollup/rollup-linux-riscv64-gnu": "4.29.1", + "@rollup/rollup-linux-s390x-gnu": "4.29.1", + "@rollup/rollup-linux-x64-gnu": "4.29.1", + "@rollup/rollup-linux-x64-musl": "4.29.1", + "@rollup/rollup-win32-arm64-msvc": "4.29.1", + "@rollup/rollup-win32-ia32-msvc": "4.29.1", + "@rollup/rollup-win32-x64-msvc": "4.29.1", "fsevents": "~2.3.2" } }, diff --git a/package.json b/package.json index f5eb2ca..77174b4 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@types/node": "^20.12.7", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.16.1", + "rollup": "^4.29.1", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.2", "typescript": "^5.4.5" From 2edd2d3e5f180edb9e6bec0a83843c588dedaca2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 5 Jan 2025 03:13:35 +0000 Subject: [PATCH 220/277] Bump typescript from 5.4.5 to 5.7.2 Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.4.5 to 5.7.2. - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/microsoft/TypeScript/compare/v5.4.5...v5.7.2) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 06ab230..01dd53f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "rollup": "^4.29.1", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.3", - "typescript": "^5.4.5" + "typescript": "^5.7.2" } }, "node_modules/@codemirror/state": { @@ -2381,9 +2381,9 @@ "dev": true }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "dev": true, "bin": { "tsc": "bin/tsc", diff --git a/package.json b/package.json index fb6e802..ce2aa84 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "rollup": "^4.29.1", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.3", - "typescript": "^5.4.5" + "typescript": "^5.7.2" }, "dependencies": { "d3": "^7.9.0", From 8d96b1fc5a59fc0d0987bb15db0b93cbc0b27a29 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Sat, 4 Jan 2025 20:49:05 -0700 Subject: [PATCH 221/277] Update pushup count in other entry files --- examples/diary/2021-01-05.md | 2 +- examples/diary/20210105-D.md | 2 +- examples/diary/D-20210105.md | 2 +- examples/diary/Jeffrey-20210105-Diary.md | 2 +- examples/diary/Jeffrey-20210105-Journal.md | 2 +- examples/diary/Lucas-20210105-Diary.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/diary/2021-01-05.md b/examples/diary/2021-01-05.md index cea72c4..fab397f 100644 --- a/examples/diary/2021-01-05.md +++ b/examples/diary/2021-01-05.md @@ -22,7 +22,7 @@ randchar: A #weight:72.5kg -#exercise-pushup:49 +#exercise-pushup:5 #exercise-plank:57sec #meditation diff --git a/examples/diary/20210105-D.md b/examples/diary/20210105-D.md index c836d81..1f8cccf 100644 --- a/examples/diary/20210105-D.md +++ b/examples/diary/20210105-D.md @@ -6,7 +6,7 @@ bloodpressure: 177/119 #weight:70.0kg -#exercise-pushup:35 +#exercise-pushup:5 #exercise-plank:34sec #meditation diff --git a/examples/diary/D-20210105.md b/examples/diary/D-20210105.md index c836d81..1f8cccf 100644 --- a/examples/diary/D-20210105.md +++ b/examples/diary/D-20210105.md @@ -6,7 +6,7 @@ bloodpressure: 177/119 #weight:70.0kg -#exercise-pushup:35 +#exercise-pushup:5 #exercise-plank:34sec #meditation diff --git a/examples/diary/Jeffrey-20210105-Diary.md b/examples/diary/Jeffrey-20210105-Diary.md index c836d81..1f8cccf 100644 --- a/examples/diary/Jeffrey-20210105-Diary.md +++ b/examples/diary/Jeffrey-20210105-Diary.md @@ -6,7 +6,7 @@ bloodpressure: 177/119 #weight:70.0kg -#exercise-pushup:35 +#exercise-pushup:5 #exercise-plank:34sec #meditation diff --git a/examples/diary/Jeffrey-20210105-Journal.md b/examples/diary/Jeffrey-20210105-Journal.md index c836d81..1f8cccf 100644 --- a/examples/diary/Jeffrey-20210105-Journal.md +++ b/examples/diary/Jeffrey-20210105-Journal.md @@ -6,7 +6,7 @@ bloodpressure: 177/119 #weight:70.0kg -#exercise-pushup:35 +#exercise-pushup:5 #exercise-plank:34sec #meditation diff --git a/examples/diary/Lucas-20210105-Diary.md b/examples/diary/Lucas-20210105-Diary.md index c836d81..1f8cccf 100644 --- a/examples/diary/Lucas-20210105-Diary.md +++ b/examples/diary/Lucas-20210105-Diary.md @@ -6,7 +6,7 @@ bloodpressure: 177/119 #weight:70.0kg -#exercise-pushup:35 +#exercise-pushup:5 #exercise-plank:34sec #meditation From c6278e4628fd0e9a9882c3d63f332e2f0d46c273 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Sat, 4 Jan 2025 21:46:54 -0700 Subject: [PATCH 222/277] chore(package): update braces, cross-spawn, fill-range, and micromatch packages to latest versions --- package-lock.json | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 01dd53f..0c68c15 100644 --- a/package-lock.json +++ b/package-lock.json @@ -925,12 +925,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -999,9 +999,9 @@ "dev": true }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "dependencies": { "path-key": "^3.1.0", @@ -1455,9 +1455,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -1844,12 +1844,12 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { From 4be36926c921549c895a65b64c74a572d3ffb623 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Sat, 4 Jan 2025 22:56:43 -0700 Subject: [PATCH 223/277] chore(package): update @rollup/plugin-commonjs and @rollup/plugin-node-resolve to latest versions --- package-lock.json | 44 ++++++++------------------------------------ package.json | 4 ++-- 2 files changed, 10 insertions(+), 38 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0c68c15..19d0f76 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,8 +15,8 @@ "sprintf-js": "^1.1.3" }, "devDependencies": { - "@rollup/plugin-commonjs": "^26.0.1", - "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/plugin-commonjs": "^26.0.3", + "@rollup/plugin-node-resolve": "^15.3.1", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", @@ -169,9 +169,9 @@ } }, "node_modules/@rollup/plugin-commonjs": { - "version": "26.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-26.0.1.tgz", - "integrity": "sha512-UnsKoZK6/aGIH6AdkptXhNvhaqftcjq3zZdT+LY5Ftms6JR06nADcDsYp5hTU9E2lbJUEOhdlY5J4DNTneM+jQ==", + "version": "26.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-26.0.3.tgz", + "integrity": "sha512-2BJcolt43MY+y5Tz47djHkodCC3c1VKVrBDKpVqHKpQ9z9S158kCCqB8NF6/gzxLdNlYW9abB3Ibh+kOWLp8KQ==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", @@ -194,15 +194,14 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", - "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz", + "integrity": "sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", "@types/resolve": "1.20.2", "deepmerge": "^4.2.2", - "is-builtin-module": "^3.2.1", "is-module": "^1.0.0", "resolve": "^1.22.1" }, @@ -942,18 +941,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1682,21 +1669,6 @@ "node": ">=12" } }, - "node_modules/is-builtin-module": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", - "dev": true, - "dependencies": { - "builtin-modules": "^3.3.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", diff --git a/package.json b/package.json index ce2aa84..fb13933 100644 --- a/package.json +++ b/package.json @@ -12,8 +12,8 @@ "author": "pyrochlore", "license": "MIT", "devDependencies": { - "@rollup/plugin-commonjs": "^26.0.1", - "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/plugin-commonjs": "^26.0.3", + "@rollup/plugin-node-resolve": "^15.3.1", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", From ba4642997e3b63d058ed95f6fd90116e4faaf3f2 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Sat, 4 Jan 2025 22:57:12 -0700 Subject: [PATCH 224/277] chore(tsconfig): update target from ES6 to ES2018 --- tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tsconfig.json b/tsconfig.json index 8816ba4..287beba 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,7 +4,7 @@ "inlineSourceMap": true, "inlineSources": true, "module": "ESNext", - "target": "es6", + "target": "ES2018", "allowJs": true, "noImplicitAny": true, "moduleResolution": "node", From 07ab62167aa240828fbe6eb0310feed956d47f35 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Sat, 4 Jan 2025 22:57:28 -0700 Subject: [PATCH 225/277] fix(rollup): improve circular dependency warning handling --- rollup.config.build.mjs | 11 ++++++----- rollup.config.dev.mjs | 11 ++++++----- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/rollup.config.build.mjs b/rollup.config.build.mjs index f5313c8..d1c1841 100644 --- a/rollup.config.build.mjs +++ b/rollup.config.build.mjs @@ -19,11 +19,12 @@ export default { terser() ], onwarn: function(warning, warner){ - if (warning.code === 'CIRCULAR_DEPENDENCY'){ - if(warning.importer && warning.importer.startsWith('node_modules')){ - return; - } + if (warning.code === 'CIRCULAR_DEPENDENCY') { + if (warning.importer && warning.importer.startsWith('node_modules')) { + console.warn(`(!) Circular dependency: ${warning.importer}`); + } + } else { + warner(warning); } - warner(warning); } }; \ No newline at end of file diff --git a/rollup.config.dev.mjs b/rollup.config.dev.mjs index dd2742f..588dcbd 100644 --- a/rollup.config.dev.mjs +++ b/rollup.config.dev.mjs @@ -23,11 +23,12 @@ export default { }) ], onwarn: function(warning, warner){ - if (warning.code === 'CIRCULAR_DEPENDENCY'){ - if(warning.importer && warning.importer.startsWith('node_modules')){ - return; - } + if (warning.code === 'CIRCULAR_DEPENDENCY') { + if (warning.importer && warning.importer.startsWith('node_modules')) { + console.warn(`(!) Circular dependency: ${warning.importer}`); + } + } else { + warner(warning); } - warner(warning); } }; \ No newline at end of file From 609f6faae79fa9a4430de142a43e275fa0a7a809 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Sat, 4 Jan 2025 22:59:43 -0700 Subject: [PATCH 226/277] fix(docs): update endDate in TestCommands.md to 2021-01-31 --- examples/TestCommands.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/TestCommands.md b/examples/TestCommands.md index 24b414e..88caaf7 100644 --- a/examples/TestCommands.md +++ b/examples/TestCommands.md @@ -5,7 +5,7 @@ searchType: tag searchTarget: weight folder: / startDate: -endDate: +endDate: 2021-01-31 line: title: "Line Chart" xAxisLabel: Date @@ -18,7 +18,7 @@ searchType: tag searchTarget: weight folder: / startDate: -endDate: +endDate: 2021-01-31 bar: title: "Bar Chart" xAxisLabel: Date @@ -31,7 +31,7 @@ searchType: tag searchTarget: weight folder: / startDate: -endDate: +endDate: 2021-01-31 summary: template: "Average value of tagName is {{average()}}" style: "color:white;" From 279e6c296bdf2e4f6108736613c2cfa31ab2d348 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Sat, 4 Jan 2025 23:14:34 -0700 Subject: [PATCH 227/277] Release 1.15.0 --- README.md | 9 +++++++++ docs/ReleaseNotes.md | 8 ++++++++ manifest.json | 2 +- package.json | 2 +- versions.json | 3 ++- 5 files changed, 21 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9f1267a..4cbad33 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,16 @@ This is an [Obsidian](https://obsidian.md/) plugin that helps you collect data f ## What's New +Version 1.15.0 + +- Fix: Minor spelling error in Examples.md +- Added new expression functions - First and Last +- Updated dates in examples to fix plots +- Respect thresholds in scaled months +- Update dependencies + Version 1.14.0 + - Update dependencies - Prevent overlapping external labels in pie chart - Enable Stacked Bar Chart diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index 85f9f9a..4ddb249 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,13 @@ # Release Notes +## 1.15.0 + +- Fix: Minor spelling error in Examples.md +- Added new expression functions - First and Last +- Updated dates in examples to fix plots +- Respect thresholds in scaled months +- Update dependencies + ## 1.14.0 - Update dependencies diff --git a/manifest.json b/manifest.json index 9b4559e..c565b1f 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.14.0", + "version": "1.15.0", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package.json b/package.json index fb13933..251356b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.14.0", + "version": "1.15.0", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index f665075..4c7a502 100644 --- a/versions.json +++ b/versions.json @@ -35,5 +35,6 @@ "1.13.1": "0.9.12", "1.13.2": "0.9.12", "1.13.3": "0.9.12", - "1.14.0": "0.9.12" + "1.14.0": "0.9.12", + "1.15.0": "0.9.12" } From 128a794c29e0e7bb42ccdbb7834761fecabd63c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2025 13:17:17 +0000 Subject: [PATCH 228/277] Bump @rollup/plugin-typescript from 11.1.6 to 12.1.2 Bumps [@rollup/plugin-typescript](https://github.com/rollup/plugins/tree/HEAD/packages/typescript) from 11.1.6 to 12.1.2. - [Changelog](https://github.com/rollup/plugins/blob/master/packages/typescript/CHANGELOG.md) - [Commits](https://github.com/rollup/plugins/commits/typescript-v12.1.2/packages/typescript) --- updated-dependencies: - dependency-name: "@rollup/plugin-typescript" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 12 ++++++------ package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 19d0f76..b108e07 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "obsidian-tracker", - "version": "1.14.0", + "version": "1.15.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "obsidian-tracker", - "version": "1.14.0", + "version": "1.15.0", "license": "MIT", "dependencies": { "d3": "^7.9.0", @@ -18,7 +18,7 @@ "@rollup/plugin-commonjs": "^26.0.3", "@rollup/plugin-node-resolve": "^15.3.1", "@rollup/plugin-terser": "^0.4.4", - "@rollup/plugin-typescript": "^11.1.5", + "@rollup/plugin-typescript": "^12.1.2", "@types/d3": "^7.4.3", "@types/node": "^20.14.11", "@types/sprintf-js": "^1.1.4", @@ -240,9 +240,9 @@ } }, "node_modules/@rollup/plugin-typescript": { - "version": "11.1.6", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.6.tgz", - "integrity": "sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==", + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.2.tgz", + "integrity": "sha512-cdtSp154H5sv637uMr1a8OTWB0L1SWDSm1rDGiyfcGcvQ6cuTs4MDk2BVEBGysUWago4OJN4EQZqOTl/QY3Jgg==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.1.0", diff --git a/package.json b/package.json index 251356b..8462b37 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "@rollup/plugin-commonjs": "^26.0.3", "@rollup/plugin-node-resolve": "^15.3.1", "@rollup/plugin-terser": "^0.4.4", - "@rollup/plugin-typescript": "^11.1.5", + "@rollup/plugin-typescript": "^12.1.2", "@types/d3": "^7.4.3", "@types/node": "^20.14.11", "@types/sprintf-js": "^1.1.4", From a6e89ea2dcfc53f255c6149baa3c3feeb0b10bce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2025 13:17:22 +0000 Subject: [PATCH 229/277] Bump @rollup/plugin-node-resolve from 15.3.1 to 16.0.0 Bumps [@rollup/plugin-node-resolve](https://github.com/rollup/plugins/tree/HEAD/packages/node-resolve) from 15.3.1 to 16.0.0. - [Changelog](https://github.com/rollup/plugins/blob/master/packages/node-resolve/CHANGELOG.md) - [Commits](https://github.com/rollup/plugins/commits/commonjs-v16.0.0/packages/node-resolve) --- updated-dependencies: - dependency-name: "@rollup/plugin-node-resolve" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 12 ++++++------ package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 19d0f76..0dba7ea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "obsidian-tracker", - "version": "1.14.0", + "version": "1.15.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "obsidian-tracker", - "version": "1.14.0", + "version": "1.15.0", "license": "MIT", "dependencies": { "d3": "^7.9.0", @@ -16,7 +16,7 @@ }, "devDependencies": { "@rollup/plugin-commonjs": "^26.0.3", - "@rollup/plugin-node-resolve": "^15.3.1", + "@rollup/plugin-node-resolve": "^16.0.0", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", @@ -194,9 +194,9 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz", - "integrity": "sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.0.tgz", + "integrity": "sha512-0FPvAeVUT/zdWoO0jnb/V5BlBsUSNfkIOtFHzMO4H9MOklrmQFY6FduVHKucNb/aTFxvnGhj4MNj/T1oNdDfNg==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", diff --git a/package.json b/package.json index 251356b..947ec0c 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "license": "MIT", "devDependencies": { "@rollup/plugin-commonjs": "^26.0.3", - "@rollup/plugin-node-resolve": "^15.3.1", + "@rollup/plugin-node-resolve": "^16.0.0", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", From 60cdb78da99642e101d093ce32a9fd261cb1feb5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2025 13:17:27 +0000 Subject: [PATCH 230/277] Bump jsep from 1.3.8 to 1.4.0 Bumps [jsep](https://github.com/EricSmekens/jsep) from 1.3.8 to 1.4.0. - [Release notes](https://github.com/EricSmekens/jsep/releases) - [Changelog](https://github.com/EricSmekens/jsep/blob/master/CHANGELOG.md) - [Commits](https://github.com/EricSmekens/jsep/compare/v1.3.8...v1.4.0) --- updated-dependencies: - dependency-name: jsep dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 12 ++++++------ package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 19d0f76..b8c591a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,17 @@ { "name": "obsidian-tracker", - "version": "1.14.0", + "version": "1.15.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "obsidian-tracker", - "version": "1.14.0", + "version": "1.15.0", "license": "MIT", "dependencies": { "d3": "^7.9.0", "d3-interpolate": "^3.0.1", - "jsep": "^1.3.8", + "jsep": "^1.4.0", "sprintf-js": "^1.1.3" }, "devDependencies": { @@ -1769,9 +1769,9 @@ } }, "node_modules/jsep": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.3.8.tgz", - "integrity": "sha512-qofGylTGgYj9gZFsHuyWAN4jr35eJ66qJCK4eKDnldohuUoQFbU3iZn2zjvEbd9wOAhP9Wx5DsAAduTyE1PSWQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", + "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", "engines": { "node": ">= 10.16.0" } diff --git a/package.json b/package.json index 251356b..875bcc1 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "d3": "^7.9.0", "d3-interpolate": "^3.0.1", - "jsep": "^1.3.8", + "jsep": "^1.4.0", "sprintf-js": "^1.1.3" } } From 44f43d04368e283ae4af4016fb8ad14800cd76e1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 14:02:50 +0000 Subject: [PATCH 231/277] Bump rollup from 4.29.1 to 4.31.0 Bumps [rollup](https://github.com/rollup/rollup) from 4.29.1 to 4.31.0. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.29.1...v4.31.0) --- updated-dependencies: - dependency-name: rollup dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 164 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 83 insertions(+), 83 deletions(-) diff --git a/package-lock.json b/package-lock.json index 19d0f76..7232066 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "obsidian-tracker", - "version": "1.14.0", + "version": "1.15.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "obsidian-tracker", - "version": "1.14.0", + "version": "1.15.0", "license": "MIT", "dependencies": { "d3": "^7.9.0", @@ -23,7 +23,7 @@ "@types/node": "^20.14.11", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.29.1", + "rollup": "^4.31.0", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.3", "typescript": "^5.7.2" @@ -288,9 +288,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.29.1.tgz", - "integrity": "sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz", + "integrity": "sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==", "cpu": [ "arm" ], @@ -301,9 +301,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.29.1.tgz", - "integrity": "sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz", + "integrity": "sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==", "cpu": [ "arm64" ], @@ -314,9 +314,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.29.1.tgz", - "integrity": "sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz", + "integrity": "sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==", "cpu": [ "arm64" ], @@ -327,9 +327,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.29.1.tgz", - "integrity": "sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz", + "integrity": "sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==", "cpu": [ "x64" ], @@ -340,9 +340,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.29.1.tgz", - "integrity": "sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz", + "integrity": "sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew==", "cpu": [ "arm64" ], @@ -353,9 +353,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.29.1.tgz", - "integrity": "sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz", + "integrity": "sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA==", "cpu": [ "x64" ], @@ -366,9 +366,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.29.1.tgz", - "integrity": "sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz", + "integrity": "sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==", "cpu": [ "arm" ], @@ -379,9 +379,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.29.1.tgz", - "integrity": "sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz", + "integrity": "sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==", "cpu": [ "arm" ], @@ -392,9 +392,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.29.1.tgz", - "integrity": "sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz", + "integrity": "sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==", "cpu": [ "arm64" ], @@ -405,9 +405,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.29.1.tgz", - "integrity": "sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz", + "integrity": "sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==", "cpu": [ "arm64" ], @@ -418,9 +418,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.29.1.tgz", - "integrity": "sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz", + "integrity": "sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==", "cpu": [ "loong64" ], @@ -431,9 +431,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.29.1.tgz", - "integrity": "sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz", + "integrity": "sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==", "cpu": [ "ppc64" ], @@ -444,9 +444,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.29.1.tgz", - "integrity": "sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz", + "integrity": "sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==", "cpu": [ "riscv64" ], @@ -457,9 +457,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.29.1.tgz", - "integrity": "sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz", + "integrity": "sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==", "cpu": [ "s390x" ], @@ -470,9 +470,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.29.1.tgz", - "integrity": "sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz", + "integrity": "sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==", "cpu": [ "x64" ], @@ -483,9 +483,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.29.1.tgz", - "integrity": "sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz", + "integrity": "sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==", "cpu": [ "x64" ], @@ -496,9 +496,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.29.1.tgz", - "integrity": "sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz", + "integrity": "sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==", "cpu": [ "arm64" ], @@ -509,9 +509,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.29.1.tgz", - "integrity": "sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz", + "integrity": "sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==", "cpu": [ "ia32" ], @@ -522,9 +522,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.29.1.tgz", - "integrity": "sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz", + "integrity": "sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==", "cpu": [ "x64" ], @@ -2008,9 +2008,9 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.29.1.tgz", - "integrity": "sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.31.0.tgz", + "integrity": "sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==", "dev": true, "dependencies": { "@types/estree": "1.0.6" @@ -2023,25 +2023,25 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.29.1", - "@rollup/rollup-android-arm64": "4.29.1", - "@rollup/rollup-darwin-arm64": "4.29.1", - "@rollup/rollup-darwin-x64": "4.29.1", - "@rollup/rollup-freebsd-arm64": "4.29.1", - "@rollup/rollup-freebsd-x64": "4.29.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.29.1", - "@rollup/rollup-linux-arm-musleabihf": "4.29.1", - "@rollup/rollup-linux-arm64-gnu": "4.29.1", - "@rollup/rollup-linux-arm64-musl": "4.29.1", - "@rollup/rollup-linux-loongarch64-gnu": "4.29.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.29.1", - "@rollup/rollup-linux-riscv64-gnu": "4.29.1", - "@rollup/rollup-linux-s390x-gnu": "4.29.1", - "@rollup/rollup-linux-x64-gnu": "4.29.1", - "@rollup/rollup-linux-x64-musl": "4.29.1", - "@rollup/rollup-win32-arm64-msvc": "4.29.1", - "@rollup/rollup-win32-ia32-msvc": "4.29.1", - "@rollup/rollup-win32-x64-msvc": "4.29.1", + "@rollup/rollup-android-arm-eabi": "4.31.0", + "@rollup/rollup-android-arm64": "4.31.0", + "@rollup/rollup-darwin-arm64": "4.31.0", + "@rollup/rollup-darwin-x64": "4.31.0", + "@rollup/rollup-freebsd-arm64": "4.31.0", + "@rollup/rollup-freebsd-x64": "4.31.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.31.0", + "@rollup/rollup-linux-arm-musleabihf": "4.31.0", + "@rollup/rollup-linux-arm64-gnu": "4.31.0", + "@rollup/rollup-linux-arm64-musl": "4.31.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.31.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.31.0", + "@rollup/rollup-linux-riscv64-gnu": "4.31.0", + "@rollup/rollup-linux-s390x-gnu": "4.31.0", + "@rollup/rollup-linux-x64-gnu": "4.31.0", + "@rollup/rollup-linux-x64-musl": "4.31.0", + "@rollup/rollup-win32-arm64-msvc": "4.31.0", + "@rollup/rollup-win32-ia32-msvc": "4.31.0", + "@rollup/rollup-win32-x64-msvc": "4.31.0", "fsevents": "~2.3.2" } }, diff --git a/package.json b/package.json index 251356b..a0aed21 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@types/node": "^20.14.11", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.29.1", + "rollup": "^4.31.0", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.6.3", "typescript": "^5.7.2" From e0df3b10bdbbd377398275eac7d37489b7af7172 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 21:23:40 +0000 Subject: [PATCH 232/277] Bump tslib from 2.6.3 to 2.8.1 Bumps [tslib](https://github.com/Microsoft/tslib) from 2.6.3 to 2.8.1. - [Release notes](https://github.com/Microsoft/tslib/releases) - [Commits](https://github.com/Microsoft/tslib/compare/v2.6.3...v2.8.1) --- updated-dependencies: - dependency-name: tslib dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 11 ++++++----- package.json | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2961eda..1f3c997 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.31.0", "rollup-plugin-copy": "^3.5.0", - "tslib": "^2.6.3", + "tslib": "^2.8.1", "typescript": "^5.7.2" } }, @@ -2347,10 +2347,11 @@ } }, "node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "dev": true + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" }, "node_modules/typescript": { "version": "5.7.2", diff --git a/package.json b/package.json index 4f34e49..692ee55 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.31.0", "rollup-plugin-copy": "^3.5.0", - "tslib": "^2.6.3", + "tslib": "^2.8.1", "typescript": "^5.7.2" }, "dependencies": { From 0c788e0b5118e649e8a225647dbdb07e2505bf01 Mon Sep 17 00:00:00 2001 From: Lokesh-Bharath Date: Wed, 12 Feb 2025 09:27:06 -0500 Subject: [PATCH 233/277] Fix issue #298: Added DatasetName as title for calendar in annotation mode --- src/month.ts | 65 ++++++++++++++++++++++++---------------------------- 1 file changed, 30 insertions(+), 35 deletions(-) diff --git a/src/month.ts b/src/month.ts index a1fa232..b9ed553 100644 --- a/src/month.ts +++ b/src/month.ts @@ -300,41 +300,36 @@ function renderMonthHeader( datasetName, "tracker-month-title-rotator" ); - if ( - monthInfo.mode === "circle" || - (monthInfo.mode === "annotation" && - !monthInfo.showAnnotationOfAllTargets) - ) { - let datasetRotator = headerGroup - .append("text") - .text(datasetName) - .attr( - "transform", - "translate(" + - 3.5 * cellSize + - "," + - datasetNameSize.height + - ")" - ) - .attr("class", "tracker-month-title-rotator") - .style("cursor", "pointer") - .on("click", function (event: any) { - // show next target - if (toNextDataset(renderInfo, monthInfo)) { - // clear circles - clearSelection(chartElements, monthInfo); - - refresh( - canvas, - chartElements, - renderInfo, - monthInfo, - curMonthDate - ); - } - }); - chartElements["rotator"] = datasetRotator; - } + + let datasetRotator = headerGroup + .append("text") + .text(datasetName) + .attr( + "transform", + "translate(" + + 3.5 * cellSize + + "," + + datasetNameSize.height + + ")" + ) + .attr("class", "tracker-month-title-rotator") + .style("cursor", "pointer") + .on("click", function (event: any) { + // show next target + if (toNextDataset(renderInfo, monthInfo)) { + // clear circles + clearSelection(chartElements, monthInfo); + + refresh( + canvas, + chartElements, + renderInfo, + monthInfo, + curMonthDate + ); + } + }); + chartElements["rotator"] = datasetRotator; // value monitor let monitorTextSize = helper.measureTextSize( From ba1a7a229c42a9e36765547efffe657187cb5dd6 Mon Sep 17 00:00:00 2001 From: Lokesh-Bharath Date: Sun, 16 Feb 2025 17:17:12 -0500 Subject: [PATCH 234/277] Resolve scaling issue when navigating between monthly views (#169) --- src/month.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/month.ts b/src/month.ts index a1fa232..baaf7a0 100644 --- a/src/month.ts +++ b/src/month.ts @@ -1088,6 +1088,8 @@ function refresh( ); renderMonthDays(canvas, chartElements, renderInfo, monthInfo, curMonthDate); + + setChartScale(canvas, chartElements, renderInfo); } export function renderMonth( From d8680cefe8040c15dc055590230ab75123343163 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Feb 2025 14:16:54 +0000 Subject: [PATCH 235/277] Bump @types/node from 20.14.11 to 22.13.4 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.14.11 to 22.13.4. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 20 +++++++++++--------- package.json | 2 +- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1f3c997..a5ea75f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", - "@types/node": "^20.14.11", + "@types/node": "^22.13.4", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.31.0", @@ -834,12 +834,13 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.14.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.11.tgz", - "integrity": "sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==", + "version": "22.13.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.4.tgz", + "integrity": "sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==", "dev": true, + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.20.0" } }, "node_modules/@types/resolve": { @@ -2367,10 +2368,11 @@ } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true, + "license": "MIT" }, "node_modules/universalify": { "version": "0.1.2", diff --git a/package.json b/package.json index 692ee55..ead670f 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@types/d3": "^7.4.3", - "@types/node": "^20.14.11", + "@types/node": "^22.13.4", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.31.0", From 7908592d929a32dd0c3cba8759ce9ca585924458 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Feb 2025 03:08:47 +0000 Subject: [PATCH 236/277] Bump rollup from 4.31.0 to 4.34.8 Bumps [rollup](https://github.com/rollup/rollup) from 4.31.0 to 4.34.8. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.31.0...v4.34.8) --- updated-dependencies: - dependency-name: rollup dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 180 +++++++++++++++++++++++++--------------------- package.json | 2 +- 2 files changed, 101 insertions(+), 81 deletions(-) diff --git a/package-lock.json b/package-lock.json index a5ea75f..5de7275 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "@types/node": "^22.13.4", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.31.0", + "rollup": "^4.34.8", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.8.1", "typescript": "^5.7.2" @@ -288,247 +288,266 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz", - "integrity": "sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.8.tgz", + "integrity": "sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz", - "integrity": "sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.8.tgz", + "integrity": "sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz", - "integrity": "sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.8.tgz", + "integrity": "sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz", - "integrity": "sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.8.tgz", + "integrity": "sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz", - "integrity": "sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.8.tgz", + "integrity": "sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz", - "integrity": "sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.8.tgz", + "integrity": "sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz", - "integrity": "sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.8.tgz", + "integrity": "sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz", - "integrity": "sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.8.tgz", + "integrity": "sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz", - "integrity": "sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.8.tgz", + "integrity": "sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz", - "integrity": "sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.8.tgz", + "integrity": "sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz", - "integrity": "sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.8.tgz", + "integrity": "sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz", - "integrity": "sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.8.tgz", + "integrity": "sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz", - "integrity": "sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.8.tgz", + "integrity": "sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz", - "integrity": "sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.8.tgz", + "integrity": "sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz", - "integrity": "sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.8.tgz", + "integrity": "sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz", - "integrity": "sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.8.tgz", + "integrity": "sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz", - "integrity": "sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.8.tgz", + "integrity": "sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz", - "integrity": "sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.8.tgz", + "integrity": "sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz", - "integrity": "sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.8.tgz", + "integrity": "sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -2009,10 +2028,11 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.31.0.tgz", - "integrity": "sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.8.tgz", + "integrity": "sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "1.0.6" }, @@ -2024,25 +2044,25 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.31.0", - "@rollup/rollup-android-arm64": "4.31.0", - "@rollup/rollup-darwin-arm64": "4.31.0", - "@rollup/rollup-darwin-x64": "4.31.0", - "@rollup/rollup-freebsd-arm64": "4.31.0", - "@rollup/rollup-freebsd-x64": "4.31.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.31.0", - "@rollup/rollup-linux-arm-musleabihf": "4.31.0", - "@rollup/rollup-linux-arm64-gnu": "4.31.0", - "@rollup/rollup-linux-arm64-musl": "4.31.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.31.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.31.0", - "@rollup/rollup-linux-riscv64-gnu": "4.31.0", - "@rollup/rollup-linux-s390x-gnu": "4.31.0", - "@rollup/rollup-linux-x64-gnu": "4.31.0", - "@rollup/rollup-linux-x64-musl": "4.31.0", - "@rollup/rollup-win32-arm64-msvc": "4.31.0", - "@rollup/rollup-win32-ia32-msvc": "4.31.0", - "@rollup/rollup-win32-x64-msvc": "4.31.0", + "@rollup/rollup-android-arm-eabi": "4.34.8", + "@rollup/rollup-android-arm64": "4.34.8", + "@rollup/rollup-darwin-arm64": "4.34.8", + "@rollup/rollup-darwin-x64": "4.34.8", + "@rollup/rollup-freebsd-arm64": "4.34.8", + "@rollup/rollup-freebsd-x64": "4.34.8", + "@rollup/rollup-linux-arm-gnueabihf": "4.34.8", + "@rollup/rollup-linux-arm-musleabihf": "4.34.8", + "@rollup/rollup-linux-arm64-gnu": "4.34.8", + "@rollup/rollup-linux-arm64-musl": "4.34.8", + "@rollup/rollup-linux-loongarch64-gnu": "4.34.8", + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.8", + "@rollup/rollup-linux-riscv64-gnu": "4.34.8", + "@rollup/rollup-linux-s390x-gnu": "4.34.8", + "@rollup/rollup-linux-x64-gnu": "4.34.8", + "@rollup/rollup-linux-x64-musl": "4.34.8", + "@rollup/rollup-win32-arm64-msvc": "4.34.8", + "@rollup/rollup-win32-ia32-msvc": "4.34.8", + "@rollup/rollup-win32-x64-msvc": "4.34.8", "fsevents": "~2.3.2" } }, diff --git a/package.json b/package.json index ead670f..c35c8fd 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@types/node": "^22.13.4", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.31.0", + "rollup": "^4.34.8", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.8.1", "typescript": "^5.7.2" From cab3605f2df277c2f6fd551bd1ad708a68bced5e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Feb 2025 03:08:47 +0000 Subject: [PATCH 237/277] Bump typescript from 5.7.2 to 5.7.3 Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.7.2 to 5.7.3. - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/microsoft/TypeScript/compare/v5.7.2...v5.7.3) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 9 +++++---- package.json | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index a5ea75f..bd73464 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "rollup": "^4.31.0", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.8.1", - "typescript": "^5.7.2" + "typescript": "^5.7.3" } }, "node_modules/@codemirror/state": { @@ -2355,10 +2355,11 @@ "license": "0BSD" }, "node_modules/typescript": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", - "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/package.json b/package.json index ead670f..6b97b24 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "rollup": "^4.31.0", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.8.1", - "typescript": "^5.7.2" + "typescript": "^5.7.3" }, "dependencies": { "d3": "^7.9.0", From 2e9421e033e71d5a78765722fe032c0c202328a2 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Thu, 20 Feb 2025 20:35:01 -0700 Subject: [PATCH 238/277] Fix lock file --- package-lock.json | 624 +++++++++++++++++++++++++++++++--------------- 1 file changed, 426 insertions(+), 198 deletions(-) diff --git a/package-lock.json b/package-lock.json index ffeb8e0..0b00ec5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,20 +30,25 @@ } }, "node_modules/@codemirror/state": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.4.0.tgz", - "integrity": "sha512-hm8XshYj5Fo30Bb922QX9hXB/bxOAVH+qaqHBzw5TKa72vOeslyGwd4X8M0c1dJ9JqxlaMceOQ8RsL9tC7gU0A==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.2.tgz", + "integrity": "sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==", "dev": true, - "peer": true + "license": "MIT", + "peer": true, + "dependencies": { + "@marijn/find-cluster-break": "^1.0.0" + } }, "node_modules/@codemirror/view": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.23.0.tgz", - "integrity": "sha512-/51px9N4uW8NpuWkyUX+iam5+PM6io2fm+QmRnzwqBy5v/pwGg9T0kILFtYeum8hjuvENtgsGNKluOfqIICmeQ==", + "version": "6.36.3", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.36.3.tgz", + "integrity": "sha512-N2bilM47QWC8Hnx0rMdDxO2x2ImJ1FvZWXubwKgjeoOrWwEiFrtpA7SFHcuZ+o2Ze2VzbkgbzWVj4+V18LVkeg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@codemirror/state": "^6.4.0", + "@codemirror/state": "^6.5.0", "style-mod": "^4.1.0", "w3c-keyname": "^2.2.4" } @@ -53,6 +58,7 @@ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -66,68 +72,83 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", - "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@marijn/find-cluster-break": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", + "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -141,6 +162,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -150,6 +172,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -163,6 +186,7 @@ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -173,6 +197,7 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-26.0.3.tgz", "integrity": "sha512-2BJcolt43MY+y5Tz47djHkodCC3c1VKVrBDKpVqHKpQ9z9S158kCCqB8NF6/gzxLdNlYW9abB3Ibh+kOWLp8KQ==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "commondir": "^1.0.1", @@ -198,6 +223,7 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.0.tgz", "integrity": "sha512-0FPvAeVUT/zdWoO0jnb/V5BlBsUSNfkIOtFHzMO4H9MOklrmQFY6FduVHKucNb/aTFxvnGhj4MNj/T1oNdDfNg==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "@types/resolve": "1.20.2", @@ -222,6 +248,7 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", "dev": true, + "license": "MIT", "dependencies": { "serialize-javascript": "^6.0.1", "smob": "^1.0.0", @@ -244,6 +271,7 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.2.tgz", "integrity": "sha512-cdtSp154H5sv637uMr1a8OTWB0L1SWDSm1rDGiyfcGcvQ6cuTs4MDk2BVEBGysUWago4OJN4EQZqOTl/QY3Jgg==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.1.0", "resolve": "^1.22.1" @@ -266,14 +294,15 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "picomatch": "^4.0.2" }, "engines": { "node": ">=14.0.0" @@ -558,6 +587,7 @@ "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.8.tgz", "integrity": "sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw==", "dev": true, + "license": "MIT", "dependencies": { "@types/tern": "*" } @@ -567,6 +597,7 @@ "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-array": "*", "@types/d3-axis": "*", @@ -604,13 +635,15 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-axis": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-selection": "*" } @@ -620,6 +653,7 @@ "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-selection": "*" } @@ -628,19 +662,22 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-color": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-contour": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-array": "*", "@types/geojson": "*" @@ -650,19 +687,22 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-dispatch": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz", "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-drag": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-selection": "*" } @@ -671,136 +711,156 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-ease": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-fetch": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-dsv": "*" } }, "node_modules/@types/d3-force": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.9.tgz", - "integrity": "sha512-IKtvyFdb4Q0LWna6ymywQsEYjK/94SGhPrMfEr1TIc5OBeziTi+1jcCvttts8e0UWZIxpasjnQk9MNk/3iS+kA==", - "dev": true + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", + "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-format": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-geo": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/geojson": "*" } }, "node_modules/@types/d3-hierarchy": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.6.tgz", - "integrity": "sha512-qlmD/8aMk5xGorUvTUWHCiumvgaUXYldYjNVOWtYoTYY/L+WwIEAmJxUmTgr9LoGNG0PPAOmqMDJVDPc7DOpPw==", - "dev": true + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", + "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-interpolate": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-color": "*" } }, "node_modules/@types/d3-path": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.0.2.tgz", - "integrity": "sha512-WAIEVlOCdd/NKRYTsqCpOMHQHemKBEINf8YXMYOtXH0GA7SY0dqMB78P3Uhgfy+4X+/Mlw2wDtlETkN6kQUCMA==", - "dev": true + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-polygon": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-quadtree": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-random": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-scale": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", - "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-time": "*" } }, "node_modules/@types/d3-scale-chromatic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz", - "integrity": "sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==", - "dev": true + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-selection": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.10.tgz", - "integrity": "sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg==", - "dev": true + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", + "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-shape": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.6.tgz", - "integrity": "sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", + "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-path": "*" } }, "node_modules/@types/d3-time": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz", - "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==", - "dev": true + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-time-format": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-timer": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-transition": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.8.tgz", - "integrity": "sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", + "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-selection": "*" } @@ -810,6 +870,7 @@ "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-interpolate": "*", "@types/d3-selection": "*" @@ -819,28 +880,32 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/fs-extra": { "version": "8.1.5", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz", "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/geojson": { - "version": "7946.0.13", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.13.tgz", - "integrity": "sha512-bmrNrgKMOhM3WsafmbGmC+6dsF2Z308vLFsQ3a/bT8X8Sv5clVYpPars/UPq+sAaJP+5OoLAYgwbkS5QEJdLUQ==", - "dev": true + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "dev": true, + "license": "MIT" }, "node_modules/@types/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, + "license": "MIT", "dependencies": { "@types/minimatch": "*", "@types/node": "*" @@ -850,7 +915,8 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { "version": "22.13.4", @@ -866,28 +932,32 @@ "version": "1.20.2", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/sprintf-js": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@types/sprintf-js/-/sprintf-js-1.1.4.tgz", "integrity": "sha512-aWK1reDYWxcjgcIIPmQi3u+OQDuYa9b+lr6eIsGWrekJ9vr1NSjr4Eab8oQ1iKuH1ltFHpXGyerAv1a3FMKxzQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/tern": { "version": "0.23.9", "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.9.tgz", "integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "*" } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -896,10 +966,11 @@ } }, "node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -912,6 +983,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -924,6 +996,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -932,13 +1005,15 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -948,6 +1023,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -959,13 +1035,15 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -977,18 +1055,21 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/colorette": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", "engines": { "node": ">= 10" } @@ -997,19 +1078,22 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -1023,6 +1107,7 @@ "version": "7.9.0", "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "license": "ISC", "dependencies": { "d3-array": "3", "d3-axis": "3", @@ -1063,6 +1148,7 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", "dependencies": { "internmap": "1 - 2" }, @@ -1074,6 +1160,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1082,6 +1169,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", @@ -1097,6 +1185,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "license": "ISC", "dependencies": { "d3-path": "1 - 3" }, @@ -1108,6 +1197,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1116,6 +1206,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "license": "ISC", "dependencies": { "d3-array": "^3.2.0" }, @@ -1127,6 +1218,7 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "license": "ISC", "dependencies": { "delaunator": "5" }, @@ -1138,6 +1230,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1146,6 +1239,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-selection": "3" @@ -1158,6 +1252,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "license": "ISC", "dependencies": { "commander": "7", "iconv-lite": "0.6", @@ -1182,6 +1277,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", "engines": { "node": ">=12" } @@ -1190,6 +1286,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "license": "ISC", "dependencies": { "d3-dsv": "1 - 3" }, @@ -1201,6 +1298,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-quadtree": "1 - 3", @@ -1214,14 +1312,16 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/d3-geo": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz", - "integrity": "sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "license": "ISC", "dependencies": { "d3-array": "2.5.0 - 3" }, @@ -1233,6 +1333,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1241,6 +1342,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", "dependencies": { "d3-color": "1 - 3" }, @@ -1252,6 +1354,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1260,6 +1363,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1268,6 +1372,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1276,6 +1381,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1284,6 +1390,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", "dependencies": { "d3-array": "2.10.0 - 3", "d3-format": "1 - 3", @@ -1296,9 +1403,10 @@ } }, "node_modules/d3-scale-chromatic": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz", - "integrity": "sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "license": "ISC", "dependencies": { "d3-color": "1 - 3", "d3-interpolate": "1 - 3" @@ -1311,6 +1419,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1319,6 +1428,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", "dependencies": { "d3-path": "^3.1.0" }, @@ -1330,6 +1440,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", "dependencies": { "d3-array": "2 - 3" }, @@ -1341,6 +1452,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", "dependencies": { "d3-time": "1 - 3" }, @@ -1352,6 +1464,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1360,6 +1473,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", "dependencies": { "d3-color": "1 - 3", "d3-dispatch": "1 - 3", @@ -1378,6 +1492,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", @@ -1394,16 +1509,18 @@ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/delaunator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", - "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", + "license": "ISC", "dependencies": { - "robust-predicates": "^3.0.0" + "robust-predicates": "^3.0.2" } }, "node_modules/dir-glob": { @@ -1411,6 +1528,7 @@ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -1422,41 +1540,46 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" } }, "node_modules/fastq": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", - "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", + "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -1466,6 +1589,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1474,10 +1598,11 @@ } }, "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -1494,6 +1619,7 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -1507,7 +1633,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", @@ -1515,6 +1642,7 @@ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -1528,28 +1656,28 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/glob": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } @@ -1559,6 +1687,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -1571,6 +1700,7 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", "dev": true, + "license": "MIT", "dependencies": { "@types/glob": "^7.1.1", "array-union": "^2.1.0", @@ -1590,6 +1720,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1599,7 +1730,9 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1620,6 +1753,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1631,13 +1765,15 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -1649,6 +1785,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -1657,10 +1794,11 @@ } }, "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -1669,7 +1807,9 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -1679,23 +1819,29 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/internmap": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1706,6 +1852,7 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1715,6 +1862,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -1724,6 +1872,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -1735,13 +1884,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -1751,6 +1902,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1760,6 +1912,7 @@ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "*" } @@ -1768,19 +1921,18 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/jackspeak": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", - "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -1792,6 +1944,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", + "license": "MIT", "engines": { "node": ">= 10.16.0" } @@ -1801,29 +1954,26 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, + "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "engines": { - "node": "14 || >=16.14" - } + "license": "ISC" }, "node_modules/magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, "node_modules/merge2": { @@ -1831,6 +1981,7 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -1840,6 +1991,7 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -1848,11 +2000,25 @@ "node": ">=8.6" } }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -1868,6 +2034,7 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -1877,14 +2044,15 @@ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/obsidian": { - "version": "1.5.1", + "version": "1.8.7", "resolved": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "integrity": "sha512-zXhEivZGOKIBmN2ahr+Shh98RMEM9Ih9RsjD2RLEyVqLwu87mTYYVxLGPfWwsLD06zKUltIGqLpNG9+x5tyILA==", + "integrity": "sha512-AWXhKFmmMiw/qLfcautRoNDqsREC3kLBKmVuiICyZmqcTlS/jGxhOFxJ1z095NfddwD6ZPm2JqmVRRRsB+Vkzg==", "dev": true, "license": "MIT", "dependencies": { @@ -1901,15 +2069,24 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1919,6 +2096,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -1927,13 +2105,15 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-scurry": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -1950,17 +2130,19 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -1984,30 +2166,36 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, + "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -2017,6 +2205,7 @@ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -2025,7 +2214,8 @@ "node_modules/robust-predicates": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", - "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", + "license": "Unlicense" }, "node_modules/rollup": { "version": "4.34.8", @@ -2071,6 +2261,7 @@ "resolved": "https://registry.npmjs.org/rollup-plugin-copy/-/rollup-plugin-copy-3.5.0.tgz", "integrity": "sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA==", "dev": true, + "license": "MIT", "dependencies": { "@types/fs-extra": "^8.0.1", "colorette": "^1.1.0", @@ -2101,6 +2292,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -2108,7 +2300,8 @@ "node_modules/rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" }, "node_modules/safe-buffer": { "version": "5.2.1", @@ -2128,18 +2321,21 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -2149,6 +2345,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -2161,6 +2358,7 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2170,6 +2368,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -2182,21 +2381,24 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/smob": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/smob/-/smob-1.4.1.tgz", - "integrity": "sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==", - "dev": true + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz", + "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==", + "dev": true, + "license": "MIT" }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -2206,6 +2408,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -2214,13 +2417,15 @@ "node_modules/sprintf-js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "license": "BSD-3-Clause" }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -2239,6 +2444,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -2253,6 +2459,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2261,13 +2468,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -2280,6 +2489,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -2296,6 +2506,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -2308,15 +2519,17 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/style-mod": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.0.tgz", - "integrity": "sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz", + "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/supports-preserve-symlinks-flag": { @@ -2324,6 +2537,7 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -2332,10 +2546,11 @@ } }, "node_modules/terser": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", - "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", + "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -2353,13 +2568,15 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -2400,6 +2617,7 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.0.0" } @@ -2409,6 +2627,7 @@ "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/which": { @@ -2416,6 +2635,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -2431,6 +2651,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -2449,6 +2670,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -2466,6 +2688,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2475,6 +2698,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -2489,13 +2713,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -2510,6 +2736,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -2521,7 +2748,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" } } } From bfb869aec304be2c035cf29f65d453ae152cd66d Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Thu, 20 Feb 2025 22:11:54 -0700 Subject: [PATCH 239/277] Add test case for calendar scaling --- examples/TestCalendar.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/examples/TestCalendar.md b/examples/TestCalendar.md index 3fedc19..f9505d4 100644 --- a/examples/TestCalendar.md +++ b/examples/TestCalendar.md @@ -181,3 +181,15 @@ month: Please also check those search targets in markdown files under folder 'diary'. +## Scaling +fitPanelWidth: true +Click forward backward months and verify it stays scaled +``` tracker +searchType: tag +searchTarget: meditation +datasetName: Meditation +fitPanelWidth: true +folder: diary +endDate: 2021-01-31 +month: +``` From 83433974447f273fbce2cc16deb89b43a6167cf5 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Thu, 20 Feb 2025 22:13:44 -0700 Subject: [PATCH 240/277] Fix calendar title when using annotation mode and showAnnotationOfAllTargets When using: ``` mode: annotation showAnnotationOfAllTargets: true ``` The title will be set to "All Targets" and will not be clickable --- src/month.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/month.ts b/src/month.ts index 7ab3826..a394700 100644 --- a/src/month.ts +++ b/src/month.ts @@ -295,6 +295,10 @@ function renderMonthHeader( headerHeight += headerYearSize.height; + if (monthInfo.mode === "annotation" && monthInfo.showAnnotationOfAllTargets && monthInfo.dataset.length > 1) { + datasetName = "All Targets" + } + // dataset rotator let datasetNameSize = helper.measureTextSize( datasetName, @@ -313,8 +317,9 @@ function renderMonthHeader( ")" ) .attr("class", "tracker-month-title-rotator") - .style("cursor", "pointer") - .on("click", function (event: any) { + .style("cursor", "pointer"); + if (!monthInfo.showAnnotationOfAllTargets || monthInfo.mode !== "annotation") { + datasetRotator.on("click", function (event: any) { // show next target if (toNextDataset(renderInfo, monthInfo)) { // clear circles @@ -329,6 +334,7 @@ function renderMonthHeader( ); } }); + } chartElements["rotator"] = datasetRotator; // value monitor From 0f18cf1bf2306eeed3ac8b330fb1cd06271bb53f Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Thu, 20 Feb 2025 22:28:27 -0700 Subject: [PATCH 241/277] Release 1.15.1 --- README.md | 288 ++++++++++++++++++++++--------------------- docs/ReleaseNotes.md | 6 + manifest.json | 20 +-- package-lock.json | 4 +- package.json | 2 +- versions.json | 81 ++++++------ 6 files changed, 207 insertions(+), 194 deletions(-) diff --git a/README.md b/README.md index 4cbad33..ed74e40 100644 --- a/README.md +++ b/README.md @@ -1,141 +1,147 @@ -# Obsidian Tracker Plugin - -![GitHub release](https://img.shields.io/github/v/release/pyrochlore/obsidian-tracker) - - - -This is an [Obsidian](https://obsidian.md/) plugin that helps you collect data from notes and represent it comprehensively. - -[Here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Examples.md) is a table containing simplified examples showing what you can track. - -## What's New - -Version 1.15.0 - -- Fix: Minor spelling error in Examples.md -- Added new expression functions - First and Last -- Updated dates in examples to fix plots -- Respect thresholds in scaled months -- Update dependencies - -Version 1.14.0 - -- Update dependencies -- Prevent overlapping external labels in pie chart -- Enable Stacked Bar Chart - -Version 1.13.3 - -- Update dependencies -- Fix typo in FinanceTracker.md -- Fix typo in TestExpression.md -- Update main.ts - use new format for {{average}} - -Version 1.13.2 - -- Update dependencies -- Fix typo in README.md -- Change streak counts to terminate on falsey values rather than null - -Version 1.13.1 - -- Fix packaging script - -Version 1.13.0 - -- Add support for inline dataview fields (including emoji support for values) -- Update dependencies - -Version 1.12.0 - -- Add aspect ratio parameter for graphs -- Reorganize release notes in readme to be in descending order (latest release first) - -Version 1.11.0 - -- Add support for checkboxes in new properties added in Obsidian 1.4 -- Fix typos in documentation and examples - -Version 1.10.9 - -- Replace tab characters by spaces -- Accept more unicode characters in dvField -- Allow emojis in the folder path -- Fixed bugs - -Version 1.10.8 - -- Fixed startDate/endDate misread as a relative date - -Version 1.10.7 - -- Allow using html image tags as emoji inputs - -Version 1.10.6 - -- Fixed the coloring for missing data in the month view - -Version 1.10.5 - -- Allow using a relative date value in `initMonth` in the month view - -Version 1.10.4 - -- Allow using a regular expression as a key of the parameter `textValueMap` -- Add a parameter `shiftOnlyValueLargerThan` to determine when to do `valueShift` -- Fixed bugs reported by users -- Fixed typo in plugin settings - -Version 1.10.3 - -- Allow using the parameter `fitPanelWidth` with the output type `month` and `pie` -- Fixed the resizing and positioning of the chart tooltip - -Version 1.10.2 - -- Fixed plugin not rendering on some macOS machines - -Version 1.10.1 - -- Fixed 'failed to load plugin' on iOS - -Version 1.10.0 - -- Add annotation mode for month view ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestCalendar.md)) -- Add parameters `xAxisTickInterval`, `yAxisTickInterval`, `xAxisTickLabelFormat` and `yAxisTickLabelFormat` for the line and bar chart ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestAxisIntervalAndFormat.md)) -- Allow using regular expression in parameter `dateFormatPrefix` and `dateFormatSuffix` ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md)) -- Add parameters `file`, `specifiedFilesOnly`, `fileContainsLinkedFiles`, and `fileMultiplierAfterLink` to retrieve data from specified files ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestSpecifiedFiles.md)) -- Add a parameter `textValueMap` to convert texts or emojis to specified values ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTextValueMap.md)) -- Fixed bugs -- Enhanced error messages - -## !!! Breaking Changes !!! - -From version 1.9.0, template variables, e.g. '{{sum}}', are deprecated. Instead, Tracker provide operators (+, -, *, /, %) and functions (dataset(), sum(), maxStreak(), ......etc) to help us do data processing. For users having code blocks from previous version, please replace '{{sum}}' by '{{sum()}}' or '{{sum(1)}}' by '{{sum(dataset(1))}}'. More information about the new expressions could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md). - -## Usage - -1. Have some targets you want to track in daily notes. -2. Add a new note for displaying the tracker. -3. Add tracker code blocks manually ([examples](https://github.com/pyrochlore/obsidian-tracker/tree/master/examples)) or using [commands](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Commands.md). -4. Switch the document view mode to 'Preview', then the code block will get rendered. - -For more use cases, please download and open the [examples](https://github.com/pyrochlore/obsidian-tracker/tree/master/examples) folder in obsidian with this plugin installed and enabled. - -## More Details You May Want to Know - -- [Installation](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Installation.md): Install the plugin from Obsidian or install it manually -- [Concepts](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Concepts.md): Explain how this plugin works and what to setup - - [Target Evaluation](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/TargetEvaluation.md) - - [Input Parameters](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/InputParameters.md) - - [Expressions](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md) -- [Examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Examples.md) -- [Plugin Settings](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Settings.md) -- [Release Notes](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/ReleaseNotes.md) -- [Road Map](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/RoadMap.md) -- [Frequently Asked Questions](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Questions.md) - -## Support - -- If you like this plugin or want to support further development, you can [Buy Me a Coffee](https://www.buymeacoffee.com/pyrochlore). -- Please report bugs and request features in [GitHub Issues](https://github.com/pyrochlore/obsidian-tracker/issues) +# Obsidian Tracker Plugin + +![GitHub release](https://img.shields.io/github/v/release/pyrochlore/obsidian-tracker) + + + +This is an [Obsidian](https://obsidian.md/) plugin that helps you collect data from notes and represent it comprehensively. + +[Here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Examples.md) is a table containing simplified examples showing what you can track. + +## What's New + +Version 1.15.1 + +- Fix: Added DatasetName as title for calendar in annotation mode +- Fix: Resolve scaling issue when navigating between monthly views +- Update dependencies + +Version 1.15.0 + +- Fix: Minor spelling error in Examples.md +- Added new expression functions - First and Last +- Updated dates in examples to fix plots +- Respect thresholds in scaled months +- Update dependencies + +Version 1.14.0 + +- Update dependencies +- Prevent overlapping external labels in pie chart +- Enable Stacked Bar Chart + +Version 1.13.3 + +- Update dependencies +- Fix typo in FinanceTracker.md +- Fix typo in TestExpression.md +- Update main.ts - use new format for {{average}} + +Version 1.13.2 + +- Update dependencies +- Fix typo in README.md +- Change streak counts to terminate on falsey values rather than null + +Version 1.13.1 + +- Fix packaging script + +Version 1.13.0 + +- Add support for inline dataview fields (including emoji support for values) +- Update dependencies + +Version 1.12.0 + +- Add aspect ratio parameter for graphs +- Reorganize release notes in readme to be in descending order (latest release first) + +Version 1.11.0 + +- Add support for checkboxes in new properties added in Obsidian 1.4 +- Fix typos in documentation and examples + +Version 1.10.9 + +- Replace tab characters by spaces +- Accept more unicode characters in dvField +- Allow emojis in the folder path +- Fixed bugs + +Version 1.10.8 + +- Fixed startDate/endDate misread as a relative date + +Version 1.10.7 + +- Allow using html image tags as emoji inputs + +Version 1.10.6 + +- Fixed the coloring for missing data in the month view + +Version 1.10.5 + +- Allow using a relative date value in `initMonth` in the month view + +Version 1.10.4 + +- Allow using a regular expression as a key of the parameter `textValueMap` +- Add a parameter `shiftOnlyValueLargerThan` to determine when to do `valueShift` +- Fixed bugs reported by users +- Fixed typo in plugin settings + +Version 1.10.3 + +- Allow using the parameter `fitPanelWidth` with the output type `month` and `pie` +- Fixed the resizing and positioning of the chart tooltip + +Version 1.10.2 + +- Fixed plugin not rendering on some macOS machines + +Version 1.10.1 + +- Fixed 'failed to load plugin' on iOS + +Version 1.10.0 + +- Add annotation mode for month view ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestCalendar.md)) +- Add parameters `xAxisTickInterval`, `yAxisTickInterval`, `xAxisTickLabelFormat` and `yAxisTickLabelFormat` for the line and bar chart ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestAxisIntervalAndFormat.md)) +- Allow using regular expression in parameter `dateFormatPrefix` and `dateFormatSuffix` ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDateFormats.md)) +- Add parameters `file`, `specifiedFilesOnly`, `fileContainsLinkedFiles`, and `fileMultiplierAfterLink` to retrieve data from specified files ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestSpecifiedFiles.md)) +- Add a parameter `textValueMap` to convert texts or emojis to specified values ([examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestTextValueMap.md)) +- Fixed bugs +- Enhanced error messages + +## !!! Breaking Changes !!! + +From version 1.9.0, template variables, e.g. '{{sum}}', are deprecated. Instead, Tracker provide operators (+, -, *, /, %) and functions (dataset(), sum(), maxStreak(), ......etc) to help us do data processing. For users having code blocks from previous version, please replace '{{sum}}' by '{{sum()}}' or '{{sum(1)}}' by '{{sum(dataset(1))}}'. More information about the new expressions could be found [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md). + +## Usage + +1. Have some targets you want to track in daily notes. +2. Add a new note for displaying the tracker. +3. Add tracker code blocks manually ([examples](https://github.com/pyrochlore/obsidian-tracker/tree/master/examples)) or using [commands](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Commands.md). +4. Switch the document view mode to 'Preview', then the code block will get rendered. + +For more use cases, please download and open the [examples](https://github.com/pyrochlore/obsidian-tracker/tree/master/examples) folder in obsidian with this plugin installed and enabled. + +## More Details You May Want to Know + +- [Installation](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Installation.md): Install the plugin from Obsidian or install it manually +- [Concepts](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Concepts.md): Explain how this plugin works and what to setup + - [Target Evaluation](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/TargetEvaluation.md) + - [Input Parameters](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/InputParameters.md) + - [Expressions](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Expressions.md) +- [Examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Examples.md) +- [Plugin Settings](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Settings.md) +- [Release Notes](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/ReleaseNotes.md) +- [Road Map](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/RoadMap.md) +- [Frequently Asked Questions](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Questions.md) + +## Support + +- If you like this plugin or want to support further development, you can [Buy Me a Coffee](https://www.buymeacoffee.com/pyrochlore). +- Please report bugs and request features in [GitHub Issues](https://github.com/pyrochlore/obsidian-tracker/issues) diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index 4ddb249..ad9a9b5 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,11 @@ # Release Notes +## 1.15.1 + +- Fix: Added DatasetName as title for calendar in annotation mode +- Fix: Resolve scaling issue when navigating between monthly views +- Update dependencies + ## 1.15.0 - Fix: Minor spelling error in Examples.md diff --git a/manifest.json b/manifest.json index c565b1f..8046462 100644 --- a/manifest.json +++ b/manifest.json @@ -1,10 +1,10 @@ -{ - "id": "obsidian-tracker", - "name": "Tracker", - "version": "1.15.0", - "minAppVersion": "0.9.12", - "description": "A plugin tracks occurrences and numbers in your notes", - "author": "pyrochlore", - "authorUrl": "", - "isDesktopOnly": false -} +{ + "id": "obsidian-tracker", + "name": "Tracker", + "version": "1.15.1", + "minAppVersion": "0.9.12", + "description": "A plugin tracks occurrences and numbers in your notes", + "author": "pyrochlore", + "authorUrl": "", + "isDesktopOnly": false +} diff --git a/package-lock.json b/package-lock.json index 0b00ec5..2544d0f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "obsidian-tracker", - "version": "1.15.0", + "version": "1.15.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "obsidian-tracker", - "version": "1.15.0", + "version": "1.15.1", "license": "MIT", "dependencies": { "d3": "^7.9.0", diff --git a/package.json b/package.json index 954ddf2..d0e9153 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.15.0", + "version": "1.15.1", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index 4c7a502..2223ef4 100644 --- a/versions.json +++ b/versions.json @@ -1,40 +1,41 @@ -{ - "1.0.0": "0.9.12", - "1.0.1": "0.9.12", - "1.0.2": "0.9.12", - "1.1.0": "0.9.12", - "1.2.0": "0.9.12", - "1.2.1": "0.9.12", - "1.3.0": "0.9.12", - "1.4.0": "0.9.12", - "1.4.1": "0.9.12", - "1.5.0": "0.9.12", - "1.5.1": "0.9.12", - "1.6.0": "0.9.12", - "1.6.1": "0.9.12", - "1.7.0": "0.9.12", - "1.8.0": "0.9.12", - "1.8.1": "0.9.12", - "1.8.2": "0.9.12", - "1.9.0": "0.9.12", - "1.9.1": "0.9.12", - "1.9.2": "0.9.12", - "1.10.0": "0.9.12", - "1.10.1": "0.9.12", - "1.10.2": "0.9.12", - "1.10.3": "0.9.12", - "1.10.4": "0.9.12", - "1.10.5": "0.9.12", - "1.10.6": "0.9.12", - "1.10.7": "0.9.12", - "1.10.8": "0.9.12", - "1.10.9": "0.9.12", - "1.11.0": "0.9.12", - "1.12.0": "0.9.12", - "1.13.0": "0.9.12", - "1.13.1": "0.9.12", - "1.13.2": "0.9.12", - "1.13.3": "0.9.12", - "1.14.0": "0.9.12", - "1.15.0": "0.9.12" -} +{ + "1.0.0": "0.9.12", + "1.0.1": "0.9.12", + "1.0.2": "0.9.12", + "1.1.0": "0.9.12", + "1.2.0": "0.9.12", + "1.2.1": "0.9.12", + "1.3.0": "0.9.12", + "1.4.0": "0.9.12", + "1.4.1": "0.9.12", + "1.5.0": "0.9.12", + "1.5.1": "0.9.12", + "1.6.0": "0.9.12", + "1.6.1": "0.9.12", + "1.7.0": "0.9.12", + "1.8.0": "0.9.12", + "1.8.1": "0.9.12", + "1.8.2": "0.9.12", + "1.9.0": "0.9.12", + "1.9.1": "0.9.12", + "1.9.2": "0.9.12", + "1.10.0": "0.9.12", + "1.10.1": "0.9.12", + "1.10.2": "0.9.12", + "1.10.3": "0.9.12", + "1.10.4": "0.9.12", + "1.10.5": "0.9.12", + "1.10.6": "0.9.12", + "1.10.7": "0.9.12", + "1.10.8": "0.9.12", + "1.10.9": "0.9.12", + "1.11.0": "0.9.12", + "1.12.0": "0.9.12", + "1.13.0": "0.9.12", + "1.13.1": "0.9.12", + "1.13.2": "0.9.12", + "1.13.3": "0.9.12", + "1.14.0": "0.9.12", + "1.15.0": "0.9.12", + "1.15.1": "0.9.12" +} From 9f4e60726d72323aeee30659e47ec02bc935cdc8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Mar 2025 13:15:55 +0000 Subject: [PATCH 242/277] Bump @rollup/plugin-node-resolve from 16.0.0 to 16.0.1 Bumps [@rollup/plugin-node-resolve](https://github.com/rollup/plugins/tree/HEAD/packages/node-resolve) from 16.0.0 to 16.0.1. - [Changelog](https://github.com/rollup/plugins/blob/master/packages/node-resolve/CHANGELOG.md) - [Commits](https://github.com/rollup/plugins/commits/node-resolve-v16.0.1/packages/node-resolve) --- updated-dependencies: - dependency-name: "@rollup/plugin-node-resolve" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2544d0f..9a6873d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ }, "devDependencies": { "@rollup/plugin-commonjs": "^26.0.3", - "@rollup/plugin-node-resolve": "^16.0.0", + "@rollup/plugin-node-resolve": "^16.0.1", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.1.2", "@types/d3": "^7.4.3", @@ -219,9 +219,9 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.0.tgz", - "integrity": "sha512-0FPvAeVUT/zdWoO0jnb/V5BlBsUSNfkIOtFHzMO4H9MOklrmQFY6FduVHKucNb/aTFxvnGhj4MNj/T1oNdDfNg==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.1.tgz", + "integrity": "sha512-tk5YCxJWIG81umIvNkSod2qK5KyQW19qcBF/B78n1bjtOON6gzKoVeSzAE8yHCZEDmqkHKkxplExA8KzdJLJpA==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index d0e9153..4ccad55 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "license": "MIT", "devDependencies": { "@rollup/plugin-commonjs": "^26.0.3", - "@rollup/plugin-node-resolve": "^16.0.0", + "@rollup/plugin-node-resolve": "^16.0.1", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.1.2", "@types/d3": "^7.4.3", From c9ceae9d7d7bf122477cd0113ca9682b70d564d2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Apr 2025 14:13:11 +0000 Subject: [PATCH 243/277] Bump typescript from 5.7.3 to 5.8.3 Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.7.3 to 5.8.3. - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml) - [Commits](https://github.com/microsoft/TypeScript/commits) --- updated-dependencies: - dependency-name: typescript dependency-version: 5.8.3 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2544d0f..7e40d4f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "rollup": "^4.34.8", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.8.1", - "typescript": "^5.7.3" + "typescript": "^5.8.3" } }, "node_modules/@codemirror/state": { @@ -2592,9 +2592,9 @@ "license": "0BSD" }, "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, "license": "Apache-2.0", "bin": { diff --git a/package.json b/package.json index d0e9153..42811c5 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "rollup": "^4.34.8", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.8.1", - "typescript": "^5.7.3" + "typescript": "^5.8.3" }, "dependencies": { "d3": "^7.9.0", From 0e0659c163bb2c4d0ed4b18a147a943fe5bb8db2 Mon Sep 17 00:00:00 2001 From: Lokesh-Bharath Date: Sat, 12 Apr 2025 18:13:39 -0400 Subject: [PATCH 244/277] Adding thresholdType parameter to calendars to allow thresholds of LessThan and GreaterThan type --- docs/InputParameters.md | 1 + examples/TestCalendar.md | 20 ++++++++++++++++++++ src/data.ts | 7 +++++++ src/month.ts | 35 +++++++++++++++++++++++++++-------- src/parsing.ts | 30 +++++++++++++++++++++++++++++- 5 files changed, 84 insertions(+), 9 deletions(-) diff --git a/docs/InputParameters.md b/docs/InputParameters.md index 1683310..52fea28 100644 --- a/docs/InputParameters.md +++ b/docs/InputParameters.md @@ -139,6 +139,7 @@ These key-value pairs should be placed under the key `month`. | `dataset` | Index of the dataset of your interest | 1~NT | all indices of non-x searchTarget | | `startWeekOn` | First day of a week ('Sun'\|'Mon') | 1 | 'Sun' | | `threshold` | Threshold to determine showing a circle on a day or not | 1~NT | 0 | +| `thresholdType` | Pick one of the two (GreaterThan\|LessThan) | 2 | GreaterThan | `yMin` | Minimum value | 1~NT | Minimum value of the dataset | | `yMax` | Maximum value | 1~NT | Maximum value of the dataset | | `showCircle` | Circle the day label if the collected value reach the threshold (value > `threshold`) | 1 | true | diff --git a/examples/TestCalendar.md b/examples/TestCalendar.md index f9505d4..d896134 100644 --- a/examples/TestCalendar.md +++ b/examples/TestCalendar.md @@ -70,6 +70,26 @@ month: showSelectedValue: true ``` +### Colored by Threshold and thresholdType +Use parameters threshold and thresholdType - "LessThan" to color the circles +``` tracker +searchType: tag +searchTarget: exercise-pushup +datasetName: PushUp +folder: diary +endDate: 2021-01-31 +month: + startWeekOn: + threshold: 40 + thresholdType: lessthan + color: green + headerMonthColor: orange + dimNotInMonth: false + todayRingColor: orange + selectedRingColor: steelblue + showSelectedValue: true +``` + ### Check minDate, minValue, maxDate, maxValue ``` tracker searchType: tag diff --git a/src/data.ts b/src/data.ts index 3160027..a3d2809 100644 --- a/src/data.ts +++ b/src/data.ts @@ -37,6 +37,11 @@ export enum ValueType { String, } +export enum ThresholdType { + GreaterThan = "greaterthan", + LessThan = "lessthan" +} + export type TextValueMap = { [key: string]: number; }; @@ -860,6 +865,7 @@ export class MonthInfo implements IGraph { dataset: number[]; startWeekOn: string; threshold: number[]; + thresholdType: string[]; yMin: number[]; yMax: number[]; color: string; @@ -896,6 +902,7 @@ export class MonthInfo implements IGraph { this.dataset = []; this.startWeekOn = "Sun"; this.threshold = []; // if value > threshold, will show dot + this.thresholdType = []; this.yMin = []; this.yMax = []; this.color = null; diff --git a/src/month.ts b/src/month.ts index a394700..d538a04 100644 --- a/src/month.ts +++ b/src/month.ts @@ -6,6 +6,7 @@ import { MonthInfo, Dataset, Size, + ThresholdType, Transform, ChartElements, GraphType, @@ -535,7 +536,12 @@ function renderMonthDays( }); if (curDatasetId < 0) curDatasetIndex = 0; let threshold = monthInfo.threshold[curDatasetIndex]; + let thresholdType = monthInfo.thresholdType[curDatasetIndex]; + if(logToConsole){ + console.log(`threshold: ${threshold}, thresholdType: ${thresholdType}`); + } + let curMonth = curMonthDate.month(); // 0~11 let curDaysInMonth = curMonthDate.daysInMonth(); // 28~31 @@ -644,8 +650,15 @@ function renderMonthDays( console.log(curValue); } - const showCircle = curValue != null && curValue > threshold; + let showCircle = curValue != null; + + if(thresholdType === ThresholdType.LessThan){ + showCircle = showCircle && (curValue < threshold); + } else { + showCircle = showCircle && (curValue > threshold); + } + // scaledValue let scaledValue = null; if (monthInfo.circleColorByValue) { @@ -663,14 +676,17 @@ function renderMonthDays( let nextValue = dataset.getValue(curDate, 1); let prevValue = dataset.getValue(curDate, -1); let streakIn = false; - if (curValue !== null && curValue > threshold) { - if (prevValue !== null && prevValue > threshold) { + if (showCircle) { + if (prevValue !== null && ((thresholdType === ThresholdType.LessThan && prevValue + < threshold) || (thresholdType === ThresholdType.GreaterThan && prevValue > threshold))) { streakIn = true; - } + } } + let streakOut = false; - if (curValue !== null && curValue > threshold) { - if (nextValue !== null && nextValue > threshold) { + if (showCircle) { + if (nextValue !== null && ((thresholdType === ThresholdType.LessThan && nextValue + < threshold) || (thresholdType === ThresholdType.GreaterThan && nextValue > threshold))) { streakOut = true; } } @@ -685,7 +701,7 @@ function renderMonthDays( let textAnnotation = ""; if (showAnnotation) { if (!showAnnotationOfAllTargets) { - if (curValue > threshold) { + if (showCircle) { textAnnotation = curAnnotation; } } else { @@ -697,8 +713,11 @@ function renderMonthDays( let v = renderInfo.datasets .getDatasetById(datasetId) .getValue(curDate); + + let ttype = monthInfo.thresholdType[datasetIndex]; let t = monthInfo.threshold[datasetIndex]; - if (v !== null && v > t) { + if (v !== null && ((ttype === ThresholdType.LessThan && v < t) || + (ttype == ThresholdType.GreaterThan && v > t))) { textAnnotation += annotations[datasetIndex]; } } diff --git a/src/parsing.ts b/src/parsing.ts index 9d47feb..d56e514 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -16,6 +16,7 @@ import { Dataset, CustomDatasetInfo, AspectRatio, + ThresholdType } from "./data"; import { TFolder, normalizePath } from "obsidian"; import { parseYaml } from "obsidian"; @@ -1042,7 +1043,7 @@ export function getRenderInfoFromYaml( searchType.filter((t) => t !== SearchType.Table).length > 0 ) { let errorMessage = - "searchType 'table' doestn't work with other types for now"; + "searchType 'table' doesn't work with other types for now"; return errorMessage; } // console.log(searchType); @@ -2088,6 +2089,33 @@ export function getRenderInfoFromYaml( } // console.log(month.threshold); + // thresholdType + let retThresholdType = getStringArray("thresholdType", yamlMonth?.thresholdType); + if (typeof retThresholdType === "string") { + return retThresholdType; + } + month.thresholdType = retThresholdType; + if (month.thresholdType.length === 0) { + for (let indDataset = 0; indDataset < numDataset; indDataset++) { + month.thresholdType.push(ThresholdType.GreaterThan); + } + } + if (month.thresholdType.length !== month.dataset.length) { + const errorMessage = + "The number of inputs of thresholdType and dataset not matched"; + return errorMessage; + } + for(let ind in month.thresholdType) { + if(!Object.values(ThresholdType).includes(month.thresholdType[ind].toLowerCase() as ThresholdType)) { + const errorMessage = + "thresholdType should be either 'GreaterThan' or 'LessThan'"; + return errorMessage; + } else { + month.thresholdType[ind] = month.thresholdType[ind].toLowerCase(); + } + } + // console.log(month.thresholdType); + // yMin let retYMin = getNumberArray("yMin", yamlMonth?.yMin); if (typeof retYMin === "string") { From 2ad96600fbdb4a2a569325244a33c2f7ca0aa4aa Mon Sep 17 00:00:00 2001 From: Lokesh-Bharath <47545252+Lokesh-Bharath@users.noreply.github.com> Date: Tue, 15 Apr 2025 12:30:03 -0400 Subject: [PATCH 245/277] Update the case to "LessThan" in TestCalendar.md --- examples/TestCalendar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/TestCalendar.md b/examples/TestCalendar.md index d896134..77e24ca 100644 --- a/examples/TestCalendar.md +++ b/examples/TestCalendar.md @@ -81,7 +81,7 @@ endDate: 2021-01-31 month: startWeekOn: threshold: 40 - thresholdType: lessthan + thresholdType: LessThan color: green headerMonthColor: orange dimNotInMonth: false From d4b1980638292977512188ee8fdf2ee914914ab8 Mon Sep 17 00:00:00 2001 From: Lokesh-Bharath <47545252+Lokesh-Bharath@users.noreply.github.com> Date: Tue, 15 Apr 2025 12:30:03 -0400 Subject: [PATCH 246/277] Update the case to "LessThan" in TestCalendar.md --- examples/TestCalendar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/TestCalendar.md b/examples/TestCalendar.md index d896134..77e24ca 100644 --- a/examples/TestCalendar.md +++ b/examples/TestCalendar.md @@ -81,7 +81,7 @@ endDate: 2021-01-31 month: startWeekOn: threshold: 40 - thresholdType: lessthan + thresholdType: LessThan color: green headerMonthColor: orange dimNotInMonth: false From 2ee63575b5c99959cab93475534d5698b993ab66 Mon Sep 17 00:00:00 2001 From: Lokesh-Bharath Date: Wed, 30 Apr 2025 13:30:43 -0400 Subject: [PATCH 247/277] Added a new field to allow increasing intensity of circle color with streak length --- docs/InputParameters.md | 3 ++- examples/TestCalendar.md | 15 +++++++++++ src/data.ts | 2 ++ src/month.ts | 56 +++++++++++++++++++++++++++++++--------- src/parsing.ts | 6 +++++ 5 files changed, 69 insertions(+), 13 deletions(-) diff --git a/docs/InputParameters.md b/docs/InputParameters.md index 52fea28..a219a52 100644 --- a/docs/InputParameters.md +++ b/docs/InputParameters.md @@ -139,7 +139,7 @@ These key-value pairs should be placed under the key `month`. | `dataset` | Index of the dataset of your interest | 1~NT | all indices of non-x searchTarget | | `startWeekOn` | First day of a week ('Sun'\|'Mon') | 1 | 'Sun' | | `threshold` | Threshold to determine showing a circle on a day or not | 1~NT | 0 | -| `thresholdType` | Pick one of the two (GreaterThan\|LessThan) | 2 | GreaterThan +| `thresholdType` | Pick one of the two (GreaterThan\|LessThan) | 1 | GreaterThan | `yMin` | Minimum value | 1~NT | Minimum value of the dataset | | `yMax` | Maximum value | 1~NT | Maximum value of the dataset | | `showCircle` | Circle the day label if the collected value reach the threshold (value > `threshold`) | 1 | true | @@ -151,6 +151,7 @@ These key-value pairs should be placed under the key `month`. | `showSelectedRing` | Show/hide a ring on the label of the selected day | 1 | true | | `circleColor` | Color of circles | 1 | '#69b3a2' | | `circleColorByValue` | Display circle colors based on the value | 1 | false | +| `circleColorByStreak` | Display circle colors based on the streak length | 1 | false | | `headerYearColor` | Color of the year text in header | 1 | 'white' | | `headerMonthColor` | Color of the month text in header | 1 | 'white' | | `dividingLineColor` | Color of the dividing line | 1 | '#69b3a2' | diff --git a/examples/TestCalendar.md b/examples/TestCalendar.md index 77e24ca..68705a7 100644 --- a/examples/TestCalendar.md +++ b/examples/TestCalendar.md @@ -69,6 +69,21 @@ month: yMax: 50 showSelectedValue: true ``` +### Colored by Streak +Use parameter circleColorByStreak to increase color intesity with streaklength. This can also be used along with thresholdtype parameter. +``` tracker +searchType: tag +searchTarget: exercise-pushup +datasetName: PushUp +folder: diary +endDate: 2021-01-31 +month: + startWeekOn: + threshold: 30 + color: red + dimNotInMonth: false + circleColorByStreak: true +``` ### Colored by Threshold and thresholdType Use parameters threshold and thresholdType - "LessThan" to color the circles diff --git a/src/data.ts b/src/data.ts index a3d2809..0e45a67 100644 --- a/src/data.ts +++ b/src/data.ts @@ -885,6 +885,7 @@ export class MonthInfo implements IGraph { showSelectedRing: boolean; circleColor: string; circleColorByValue: boolean; + circleColorByStreak: boolean; todayRingColor: string; selectedRingColor: string; @@ -922,6 +923,7 @@ export class MonthInfo implements IGraph { this.showSelectedRing = true; this.circleColor = null; this.circleColorByValue = false; + this.circleColorByStreak = false; this.todayRingColor = ""; // white this.selectedRingColor = "firebrick"; diff --git a/src/month.ts b/src/month.ts index d538a04..6c04c47 100644 --- a/src/month.ts +++ b/src/month.ts @@ -31,6 +31,7 @@ interface DayInfo { showCircle: boolean; streakIn: boolean; streakOut: boolean; + curStreakCount: number; annotation: string; } @@ -394,7 +395,7 @@ function renderMonthHeader( let arrowRight = headerGroup .append("text") .text(">") // pivot at center - .attr("id", "arrowLeft") + .attr("id", "arrowRight") .attr( "transform", "translate(" + @@ -598,6 +599,20 @@ function renderMonthDays( let indCol = 0; let indRow = 0; let ind = 0; + let curStreakCount = 0; + + let streakStartDate = startDate.clone().subtract(1, "days"); + while(curStreakCount < 28) { + let curValue = dataset.getValue(streakStartDate); + if(curValue != null && ((thresholdType === ThresholdType.LessThan && curValue < threshold) + || (thresholdType === ThresholdType.GreaterThan && curValue > threshold))) { + curStreakCount++; + streakStartDate = streakStartDate.subtract(1, "days"); + } else { + break; + } + } + for ( let curDate = startDate.clone(); curDate <= endDate; @@ -683,6 +698,13 @@ function renderMonthDays( } } + if(showCircle) { + curStreakCount != 28? curStreakCount++: curStreakCount; + } + else { + curStreakCount = 0; + } + let streakOut = false; if (showCircle) { if (nextValue !== null && ((thresholdType === ThresholdType.LessThan && nextValue @@ -737,6 +759,7 @@ function renderMonthDays( showCircle: showCircle, streakIn: streakIn, streakOut: streakOut, + curStreakCount: curStreakCount, annotation: textAnnotation, }); @@ -796,14 +819,18 @@ function renderMonthDays( .attr("height", streakHeight) .style("fill", function (d: DayInfo) { if (d.showCircle) { - if (!monthInfo.circleColorByValue) { + if (!(monthInfo.circleColorByValue || monthInfo.circleColorByStreak)) { return streakColor; } - if (d.scaledValue !== null) { + if (monthInfo.circleColorByValue && d.scaledValue !== null) { return d3.interpolateLab( "white", streakColor )(d.scaledValue * 0.8 + 0.2); + } else if(monthInfo.circleColorByStreak && d.curStreakCount > 0){ + return d3.interpolateLab( "white", streakColor)( + Math.log10(d.curStreakCount)/Math.log10(28) * 0.6 + 0.4 + ); } else { return "none"; } @@ -843,14 +870,18 @@ function renderMonthDays( .attr("height", streakHeight) .style("fill", function (d: DayInfo) { if (d.showCircle) { - if (!monthInfo.circleColorByValue) { + if (!(monthInfo.circleColorByValue || monthInfo.circleColorByStreak)) { return streakColor; } - if (d.scaledValue !== null) { + if (monthInfo.circleColorByValue && d.scaledValue !== null) { return d3.interpolateLab( "white", streakColor )(d.scaledValue * 0.8 + 0.2); + } else if(monthInfo.circleColorByStreak && d.curStreakCount > 0){ + return d3.interpolateLab("white", streakColor)( + Math.log10(d.curStreakCount)/Math.log10(28) * 0.6 + 0.4 + ); } else { return "none"; } @@ -890,17 +921,18 @@ function renderMonthDays( }) .style("fill", function (d: DayInfo) { if (d.showCircle) { - if (!monthInfo.circleColorByValue) { + if (!(monthInfo.circleColorByValue || monthInfo.circleColorByStreak)) { return circleColor; } - if (d.scaledValue !== null) { - let scaledColor = d3.interpolateLab( + if (monthInfo.circleColorByValue && d.scaledValue !== null) { + return d3.interpolateLab( "white", circleColor - )(d.scaledValue * 0.8 + 0.2); - // console.log(d.scaledValue); - // console.log(scaledColor); - return scaledColor; + )(d.scaledValue * 0.8 + 0.2); + } else if(monthInfo.circleColorByStreak && d.curStreakCount > 0){ + return d3.interpolateLab( "white", circleColor)( + Math.log10(d.curStreakCount)/Math.log10(28) * 0.6 + 0.4 + ); } else { return "none"; } diff --git a/src/parsing.ts b/src/parsing.ts index d56e514..d47ae35 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -2199,6 +2199,12 @@ export function getRenderInfoFromYaml( } // console.log(month.circleColorByValue); + // circleColorByStreak + if (typeof yamlMonth?.circleColorByStreak === "boolean") { + month.circleColorByStreak = yamlMonth.circleColorByStreak; + } + //console.log(month.circleColorByStreak); + // headerYearColor month.headerYearColor = getStringFromInput( yamlMonth?.headerYearColor, From 4106aa9bbf789ab7c3419e8f19a6cdb0fba75246 Mon Sep 17 00:00:00 2001 From: xy Date: Sat, 10 May 2025 18:08:09 -0700 Subject: [PATCH 248/277] Create new branch to prep for better bar chart display --- docs/InputParameters.md | 1 + examples/TestBarChart.md | 4 ++++ src/data.ts | 2 ++ src/parsing.ts | 8 ++++++++ src/rendering.ts | 22 +++++++++++++++++++++- 5 files changed, 36 insertions(+), 1 deletion(-) diff --git a/docs/InputParameters.md b/docs/InputParameters.md index 1683310..1f3cfe4 100644 --- a/docs/InputParameters.md +++ b/docs/InputParameters.md @@ -103,6 +103,7 @@ These key-value pairs should be placed under the key `bar`. | Key | Description | Number of Values | Default | |:--------|:-------|:-----------:|:------| | `barColor` | Color of bars in the chart | 1~NT | #69b3a2 | +| `xAxisPadding` | Padding to ensure bars are fully displayed | 1~2 | null | | `yAxisLocation` | Corresponding y-axis for the dataset (left\|right) | 1~NT | left | ### Parameters for a Summary diff --git a/examples/TestBarChart.md b/examples/TestBarChart.md index 73c28db..2ae1bdb 100644 --- a/examples/TestBarChart.md +++ b/examples/TestBarChart.md @@ -9,6 +9,7 @@ endDate: 2021-01-05 bar: title: Weight Log yAxisLabel: Weight + xAxisPadding: 12h yAxisUnit: kg yMin: 0 barColor: darkolivegreen @@ -23,6 +24,7 @@ endDate: 2021-01-31 bar: title: Weight Log yAxisLabel: Weight + xAxisPadding: 0.5d yAxisUnit: kg yMin: 0 barColor: brown @@ -37,6 +39,7 @@ endDate: 2021-01-21 bar: title: Sin Wave yAxisLabel: Value + xAxisPadding: 12h barColor: yellow, red, green ``` @@ -49,6 +52,7 @@ endDate: 2021-01-05 bar: title: Sin Square Wave yAxisLabel: Value + xAxisPadding: 12h yMin: 0 barColor: yellow, red, green, blue, orange, white ``` diff --git a/src/data.ts b/src/data.ts index 3160027..b44d9b0 100644 --- a/src/data.ts +++ b/src/data.ts @@ -786,11 +786,13 @@ export class LineInfo extends CommonChartInfo { export class BarInfo extends CommonChartInfo { barColor: string[]; yAxisLocation: string[]; + xAxisPadding: string; constructor() { super(); this.barColor = []; // #69b3a2 this.yAxisLocation = []; // left, for each target + this.xAxisPadding = null; // the string will be converted to Duration (a month is not nesscesary to 30 days) } public GetGraphType() { diff --git a/src/parsing.ts b/src/parsing.ts index 9d47feb..d5ecc95 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -1835,6 +1835,14 @@ export function getRenderInfoFromYaml( bar.yAxisLocation = retYAxisLocation; // console.log(bar.yAxisLocation); + // xAxisPadding + let retXAxisPadding = getStringFromInput( + yamlBar?.xAxisPadding, + null + ); + bar.xAxisPadding = retXAxisPadding; + // console.log(bar.xAxisPadding); + renderInfo.bar.push(bar); } // bar related parameters // console.log(renderInfo.bar); diff --git a/src/rendering.ts b/src/rendering.ts index a530e19..871d99c 100644 --- a/src/rendering.ts +++ b/src/rendering.ts @@ -307,6 +307,16 @@ function renderXAxis( let datasets = renderInfo.datasets; let xDomain = d3.extent(datasets.getDates()); + if (chartInfo instanceof BarInfo && chartInfo.xAxisPadding) { + let xAxisPaddingDuration = helper.parseDurationString( + chartInfo.xAxisPadding + ); + xDomain = [ + xDomain[0].clone().subtract(xAxisPaddingDuration.asHours(), 'hours'), + xDomain[1].clone().add(xAxisPaddingDuration.asHours(), 'hours'), + ]; + } + console.log(xDomain); let xScale = d3 .scaleTime() .domain(xDomain) @@ -954,8 +964,13 @@ function renderBar( .enter() .append("rect") .attr("x", function (p: DataPoint, i: number) { +<<<<<<< Updated upstream if (i === 0) { let portionVisible = currentDiaplayInd + 1 - totalDiaplaySet / 2.0; +======= + if (i === 0 && barInfo.xAxisPadding === null) { + let portionVisible = currBarSet + 1 - totalNumOfBarSets / 2.0; +>>>>>>> Stashed changes if (portionVisible < 1.0) { return ( chartElements.xScale(p.date) - @@ -975,15 +990,20 @@ function renderBar( return yScale(Math.max(p.value, 0)); }) .attr("width", function (p: DataPoint, i: number) { +<<<<<<< Updated upstream if (i === 0) { let portionVisible = currentDiaplayInd + 1 - totalDiaplaySet / 2.0; +======= + if (i === 0 && barInfo.xAxisPadding === null) { + let portionVisible = currBarSet + 1 - totalNumOfBarSets / 2.0; +>>>>>>> Stashed changes if (portionVisible < 0.0) { return 0.0; } else if (portionVisible < 1.0) { return barWidth * portionVisible; } return barWidth; - } else if (i === dataset.getLength() - 1) { + } else if (i === dataset.getLength() - 1 && barInfo.xAxisPadding === null) { let portionVisible = 1.0 - (currentDiaplayInd + 1 - totalDiaplaySet / 2.0); if (portionVisible < 0.0) { From a5a2e2557510ce9fe695b753710eecff76f57a39 Mon Sep 17 00:00:00 2001 From: xy Date: Sat, 10 May 2025 18:32:47 -0700 Subject: [PATCH 249/277] Update logging --- examples/TestBarChart.md | 3 ++- src/rendering.ts | 28 ++++++++++------------------ 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/examples/TestBarChart.md b/examples/TestBarChart.md index 2ae1bdb..118a754 100644 --- a/examples/TestBarChart.md +++ b/examples/TestBarChart.md @@ -24,7 +24,7 @@ endDate: 2021-01-31 bar: title: Weight Log yAxisLabel: Weight - xAxisPadding: 0.5d + xAxisPadding: 12h yAxisUnit: kg yMin: 0 barColor: brown @@ -68,6 +68,7 @@ stack: true bar: title: Sin Square Wave (Stacked) yAxisLabel: Value + xAxisPadding: 12h yMin: 0 barColor: yellow, red, green, blue, orange, black ``` diff --git a/src/rendering.ts b/src/rendering.ts index 871d99c..8f4a711 100644 --- a/src/rendering.ts +++ b/src/rendering.ts @@ -307,16 +307,18 @@ function renderXAxis( let datasets = renderInfo.datasets; let xDomain = d3.extent(datasets.getDates()); - if (chartInfo instanceof BarInfo && chartInfo.xAxisPadding) { + if (chartInfo instanceof BarInfo && chartInfo.xAxisPadding !== null) { let xAxisPaddingDuration = helper.parseDurationString( chartInfo.xAxisPadding ); - xDomain = [ - xDomain[0].clone().subtract(xAxisPaddingDuration.asHours(), 'hours'), - xDomain[1].clone().add(xAxisPaddingDuration.asHours(), 'hours'), - ]; + if (xAxisPaddingDuration !== null) { + xDomain = [ + xDomain[0].clone().subtract(xAxisPaddingDuration.asHours(), 'hours'), + xDomain[1].clone().add(xAxisPaddingDuration.asHours(), 'hours'), + ]; + } } - console.log(xDomain); + // console.log(xDomain); let xScale = d3 .scaleTime() .domain(xDomain) @@ -964,13 +966,8 @@ function renderBar( .enter() .append("rect") .attr("x", function (p: DataPoint, i: number) { -<<<<<<< Updated upstream - if (i === 0) { - let portionVisible = currentDiaplayInd + 1 - totalDiaplaySet / 2.0; -======= if (i === 0 && barInfo.xAxisPadding === null) { - let portionVisible = currBarSet + 1 - totalNumOfBarSets / 2.0; ->>>>>>> Stashed changes + let portionVisible = currentDiaplayInd + 1 - totalDiaplaySet / 2.0; if (portionVisible < 1.0) { return ( chartElements.xScale(p.date) - @@ -990,13 +987,8 @@ function renderBar( return yScale(Math.max(p.value, 0)); }) .attr("width", function (p: DataPoint, i: number) { -<<<<<<< Updated upstream - if (i === 0) { - let portionVisible = currentDiaplayInd + 1 - totalDiaplaySet / 2.0; -======= if (i === 0 && barInfo.xAxisPadding === null) { - let portionVisible = currBarSet + 1 - totalNumOfBarSets / 2.0; ->>>>>>> Stashed changes + let portionVisible = currentDiaplayInd + 1 - totalDiaplaySet / 2.0; if (portionVisible < 0.0) { return 0.0; } else if (portionVisible < 1.0) { From ad5a8a5971c444b2241ce422db4c722da68e59cc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 May 2025 13:58:26 +0000 Subject: [PATCH 250/277] Bump @types/node from 22.13.4 to 22.15.17 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.13.4 to 22.15.17. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 22.15.17 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2544d0f..dd7d304 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.1.2", "@types/d3": "^7.4.3", - "@types/node": "^22.13.4", + "@types/node": "^22.15.17", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.34.8", @@ -919,13 +919,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.13.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.4.tgz", - "integrity": "sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==", + "version": "22.15.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.17.tgz", + "integrity": "sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.20.0" + "undici-types": "~6.21.0" } }, "node_modules/@types/resolve": { @@ -2606,9 +2606,9 @@ } }, "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "dev": true, "license": "MIT" }, diff --git a/package.json b/package.json index d0e9153..e224ff1 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.1.2", "@types/d3": "^7.4.3", - "@types/node": "^22.13.4", + "@types/node": "^22.15.17", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.34.8", From 9caa6637491fc11df13b2c3a0ac880e20d0a9797 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 May 2025 13:59:26 +0000 Subject: [PATCH 251/277] Bump rollup from 4.34.8 to 4.40.2 Bumps [rollup](https://github.com/rollup/rollup) from 4.34.8 to 4.40.2. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.34.8...v4.40.2) --- updated-dependencies: - dependency-name: rollup dependency-version: 4.40.2 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 183 +++++++++++++++++++++++++--------------------- package.json | 2 +- 2 files changed, 100 insertions(+), 85 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2544d0f..cac257d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "@types/node": "^22.13.4", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.34.8", + "rollup": "^4.40.2", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.8.1", "typescript": "^5.7.3" @@ -317,9 +317,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.8.tgz", - "integrity": "sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz", + "integrity": "sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==", "cpu": [ "arm" ], @@ -331,9 +331,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.8.tgz", - "integrity": "sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.2.tgz", + "integrity": "sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==", "cpu": [ "arm64" ], @@ -345,9 +345,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.8.tgz", - "integrity": "sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.2.tgz", + "integrity": "sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==", "cpu": [ "arm64" ], @@ -359,9 +359,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.8.tgz", - "integrity": "sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.2.tgz", + "integrity": "sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==", "cpu": [ "x64" ], @@ -373,9 +373,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.8.tgz", - "integrity": "sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.2.tgz", + "integrity": "sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==", "cpu": [ "arm64" ], @@ -387,9 +387,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.8.tgz", - "integrity": "sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.2.tgz", + "integrity": "sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==", "cpu": [ "x64" ], @@ -401,9 +401,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.8.tgz", - "integrity": "sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.2.tgz", + "integrity": "sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==", "cpu": [ "arm" ], @@ -415,9 +415,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.8.tgz", - "integrity": "sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.2.tgz", + "integrity": "sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==", "cpu": [ "arm" ], @@ -429,9 +429,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.8.tgz", - "integrity": "sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.2.tgz", + "integrity": "sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==", "cpu": [ "arm64" ], @@ -443,9 +443,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.8.tgz", - "integrity": "sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.2.tgz", + "integrity": "sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==", "cpu": [ "arm64" ], @@ -457,9 +457,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.8.tgz", - "integrity": "sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.2.tgz", + "integrity": "sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==", "cpu": [ "loong64" ], @@ -471,9 +471,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.8.tgz", - "integrity": "sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.2.tgz", + "integrity": "sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==", "cpu": [ "ppc64" ], @@ -485,9 +485,23 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.8.tgz", - "integrity": "sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.2.tgz", + "integrity": "sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.2.tgz", + "integrity": "sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==", "cpu": [ "riscv64" ], @@ -499,9 +513,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.8.tgz", - "integrity": "sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.2.tgz", + "integrity": "sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==", "cpu": [ "s390x" ], @@ -513,9 +527,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.8.tgz", - "integrity": "sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.2.tgz", + "integrity": "sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==", "cpu": [ "x64" ], @@ -527,9 +541,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.8.tgz", - "integrity": "sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.2.tgz", + "integrity": "sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==", "cpu": [ "x64" ], @@ -541,9 +555,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.8.tgz", - "integrity": "sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.2.tgz", + "integrity": "sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==", "cpu": [ "arm64" ], @@ -555,9 +569,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.8.tgz", - "integrity": "sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.2.tgz", + "integrity": "sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==", "cpu": [ "ia32" ], @@ -569,9 +583,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.8.tgz", - "integrity": "sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.2.tgz", + "integrity": "sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==", "cpu": [ "x64" ], @@ -877,9 +891,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", "dev": true, "license": "MIT" }, @@ -2218,13 +2232,13 @@ "license": "Unlicense" }, "node_modules/rollup": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.8.tgz", - "integrity": "sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz", + "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.6" + "@types/estree": "1.0.7" }, "bin": { "rollup": "dist/bin/rollup" @@ -2234,25 +2248,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.34.8", - "@rollup/rollup-android-arm64": "4.34.8", - "@rollup/rollup-darwin-arm64": "4.34.8", - "@rollup/rollup-darwin-x64": "4.34.8", - "@rollup/rollup-freebsd-arm64": "4.34.8", - "@rollup/rollup-freebsd-x64": "4.34.8", - "@rollup/rollup-linux-arm-gnueabihf": "4.34.8", - "@rollup/rollup-linux-arm-musleabihf": "4.34.8", - "@rollup/rollup-linux-arm64-gnu": "4.34.8", - "@rollup/rollup-linux-arm64-musl": "4.34.8", - "@rollup/rollup-linux-loongarch64-gnu": "4.34.8", - "@rollup/rollup-linux-powerpc64le-gnu": "4.34.8", - "@rollup/rollup-linux-riscv64-gnu": "4.34.8", - "@rollup/rollup-linux-s390x-gnu": "4.34.8", - "@rollup/rollup-linux-x64-gnu": "4.34.8", - "@rollup/rollup-linux-x64-musl": "4.34.8", - "@rollup/rollup-win32-arm64-msvc": "4.34.8", - "@rollup/rollup-win32-ia32-msvc": "4.34.8", - "@rollup/rollup-win32-x64-msvc": "4.34.8", + "@rollup/rollup-android-arm-eabi": "4.40.2", + "@rollup/rollup-android-arm64": "4.40.2", + "@rollup/rollup-darwin-arm64": "4.40.2", + "@rollup/rollup-darwin-x64": "4.40.2", + "@rollup/rollup-freebsd-arm64": "4.40.2", + "@rollup/rollup-freebsd-x64": "4.40.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.40.2", + "@rollup/rollup-linux-arm-musleabihf": "4.40.2", + "@rollup/rollup-linux-arm64-gnu": "4.40.2", + "@rollup/rollup-linux-arm64-musl": "4.40.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.40.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-musl": "4.40.2", + "@rollup/rollup-linux-s390x-gnu": "4.40.2", + "@rollup/rollup-linux-x64-gnu": "4.40.2", + "@rollup/rollup-linux-x64-musl": "4.40.2", + "@rollup/rollup-win32-arm64-msvc": "4.40.2", + "@rollup/rollup-win32-ia32-msvc": "4.40.2", + "@rollup/rollup-win32-x64-msvc": "4.40.2", "fsevents": "~2.3.2" } }, diff --git a/package.json b/package.json index d0e9153..00a4e86 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@types/node": "^22.13.4", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.34.8", + "rollup": "^4.40.2", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.8.1", "typescript": "^5.7.3" From 6eae711ec9da1b409373cd398ddf1c94826351a9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 May 2025 22:39:00 +0000 Subject: [PATCH 252/277] Bump @rollup/plugin-commonjs from 26.0.3 to 28.0.3 Bumps [@rollup/plugin-commonjs](https://github.com/rollup/plugins/tree/HEAD/packages/commonjs) from 26.0.3 to 28.0.3. - [Changelog](https://github.com/rollup/plugins/blob/master/packages/commonjs/CHANGELOG.md) - [Commits](https://github.com/rollup/plugins/commits/commonjs-v28.0.3/packages/commonjs) --- updated-dependencies: - dependency-name: "@rollup/plugin-commonjs" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 534 ++-------------------------------------------- package.json | 2 +- 2 files changed, 23 insertions(+), 513 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9feef4d..3ff6859 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "sprintf-js": "^1.1.3" }, "devDependencies": { - "@rollup/plugin-commonjs": "^26.0.3", + "@rollup/plugin-commonjs": "^28.0.3", "@rollup/plugin-node-resolve": "^16.0.1", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.1.2", @@ -53,24 +53,6 @@ "w3c-keyname": "^2.2.4" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", @@ -181,30 +163,20 @@ "node": ">= 8" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@rollup/plugin-commonjs": { - "version": "26.0.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-26.0.3.tgz", - "integrity": "sha512-2BJcolt43MY+y5Tz47djHkodCC3c1VKVrBDKpVqHKpQ9z9S158kCCqB8NF6/gzxLdNlYW9abB3Ibh+kOWLp8KQ==", + "version": "28.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.3.tgz", + "integrity": "sha512-pyltgilam1QPdn+Zd9gaCfOLcnjMEJ9gV+bTw6/r73INdvzf1ah9zLIJBm+kW7R6IUFIQ1YO+VqZtYxZNWFPEQ==", "dev": true, "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "commondir": "^1.0.1", "estree-walker": "^2.0.2", - "glob": "^10.4.1", + "fdir": "^6.2.0", "is-reference": "1.2.1", - "magic-string": "^0.30.3" + "magic-string": "^0.30.3", + "picomatch": "^4.0.2" }, "engines": { "node": ">=16.0.0 || 14 >= 14.17" @@ -979,32 +951,6 @@ "node": ">=0.4.0" } }, - "node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -1022,16 +968,6 @@ "dev": true, "license": "MIT" }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", @@ -1052,26 +988,6 @@ "dev": true, "license": "MIT" }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, "node_modules/colorette": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", @@ -1102,21 +1018,6 @@ "dev": true, "license": "MIT" }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/d3": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", @@ -1550,20 +1451,6 @@ "node": ">=8" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", @@ -1598,6 +1485,21 @@ "reusify": "^1.0.4" } }, + "node_modules/fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -1611,23 +1513,6 @@ "node": ">=8" } }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -1675,27 +1560,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -1871,16 +1735,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -1931,29 +1785,6 @@ "@types/estree": "*" } }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, "node_modules/jsep": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", @@ -1973,13 +1804,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, "node_modules/magic-string": { "version": "0.30.17", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", @@ -2027,32 +1851,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/moment": { "version": "2.29.4", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", @@ -2088,13 +1886,6 @@ "wrappy": "1" } }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -2105,16 +1896,6 @@ "node": ">=0.10.0" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", @@ -2122,23 +1903,6 @@ "dev": true, "license": "MIT" }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -2355,42 +2119,6 @@ "randombytes": "^2.1.0" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -2435,110 +2163,6 @@ "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", "license": "BSD-3-Clause" }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/style-mod": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz", @@ -2645,120 +2269,6 @@ "license": "MIT", "peer": true }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index f3198e0..0096868 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "author": "pyrochlore", "license": "MIT", "devDependencies": { - "@rollup/plugin-commonjs": "^26.0.3", + "@rollup/plugin-commonjs": "^28.0.3", "@rollup/plugin-node-resolve": "^16.0.1", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.1.2", From 4910c12bd8b868b829a037d8510f09a8d07caf4d Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Mon, 12 May 2025 19:03:31 -0600 Subject: [PATCH 253/277] Release 1.16.0 --- README.md | 6 + docs/ReleaseNotes.md | 6 + manifest.json | 2 +- package-lock.json | 397 ++++++++++++------------------------------- package.json | 2 +- versions.json | 3 +- 6 files changed, 120 insertions(+), 296 deletions(-) diff --git a/README.md b/README.md index ed74e40..e514299 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,12 @@ This is an [Obsidian](https://obsidian.md/) plugin that helps you collect data f ## What's New +Version 1.16.0 + +- Adding thresholdType parameter to Calendars +- Enable bar chart full-bar display at beginning and end +- Update dependencies + Version 1.15.1 - Fix: Added DatasetName as title for calendar in annotation mode diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index ad9a9b5..56ff980 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,11 @@ # Release Notes +## 1.16.0 + +- Adding thresholdType parameter to Calendars +- Enable bar chart full-bar display at beginning and end +- Update dependencies + ## 1.15.1 - Fix: Added DatasetName as title for calendar in annotation mode diff --git a/manifest.json b/manifest.json index 8046462..ccb0aaa 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.15.1", + "version": "1.16.0", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package-lock.json b/package-lock.json index 3ff6859..d7baae7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "obsidian-tracker", - "version": "1.15.1", + "version": "1.16.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "obsidian-tracker", - "version": "1.15.1", + "version": "1.16.0", "license": "MIT", "dependencies": { "d3": "^7.9.0", @@ -34,18 +34,16 @@ "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.2.tgz", "integrity": "sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "@marijn/find-cluster-break": "^1.0.0" } }, "node_modules/@codemirror/view": { - "version": "6.36.3", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.36.3.tgz", - "integrity": "sha512-N2bilM47QWC8Hnx0rMdDxO2x2ImJ1FvZWXubwKgjeoOrWwEiFrtpA7SFHcuZ+o2Ze2VzbkgbzWVj4+V18LVkeg==", + "version": "6.36.8", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.36.8.tgz", + "integrity": "sha512-yoRo4f+FdnD01fFt4XpfpMCcCAo9QvZOtbrXExn4SqzH32YC6LgzqxfLZw/r6Ge65xyY03mK/UfUqrVw1gFiFg==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "@codemirror/state": "^6.5.0", @@ -58,7 +56,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -73,7 +70,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -83,7 +79,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -93,7 +88,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" @@ -103,15 +97,13 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -122,7 +114,6 @@ "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", "dev": true, - "license": "MIT", "peer": true }, "node_modules/@nodelib/fs.scandir": { @@ -130,7 +121,6 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, - "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -144,7 +134,6 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, - "license": "MIT", "engines": { "node": ">= 8" } @@ -154,7 +143,6 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, - "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -168,7 +156,6 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.3.tgz", "integrity": "sha512-pyltgilam1QPdn+Zd9gaCfOLcnjMEJ9gV+bTw6/r73INdvzf1ah9zLIJBm+kW7R6IUFIQ1YO+VqZtYxZNWFPEQ==", "dev": true, - "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "commondir": "^1.0.1", @@ -195,7 +182,6 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.1.tgz", "integrity": "sha512-tk5YCxJWIG81umIvNkSod2qK5KyQW19qcBF/B78n1bjtOON6gzKoVeSzAE8yHCZEDmqkHKkxplExA8KzdJLJpA==", "dev": true, - "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "@types/resolve": "1.20.2", @@ -220,7 +206,6 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", "dev": true, - "license": "MIT", "dependencies": { "serialize-javascript": "^6.0.1", "smob": "^1.0.0", @@ -243,7 +228,6 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.2.tgz", "integrity": "sha512-cdtSp154H5sv637uMr1a8OTWB0L1SWDSm1rDGiyfcGcvQ6cuTs4MDk2BVEBGysUWago4OJN4EQZqOTl/QY3Jgg==", "dev": true, - "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.1.0", "resolve": "^1.22.1" @@ -270,7 +254,6 @@ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", @@ -296,7 +279,6 @@ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -310,7 +292,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -324,7 +305,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -338,7 +318,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -352,7 +331,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -366,7 +344,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -380,7 +357,6 @@ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -394,7 +370,6 @@ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -408,7 +383,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -422,7 +396,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -436,7 +409,6 @@ "loong64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -450,7 +422,6 @@ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -464,7 +435,6 @@ "riscv64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -478,7 +448,6 @@ "riscv64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -492,7 +461,6 @@ "s390x" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -506,7 +474,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -520,7 +487,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -534,7 +500,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -548,7 +513,6 @@ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -562,7 +526,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -573,7 +536,6 @@ "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.8.tgz", "integrity": "sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw==", "dev": true, - "license": "MIT", "dependencies": { "@types/tern": "*" } @@ -583,7 +545,6 @@ "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", "dev": true, - "license": "MIT", "dependencies": { "@types/d3-array": "*", "@types/d3-axis": "*", @@ -621,15 +582,13 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/d3-axis": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", "dev": true, - "license": "MIT", "dependencies": { "@types/d3-selection": "*" } @@ -639,7 +598,6 @@ "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", "dev": true, - "license": "MIT", "dependencies": { "@types/d3-selection": "*" } @@ -648,22 +606,19 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/d3-color": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/d3-contour": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", "dev": true, - "license": "MIT", "dependencies": { "@types/d3-array": "*", "@types/geojson": "*" @@ -673,22 +628,19 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/d3-dispatch": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz", "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/d3-drag": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/d3-selection": "*" } @@ -697,22 +649,19 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/d3-ease": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/d3-fetch": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", "dev": true, - "license": "MIT", "dependencies": { "@types/d3-dsv": "*" } @@ -721,22 +670,19 @@ "version": "3.0.10", "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/d3-format": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/d3-geo": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/geojson": "*" } @@ -745,15 +691,13 @@ "version": "3.1.7", "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/d3-interpolate": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", "dev": true, - "license": "MIT", "dependencies": { "@types/d3-color": "*" } @@ -762,36 +706,31 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/d3-polygon": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/d3-quadtree": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/d3-random": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/d3-scale": { "version": "4.0.9", "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", "dev": true, - "license": "MIT", "dependencies": { "@types/d3-time": "*" } @@ -800,22 +739,19 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/d3-selection": { "version": "3.0.11", "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/d3-shape": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", "dev": true, - "license": "MIT", "dependencies": { "@types/d3-path": "*" } @@ -824,29 +760,25 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/d3-time-format": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/d3-timer": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/d3-transition": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", "dev": true, - "license": "MIT", "dependencies": { "@types/d3-selection": "*" } @@ -856,7 +788,6 @@ "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", "dev": true, - "license": "MIT", "dependencies": { "@types/d3-interpolate": "*", "@types/d3-selection": "*" @@ -866,15 +797,13 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/fs-extra": { "version": "8.1.5", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz", "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } @@ -883,15 +812,13 @@ "version": "7946.0.16", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, - "license": "MIT", "dependencies": { "@types/minimatch": "*", "@types/node": "*" @@ -901,15 +828,13 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/node": { "version": "22.15.17", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.17.tgz", "integrity": "sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw==", "dev": true, - "license": "MIT", "dependencies": { "undici-types": "~6.21.0" } @@ -918,32 +843,28 @@ "version": "1.20.2", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/sprintf-js": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@types/sprintf-js/-/sprintf-js-1.1.4.tgz", "integrity": "sha512-aWK1reDYWxcjgcIIPmQi3u+OQDuYa9b+lr6eIsGWrekJ9vr1NSjr4Eab8oQ1iKuH1ltFHpXGyerAv1a3FMKxzQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/tern": { "version": "0.23.9", "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.9.tgz", "integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "*" } }, "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -956,7 +877,6 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -965,15 +885,23 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, "node_modules/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, - "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -985,21 +913,18 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/colorette": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", "engines": { "node": ">= 10" } @@ -1008,21 +933,18 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/d3": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", - "license": "ISC", "dependencies": { "d3-array": "3", "d3-axis": "3", @@ -1063,7 +985,6 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", - "license": "ISC", "dependencies": { "internmap": "1 - 2" }, @@ -1075,7 +996,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", - "license": "ISC", "engines": { "node": ">=12" } @@ -1084,7 +1004,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", - "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", @@ -1100,7 +1019,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", - "license": "ISC", "dependencies": { "d3-path": "1 - 3" }, @@ -1112,7 +1030,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "license": "ISC", "engines": { "node": ">=12" } @@ -1121,7 +1038,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", - "license": "ISC", "dependencies": { "d3-array": "^3.2.0" }, @@ -1133,7 +1049,6 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", - "license": "ISC", "dependencies": { "delaunator": "5" }, @@ -1145,7 +1060,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", - "license": "ISC", "engines": { "node": ">=12" } @@ -1154,7 +1068,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", - "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-selection": "3" @@ -1167,7 +1080,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", - "license": "ISC", "dependencies": { "commander": "7", "iconv-lite": "0.6", @@ -1192,7 +1104,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "license": "BSD-3-Clause", "engines": { "node": ">=12" } @@ -1201,7 +1112,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", - "license": "ISC", "dependencies": { "d3-dsv": "1 - 3" }, @@ -1213,7 +1123,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", - "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-quadtree": "1 - 3", @@ -1227,7 +1136,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", - "license": "ISC", "engines": { "node": ">=12" } @@ -1236,7 +1144,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", - "license": "ISC", "dependencies": { "d3-array": "2.5.0 - 3" }, @@ -1248,7 +1155,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", - "license": "ISC", "engines": { "node": ">=12" } @@ -1257,7 +1163,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "license": "ISC", "dependencies": { "d3-color": "1 - 3" }, @@ -1269,7 +1174,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", - "license": "ISC", "engines": { "node": ">=12" } @@ -1278,7 +1182,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", - "license": "ISC", "engines": { "node": ">=12" } @@ -1287,7 +1190,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", - "license": "ISC", "engines": { "node": ">=12" } @@ -1296,7 +1198,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", - "license": "ISC", "engines": { "node": ">=12" } @@ -1305,7 +1206,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "license": "ISC", "dependencies": { "d3-array": "2.10.0 - 3", "d3-format": "1 - 3", @@ -1321,7 +1221,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", - "license": "ISC", "dependencies": { "d3-color": "1 - 3", "d3-interpolate": "1 - 3" @@ -1334,7 +1233,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", - "license": "ISC", "engines": { "node": ">=12" } @@ -1343,7 +1241,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "license": "ISC", "dependencies": { "d3-path": "^3.1.0" }, @@ -1355,7 +1252,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "license": "ISC", "dependencies": { "d3-array": "2 - 3" }, @@ -1367,7 +1263,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "license": "ISC", "dependencies": { "d3-time": "1 - 3" }, @@ -1379,7 +1274,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "license": "ISC", "engines": { "node": ">=12" } @@ -1388,7 +1282,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", - "license": "ISC", "dependencies": { "d3-color": "1 - 3", "d3-dispatch": "1 - 3", @@ -1407,7 +1300,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", - "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", @@ -1424,7 +1316,6 @@ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1433,7 +1324,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", - "license": "ISC", "dependencies": { "robust-predicates": "^3.0.2" } @@ -1443,7 +1333,6 @@ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, - "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -1455,15 +1344,13 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, - "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -1476,11 +1363,10 @@ } }, "node_modules/fastq": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", - "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "dev": true, - "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -1490,7 +1376,6 @@ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", "dev": true, - "license": "MIT", "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -1505,7 +1390,6 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, - "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1518,7 +1402,6 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, - "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -1532,8 +1415,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/fsevents": { "version": "2.3.3", @@ -1541,7 +1423,6 @@ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -1555,17 +1436,36 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -1578,7 +1478,6 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", "dev": true, - "license": "MIT", "dependencies": { "@types/glob": "^7.1.1", "array-union": "^2.1.0", @@ -1593,65 +1492,17 @@ "node": ">=8" } }, - "node_modules/globby/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/globby/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/globby/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, - "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -1663,7 +1514,6 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -1676,7 +1526,6 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4" } @@ -1687,7 +1536,6 @@ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, - "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -1697,14 +1545,12 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/internmap": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "license": "ISC", "engines": { "node": ">=12" } @@ -1714,7 +1560,6 @@ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, - "license": "MIT", "dependencies": { "hasown": "^2.0.2" }, @@ -1730,7 +1575,6 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1740,7 +1584,6 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -1752,15 +1595,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -1770,7 +1611,6 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1780,7 +1620,6 @@ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "*" } @@ -1789,7 +1628,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", - "license": "MIT", "engines": { "node": ">= 10.16.0" } @@ -1799,7 +1637,6 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -1809,7 +1646,6 @@ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } @@ -1819,7 +1655,6 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 8" } @@ -1829,7 +1664,6 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, - "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -1843,7 +1677,6 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8.6" }, @@ -1851,12 +1684,23 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/moment": { "version": "2.29.4", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", "dev": true, - "license": "MIT", "engines": { "node": "*" } @@ -1864,7 +1708,7 @@ "node_modules/obsidian": { "version": "1.8.7", "resolved": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "integrity": "sha512-AWXhKFmmMiw/qLfcautRoNDqsREC3kLBKmVuiICyZmqcTlS/jGxhOFxJ1z095NfddwD6ZPm2JqmVRRRsB+Vkzg==", + "integrity": "sha512-0yByIRBSLYSpg0PrVhysWyRU55BrsaJl484RmRX2lM4AJ7VVMy/8jC9aj7VfW7D+1Iy4h1iUACGbIqdFjlUo+Q==", "dev": true, "license": "MIT", "dependencies": { @@ -1881,7 +1725,6 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "license": "ISC", "dependencies": { "wrappy": "1" } @@ -1891,7 +1734,6 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1900,15 +1742,13 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -1918,7 +1758,6 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -1944,15 +1783,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, - "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } @@ -1962,7 +1799,6 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, - "license": "MIT", "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", @@ -1979,11 +1815,10 @@ } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, - "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -1992,15 +1827,13 @@ "node_modules/robust-predicates": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", - "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", - "license": "Unlicense" + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { "version": "4.40.2", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz", "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "1.0.7" }, @@ -2040,7 +1873,6 @@ "resolved": "https://registry.npmjs.org/rollup-plugin-copy/-/rollup-plugin-copy-3.5.0.tgz", "integrity": "sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA==", "dev": true, - "license": "MIT", "dependencies": { "@types/fs-extra": "^8.0.1", "colorette": "^1.1.0", @@ -2071,7 +1903,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -2079,8 +1910,7 @@ "node_modules/rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", - "license": "BSD-3-Clause" + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" }, "node_modules/safe-buffer": { "version": "5.2.1", @@ -2100,21 +1930,18 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -2124,7 +1951,6 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -2133,15 +1959,13 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz", "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -2151,7 +1975,6 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -2160,15 +1983,13 @@ "node_modules/sprintf-js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "license": "BSD-3-Clause" + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" }, "node_modules/style-mod": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz", "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==", "dev": true, - "license": "MIT", "peer": true }, "node_modules/supports-preserve-symlinks-flag": { @@ -2176,7 +1997,6 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -2189,7 +2009,6 @@ "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -2207,15 +2026,13 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -2227,15 +2044,13 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" + "dev": true }, "node_modules/typescript": { "version": "5.8.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, - "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -2248,15 +2063,13 @@ "version": "6.21.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4.0.0" } @@ -2266,15 +2079,13 @@ "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", "dev": true, - "license": "MIT", "peer": true }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" + "dev": true } } } diff --git a/package.json b/package.json index 0096868..2796e4a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.15.1", + "version": "1.16.0", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index 2223ef4..2fded29 100644 --- a/versions.json +++ b/versions.json @@ -37,5 +37,6 @@ "1.13.3": "0.9.12", "1.14.0": "0.9.12", "1.15.0": "0.9.12", - "1.15.1": "0.9.12" + "1.15.1": "0.9.12", + "1.16.0": "0.9.12" } From 4312ef77e6560ee2daf8f123d94835d959d20053 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Jun 2025 14:50:22 +0000 Subject: [PATCH 254/277] Bump @rollup/plugin-commonjs from 28.0.3 to 28.0.5 Bumps [@rollup/plugin-commonjs](https://github.com/rollup/plugins/tree/HEAD/packages/commonjs) from 28.0.3 to 28.0.5. - [Changelog](https://github.com/rollup/plugins/blob/master/packages/commonjs/CHANGELOG.md) - [Commits](https://github.com/rollup/plugins/commits/commonjs-v28.0.5/packages/commonjs) --- updated-dependencies: - dependency-name: "@rollup/plugin-commonjs" dependency-version: 28.0.5 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 9 +++++---- package.json | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index d7baae7..c52262a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "sprintf-js": "^1.1.3" }, "devDependencies": { - "@rollup/plugin-commonjs": "^28.0.3", + "@rollup/plugin-commonjs": "^28.0.5", "@rollup/plugin-node-resolve": "^16.0.1", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.1.2", @@ -152,10 +152,11 @@ } }, "node_modules/@rollup/plugin-commonjs": { - "version": "28.0.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.3.tgz", - "integrity": "sha512-pyltgilam1QPdn+Zd9gaCfOLcnjMEJ9gV+bTw6/r73INdvzf1ah9zLIJBm+kW7R6IUFIQ1YO+VqZtYxZNWFPEQ==", + "version": "28.0.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.5.tgz", + "integrity": "sha512-lytLp2JgAMwqJY6ve3OSROXr2XuEYHjnsQN3hmnxC+w11dI91LuUw4Yc1kk2FqKXeMG8psoFejFgK+znoij0cg==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "commondir": "^1.0.1", diff --git a/package.json b/package.json index 2796e4a..da97e45 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "author": "pyrochlore", "license": "MIT", "devDependencies": { - "@rollup/plugin-commonjs": "^28.0.3", + "@rollup/plugin-commonjs": "^28.0.5", "@rollup/plugin-node-resolve": "^16.0.1", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.1.2", From e5c07e958dc4459b3544ebdca4f92f654f699ce0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Jun 2025 23:53:16 +0000 Subject: [PATCH 255/277] Bump rollup from 4.40.2 to 4.43.0 Bumps [rollup](https://github.com/rollup/rollup) from 4.40.2 to 4.43.0. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.40.2...v4.43.0) --- updated-dependencies: - dependency-name: rollup dependency-version: 4.43.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 200 +++++++++++++++++++++++++--------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 90 deletions(-) diff --git a/package-lock.json b/package-lock.json index c52262a..251ae09 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "@types/node": "^22.15.17", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.40.2", + "rollup": "^4.44.0", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.8.1", "typescript": "^5.8.3" @@ -273,260 +273,280 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz", - "integrity": "sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.0.tgz", + "integrity": "sha512-xEiEE5oDW6tK4jXCAyliuntGR+amEMO7HLtdSshVuhFnKTYoeYMyXQK7pLouAJJj5KHdwdn87bfHAR2nSdNAUA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.2.tgz", - "integrity": "sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.44.0.tgz", + "integrity": "sha512-uNSk/TgvMbskcHxXYHzqwiyBlJ/lGcv8DaUfcnNwict8ba9GTTNxfn3/FAoFZYgkaXXAdrAA+SLyKplyi349Jw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.2.tgz", - "integrity": "sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.44.0.tgz", + "integrity": "sha512-VGF3wy0Eq1gcEIkSCr8Ke03CWT+Pm2yveKLaDvq51pPpZza3JX/ClxXOCmTYYq3us5MvEuNRTaeyFThCKRQhOA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.2.tgz", - "integrity": "sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.44.0.tgz", + "integrity": "sha512-fBkyrDhwquRvrTxSGH/qqt3/T0w5Rg0L7ZIDypvBPc1/gzjJle6acCpZ36blwuwcKD/u6oCE/sRWlUAcxLWQbQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.2.tgz", - "integrity": "sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.44.0.tgz", + "integrity": "sha512-u5AZzdQJYJXByB8giQ+r4VyfZP+walV+xHWdaFx/1VxsOn6eWJhK2Vl2eElvDJFKQBo/hcYIBg/jaKS8ZmKeNQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.2.tgz", - "integrity": "sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.44.0.tgz", + "integrity": "sha512-qC0kS48c/s3EtdArkimctY7h3nHicQeEUdjJzYVJYR3ct3kWSafmn6jkNCA8InbUdge6PVx6keqjk5lVGJf99g==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.2.tgz", - "integrity": "sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.44.0.tgz", + "integrity": "sha512-x+e/Z9H0RAWckn4V2OZZl6EmV0L2diuX3QB0uM1r6BvhUIv6xBPL5mrAX2E3e8N8rEHVPwFfz/ETUbV4oW9+lQ==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.2.tgz", - "integrity": "sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.44.0.tgz", + "integrity": "sha512-1exwiBFf4PU/8HvI8s80icyCcnAIB86MCBdst51fwFmH5dyeoWVPVgmQPcKrMtBQ0W5pAs7jBCWuRXgEpRzSCg==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.2.tgz", - "integrity": "sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.44.0.tgz", + "integrity": "sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.2.tgz", - "integrity": "sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.44.0.tgz", + "integrity": "sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.2.tgz", - "integrity": "sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.44.0.tgz", + "integrity": "sha512-xw+FTGcov/ejdusVOqKgMGW3c4+AgqrfvzWEVXcNP6zq2ue+lsYUgJ+5Rtn/OTJf7e2CbgTFvzLW2j0YAtj0Gg==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.2.tgz", - "integrity": "sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.44.0.tgz", + "integrity": "sha512-bKGibTr9IdF0zr21kMvkZT4K6NV+jjRnBoVMt2uNMG0BYWm3qOVmYnXKzx7UhwrviKnmK46IKMByMgvpdQlyJQ==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.2.tgz", - "integrity": "sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.44.0.tgz", + "integrity": "sha512-vV3cL48U5kDaKZtXrti12YRa7TyxgKAIDoYdqSIOMOFBXqFj2XbChHAtXquEn2+n78ciFgr4KIqEbydEGPxXgA==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.2.tgz", - "integrity": "sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.44.0.tgz", + "integrity": "sha512-TDKO8KlHJuvTEdfw5YYFBjhFts2TR0VpZsnLLSYmB7AaohJhM8ctDSdDnUGq77hUh4m/djRafw+9zQpkOanE2Q==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.2.tgz", - "integrity": "sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.44.0.tgz", + "integrity": "sha512-8541GEyktXaw4lvnGp9m84KENcxInhAt6vPWJ9RodsB/iGjHoMB2Pp5MVBCiKIRxrxzJhGCxmNzdu+oDQ7kwRA==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.2.tgz", - "integrity": "sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.44.0.tgz", + "integrity": "sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.2.tgz", - "integrity": "sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.44.0.tgz", + "integrity": "sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.2.tgz", - "integrity": "sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.44.0.tgz", + "integrity": "sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.2.tgz", - "integrity": "sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.44.0.tgz", + "integrity": "sha512-3XJ0NQtMAXTWFW8FqZKcw3gOQwBtVWP/u8TpHP3CRPXD7Pd6s8lLdH3sHWh8vqKCyyiI8xW5ltJScQmBU9j7WA==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.2.tgz", - "integrity": "sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.0.tgz", + "integrity": "sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -795,10 +815,11 @@ } }, "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", - "dev": true + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" }, "node_modules/@types/fs-extra": { "version": "8.1.5", @@ -1831,12 +1852,13 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz", - "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.44.0.tgz", + "integrity": "sha512-qHcdEzLCiktQIfwBq420pn2dP+30uzqYxv9ETm91wdt2R9AFcWfjNAmje4NWlnCIQ5RMTzVf0ZyisOKqHR6RwA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "1.0.7" + "@types/estree": "1.0.8" }, "bin": { "rollup": "dist/bin/rollup" @@ -1846,26 +1868,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.40.2", - "@rollup/rollup-android-arm64": "4.40.2", - "@rollup/rollup-darwin-arm64": "4.40.2", - "@rollup/rollup-darwin-x64": "4.40.2", - "@rollup/rollup-freebsd-arm64": "4.40.2", - "@rollup/rollup-freebsd-x64": "4.40.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.40.2", - "@rollup/rollup-linux-arm-musleabihf": "4.40.2", - "@rollup/rollup-linux-arm64-gnu": "4.40.2", - "@rollup/rollup-linux-arm64-musl": "4.40.2", - "@rollup/rollup-linux-loongarch64-gnu": "4.40.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.40.2", - "@rollup/rollup-linux-riscv64-gnu": "4.40.2", - "@rollup/rollup-linux-riscv64-musl": "4.40.2", - "@rollup/rollup-linux-s390x-gnu": "4.40.2", - "@rollup/rollup-linux-x64-gnu": "4.40.2", - "@rollup/rollup-linux-x64-musl": "4.40.2", - "@rollup/rollup-win32-arm64-msvc": "4.40.2", - "@rollup/rollup-win32-ia32-msvc": "4.40.2", - "@rollup/rollup-win32-x64-msvc": "4.40.2", + "@rollup/rollup-android-arm-eabi": "4.44.0", + "@rollup/rollup-android-arm64": "4.44.0", + "@rollup/rollup-darwin-arm64": "4.44.0", + "@rollup/rollup-darwin-x64": "4.44.0", + "@rollup/rollup-freebsd-arm64": "4.44.0", + "@rollup/rollup-freebsd-x64": "4.44.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.44.0", + "@rollup/rollup-linux-arm-musleabihf": "4.44.0", + "@rollup/rollup-linux-arm64-gnu": "4.44.0", + "@rollup/rollup-linux-arm64-musl": "4.44.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.44.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.44.0", + "@rollup/rollup-linux-riscv64-gnu": "4.44.0", + "@rollup/rollup-linux-riscv64-musl": "4.44.0", + "@rollup/rollup-linux-s390x-gnu": "4.44.0", + "@rollup/rollup-linux-x64-gnu": "4.44.0", + "@rollup/rollup-linux-x64-musl": "4.44.0", + "@rollup/rollup-win32-arm64-msvc": "4.44.0", + "@rollup/rollup-win32-ia32-msvc": "4.44.0", + "@rollup/rollup-win32-x64-msvc": "4.44.0", "fsevents": "~2.3.2" } }, diff --git a/package.json b/package.json index da97e45..3661fa8 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@types/node": "^22.15.17", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.40.2", + "rollup": "^4.44.0", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.8.1", "typescript": "^5.8.3" From bc34897360836439229d79f84a3cc9ff3cd4c45f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Jun 2025 00:04:58 +0000 Subject: [PATCH 256/277] Bump @types/node from 22.15.17 to 24.0.3 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.15.17 to 24.0.3. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 24.0.3 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 20 +++++++++++--------- package.json | 2 +- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 251ae09..2e47913 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.1.2", "@types/d3": "^7.4.3", - "@types/node": "^22.15.17", + "@types/node": "^24.0.3", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.44.0", @@ -853,12 +853,13 @@ "dev": true }, "node_modules/@types/node": { - "version": "22.15.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.17.tgz", - "integrity": "sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw==", + "version": "24.0.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.3.tgz", + "integrity": "sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==", "dev": true, + "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~7.8.0" } }, "node_modules/@types/resolve": { @@ -2083,10 +2084,11 @@ } }, "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "dev": true + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", + "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", + "dev": true, + "license": "MIT" }, "node_modules/universalify": { "version": "0.1.2", diff --git a/package.json b/package.json index 3661fa8..ba36ac3 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.1.2", "@types/d3": "^7.4.3", - "@types/node": "^22.15.17", + "@types/node": "^24.0.3", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.44.0", From a9b05b495dccfc01ca4a862ce83169c25e6c13b2 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Thu, 19 Jun 2025 18:15:53 -0600 Subject: [PATCH 257/277] Release 1.17.0 --- README.md | 5 +++++ docs/ReleaseNotes.md | 5 +++++ manifest.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- versions.json | 3 ++- 6 files changed, 16 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index e514299..af6f918 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,11 @@ This is an [Obsidian](https://obsidian.md/) plugin that helps you collect data f ## What's New +Version 1.17.0 + +- Adding colorByStreak parameter to Calendars allowing for increase color intensity based on streak +- Update dependencies + Version 1.16.0 - Adding thresholdType parameter to Calendars diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index 56ff980..da14099 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,10 @@ # Release Notes +## 1.17.0 + +- Adding colorByStreak parameter to Calendars allowing for increase color intensity based on streak +- Update dependencies + ## 1.16.0 - Adding thresholdType parameter to Calendars diff --git a/manifest.json b/manifest.json index ccb0aaa..557f716 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.16.0", + "version": "1.17.0", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package-lock.json b/package-lock.json index 2e47913..899be75 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "obsidian-tracker", - "version": "1.16.0", + "version": "1.17.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "obsidian-tracker", - "version": "1.16.0", + "version": "1.17.0", "license": "MIT", "dependencies": { "d3": "^7.9.0", diff --git a/package.json b/package.json index ba36ac3..58f2a50 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.16.0", + "version": "1.17.0", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index 2fded29..3e7e34e 100644 --- a/versions.json +++ b/versions.json @@ -38,5 +38,6 @@ "1.14.0": "0.9.12", "1.15.0": "0.9.12", "1.15.1": "0.9.12", - "1.16.0": "0.9.12" + "1.16.0": "0.9.12", + "1.17.0": "0.9.12" } From 81b0dd0ed5e1266818040d8ab25439a1d58c8d96 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Oct 2025 13:49:32 +0000 Subject: [PATCH 258/277] Bump actions/setup-node from 4 to 6 Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 6. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v4...v6) --- updated-dependencies: - dependency-name: actions/setup-node dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/releases.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index 4bace7d..0a30170 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -12,7 +12,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Use Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: '18.x' - name: Build From 105cbdb1793b12d2919319babc4dcea96bca95f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Nov 2025 14:25:23 +0000 Subject: [PATCH 259/277] Bump actions/checkout from 4 to 6 Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/releases.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index 4bace7d..e1f2af1 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -10,7 +10,7 @@ jobs: contents: write runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Use Node.js uses: actions/setup-node@v4 with: From d285fb1efbe9be2b17a387e09b20e8a09d161242 Mon Sep 17 00:00:00 2001 From: Mike Greiner Date: Sat, 20 Dec 2025 16:01:18 -0700 Subject: [PATCH 260/277] Fix #497: Support all days for startWeekOn parameter - Add getDayIndex() helper function supporting abbreviations and full names - Update month and heatmap views to support all 7 days (Sun-Sat) - Add validation with clear error messages - Support case-insensitive input (FRIDAY, friday, Fri all work) - Support full day names (Sunday, Monday, etc.) - Update documentation and add example file --- docs/InputParameters.md | 2 +- examples/TestStartWeekOn.md | 170 ++++++++++++++++++++++++++++++++++++ rollup.config.dev.mjs | 6 +- src/heatmap.ts | 33 +++---- src/helper.ts | 26 ++++++ src/month.ts | 37 ++++---- src/parsing.ts | 28 +++++- 7 files changed, 258 insertions(+), 44 deletions(-) create mode 100644 examples/TestStartWeekOn.md diff --git a/docs/InputParameters.md b/docs/InputParameters.md index 9bcbf54..0ab700d 100644 --- a/docs/InputParameters.md +++ b/docs/InputParameters.md @@ -138,7 +138,7 @@ These key-value pairs should be placed under the key `month`. |:--------|:-------|:-----------:|:------| | `mode` | Pick one mode of the two(circle\|annotation) | 1 | | `dataset` | Index of the dataset of your interest | 1~NT | all indices of non-x searchTarget | -| `startWeekOn` | First day of a week ('Sun'\|'Mon') | 1 | 'Sun' | +| `startWeekOn` | First day of a week ('Sun'\|'Mon'\|'Tue'\|'Wed'\|'Thu'\|'Fri'\|'Sat' or full names like 'Sunday', 'Monday', etc.) | 1 | 'Sun' | | `threshold` | Threshold to determine showing a circle on a day or not | 1~NT | 0 | | `thresholdType` | Pick one of the two (GreaterThan\|LessThan) | 1 | GreaterThan | `yMin` | Minimum value | 1~NT | Minimum value of the dataset | diff --git a/examples/TestStartWeekOn.md b/examples/TestStartWeekOn.md new file mode 100644 index 0000000..428ac6b --- /dev/null +++ b/examples/TestStartWeekOn.md @@ -0,0 +1,170 @@ +# Test: startWeekOn Parameter + +This example demonstrates the `startWeekOn` parameter which allows you to start the week on any day. + +## All Days Supported + +The `startWeekOn` parameter now accepts any day of the week: +- Abbreviations: `Sun`, `Mon`, `Tue`, `Wed`, `Thu`, `Fri`, `Sat` +- Full names: `Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday` +- Case-insensitive: `FRIDAY`, `friday`, `Fri` all work + +## Sunday (Default) + +```tracker +searchType: tag +searchTarget: test +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-31 +month: + startWeekOn: Sun + mode: circle +``` + +## Monday + +```tracker +searchType: tag +searchTarget: test +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-31 +month: + startWeekOn: Mon + mode: circle +``` + +## Tuesday + +```tracker +searchType: tag +searchTarget: test +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-31 +month: + startWeekOn: Tue + mode: circle +``` + +## Wednesday + +```tracker +searchType: tag +searchTarget: test +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-31 +month: + startWeekOn: Wed + mode: circle +``` + +## Thursday + +```tracker +searchType: tag +searchTarget: test +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-31 +month: + startWeekOn: Thu + mode: circle +``` + +## Friday + +```tracker +searchType: tag +searchTarget: test +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-31 +month: + startWeekOn: Fri + mode: circle +``` + +## Saturday + +```tracker +searchType: tag +searchTarget: test +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-31 +month: + startWeekOn: Sat + mode: circle +``` + +## Case Insensitivity + +All of these are equivalent: + +```tracker +searchType: tag +searchTarget: test +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-31 +month: + startWeekOn: FRIDAY + mode: circle +``` + +```tracker +searchType: tag +searchTarget: test +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-31 +month: + startWeekOn: friday + mode: circle +``` + +```tracker +searchType: tag +searchTarget: test +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-31 +month: + startWeekOn: Friday + mode: circle +``` + +## Full Day Names + +You can also use full day names: + +```tracker +searchType: tag +searchTarget: test +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-31 +month: + startWeekOn: Sunday + mode: circle +``` + +## Error Handling + +Invalid values will show a clear error message: + +```tracker +searchType: tag +searchTarget: test +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-31 +month: + startWeekOn: InvalidDay + mode: circle +``` + +**Expected Error:** "Invalid startWeekOn value: 'InvalidDay'. Must be one of: Sun, Mon, Tue, Wed, Thu, Fri, Sat (or full day names like Sunday, Monday, etc.)" diff --git a/rollup.config.dev.mjs b/rollup.config.dev.mjs index 588dcbd..22c50a2 100644 --- a/rollup.config.dev.mjs +++ b/rollup.config.dev.mjs @@ -13,7 +13,11 @@ export default { }, external: ['obsidian'], plugins: [ - typescript(), + typescript({ + tsconfig: 'tsconfig.json', + rootDir: 'src', + outDir: 'examples/.obsidian/plugins/obsidian-tracker' + }), nodeResolve({browser: true}), commonjs(), copy({ diff --git a/src/heatmap.ts b/src/heatmap.ts index 601e618..359db0b 100644 --- a/src/heatmap.ts +++ b/src/heatmap.ts @@ -128,17 +128,16 @@ function renderHeatmapDays( // Prepare data for graph let daysInHeatmapView: Array = []; const dataStartDate = dataset.getStartDate().clone(); - let startDate = dataStartDate - .clone() - .subtract(dataStartDate.day(), "days"); - if (heatmapInfo.startWeekOn.toLowerCase() === "mon") { - startDate = startDate.add(1, "days"); - } + const startDayIndex = helper.getDayIndex(heatmapInfo.startWeekOn); + const currentDayOfWeek = dataStartDate.day(); // 0=Sunday, 1=Monday, etc. + // Calculate days to subtract to get to the start of the week + const daysToSubtract = (currentDayOfWeek - startDayIndex + 7) % 7; + let startDate = dataStartDate.clone().subtract(daysToSubtract, "days"); const dataEndDate = dataset.getEndDate().clone(); - let endDate = dataEndDate.clone().add(7 - dataEndDate.day() - 1, "days"); - if (heatmapInfo.startWeekOn.toLowerCase() === "mon") { - endDate = endDate.add(1, "days"); - } + const endDayOfWeek = dataEndDate.day(); + // Calculate days to add to complete the week (get to Saturday of that week) + const daysToAdd = (6 - endDayOfWeek + startDayIndex) % 7; + let endDate = dataEndDate.clone().add(daysToAdd, "days"); // console.log(startDate.format("YYYY-MM-DD")); // console.log(endDate.format("YYYY-MM-DD")); @@ -150,16 +149,10 @@ function renderHeatmapDays( curDate <= endDate; curDate.add(1, "days") ) { - if (heatmapInfo.startWeekOn.toLowerCase() === "mon") { - indCol = curDate.day() - 1; - if (indCol < 0) { - indCol = 6; - } - indRow = Math.floor(ind / 7); - } else { - indCol = curDate.day(); // 0~6 - indRow = Math.floor(ind / 7); - } + const dayOfWeek = curDate.day(); // 0=Sunday, 1=Monday, etc. + // Calculate column: shift by startDayIndex + indCol = (dayOfWeek - startDayIndex + 7) % 7; + indRow = Math.floor(ind / 7); // curValue and scaledValue let curValue = dataset.getValue(curDate); diff --git a/src/helper.ts b/src/helper.ts index 3c7fd36..3e252b1 100644 --- a/src/helper.ts +++ b/src/helper.ts @@ -332,6 +332,32 @@ export function trimByChar(str: string, char: string) { : str.substring(first, str.length - last); } +/** + * Convert day abbreviation or full name to day index (0-6) + * @param dayAbbr - Day abbreviation or full name: "Sun"/"Sunday", "Mon"/"Monday", etc. + * @returns Day index (0=Sunday, 1=Monday, ..., 6=Saturday) + */ +export function getDayIndex(dayAbbr: string): number { + const dayMap: { [key: string]: number } = { + "sun": 0, + "sunday": 0, + "mon": 1, + "monday": 1, + "tue": 2, + "tuesday": 2, + "wed": 3, + "wednesday": 3, + "thu": 4, + "thursday": 4, + "fri": 5, + "friday": 5, + "sat": 6, + "saturday": 6 + }; + const normalized = dayAbbr.toLowerCase().trim(); + return dayMap[normalized] !== undefined ? dayMap[normalized] : 0; // Default to Sunday +} + export function replaceImgTagByAlt(input: string) { if (input === null) return null; diff --git a/src/month.ts b/src/month.ts index 6c04c47..4d42cfc 100644 --- a/src/month.ts +++ b/src/month.ts @@ -447,7 +447,9 @@ function renderMonthHeader( // week day names let weekdayNames = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; - if (monthInfo.startWeekOn.toLowerCase() === "mon") { + const startDayIndex = helper.getDayIndex(monthInfo.startWeekOn); + // Rotate array so startWeekOn is first + for (let i = 0; i < startDayIndex; i++) { weekdayNames.push(weekdayNames.shift()); } let weekdayNameSize = helper.measureTextSize( @@ -572,17 +574,16 @@ function renderMonthDays( // Start and end const monthStartDate = curMonthDate.clone().startOf("month"); - let startDate = monthStartDate - .clone() - .subtract(monthStartDate.day(), "days"); - if (monthInfo.startWeekOn.toLowerCase() === "mon") { - startDate = startDate.add(1, "days"); - } + const startDayIndex = helper.getDayIndex(monthInfo.startWeekOn); + const currentDayOfWeek = monthStartDate.day(); // 0=Sunday, 1=Monday, etc. + // Calculate days to subtract to get to the start of the week + const daysToSubtract = (currentDayOfWeek - startDayIndex + 7) % 7; + let startDate = monthStartDate.clone().subtract(daysToSubtract, "days"); const monthEndDate = curMonthDate.clone().endOf("month"); - let endDate = monthEndDate.clone().add(7 - monthEndDate.day() - 1, "days"); - if (monthInfo.startWeekOn.toLowerCase() === "mon") { - endDate = endDate.add(1, "days"); - } + const endDayOfWeek = monthEndDate.day(); + // Calculate days to add to complete the week (get to Saturday of that week) + const daysToAdd = (6 - endDayOfWeek + startDayIndex) % 7; + let endDate = monthEndDate.clone().add(daysToAdd, "days"); const dataStartDate = dataset.getStartDate(); const dataEndDate = dataset.getEndDate(); // console.log(monthStartDate.format("YYYY-MM-DD")); @@ -628,16 +629,10 @@ function renderMonthDays( logToConsole = false; // Change this to do dubugging } - if (monthInfo.startWeekOn.toLowerCase() === "mon") { - indCol = curDate.day() - 1; - if (indCol < 0) { - indCol = 6; - } - indRow = Math.floor(ind / 7); - } else { - indCol = curDate.day(); // 0~6 - indRow = Math.floor(ind / 7); - } + const dayOfWeek = curDate.day(); // 0=Sunday, 1=Monday, etc. + // Calculate column: shift by startDayIndex + indCol = (dayOfWeek - startDayIndex + 7) % 7; + indRow = Math.floor(ind / 7); // is this day in this month let isInThisMonth = true; diff --git a/src/parsing.ts b/src/parsing.ts index 516eea8..7754409 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -2065,10 +2065,20 @@ export function getRenderInfoFromYaml( let numDataset = month.dataset.length; // startWeekOn - month.startWeekOn = getStringFromInput( + let startWeekOnValue = getStringFromInput( yamlMonth?.startWeekOn, month.startWeekOn ); + // Validate day abbreviation - supports both abbreviations and full names + if (startWeekOnValue) { + const normalized = startWeekOnValue.toLowerCase().trim(); + const validDays = ["sun", "sunday", "mon", "monday", "tue", "tuesday", "wed", "wednesday", "thu", "thursday", "fri", "friday", "sat", "saturday"]; + if (!validDays.includes(normalized)) { + errorMessage = `Invalid startWeekOn value: "${startWeekOnValue}". Must be one of: Sun, Mon, Tue, Wed, Thu, Fri, Sat (or full day names like Sunday, Monday, etc.)`; + return errorMessage; + } + } + month.startWeekOn = startWeekOnValue; // console.log(month.startWeekOn); // showCircle @@ -2306,6 +2316,22 @@ export function getRenderInfoFromYaml( } } + // startWeekOn + let heatmapStartWeekOnValue = getStringFromInput( + yamlHeatmap?.startWeekOn, + heatmap.startWeekOn + ); + // Validate day abbreviation - supports both abbreviations and full names + if (heatmapStartWeekOnValue) { + const normalized = heatmapStartWeekOnValue.toLowerCase().trim(); + const validDays = ["sun", "sunday", "mon", "monday", "tue", "tuesday", "wed", "wednesday", "thu", "thursday", "fri", "friday", "sat", "saturday"]; + if (!validDays.includes(normalized)) { + errorMessage = `Invalid startWeekOn value: "${heatmapStartWeekOnValue}". Must be one of: Sun, Mon, Tue, Wed, Thu, Fri, Sat (or full day names like Sunday, Monday, etc.)`; + return errorMessage; + } + } + heatmap.startWeekOn = heatmapStartWeekOnValue; + renderInfo.heatmap.push(heatmap); } // console.log(renderInfo.heatmap); From bb3a7daec44841634074b94f7de05c02d0637780 Mon Sep 17 00:00:00 2001 From: Mike Greiner Date: Sat, 20 Dec 2025 18:25:41 -0700 Subject: [PATCH 261/277] Add searchType: frontmatter.exists for tracking field existence MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implements Issue #280: Adds new searchType that tracks days when a frontmatter field exists and is non-empty, regardless of value. Changes: - Add FrontmatterExists to SearchType enum - Implement collectDataFromFrontmatterExists() function - Add validation and parsing support - Update user documentation (Concepts, InputParameters, TargetEvaluation) - Add example usage (TestFrontmatter.md) - Add comprehensive unit tests (12 test cases) - Fix pre-existing bug: .contains() → .includes() in helper.ts - Add testing infrastructure (Jest, mocks, config) - Update README with Development section Testing: - 12 unit tests covering all edge cases (all passing) - Manual testing in Obsidian - Backward compatibility verified Fixes #280 --- README.md | 22 + TESTING.md | 187 + TEST_SETUP.md | 67 + docs/Concepts.md | 2 +- docs/InputParameters.md | 2 +- docs/TargetEvaluation.md | 13 +- examples/TestFrontmatter.md | 17 + jest.config.js | 29 + package-lock.json | 6114 ++++++++++++++++++++++++------- package.json | 8 +- rollup.config.dev.mjs | 6 +- src/collecting.ts | 38 + src/data.ts | 1 + src/helper.ts | 2 +- src/main.ts | 30 +- src/parsing.ts | 4 + test/frontmatter-exists.test.ts | 275 ++ test/mocks/d3.ts | 42 + test/mocks/obsidian.ts | 41 + test/setup.ts | 16 + 20 files changed, 5675 insertions(+), 1241 deletions(-) create mode 100644 TESTING.md create mode 100644 TEST_SETUP.md create mode 100644 jest.config.js create mode 100644 test/frontmatter-exists.test.ts create mode 100644 test/mocks/d3.ts create mode 100644 test/mocks/obsidian.ts create mode 100644 test/setup.ts diff --git a/README.md b/README.md index af6f918..343b1f2 100644 --- a/README.md +++ b/README.md @@ -139,6 +139,27 @@ From version 1.9.0, template variables, e.g. '{{sum}}', are deprecated. Instead, For more use cases, please download and open the [examples](https://github.com/pyrochlore/obsidian-tracker/tree/master/examples) folder in obsidian with this plugin installed and enabled. +## Development + +### Running Tests + +The plugin includes automated unit tests. To run them: + +```bash +npm test # Run all tests +npm run test:watch # Watch mode (re-runs on changes) +npm run test:coverage # Generate coverage report +``` + +See [TESTING.md](TESTING.md) for detailed testing documentation. + +### Building + +```bash +npm run build # Build for production +npm run dev # Build in watch mode for development +``` + ## More Details You May Want to Know - [Installation](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Installation.md): Install the plugin from Obsidian or install it manually @@ -151,6 +172,7 @@ For more use cases, please download and open the [examples](https://github.com/p - [Release Notes](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/ReleaseNotes.md) - [Road Map](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/RoadMap.md) - [Frequently Asked Questions](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/Questions.md) +- [Testing](TESTING.md): How to run and write tests ## Support diff --git a/TESTING.md b/TESTING.md new file mode 100644 index 0000000..3aacda1 --- /dev/null +++ b/TESTING.md @@ -0,0 +1,187 @@ +# Testing Guide + +This document explains how to run tests for the obsidian-tracker plugin. + +## Quick Start + +```bash +npm test +``` + +That's it! The tests will run automatically. + +## Test Commands + +```bash +npm test # Run all tests once +npm run test:watch # Run tests in watch mode (re-runs on file changes) +npm run test:coverage # Run tests with coverage report +``` + +## What Gets Tested + +### Unit Tests + +Unit tests validate core logic without requiring Obsidian to be running. They test: + +- **Data collection functions** - How data is extracted from frontmatter, tags, etc. +- **Parsing functions** - YAML configuration parsing and validation +- **Edge cases** - Empty values, null, undefined, arrays, booleans, etc. + +### Current Test Coverage + +- `test/frontmatter-exists.test.ts` - Tests for the `frontmatter.exists` searchType + - 12 test cases covering all edge cases + - Validates non-empty strings, arrays, booleans, numbers + - Validates empty strings, arrays, null, undefined are rejected + +## Test Structure + +``` +test/ +├── frontmatter-exists.test.ts # Unit tests for frontmatter.exists +├── mocks/ +│ ├── obsidian.ts # Mock Obsidian API +│ └── d3.ts # Mock d3 library +└── setup.ts # Jest setup file +``` + +## Prerequisites + +1. **Node.js** - Version 18+ recommended +2. **npm** - Comes with Node.js +3. **Dependencies** - Run `npm install` first + +## First Time Setup + +```bash +# Install dependencies (including Jest) +npm install + +# Verify tests work +npm test +``` + +If you encounter issues with npm install (e.g., obsidian package integrity errors), see [Troubleshooting](#troubleshooting) below. + +## Writing New Tests + +### Example Test Structure + +```typescript +import { describe, it, expect, beforeEach } from '@jest/globals'; +import { SearchType, Query } from '../src/data'; +import { yourFunction } from '../src/your-module'; + +describe('Your Feature', () => { + let query: Query; + + beforeEach(() => { + // Set up test data + query = new Query(0, SearchType.YourType, 'target'); + }); + + it('should do something', () => { + const result = yourFunction(query); + expect(result).toBe(true); + }); +}); +``` + +### Test File Naming + +- Test files should be named `*.test.ts` or `*.spec.ts` +- Place them in the `test/` directory +- Jest will automatically find and run them + +## Mocking Obsidian API + +Since tests run outside Obsidian, we mock the Obsidian API. See `test/mocks/obsidian.ts` for examples. + +To use mocks: + +```typescript +import type { CachedMetadata } from 'obsidian'; + +const fileCache: CachedMetadata = { + frontmatter: { + field: 'value' + } +}; +``` + +## Troubleshooting + +### npm install fails with obsidian package error + +If you see integrity check errors for the obsidian package: + +```bash +# Clear npm cache +npm cache clean --force + +# Remove node_modules and reinstall +rm -rf node_modules package-lock.json +npm install +``` + +### Tests fail with "Module not found" + +Make sure all dependencies are installed: + +```bash +npm install +``` + +### TypeScript errors in tests + +Check that `ts-jest` is installed: + +```bash +npm install --save-dev ts-jest@29 @types/jest@29 +``` + +## Continuous Integration + +These tests can be run in CI/CD pipelines: + +```yaml +# Example GitHub Actions +- name: Run tests + run: npm test +``` + +## Manual Testing (Obsidian) + +For visual/end-to-end testing, you still need to test in Obsidian: + +1. Build the plugin: `npm run build` +2. Copy to test vault: See `test-deploy.sh` or `TEST_SETUP.md` +3. Enable plugin in Obsidian +4. Test with real notes + +See `docs/dev/issue-497/TESTING_GUIDE.md` for detailed manual testing instructions. + +## Coverage Reports + +Generate coverage reports: + +```bash +npm run test:coverage +``` + +This creates a `coverage/` directory with HTML reports. Open `coverage/lcov-report/index.html` in a browser to view. + +## Best Practices + +1. **Write tests for new features** - Add tests when implementing new searchTypes or features +2. **Test edge cases** - Empty values, null, undefined, arrays, etc. +3. **Keep tests fast** - Unit tests should run in seconds +4. **Mock external dependencies** - Don't require Obsidian or real files +5. **Use descriptive test names** - "should count non-empty strings" not "test1" + +## Questions? + +- See `TEST_SETUP.md` for setup troubleshooting +- Check existing test files for examples +- Review Jest documentation: https://jestjs.io/docs/getting-started diff --git a/TEST_SETUP.md b/TEST_SETUP.md new file mode 100644 index 0000000..f11d630 --- /dev/null +++ b/TEST_SETUP.md @@ -0,0 +1,67 @@ +# Test Setup Guide + +## Quick Start + +Tests are now set up and working! Just run: + +```bash +npm test +``` + +## First Time Setup + +If you're setting up the project for the first time: + +```bash +# Install all dependencies (including Jest) +npm install + +# Run tests to verify everything works +npm test +``` + +## If npm install fails + +If you encounter integrity check errors with the `obsidian` package: + +```bash +# Clear npm cache and reinstall +npm cache clean --force +rm -rf node_modules package-lock.json +npm install +``` + +This should resolve the issue. The npm cache fix worked for us! + +## Test Files Created + +- `test/frontmatter-exists.test.ts` - Comprehensive unit tests for the new feature +- `test/mocks/obsidian.ts` - Mock Obsidian API +- `test/setup.ts` - Jest setup file +- `jest.config.js` - Jest configuration + +## Running Tests + +Once Jest is installed: + +```bash +npm test # Run all tests +npm run test:watch # Watch mode +npm run test:coverage # With coverage +``` + +## What the Tests Cover + +The `frontmatter-exists.test.ts` file tests: +- ✅ Non-empty strings +- ❌ Empty strings +- ❌ Whitespace-only strings +- ✅ Non-empty arrays +- ❌ Empty arrays +- ✅ Boolean true +- ✅ Boolean false +- ✅ Number zero +- ❌ Null values +- ❌ Missing/undefined fields +- ❌ Missing frontmatter +- ✅ Nested fields diff --git a/docs/Concepts.md b/docs/Concepts.md index 159a718..54f9ac6 100644 --- a/docs/Concepts.md +++ b/docs/Concepts.md @@ -6,7 +6,7 @@ This plugin was designed to read code blocks in [YAML format](https://en.wikiped ### Collecting Data -Providing parameters `searchType` and `searchTarget` is the minimum requirement for a successful data collection. `searchType` can be `tag`, `frontmatter`, `wiki`, `dvField`, `table`, `fileMeta`, `task`, or `text`. Then the cooresponding `searchTarget` should be provided according to the specified type. +Providing parameters `searchType` and `searchTarget` is the minimum requirement for a successful data collection. `searchType` can be `tag`, `frontmatter`, `frontmatter.exists`, `wiki`, `dvField`, `table`, `fileMeta`, `task`, or `text`. Then the cooresponding `searchTarget` should be provided according to the specified type. ### Target Evaluation diff --git a/docs/InputParameters.md b/docs/InputParameters.md index 9bcbf54..1538f65 100644 --- a/docs/InputParameters.md +++ b/docs/InputParameters.md @@ -18,7 +18,7 @@ These key-value pairs are placed under the root of the code block. | Key | Description | Number of Values | Default | |:--------|:-------|:-----------:|:------| -| `searchType` | Type of `searchTarget` (tag\|frontmatter\|wiki\|text\|dvField\|table\|fileMeta\|task) | 1~NT | Must be provided | +| `searchType` | Type of `searchTarget` (tag\|frontmatter\|frontmatter.exists\|wiki\|text\|dvField\|table\|fileMeta\|task) | 1~NT | Must be provided | | `searchTarget` | Target to search
[[detail](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/TargetEvaluation.md)] | NT (Number of Targets) | Must be provided | | `folder` | Root path containing notes to search | 1 | Root of this vault | | `file` | Files to include for searching | N | null | diff --git a/docs/TargetEvaluation.md b/docs/TargetEvaluation.md index 40beb65..d9c5bd4 100644 --- a/docs/TargetEvaluation.md +++ b/docs/TargetEvaluation.md @@ -1,6 +1,6 @@ # Target Evaluation -From the [input parameters](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/InputParameters.md) you provided, the search targets dispersed in the notes will be counted or evaluated as a value. Tracker plugin supports eight kinds of `searchType`: `tag`, `frontmatter`, `wiki`, `text`, `table`, `dvField`, `task`, and `fileMeta`, dealing with different types of searching condition. +From the [input parameters](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/InputParameters.md) you provided, the search targets dispersed in the notes will be counted or evaluated as a value. Tracker plugin supports multiple kinds of `searchType`: `tag`, `frontmatter`, `frontmatter.exists`, `wiki`, `text`, `table`, `dvField`, `task`, and `fileMeta`, dealing with different types of searching condition. ## Multiple Targets You can provide multiple search targets in code block by entering an array of targets separated by a comma under parameter `searchType` and `searchTarget`. Each of the targets will be identified in order and then the values in notes will be evaluated and form a dataset indexed by that order in the array (zero-based indexing). @@ -51,6 +51,17 @@ mood: 10
......
\-\-\-
+### searchType: frontmatter.exists + +This search type tracks days when a frontmatter field exists and is non-empty. Unlike `frontmatter`, which tries to parse the value as a number, `frontmatter.exists` simply checks if the field has any value (text, number, boolean, etc.) and counts it as 1 (or the value specified by `constValue`). This is useful for tracking habits or events where you just need to know if something happened, regardless of the value. + +For example, if you have a frontmatter field `meditation: "yes"` or `meditation: "completed"`, using `searchType: frontmatter.exists` with `searchTarget: meditation` will count each day where the field exists and is not empty. + +\-\-\-
+meditation: yes
+......
+\-\-\-
+ ### searchType: wiki This search type helps you count wiki links in articles. For example, [[A]] diff --git a/examples/TestFrontmatter.md b/examples/TestFrontmatter.md index f3eca7c..a08cd8f 100644 --- a/examples/TestFrontmatter.md +++ b/examples/TestFrontmatter.md @@ -65,4 +65,21 @@ month: initMonth: 2021-01 ``` +## Track Field Existence (frontmatter.exists) + +Track days when a frontmatter field exists and is non-empty, regardless of the value. This is useful for habit tracking where you just need to know if something happened. + +``` tracker +searchType: frontmatter.exists +searchTarget: meditation +datasetName: Meditation Days +folder: diary +startDate: 2021-01-01 +endDate: 2021-01-31 +month: + mode: circle +``` + +This will count each day where the `meditation` field exists in the frontmatter, whether it's `meditation: yes`, `meditation: completed`, `meditation: true`, or any other non-empty value. + Please also check those search targets in markdown files under folder 'diary'. \ No newline at end of file diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000..f4a88d8 --- /dev/null +++ b/jest.config.js @@ -0,0 +1,29 @@ +module.exports = { + testEnvironment: 'node', + roots: ['/test'], + testMatch: ['**/__tests__/**/*.ts', '**/?(*.)+(spec|test).ts'], + transform: { + '^.+\\.ts$': ['ts-jest', { + tsconfig: { + esModuleInterop: true, + allowSyntheticDefaultImports: true, + module: 'commonjs', + }, + }], + }, + moduleNameMapper: { + '^obsidian$': '/test/mocks/obsidian.ts', + // Mock d3 and other ES module dependencies + '^d3$': '/test/mocks/d3.ts', + }, + collectCoverageFrom: [ + 'src/**/*.ts', + '!src/**/*.d.ts', + ], + setupFilesAfterEnv: ['/test/setup.ts'], + moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json'], + // Transform ES modules in node_modules + transformIgnorePatterns: [ + 'node_modules/(?!(d3|d3-.*|moment)/)', + ], +}; diff --git a/package-lock.json b/package-lock.json index 899be75..d284734 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,1664 +20,4481 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.1.2", "@types/d3": "^7.4.3", + "@types/jest": "^29.5.14", "@types/node": "^24.0.3", "@types/sprintf-js": "^1.1.4", + "jest": "^29.7.0", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.44.0", "rollup-plugin-copy": "^3.5.0", + "ts-jest": "^29.4.6", "tslib": "^2.8.1", "typescript": "^5.8.3" } }, - "node_modules/@codemirror/state": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.2.tgz", - "integrity": "sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==", + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "@marijn/find-cluster-break": "^1.0.0" + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@codemirror/view": { - "version": "6.36.8", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.36.8.tgz", - "integrity": "sha512-yoRo4f+FdnD01fFt4XpfpMCcCAo9QvZOtbrXExn4SqzH32YC6LgzqxfLZw/r6Ge65xyY03mK/UfUqrVw1gFiFg==", + "node_modules/@babel/compat-data": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", "dev": true, - "peer": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "dev": true, + "license": "MIT", "dependencies": { - "@codemirror/state": "^6.5.0", - "style-mod": "^4.1.0", - "w3c-keyname": "^2.2.4" + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "node_modules/@babel/generator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@marijn/find-cluster-break": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", - "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "dev": true, - "peer": true + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=6.9.0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=6.9.0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "dev": true, + "license": "MIT", "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" } }, - "node_modules/@rollup/plugin-commonjs": { - "version": "28.0.5", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.5.tgz", - "integrity": "sha512-lytLp2JgAMwqJY6ve3OSROXr2XuEYHjnsQN3hmnxC+w11dI91LuUw4Yc1kk2FqKXeMG8psoFejFgK+znoij0cg==", + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "dev": true, "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "commondir": "^1.0.1", - "estree-walker": "^2.0.2", - "fdir": "^6.2.0", - "is-reference": "1.2.1", - "magic-string": "^0.30.3", - "picomatch": "^4.0.2" + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=16.0.0 || 14 >= 14.17" + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { - "rollup": "^2.68.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "@babel/core": "^7.0.0-0" } }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.1.tgz", - "integrity": "sha512-tk5YCxJWIG81umIvNkSod2qK5KyQW19qcBF/B78n1bjtOON6gzKoVeSzAE8yHCZEDmqkHKkxplExA8KzdJLJpA==", + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, + "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=14.0.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { - "rollup": "^2.78.0||^3.0.0||^4.0.0" + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@rollup/plugin-terser": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", - "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, + "license": "MIT", "dependencies": { - "serialize-javascript": "^6.0.1", - "smob": "^1.0.0", - "terser": "^5.17.4" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "rollup": "^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "@babel/core": "^7.0.0-0" } }, - "node_modules/@rollup/plugin-typescript": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.2.tgz", - "integrity": "sha512-cdtSp154H5sv637uMr1a8OTWB0L1SWDSm1rDGiyfcGcvQ6cuTs4MDk2BVEBGysUWago4OJN4EQZqOTl/QY3Jgg==", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", "dev": true, + "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^5.1.0", - "resolve": "^1.22.1" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "rollup": "^2.14.0||^3.0.0||^4.0.0", - "tslib": "*", - "typescript": ">=3.7.0" + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - }, - "tslib": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@rollup/pluginutils": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", - "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^4.0.2" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "@babel/core": "^7.0.0-0" } }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.0.tgz", - "integrity": "sha512-xEiEE5oDW6tK4jXCAyliuntGR+amEMO7HLtdSshVuhFnKTYoeYMyXQK7pLouAJJj5KHdwdn87bfHAR2nSdNAUA==", - "cpu": [ - "arm" - ], + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "android" - ] + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.44.0.tgz", - "integrity": "sha512-uNSk/TgvMbskcHxXYHzqwiyBlJ/lGcv8DaUfcnNwict8ba9GTTNxfn3/FAoFZYgkaXXAdrAA+SLyKplyi349Jw==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "android" - ] + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.44.0.tgz", - "integrity": "sha512-VGF3wy0Eq1gcEIkSCr8Ke03CWT+Pm2yveKLaDvq51pPpZza3JX/ClxXOCmTYYq3us5MvEuNRTaeyFThCKRQhOA==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.44.0.tgz", - "integrity": "sha512-fBkyrDhwquRvrTxSGH/qqt3/T0w5Rg0L7ZIDypvBPc1/gzjJle6acCpZ36blwuwcKD/u6oCE/sRWlUAcxLWQbQ==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.44.0.tgz", - "integrity": "sha512-u5AZzdQJYJXByB8giQ+r4VyfZP+walV+xHWdaFx/1VxsOn6eWJhK2Vl2eElvDJFKQBo/hcYIBg/jaKS8ZmKeNQ==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.44.0.tgz", - "integrity": "sha512-qC0kS48c/s3EtdArkimctY7h3nHicQeEUdjJzYVJYR3ct3kWSafmn6jkNCA8InbUdge6PVx6keqjk5lVGJf99g==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.44.0.tgz", - "integrity": "sha512-x+e/Z9H0RAWckn4V2OZZl6EmV0L2diuX3QB0uM1r6BvhUIv6xBPL5mrAX2E3e8N8rEHVPwFfz/ETUbV4oW9+lQ==", - "cpu": [ - "arm" - ], + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.44.0.tgz", - "integrity": "sha512-1exwiBFf4PU/8HvI8s80icyCcnAIB86MCBdst51fwFmH5dyeoWVPVgmQPcKrMtBQ0W5pAs7jBCWuRXgEpRzSCg==", - "cpu": [ - "arm" - ], + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.44.0.tgz", - "integrity": "sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.44.0.tgz", - "integrity": "sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.44.0.tgz", - "integrity": "sha512-xw+FTGcov/ejdusVOqKgMGW3c4+AgqrfvzWEVXcNP6zq2ue+lsYUgJ+5Rtn/OTJf7e2CbgTFvzLW2j0YAtj0Gg==", - "cpu": [ - "loong64" - ], + "node_modules/@babel/traverse": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.44.0.tgz", - "integrity": "sha512-bKGibTr9IdF0zr21kMvkZT4K6NV+jjRnBoVMt2uNMG0BYWm3qOVmYnXKzx7UhwrviKnmK46IKMByMgvpdQlyJQ==", - "cpu": [ - "ppc64" - ], + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.44.0.tgz", - "integrity": "sha512-vV3cL48U5kDaKZtXrti12YRa7TyxgKAIDoYdqSIOMOFBXqFj2XbChHAtXquEn2+n78ciFgr4KIqEbydEGPxXgA==", - "cpu": [ - "riscv64" - ], + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "license": "MIT" }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.44.0.tgz", - "integrity": "sha512-TDKO8KlHJuvTEdfw5YYFBjhFts2TR0VpZsnLLSYmB7AaohJhM8ctDSdDnUGq77hUh4m/djRafw+9zQpkOanE2Q==", - "cpu": [ - "riscv64" - ], + "node_modules/@codemirror/state": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.0.tgz", + "integrity": "sha512-MwBHVK60IiIHDcoMet78lxt6iw5gJOGSbNbOIVBHWVXIH4/Nq1+GQgLLGgI1KlnN86WDXsPudVaqYHKBIx7Eyw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "peer": true, + "dependencies": { + "@marijn/find-cluster-break": "^1.0.0" + } }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.44.0.tgz", - "integrity": "sha512-8541GEyktXaw4lvnGp9m84KENcxInhAt6vPWJ9RodsB/iGjHoMB2Pp5MVBCiKIRxrxzJhGCxmNzdu+oDQ7kwRA==", - "cpu": [ - "s390x" - ], + "node_modules/@codemirror/view": { + "version": "6.38.6", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.38.6.tgz", + "integrity": "sha512-qiS0z1bKs5WOvHIAC0Cybmv4AJSkAXgX5aD6Mqd2epSLlVJsQl8NG23jCVouIgkh4All/mrbdsf2UOLFnJw0tw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "peer": true, + "dependencies": { + "@codemirror/state": "^6.5.0", + "crelt": "^1.0.6", + "style-mod": "^4.1.0", + "w3c-keyname": "^2.2.4" + } }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.44.0.tgz", - "integrity": "sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==", - "cpu": [ - "x64" - ], + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.44.0.tgz", - "integrity": "sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA==", - "cpu": [ - "x64" - ], + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": ">=8" + } }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.44.0.tgz", - "integrity": "sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w==", - "cpu": [ - "arm64" - ], + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.44.0.tgz", - "integrity": "sha512-3XJ0NQtMAXTWFW8FqZKcw3gOQwBtVWP/u8TpHP3CRPXD7Pd6s8lLdH3sHWh8vqKCyyiI8xW5ltJScQmBU9j7WA==", - "cpu": [ - "ia32" - ], + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.0.tgz", - "integrity": "sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ==", - "cpu": [ - "x64" - ], + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/@types/codemirror": { - "version": "5.60.8", - "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.8.tgz", - "integrity": "sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw==", + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, + "license": "MIT", "dependencies": { - "@types/tern": "*" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/d3": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", - "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/d3-array": "*", - "@types/d3-axis": "*", - "@types/d3-brush": "*", - "@types/d3-chord": "*", - "@types/d3-color": "*", - "@types/d3-contour": "*", - "@types/d3-delaunay": "*", - "@types/d3-dispatch": "*", - "@types/d3-drag": "*", - "@types/d3-dsv": "*", - "@types/d3-ease": "*", - "@types/d3-fetch": "*", - "@types/d3-force": "*", - "@types/d3-format": "*", - "@types/d3-geo": "*", - "@types/d3-hierarchy": "*", - "@types/d3-interpolate": "*", - "@types/d3-path": "*", - "@types/d3-polygon": "*", - "@types/d3-quadtree": "*", - "@types/d3-random": "*", - "@types/d3-scale": "*", - "@types/d3-scale-chromatic": "*", - "@types/d3-selection": "*", - "@types/d3-shape": "*", - "@types/d3-time": "*", - "@types/d3-time-format": "*", - "@types/d3-timer": "*", - "@types/d3-transition": "*", - "@types/d3-zoom": "*" + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/d3-array": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", - "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", - "dev": true - }, - "node_modules/@types/d3-axis": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", - "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, + "license": "MIT", "dependencies": { - "@types/d3-selection": "*" + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/d3-brush": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", - "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, + "license": "MIT", "dependencies": { - "@types/d3-selection": "*" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/d3-chord": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", - "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", - "dev": true - }, - "node_modules/@types/d3-color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", - "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", - "dev": true - }, - "node_modules/@types/d3-contour": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", - "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, + "license": "MIT", "dependencies": { - "@types/d3-array": "*", - "@types/geojson": "*" + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/@types/d3-delaunay": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", - "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", - "dev": true - }, - "node_modules/@types/d3-dispatch": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz", - "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==", - "dev": true - }, - "node_modules/@types/d3-drag": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", - "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/d3-selection": "*" + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/d3-dsv": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", - "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", - "dev": true - }, - "node_modules/@types/d3-ease": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", - "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", - "dev": true - }, - "node_modules/@types/d3-fetch": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", - "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, + "license": "MIT", "dependencies": { - "@types/d3-dsv": "*" + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/d3-force": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", - "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", - "dev": true - }, - "node_modules/@types/d3-format": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", - "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", - "dev": true - }, - "node_modules/@types/d3-geo": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", - "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/geojson": "*" + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/d3-hierarchy": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", - "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", - "dev": true - }, - "node_modules/@types/d3-interpolate": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", - "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, + "license": "MIT", "dependencies": { - "@types/d3-color": "*" + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/d3-path": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", - "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", - "dev": true - }, - "node_modules/@types/d3-polygon": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", - "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", - "dev": true - }, - "node_modules/@types/d3-quadtree": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", - "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", - "dev": true - }, - "node_modules/@types/d3-random": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", - "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", - "dev": true - }, - "node_modules/@types/d3-scale": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", - "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, + "license": "MIT", "dependencies": { - "@types/d3-time": "*" + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/d3-scale-chromatic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", - "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", - "dev": true - }, - "node_modules/@types/d3-selection": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", - "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", - "dev": true - }, - "node_modules/@types/d3-shape": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", - "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, + "license": "MIT", "dependencies": { - "@types/d3-path": "*" + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/d3-time": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", - "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", - "dev": true - }, - "node_modules/@types/d3-time-format": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", - "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", - "dev": true - }, - "node_modules/@types/d3-timer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", - "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", - "dev": true - }, - "node_modules/@types/d3-transition": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", - "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/d3-selection": "*" + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@types/d3-zoom": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", - "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", "dev": true, + "license": "MIT", "dependencies": { - "@types/d3-interpolate": "*", - "@types/d3-selection": "*" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/fs-extra": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz", - "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "dependencies": { - "@types/node": "*" + "license": "MIT", + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@types/geojson": { - "version": "7946.0.16", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", - "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", - "dev": true - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" }, - "node_modules/@types/node": { - "version": "24.0.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.3.tgz", - "integrity": "sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.8.0" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@types/resolve": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", - "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", - "dev": true - }, - "node_modules/@types/sprintf-js": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@types/sprintf-js/-/sprintf-js-1.1.4.tgz", - "integrity": "sha512-aWK1reDYWxcjgcIIPmQi3u+OQDuYa9b+lr6eIsGWrekJ9vr1NSjr4Eab8oQ1iKuH1ltFHpXGyerAv1a3FMKxzQ==", - "dev": true - }, - "node_modules/@types/tern": { - "version": "0.23.9", - "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.9.tgz", - "integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==", + "node_modules/@marijn/find-cluster-break": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", + "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", "dev": true, - "dependencies": { - "@types/estree": "*" - } + "license": "MIT" }, - "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=0.4.0" + "node": ">= 8" } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "28.0.9", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.9.tgz", + "integrity": "sha512-PIR4/OHZ79romx0BVVll/PkwWpJ7e5lsqFa3gFfcrFPWwLXLV39JVUzQV9RKjWerE7B845Hqjj9VYlQeieZ2dA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "fdir": "^6.2.0", + "is-reference": "1.2.1", + "magic-string": "^0.30.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=16.0.0 || 14 >= 14.17" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.3.tgz", + "integrity": "sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-terser": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", + "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-typescript": { + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.3.0.tgz", + "integrity": "sha512-7DP0/p7y3t67+NabT9f8oTBFE6gGkto4SA6Np2oudYmZE/m1dt8RB0SjL1msMxFpLo631qjRCcBlAbq1ml/Big==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0||^3.0.0||^4.0.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "tslib": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.54.0.tgz", + "integrity": "sha512-OywsdRHrFvCdvsewAInDKCNyR3laPA2mc9bRYJ6LBp5IyvF3fvXbbNR0bSzHlZVFtn6E0xw2oZlyjg4rKCVcng==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.54.0.tgz", + "integrity": "sha512-Skx39Uv+u7H224Af+bDgNinitlmHyQX1K/atIA32JP3JQw6hVODX5tkbi2zof/E69M1qH2UoN3Xdxgs90mmNYw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.54.0.tgz", + "integrity": "sha512-k43D4qta/+6Fq+nCDhhv9yP2HdeKeP56QrUUTW7E6PhZP1US6NDqpJj4MY0jBHlJivVJD5P8NxrjuobZBJTCRw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.54.0.tgz", + "integrity": "sha512-cOo7biqwkpawslEfox5Vs8/qj83M/aZCSSNIWpVzfU2CYHa2G3P1UN5WF01RdTHSgCkri7XOlTdtk17BezlV3A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.54.0.tgz", + "integrity": "sha512-miSvuFkmvFbgJ1BevMa4CPCFt5MPGw094knM64W9I0giUIMMmRYcGW/JWZDriaw/k1kOBtsWh1z6nIFV1vPNtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.54.0.tgz", + "integrity": "sha512-KGXIs55+b/ZfZsq9aR026tmr/+7tq6VG6MsnrvF4H8VhwflTIuYh+LFUlIsRdQSgrgmtM3fVATzEAj4hBQlaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.54.0.tgz", + "integrity": "sha512-EHMUcDwhtdRGlXZsGSIuXSYwD5kOT9NVnx9sqzYiwAc91wfYOE1g1djOEDseZJKKqtHAHGwnGPQu3kytmfaXLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.54.0.tgz", + "integrity": "sha512-+pBrqEjaakN2ySv5RVrj/qLytYhPKEUwk+e3SFU5jTLHIcAtqh2rLrd/OkbNuHJpsBgxsD8ccJt5ga/SeG0JmA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.54.0.tgz", + "integrity": "sha512-NSqc7rE9wuUaRBsBp5ckQ5CVz5aIRKCwsoa6WMF7G01sX3/qHUw/z4pv+D+ahL1EIKy6Enpcnz1RY8pf7bjwng==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.54.0.tgz", + "integrity": "sha512-gr5vDbg3Bakga5kbdpqx81m2n9IX8M6gIMlQQIXiLTNeQW6CucvuInJ91EuCJ/JYvc+rcLLsDFcfAD1K7fMofg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.54.0.tgz", + "integrity": "sha512-gsrtB1NA3ZYj2vq0Rzkylo9ylCtW/PhpLEivlgWe0bpgtX5+9j9EZa0wtZiCjgu6zmSeZWyI/e2YRX1URozpIw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.54.0.tgz", + "integrity": "sha512-y3qNOfTBStmFNq+t4s7Tmc9hW2ENtPg8FeUD/VShI7rKxNW7O4fFeaYbMsd3tpFlIg1Q8IapFgy7Q9i2BqeBvA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.54.0.tgz", + "integrity": "sha512-89sepv7h2lIVPsFma8iwmccN7Yjjtgz0Rj/Ou6fEqg3HDhpCa+Et+YSufy27i6b0Wav69Qv4WBNl3Rs6pwhebQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.54.0.tgz", + "integrity": "sha512-ZcU77ieh0M2Q8Ur7D5X7KvK+UxbXeDHwiOt/CPSBTI1fBmeDMivW0dPkdqkT4rOgDjrDDBUed9x4EgraIKoR2A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.54.0.tgz", + "integrity": "sha512-2AdWy5RdDF5+4YfG/YesGDDtbyJlC9LHmL6rZw6FurBJ5n4vFGupsOBGfwMRjBYH7qRQowT8D/U4LoSvVwOhSQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.54.0.tgz", + "integrity": "sha512-WGt5J8Ij/rvyqpFexxk3ffKqqbLf9AqrTBbWDk7ApGUzaIs6V+s2s84kAxklFwmMF/vBNGrVdYgbblCOFFezMQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.54.0.tgz", + "integrity": "sha512-JzQmb38ATzHjxlPHuTH6tE7ojnMKM2kYNzt44LO/jJi8BpceEC8QuXYA908n8r3CNuG/B3BV8VR3Hi1rYtmPiw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.54.0.tgz", + "integrity": "sha512-huT3fd0iC7jigGh7n3q/+lfPcXxBi+om/Rs3yiFxjvSxbSB6aohDFXbWvlspaqjeOh+hx7DDHS+5Es5qRkWkZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.54.0.tgz", + "integrity": "sha512-c2V0W1bsKIKfbLMBu/WGBz6Yci8nJ/ZJdheE0EwB73N3MvHYKiKGs3mVilX4Gs70eGeDaMqEob25Tw2Gb9Nqyw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.54.0.tgz", + "integrity": "sha512-woEHgqQqDCkAzrDhvDipnSirm5vxUXtSKDYTVpZG3nUdW/VVB5VdCYA2iReSj/u3yCZzXID4kuKG7OynPnB3WQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.54.0.tgz", + "integrity": "sha512-dzAc53LOuFvHwbCEOS0rPbXp6SIhAf2txMP5p6mGyOXXw5mWY8NGGbPMPrs4P1WItkfApDathBj/NzMLUZ9rtQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.54.0.tgz", + "integrity": "sha512-hYT5d3YNdSh3mbCU1gwQyPgQd3T2ne0A3KG8KSBdav5TiBg6eInVmV+TeR5uHufiIgSFg0XsOWGW5/RhNcSvPg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/codemirror": { + "version": "5.60.8", + "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.8.tgz", + "integrity": "sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/tern": "*" + } + }, + "node_modules/@types/d3": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", + "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-array": "*", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-delaunay": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-zoom": "*" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-axis": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", + "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-brush": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", + "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-chord": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", + "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-contour": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", + "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-array": "*", + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-dispatch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz", + "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-drag": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-dsv": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", + "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-fetch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", + "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-dsv": "*" + } + }, + "node_modules/@types/d3-force": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", + "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-format": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", + "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-hierarchy": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", + "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-polygon": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", + "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-quadtree": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", + "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-random": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", + "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-selection": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", + "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-shape": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", + "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-time-format": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", + "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-transition": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", + "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-zoom": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/fs-extra": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz", + "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "24.10.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.4.tgz", + "integrity": "sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/sprintf-js": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@types/sprintf-js/-/sprintf-js-1.1.4.tgz", + "integrity": "sha512-aWK1reDYWxcjgcIIPmQi3u+OQDuYa9b+lr6eIsGWrekJ9vr1NSjr4Eab8oQ1iKuH1ltFHpXGyerAv1a3FMKxzQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/tern": { + "version": "0.23.9", + "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.9.tgz", + "integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/argparse/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.11", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.11.tgz", + "integrity": "sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001761", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001761.tgz", + "integrity": "sha512-JF9ptu1vP2coz98+5051jZ4PwQgd2ni8A+gYSN7EA7dPKIMf0pDlSUxhdmVOaV3/fYK5uWBkgSXJaRLr4+3A6g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", + "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/crelt": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/d3": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "license": "ISC", + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "license": "ISC", + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "license": "ISC", + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "license": "ISC", + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "license": "ISC", + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "license": "ISC", + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.1.tgz", + "integrity": "sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delaunator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", + "license": "ISC", + "dependencies": { + "robust-predicates": "^3.0.2" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "dev": true, + "license": "ISC", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "reusify": "^1.0.4" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", + "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, + "license": "MIT", "dependencies": { - "fill-range": "^7.1.1" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true - }, - "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 10" + "node": ">=0.8.19" } }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" }, - "node_modules/d3": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", - "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", - "dependencies": { - "d3-array": "3", - "d3-axis": "3", - "d3-brush": "3", - "d3-chord": "3", - "d3-color": "3", - "d3-contour": "4", - "d3-delaunay": "6", - "d3-dispatch": "3", - "d3-drag": "3", - "d3-dsv": "3", - "d3-ease": "3", - "d3-fetch": "3", - "d3-force": "3", - "d3-format": "3", - "d3-geo": "3", - "d3-hierarchy": "3", - "d3-interpolate": "3", - "d3-path": "3", - "d3-polygon": "3", - "d3-quadtree": "3", - "d3-random": "3", - "d3-scale": "4", - "d3-scale-chromatic": "3", - "d3-selection": "3", - "d3-shape": "3", - "d3-time": "3", - "d3-time-format": "4", - "d3-timer": "3", - "d3-transition": "3", - "d3-zoom": "3" - }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", "engines": { "node": ">=12" } }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", "dependencies": { - "internmap": "1 - 2" + "hasown": "^2.0.2" }, "engines": { - "node": ">=12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/d3-axis": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", - "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/d3-brush": { + "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", - "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "3", - "d3-transition": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-chord": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", - "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", - "dependencies": { - "d3-path": "1 - 3" - }, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=6" } }, - "node_modules/d3-contour": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", - "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", "dependencies": { - "d3-array": "^3.2.0" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/d3-delaunay": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", - "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", - "dependencies": { - "delaunator": "5" - }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=0.12.0" } }, - "node_modules/d3-dispatch": { + "node_modules/is-plain-object": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", - "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", + "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/d3-drag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", - "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "license": "MIT", "dependencies": { - "d3-dispatch": "1 - 3", - "d3-selection": "3" + "@types/estree": "*" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/d3-dsv": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", - "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "commander": "7", - "iconv-lite": "0.6", - "rw": "1" - }, - "bin": { - "csv2json": "bin/dsv2json.js", - "csv2tsv": "bin/dsv2dsv.js", - "dsv2dsv": "bin/dsv2dsv.js", - "dsv2json": "bin/dsv2json.js", - "json2csv": "bin/json2dsv.js", - "json2dsv": "bin/json2dsv.js", - "json2tsv": "bin/json2dsv.js", - "tsv2csv": "bin/dsv2dsv.js", - "tsv2json": "bin/dsv2json.js" + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" }, "engines": { - "node": ">=12" + "node": ">=10" } }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">=12" + "node": ">=10" } }, - "node_modules/d3-fetch": { + "node_modules/istanbul-lib-report": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", - "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "d3-dsv": "1 - 3" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=10" } }, - "node_modules/d3-force": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", - "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "d3-dispatch": "1 - 3", - "d3-quadtree": "1 - 3", - "d3-timer": "1 - 3" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, "engines": { - "node": ">=12" + "node": ">=10" } }, - "node_modules/d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/d3-geo": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", - "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "d3-array": "2.5.0 - 3" + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/d3-hierarchy": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", - "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "license": "MIT", "dependencies": { - "d3-color": "1 - 3" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/d3-polygon": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", - "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/d3-quadtree": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", - "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/d3-random": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", - "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "license": "MIT", "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/d3-scale-chromatic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", - "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "license": "MIT", "dependencies": { - "d3-color": "1 - 3", - "d3-interpolate": "1 - 3" + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/d3-selection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", - "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "license": "MIT", "dependencies": { - "d3-path": "^3.1.0" + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" } }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "license": "MIT", "dependencies": { - "d3-array": "2 - 3" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "license": "MIT", "dependencies": { - "d3-time": "1 - 3" + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=12" - } - }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/d3-transition": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", - "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "license": "MIT", "dependencies": { - "d3-color": "1 - 3", - "d3-dispatch": "1 - 3", - "d3-ease": "1 - 3", - "d3-interpolate": "1 - 3", - "d3-timer": "1 - 3" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">=12" - }, - "peerDependencies": { - "d3-selection": "2 - 3" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/d3-zoom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", - "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "license": "MIT", "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "2 - 3", - "d3-transition": "2 - 3" + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } } }, - "node_modules/delaunator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", - "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", - "dependencies": { - "robust-predicates": "^3.0.2" + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, + "license": "MIT", "dependencies": { - "path-type": "^4.0.0" + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, + "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" }, "engines": { - "node": ">=8.6.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, + "license": "MIT", "dependencies": { - "reusify": "^1.0.4" + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/fdir": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", - "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, - "peerDependencies": { - "picomatch": "^3 || ^4" + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, + "license": "MIT", "dependencies": { - "to-regex-range": "^5.0.1" + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=6 <7 || >=8" + "node": ">=10" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "node_modules/jest-util/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" }, "engines": { - "node": "*" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" }, "engines": { - "node": ">= 6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/globby": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", - "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, + "license": "MIT", "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { - "function-bind": "^1.1.2" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "dev": true, + "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "engines": { - "node": ">=0.10.0" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, + "node_modules/jsep": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", + "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", + "license": "MIT", "engines": { - "node": ">= 4" + "node": ">= 10.16.0" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, "engines": { - "node": ">=12" + "node": ">=6" } }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "dependencies": { - "hasown": "^2.0.2" - }, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { - "is-extglob": "^2.1.1" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true, + "license": "MIT" }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "engines": { - "node": ">=0.12.0" + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" } }, - "node_modules/is-plain-object": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", - "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "dev": true, - "engines": { - "node": ">=0.10.0" + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" } }, - "node_modules/is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "*" + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jsep": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", - "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", + "node_modules/make-dir/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">= 10.16.0" + "node": ">=10" } }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } + "license": "ISC" }, - "node_modules/magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" + "tmpl": "1.0.5" } }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -1687,6 +4504,7 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -1700,6 +4518,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -1707,11 +4526,22 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1719,19 +4549,88 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/moment": { "version": "2.29.4", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/obsidian": { - "version": "1.8.7", + "version": "1.11.0", "resolved": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "integrity": "sha512-0yByIRBSLYSpg0PrVhysWyRU55BrsaJl484RmRX2lM4AJ7VVMy/8jC9aj7VfW7D+1Iy4h1iUACGbIqdFjlUo+Q==", + "integrity": "sha512-EWqiRJ4x3dnELRM3NicOWTIdO4ebAdklzLfrMG3XTQk8Sm6AIJp+ZHiEz6pdeO5KPYEX/QC/I+3aPI8U4y8sfA==", "dev": true, "license": "MIT", "dependencies": { @@ -1739,8 +4638,8 @@ "moment": "2.29.4" }, "peerDependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" + "@codemirror/state": "6.5.0", + "@codemirror/view": "6.38.6" } }, "node_modules/once": { @@ -1748,39 +4647,162 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, "node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -1788,6 +4810,88 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -1806,24 +4910,44 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", "dev": true, + "license": "MIT", "dependencies": { - "is-core-module": "^2.16.0", + "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -1837,11 +4961,45 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/reusify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -1850,14 +5008,16 @@ "node_modules/robust-predicates": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", - "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", + "license": "Unlicense" }, "node_modules/rollup": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.44.0.tgz", - "integrity": "sha512-qHcdEzLCiktQIfwBq420pn2dP+30uzqYxv9ETm91wdt2R9AFcWfjNAmje4NWlnCIQ5RMTzVf0ZyisOKqHR6RwA==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.54.0.tgz", + "integrity": "sha512-3nk8Y3a9Ea8szgKhinMlGMhGMw89mqule3KWczxhIzqudyHdCIOHw8WJlj/r329fACjKLEh13ZSk7oE22kyeIw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -1869,26 +5029,28 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.44.0", - "@rollup/rollup-android-arm64": "4.44.0", - "@rollup/rollup-darwin-arm64": "4.44.0", - "@rollup/rollup-darwin-x64": "4.44.0", - "@rollup/rollup-freebsd-arm64": "4.44.0", - "@rollup/rollup-freebsd-x64": "4.44.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.44.0", - "@rollup/rollup-linux-arm-musleabihf": "4.44.0", - "@rollup/rollup-linux-arm64-gnu": "4.44.0", - "@rollup/rollup-linux-arm64-musl": "4.44.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.44.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.44.0", - "@rollup/rollup-linux-riscv64-gnu": "4.44.0", - "@rollup/rollup-linux-riscv64-musl": "4.44.0", - "@rollup/rollup-linux-s390x-gnu": "4.44.0", - "@rollup/rollup-linux-x64-gnu": "4.44.0", - "@rollup/rollup-linux-x64-musl": "4.44.0", - "@rollup/rollup-win32-arm64-msvc": "4.44.0", - "@rollup/rollup-win32-ia32-msvc": "4.44.0", - "@rollup/rollup-win32-x64-msvc": "4.44.0", + "@rollup/rollup-android-arm-eabi": "4.54.0", + "@rollup/rollup-android-arm64": "4.54.0", + "@rollup/rollup-darwin-arm64": "4.54.0", + "@rollup/rollup-darwin-x64": "4.54.0", + "@rollup/rollup-freebsd-arm64": "4.54.0", + "@rollup/rollup-freebsd-x64": "4.54.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.54.0", + "@rollup/rollup-linux-arm-musleabihf": "4.54.0", + "@rollup/rollup-linux-arm64-gnu": "4.54.0", + "@rollup/rollup-linux-arm64-musl": "4.54.0", + "@rollup/rollup-linux-loong64-gnu": "4.54.0", + "@rollup/rollup-linux-ppc64-gnu": "4.54.0", + "@rollup/rollup-linux-riscv64-gnu": "4.54.0", + "@rollup/rollup-linux-riscv64-musl": "4.54.0", + "@rollup/rollup-linux-s390x-gnu": "4.54.0", + "@rollup/rollup-linux-x64-gnu": "4.54.0", + "@rollup/rollup-linux-x64-musl": "4.54.0", + "@rollup/rollup-openharmony-arm64": "4.54.0", + "@rollup/rollup-win32-arm64-msvc": "4.54.0", + "@rollup/rollup-win32-ia32-msvc": "4.54.0", + "@rollup/rollup-win32-x64-gnu": "4.54.0", + "@rollup/rollup-win32-x64-msvc": "4.54.0", "fsevents": "~2.3.2" } }, @@ -1897,6 +5059,7 @@ "resolved": "https://registry.npmjs.org/rollup-plugin-copy/-/rollup-plugin-copy-3.5.0.tgz", "integrity": "sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA==", "dev": true, + "license": "MIT", "dependencies": { "@types/fs-extra": "^8.0.1", "colorette": "^1.1.0", @@ -1927,6 +5090,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -1934,7 +5098,8 @@ "node_modules/rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" }, "node_modules/safe-buffer": { "version": "5.2.1", @@ -1954,27 +5119,78 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -1983,22 +5199,25 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz", "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -2007,20 +5226,123 @@ "node_modules/sprintf-js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "license": "BSD-3-Clause" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/style-mod": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz", - "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.3.tgz", + "integrity": "sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==", "dev": true, - "peer": true + "license": "MIT" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -2029,13 +5351,14 @@ } }, "node_modules/terser": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", - "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", + "version": "5.44.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", + "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", + "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -2050,13 +5373,48 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/terser/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -2064,17 +5422,123 @@ "node": ">=8.0" } }, + "node_modules/ts-jest": { + "version": "29.4.6", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.6.tgz", + "integrity": "sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bs-logger": "^0.2.6", + "fast-json-stable-stringify": "^2.1.0", + "handlebars": "^4.7.8", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.7.3", + "type-fest": "^4.41.0", + "yargs-parser": "^21.1.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0 || ^30.0.0", + "@jest/types": "^29.0.0 || ^30.0.0", + "babel-jest": "^29.0.0 || ^30.0.0", + "jest": "^29.0.0 || ^30.0.0", + "jest-util": "^29.0.0 || ^30.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jest-util": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-jest/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true + "dev": true, + "license": "0BSD", + "peer": true + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, + "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -2083,10 +5547,24 @@ "node": ">=14.17" } }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/undici-types": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", - "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", "dev": true, "license": "MIT" }, @@ -2095,22 +5573,194 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.0.0" } }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, "node_modules/w3c-keyname": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", "dev": true, - "peer": true + "license": "MIT" + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index 58f2a50..e901776 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,10 @@ "scripts": { "dev": "rollup --config rollup.config.dev.mjs -w", "build": "rollup --config rollup.config.build.mjs", - "zip": "zip -9 obsidian-tracker-v$npm_package_version.zip main.js manifest.json styles.css" + "zip": "zip -9 obsidian-tracker-v$npm_package_version.zip main.js manifest.json styles.css", + "test": "jest", + "test:watch": "jest --watch", + "test:coverage": "jest --coverage" }, "keywords": [], "author": "pyrochlore", @@ -17,11 +20,14 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.1.2", "@types/d3": "^7.4.3", + "@types/jest": "^29.5.14", "@types/node": "^24.0.3", "@types/sprintf-js": "^1.1.4", + "jest": "^29.7.0", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.44.0", "rollup-plugin-copy": "^3.5.0", + "ts-jest": "^29.4.6", "tslib": "^2.8.1", "typescript": "^5.8.3" }, diff --git a/rollup.config.dev.mjs b/rollup.config.dev.mjs index 588dcbd..22c50a2 100644 --- a/rollup.config.dev.mjs +++ b/rollup.config.dev.mjs @@ -13,7 +13,11 @@ export default { }, external: ['obsidian'], plugins: [ - typescript(), + typescript({ + tsconfig: 'tsconfig.json', + rootDir: 'src', + outDir: 'examples/.obsidian/plugins/obsidian-tracker' + }), nodeResolve({browser: true}), commonjs(), copy({ diff --git a/src/collecting.ts b/src/collecting.ts index 2e7e47a..8842d2d 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -494,6 +494,44 @@ export function collectDataFromFrontmatterTag( return false; } +// Track existence of frontmatter field (any non-empty value counts as 1.0) +export function collectDataFromFrontmatterExists( + fileCache: CachedMetadata, + query: Query, + renderInfo: RenderInfo, + dataMap: DataMap, + xValueMap: XValueMap +): boolean { + let frontMatter = fileCache.frontmatter; + if (frontMatter) { + let deepValue = helper.deepValue(frontMatter, query.getTarget()); + // Check if field exists and is non-empty + if (deepValue !== null && deepValue !== undefined) { + // Handle different value types + let hasValue = false; + if (typeof deepValue === "string") { + hasValue = deepValue.trim() !== ""; + } else if (Array.isArray(deepValue)) { + hasValue = deepValue.length > 0; + } else { + // Number, boolean, or other - deepValue converts these to strings + hasValue = true; + } + + if (hasValue) { + // Field exists and has a value, use constValue (default 1.0) + query.addNumTargets(); + let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); + // Note: xValue can be undefined if xDataset wasn't set up, but addToDataMap should handle it + // Other functions don't check for undefined, so we'll follow the same pattern + addToDataMap(dataMap, xValue, query, renderInfo.constValue[query.getId()]); + return true; + } + } + } + return false; +} + // In form 'key: value', target used to identify 'frontmatter key' export function collectDataFromFrontmatterKey( fileCache: CachedMetadata, diff --git a/src/data.ts b/src/data.ts index 3951fbc..928aa50 100644 --- a/src/data.ts +++ b/src/data.ts @@ -3,6 +3,7 @@ import { Moment } from "moment"; export enum SearchType { Tag, Frontmatter, + FrontmatterExists, Wiki, WikiLink, WikiDisplay, diff --git a/src/helper.ts b/src/helper.ts index 3c7fd36..472b1a6 100644 --- a/src/helper.ts +++ b/src/helper.ts @@ -24,7 +24,7 @@ function makeTimeFormat() { if (fmtSec !== "") { fmt += `:${fmtSec}`; } - if (fmtHour.contains("h")) { + if (fmtHour.includes("h")) { fmt += " a"; } timeFormat.push(fmt); diff --git a/src/main.ts b/src/main.ts index 3779e80..96f454a 100644 --- a/src/main.ts +++ b/src/main.ts @@ -261,10 +261,11 @@ export default class Tracker extends Plugin { el: HTMLElement, ctx: MarkdownPostProcessorContext ) { - // console.log("postprocess"); - const canvas = document.createElement("div"); + try { + // console.log("postprocess"); + const canvas = document.createElement("div"); - let yamlText = source.trim(); + let yamlText = source.trim(); // Replace all tabs by spaces let tabSize = this.app.vault.getConfig("tabSize"); @@ -315,6 +316,7 @@ export default class Tracker extends Plugin { let target = q.getTarget(); if ( type === SearchType.Frontmatter || + type === SearchType.FrontmatterExists || type === SearchType.Tag || type === SearchType.Wiki || type === SearchType.WikiLink || @@ -511,6 +513,22 @@ export default class Tracker extends Plugin { processInfo.gotAnyValidYValue ||= gotAnyValue; } // console.log("Search frontmatter keys"); + // console.log("Search frontmatter exists"); + if ( + fileCache && + query.getType() === SearchType.FrontmatterExists && + query.getTarget() !== "tags" + ) { + let gotAnyValue = collecting.collectDataFromFrontmatterExists( + fileCache, + query, + renderInfo, + dataMap, + xValueMap + ); + processInfo.gotAnyValidYValue ||= gotAnyValue; + } // console.log("Search frontmatter exists"); + // console.log("Search wiki links"); if ( fileCache && @@ -745,6 +763,12 @@ export default class Tracker extends Plugin { } el.appendChild(canvas); + } catch (error) { + console.error("TRACKER: ERROR in postprocessor:", error); + console.error("TRACKER: Error stack:", error.stack); + const canvas = document.createElement("div"); + return this.renderErrorMessage("Error: " + error.message, canvas, el); + } } // TODO: remove this.app and move to collecting.ts diff --git a/src/parsing.ts b/src/parsing.ts index 516eea8..43ad3ff 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -44,6 +44,7 @@ function validateSearchType(searchType: string): boolean { searchType.toLowerCase() === "tag" || searchType.toLowerCase() === "text" || searchType.toLowerCase() === "frontmatter" || + searchType.toLowerCase() === "frontmatter.exists" || searchType.toLowerCase() === "wiki" || searchType.toLowerCase() === "wiki.link" || searchType.toLowerCase() === "wiki.display" || @@ -1002,6 +1003,9 @@ export function getRenderInfoFromYaml( case "frontmatter": searchType.push(SearchType.Frontmatter); break; + case "frontmatter.exists": + searchType.push(SearchType.FrontmatterExists); + break; case "wiki": searchType.push(SearchType.Wiki); break; diff --git a/test/frontmatter-exists.test.ts b/test/frontmatter-exists.test.ts new file mode 100644 index 0000000..afbdc30 --- /dev/null +++ b/test/frontmatter-exists.test.ts @@ -0,0 +1,275 @@ +/** + * Automated tests for frontmatter.exists searchType + * + * Run with: npm test + */ + +import { describe, it, expect, beforeEach } from '@jest/globals'; +import { SearchType, Query, RenderInfo, DataMap, XValueMap } from '../src/data'; +import { collectDataFromFrontmatterExists } from '../src/collecting'; +import type { CachedMetadata } from 'obsidian'; + +// Mock Obsidian types +type MockCachedMetadata = { + frontmatter?: Record; +}; + +describe('frontmatter.exists searchType', () => { + let query: Query; + let renderInfo: RenderInfo; + let dataMap: DataMap; + let xValueMap: XValueMap; + + beforeEach(() => { + // Create a query for frontmatter.exists + query = new Query(0, SearchType.FrontmatterExists, 'meditation'); + + // Create minimal renderInfo + renderInfo = new RenderInfo([query]); + renderInfo.xDataset = [-1]; // Use filename as date + renderInfo.constValue = [1.0]; + renderInfo.dateFormat = 'YYYY-MM-DD'; + + // Initialize data structures + dataMap = new Map(); + xValueMap = new Map(); + xValueMap.set(-1, '2024-12-01'); // Set xValue for the test date + }); + + it('should count non-empty string values', () => { + const fileCache: MockCachedMetadata = { + frontmatter: { + meditation: 'yes' + } + }; + + const result = collectDataFromFrontmatterExists( + fileCache as CachedMetadata, + query, + renderInfo, + dataMap, + xValueMap + ); + + expect(result).toBe(true); + expect(query.getNumTargets()).toBe(1); + expect(dataMap.has('2024-12-01')).toBe(true); + }); + + it('should NOT count empty strings', () => { + const fileCache: MockCachedMetadata = { + frontmatter: { + meditation: '' + } + }; + + const result = collectDataFromFrontmatterExists( + fileCache as CachedMetadata, + query, + renderInfo, + dataMap, + xValueMap + ); + + expect(result).toBe(false); + expect(query.getNumTargets()).toBe(0); + }); + + it('should NOT count whitespace-only strings', () => { + const fileCache: MockCachedMetadata = { + frontmatter: { + meditation: ' ' + } + }; + + const result = collectDataFromFrontmatterExists( + fileCache as CachedMetadata, + query, + renderInfo, + dataMap, + xValueMap + ); + + expect(result).toBe(false); + expect(query.getNumTargets()).toBe(0); + }); + + it('should count non-empty arrays', () => { + const fileCache: MockCachedMetadata = { + frontmatter: { + tags: ['meditation', 'exercise'] + } + }; + + const tagsQuery = new Query(0, SearchType.FrontmatterExists, 'tags'); + const result = collectDataFromFrontmatterExists( + fileCache as CachedMetadata, + tagsQuery, + renderInfo, + dataMap, + xValueMap + ); + + expect(result).toBe(true); + expect(tagsQuery.getNumTargets()).toBe(1); + }); + + it('should NOT count empty arrays', () => { + const fileCache: MockCachedMetadata = { + frontmatter: { + tags: [] + } + }; + + const tagsQuery = new Query(0, SearchType.FrontmatterExists, 'tags'); + const result = collectDataFromFrontmatterExists( + fileCache as CachedMetadata, + tagsQuery, + renderInfo, + dataMap, + xValueMap + ); + + expect(result).toBe(false); + expect(tagsQuery.getNumTargets()).toBe(0); + }); + + it('should count boolean true', () => { + const fileCache: MockCachedMetadata = { + frontmatter: { + completed: true + } + }; + + const boolQuery = new Query(0, SearchType.FrontmatterExists, 'completed'); + const result = collectDataFromFrontmatterExists( + fileCache as CachedMetadata, + boolQuery, + renderInfo, + dataMap, + xValueMap + ); + + expect(result).toBe(true); + expect(boolQuery.getNumTargets()).toBe(1); + }); + + it('should count boolean false (it exists!)', () => { + const fileCache: MockCachedMetadata = { + frontmatter: { + notDone: false + } + }; + + const boolQuery = new Query(0, SearchType.FrontmatterExists, 'notDone'); + const result = collectDataFromFrontmatterExists( + fileCache as CachedMetadata, + boolQuery, + renderInfo, + dataMap, + xValueMap + ); + + expect(result).toBe(true); + expect(boolQuery.getNumTargets()).toBe(1); + }); + + it('should count number zero (it exists!)', () => { + const fileCache: MockCachedMetadata = { + frontmatter: { + score: 0 + } + }; + + const numQuery = new Query(0, SearchType.FrontmatterExists, 'score'); + const result = collectDataFromFrontmatterExists( + fileCache as CachedMetadata, + numQuery, + renderInfo, + dataMap, + xValueMap + ); + + expect(result).toBe(true); + expect(numQuery.getNumTargets()).toBe(1); + }); + + it('should NOT count null values', () => { + const fileCache: MockCachedMetadata = { + frontmatter: { + noScore: null + } + }; + + const nullQuery = new Query(0, SearchType.FrontmatterExists, 'noScore'); + const result = collectDataFromFrontmatterExists( + fileCache as CachedMetadata, + nullQuery, + renderInfo, + dataMap, + xValueMap + ); + + expect(result).toBe(false); + expect(nullQuery.getNumTargets()).toBe(0); + }); + + it('should NOT count undefined/missing fields', () => { + const fileCache: MockCachedMetadata = { + frontmatter: { + otherField: 'value' + } + }; + + const missingQuery = new Query(0, SearchType.FrontmatterExists, 'meditation'); + const result = collectDataFromFrontmatterExists( + fileCache as CachedMetadata, + missingQuery, + renderInfo, + dataMap, + xValueMap + ); + + expect(result).toBe(false); + expect(missingQuery.getNumTargets()).toBe(0); + }); + + it('should handle missing frontmatter', () => { + const fileCache: MockCachedMetadata = { + frontmatter: undefined + }; + + const result = collectDataFromFrontmatterExists( + fileCache as CachedMetadata, + query, + renderInfo, + dataMap, + xValueMap + ); + + expect(result).toBe(false); + expect(query.getNumTargets()).toBe(0); + }); + + it('should handle nested frontmatter fields', () => { + const fileCache: MockCachedMetadata = { + frontmatter: { + nested: { + field: 'value' + } + } + }; + + const nestedQuery = new Query(0, SearchType.FrontmatterExists, 'nested.field'); + const result = collectDataFromFrontmatterExists( + fileCache as CachedMetadata, + nestedQuery, + renderInfo, + dataMap, + xValueMap + ); + + expect(result).toBe(true); + expect(nestedQuery.getNumTargets()).toBe(1); + }); +}); diff --git a/test/mocks/d3.ts b/test/mocks/d3.ts new file mode 100644 index 0000000..1bc5091 --- /dev/null +++ b/test/mocks/d3.ts @@ -0,0 +1,42 @@ +/** + * Mock d3 for testing + * We don't need actual d3 functionality for unit tests + */ + +export const select = () => ({ + append: () => ({}), + attr: () => ({}), + style: () => ({}), + text: () => ({}), + selectAll: () => ({ + data: () => ({ + enter: () => ({ + append: () => ({}), + }), + }), + }), +}); + +export const scaleLinear = () => ({ + domain: () => ({ + range: () => ({}), + }), +}); + +export const scaleTime = () => ({ + domain: () => ({ + range: () => ({}), + }), +}); + +export const axisBottom = () => ({}); +export const axisLeft = () => ({}); + +// Add other d3 functions as needed for tests +export default { + select, + scaleLinear, + scaleTime, + axisBottom, + axisLeft, +}; diff --git a/test/mocks/obsidian.ts b/test/mocks/obsidian.ts new file mode 100644 index 0000000..ce41f94 --- /dev/null +++ b/test/mocks/obsidian.ts @@ -0,0 +1,41 @@ +/** + * Mock Obsidian API for testing + */ + +// Mock CachedMetadata type +export interface CachedMetadata { + frontmatter?: Record; + tags?: Array<{ tag: string; position?: any }>; + headings?: Array; + sections?: Array; + links?: Array; + embeds?: Array; + blocks?: Record; + listItems?: Array; +} + +// Mock other Obsidian types as needed +export type TFile = any; +export type TFolder = any; +export type App = any; +export type Plugin = any; +export type MarkdownPostProcessorContext = any; +export type MarkdownView = any; +export type Editor = any; + +// Mock normalizePath +export function normalizePath(path: string): string { + return path.replace(/\\/g, '/'); +} + +// Mock parseYaml (we'll use a real YAML parser in tests) +export function parseYaml(yaml: string): any { + // For testing, we'll use a simple mock or real parser + // In actual tests, we might want to use js-yaml + try { + // Simple mock - in real tests you'd use a YAML parser + return {}; + } catch (e) { + return null; + } +} diff --git a/test/setup.ts b/test/setup.ts new file mode 100644 index 0000000..5082912 --- /dev/null +++ b/test/setup.ts @@ -0,0 +1,16 @@ +/** + * Jest setup file + * Runs before each test file + */ + +// Mock global objects that Obsidian uses +global.window = { + moment: require('moment'), +} as any; + +// Mock console methods if needed (optional) +// global.console = { +// ...console, +// error: jest.fn(), +// log: jest.fn(), +// }; From ad85dd0cf12818a24e5a6401d1b1a777acd95b53 Mon Sep 17 00:00:00 2001 From: Mike Greiner Date: Wed, 7 Jan 2026 20:29:22 -0700 Subject: [PATCH 262/277] fix: handle numeric YAML parsing for startDate/endDate with YYYYMMDD format Fixes issue #324 where dateFormat: YYYYMMDD made startDate and endDate ineffective, causing all files to be included regardless of date range. Root cause: YAML parsers may parse numeric-looking dates (e.g., 20240201) as numbers instead of strings. The code only checked typeof === 'string', so numeric values were skipped, leaving startDate/endDate as null. Changes: - Updated parsing.ts to handle both string and number types for startDate/endDate, converting numbers to strings before processing - Updated main.ts to use isBefore/isAfter with 'day' granularity for clearer, more readable date comparisons - Fixed closure issue by capturing startDate/endDate in local variables before async file processing loop - Fixed helper.ts bug: changed .contains() to .includes() for string method compatibility Tests: - Added unit tests for YYYYMMDD date format parsing and filtering - Added edge case tests for boundary conditions and missing dates - Added date comparison method tests - All 28 tests passing --- src/helper.ts | 2 +- src/main.ts | 23 +- src/parsing.ts | 30 +- test/date-comparison-methods.test.ts | 86 ++++++ test/date-format-yyyymmdd.test.ts | 206 ++++++++++++++ test/edge-cases-date-filtering.test.ts | 365 +++++++++++++++++++++++++ test/mocks/d3.ts | 2 + test/mocks/obsidian.ts | 93 +++++++ test/parsing-yyyymmdd.test.ts | 154 +++++++++++ test/setup.ts | 11 + 10 files changed, 957 insertions(+), 15 deletions(-) create mode 100644 test/date-comparison-methods.test.ts create mode 100644 test/date-format-yyyymmdd.test.ts create mode 100644 test/edge-cases-date-filtering.test.ts create mode 100644 test/mocks/d3.ts create mode 100644 test/mocks/obsidian.ts create mode 100644 test/parsing-yyyymmdd.test.ts create mode 100644 test/setup.ts diff --git a/src/helper.ts b/src/helper.ts index 3e252b1..ad1e7b3 100644 --- a/src/helper.ts +++ b/src/helper.ts @@ -24,7 +24,7 @@ function makeTimeFormat() { if (fmtSec !== "") { fmt += `:${fmtSec}`; } - if (fmtHour.contains("h")) { + if (fmtHour.includes("h")) { fmt += " a"; } timeFormat.push(fmt); diff --git a/src/main.ts b/src/main.ts index 3779e80..93c58f7 100644 --- a/src/main.ts +++ b/src/main.ts @@ -304,6 +304,11 @@ export default class Tracker extends Plugin { let dataMap: DataMap = new Map(); // {strDate: [query: value, ...]} let processInfo = new CollectingProcessInfo(); processInfo.fileTotal = files.length; + + // Store dates in local variables to ensure they're captured correctly in async closures + // This fixes the issue where dates become null inside async functions + const startDate = renderInfo.startDate ? renderInfo.startDate.clone() : null; + const endDate = renderInfo.endDate ? renderInfo.endDate.clone() : null; // Collect data from files, each file has one data point for each query const loopFilePromises = files.map(async (file) => { @@ -427,15 +432,19 @@ export default class Tracker extends Plugin { skipThisFile = true; processInfo.fileNotInFormat++; } else { - // console.log("file " + file.basename + " accepted"); - if (renderInfo.startDate !== null) { - if (xDate < renderInfo.startDate) { + // Date filtering: only include files within the specified date range + // Use isBefore/isAfter with 'day' granularity for clear, readable date comparisons + // Use local variables (startDate/endDate) captured before async loop to avoid closure issues + if (startDate !== null && startDate.isValid()) { + // Skip files with dates before the start date + if (xDate.isBefore(startDate, 'day')) { skipThisFile = true; processInfo.fileOutOfDateRange++; } } - if (renderInfo.endDate !== null) { - if (xDate > renderInfo.endDate) { + if (endDate !== null && endDate.isValid()) { + // Skip files with dates after the end date + if (xDate.isAfter(endDate, 'day')) { skipThisFile = true; processInfo.fileOutOfDateRange++; } @@ -465,7 +474,9 @@ export default class Tracker extends Plugin { } } } - if (skipThisFile) return; + if (skipThisFile) { + return; + } // console.log(xValueMap); // console.log(`minDate: ${minDate}`); // console.log(`maxDate: ${maxDate}`); diff --git a/src/parsing.ts b/src/parsing.ts index 7754409..b6f8bd7 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -1276,14 +1276,21 @@ export function getRenderInfoFromYaml( // startDate, endDate // console.log("Parsing startDate"); - if (typeof yaml.startDate === "string") { - if (/^([\-]?[0-9]+[\.][0-9]+|[\-]?[0-9]+)m$/.test(yaml.startDate)) { + // Handle both string and number types (YAML may parse numeric dates as numbers) + if (typeof yaml.startDate === "string" || typeof yaml.startDate === "number") { + let strStartDate: string; + if (typeof yaml.startDate === "number") { + strStartDate = yaml.startDate.toString(); + } else { + strStartDate = yaml.startDate; + } + if (/^([\-]?[0-9]+[\.][0-9]+|[\-]?[0-9]+)m$/.test(strStartDate)) { let errorMessage = "'m' for 'minute' is too small for parameter startDate, please use 'd' for 'day' or 'M' for month"; return errorMessage; } - let strStartDate = helper.getDateStringFromInputString( - yaml.startDate, + strStartDate = helper.getDateStringFromInputString( + strStartDate, renderInfo.dateFormatPrefix, renderInfo.dateFormatSuffix ); @@ -1318,14 +1325,21 @@ export function getRenderInfoFromYaml( } // console.log("Parsing endDate"); - if (typeof yaml.endDate === "string") { - if (/^([\-]?[0-9]+[\.][0-9]+|[\-]?[0-9]+)m$/.test(yaml.endDate)) { + // Handle both string and number types (YAML may parse numeric dates as numbers) + if (typeof yaml.endDate === "string" || typeof yaml.endDate === "number") { + let strEndDate: string; + if (typeof yaml.endDate === "number") { + strEndDate = yaml.endDate.toString(); + } else { + strEndDate = yaml.endDate; + } + if (/^([\-]?[0-9]+[\.][0-9]+|[\-]?[0-9]+)m$/.test(strEndDate)) { let errorMessage = "'m' for 'minute' is too small for parameter endDate, please use 'd' for 'day' or 'M' for month"; return errorMessage; } - let strEndDate = helper.getDateStringFromInputString( - yaml.endDate, + strEndDate = helper.getDateStringFromInputString( + strEndDate, renderInfo.dateFormatPrefix, renderInfo.dateFormatSuffix ); diff --git a/test/date-comparison-methods.test.ts b/test/date-comparison-methods.test.ts new file mode 100644 index 0000000..d078a6b --- /dev/null +++ b/test/date-comparison-methods.test.ts @@ -0,0 +1,86 @@ +/** + * Test to compare different date comparison methods + * + * Question: Is valueOf() the best method, or should we use isBefore/isAfter? + */ + +import * as helper from '../src/helper'; +import moment from 'moment'; + +describe('Date Comparison Methods', () => { + beforeAll(() => { + if (typeof (global as any).window === 'undefined') { + (global as any).window = {}; + } + (global as any).window.moment = moment; + }); + + describe('valueOf() vs isBefore/isAfter', () => { + it('should produce same results with valueOf() and isBefore/isAfter', () => { + const startDate = helper.strToDate('20240201', 'YYYYMMDD'); + const endDate = helper.strToDate('20240203', 'YYYYMMDD'); + const testDate = helper.strToDate('20240202', 'YYYYMMDD'); + + // Method 1: valueOf() (current implementation) + const inRangeValueOf = + testDate.valueOf() >= startDate.valueOf() && + testDate.valueOf() <= endDate.valueOf(); + + // Method 2: isBefore/isAfter with 'day' granularity + const inRangeMoment = + !testDate.isBefore(startDate, 'day') && + !testDate.isAfter(endDate, 'day'); + + // Method 3: isSameOrAfter/isSameOrBefore + const inRangeSame = + testDate.isSameOrAfter(startDate, 'day') && + testDate.isSameOrBefore(endDate, 'day'); + + expect(inRangeValueOf).toBe(true); + expect(inRangeMoment).toBe(true); + expect(inRangeSame).toBe(true); + }); + + it('should handle boundary dates correctly with both methods', () => { + const startDate = helper.strToDate('20240201', 'YYYYMMDD'); + const endDate = helper.strToDate('20240203', 'YYYYMMDD'); + + // Test start date boundary + const onStartDate = helper.strToDate('20240201', 'YYYYMMDD'); + expect(onStartDate.valueOf() >= startDate.valueOf()).toBe(true); + expect(!onStartDate.isBefore(startDate, 'day')).toBe(true); + expect(onStartDate.isSameOrAfter(startDate, 'day')).toBe(true); + + // Test end date boundary + const onEndDate = helper.strToDate('20240203', 'YYYYMMDD'); + expect(onEndDate.valueOf() <= endDate.valueOf()).toBe(true); + expect(!onEndDate.isAfter(endDate, 'day')).toBe(true); + expect(onEndDate.isSameOrBefore(endDate, 'day')).toBe(true); + }); + + it('should handle dates normalized to start of day', () => { + // strToDate normalizes to startOf('day'), so all dates should be at midnight + const date1 = helper.strToDate('20240201', 'YYYYMMDD'); + const date2 = helper.strToDate('20240201', 'YYYYMMDD'); + + // Both should be at midnight (00:00:00) + expect(date1.hours()).toBe(0); + expect(date1.minutes()).toBe(0); + expect(date1.seconds()).toBe(0); + expect(date1.valueOf()).toBe(date2.valueOf()); + }); + }); + + describe('Performance and clarity', () => { + it('should note that isBefore/isAfter is more explicit about day granularity', () => { + // isBefore/isAfter with 'day' is more explicit about what we're comparing + // valueOf() works but is less clear about granularity + const date1 = helper.strToDate('20240201', 'YYYYMMDD'); + const date2 = helper.strToDate('20240201', 'YYYYMMDD'); + + // Both methods work, but isBefore with 'day' is more explicit + expect(date1.isBefore(date2, 'day')).toBe(false); + expect(date1.valueOf() < date2.valueOf()).toBe(false); + }); + }); +}); diff --git a/test/date-format-yyyymmdd.test.ts b/test/date-format-yyyymmdd.test.ts new file mode 100644 index 0000000..94dae53 --- /dev/null +++ b/test/date-format-yyyymmdd.test.ts @@ -0,0 +1,206 @@ +/** + * Tests for Issue #324: YYYYMMDD date format not working properly for startDate/endDate + * + * Bug: When dateFormat is set to YYYYMMDD, the startDate and endDate settings + * become ineffective and all files are included regardless of the date range. + */ + +import * as helper from '../src/helper'; +import { RenderInfo } from '../src/data'; +import moment from 'moment'; + +describe('Issue #324: YYYYMMDD date format with startDate/endDate', () => { + // Set up window.moment for tests + beforeAll(() => { + if (typeof (global as any).window === 'undefined') { + (global as any).window = {}; + } + (global as any).window.moment = moment; + }); + + describe('strToDate function with YYYYMMDD format', () => { + it('should parse YYYYMMDD format correctly', () => { + const date = helper.strToDate('20240201', 'YYYYMMDD'); + expect(date.isValid()).toBe(true); + expect(date.format('YYYY-MM-DD')).toBe('2024-02-01'); + }); + + it('should parse YYYY-MM-DD format correctly (baseline)', () => { + const date = helper.strToDate('2024-02-01', 'YYYY-MM-DD'); + expect(date.isValid()).toBe(true); + expect(date.format('YYYY-MM-DD')).toBe('2024-02-01'); + }); + + it('should parse dates with YYYYMMDD format consistently', () => { + const date1 = helper.strToDate('20240201', 'YYYYMMDD'); + const date2 = helper.strToDate('20240203', 'YYYYMMDD'); + + expect(date1.isValid()).toBe(true); + expect(date2.isValid()).toBe(true); + + // Verify date comparison works + expect(date1.isBefore(date2)).toBe(true); + expect(date2.isAfter(date1)).toBe(true); + }); + }); + + describe('Date range filtering with YYYYMMDD format', () => { + it('should correctly compare dates parsed with YYYYMMDD format', () => { + const startDate = helper.strToDate('20240201', 'YYYYMMDD'); + const endDate = helper.strToDate('20240203', 'YYYYMMDD'); + const testDate1 = helper.strToDate('20240131', 'YYYYMMDD'); // Before range + const testDate2 = helper.strToDate('20240202', 'YYYYMMDD'); // In range + const testDate3 = helper.strToDate('20240204', 'YYYYMMDD'); // After range + + // These comparisons should work correctly + expect(testDate1.isBefore(startDate)).toBe(true); + expect(testDate2.isSameOrAfter(startDate) && testDate2.isSameOrBefore(endDate)).toBe(true); + expect(testDate3.isAfter(endDate)).toBe(true); + }); + + it('should correctly identify dates within range using isBefore/isAfter (fixed comparison)', () => { + const startDate = helper.strToDate('20240201', 'YYYYMMDD'); + const endDate = helper.strToDate('20240203', 'YYYYMMDD'); + const testDate1 = helper.strToDate('20240131', 'YYYYMMDD'); // Before + const testDate2 = helper.strToDate('20240202', 'YYYYMMDD'); // In range + const testDate3 = helper.strToDate('20240204', 'YYYYMMDD'); // After + + // Test the fixed comparison logic using isBefore/isAfter (more reliable) + const beforeRange = testDate1.isBefore(startDate, 'day'); + const inRange = !testDate2.isBefore(startDate, 'day') && !testDate2.isAfter(endDate, 'day'); + const afterRange = testDate3.isAfter(endDate, 'day'); + + expect(beforeRange).toBe(true); + expect(inRange).toBe(true); + expect(afterRange).toBe(true); + }); + + it('should correctly compare dates with YYYY-MM-DD format (baseline)', () => { + const startDate = helper.strToDate('2024-02-01', 'YYYY-MM-DD'); + const endDate = helper.strToDate('2024-02-03', 'YYYY-MM-DD'); + const testDate1 = helper.strToDate('2024-01-31', 'YYYY-MM-DD'); + const testDate2 = helper.strToDate('2024-02-02', 'YYYY-MM-DD'); + const testDate3 = helper.strToDate('2024-02-04', 'YYYY-MM-DD'); + + const beforeRange = testDate1 < startDate; + const inRange = !(testDate2 < startDate) && !(testDate2 > endDate); + const afterRange = testDate3 > endDate; + + expect(beforeRange).toBe(true); + expect(inRange).toBe(true); + expect(afterRange).toBe(true); + }); + }); + + describe('Reproducing the bug: date comparison with YYYYMMDD', () => { + it('should correctly filter dates when using YYYYMMDD format', () => { + // Simulate the scenario from the issue + const startDateStr = '20240201'; + const endDateStr = '20240203'; + const dateFormat = 'YYYYMMDD'; + + const startDate = helper.strToDate(startDateStr, dateFormat); + const endDate = helper.strToDate(endDateStr, dateFormat); + + // Test dates from different years (as mentioned in issue comments) + const datesToTest = [ + { str: '20180101', expected: 'before' }, // 2018 - before range + { str: '20190101', expected: 'before' }, // 2019 - before range + { str: '20240201', expected: 'in' }, // Start date + { str: '20240202', expected: 'in' }, // In range + { str: '20240203', expected: 'in' }, // End date + { str: '20240204', expected: 'after' }, // After range + ]; + + datesToTest.forEach(({ str, expected }) => { + const testDate = helper.strToDate(str, dateFormat); + expect(testDate.isValid()).toBe(true); + + // Apply the fixed filtering logic as in main.ts (using isBefore/isAfter) + let shouldSkip = false; + if (startDate !== null && startDate.isValid()) { + if (testDate.isBefore(startDate, 'day')) { + shouldSkip = true; + } + } + if (endDate !== null && endDate.isValid()) { + if (testDate.isAfter(endDate, 'day')) { + shouldSkip = true; + } + } + + if (expected === 'before' || expected === 'after') { + expect(shouldSkip).toBe(true); + } else { + expect(shouldSkip).toBe(false); + } + }); + }); + + it('BUG REPRODUCTION: should fail when dates have different format contexts', () => { + // This test reproduces the actual bug scenario + // When startDate/endDate are parsed with YYYYMMDD format, + // and file dates are also parsed with YYYYMMDD format, + // the comparison might fail due to format context issues + + const dateFormat = 'YYYYMMDD'; + + // Parse startDate and endDate (as done in parsing.ts) + const startDate = helper.strToDate('20240201', dateFormat); + const endDate = helper.strToDate('20240203', dateFormat); + + // Parse file dates (as done when reading files) + const fileDate1 = helper.strToDate('20180101', dateFormat); // Before range + const fileDate2 = helper.strToDate('20240202', dateFormat); // In range + const fileDate3 = helper.strToDate('20240204', dateFormat); // After range + + // Check if dates are valid + expect(startDate.isValid()).toBe(true); + expect(endDate.isValid()).toBe(true); + expect(fileDate1.isValid()).toBe(true); + expect(fileDate2.isValid()).toBe(true); + expect(fileDate3.isValid()).toBe(true); + + // The bug: comparison might fail if dates have different internal format storage + // Check the creation data format + const startFormat = startDate.creationData().format; + const fileFormat1 = fileDate1.creationData().format; + + // If formats differ, comparison might fail + // This is the suspected bug + const formatsMatch = startFormat.toString() === fileFormat1.toString(); + + // Test the actual comparison operators used in main.ts + const beforeRange = fileDate1 < startDate; + const inRange = !(fileDate2 < startDate) && !(fileDate2 > endDate); + const afterRange = fileDate3 > endDate; + + // These should all work correctly + expect(beforeRange).toBe(true); + expect(inRange).toBe(true); + expect(afterRange).toBe(true); + }); + }); + + describe('dateToStr and strToDate roundtrip with YYYYMMDD', () => { + it('should correctly roundtrip dates with YYYYMMDD format', () => { + const originalDate = moment('2024-02-01'); + const dateStr = helper.dateToStr(originalDate, 'YYYYMMDD'); + expect(dateStr).toBe('20240201'); + + const parsedDate = helper.strToDate(dateStr, 'YYYYMMDD'); + expect(parsedDate.isValid()).toBe(true); + expect(parsedDate.format('YYYY-MM-DD')).toBe('2024-02-01'); + }); + + it('should correctly roundtrip dates with YYYY-MM-DD format (baseline)', () => { + const originalDate = moment('2024-02-01'); + const dateStr = helper.dateToStr(originalDate, 'YYYY-MM-DD'); + expect(dateStr).toBe('2024-02-01'); + + const parsedDate = helper.strToDate(dateStr, 'YYYY-MM-DD'); + expect(parsedDate.isValid()).toBe(true); + expect(parsedDate.format('YYYY-MM-DD')).toBe('2024-02-01'); + }); + }); +}); diff --git a/test/edge-cases-date-filtering.test.ts b/test/edge-cases-date-filtering.test.ts new file mode 100644 index 0000000..f7a8877 --- /dev/null +++ b/test/edge-cases-date-filtering.test.ts @@ -0,0 +1,365 @@ +/** + * Edge case tests for date filtering + * + * Tests various edge cases that might not be covered by the main test cases + */ + +import { getRenderInfoFromYaml } from '../src/parsing'; +import { getDateFromFilename } from '../src/collecting'; +import { RenderInfo } from '../src/data'; +import moment from 'moment'; + +// Mock Tracker plugin +class MockTracker { + app: any; + settings: any; + + constructor() { + this.app = { + vault: { + getAbstractFileByPath: (path: string) => { + const { TFolder } = require('./mocks/obsidian'); + return new TFolder(path, path); + }, + getConfig: (key: string) => { + if (key === 'tabSize') return 4; + return null; + } + } + }; + this.settings = { + folder: '/', + dateFormat: 'YYYY-MM-DD' + }; + } +} + +describe('Edge Cases: Date Filtering', () => { + let mockPlugin: MockTracker; + + beforeAll(() => { + if (typeof (global as any).window === 'undefined') { + (global as any).window = {}; + } + (global as any).window.moment = moment; + mockPlugin = new MockTracker(); + }); + + describe('Boundary conditions', () => { + it('should include files with dates exactly equal to startDate', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test +dateFormat: YYYYMMDD +startDate: 20240201 +endDate: 20240203 +line: + title: Test +`.trim(); + + const renderInfo = getRenderInfoFromYaml(yamlText, mockPlugin as any); + if (typeof renderInfo === 'string') { + fail(`Parsing failed: ${renderInfo}`); + return; + } + + const file = { basename: '20240201', name: '20240201.md', path: 'test/20240201.md' }; + const fileDate = getDateFromFilename(file as any, renderInfo); + + const startDate = renderInfo.startDate!; + const endDate = renderInfo.endDate!; + + // File date equals startDate - should be included + expect(fileDate.valueOf() >= startDate.valueOf()).toBe(true); + expect(fileDate.valueOf() <= endDate.valueOf()).toBe(true); + }); + + it('should include files with dates exactly equal to endDate', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test +dateFormat: YYYYMMDD +startDate: 20240201 +endDate: 20240203 +line: + title: Test +`.trim(); + + const renderInfo = getRenderInfoFromYaml(yamlText, mockPlugin as any); + if (typeof renderInfo === 'string') { + fail(`Parsing failed: ${renderInfo}`); + return; + } + + const file = { basename: '20240203', name: '20240203.md', path: 'test/20240203.md' }; + const fileDate = getDateFromFilename(file as any, renderInfo); + + const startDate = renderInfo.startDate!; + const endDate = renderInfo.endDate!; + + // File date equals endDate - should be included + expect(fileDate.valueOf() >= startDate.valueOf()).toBe(true); + expect(fileDate.valueOf() <= endDate.valueOf()).toBe(true); + }); + + it('should exclude files with dates exactly one day before startDate', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test +dateFormat: YYYYMMDD +startDate: 20240201 +endDate: 20240203 +line: + title: Test +`.trim(); + + const renderInfo = getRenderInfoFromYaml(yamlText, mockPlugin as any); + if (typeof renderInfo === 'string') { + fail(`Parsing failed: ${renderInfo}`); + return; + } + + const file = { basename: '20240131', name: '20240131.md', path: 'test/20240131.md' }; + const fileDate = getDateFromFilename(file as any, renderInfo); + + const startDate = renderInfo.startDate!; + + // File date is before startDate - should be excluded + expect(fileDate.valueOf() < startDate.valueOf()).toBe(true); + }); + + it('should exclude files with dates exactly one day after endDate', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test +dateFormat: YYYYMMDD +startDate: 20240201 +endDate: 20240203 +line: + title: Test +`.trim(); + + const renderInfo = getRenderInfoFromYaml(yamlText, mockPlugin as any); + if (typeof renderInfo === 'string') { + fail(`Parsing failed: ${renderInfo}`); + return; + } + + const file = { basename: '20240204', name: '20240204.md', path: 'test/20240204.md' }; + const fileDate = getDateFromFilename(file as any, renderInfo); + + const endDate = renderInfo.endDate!; + + // File date is after endDate - should be excluded + expect(fileDate.valueOf() > endDate.valueOf()).toBe(true); + }); + }); + + describe('Missing date boundaries', () => { + it('should include all files when startDate is missing', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test +dateFormat: YYYYMMDD +endDate: 20240203 +line: + title: Test +`.trim(); + + const renderInfo = getRenderInfoFromYaml(yamlText, mockPlugin as any); + if (typeof renderInfo === 'string') { + fail(`Parsing failed: ${renderInfo}`); + return; + } + + expect(renderInfo.startDate).toBeNull(); + expect(renderInfo.endDate).not.toBeNull(); + + // Files before endDate should be included + const file = { basename: '20240101', name: '20240101.md', path: 'test/20240101.md' }; + const fileDate = getDateFromFilename(file as any, renderInfo); + const endDate = renderInfo.endDate!; + + expect(fileDate.valueOf() <= endDate.valueOf()).toBe(true); + }); + + it('should include all files when endDate is missing', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test +dateFormat: YYYYMMDD +startDate: 20240201 +line: + title: Test +`.trim(); + + const renderInfo = getRenderInfoFromYaml(yamlText, mockPlugin as any); + if (typeof renderInfo === 'string') { + fail(`Parsing failed: ${renderInfo}`); + return; + } + + expect(renderInfo.startDate).not.toBeNull(); + expect(renderInfo.endDate).toBeNull(); + + // Files after startDate should be included + const file = { basename: '20241231', name: '20241231.md', path: 'test/20241231.md' }; + const fileDate = getDateFromFilename(file as any, renderInfo); + const startDate = renderInfo.startDate!; + + expect(fileDate.valueOf() >= startDate.valueOf()).toBe(true); + }); + + it('should include all files when both startDate and endDate are missing', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test +dateFormat: YYYYMMDD +line: + title: Test +`.trim(); + + const renderInfo = getRenderInfoFromYaml(yamlText, mockPlugin as any); + if (typeof renderInfo === 'string') { + fail(`Parsing failed: ${renderInfo}`); + return; + } + + expect(renderInfo.startDate).toBeNull(); + expect(renderInfo.endDate).toBeNull(); + + // Any file should be processable + const file = { basename: '20240101', name: '20240101.md', path: 'test/20240101.md' }; + const fileDate = getDateFromFilename(file as any, renderInfo); + + expect(fileDate.isValid()).toBe(true); + }); + }); + + describe('Year/month boundaries', () => { + it('should handle dates at year boundary correctly', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test +dateFormat: YYYYMMDD +startDate: 20231231 +endDate: 20240102 +line: + title: Test +`.trim(); + + const renderInfo = getRenderInfoFromYaml(yamlText, mockPlugin as any); + if (typeof renderInfo === 'string') { + fail(`Parsing failed: ${renderInfo}`); + return; + } + + const files = [ + { basename: '20231230', expected: 'excluded' }, // Before + { basename: '20231231', expected: 'included' }, // Start + { basename: '20240101', expected: 'included' }, // Year boundary + { basename: '20240102', expected: 'included' }, // End + { basename: '20240103', expected: 'excluded' }, // After + ]; + + const startDate = renderInfo.startDate!; + const endDate = renderInfo.endDate!; + + for (const { basename, expected } of files) { + const file = { basename, name: `${basename}.md`, path: `test/${basename}.md` }; + const fileDate = getDateFromFilename(file as any, renderInfo); + + const inRange = + fileDate.valueOf() >= startDate.valueOf() && + fileDate.valueOf() <= endDate.valueOf(); + + if (expected === 'included') { + expect(inRange).toBe(true); + } else { + expect(inRange).toBe(false); + } + } + }); + + it('should handle dates at month boundary correctly', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test +dateFormat: YYYYMMDD +startDate: 20240131 +endDate: 20240202 +line: + title: Test +`.trim(); + + const renderInfo = getRenderInfoFromYaml(yamlText, mockPlugin as any); + if (typeof renderInfo === 'string') { + fail(`Parsing failed: ${renderInfo}`); + return; + } + + const files = [ + { basename: '20240130', expected: 'excluded' }, // Before + { basename: '20240131', expected: 'included' }, // Start (last day of Jan) + { basename: '20240201', expected: 'included' }, // Month boundary + { basename: '20240202', expected: 'included' }, // End + { basename: '20240203', expected: 'excluded' }, // After + ]; + + const startDate = renderInfo.startDate!; + const endDate = renderInfo.endDate!; + + for (const { basename, expected } of files) { + const file = { basename, name: `${basename}.md`, path: `test/${basename}.md` }; + const fileDate = getDateFromFilename(file as any, renderInfo); + + const inRange = + fileDate.valueOf() >= startDate.valueOf() && + fileDate.valueOf() <= endDate.valueOf(); + + if (expected === 'included') { + expect(inRange).toBe(true); + } else { + expect(inRange).toBe(false); + } + } + }); + }); + + describe('Invalid date handling', () => { + it('should handle files with invalid date formats gracefully', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test +dateFormat: YYYYMMDD +startDate: 20240201 +endDate: 20240203 +line: + title: Test +`.trim(); + + const renderInfo = getRenderInfoFromYaml(yamlText, mockPlugin as any); + if (typeof renderInfo === 'string') { + fail(`Parsing failed: ${renderInfo}`); + return; + } + + // File with invalid date format + const file = { basename: 'invalid-date', name: 'invalid-date.md', path: 'test/invalid-date.md' }; + const fileDate = getDateFromFilename(file as any, renderInfo); + + // Invalid dates should be marked as invalid + expect(fileDate.isValid()).toBe(false); + }); + }); +}); diff --git a/test/mocks/d3.ts b/test/mocks/d3.ts new file mode 100644 index 0000000..b5cfd5f --- /dev/null +++ b/test/mocks/d3.ts @@ -0,0 +1,2 @@ +// Mock for d3 library +export default {}; diff --git a/test/mocks/obsidian.ts b/test/mocks/obsidian.ts new file mode 100644 index 0000000..c2a2c87 --- /dev/null +++ b/test/mocks/obsidian.ts @@ -0,0 +1,93 @@ +// Mock for Obsidian API +// This provides window.moment which is used throughout the codebase + +import moment from 'moment'; + +// Create a global window object if it doesn't exist +if (typeof (global as any).window === 'undefined') { + (global as any).window = {}; +} + +// Mock window.moment with the actual moment library +(global as any).window.moment = moment; + +// Export minimal Obsidian types for TypeScript +export class TFile { + basename: string; + name: string; + path: string; + extension: string; + stat: any; + + constructor(basename: string, path: string = '') { + this.basename = basename; + this.name = basename; + this.path = path || basename; + this.extension = ''; + this.stat = {}; + } +} + +export class TFolder { + name: string; + path: string; + + constructor(name: string, path: string = '') { + this.name = name; + this.path = path || name; + } +} + +export function normalizePath(path: string): string { + return path.replace(/\\/g, '/'); +} + +export interface CachedMetadata { + frontmatter?: Record; + tags?: Array<{ tag: string }>; +} + +// Simple YAML parser for testing (handles basic key-value pairs and nested objects) +export function parseYaml(yamlText: string): any { + const result: any = {}; + const lines = yamlText.split('\n'); + const stack: Array<{ obj: any; indent: number }> = [{ obj: result, indent: -1 }]; + + for (const line of lines) { + const trimmed = line.trim(); + if (!trimmed || trimmed.startsWith('#')) continue; + + // Calculate indentation (spaces before first non-space char) + const indent = line.length - line.trimStart().length; + + // Pop stack until we find the parent at this indentation level + while (stack.length > 1 && stack[stack.length - 1].indent >= indent) { + stack.pop(); + } + + const colonIndex = trimmed.indexOf(':'); + if (colonIndex === -1) continue; + + const key = trimmed.substring(0, colonIndex).trim(); + let value: any = trimmed.substring(colonIndex + 1).trim(); + + // Remove quotes if present + if ((value.startsWith('"') && value.endsWith('"')) || + (value.startsWith("'") && value.endsWith("'"))) { + value = value.slice(1, -1); + } + + // If value is empty, it's likely a nested object + const currentObj = stack[stack.length - 1].obj; + if (value === '') { + // Create nested object + currentObj[key] = {}; + stack.push({ obj: currentObj[key], indent: indent }); + } else { + // Simple key-value pair + currentObj[key] = value; + } + } + + return result; +} diff --git a/test/parsing-yyyymmdd.test.ts b/test/parsing-yyyymmdd.test.ts new file mode 100644 index 0000000..34d6f87 --- /dev/null +++ b/test/parsing-yyyymmdd.test.ts @@ -0,0 +1,154 @@ +/** + * Tests for Issue #324: YYYYMMDD date format parsing in getRenderInfoFromYaml + * + * This test verifies that startDate and endDate are correctly parsed from YAML + * when dateFormat is YYYYMMDD. + */ + +import { getRenderInfoFromYaml } from '../src/parsing'; +import { RenderInfo } from '../src/data'; +import moment from 'moment'; + +// Mock Tracker plugin +class MockTracker { + app: any; + settings: any; + + constructor() { + this.app = { + vault: { + getAbstractFileByPath: (path: string) => { + // Return a mock folder for any path + const { TFolder } = require('./mocks/obsidian'); + return new TFolder(path, path); + }, + getConfig: (key: string) => { + if (key === 'tabSize') return 4; + return null; + } + } + }; + this.settings = { + folder: '/', + dateFormat: 'YYYY-MM-DD' + }; + } +} + +describe('Issue #324: YYYYMMDD date format parsing', () => { + let mockPlugin: MockTracker; + + beforeAll(() => { + if (typeof (global as any).window === 'undefined') { + (global as any).window = {}; + } + (global as any).window.moment = moment; + mockPlugin = new MockTracker(); + }); + + it('should parse startDate and endDate with YYYYMMDD format', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test-issue-324 +dateFormat: YYYYMMDD +startDate: 20240201 +endDate: 20240203 +line: + title: Test +`.trim(); + + const result = getRenderInfoFromYaml(yamlText, mockPlugin as any); + + // Log the actual result to see what we're getting + if (typeof result === 'string') { + console.log('Error message:', result); + } + + expect(typeof result).toBe('object'); + expect(result).not.toBeInstanceOf(String); // Should not be an error message + + const renderInfo = result as RenderInfo; + + // Check that dateFormat is set correctly + expect(renderInfo.dateFormat).toBe('YYYYMMDD'); + + // Check that startDate and endDate are parsed correctly + expect(renderInfo.startDate).not.toBeNull(); + expect(renderInfo.startDate?.isValid()).toBe(true); + expect(renderInfo.startDate?.format('YYYY-MM-DD')).toBe('2024-02-01'); + + expect(renderInfo.endDate).not.toBeNull(); + expect(renderInfo.endDate?.isValid()).toBe(true); + expect(renderInfo.endDate?.format('YYYY-MM-DD')).toBe('2024-02-03'); + }); + + it('should parse startDate and endDate with YYYY-MM-DD format (baseline)', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test-issue-324 +dateFormat: YYYY-MM-DD +startDate: 2024-02-01 +endDate: 2024-02-03 +line: + title: Test +`.trim(); + + const result = getRenderInfoFromYaml(yamlText, mockPlugin as any); + + expect(typeof result).toBe('object'); + expect(result).not.toBeInstanceOf(String); + + const renderInfo = result as RenderInfo; + + expect(renderInfo.dateFormat).toBe('YYYY-MM-DD'); + expect(renderInfo.startDate).not.toBeNull(); + expect(renderInfo.startDate?.isValid()).toBe(true); + expect(renderInfo.startDate?.format('YYYY-MM-DD')).toBe('2024-02-01'); + + expect(renderInfo.endDate).not.toBeNull(); + expect(renderInfo.endDate?.isValid()).toBe(true); + expect(renderInfo.endDate?.format('YYYY-MM-DD')).toBe('2024-02-03'); + }); + + it('should handle missing startDate and endDate', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test-issue-324 +dateFormat: YYYYMMDD +line: + title: Test +`.trim(); + + const result = getRenderInfoFromYaml(yamlText, mockPlugin as any); + + expect(typeof result).toBe('object'); + expect(result).not.toBeInstanceOf(String); + + const renderInfo = result as RenderInfo; + + expect(renderInfo.dateFormat).toBe('YYYYMMDD'); + expect(renderInfo.startDate).toBeNull(); + expect(renderInfo.endDate).toBeNull(); + }); + + it('should return error for invalid startDate format', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test-issue-324 +dateFormat: YYYYMMDD +startDate: invalid-date +endDate: 20240203 +line: + title: Test +`.trim(); + + const result = getRenderInfoFromYaml(yamlText, mockPlugin as any); + + expect(typeof result).toBe('string'); // Should be an error message + expect(result).toContain('Invalid startDate'); + }); +}); diff --git a/test/setup.ts b/test/setup.ts new file mode 100644 index 0000000..1912fc4 --- /dev/null +++ b/test/setup.ts @@ -0,0 +1,11 @@ +// Jest setup file +// This runs before each test file + +// Ensure window.moment is available globally +import moment from 'moment'; + +if (typeof (global as any).window === 'undefined') { + (global as any).window = {}; +} + +(global as any).window.moment = moment; From b1f2c7d455c2935d9abea059fb56d9ae077e8f53 Mon Sep 17 00:00:00 2001 From: curious-archaea Date: Tue, 10 Feb 2026 17:08:20 -0500 Subject: [PATCH 263/277] fix npm install integrity issue and refresh lockfile --- package-lock.json | 699 +++++++++++++++++++++++++++++++--------------- 1 file changed, 468 insertions(+), 231 deletions(-) diff --git a/package-lock.json b/package-lock.json index 899be75..5309b32 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,39 +30,39 @@ } }, "node_modules/@codemirror/state": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.2.tgz", - "integrity": "sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.0.tgz", + "integrity": "sha512-MwBHVK60IiIHDcoMet78lxt6iw5gJOGSbNbOIVBHWVXIH4/Nq1+GQgLLGgI1KlnN86WDXsPudVaqYHKBIx7Eyw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@marijn/find-cluster-break": "^1.0.0" } }, "node_modules/@codemirror/view": { - "version": "6.36.8", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.36.8.tgz", - "integrity": "sha512-yoRo4f+FdnD01fFt4XpfpMCcCAo9QvZOtbrXExn4SqzH32YC6LgzqxfLZw/r6Ge65xyY03mK/UfUqrVw1gFiFg==", + "version": "6.38.6", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.38.6.tgz", + "integrity": "sha512-qiS0z1bKs5WOvHIAC0Cybmv4AJSkAXgX5aD6Mqd2epSLlVJsQl8NG23jCVouIgkh4All/mrbdsf2UOLFnJw0tw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@codemirror/state": "^6.5.0", + "crelt": "^1.0.6", "style-mod": "^4.1.0", "w3c-keyname": "^2.2.4" } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { @@ -70,40 +70,35 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -114,6 +109,7 @@ "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/@nodelib/fs.scandir": { @@ -121,6 +117,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -134,6 +131,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -143,6 +141,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -152,9 +151,9 @@ } }, "node_modules/@rollup/plugin-commonjs": { - "version": "28.0.5", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.5.tgz", - "integrity": "sha512-lytLp2JgAMwqJY6ve3OSROXr2XuEYHjnsQN3hmnxC+w11dI91LuUw4Yc1kk2FqKXeMG8psoFejFgK+znoij0cg==", + "version": "28.0.9", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.9.tgz", + "integrity": "sha512-PIR4/OHZ79romx0BVVll/PkwWpJ7e5lsqFa3gFfcrFPWwLXLV39JVUzQV9RKjWerE7B845Hqjj9VYlQeieZ2dA==", "dev": true, "license": "MIT", "dependencies": { @@ -179,10 +178,11 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.1.tgz", - "integrity": "sha512-tk5YCxJWIG81umIvNkSod2qK5KyQW19qcBF/B78n1bjtOON6gzKoVeSzAE8yHCZEDmqkHKkxplExA8KzdJLJpA==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.3.tgz", + "integrity": "sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "@types/resolve": "1.20.2", @@ -207,6 +207,7 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", "dev": true, + "license": "MIT", "dependencies": { "serialize-javascript": "^6.0.1", "smob": "^1.0.0", @@ -225,10 +226,11 @@ } }, "node_modules/@rollup/plugin-typescript": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.2.tgz", - "integrity": "sha512-cdtSp154H5sv637uMr1a8OTWB0L1SWDSm1rDGiyfcGcvQ6cuTs4MDk2BVEBGysUWago4OJN4EQZqOTl/QY3Jgg==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.3.0.tgz", + "integrity": "sha512-7DP0/p7y3t67+NabT9f8oTBFE6gGkto4SA6Np2oudYmZE/m1dt8RB0SjL1msMxFpLo631qjRCcBlAbq1ml/Big==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.1.0", "resolve": "^1.22.1" @@ -251,10 +253,11 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", - "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", @@ -273,9 +276,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.0.tgz", - "integrity": "sha512-xEiEE5oDW6tK4jXCAyliuntGR+amEMO7HLtdSshVuhFnKTYoeYMyXQK7pLouAJJj5KHdwdn87bfHAR2nSdNAUA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz", + "integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==", "cpu": [ "arm" ], @@ -287,9 +290,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.44.0.tgz", - "integrity": "sha512-uNSk/TgvMbskcHxXYHzqwiyBlJ/lGcv8DaUfcnNwict8ba9GTTNxfn3/FAoFZYgkaXXAdrAA+SLyKplyi349Jw==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz", + "integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==", "cpu": [ "arm64" ], @@ -301,9 +304,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.44.0.tgz", - "integrity": "sha512-VGF3wy0Eq1gcEIkSCr8Ke03CWT+Pm2yveKLaDvq51pPpZza3JX/ClxXOCmTYYq3us5MvEuNRTaeyFThCKRQhOA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz", + "integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==", "cpu": [ "arm64" ], @@ -315,9 +318,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.44.0.tgz", - "integrity": "sha512-fBkyrDhwquRvrTxSGH/qqt3/T0w5Rg0L7ZIDypvBPc1/gzjJle6acCpZ36blwuwcKD/u6oCE/sRWlUAcxLWQbQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz", + "integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==", "cpu": [ "x64" ], @@ -329,9 +332,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.44.0.tgz", - "integrity": "sha512-u5AZzdQJYJXByB8giQ+r4VyfZP+walV+xHWdaFx/1VxsOn6eWJhK2Vl2eElvDJFKQBo/hcYIBg/jaKS8ZmKeNQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz", + "integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==", "cpu": [ "arm64" ], @@ -343,9 +346,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.44.0.tgz", - "integrity": "sha512-qC0kS48c/s3EtdArkimctY7h3nHicQeEUdjJzYVJYR3ct3kWSafmn6jkNCA8InbUdge6PVx6keqjk5lVGJf99g==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz", + "integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==", "cpu": [ "x64" ], @@ -357,9 +360,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.44.0.tgz", - "integrity": "sha512-x+e/Z9H0RAWckn4V2OZZl6EmV0L2diuX3QB0uM1r6BvhUIv6xBPL5mrAX2E3e8N8rEHVPwFfz/ETUbV4oW9+lQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz", + "integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==", "cpu": [ "arm" ], @@ -371,9 +374,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.44.0.tgz", - "integrity": "sha512-1exwiBFf4PU/8HvI8s80icyCcnAIB86MCBdst51fwFmH5dyeoWVPVgmQPcKrMtBQ0W5pAs7jBCWuRXgEpRzSCg==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz", + "integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==", "cpu": [ "arm" ], @@ -385,9 +388,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.44.0.tgz", - "integrity": "sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz", + "integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==", "cpu": [ "arm64" ], @@ -399,9 +402,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.44.0.tgz", - "integrity": "sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz", + "integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==", "cpu": [ "arm64" ], @@ -412,10 +415,10 @@ "linux" ] }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.44.0.tgz", - "integrity": "sha512-xw+FTGcov/ejdusVOqKgMGW3c4+AgqrfvzWEVXcNP6zq2ue+lsYUgJ+5Rtn/OTJf7e2CbgTFvzLW2j0YAtj0Gg==", + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz", + "integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==", "cpu": [ "loong64" ], @@ -426,10 +429,38 @@ "linux" ] }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.44.0.tgz", - "integrity": "sha512-bKGibTr9IdF0zr21kMvkZT4K6NV+jjRnBoVMt2uNMG0BYWm3qOVmYnXKzx7UhwrviKnmK46IKMByMgvpdQlyJQ==", + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz", + "integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz", + "integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz", + "integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==", "cpu": [ "ppc64" ], @@ -441,9 +472,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.44.0.tgz", - "integrity": "sha512-vV3cL48U5kDaKZtXrti12YRa7TyxgKAIDoYdqSIOMOFBXqFj2XbChHAtXquEn2+n78ciFgr4KIqEbydEGPxXgA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz", + "integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==", "cpu": [ "riscv64" ], @@ -455,9 +486,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.44.0.tgz", - "integrity": "sha512-TDKO8KlHJuvTEdfw5YYFBjhFts2TR0VpZsnLLSYmB7AaohJhM8ctDSdDnUGq77hUh4m/djRafw+9zQpkOanE2Q==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz", + "integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==", "cpu": [ "riscv64" ], @@ -469,9 +500,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.44.0.tgz", - "integrity": "sha512-8541GEyktXaw4lvnGp9m84KENcxInhAt6vPWJ9RodsB/iGjHoMB2Pp5MVBCiKIRxrxzJhGCxmNzdu+oDQ7kwRA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz", + "integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==", "cpu": [ "s390x" ], @@ -483,9 +514,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.44.0.tgz", - "integrity": "sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz", + "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==", "cpu": [ "x64" ], @@ -497,9 +528,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.44.0.tgz", - "integrity": "sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz", + "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==", "cpu": [ "x64" ], @@ -510,10 +541,38 @@ "linux" ] }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz", + "integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz", + "integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.44.0.tgz", - "integrity": "sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz", + "integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==", "cpu": [ "arm64" ], @@ -525,9 +584,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.44.0.tgz", - "integrity": "sha512-3XJ0NQtMAXTWFW8FqZKcw3gOQwBtVWP/u8TpHP3CRPXD7Pd6s8lLdH3sHWh8vqKCyyiI8xW5ltJScQmBU9j7WA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz", + "integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==", "cpu": [ "ia32" ], @@ -538,10 +597,24 @@ "win32" ] }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz", + "integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.0.tgz", - "integrity": "sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz", + "integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==", "cpu": [ "x64" ], @@ -557,6 +630,7 @@ "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.8.tgz", "integrity": "sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw==", "dev": true, + "license": "MIT", "dependencies": { "@types/tern": "*" } @@ -566,6 +640,7 @@ "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-array": "*", "@types/d3-axis": "*", @@ -600,16 +675,18 @@ } }, "node_modules/@types/d3-array": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", - "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", - "dev": true + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-axis": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-selection": "*" } @@ -619,6 +696,7 @@ "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-selection": "*" } @@ -627,19 +705,22 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-color": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-contour": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-array": "*", "@types/geojson": "*" @@ -649,19 +730,22 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-dispatch": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz", - "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==", - "dev": true + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz", + "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==", + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-drag": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-selection": "*" } @@ -670,19 +754,22 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-ease": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-fetch": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-dsv": "*" } @@ -691,19 +778,22 @@ "version": "3.0.10", "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-format": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-geo": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/geojson": "*" } @@ -712,13 +802,15 @@ "version": "3.1.7", "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-interpolate": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-color": "*" } @@ -727,31 +819,36 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-polygon": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-quadtree": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-random": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-scale": { "version": "4.0.9", "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-time": "*" } @@ -760,19 +857,22 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-selection": { "version": "3.0.11", "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-shape": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", - "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", + "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-path": "*" } @@ -781,25 +881,29 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-time-format": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-timer": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-transition": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-selection": "*" } @@ -809,6 +913,7 @@ "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-interpolate": "*", "@types/d3-selection": "*" @@ -826,6 +931,7 @@ "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz", "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -834,13 +940,15 @@ "version": "7946.0.16", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, + "license": "MIT", "dependencies": { "@types/minimatch": "*", "@types/node": "*" @@ -850,44 +958,49 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { - "version": "24.0.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.3.tgz", - "integrity": "sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==", + "version": "24.10.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.13.tgz", + "integrity": "sha512-oH72nZRfDv9lADUBSo104Aq7gPHpQZc4BTx38r9xf9pg5LfP6EzSyH2n7qFmmxRQXh7YlUXODcYsg6PuTDSxGg==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.8.0" + "undici-types": "~7.16.0" } }, "node_modules/@types/resolve": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/sprintf-js": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@types/sprintf-js/-/sprintf-js-1.1.4.tgz", "integrity": "sha512-aWK1reDYWxcjgcIIPmQi3u+OQDuYa9b+lr6eIsGWrekJ9vr1NSjr4Eab8oQ1iKuH1ltFHpXGyerAv1a3FMKxzQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/tern": { "version": "0.23.9", "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.9.tgz", "integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "*" } }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -900,6 +1013,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -908,13 +1022,15 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -925,6 +1041,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -936,18 +1053,21 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/colorette": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", "engines": { "node": ">= 10" } @@ -956,18 +1076,29 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/crelt": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/d3": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "license": "ISC", "dependencies": { "d3-array": "3", "d3-axis": "3", @@ -1008,6 +1139,7 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", "dependencies": { "internmap": "1 - 2" }, @@ -1019,6 +1151,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1027,6 +1160,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", @@ -1042,6 +1176,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "license": "ISC", "dependencies": { "d3-path": "1 - 3" }, @@ -1053,6 +1188,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1061,6 +1197,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "license": "ISC", "dependencies": { "d3-array": "^3.2.0" }, @@ -1072,6 +1209,7 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "license": "ISC", "dependencies": { "delaunator": "5" }, @@ -1083,6 +1221,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1091,6 +1230,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-selection": "3" @@ -1103,6 +1243,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "license": "ISC", "dependencies": { "commander": "7", "iconv-lite": "0.6", @@ -1127,6 +1268,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", "engines": { "node": ">=12" } @@ -1135,6 +1277,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "license": "ISC", "dependencies": { "d3-dsv": "1 - 3" }, @@ -1146,6 +1289,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-quadtree": "1 - 3", @@ -1156,9 +1300,10 @@ } }, "node_modules/d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", + "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1167,6 +1312,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "license": "ISC", "dependencies": { "d3-array": "2.5.0 - 3" }, @@ -1178,6 +1324,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1186,6 +1333,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", "dependencies": { "d3-color": "1 - 3" }, @@ -1197,6 +1345,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1205,6 +1354,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1213,6 +1363,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1221,6 +1372,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1229,6 +1381,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", "dependencies": { "d3-array": "2.10.0 - 3", "d3-format": "1 - 3", @@ -1244,6 +1397,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "license": "ISC", "dependencies": { "d3-color": "1 - 3", "d3-interpolate": "1 - 3" @@ -1256,6 +1410,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1264,6 +1419,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", "dependencies": { "d3-path": "^3.1.0" }, @@ -1275,6 +1431,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", "dependencies": { "d3-array": "2 - 3" }, @@ -1286,6 +1443,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", "dependencies": { "d3-time": "1 - 3" }, @@ -1297,6 +1455,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1305,6 +1464,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", "dependencies": { "d3-color": "1 - 3", "d3-dispatch": "1 - 3", @@ -1323,6 +1483,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", @@ -1339,6 +1500,7 @@ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1347,6 +1509,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", + "license": "ISC", "dependencies": { "robust-predicates": "^3.0.2" } @@ -1356,6 +1519,7 @@ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -1367,13 +1531,15 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -1386,19 +1552,24 @@ } }, "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/fdir": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", - "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -1413,6 +1584,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1425,6 +1597,7 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -1438,7 +1611,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", @@ -1446,6 +1620,7 @@ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -1459,6 +1634,7 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -1467,8 +1643,9 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1489,6 +1666,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -1501,6 +1679,7 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", "dev": true, + "license": "MIT", "dependencies": { "@types/glob": "^7.1.1", "array-union": "^2.1.0", @@ -1519,13 +1698,15 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -1537,6 +1718,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -1549,6 +1731,7 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -1559,6 +1742,7 @@ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -1568,12 +1752,14 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/internmap": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1583,6 +1769,7 @@ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, + "license": "MIT", "dependencies": { "hasown": "^2.0.2" }, @@ -1598,6 +1785,7 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1607,6 +1795,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -1618,13 +1807,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -1634,6 +1825,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1643,6 +1835,7 @@ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "*" } @@ -1651,6 +1844,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", + "license": "MIT", "engines": { "node": ">= 10.16.0" } @@ -1660,17 +1854,19 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, + "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "node_modules/magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" + "@jridgewell/sourcemap-codec": "^1.5.5" } }, "node_modules/merge2": { @@ -1678,6 +1874,7 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -1687,6 +1884,7 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -1700,6 +1898,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -1712,6 +1911,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1724,14 +1924,15 @@ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/obsidian": { - "version": "1.8.7", + "version": "1.12.0", "resolved": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "integrity": "sha512-0yByIRBSLYSpg0PrVhysWyRU55BrsaJl484RmRX2lM4AJ7VVMy/8jC9aj7VfW7D+1Iy4h1iUACGbIqdFjlUo+Q==", + "integrity": "sha512-y1XtnfQKldoFKmVEbqf20jYnQ9Nhhn6hEWxodkNMG9jO9xjyLAY2ELgPuxLAxNJ/AP+FIhVjGIHuNkHqzTokJg==", "dev": true, "license": "MIT", "dependencies": { @@ -1739,8 +1940,8 @@ "moment": "2.29.4" }, "peerDependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" + "@codemirror/state": "6.5.0", + "@codemirror/view": "6.38.6" } }, "node_modules/once": { @@ -1748,6 +1949,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } @@ -1757,6 +1959,7 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1765,22 +1968,25 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -1806,24 +2012,27 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", "dev": true, + "license": "MIT", "dependencies": { - "is-core-module": "^2.16.0", + "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -1842,6 +2051,7 @@ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -1850,12 +2060,13 @@ "node_modules/robust-predicates": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", - "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", + "license": "Unlicense" }, "node_modules/rollup": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.44.0.tgz", - "integrity": "sha512-qHcdEzLCiktQIfwBq420pn2dP+30uzqYxv9ETm91wdt2R9AFcWfjNAmje4NWlnCIQ5RMTzVf0ZyisOKqHR6RwA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz", + "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==", "dev": true, "license": "MIT", "dependencies": { @@ -1869,26 +2080,31 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.44.0", - "@rollup/rollup-android-arm64": "4.44.0", - "@rollup/rollup-darwin-arm64": "4.44.0", - "@rollup/rollup-darwin-x64": "4.44.0", - "@rollup/rollup-freebsd-arm64": "4.44.0", - "@rollup/rollup-freebsd-x64": "4.44.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.44.0", - "@rollup/rollup-linux-arm-musleabihf": "4.44.0", - "@rollup/rollup-linux-arm64-gnu": "4.44.0", - "@rollup/rollup-linux-arm64-musl": "4.44.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.44.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.44.0", - "@rollup/rollup-linux-riscv64-gnu": "4.44.0", - "@rollup/rollup-linux-riscv64-musl": "4.44.0", - "@rollup/rollup-linux-s390x-gnu": "4.44.0", - "@rollup/rollup-linux-x64-gnu": "4.44.0", - "@rollup/rollup-linux-x64-musl": "4.44.0", - "@rollup/rollup-win32-arm64-msvc": "4.44.0", - "@rollup/rollup-win32-ia32-msvc": "4.44.0", - "@rollup/rollup-win32-x64-msvc": "4.44.0", + "@rollup/rollup-android-arm-eabi": "4.57.1", + "@rollup/rollup-android-arm64": "4.57.1", + "@rollup/rollup-darwin-arm64": "4.57.1", + "@rollup/rollup-darwin-x64": "4.57.1", + "@rollup/rollup-freebsd-arm64": "4.57.1", + "@rollup/rollup-freebsd-x64": "4.57.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", + "@rollup/rollup-linux-arm-musleabihf": "4.57.1", + "@rollup/rollup-linux-arm64-gnu": "4.57.1", + "@rollup/rollup-linux-arm64-musl": "4.57.1", + "@rollup/rollup-linux-loong64-gnu": "4.57.1", + "@rollup/rollup-linux-loong64-musl": "4.57.1", + "@rollup/rollup-linux-ppc64-gnu": "4.57.1", + "@rollup/rollup-linux-ppc64-musl": "4.57.1", + "@rollup/rollup-linux-riscv64-gnu": "4.57.1", + "@rollup/rollup-linux-riscv64-musl": "4.57.1", + "@rollup/rollup-linux-s390x-gnu": "4.57.1", + "@rollup/rollup-linux-x64-gnu": "4.57.1", + "@rollup/rollup-linux-x64-musl": "4.57.1", + "@rollup/rollup-openbsd-x64": "4.57.1", + "@rollup/rollup-openharmony-arm64": "4.57.1", + "@rollup/rollup-win32-arm64-msvc": "4.57.1", + "@rollup/rollup-win32-ia32-msvc": "4.57.1", + "@rollup/rollup-win32-x64-gnu": "4.57.1", + "@rollup/rollup-win32-x64-msvc": "4.57.1", "fsevents": "~2.3.2" } }, @@ -1897,6 +2113,7 @@ "resolved": "https://registry.npmjs.org/rollup-plugin-copy/-/rollup-plugin-copy-3.5.0.tgz", "integrity": "sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA==", "dev": true, + "license": "MIT", "dependencies": { "@types/fs-extra": "^8.0.1", "colorette": "^1.1.0", @@ -1927,6 +2144,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -1934,7 +2152,8 @@ "node_modules/rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" }, "node_modules/safe-buffer": { "version": "5.2.1", @@ -1954,18 +2173,21 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -1975,6 +2197,7 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -1983,13 +2206,15 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz", "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -1999,6 +2224,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -2007,13 +2233,15 @@ "node_modules/sprintf-js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "license": "BSD-3-Clause" }, "node_modules/style-mod": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz", - "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.3.tgz", + "integrity": "sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/supports-preserve-symlinks-flag": { @@ -2021,6 +2249,7 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -2029,13 +2258,14 @@ } }, "node_modules/terser": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", - "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", + "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", + "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -2050,13 +2280,15 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -2068,13 +2300,15 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -2084,9 +2318,9 @@ } }, "node_modules/undici-types": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", - "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", "dev": true, "license": "MIT" }, @@ -2095,6 +2329,7 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.0.0" } @@ -2104,13 +2339,15 @@ "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" } } } From eed489e3a3087e6c18163215dc3ac0e4f19ebb5b Mon Sep 17 00:00:00 2001 From: curious-archaea Date: Tue, 10 Feb 2026 20:29:39 -0500 Subject: [PATCH 264/277] fix rollup error during build caused by inferred conflict between outDir and dir --- rollup.config.build.mjs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/rollup.config.build.mjs b/rollup.config.build.mjs index d1c1841..85eae08 100644 --- a/rollup.config.build.mjs +++ b/rollup.config.build.mjs @@ -13,7 +13,15 @@ export default { }, external: ['obsidian'], plugins: [ - typescript(), + typescript({ + // Added these lines to fix a rollup error: "Path of Typescript compiler option 'outDir' must be located inside Rollup 'dir' option." + tsconfig: 'tsconfig.json', + rootDir: 'src', + // outDir must be a subdirectory of Rollup's output.dir ('.') to satisfy @rollup/plugin-typescript's validation. + // 'dist' is a placeholder, since TypeScript doesn't emit files here. Rollup handles all output. + // (there might be more elegant ways to deal with this - just not quite sure how.) + outDir: 'dist' + }), nodeResolve({browser: true}), commonjs(), terser() From c9c99d440bdc8f2c7034467e61980a5b7460fec6 Mon Sep 17 00:00:00 2001 From: curious-archaea Date: Wed, 18 Feb 2026 15:08:17 -0500 Subject: [PATCH 265/277] feat: support trackable list values in frontmatter This allows users to search a custom YAML property containing a list for a single search target. It extends the list search functionality available via searchType: tag to other frontmatter properties. Closes feature request #420 Changes include: - Add searchType: frontmatterlist to check whether a specific value is present in a frontmatter key that holds a list. - Add collectDataFromFrontmatterList to collecting.ts, based on collectDataFromFrontmatterTag - Update documentation with usage examples for frontmatterlist - Update examples vault with diary entries for test data and tests in TestFrontmatterList.md - Version bump to 1.18.0 This should not change existing behavior unless the new feature is used. --- docs/Concepts.md | 4 +- docs/Examples.md | 2 + docs/TargetEvaluation.md | 40 ++++++++++++++++- examples/TestFrontmatter.md | 9 ++-- examples/TestFrontmatterList.md | 76 +++++++++++++++++++++++++++++++++ examples/diary/2026-02-08.md | 3 ++ examples/diary/2026-02-09.md | 4 ++ examples/diary/2026-02-10.md | 4 ++ examples/diary/2026-02-11.md | 4 ++ examples/diary/2026-02-12.md | 3 ++ examples/diary/2026-02-13.md | 4 ++ examples/diary/2026-02-14.md | 7 +++ examples/diary/2026-02-15.md | 5 +++ examples/diary/2026-02-16.md | 6 +++ examples/diary/2026-02-17.md | 5 +++ examples/diary/2026-02-18.md | 4 ++ manifest.json | 2 +- src/collecting.ts | 47 ++++++++++++++++++++ src/data.ts | 1 + src/main.ts | 13 ++++++ src/parsing.ts | 4 ++ versions.json | 3 +- 22 files changed, 242 insertions(+), 8 deletions(-) create mode 100644 examples/TestFrontmatterList.md create mode 100644 examples/diary/2026-02-08.md create mode 100644 examples/diary/2026-02-09.md create mode 100644 examples/diary/2026-02-10.md create mode 100644 examples/diary/2026-02-11.md create mode 100644 examples/diary/2026-02-12.md create mode 100644 examples/diary/2026-02-13.md create mode 100644 examples/diary/2026-02-14.md create mode 100644 examples/diary/2026-02-15.md create mode 100644 examples/diary/2026-02-16.md create mode 100644 examples/diary/2026-02-17.md create mode 100644 examples/diary/2026-02-18.md diff --git a/docs/Concepts.md b/docs/Concepts.md index 159a718..a969891 100644 --- a/docs/Concepts.md +++ b/docs/Concepts.md @@ -6,11 +6,11 @@ This plugin was designed to read code blocks in [YAML format](https://en.wikiped ### Collecting Data -Providing parameters `searchType` and `searchTarget` is the minimum requirement for a successful data collection. `searchType` can be `tag`, `frontmatter`, `wiki`, `dvField`, `table`, `fileMeta`, `task`, or `text`. Then the cooresponding `searchTarget` should be provided according to the specified type. +Providing parameters `searchType` and `searchTarget` is the minimum requirement for a successful data collection. `searchType` can be `tag`, `frontmatter`, `frontmatterlist`, `wiki`, `dvField`, `table`, `fileMeta`, `task`, or `text`. Then the cooresponding `searchTarget` should be provided according to the specified type. ### Target Evaluation -Depends on the `searchType` and the `searchTarget` you provided, the evaluation of a target would be different. Simply speaking, you can track the occurrences of a target or the value attached/embedded in it. +Depending on the `searchType` and the `searchTarget` you provided, the evaluation of a target would be different. Simply speaking, you can track the occurrences of a target or the value attached/embedded in it. To see the detail about the target evaluation, please check the document [Target Evaluation](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/TargetEvaluation.md). diff --git a/docs/Examples.md b/docs/Examples.md index b68f4e7..2d09417 100644 --- a/docs/Examples.md +++ b/docs/Examples.md @@ -35,6 +35,7 @@ Check where (Location) and what (Target to Track) is your target and find the se | content | - [x] Say love
- [ ] Say love | searchType:task
searchTarget: Say love | O | | content | - [x] Say love | searchType:task.done
searchTarget: Say love | O | | content | - [ ] Say love | searchType: task.notdone
searchTarget: Say love | O | +| frontmatter | habits: spanish, piano, yoga
([more examples](https://github.com/curious-archaea/obsidian-tracker/blob/master/docs/TargetEvaluation.md#Formatting-property-values-in-frontmatter))| searchType: frontmatterlist
searchTarget: habits[spanish] | O | ## Full examples @@ -54,6 +55,7 @@ List of all examples - [Dataview Inline Field](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDvField.md) - [Expression](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md) - [File Meta](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestFileMeta.md) +- [Frontmatter Lists](https://github.com/curious-archaea/obsidian-tracker/blob/master/examples/TestFrontmatterList.md) (New!) - [Legends](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestLegends.md) - [Multiple Targets / Multiple Values](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestMultipleTargetsMultipleValues.md) - [Pie Chart](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md) diff --git a/docs/TargetEvaluation.md b/docs/TargetEvaluation.md index 40beb65..3843988 100644 --- a/docs/TargetEvaluation.md +++ b/docs/TargetEvaluation.md @@ -1,6 +1,6 @@ # Target Evaluation -From the [input parameters](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/InputParameters.md) you provided, the search targets dispersed in the notes will be counted or evaluated as a value. Tracker plugin supports eight kinds of `searchType`: `tag`, `frontmatter`, `wiki`, `text`, `table`, `dvField`, `task`, and `fileMeta`, dealing with different types of searching condition. +From the [input parameters](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/InputParameters.md) you provided, the search targets dispersed in the notes will be counted or evaluated as a value. Tracker plugin supports nine kinds of `searchType`: `tag`, `frontmatter`, `frontmatterlist`, `wiki`, `text`, `table`, `dvField`, `task`, and `fileMeta`, dealing with different types of searching condition. ## Multiple Targets You can provide multiple search targets in code block by entering an array of targets separated by a comma under parameter `searchType` and `searchTarget`. Each of the targets will be identified in order and then the values in notes will be evaluated and form a dataset indexed by that order in the array (zero-based indexing). @@ -21,6 +21,8 @@ Many other parameters that accept multiple values (e.g. lineColor) can also be p Multiple values under a target (value tuple) separated by a slash, e.g. #bloodpressure:180/120mmHg, are supported after version 1.3.0. To identify a specific value as a target, use an accessor with bracket notation where the value in the bracket is the index by the order of values. In this case, they are bloodpressure[0] and bloodpressure[1]. You can find the example of this [here](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/BloodPressureTracker.md). You can also use a custom separator by using the parameter `separator`. +**Note**: the bracket notation used with searchType: frontmatterlist (e.g. habits[yoga]) uses the same bracket syntax but serves a different purpose. It specifies a string value to match against a list, rather than a numeric index into a tuple. The two are not interchangeable. + ## Search Target in Detail ### searchType: tag @@ -51,6 +53,42 @@ mood: 10
......
\-\-\-
+### searchType: frontmatterlist +This option is for vaultkeepers who want to use the same custom YAML property to track multiple targets. It is useful for tracking habits or categories recorded as a list in front matter fields *other* than tags. + +This search type checks whether a specific value is present in a frontmatter key that holds a list. Ex: +``` +habits: [habitA, habitB, habitC] +``` + +When specifying a searchTarget, use the key name followed by the member value in bracket notation: +``` +searchType: frontmatterlist +searchTarget: habits[spanish] +``` +When the member value is present in the list, it will be evaluated as a constant value (default 1.0). When it is absent, the day will have no value. This is ideal for counting occurances. + +#### Formatting property values in frontmatter + +Like tags, values stored in frontmatter lists are **case insensitive**. (ex: `piano` and `Piano` should be treated the same.) + +**Single-line lists** can optionally be surrounded by square brackets, but it's not required. Any of the following will work in frontmatter and evaluate without issue: +- `habits: ` +- `habits: []` +- `habits: spanish` +- `habits: [spanish]` +- `habits: yoga, spanish, piano` +- `habits: [yoga, spanish, piano]` + +**Multi-line lists** are also allowed, ex: +``` +habits: + - yoga + - spanish + - piano +``` + + ### searchType: wiki This search type helps you count wiki links in articles. For example, [[A]] diff --git a/examples/TestFrontmatter.md b/examples/TestFrontmatter.md index f3eca7c..259c141 100644 --- a/examples/TestFrontmatter.md +++ b/examples/TestFrontmatter.md @@ -36,7 +36,7 @@ line: ``` ## Multiple Tags in Front Matter -Extract data of one tag from multiple tags +Extract data of one tag from multiple tags. The default separator in front matter tags is comma (,) ``` tracker searchType: tag @@ -54,7 +54,7 @@ line: pointBorderColor: "#d65d0e" ``` -Use the data of two tags +Use the data of two tags. The default separator in front matter tags is comma (,) ``` tracker searchType: tag @@ -65,4 +65,7 @@ month: initMonth: 2021-01 ``` -Please also check those search targets in markdown files under folder 'diary'. \ No newline at end of file +Please also check those search targets in markdown files under folder 'diary'. + + +Note about multiple values: When extracting one value from a list of multiple values in frontmatter fields besides tags, please refer to TestFrontmatterList.md. diff --git a/examples/TestFrontmatterList.md b/examples/TestFrontmatterList.md new file mode 100644 index 0000000..f3ecaf9 --- /dev/null +++ b/examples/TestFrontmatterList.md @@ -0,0 +1,76 @@ +# Frontmatter Lists +This option is helpful for vaultkeepers who want to track multiple habits (targets) using the same custom YAML property. + +## Example outputs +Each of the outputs below is generated by searching frontmatter for `habits: ` , then checking the list of values for the presence of a single habit, ex: `yoga`, `piano`, or `spanish`. + +```tracker +searchType: frontmatterlist +searchTarget: habits[yoga] +folder: diary +startDate: 2026-02-01 +endDate: 2026-02-28 +datasetName: Yoga +month: +``` + + + +```tracker +searchType: frontmatterlist +searchTarget: habits[spanish] +folder: diary +startDate: 2026-02-01 +endDate: 2026-02-28 +datasetName: Spanish +month: + color: orange +``` +```tracker +searchType: frontmatterlist +searchTarget: habits[piano] +folder: diary +startDate: 2026-02-01 +endDate: 2026-02-28 +datasetName: Piano +month: + color: lightblue +``` + +```tracker +searchType: frontmatterlist +searchTarget: habits[piano] +folder: diary +startDate: 2026-02-01 +endDate: 2026-02-28 +summary: + template: "Total count: {{sum()}}" +``` + + + +### Testing + +**Bracket test**: Single-line lists can be surrounded by square brackets, but it's not required. (Trailing commas won't break anything either.) +- 2/9: `habits: []` +- 2/10: `habits: [piano]` +- 2/12: `habits: [yoga, spanish]` +- 2/16: `habits: ` +- 2/8: `habits: spanish` +- 2/15: `habits: yoga, spanish, piano` + +. + +**Case test**: Values stored in frontmatter lists are **case insensitive** for this plugin, mirroring the behavior of tags. In the examples above, `yoga` and `Yoga` should be treated the same. + +If search targets are case insensitive, then both 2/14 and 2/17 will be highlighted on the `month:` output for `habit[yoga]` when the examples vault is viewed in Obsidian. + +. + +**Multi-line list test**: If multi-line lists are working, then 2/14 will be highlighted on each of the calendars above when the examples vault is viewed in Obsidian. +``` +habits: + - yoga + - spanish + - piano +``` diff --git a/examples/diary/2026-02-08.md b/examples/diary/2026-02-08.md new file mode 100644 index 0000000..2fb751f --- /dev/null +++ b/examples/diary/2026-02-08.md @@ -0,0 +1,3 @@ +--- +habits: spanish +--- diff --git a/examples/diary/2026-02-09.md b/examples/diary/2026-02-09.md new file mode 100644 index 0000000..b71f133 --- /dev/null +++ b/examples/diary/2026-02-09.md @@ -0,0 +1,4 @@ +--- +habits: [] +--- + Punxsutawney Phil was right :( \ No newline at end of file diff --git a/examples/diary/2026-02-10.md b/examples/diary/2026-02-10.md new file mode 100644 index 0000000..34ea72f --- /dev/null +++ b/examples/diary/2026-02-10.md @@ -0,0 +1,4 @@ +--- +habits: [piano] +--- +boop beep \ No newline at end of file diff --git a/examples/diary/2026-02-11.md b/examples/diary/2026-02-11.md new file mode 100644 index 0000000..7e28c16 --- /dev/null +++ b/examples/diary/2026-02-11.md @@ -0,0 +1,4 @@ +--- +habits: [yoga, spanish, piano] +--- +build all the habits \ No newline at end of file diff --git a/examples/diary/2026-02-12.md b/examples/diary/2026-02-12.md new file mode 100644 index 0000000..94e3ddd --- /dev/null +++ b/examples/diary/2026-02-12.md @@ -0,0 +1,3 @@ +--- +habits: [yoga, spanish] +--- diff --git a/examples/diary/2026-02-13.md b/examples/diary/2026-02-13.md new file mode 100644 index 0000000..229d107 --- /dev/null +++ b/examples/diary/2026-02-13.md @@ -0,0 +1,4 @@ +--- +habits: [spanish, piano,] +--- +a trailing comma snuck inside the brackets, but will it cause problems? tune into [[TestFrontmatterList]] tonight at 8 to find out. \ No newline at end of file diff --git a/examples/diary/2026-02-14.md b/examples/diary/2026-02-14.md new file mode 100644 index 0000000..bf54920 --- /dev/null +++ b/examples/diary/2026-02-14.md @@ -0,0 +1,7 @@ +--- +habits: + - yoga + - spanish + - piano +--- +habits, but as a fancy little bullet list \ No newline at end of file diff --git a/examples/diary/2026-02-15.md b/examples/diary/2026-02-15.md new file mode 100644 index 0000000..a229124 --- /dev/null +++ b/examples/diary/2026-02-15.md @@ -0,0 +1,5 @@ +--- +habits: yoga, spanish, piano +--- + +such productivity, wow diff --git a/examples/diary/2026-02-16.md b/examples/diary/2026-02-16.md new file mode 100644 index 0000000..e97d247 --- /dev/null +++ b/examples/diary/2026-02-16.md @@ -0,0 +1,6 @@ +--- +habits: +--- + +everybody deserve a little lazy day every now and then :) + diff --git a/examples/diary/2026-02-17.md b/examples/diary/2026-02-17.md new file mode 100644 index 0000000..17cf3d2 --- /dev/null +++ b/examples/diary/2026-02-17.md @@ -0,0 +1,5 @@ +--- +habits: Yoga, spanish, Piano +--- + +let's get wAcKy with these cAsEs \ No newline at end of file diff --git a/examples/diary/2026-02-18.md b/examples/diary/2026-02-18.md new file mode 100644 index 0000000..631a1e3 --- /dev/null +++ b/examples/diary/2026-02-18.md @@ -0,0 +1,4 @@ +--- +habits: Yoga, spanish, Piano, +--- +a wild trailing comma appeared \ No newline at end of file diff --git a/manifest.json b/manifest.json index 557f716..ab508a9 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.17.0", + "version": "1.18.0", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/src/collecting.ts b/src/collecting.ts index 2e7e47a..96a906e 100644 --- a/src/collecting.ts +++ b/src/collecting.ts @@ -494,6 +494,53 @@ export function collectDataFromFrontmatterTag( return false; } +// In form 'key[memberValue]', checks membership in a frontmatter list +export function collectDataFromFrontmatterList( + fileCache: CachedMetadata, + query: Query, + renderInfo: RenderInfo, + dataMap: DataMap, + xValueMap: XValueMap +): boolean { + let frontMatter = fileCache.frontmatter; + if (!frontMatter) return false; + + // Parse searchTarget in the form "key[memberValue]" + let match = query.getTarget().match(/^(.+)\[(.+)\]$/); + if (!match) return false; + + let listKey = match[1].trim(); + let memberValue = match[2].trim().toLowerCase(); + + let rawValue = helper.deepValue(frontMatter, listKey); + if (rawValue == null) return false; + + // Normalize to array of strings + let listValues: string[] = []; + if (Array.isArray(rawValue)) { + listValues = rawValue + .filter((v) => v != null) + .map((v) => String(v).trim()) + .filter((v) => v !== ""); + } else if (typeof rawValue === "string") { + listValues = rawValue + .split(query.getSeparator(true)) + .map((s) => s.trim()) + .filter((s) => s !== ""); + } else { + return false; + } + + if (listValues.some((v) => v.toLowerCase() === memberValue)) { + query.addNumTargets(); + let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); + addToDataMap(dataMap, xValue, query, renderInfo.constValue[query.getId()]); + return true; + } + + return false; +} + // In form 'key: value', target used to identify 'frontmatter key' export function collectDataFromFrontmatterKey( fileCache: CachedMetadata, diff --git a/src/data.ts b/src/data.ts index 3951fbc..1ee922b 100644 --- a/src/data.ts +++ b/src/data.ts @@ -3,6 +3,7 @@ import { Moment } from "moment"; export enum SearchType { Tag, Frontmatter, + FrontmatterList, // new :) Wiki, WikiLink, WikiDisplay, diff --git a/src/main.ts b/src/main.ts index 3779e80..19b4d11 100644 --- a/src/main.ts +++ b/src/main.ts @@ -315,6 +315,7 @@ export default class Tracker extends Plugin { let target = q.getTarget(); if ( type === SearchType.Frontmatter || + type === SearchType.FrontmatterList || // new type === SearchType.Tag || type === SearchType.Wiki || type === SearchType.WikiLink || @@ -495,6 +496,18 @@ export default class Tracker extends Plugin { processInfo.gotAnyValidYValue ||= gotAnyValue; } // Search frontmatter tags + // Search frontmatter list membership + if (fileCache && query.getType() === SearchType.FrontmatterList) { + let gotAnyValue = collecting.collectDataFromFrontmatterList( + fileCache, + query, + renderInfo, + dataMap, + xValueMap + ); + processInfo.gotAnyValidYValue ||= gotAnyValue; + } + // console.log("Search frontmatter keys"); if ( fileCache && diff --git a/src/parsing.ts b/src/parsing.ts index 7754409..176f54e 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -44,6 +44,7 @@ function validateSearchType(searchType: string): boolean { searchType.toLowerCase() === "tag" || searchType.toLowerCase() === "text" || searchType.toLowerCase() === "frontmatter" || + searchType.toLowerCase() === "frontmatterlist" || // new searchType.toLowerCase() === "wiki" || searchType.toLowerCase() === "wiki.link" || searchType.toLowerCase() === "wiki.display" || @@ -1002,6 +1003,9 @@ export function getRenderInfoFromYaml( case "frontmatter": searchType.push(SearchType.Frontmatter); break; + case "frontmatterlist": // new + searchType.push(SearchType.FrontmatterList); + break; case "wiki": searchType.push(SearchType.Wiki); break; diff --git a/versions.json b/versions.json index 3e7e34e..9157c01 100644 --- a/versions.json +++ b/versions.json @@ -39,5 +39,6 @@ "1.15.0": "0.9.12", "1.15.1": "0.9.12", "1.16.0": "0.9.12", - "1.17.0": "0.9.12" + "1.17.0": "0.9.12", + "1.18.0": "0.9.12" } From 8db8e76e30f937eb1ff16e2c15873f5c1bd3cebd Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Wed, 18 Feb 2026 19:52:53 -0700 Subject: [PATCH 266/277] Fix TestStartWeekOn.md and rebuild package-lock.json --- examples/TestStartWeekOn.md | 14 +- package-lock.json | 715 ++++++++++++++++++++++++------------ 2 files changed, 485 insertions(+), 244 deletions(-) diff --git a/examples/TestStartWeekOn.md b/examples/TestStartWeekOn.md index 428ac6b..8b99cfe 100644 --- a/examples/TestStartWeekOn.md +++ b/examples/TestStartWeekOn.md @@ -13,7 +13,7 @@ The `startWeekOn` parameter now accepts any day of the week: ```tracker searchType: tag -searchTarget: test +searchTarget: meditation folder: diary startDate: 2021-01-01 endDate: 2021-01-31 @@ -26,7 +26,7 @@ month: ```tracker searchType: tag -searchTarget: test +searchTarget: meditation folder: diary startDate: 2021-01-01 endDate: 2021-01-31 @@ -39,7 +39,7 @@ month: ```tracker searchType: tag -searchTarget: test +searchTarget: meditation folder: diary startDate: 2021-01-01 endDate: 2021-01-31 @@ -52,7 +52,7 @@ month: ```tracker searchType: tag -searchTarget: test +searchTarget: meditation folder: diary startDate: 2021-01-01 endDate: 2021-01-31 @@ -65,7 +65,7 @@ month: ```tracker searchType: tag -searchTarget: test +searchTarget: meditation folder: diary startDate: 2021-01-01 endDate: 2021-01-31 @@ -78,7 +78,7 @@ month: ```tracker searchType: tag -searchTarget: test +searchTarget: meditation folder: diary startDate: 2021-01-01 endDate: 2021-01-31 @@ -91,7 +91,7 @@ month: ```tracker searchType: tag -searchTarget: test +searchTarget: meditation folder: diary startDate: 2021-01-01 endDate: 2021-01-31 diff --git a/package-lock.json b/package-lock.json index 899be75..967cba3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,39 +30,39 @@ } }, "node_modules/@codemirror/state": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.2.tgz", - "integrity": "sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.0.tgz", + "integrity": "sha512-MwBHVK60IiIHDcoMet78lxt6iw5gJOGSbNbOIVBHWVXIH4/Nq1+GQgLLGgI1KlnN86WDXsPudVaqYHKBIx7Eyw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@marijn/find-cluster-break": "^1.0.0" } }, "node_modules/@codemirror/view": { - "version": "6.36.8", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.36.8.tgz", - "integrity": "sha512-yoRo4f+FdnD01fFt4XpfpMCcCAo9QvZOtbrXExn4SqzH32YC6LgzqxfLZw/r6Ge65xyY03mK/UfUqrVw1gFiFg==", + "version": "6.38.6", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.38.6.tgz", + "integrity": "sha512-qiS0z1bKs5WOvHIAC0Cybmv4AJSkAXgX5aD6Mqd2epSLlVJsQl8NG23jCVouIgkh4All/mrbdsf2UOLFnJw0tw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@codemirror/state": "^6.5.0", + "crelt": "^1.0.6", "style-mod": "^4.1.0", "w3c-keyname": "^2.2.4" } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { @@ -70,40 +70,35 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -114,13 +109,14 @@ "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", "dev": true, - "peer": true + "license": "MIT" }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -134,6 +130,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -143,6 +140,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -152,9 +150,9 @@ } }, "node_modules/@rollup/plugin-commonjs": { - "version": "28.0.5", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.5.tgz", - "integrity": "sha512-lytLp2JgAMwqJY6ve3OSROXr2XuEYHjnsQN3hmnxC+w11dI91LuUw4Yc1kk2FqKXeMG8psoFejFgK+znoij0cg==", + "version": "28.0.9", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.9.tgz", + "integrity": "sha512-PIR4/OHZ79romx0BVVll/PkwWpJ7e5lsqFa3gFfcrFPWwLXLV39JVUzQV9RKjWerE7B845Hqjj9VYlQeieZ2dA==", "dev": true, "license": "MIT", "dependencies": { @@ -179,10 +177,11 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.1.tgz", - "integrity": "sha512-tk5YCxJWIG81umIvNkSod2qK5KyQW19qcBF/B78n1bjtOON6gzKoVeSzAE8yHCZEDmqkHKkxplExA8KzdJLJpA==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.3.tgz", + "integrity": "sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "@types/resolve": "1.20.2", @@ -207,6 +206,7 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", "dev": true, + "license": "MIT", "dependencies": { "serialize-javascript": "^6.0.1", "smob": "^1.0.0", @@ -225,10 +225,11 @@ } }, "node_modules/@rollup/plugin-typescript": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.2.tgz", - "integrity": "sha512-cdtSp154H5sv637uMr1a8OTWB0L1SWDSm1rDGiyfcGcvQ6cuTs4MDk2BVEBGysUWago4OJN4EQZqOTl/QY3Jgg==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.3.0.tgz", + "integrity": "sha512-7DP0/p7y3t67+NabT9f8oTBFE6gGkto4SA6Np2oudYmZE/m1dt8RB0SjL1msMxFpLo631qjRCcBlAbq1ml/Big==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.1.0", "resolve": "^1.22.1" @@ -251,10 +252,11 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", - "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", @@ -273,9 +275,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.0.tgz", - "integrity": "sha512-xEiEE5oDW6tK4jXCAyliuntGR+amEMO7HLtdSshVuhFnKTYoeYMyXQK7pLouAJJj5KHdwdn87bfHAR2nSdNAUA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz", + "integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==", "cpu": [ "arm" ], @@ -287,9 +289,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.44.0.tgz", - "integrity": "sha512-uNSk/TgvMbskcHxXYHzqwiyBlJ/lGcv8DaUfcnNwict8ba9GTTNxfn3/FAoFZYgkaXXAdrAA+SLyKplyi349Jw==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz", + "integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==", "cpu": [ "arm64" ], @@ -301,9 +303,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.44.0.tgz", - "integrity": "sha512-VGF3wy0Eq1gcEIkSCr8Ke03CWT+Pm2yveKLaDvq51pPpZza3JX/ClxXOCmTYYq3us5MvEuNRTaeyFThCKRQhOA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz", + "integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==", "cpu": [ "arm64" ], @@ -315,9 +317,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.44.0.tgz", - "integrity": "sha512-fBkyrDhwquRvrTxSGH/qqt3/T0w5Rg0L7ZIDypvBPc1/gzjJle6acCpZ36blwuwcKD/u6oCE/sRWlUAcxLWQbQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz", + "integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==", "cpu": [ "x64" ], @@ -329,9 +331,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.44.0.tgz", - "integrity": "sha512-u5AZzdQJYJXByB8giQ+r4VyfZP+walV+xHWdaFx/1VxsOn6eWJhK2Vl2eElvDJFKQBo/hcYIBg/jaKS8ZmKeNQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz", + "integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==", "cpu": [ "arm64" ], @@ -343,9 +345,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.44.0.tgz", - "integrity": "sha512-qC0kS48c/s3EtdArkimctY7h3nHicQeEUdjJzYVJYR3ct3kWSafmn6jkNCA8InbUdge6PVx6keqjk5lVGJf99g==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz", + "integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==", "cpu": [ "x64" ], @@ -357,9 +359,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.44.0.tgz", - "integrity": "sha512-x+e/Z9H0RAWckn4V2OZZl6EmV0L2diuX3QB0uM1r6BvhUIv6xBPL5mrAX2E3e8N8rEHVPwFfz/ETUbV4oW9+lQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz", + "integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==", "cpu": [ "arm" ], @@ -371,9 +373,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.44.0.tgz", - "integrity": "sha512-1exwiBFf4PU/8HvI8s80icyCcnAIB86MCBdst51fwFmH5dyeoWVPVgmQPcKrMtBQ0W5pAs7jBCWuRXgEpRzSCg==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz", + "integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==", "cpu": [ "arm" ], @@ -385,9 +387,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.44.0.tgz", - "integrity": "sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz", + "integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==", "cpu": [ "arm64" ], @@ -399,9 +401,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.44.0.tgz", - "integrity": "sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz", + "integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==", "cpu": [ "arm64" ], @@ -412,10 +414,10 @@ "linux" ] }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.44.0.tgz", - "integrity": "sha512-xw+FTGcov/ejdusVOqKgMGW3c4+AgqrfvzWEVXcNP6zq2ue+lsYUgJ+5Rtn/OTJf7e2CbgTFvzLW2j0YAtj0Gg==", + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz", + "integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==", "cpu": [ "loong64" ], @@ -426,10 +428,38 @@ "linux" ] }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.44.0.tgz", - "integrity": "sha512-bKGibTr9IdF0zr21kMvkZT4K6NV+jjRnBoVMt2uNMG0BYWm3qOVmYnXKzx7UhwrviKnmK46IKMByMgvpdQlyJQ==", + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz", + "integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz", + "integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz", + "integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==", "cpu": [ "ppc64" ], @@ -441,9 +471,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.44.0.tgz", - "integrity": "sha512-vV3cL48U5kDaKZtXrti12YRa7TyxgKAIDoYdqSIOMOFBXqFj2XbChHAtXquEn2+n78ciFgr4KIqEbydEGPxXgA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz", + "integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==", "cpu": [ "riscv64" ], @@ -455,9 +485,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.44.0.tgz", - "integrity": "sha512-TDKO8KlHJuvTEdfw5YYFBjhFts2TR0VpZsnLLSYmB7AaohJhM8ctDSdDnUGq77hUh4m/djRafw+9zQpkOanE2Q==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz", + "integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==", "cpu": [ "riscv64" ], @@ -469,9 +499,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.44.0.tgz", - "integrity": "sha512-8541GEyktXaw4lvnGp9m84KENcxInhAt6vPWJ9RodsB/iGjHoMB2Pp5MVBCiKIRxrxzJhGCxmNzdu+oDQ7kwRA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz", + "integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==", "cpu": [ "s390x" ], @@ -483,9 +513,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.44.0.tgz", - "integrity": "sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz", + "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==", "cpu": [ "x64" ], @@ -497,9 +527,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.44.0.tgz", - "integrity": "sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz", + "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==", "cpu": [ "x64" ], @@ -510,10 +540,38 @@ "linux" ] }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz", + "integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz", + "integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.44.0.tgz", - "integrity": "sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz", + "integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==", "cpu": [ "arm64" ], @@ -525,9 +583,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.44.0.tgz", - "integrity": "sha512-3XJ0NQtMAXTWFW8FqZKcw3gOQwBtVWP/u8TpHP3CRPXD7Pd6s8lLdH3sHWh8vqKCyyiI8xW5ltJScQmBU9j7WA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz", + "integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==", "cpu": [ "ia32" ], @@ -538,10 +596,24 @@ "win32" ] }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz", + "integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.0.tgz", - "integrity": "sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz", + "integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==", "cpu": [ "x64" ], @@ -557,6 +629,7 @@ "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.8.tgz", "integrity": "sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw==", "dev": true, + "license": "MIT", "dependencies": { "@types/tern": "*" } @@ -566,6 +639,7 @@ "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-array": "*", "@types/d3-axis": "*", @@ -600,16 +674,18 @@ } }, "node_modules/@types/d3-array": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", - "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", - "dev": true + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-axis": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-selection": "*" } @@ -619,6 +695,7 @@ "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-selection": "*" } @@ -627,19 +704,22 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-color": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-contour": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-array": "*", "@types/geojson": "*" @@ -649,19 +729,22 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-dispatch": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz", - "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==", - "dev": true + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz", + "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==", + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-drag": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-selection": "*" } @@ -670,19 +753,22 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-ease": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-fetch": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-dsv": "*" } @@ -691,19 +777,22 @@ "version": "3.0.10", "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-format": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-geo": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/geojson": "*" } @@ -712,13 +801,15 @@ "version": "3.1.7", "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-interpolate": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-color": "*" } @@ -727,31 +818,36 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-polygon": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-quadtree": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-random": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-scale": { "version": "4.0.9", "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-time": "*" } @@ -760,19 +856,22 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-selection": { "version": "3.0.11", "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-shape": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", - "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", + "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-path": "*" } @@ -781,25 +880,29 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-time-format": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-timer": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/d3-transition": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-selection": "*" } @@ -809,6 +912,7 @@ "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", "dev": true, + "license": "MIT", "dependencies": { "@types/d3-interpolate": "*", "@types/d3-selection": "*" @@ -826,6 +930,7 @@ "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz", "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -834,13 +939,15 @@ "version": "7946.0.16", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, + "license": "MIT", "dependencies": { "@types/minimatch": "*", "@types/node": "*" @@ -850,44 +957,49 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { - "version": "24.0.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.3.tgz", - "integrity": "sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==", + "version": "24.10.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.13.tgz", + "integrity": "sha512-oH72nZRfDv9lADUBSo104Aq7gPHpQZc4BTx38r9xf9pg5LfP6EzSyH2n7qFmmxRQXh7YlUXODcYsg6PuTDSxGg==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.8.0" + "undici-types": "~7.16.0" } }, "node_modules/@types/resolve": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/sprintf-js": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@types/sprintf-js/-/sprintf-js-1.1.4.tgz", "integrity": "sha512-aWK1reDYWxcjgcIIPmQi3u+OQDuYa9b+lr6eIsGWrekJ9vr1NSjr4Eab8oQ1iKuH1ltFHpXGyerAv1a3FMKxzQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/tern": { "version": "0.23.9", "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.9.tgz", "integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "*" } }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -900,6 +1012,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -908,13 +1021,15 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -925,6 +1040,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -936,18 +1052,21 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/colorette": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", "engines": { "node": ">= 10" } @@ -956,18 +1075,28 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/crelt": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", + "dev": true, + "license": "MIT" }, "node_modules/d3": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "license": "ISC", "dependencies": { "d3-array": "3", "d3-axis": "3", @@ -1008,6 +1137,7 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", "dependencies": { "internmap": "1 - 2" }, @@ -1019,6 +1149,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1027,6 +1158,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", @@ -1042,6 +1174,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "license": "ISC", "dependencies": { "d3-path": "1 - 3" }, @@ -1053,6 +1186,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1061,6 +1195,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "license": "ISC", "dependencies": { "d3-array": "^3.2.0" }, @@ -1072,6 +1207,7 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "license": "ISC", "dependencies": { "delaunator": "5" }, @@ -1083,6 +1219,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1091,6 +1228,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-selection": "3" @@ -1103,6 +1241,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "license": "ISC", "dependencies": { "commander": "7", "iconv-lite": "0.6", @@ -1127,6 +1266,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", "engines": { "node": ">=12" } @@ -1135,6 +1275,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "license": "ISC", "dependencies": { "d3-dsv": "1 - 3" }, @@ -1146,6 +1287,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-quadtree": "1 - 3", @@ -1156,9 +1298,10 @@ } }, "node_modules/d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", + "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1167,6 +1310,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "license": "ISC", "dependencies": { "d3-array": "2.5.0 - 3" }, @@ -1178,6 +1322,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1186,6 +1331,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", "dependencies": { "d3-color": "1 - 3" }, @@ -1197,6 +1343,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1205,6 +1352,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1213,6 +1361,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1221,6 +1370,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1229,6 +1379,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", "dependencies": { "d3-array": "2.10.0 - 3", "d3-format": "1 - 3", @@ -1244,6 +1395,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "license": "ISC", "dependencies": { "d3-color": "1 - 3", "d3-interpolate": "1 - 3" @@ -1256,6 +1408,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", + "peer": true, "engines": { "node": ">=12" } @@ -1264,6 +1418,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", "dependencies": { "d3-path": "^3.1.0" }, @@ -1275,6 +1430,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", "dependencies": { "d3-array": "2 - 3" }, @@ -1286,6 +1442,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", "dependencies": { "d3-time": "1 - 3" }, @@ -1297,6 +1454,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1305,6 +1463,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", "dependencies": { "d3-color": "1 - 3", "d3-dispatch": "1 - 3", @@ -1323,6 +1482,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", @@ -1339,6 +1499,7 @@ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1347,6 +1508,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", + "license": "ISC", "dependencies": { "robust-predicates": "^3.0.2" } @@ -1356,6 +1518,7 @@ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -1367,13 +1530,15 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -1386,19 +1551,24 @@ } }, "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/fdir": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", - "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -1413,6 +1583,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1425,6 +1596,7 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -1438,7 +1610,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", @@ -1446,6 +1619,7 @@ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -1459,6 +1633,7 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -1467,8 +1642,9 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1489,6 +1665,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -1501,6 +1678,7 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", "dev": true, + "license": "MIT", "dependencies": { "@types/glob": "^7.1.1", "array-union": "^2.1.0", @@ -1519,13 +1697,15 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -1537,6 +1717,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -1549,6 +1730,7 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -1559,6 +1741,7 @@ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -1568,12 +1751,14 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/internmap": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", "engines": { "node": ">=12" } @@ -1583,6 +1768,7 @@ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, + "license": "MIT", "dependencies": { "hasown": "^2.0.2" }, @@ -1598,6 +1784,7 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1607,6 +1794,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -1618,13 +1806,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -1634,6 +1824,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1643,6 +1834,7 @@ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "*" } @@ -1651,6 +1843,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", + "license": "MIT", "engines": { "node": ">= 10.16.0" } @@ -1660,17 +1853,19 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, + "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "node_modules/magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" + "@jridgewell/sourcemap-codec": "^1.5.5" } }, "node_modules/merge2": { @@ -1678,6 +1873,7 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -1687,6 +1883,7 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -1700,6 +1897,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -1712,6 +1910,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1724,14 +1923,15 @@ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/obsidian": { - "version": "1.8.7", + "version": "1.12.2", "resolved": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "integrity": "sha512-0yByIRBSLYSpg0PrVhysWyRU55BrsaJl484RmRX2lM4AJ7VVMy/8jC9aj7VfW7D+1Iy4h1iUACGbIqdFjlUo+Q==", + "integrity": "sha512-okcp2sqVzbOKGtTn+EBjuiq5fX3vfbxWujwC5CSKvUVYajZ7WAC2z9uKBv5Nle100nWyI6wRlA4jSbWjHLmlHA==", "dev": true, "license": "MIT", "dependencies": { @@ -1739,8 +1939,8 @@ "moment": "2.29.4" }, "peerDependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" + "@codemirror/state": "6.5.0", + "@codemirror/view": "6.38.6" } }, "node_modules/once": { @@ -1748,6 +1948,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } @@ -1757,6 +1958,7 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1765,22 +1967,26 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -1806,24 +2012,27 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", "dev": true, + "license": "MIT", "dependencies": { - "is-core-module": "^2.16.0", + "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -1842,6 +2051,7 @@ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -1850,14 +2060,16 @@ "node_modules/robust-predicates": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", - "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", + "license": "Unlicense" }, "node_modules/rollup": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.44.0.tgz", - "integrity": "sha512-qHcdEzLCiktQIfwBq420pn2dP+30uzqYxv9ETm91wdt2R9AFcWfjNAmje4NWlnCIQ5RMTzVf0ZyisOKqHR6RwA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz", + "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -1869,26 +2081,31 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.44.0", - "@rollup/rollup-android-arm64": "4.44.0", - "@rollup/rollup-darwin-arm64": "4.44.0", - "@rollup/rollup-darwin-x64": "4.44.0", - "@rollup/rollup-freebsd-arm64": "4.44.0", - "@rollup/rollup-freebsd-x64": "4.44.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.44.0", - "@rollup/rollup-linux-arm-musleabihf": "4.44.0", - "@rollup/rollup-linux-arm64-gnu": "4.44.0", - "@rollup/rollup-linux-arm64-musl": "4.44.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.44.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.44.0", - "@rollup/rollup-linux-riscv64-gnu": "4.44.0", - "@rollup/rollup-linux-riscv64-musl": "4.44.0", - "@rollup/rollup-linux-s390x-gnu": "4.44.0", - "@rollup/rollup-linux-x64-gnu": "4.44.0", - "@rollup/rollup-linux-x64-musl": "4.44.0", - "@rollup/rollup-win32-arm64-msvc": "4.44.0", - "@rollup/rollup-win32-ia32-msvc": "4.44.0", - "@rollup/rollup-win32-x64-msvc": "4.44.0", + "@rollup/rollup-android-arm-eabi": "4.57.1", + "@rollup/rollup-android-arm64": "4.57.1", + "@rollup/rollup-darwin-arm64": "4.57.1", + "@rollup/rollup-darwin-x64": "4.57.1", + "@rollup/rollup-freebsd-arm64": "4.57.1", + "@rollup/rollup-freebsd-x64": "4.57.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", + "@rollup/rollup-linux-arm-musleabihf": "4.57.1", + "@rollup/rollup-linux-arm64-gnu": "4.57.1", + "@rollup/rollup-linux-arm64-musl": "4.57.1", + "@rollup/rollup-linux-loong64-gnu": "4.57.1", + "@rollup/rollup-linux-loong64-musl": "4.57.1", + "@rollup/rollup-linux-ppc64-gnu": "4.57.1", + "@rollup/rollup-linux-ppc64-musl": "4.57.1", + "@rollup/rollup-linux-riscv64-gnu": "4.57.1", + "@rollup/rollup-linux-riscv64-musl": "4.57.1", + "@rollup/rollup-linux-s390x-gnu": "4.57.1", + "@rollup/rollup-linux-x64-gnu": "4.57.1", + "@rollup/rollup-linux-x64-musl": "4.57.1", + "@rollup/rollup-openbsd-x64": "4.57.1", + "@rollup/rollup-openharmony-arm64": "4.57.1", + "@rollup/rollup-win32-arm64-msvc": "4.57.1", + "@rollup/rollup-win32-ia32-msvc": "4.57.1", + "@rollup/rollup-win32-x64-gnu": "4.57.1", + "@rollup/rollup-win32-x64-msvc": "4.57.1", "fsevents": "~2.3.2" } }, @@ -1897,6 +2114,7 @@ "resolved": "https://registry.npmjs.org/rollup-plugin-copy/-/rollup-plugin-copy-3.5.0.tgz", "integrity": "sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA==", "dev": true, + "license": "MIT", "dependencies": { "@types/fs-extra": "^8.0.1", "colorette": "^1.1.0", @@ -1927,6 +2145,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -1934,7 +2153,8 @@ "node_modules/rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" }, "node_modules/safe-buffer": { "version": "5.2.1", @@ -1954,18 +2174,21 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -1975,21 +2198,27 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/smob": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz", - "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==", - "dev": true + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.6.1.tgz", + "integrity": "sha512-KAkBqZl3c2GvNgNhcoyJae1aKldDW0LO279wF9bk1PnluRTETKBq0WyzRXxEhoQLk56yHaOY4JCBEKDuJIET5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -1999,6 +2228,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -2007,20 +2237,22 @@ "node_modules/sprintf-js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "license": "BSD-3-Clause" }, "node_modules/style-mod": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz", - "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.3.tgz", + "integrity": "sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==", "dev": true, - "peer": true + "license": "MIT" }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -2029,13 +2261,14 @@ } }, "node_modules/terser": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", - "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", + "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", + "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -2050,13 +2283,15 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -2068,13 +2303,17 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true + "dev": true, + "license": "0BSD", + "peer": true }, "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, + "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -2084,9 +2323,9 @@ } }, "node_modules/undici-types": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", - "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", "dev": true, "license": "MIT" }, @@ -2095,6 +2334,7 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.0.0" } @@ -2104,13 +2344,14 @@ "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", "dev": true, - "peer": true + "license": "MIT" }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" } } } From 56db253a45d25f24a280a738e53e55545e1dc27c Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Wed, 18 Feb 2026 19:52:53 -0700 Subject: [PATCH 267/277] Fix TestStartWeekOn.md and rebuild package-lock.json --- examples/TestStartWeekOn.md | 14 +++++++------- package-lock.json | 34 +++++++++++++++++++--------------- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/examples/TestStartWeekOn.md b/examples/TestStartWeekOn.md index 428ac6b..8b99cfe 100644 --- a/examples/TestStartWeekOn.md +++ b/examples/TestStartWeekOn.md @@ -13,7 +13,7 @@ The `startWeekOn` parameter now accepts any day of the week: ```tracker searchType: tag -searchTarget: test +searchTarget: meditation folder: diary startDate: 2021-01-01 endDate: 2021-01-31 @@ -26,7 +26,7 @@ month: ```tracker searchType: tag -searchTarget: test +searchTarget: meditation folder: diary startDate: 2021-01-01 endDate: 2021-01-31 @@ -39,7 +39,7 @@ month: ```tracker searchType: tag -searchTarget: test +searchTarget: meditation folder: diary startDate: 2021-01-01 endDate: 2021-01-31 @@ -52,7 +52,7 @@ month: ```tracker searchType: tag -searchTarget: test +searchTarget: meditation folder: diary startDate: 2021-01-01 endDate: 2021-01-31 @@ -65,7 +65,7 @@ month: ```tracker searchType: tag -searchTarget: test +searchTarget: meditation folder: diary startDate: 2021-01-01 endDate: 2021-01-31 @@ -78,7 +78,7 @@ month: ```tracker searchType: tag -searchTarget: test +searchTarget: meditation folder: diary startDate: 2021-01-01 endDate: 2021-01-31 @@ -91,7 +91,7 @@ month: ```tracker searchType: tag -searchTarget: test +searchTarget: meditation folder: diary startDate: 2021-01-01 endDate: 2021-01-31 diff --git a/package-lock.json b/package-lock.json index 5309b32..967cba3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -109,8 +109,7 @@ "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", @@ -1091,8 +1090,7 @@ "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/d3": { "version": "7.9.0", @@ -1411,6 +1409,7 @@ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "license": "ISC", + "peer": true, "engines": { "node": ">=12" } @@ -1930,9 +1929,9 @@ } }, "node_modules/obsidian": { - "version": "1.12.0", + "version": "1.12.2", "resolved": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "integrity": "sha512-y1XtnfQKldoFKmVEbqf20jYnQ9Nhhn6hEWxodkNMG9jO9xjyLAY2ELgPuxLAxNJ/AP+FIhVjGIHuNkHqzTokJg==", + "integrity": "sha512-okcp2sqVzbOKGtTn+EBjuiq5fX3vfbxWujwC5CSKvUVYajZ7WAC2z9uKBv5Nle100nWyI6wRlA4jSbWjHLmlHA==", "dev": true, "license": "MIT", "dependencies": { @@ -1987,6 +1986,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -2069,6 +2069,7 @@ "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -2203,11 +2204,14 @@ } }, "node_modules/smob": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz", - "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.6.1.tgz", + "integrity": "sha512-KAkBqZl3c2GvNgNhcoyJae1aKldDW0LO279wF9bk1PnluRTETKBq0WyzRXxEhoQLk56yHaOY4JCBEKDuJIET5g==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } }, "node_modules/source-map": { "version": "0.6.1", @@ -2241,8 +2245,7 @@ "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.3.tgz", "integrity": "sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", @@ -2301,7 +2304,8 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, - "license": "0BSD" + "license": "0BSD", + "peer": true }, "node_modules/typescript": { "version": "5.9.3", @@ -2309,6 +2313,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -2339,8 +2344,7 @@ "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/wrappy": { "version": "1.0.2", From 04262dc6b317d6e8443b473da997a79c34216ca9 Mon Sep 17 00:00:00 2001 From: Mike Greiner Date: Wed, 7 Jan 2026 20:29:22 -0700 Subject: [PATCH 268/277] fix: handle numeric YAML parsing for startDate/endDate with YYYYMMDD format Fixes issue #324 where dateFormat: YYYYMMDD made startDate and endDate ineffective, causing all files to be included regardless of date range. Root cause: YAML parsers may parse numeric-looking dates (e.g., 20240201) as numbers instead of strings. The code only checked typeof === 'string', so numeric values were skipped, leaving startDate/endDate as null. Changes: - Updated parsing.ts to handle both string and number types for startDate/endDate, converting numbers to strings before processing - Updated main.ts to use isBefore/isAfter with 'day' granularity for clearer, more readable date comparisons - Fixed closure issue by capturing startDate/endDate in local variables before async file processing loop - Fixed helper.ts bug: changed .contains() to .includes() for string method compatibility Tests: - Added unit tests for YYYYMMDD date format parsing and filtering - Added edge case tests for boundary conditions and missing dates - Added date comparison method tests - All 28 tests passing --- src/helper.ts | 2 +- src/main.ts | 23 +- src/parsing.ts | 30 +- test/date-comparison-methods.test.ts | 86 ++++++ test/date-format-yyyymmdd.test.ts | 206 ++++++++++++++ test/edge-cases-date-filtering.test.ts | 365 +++++++++++++++++++++++++ test/mocks/d3.ts | 2 + test/mocks/obsidian.ts | 93 +++++++ test/parsing-yyyymmdd.test.ts | 154 +++++++++++ test/setup.ts | 11 + 10 files changed, 957 insertions(+), 15 deletions(-) create mode 100644 test/date-comparison-methods.test.ts create mode 100644 test/date-format-yyyymmdd.test.ts create mode 100644 test/edge-cases-date-filtering.test.ts create mode 100644 test/mocks/d3.ts create mode 100644 test/mocks/obsidian.ts create mode 100644 test/parsing-yyyymmdd.test.ts create mode 100644 test/setup.ts diff --git a/src/helper.ts b/src/helper.ts index 3e252b1..ad1e7b3 100644 --- a/src/helper.ts +++ b/src/helper.ts @@ -24,7 +24,7 @@ function makeTimeFormat() { if (fmtSec !== "") { fmt += `:${fmtSec}`; } - if (fmtHour.contains("h")) { + if (fmtHour.includes("h")) { fmt += " a"; } timeFormat.push(fmt); diff --git a/src/main.ts b/src/main.ts index 19b4d11..666dba4 100644 --- a/src/main.ts +++ b/src/main.ts @@ -304,6 +304,11 @@ export default class Tracker extends Plugin { let dataMap: DataMap = new Map(); // {strDate: [query: value, ...]} let processInfo = new CollectingProcessInfo(); processInfo.fileTotal = files.length; + + // Store dates in local variables to ensure they're captured correctly in async closures + // This fixes the issue where dates become null inside async functions + const startDate = renderInfo.startDate ? renderInfo.startDate.clone() : null; + const endDate = renderInfo.endDate ? renderInfo.endDate.clone() : null; // Collect data from files, each file has one data point for each query const loopFilePromises = files.map(async (file) => { @@ -428,15 +433,19 @@ export default class Tracker extends Plugin { skipThisFile = true; processInfo.fileNotInFormat++; } else { - // console.log("file " + file.basename + " accepted"); - if (renderInfo.startDate !== null) { - if (xDate < renderInfo.startDate) { + // Date filtering: only include files within the specified date range + // Use isBefore/isAfter with 'day' granularity for clear, readable date comparisons + // Use local variables (startDate/endDate) captured before async loop to avoid closure issues + if (startDate !== null && startDate.isValid()) { + // Skip files with dates before the start date + if (xDate.isBefore(startDate, 'day')) { skipThisFile = true; processInfo.fileOutOfDateRange++; } } - if (renderInfo.endDate !== null) { - if (xDate > renderInfo.endDate) { + if (endDate !== null && endDate.isValid()) { + // Skip files with dates after the end date + if (xDate.isAfter(endDate, 'day')) { skipThisFile = true; processInfo.fileOutOfDateRange++; } @@ -466,7 +475,9 @@ export default class Tracker extends Plugin { } } } - if (skipThisFile) return; + if (skipThisFile) { + return; + } // console.log(xValueMap); // console.log(`minDate: ${minDate}`); // console.log(`maxDate: ${maxDate}`); diff --git a/src/parsing.ts b/src/parsing.ts index 176f54e..5d0fbc8 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -1280,14 +1280,21 @@ export function getRenderInfoFromYaml( // startDate, endDate // console.log("Parsing startDate"); - if (typeof yaml.startDate === "string") { - if (/^([\-]?[0-9]+[\.][0-9]+|[\-]?[0-9]+)m$/.test(yaml.startDate)) { + // Handle both string and number types (YAML may parse numeric dates as numbers) + if (typeof yaml.startDate === "string" || typeof yaml.startDate === "number") { + let strStartDate: string; + if (typeof yaml.startDate === "number") { + strStartDate = yaml.startDate.toString(); + } else { + strStartDate = yaml.startDate; + } + if (/^([\-]?[0-9]+[\.][0-9]+|[\-]?[0-9]+)m$/.test(strStartDate)) { let errorMessage = "'m' for 'minute' is too small for parameter startDate, please use 'd' for 'day' or 'M' for month"; return errorMessage; } - let strStartDate = helper.getDateStringFromInputString( - yaml.startDate, + strStartDate = helper.getDateStringFromInputString( + strStartDate, renderInfo.dateFormatPrefix, renderInfo.dateFormatSuffix ); @@ -1322,14 +1329,21 @@ export function getRenderInfoFromYaml( } // console.log("Parsing endDate"); - if (typeof yaml.endDate === "string") { - if (/^([\-]?[0-9]+[\.][0-9]+|[\-]?[0-9]+)m$/.test(yaml.endDate)) { + // Handle both string and number types (YAML may parse numeric dates as numbers) + if (typeof yaml.endDate === "string" || typeof yaml.endDate === "number") { + let strEndDate: string; + if (typeof yaml.endDate === "number") { + strEndDate = yaml.endDate.toString(); + } else { + strEndDate = yaml.endDate; + } + if (/^([\-]?[0-9]+[\.][0-9]+|[\-]?[0-9]+)m$/.test(strEndDate)) { let errorMessage = "'m' for 'minute' is too small for parameter endDate, please use 'd' for 'day' or 'M' for month"; return errorMessage; } - let strEndDate = helper.getDateStringFromInputString( - yaml.endDate, + strEndDate = helper.getDateStringFromInputString( + strEndDate, renderInfo.dateFormatPrefix, renderInfo.dateFormatSuffix ); diff --git a/test/date-comparison-methods.test.ts b/test/date-comparison-methods.test.ts new file mode 100644 index 0000000..d078a6b --- /dev/null +++ b/test/date-comparison-methods.test.ts @@ -0,0 +1,86 @@ +/** + * Test to compare different date comparison methods + * + * Question: Is valueOf() the best method, or should we use isBefore/isAfter? + */ + +import * as helper from '../src/helper'; +import moment from 'moment'; + +describe('Date Comparison Methods', () => { + beforeAll(() => { + if (typeof (global as any).window === 'undefined') { + (global as any).window = {}; + } + (global as any).window.moment = moment; + }); + + describe('valueOf() vs isBefore/isAfter', () => { + it('should produce same results with valueOf() and isBefore/isAfter', () => { + const startDate = helper.strToDate('20240201', 'YYYYMMDD'); + const endDate = helper.strToDate('20240203', 'YYYYMMDD'); + const testDate = helper.strToDate('20240202', 'YYYYMMDD'); + + // Method 1: valueOf() (current implementation) + const inRangeValueOf = + testDate.valueOf() >= startDate.valueOf() && + testDate.valueOf() <= endDate.valueOf(); + + // Method 2: isBefore/isAfter with 'day' granularity + const inRangeMoment = + !testDate.isBefore(startDate, 'day') && + !testDate.isAfter(endDate, 'day'); + + // Method 3: isSameOrAfter/isSameOrBefore + const inRangeSame = + testDate.isSameOrAfter(startDate, 'day') && + testDate.isSameOrBefore(endDate, 'day'); + + expect(inRangeValueOf).toBe(true); + expect(inRangeMoment).toBe(true); + expect(inRangeSame).toBe(true); + }); + + it('should handle boundary dates correctly with both methods', () => { + const startDate = helper.strToDate('20240201', 'YYYYMMDD'); + const endDate = helper.strToDate('20240203', 'YYYYMMDD'); + + // Test start date boundary + const onStartDate = helper.strToDate('20240201', 'YYYYMMDD'); + expect(onStartDate.valueOf() >= startDate.valueOf()).toBe(true); + expect(!onStartDate.isBefore(startDate, 'day')).toBe(true); + expect(onStartDate.isSameOrAfter(startDate, 'day')).toBe(true); + + // Test end date boundary + const onEndDate = helper.strToDate('20240203', 'YYYYMMDD'); + expect(onEndDate.valueOf() <= endDate.valueOf()).toBe(true); + expect(!onEndDate.isAfter(endDate, 'day')).toBe(true); + expect(onEndDate.isSameOrBefore(endDate, 'day')).toBe(true); + }); + + it('should handle dates normalized to start of day', () => { + // strToDate normalizes to startOf('day'), so all dates should be at midnight + const date1 = helper.strToDate('20240201', 'YYYYMMDD'); + const date2 = helper.strToDate('20240201', 'YYYYMMDD'); + + // Both should be at midnight (00:00:00) + expect(date1.hours()).toBe(0); + expect(date1.minutes()).toBe(0); + expect(date1.seconds()).toBe(0); + expect(date1.valueOf()).toBe(date2.valueOf()); + }); + }); + + describe('Performance and clarity', () => { + it('should note that isBefore/isAfter is more explicit about day granularity', () => { + // isBefore/isAfter with 'day' is more explicit about what we're comparing + // valueOf() works but is less clear about granularity + const date1 = helper.strToDate('20240201', 'YYYYMMDD'); + const date2 = helper.strToDate('20240201', 'YYYYMMDD'); + + // Both methods work, but isBefore with 'day' is more explicit + expect(date1.isBefore(date2, 'day')).toBe(false); + expect(date1.valueOf() < date2.valueOf()).toBe(false); + }); + }); +}); diff --git a/test/date-format-yyyymmdd.test.ts b/test/date-format-yyyymmdd.test.ts new file mode 100644 index 0000000..94dae53 --- /dev/null +++ b/test/date-format-yyyymmdd.test.ts @@ -0,0 +1,206 @@ +/** + * Tests for Issue #324: YYYYMMDD date format not working properly for startDate/endDate + * + * Bug: When dateFormat is set to YYYYMMDD, the startDate and endDate settings + * become ineffective and all files are included regardless of the date range. + */ + +import * as helper from '../src/helper'; +import { RenderInfo } from '../src/data'; +import moment from 'moment'; + +describe('Issue #324: YYYYMMDD date format with startDate/endDate', () => { + // Set up window.moment for tests + beforeAll(() => { + if (typeof (global as any).window === 'undefined') { + (global as any).window = {}; + } + (global as any).window.moment = moment; + }); + + describe('strToDate function with YYYYMMDD format', () => { + it('should parse YYYYMMDD format correctly', () => { + const date = helper.strToDate('20240201', 'YYYYMMDD'); + expect(date.isValid()).toBe(true); + expect(date.format('YYYY-MM-DD')).toBe('2024-02-01'); + }); + + it('should parse YYYY-MM-DD format correctly (baseline)', () => { + const date = helper.strToDate('2024-02-01', 'YYYY-MM-DD'); + expect(date.isValid()).toBe(true); + expect(date.format('YYYY-MM-DD')).toBe('2024-02-01'); + }); + + it('should parse dates with YYYYMMDD format consistently', () => { + const date1 = helper.strToDate('20240201', 'YYYYMMDD'); + const date2 = helper.strToDate('20240203', 'YYYYMMDD'); + + expect(date1.isValid()).toBe(true); + expect(date2.isValid()).toBe(true); + + // Verify date comparison works + expect(date1.isBefore(date2)).toBe(true); + expect(date2.isAfter(date1)).toBe(true); + }); + }); + + describe('Date range filtering with YYYYMMDD format', () => { + it('should correctly compare dates parsed with YYYYMMDD format', () => { + const startDate = helper.strToDate('20240201', 'YYYYMMDD'); + const endDate = helper.strToDate('20240203', 'YYYYMMDD'); + const testDate1 = helper.strToDate('20240131', 'YYYYMMDD'); // Before range + const testDate2 = helper.strToDate('20240202', 'YYYYMMDD'); // In range + const testDate3 = helper.strToDate('20240204', 'YYYYMMDD'); // After range + + // These comparisons should work correctly + expect(testDate1.isBefore(startDate)).toBe(true); + expect(testDate2.isSameOrAfter(startDate) && testDate2.isSameOrBefore(endDate)).toBe(true); + expect(testDate3.isAfter(endDate)).toBe(true); + }); + + it('should correctly identify dates within range using isBefore/isAfter (fixed comparison)', () => { + const startDate = helper.strToDate('20240201', 'YYYYMMDD'); + const endDate = helper.strToDate('20240203', 'YYYYMMDD'); + const testDate1 = helper.strToDate('20240131', 'YYYYMMDD'); // Before + const testDate2 = helper.strToDate('20240202', 'YYYYMMDD'); // In range + const testDate3 = helper.strToDate('20240204', 'YYYYMMDD'); // After + + // Test the fixed comparison logic using isBefore/isAfter (more reliable) + const beforeRange = testDate1.isBefore(startDate, 'day'); + const inRange = !testDate2.isBefore(startDate, 'day') && !testDate2.isAfter(endDate, 'day'); + const afterRange = testDate3.isAfter(endDate, 'day'); + + expect(beforeRange).toBe(true); + expect(inRange).toBe(true); + expect(afterRange).toBe(true); + }); + + it('should correctly compare dates with YYYY-MM-DD format (baseline)', () => { + const startDate = helper.strToDate('2024-02-01', 'YYYY-MM-DD'); + const endDate = helper.strToDate('2024-02-03', 'YYYY-MM-DD'); + const testDate1 = helper.strToDate('2024-01-31', 'YYYY-MM-DD'); + const testDate2 = helper.strToDate('2024-02-02', 'YYYY-MM-DD'); + const testDate3 = helper.strToDate('2024-02-04', 'YYYY-MM-DD'); + + const beforeRange = testDate1 < startDate; + const inRange = !(testDate2 < startDate) && !(testDate2 > endDate); + const afterRange = testDate3 > endDate; + + expect(beforeRange).toBe(true); + expect(inRange).toBe(true); + expect(afterRange).toBe(true); + }); + }); + + describe('Reproducing the bug: date comparison with YYYYMMDD', () => { + it('should correctly filter dates when using YYYYMMDD format', () => { + // Simulate the scenario from the issue + const startDateStr = '20240201'; + const endDateStr = '20240203'; + const dateFormat = 'YYYYMMDD'; + + const startDate = helper.strToDate(startDateStr, dateFormat); + const endDate = helper.strToDate(endDateStr, dateFormat); + + // Test dates from different years (as mentioned in issue comments) + const datesToTest = [ + { str: '20180101', expected: 'before' }, // 2018 - before range + { str: '20190101', expected: 'before' }, // 2019 - before range + { str: '20240201', expected: 'in' }, // Start date + { str: '20240202', expected: 'in' }, // In range + { str: '20240203', expected: 'in' }, // End date + { str: '20240204', expected: 'after' }, // After range + ]; + + datesToTest.forEach(({ str, expected }) => { + const testDate = helper.strToDate(str, dateFormat); + expect(testDate.isValid()).toBe(true); + + // Apply the fixed filtering logic as in main.ts (using isBefore/isAfter) + let shouldSkip = false; + if (startDate !== null && startDate.isValid()) { + if (testDate.isBefore(startDate, 'day')) { + shouldSkip = true; + } + } + if (endDate !== null && endDate.isValid()) { + if (testDate.isAfter(endDate, 'day')) { + shouldSkip = true; + } + } + + if (expected === 'before' || expected === 'after') { + expect(shouldSkip).toBe(true); + } else { + expect(shouldSkip).toBe(false); + } + }); + }); + + it('BUG REPRODUCTION: should fail when dates have different format contexts', () => { + // This test reproduces the actual bug scenario + // When startDate/endDate are parsed with YYYYMMDD format, + // and file dates are also parsed with YYYYMMDD format, + // the comparison might fail due to format context issues + + const dateFormat = 'YYYYMMDD'; + + // Parse startDate and endDate (as done in parsing.ts) + const startDate = helper.strToDate('20240201', dateFormat); + const endDate = helper.strToDate('20240203', dateFormat); + + // Parse file dates (as done when reading files) + const fileDate1 = helper.strToDate('20180101', dateFormat); // Before range + const fileDate2 = helper.strToDate('20240202', dateFormat); // In range + const fileDate3 = helper.strToDate('20240204', dateFormat); // After range + + // Check if dates are valid + expect(startDate.isValid()).toBe(true); + expect(endDate.isValid()).toBe(true); + expect(fileDate1.isValid()).toBe(true); + expect(fileDate2.isValid()).toBe(true); + expect(fileDate3.isValid()).toBe(true); + + // The bug: comparison might fail if dates have different internal format storage + // Check the creation data format + const startFormat = startDate.creationData().format; + const fileFormat1 = fileDate1.creationData().format; + + // If formats differ, comparison might fail + // This is the suspected bug + const formatsMatch = startFormat.toString() === fileFormat1.toString(); + + // Test the actual comparison operators used in main.ts + const beforeRange = fileDate1 < startDate; + const inRange = !(fileDate2 < startDate) && !(fileDate2 > endDate); + const afterRange = fileDate3 > endDate; + + // These should all work correctly + expect(beforeRange).toBe(true); + expect(inRange).toBe(true); + expect(afterRange).toBe(true); + }); + }); + + describe('dateToStr and strToDate roundtrip with YYYYMMDD', () => { + it('should correctly roundtrip dates with YYYYMMDD format', () => { + const originalDate = moment('2024-02-01'); + const dateStr = helper.dateToStr(originalDate, 'YYYYMMDD'); + expect(dateStr).toBe('20240201'); + + const parsedDate = helper.strToDate(dateStr, 'YYYYMMDD'); + expect(parsedDate.isValid()).toBe(true); + expect(parsedDate.format('YYYY-MM-DD')).toBe('2024-02-01'); + }); + + it('should correctly roundtrip dates with YYYY-MM-DD format (baseline)', () => { + const originalDate = moment('2024-02-01'); + const dateStr = helper.dateToStr(originalDate, 'YYYY-MM-DD'); + expect(dateStr).toBe('2024-02-01'); + + const parsedDate = helper.strToDate(dateStr, 'YYYY-MM-DD'); + expect(parsedDate.isValid()).toBe(true); + expect(parsedDate.format('YYYY-MM-DD')).toBe('2024-02-01'); + }); + }); +}); diff --git a/test/edge-cases-date-filtering.test.ts b/test/edge-cases-date-filtering.test.ts new file mode 100644 index 0000000..f7a8877 --- /dev/null +++ b/test/edge-cases-date-filtering.test.ts @@ -0,0 +1,365 @@ +/** + * Edge case tests for date filtering + * + * Tests various edge cases that might not be covered by the main test cases + */ + +import { getRenderInfoFromYaml } from '../src/parsing'; +import { getDateFromFilename } from '../src/collecting'; +import { RenderInfo } from '../src/data'; +import moment from 'moment'; + +// Mock Tracker plugin +class MockTracker { + app: any; + settings: any; + + constructor() { + this.app = { + vault: { + getAbstractFileByPath: (path: string) => { + const { TFolder } = require('./mocks/obsidian'); + return new TFolder(path, path); + }, + getConfig: (key: string) => { + if (key === 'tabSize') return 4; + return null; + } + } + }; + this.settings = { + folder: '/', + dateFormat: 'YYYY-MM-DD' + }; + } +} + +describe('Edge Cases: Date Filtering', () => { + let mockPlugin: MockTracker; + + beforeAll(() => { + if (typeof (global as any).window === 'undefined') { + (global as any).window = {}; + } + (global as any).window.moment = moment; + mockPlugin = new MockTracker(); + }); + + describe('Boundary conditions', () => { + it('should include files with dates exactly equal to startDate', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test +dateFormat: YYYYMMDD +startDate: 20240201 +endDate: 20240203 +line: + title: Test +`.trim(); + + const renderInfo = getRenderInfoFromYaml(yamlText, mockPlugin as any); + if (typeof renderInfo === 'string') { + fail(`Parsing failed: ${renderInfo}`); + return; + } + + const file = { basename: '20240201', name: '20240201.md', path: 'test/20240201.md' }; + const fileDate = getDateFromFilename(file as any, renderInfo); + + const startDate = renderInfo.startDate!; + const endDate = renderInfo.endDate!; + + // File date equals startDate - should be included + expect(fileDate.valueOf() >= startDate.valueOf()).toBe(true); + expect(fileDate.valueOf() <= endDate.valueOf()).toBe(true); + }); + + it('should include files with dates exactly equal to endDate', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test +dateFormat: YYYYMMDD +startDate: 20240201 +endDate: 20240203 +line: + title: Test +`.trim(); + + const renderInfo = getRenderInfoFromYaml(yamlText, mockPlugin as any); + if (typeof renderInfo === 'string') { + fail(`Parsing failed: ${renderInfo}`); + return; + } + + const file = { basename: '20240203', name: '20240203.md', path: 'test/20240203.md' }; + const fileDate = getDateFromFilename(file as any, renderInfo); + + const startDate = renderInfo.startDate!; + const endDate = renderInfo.endDate!; + + // File date equals endDate - should be included + expect(fileDate.valueOf() >= startDate.valueOf()).toBe(true); + expect(fileDate.valueOf() <= endDate.valueOf()).toBe(true); + }); + + it('should exclude files with dates exactly one day before startDate', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test +dateFormat: YYYYMMDD +startDate: 20240201 +endDate: 20240203 +line: + title: Test +`.trim(); + + const renderInfo = getRenderInfoFromYaml(yamlText, mockPlugin as any); + if (typeof renderInfo === 'string') { + fail(`Parsing failed: ${renderInfo}`); + return; + } + + const file = { basename: '20240131', name: '20240131.md', path: 'test/20240131.md' }; + const fileDate = getDateFromFilename(file as any, renderInfo); + + const startDate = renderInfo.startDate!; + + // File date is before startDate - should be excluded + expect(fileDate.valueOf() < startDate.valueOf()).toBe(true); + }); + + it('should exclude files with dates exactly one day after endDate', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test +dateFormat: YYYYMMDD +startDate: 20240201 +endDate: 20240203 +line: + title: Test +`.trim(); + + const renderInfo = getRenderInfoFromYaml(yamlText, mockPlugin as any); + if (typeof renderInfo === 'string') { + fail(`Parsing failed: ${renderInfo}`); + return; + } + + const file = { basename: '20240204', name: '20240204.md', path: 'test/20240204.md' }; + const fileDate = getDateFromFilename(file as any, renderInfo); + + const endDate = renderInfo.endDate!; + + // File date is after endDate - should be excluded + expect(fileDate.valueOf() > endDate.valueOf()).toBe(true); + }); + }); + + describe('Missing date boundaries', () => { + it('should include all files when startDate is missing', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test +dateFormat: YYYYMMDD +endDate: 20240203 +line: + title: Test +`.trim(); + + const renderInfo = getRenderInfoFromYaml(yamlText, mockPlugin as any); + if (typeof renderInfo === 'string') { + fail(`Parsing failed: ${renderInfo}`); + return; + } + + expect(renderInfo.startDate).toBeNull(); + expect(renderInfo.endDate).not.toBeNull(); + + // Files before endDate should be included + const file = { basename: '20240101', name: '20240101.md', path: 'test/20240101.md' }; + const fileDate = getDateFromFilename(file as any, renderInfo); + const endDate = renderInfo.endDate!; + + expect(fileDate.valueOf() <= endDate.valueOf()).toBe(true); + }); + + it('should include all files when endDate is missing', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test +dateFormat: YYYYMMDD +startDate: 20240201 +line: + title: Test +`.trim(); + + const renderInfo = getRenderInfoFromYaml(yamlText, mockPlugin as any); + if (typeof renderInfo === 'string') { + fail(`Parsing failed: ${renderInfo}`); + return; + } + + expect(renderInfo.startDate).not.toBeNull(); + expect(renderInfo.endDate).toBeNull(); + + // Files after startDate should be included + const file = { basename: '20241231', name: '20241231.md', path: 'test/20241231.md' }; + const fileDate = getDateFromFilename(file as any, renderInfo); + const startDate = renderInfo.startDate!; + + expect(fileDate.valueOf() >= startDate.valueOf()).toBe(true); + }); + + it('should include all files when both startDate and endDate are missing', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test +dateFormat: YYYYMMDD +line: + title: Test +`.trim(); + + const renderInfo = getRenderInfoFromYaml(yamlText, mockPlugin as any); + if (typeof renderInfo === 'string') { + fail(`Parsing failed: ${renderInfo}`); + return; + } + + expect(renderInfo.startDate).toBeNull(); + expect(renderInfo.endDate).toBeNull(); + + // Any file should be processable + const file = { basename: '20240101', name: '20240101.md', path: 'test/20240101.md' }; + const fileDate = getDateFromFilename(file as any, renderInfo); + + expect(fileDate.isValid()).toBe(true); + }); + }); + + describe('Year/month boundaries', () => { + it('should handle dates at year boundary correctly', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test +dateFormat: YYYYMMDD +startDate: 20231231 +endDate: 20240102 +line: + title: Test +`.trim(); + + const renderInfo = getRenderInfoFromYaml(yamlText, mockPlugin as any); + if (typeof renderInfo === 'string') { + fail(`Parsing failed: ${renderInfo}`); + return; + } + + const files = [ + { basename: '20231230', expected: 'excluded' }, // Before + { basename: '20231231', expected: 'included' }, // Start + { basename: '20240101', expected: 'included' }, // Year boundary + { basename: '20240102', expected: 'included' }, // End + { basename: '20240103', expected: 'excluded' }, // After + ]; + + const startDate = renderInfo.startDate!; + const endDate = renderInfo.endDate!; + + for (const { basename, expected } of files) { + const file = { basename, name: `${basename}.md`, path: `test/${basename}.md` }; + const fileDate = getDateFromFilename(file as any, renderInfo); + + const inRange = + fileDate.valueOf() >= startDate.valueOf() && + fileDate.valueOf() <= endDate.valueOf(); + + if (expected === 'included') { + expect(inRange).toBe(true); + } else { + expect(inRange).toBe(false); + } + } + }); + + it('should handle dates at month boundary correctly', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test +dateFormat: YYYYMMDD +startDate: 20240131 +endDate: 20240202 +line: + title: Test +`.trim(); + + const renderInfo = getRenderInfoFromYaml(yamlText, mockPlugin as any); + if (typeof renderInfo === 'string') { + fail(`Parsing failed: ${renderInfo}`); + return; + } + + const files = [ + { basename: '20240130', expected: 'excluded' }, // Before + { basename: '20240131', expected: 'included' }, // Start (last day of Jan) + { basename: '20240201', expected: 'included' }, // Month boundary + { basename: '20240202', expected: 'included' }, // End + { basename: '20240203', expected: 'excluded' }, // After + ]; + + const startDate = renderInfo.startDate!; + const endDate = renderInfo.endDate!; + + for (const { basename, expected } of files) { + const file = { basename, name: `${basename}.md`, path: `test/${basename}.md` }; + const fileDate = getDateFromFilename(file as any, renderInfo); + + const inRange = + fileDate.valueOf() >= startDate.valueOf() && + fileDate.valueOf() <= endDate.valueOf(); + + if (expected === 'included') { + expect(inRange).toBe(true); + } else { + expect(inRange).toBe(false); + } + } + }); + }); + + describe('Invalid date handling', () => { + it('should handle files with invalid date formats gracefully', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test +dateFormat: YYYYMMDD +startDate: 20240201 +endDate: 20240203 +line: + title: Test +`.trim(); + + const renderInfo = getRenderInfoFromYaml(yamlText, mockPlugin as any); + if (typeof renderInfo === 'string') { + fail(`Parsing failed: ${renderInfo}`); + return; + } + + // File with invalid date format + const file = { basename: 'invalid-date', name: 'invalid-date.md', path: 'test/invalid-date.md' }; + const fileDate = getDateFromFilename(file as any, renderInfo); + + // Invalid dates should be marked as invalid + expect(fileDate.isValid()).toBe(false); + }); + }); +}); diff --git a/test/mocks/d3.ts b/test/mocks/d3.ts new file mode 100644 index 0000000..b5cfd5f --- /dev/null +++ b/test/mocks/d3.ts @@ -0,0 +1,2 @@ +// Mock for d3 library +export default {}; diff --git a/test/mocks/obsidian.ts b/test/mocks/obsidian.ts new file mode 100644 index 0000000..c2a2c87 --- /dev/null +++ b/test/mocks/obsidian.ts @@ -0,0 +1,93 @@ +// Mock for Obsidian API +// This provides window.moment which is used throughout the codebase + +import moment from 'moment'; + +// Create a global window object if it doesn't exist +if (typeof (global as any).window === 'undefined') { + (global as any).window = {}; +} + +// Mock window.moment with the actual moment library +(global as any).window.moment = moment; + +// Export minimal Obsidian types for TypeScript +export class TFile { + basename: string; + name: string; + path: string; + extension: string; + stat: any; + + constructor(basename: string, path: string = '') { + this.basename = basename; + this.name = basename; + this.path = path || basename; + this.extension = ''; + this.stat = {}; + } +} + +export class TFolder { + name: string; + path: string; + + constructor(name: string, path: string = '') { + this.name = name; + this.path = path || name; + } +} + +export function normalizePath(path: string): string { + return path.replace(/\\/g, '/'); +} + +export interface CachedMetadata { + frontmatter?: Record; + tags?: Array<{ tag: string }>; +} + +// Simple YAML parser for testing (handles basic key-value pairs and nested objects) +export function parseYaml(yamlText: string): any { + const result: any = {}; + const lines = yamlText.split('\n'); + const stack: Array<{ obj: any; indent: number }> = [{ obj: result, indent: -1 }]; + + for (const line of lines) { + const trimmed = line.trim(); + if (!trimmed || trimmed.startsWith('#')) continue; + + // Calculate indentation (spaces before first non-space char) + const indent = line.length - line.trimStart().length; + + // Pop stack until we find the parent at this indentation level + while (stack.length > 1 && stack[stack.length - 1].indent >= indent) { + stack.pop(); + } + + const colonIndex = trimmed.indexOf(':'); + if (colonIndex === -1) continue; + + const key = trimmed.substring(0, colonIndex).trim(); + let value: any = trimmed.substring(colonIndex + 1).trim(); + + // Remove quotes if present + if ((value.startsWith('"') && value.endsWith('"')) || + (value.startsWith("'") && value.endsWith("'"))) { + value = value.slice(1, -1); + } + + // If value is empty, it's likely a nested object + const currentObj = stack[stack.length - 1].obj; + if (value === '') { + // Create nested object + currentObj[key] = {}; + stack.push({ obj: currentObj[key], indent: indent }); + } else { + // Simple key-value pair + currentObj[key] = value; + } + } + + return result; +} diff --git a/test/parsing-yyyymmdd.test.ts b/test/parsing-yyyymmdd.test.ts new file mode 100644 index 0000000..34d6f87 --- /dev/null +++ b/test/parsing-yyyymmdd.test.ts @@ -0,0 +1,154 @@ +/** + * Tests for Issue #324: YYYYMMDD date format parsing in getRenderInfoFromYaml + * + * This test verifies that startDate and endDate are correctly parsed from YAML + * when dateFormat is YYYYMMDD. + */ + +import { getRenderInfoFromYaml } from '../src/parsing'; +import { RenderInfo } from '../src/data'; +import moment from 'moment'; + +// Mock Tracker plugin +class MockTracker { + app: any; + settings: any; + + constructor() { + this.app = { + vault: { + getAbstractFileByPath: (path: string) => { + // Return a mock folder for any path + const { TFolder } = require('./mocks/obsidian'); + return new TFolder(path, path); + }, + getConfig: (key: string) => { + if (key === 'tabSize') return 4; + return null; + } + } + }; + this.settings = { + folder: '/', + dateFormat: 'YYYY-MM-DD' + }; + } +} + +describe('Issue #324: YYYYMMDD date format parsing', () => { + let mockPlugin: MockTracker; + + beforeAll(() => { + if (typeof (global as any).window === 'undefined') { + (global as any).window = {}; + } + (global as any).window.moment = moment; + mockPlugin = new MockTracker(); + }); + + it('should parse startDate and endDate with YYYYMMDD format', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test-issue-324 +dateFormat: YYYYMMDD +startDate: 20240201 +endDate: 20240203 +line: + title: Test +`.trim(); + + const result = getRenderInfoFromYaml(yamlText, mockPlugin as any); + + // Log the actual result to see what we're getting + if (typeof result === 'string') { + console.log('Error message:', result); + } + + expect(typeof result).toBe('object'); + expect(result).not.toBeInstanceOf(String); // Should not be an error message + + const renderInfo = result as RenderInfo; + + // Check that dateFormat is set correctly + expect(renderInfo.dateFormat).toBe('YYYYMMDD'); + + // Check that startDate and endDate are parsed correctly + expect(renderInfo.startDate).not.toBeNull(); + expect(renderInfo.startDate?.isValid()).toBe(true); + expect(renderInfo.startDate?.format('YYYY-MM-DD')).toBe('2024-02-01'); + + expect(renderInfo.endDate).not.toBeNull(); + expect(renderInfo.endDate?.isValid()).toBe(true); + expect(renderInfo.endDate?.format('YYYY-MM-DD')).toBe('2024-02-03'); + }); + + it('should parse startDate and endDate with YYYY-MM-DD format (baseline)', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test-issue-324 +dateFormat: YYYY-MM-DD +startDate: 2024-02-01 +endDate: 2024-02-03 +line: + title: Test +`.trim(); + + const result = getRenderInfoFromYaml(yamlText, mockPlugin as any); + + expect(typeof result).toBe('object'); + expect(result).not.toBeInstanceOf(String); + + const renderInfo = result as RenderInfo; + + expect(renderInfo.dateFormat).toBe('YYYY-MM-DD'); + expect(renderInfo.startDate).not.toBeNull(); + expect(renderInfo.startDate?.isValid()).toBe(true); + expect(renderInfo.startDate?.format('YYYY-MM-DD')).toBe('2024-02-01'); + + expect(renderInfo.endDate).not.toBeNull(); + expect(renderInfo.endDate?.isValid()).toBe(true); + expect(renderInfo.endDate?.format('YYYY-MM-DD')).toBe('2024-02-03'); + }); + + it('should handle missing startDate and endDate', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test-issue-324 +dateFormat: YYYYMMDD +line: + title: Test +`.trim(); + + const result = getRenderInfoFromYaml(yamlText, mockPlugin as any); + + expect(typeof result).toBe('object'); + expect(result).not.toBeInstanceOf(String); + + const renderInfo = result as RenderInfo; + + expect(renderInfo.dateFormat).toBe('YYYYMMDD'); + expect(renderInfo.startDate).toBeNull(); + expect(renderInfo.endDate).toBeNull(); + }); + + it('should return error for invalid startDate format', () => { + const yamlText = ` +searchType: tag +searchTarget: weight +folder: test-issue-324 +dateFormat: YYYYMMDD +startDate: invalid-date +endDate: 20240203 +line: + title: Test +`.trim(); + + const result = getRenderInfoFromYaml(yamlText, mockPlugin as any); + + expect(typeof result).toBe('string'); // Should be an error message + expect(result).toContain('Invalid startDate'); + }); +}); diff --git a/test/setup.ts b/test/setup.ts new file mode 100644 index 0000000..1912fc4 --- /dev/null +++ b/test/setup.ts @@ -0,0 +1,11 @@ +// Jest setup file +// This runs before each test file + +// Ensure window.moment is available globally +import moment from 'moment'; + +if (typeof (global as any).window === 'undefined') { + (global as any).window = {}; +} + +(global as any).window.moment = moment; From 08c6f7bfaf0c9527d47e08c33688c36c1edf8b44 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Wed, 18 Feb 2026 21:57:50 -0700 Subject: [PATCH 269/277] Small corrections from PR --- docs/Examples.md | 4 ++-- manifest.json | 2 +- versions.json | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/docs/Examples.md b/docs/Examples.md index 2d09417..efd0593 100644 --- a/docs/Examples.md +++ b/docs/Examples.md @@ -35,7 +35,7 @@ Check where (Location) and what (Target to Track) is your target and find the se | content | - [x] Say love
- [ ] Say love | searchType:task
searchTarget: Say love | O | | content | - [x] Say love | searchType:task.done
searchTarget: Say love | O | | content | - [ ] Say love | searchType: task.notdone
searchTarget: Say love | O | -| frontmatter | habits: spanish, piano, yoga
([more examples](https://github.com/curious-archaea/obsidian-tracker/blob/master/docs/TargetEvaluation.md#Formatting-property-values-in-frontmatter))| searchType: frontmatterlist
searchTarget: habits[spanish] | O | +| frontmatter | habits: spanish, piano, yoga
([more examples](https://github.com/pyrochlore/obsidian-tracker/blob/master/docs/TargetEvaluation.md#Formatting-property-values-in-frontmatter))| searchType: frontmatterlist
searchTarget: habits[spanish] | O | ## Full examples @@ -55,7 +55,7 @@ List of all examples - [Dataview Inline Field](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestDvField.md) - [Expression](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestExpression.md) - [File Meta](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestFileMeta.md) -- [Frontmatter Lists](https://github.com/curious-archaea/obsidian-tracker/blob/master/examples/TestFrontmatterList.md) (New!) +- [Frontmatter Lists](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestFrontmatterList.md) (New!) - [Legends](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestLegends.md) - [Multiple Targets / Multiple Values](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestMultipleTargetsMultipleValues.md) - [Pie Chart](https://github.com/pyrochlore/obsidian-tracker/blob/master/examples/TestPieChart.md) diff --git a/manifest.json b/manifest.json index ab508a9..557f716 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.18.0", + "version": "1.17.0", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/versions.json b/versions.json index 9157c01..3e7e34e 100644 --- a/versions.json +++ b/versions.json @@ -39,6 +39,5 @@ "1.15.0": "0.9.12", "1.15.1": "0.9.12", "1.16.0": "0.9.12", - "1.17.0": "0.9.12", - "1.18.0": "0.9.12" + "1.17.0": "0.9.12" } From fbf9c56cd17fcacfe2723bce1d50ea50ae413624 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Wed, 18 Feb 2026 22:13:40 -0700 Subject: [PATCH 270/277] Update dependencies --- package-lock.json | 32 ++++++++++++++++---------------- package.json | 12 ++++++------ rollup.config.dev.mjs | 2 +- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/package-lock.json b/package-lock.json index 967cba3..2862bf5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,18 +15,18 @@ "sprintf-js": "^1.1.3" }, "devDependencies": { - "@rollup/plugin-commonjs": "^28.0.5", - "@rollup/plugin-node-resolve": "^16.0.1", + "@rollup/plugin-commonjs": "^29.0.0", + "@rollup/plugin-node-resolve": "^16.0.3", "@rollup/plugin-terser": "^0.4.4", - "@rollup/plugin-typescript": "^12.1.2", + "@rollup/plugin-typescript": "^12.3.0", "@types/d3": "^7.4.3", - "@types/node": "^24.0.3", + "@types/node": "^25.3.0", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.44.0", + "rollup": "^4.57.1", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.8.1", - "typescript": "^5.8.3" + "typescript": "^5.9.3" } }, "node_modules/@codemirror/state": { @@ -150,9 +150,9 @@ } }, "node_modules/@rollup/plugin-commonjs": { - "version": "28.0.9", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.9.tgz", - "integrity": "sha512-PIR4/OHZ79romx0BVVll/PkwWpJ7e5lsqFa3gFfcrFPWwLXLV39JVUzQV9RKjWerE7B845Hqjj9VYlQeieZ2dA==", + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-29.0.0.tgz", + "integrity": "sha512-U2YHaxR2cU/yAiwKJtJRhnyLk7cifnQw0zUpISsocBDoHDJn+HTV74ABqnwr5bEgWUwFZC9oFL6wLe21lHu5eQ==", "dev": true, "license": "MIT", "dependencies": { @@ -961,13 +961,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.10.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.13.tgz", - "integrity": "sha512-oH72nZRfDv9lADUBSo104Aq7gPHpQZc4BTx38r9xf9pg5LfP6EzSyH2n7qFmmxRQXh7YlUXODcYsg6PuTDSxGg==", + "version": "25.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.0.tgz", + "integrity": "sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.16.0" + "undici-types": "~7.18.0" } }, "node_modules/@types/resolve": { @@ -2323,9 +2323,9 @@ } }, "node_modules/undici-types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", "dev": true, "license": "MIT" }, diff --git a/package.json b/package.json index 58f2a50..bd5ffb3 100644 --- a/package.json +++ b/package.json @@ -12,18 +12,18 @@ "author": "pyrochlore", "license": "MIT", "devDependencies": { - "@rollup/plugin-commonjs": "^28.0.5", - "@rollup/plugin-node-resolve": "^16.0.1", + "@rollup/plugin-commonjs": "^29.0.0", + "@rollup/plugin-node-resolve": "^16.0.3", "@rollup/plugin-terser": "^0.4.4", - "@rollup/plugin-typescript": "^12.1.2", + "@rollup/plugin-typescript": "^12.3.0", "@types/d3": "^7.4.3", - "@types/node": "^24.0.3", + "@types/node": "^25.3.0", "@types/sprintf-js": "^1.1.4", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.44.0", + "rollup": "^4.57.1", "rollup-plugin-copy": "^3.5.0", "tslib": "^2.8.1", - "typescript": "^5.8.3" + "typescript": "^5.9.3" }, "dependencies": { "d3": "^7.9.0", diff --git a/rollup.config.dev.mjs b/rollup.config.dev.mjs index 22c50a2..50363b1 100644 --- a/rollup.config.dev.mjs +++ b/rollup.config.dev.mjs @@ -35,4 +35,4 @@ export default { warner(warning); } } -}; \ No newline at end of file +}; From 77c62ebcd2fb4b75767337e6fc6ba76728513a07 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Wed, 18 Feb 2026 22:19:23 -0700 Subject: [PATCH 271/277] Release 1.18.0 --- README.md | 7 +++++++ docs/ReleaseNotes.md | 7 +++++++ manifest.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- versions.json | 3 ++- 6 files changed, 20 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index af6f918..5c82199 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,13 @@ This is an [Obsidian](https://obsidian.md/) plugin that helps you collect data f ## What's New +Version 1.18.0 + +- Support all days for startWeekOn parameter +- Handle numeric YAML parsing for startDate/endDate with YYYYMMDD format +- Add searchType for frontmatter keys containing lists +- Update dependencies + Version 1.17.0 - Adding colorByStreak parameter to Calendars allowing for increase color intensity based on streak diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index da14099..274b6fd 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,12 @@ # Release Notes +## 1.18.0 + +- Support all days for startWeekOn parameter +- Handle numeric YAML parsing for startDate/endDate with YYYYMMDD format +- Add searchType for frontmatter keys containing lists +- Update dependencies + ## 1.17.0 - Adding colorByStreak parameter to Calendars allowing for increase color intensity based on streak diff --git a/manifest.json b/manifest.json index 557f716..ab508a9 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.17.0", + "version": "1.18.0", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package-lock.json b/package-lock.json index 2862bf5..f04e151 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "obsidian-tracker", - "version": "1.17.0", + "version": "1.18.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "obsidian-tracker", - "version": "1.17.0", + "version": "1.18.0", "license": "MIT", "dependencies": { "d3": "^7.9.0", diff --git a/package.json b/package.json index bd5ffb3..49a0870 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.17.0", + "version": "1.18.0", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index 3e7e34e..9157c01 100644 --- a/versions.json +++ b/versions.json @@ -39,5 +39,6 @@ "1.15.0": "0.9.12", "1.15.1": "0.9.12", "1.16.0": "0.9.12", - "1.17.0": "0.9.12" + "1.17.0": "0.9.12", + "1.18.0": "0.9.12" } From 6c4cd8e5523c21941da6d79f20c8180993d64d2a Mon Sep 17 00:00:00 2001 From: Mike Greiner Date: Thu, 19 Feb 2026 07:33:47 -0700 Subject: [PATCH 272/277] fix: add meditation frontmatter key to example diary files The TestFrontmatter.md example for frontmatter.exists searched for a 'meditation' key in frontmatter, but the diary files only had #meditation as an inline tag in the body. Added meditation: true to the frontmatter of all 38 diary files that have the inline tag, so the frontmatter.exists example works correctly. Co-Authored-By: Claude Opus 4.6 --- examples/diary/05-01-2021.md | 1 + examples/diary/05.01.2021.md | 1 + examples/diary/2021-01-02.md | 1 + examples/diary/2021-01-03.md | 1 + examples/diary/2021-01-04.md | 1 + examples/diary/2021-01-05-Tuesday.md | 1 + examples/diary/2021-01-05.md | 1 + examples/diary/2021-01-06.md | 1 + examples/diary/2021-01-09.md | 1 + examples/diary/2021-01-12.md | 1 + examples/diary/2021-01-13.md | 1 + examples/diary/2021-01-14.md | 1 + examples/diary/2021-01-15.md | 1 + examples/diary/2021-01-18.md | 1 + examples/diary/2021-01-19.md | 1 + examples/diary/2021-01-21.md | 1 + examples/diary/2021-01-24.md | 1 + examples/diary/2021-01-26.md | 1 + examples/diary/2021-01-27.md | 1 + examples/diary/20210103-D.md | 1 + examples/diary/20210104-D.md | 1 + examples/diary/20210105-D.md | 1 + examples/diary/5-20210105.md | 1 + examples/diary/D-20210103.md | 1 + examples/diary/D-20210104.md | 1 + examples/diary/D-20210105.md | 1 + examples/diary/Jeffrey-20210103-Diary.md | 1 + examples/diary/Jeffrey-20210103-Journal.md | 1 + examples/diary/Jeffrey-20210104-Diary.md | 1 + examples/diary/Jeffrey-20210104-Journal.md | 1 + examples/diary/Jeffrey-20210105-Diary.md | 1 + examples/diary/Jeffrey-20210105-Journal.md | 1 + examples/diary/Lucas-20210103-Diary.md | 1 + examples/diary/Lucas-20210103-Journal.md | 1 + examples/diary/Lucas-20210104-Diary.md | 1 + examples/diary/Lucas-20210104-Journal.md | 1 + examples/diary/Lucas-20210105-Diary.md | 1 + examples/diary/Lucas-20210105-Journal.md | 1 + 38 files changed, 38 insertions(+) diff --git a/examples/diary/05-01-2021.md b/examples/diary/05-01-2021.md index 892a3e0..f9285eb 100644 --- a/examples/diary/05-01-2021.md +++ b/examples/diary/05-01-2021.md @@ -1,6 +1,7 @@ --- tags: work_log mood: 8 +meditation: true --- #weight:60.2kg diff --git a/examples/diary/05.01.2021.md b/examples/diary/05.01.2021.md index 892a3e0..f9285eb 100644 --- a/examples/diary/05.01.2021.md +++ b/examples/diary/05.01.2021.md @@ -1,6 +1,7 @@ --- tags: work_log mood: 8 +meditation: true --- #weight:60.2kg diff --git a/examples/diary/2021-01-02.md b/examples/diary/2021-01-02.md index f81816e..efa7db3 100644 --- a/examples/diary/2021-01-02.md +++ b/examples/diary/2021-01-02.md @@ -18,6 +18,7 @@ deepValue: very: deep: 13.3 randchar: D +meditation: true --- #weight:76.2kg diff --git a/examples/diary/2021-01-03.md b/examples/diary/2021-01-03.md index 7d0cc2e..c932cbc 100644 --- a/examples/diary/2021-01-03.md +++ b/examples/diary/2021-01-03.md @@ -18,6 +18,7 @@ deepValue: very: deep: 73.0 randchar: D +meditation: true --- #weight:63.2kg diff --git a/examples/diary/2021-01-04.md b/examples/diary/2021-01-04.md index 05cf37f..20e97e9 100644 --- a/examples/diary/2021-01-04.md +++ b/examples/diary/2021-01-04.md @@ -18,6 +18,7 @@ deepValue: very: deep: 88.6 randchar: B +meditation: true --- #weight:61.6kg diff --git a/examples/diary/2021-01-05-Tuesday.md b/examples/diary/2021-01-05-Tuesday.md index 892a3e0..f9285eb 100644 --- a/examples/diary/2021-01-05-Tuesday.md +++ b/examples/diary/2021-01-05-Tuesday.md @@ -1,6 +1,7 @@ --- tags: work_log mood: 8 +meditation: true --- #weight:60.2kg diff --git a/examples/diary/2021-01-05.md b/examples/diary/2021-01-05.md index fab397f..da13f77 100644 --- a/examples/diary/2021-01-05.md +++ b/examples/diary/2021-01-05.md @@ -18,6 +18,7 @@ deepValue: very: deep: 13.1 randchar: A +meditation: true --- #weight:72.5kg diff --git a/examples/diary/2021-01-06.md b/examples/diary/2021-01-06.md index 45daced..21cbfba 100644 --- a/examples/diary/2021-01-06.md +++ b/examples/diary/2021-01-06.md @@ -18,6 +18,7 @@ deepValue: very: deep: 20.7 randchar: D +meditation: true --- #weight:60.1kg diff --git a/examples/diary/2021-01-09.md b/examples/diary/2021-01-09.md index 96fe317..b3573e8 100644 --- a/examples/diary/2021-01-09.md +++ b/examples/diary/2021-01-09.md @@ -18,6 +18,7 @@ deepValue: very: deep: 68.6 randchar: A +meditation: true --- #weight:68.8kg diff --git a/examples/diary/2021-01-12.md b/examples/diary/2021-01-12.md index 3999d50..9bebb98 100644 --- a/examples/diary/2021-01-12.md +++ b/examples/diary/2021-01-12.md @@ -18,6 +18,7 @@ deepValue: very: deep: 45.0 randchar: A +meditation: true --- #weight:61.7kg diff --git a/examples/diary/2021-01-13.md b/examples/diary/2021-01-13.md index d49e5e6..0777c37 100644 --- a/examples/diary/2021-01-13.md +++ b/examples/diary/2021-01-13.md @@ -18,6 +18,7 @@ deepValue: very: deep: 64.5 randchar: E +meditation: true --- #weight:71.7kg diff --git a/examples/diary/2021-01-14.md b/examples/diary/2021-01-14.md index 5d6e37f..13677a8 100644 --- a/examples/diary/2021-01-14.md +++ b/examples/diary/2021-01-14.md @@ -18,6 +18,7 @@ deepValue: very: deep: 61.5 randchar: C +meditation: true --- #weight:77.1kg diff --git a/examples/diary/2021-01-15.md b/examples/diary/2021-01-15.md index 7da38fe..2218e8b 100644 --- a/examples/diary/2021-01-15.md +++ b/examples/diary/2021-01-15.md @@ -18,6 +18,7 @@ deepValue: very: deep: 44.0 randchar: A +meditation: true --- #weight:69.6kg diff --git a/examples/diary/2021-01-18.md b/examples/diary/2021-01-18.md index b06ee71..780b960 100644 --- a/examples/diary/2021-01-18.md +++ b/examples/diary/2021-01-18.md @@ -18,6 +18,7 @@ deepValue: very: deep: 19.5 randchar: A +meditation: true --- #weight:78.7kg diff --git a/examples/diary/2021-01-19.md b/examples/diary/2021-01-19.md index 11ce05b..78a1428 100644 --- a/examples/diary/2021-01-19.md +++ b/examples/diary/2021-01-19.md @@ -18,6 +18,7 @@ deepValue: very: deep: 29.5 randchar: C +meditation: true --- #weight:69.3kg diff --git a/examples/diary/2021-01-21.md b/examples/diary/2021-01-21.md index 95f6869..8b9082a 100644 --- a/examples/diary/2021-01-21.md +++ b/examples/diary/2021-01-21.md @@ -19,6 +19,7 @@ deepValue: deep: 11.1 randchar: B sleptwell: false +meditation: true --- #weight:67.3kg diff --git a/examples/diary/2021-01-24.md b/examples/diary/2021-01-24.md index 4c8baef..9deeb9f 100644 --- a/examples/diary/2021-01-24.md +++ b/examples/diary/2021-01-24.md @@ -19,6 +19,7 @@ deepValue: deep: 39.4 randchar: B sleptwell: true +meditation: true --- #weight:64.1kg diff --git a/examples/diary/2021-01-26.md b/examples/diary/2021-01-26.md index c189d61..7041505 100644 --- a/examples/diary/2021-01-26.md +++ b/examples/diary/2021-01-26.md @@ -18,6 +18,7 @@ deepValue: very: deep: 73.1 randchar: B +meditation: true --- #weight:72.7kg diff --git a/examples/diary/2021-01-27.md b/examples/diary/2021-01-27.md index e7c320e..89b43c9 100644 --- a/examples/diary/2021-01-27.md +++ b/examples/diary/2021-01-27.md @@ -18,6 +18,7 @@ deepValue: very: deep: 78.5 randchar: B +meditation: true --- #weight:63.7kg diff --git a/examples/diary/20210103-D.md b/examples/diary/20210103-D.md index 3a89f50..68128a3 100644 --- a/examples/diary/20210103-D.md +++ b/examples/diary/20210103-D.md @@ -2,6 +2,7 @@ tags: mood: 7 bloodpressure: 178.2/119.4 +meditation: true --- #weight:74.9kg diff --git a/examples/diary/20210104-D.md b/examples/diary/20210104-D.md index 6ee80be..7b0f459 100644 --- a/examples/diary/20210104-D.md +++ b/examples/diary/20210104-D.md @@ -2,6 +2,7 @@ tags: work_log mood: 3 bloodpressure: 178.6/119.2 +meditation: true --- #weight:73.5kg diff --git a/examples/diary/20210105-D.md b/examples/diary/20210105-D.md index 1f8cccf..9af72af 100644 --- a/examples/diary/20210105-D.md +++ b/examples/diary/20210105-D.md @@ -2,6 +2,7 @@ tags: work_log mood: 1 bloodpressure: 177/119 +meditation: true --- #weight:70.0kg diff --git a/examples/diary/5-20210105.md b/examples/diary/5-20210105.md index 892a3e0..f9285eb 100644 --- a/examples/diary/5-20210105.md +++ b/examples/diary/5-20210105.md @@ -1,6 +1,7 @@ --- tags: work_log mood: 8 +meditation: true --- #weight:60.2kg diff --git a/examples/diary/D-20210103.md b/examples/diary/D-20210103.md index 3a89f50..68128a3 100644 --- a/examples/diary/D-20210103.md +++ b/examples/diary/D-20210103.md @@ -2,6 +2,7 @@ tags: mood: 7 bloodpressure: 178.2/119.4 +meditation: true --- #weight:74.9kg diff --git a/examples/diary/D-20210104.md b/examples/diary/D-20210104.md index 6ee80be..7b0f459 100644 --- a/examples/diary/D-20210104.md +++ b/examples/diary/D-20210104.md @@ -2,6 +2,7 @@ tags: work_log mood: 3 bloodpressure: 178.6/119.2 +meditation: true --- #weight:73.5kg diff --git a/examples/diary/D-20210105.md b/examples/diary/D-20210105.md index 1f8cccf..9af72af 100644 --- a/examples/diary/D-20210105.md +++ b/examples/diary/D-20210105.md @@ -2,6 +2,7 @@ tags: work_log mood: 1 bloodpressure: 177/119 +meditation: true --- #weight:70.0kg diff --git a/examples/diary/Jeffrey-20210103-Diary.md b/examples/diary/Jeffrey-20210103-Diary.md index 3a89f50..68128a3 100644 --- a/examples/diary/Jeffrey-20210103-Diary.md +++ b/examples/diary/Jeffrey-20210103-Diary.md @@ -2,6 +2,7 @@ tags: mood: 7 bloodpressure: 178.2/119.4 +meditation: true --- #weight:74.9kg diff --git a/examples/diary/Jeffrey-20210103-Journal.md b/examples/diary/Jeffrey-20210103-Journal.md index 3a89f50..68128a3 100644 --- a/examples/diary/Jeffrey-20210103-Journal.md +++ b/examples/diary/Jeffrey-20210103-Journal.md @@ -2,6 +2,7 @@ tags: mood: 7 bloodpressure: 178.2/119.4 +meditation: true --- #weight:74.9kg diff --git a/examples/diary/Jeffrey-20210104-Diary.md b/examples/diary/Jeffrey-20210104-Diary.md index 6ee80be..7b0f459 100644 --- a/examples/diary/Jeffrey-20210104-Diary.md +++ b/examples/diary/Jeffrey-20210104-Diary.md @@ -2,6 +2,7 @@ tags: work_log mood: 3 bloodpressure: 178.6/119.2 +meditation: true --- #weight:73.5kg diff --git a/examples/diary/Jeffrey-20210104-Journal.md b/examples/diary/Jeffrey-20210104-Journal.md index 6ee80be..7b0f459 100644 --- a/examples/diary/Jeffrey-20210104-Journal.md +++ b/examples/diary/Jeffrey-20210104-Journal.md @@ -2,6 +2,7 @@ tags: work_log mood: 3 bloodpressure: 178.6/119.2 +meditation: true --- #weight:73.5kg diff --git a/examples/diary/Jeffrey-20210105-Diary.md b/examples/diary/Jeffrey-20210105-Diary.md index 1f8cccf..9af72af 100644 --- a/examples/diary/Jeffrey-20210105-Diary.md +++ b/examples/diary/Jeffrey-20210105-Diary.md @@ -2,6 +2,7 @@ tags: work_log mood: 1 bloodpressure: 177/119 +meditation: true --- #weight:70.0kg diff --git a/examples/diary/Jeffrey-20210105-Journal.md b/examples/diary/Jeffrey-20210105-Journal.md index 1f8cccf..9af72af 100644 --- a/examples/diary/Jeffrey-20210105-Journal.md +++ b/examples/diary/Jeffrey-20210105-Journal.md @@ -2,6 +2,7 @@ tags: work_log mood: 1 bloodpressure: 177/119 +meditation: true --- #weight:70.0kg diff --git a/examples/diary/Lucas-20210103-Diary.md b/examples/diary/Lucas-20210103-Diary.md index 3a89f50..68128a3 100644 --- a/examples/diary/Lucas-20210103-Diary.md +++ b/examples/diary/Lucas-20210103-Diary.md @@ -2,6 +2,7 @@ tags: mood: 7 bloodpressure: 178.2/119.4 +meditation: true --- #weight:74.9kg diff --git a/examples/diary/Lucas-20210103-Journal.md b/examples/diary/Lucas-20210103-Journal.md index 3a89f50..68128a3 100644 --- a/examples/diary/Lucas-20210103-Journal.md +++ b/examples/diary/Lucas-20210103-Journal.md @@ -2,6 +2,7 @@ tags: mood: 7 bloodpressure: 178.2/119.4 +meditation: true --- #weight:74.9kg diff --git a/examples/diary/Lucas-20210104-Diary.md b/examples/diary/Lucas-20210104-Diary.md index 6ee80be..7b0f459 100644 --- a/examples/diary/Lucas-20210104-Diary.md +++ b/examples/diary/Lucas-20210104-Diary.md @@ -2,6 +2,7 @@ tags: work_log mood: 3 bloodpressure: 178.6/119.2 +meditation: true --- #weight:73.5kg diff --git a/examples/diary/Lucas-20210104-Journal.md b/examples/diary/Lucas-20210104-Journal.md index 6ee80be..7b0f459 100644 --- a/examples/diary/Lucas-20210104-Journal.md +++ b/examples/diary/Lucas-20210104-Journal.md @@ -2,6 +2,7 @@ tags: work_log mood: 3 bloodpressure: 178.6/119.2 +meditation: true --- #weight:73.5kg diff --git a/examples/diary/Lucas-20210105-Diary.md b/examples/diary/Lucas-20210105-Diary.md index 1f8cccf..9af72af 100644 --- a/examples/diary/Lucas-20210105-Diary.md +++ b/examples/diary/Lucas-20210105-Diary.md @@ -2,6 +2,7 @@ tags: work_log mood: 1 bloodpressure: 177/119 +meditation: true --- #weight:70.0kg diff --git a/examples/diary/Lucas-20210105-Journal.md b/examples/diary/Lucas-20210105-Journal.md index 1f8cccf..9af72af 100644 --- a/examples/diary/Lucas-20210105-Journal.md +++ b/examples/diary/Lucas-20210105-Journal.md @@ -2,6 +2,7 @@ tags: work_log mood: 1 bloodpressure: 177/119 +meditation: true --- #weight:70.0kg From 9ea538b5a95e673d646c269cc955fec37e897a9e Mon Sep 17 00:00:00 2001 From: Mike Greiner Date: Thu, 19 Feb 2026 07:53:01 -0700 Subject: [PATCH 273/277] fix: correct indentation and remove unrelated try/catch in postprocessor Fix inconsistent indentation of the frontmatter.exists block to match surrounding code (16 spaces). Remove unrelated try/catch wrapper that was causing inconsistent indentation at the method boundary. Co-Authored-By: Claude Opus 4.6 --- src/main.ts | 41 +++++++++++++++++------------------------ 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/src/main.ts b/src/main.ts index eb4754c..819749c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -261,11 +261,10 @@ export default class Tracker extends Plugin { el: HTMLElement, ctx: MarkdownPostProcessorContext ) { - try { - // console.log("postprocess"); - const canvas = document.createElement("div"); + // console.log("postprocess"); + const canvas = document.createElement("div"); - let yamlText = source.trim(); + let yamlText = source.trim(); // Replace all tabs by spaces let tabSize = this.app.vault.getConfig("tabSize"); @@ -538,20 +537,20 @@ export default class Tracker extends Plugin { } // console.log("Search frontmatter keys"); // console.log("Search frontmatter exists"); - if ( - fileCache && - query.getType() === SearchType.FrontmatterExists && - query.getTarget() !== "tags" - ) { - let gotAnyValue = collecting.collectDataFromFrontmatterExists( - fileCache, - query, - renderInfo, - dataMap, - xValueMap - ); - processInfo.gotAnyValidYValue ||= gotAnyValue; - } // console.log("Search frontmatter exists"); + if ( + fileCache && + query.getType() === SearchType.FrontmatterExists && + query.getTarget() !== "tags" + ) { + let gotAnyValue = collecting.collectDataFromFrontmatterExists( + fileCache, + query, + renderInfo, + dataMap, + xValueMap + ); + processInfo.gotAnyValidYValue ||= gotAnyValue; + } // console.log("Search frontmatter exists"); // console.log("Search wiki links"); if ( @@ -787,12 +786,6 @@ export default class Tracker extends Plugin { } el.appendChild(canvas); - } catch (error) { - console.error("TRACKER: ERROR in postprocessor:", error); - console.error("TRACKER: Error stack:", error.stack); - const canvas = document.createElement("div"); - return this.renderErrorMessage("Error: " + error.message, canvas, el); - } } // TODO: remove this.app and move to collecting.ts From e337f9d14054b466ca5446b9338fadbe4b836ec2 Mon Sep 17 00:00:00 2001 From: Joe Constant Date: Fri, 20 Feb 2026 17:07:01 -0700 Subject: [PATCH 274/277] Release 1.19.0 --- README.md | 4 + docs/ReleaseNotes.md | 4 + manifest.json | 2 +- package-lock.json | 6012 +++++++++++++++++++++++++++++++++--------- package.json | 2 +- versions.json | 3 +- 6 files changed, 4748 insertions(+), 1279 deletions(-) diff --git a/README.md b/README.md index 18a845e..734a6cd 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,10 @@ This is an [Obsidian](https://obsidian.md/) plugin that helps you collect data f ## What's New +Version 1.19.0 + +- Add `searchType: frontmatter.exists` for tracking field existence + Version 1.18.0 - Support all days for startWeekOn parameter diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index 274b6fd..7a1dec8 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,5 +1,9 @@ # Release Notes +## 1.19.0 + +- Add `searchType: frontmatter.exists` for tracking field existence + ## 1.18.0 - Support all days for startWeekOn parameter diff --git a/manifest.json b/manifest.json index ab508a9..7840aaf 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-tracker", "name": "Tracker", - "version": "1.18.0", + "version": "1.19.0", "minAppVersion": "0.9.12", "description": "A plugin tracks occurrences and numbers in your notes", "author": "pyrochlore", diff --git a/package-lock.json b/package-lock.json index f04e151..ab08b07 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "obsidian-tracker", - "version": "1.18.0", + "version": "1.19.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "obsidian-tracker", - "version": "1.18.0", + "version": "1.19.0", "license": "MIT", "dependencies": { "d3": "^7.9.0", @@ -20,1823 +20,4346 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.3.0", "@types/d3": "^7.4.3", + "@types/jest": "^29.5.14", "@types/node": "^25.3.0", "@types/sprintf-js": "^1.1.4", + "jest": "^29.7.0", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.57.1", "rollup-plugin-copy": "^3.5.0", + "ts-jest": "^29.4.6", "tslib": "^2.8.1", "typescript": "^5.9.3" } }, - "node_modules/@codemirror/state": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.0.tgz", - "integrity": "sha512-MwBHVK60IiIHDcoMet78lxt6iw5gJOGSbNbOIVBHWVXIH4/Nq1+GQgLLGgI1KlnN86WDXsPudVaqYHKBIx7Eyw==", + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "@marijn/find-cluster-break": "^1.0.0" + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@codemirror/view": { - "version": "6.38.6", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.38.6.tgz", - "integrity": "sha512-qiS0z1bKs5WOvHIAC0Cybmv4AJSkAXgX5aD6Mqd2epSLlVJsQl8NG23jCVouIgkh4All/mrbdsf2UOLFnJw0tw==", + "node_modules/@babel/compat-data": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", "dev": true, "license": "MIT", - "peer": true, - "dependencies": { - "@codemirror/state": "^6.5.0", - "crelt": "^1.0.6", - "style-mod": "^4.1.0", - "w3c-keyname": "^2.2.4" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "node_modules/@babel/core": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "node_modules/@babel/generator": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", - "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@marijn/find-cluster-break": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", - "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", "dev": true, "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@babel/helper-plugin-utils": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", "dev": true, "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=6.9.0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", + "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", "dev": true, "license": "MIT", "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "@babel/template": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" } }, - "node_modules/@rollup/plugin-commonjs": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-29.0.0.tgz", - "integrity": "sha512-U2YHaxR2cU/yAiwKJtJRhnyLk7cifnQw0zUpISsocBDoHDJn+HTV74ABqnwr5bEgWUwFZC9oFL6wLe21lHu5eQ==", + "node_modules/@babel/parser": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", + "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", "dev": true, "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "commondir": "^1.0.1", - "estree-walker": "^2.0.2", - "fdir": "^6.2.0", - "is-reference": "1.2.1", - "magic-string": "^0.30.3", - "picomatch": "^4.0.2" + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=16.0.0 || 14 >= 14.17" + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { - "rollup": "^2.68.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "@babel/core": "^7.0.0-0" } }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.3.tgz", - "integrity": "sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==", + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=14.0.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { - "rollup": "^2.78.0||^3.0.0||^4.0.0" + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@rollup/plugin-terser": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", - "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "license": "MIT", "dependencies": { - "serialize-javascript": "^6.0.1", - "smob": "^1.0.0", - "terser": "^5.17.4" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "rollup": "^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "@babel/core": "^7.0.0-0" } }, - "node_modules/@rollup/plugin-typescript": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.3.0.tgz", - "integrity": "sha512-7DP0/p7y3t67+NabT9f8oTBFE6gGkto4SA6Np2oudYmZE/m1dt8RB0SjL1msMxFpLo631qjRCcBlAbq1ml/Big==", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz", + "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==", "dev": true, "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^5.1.0", - "resolve": "^1.22.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "rollup": "^2.14.0||^3.0.0||^4.0.0", - "tslib": "*", - "typescript": ">=3.7.0" + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - }, - "tslib": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@rollup/pluginutils": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", - "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^4.0.2" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", + "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz", - "integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==", - "cpu": [ - "arm" - ], + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "android" - ] + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz", - "integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "android" - ] + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz", - "integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz", - "integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz", - "integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz", - "integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz", - "integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==", - "cpu": [ - "arm" - ], + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz", - "integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==", - "cpu": [ - "arm" - ], + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", + "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz", - "integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz", - "integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/traverse": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz", - "integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==", - "cpu": [ - "loong64" - ], + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz", - "integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==", - "cpu": [ - "loong64" - ], + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "license": "MIT" }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz", - "integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==", - "cpu": [ - "ppc64" - ], + "node_modules/@codemirror/state": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.0.tgz", + "integrity": "sha512-MwBHVK60IiIHDcoMet78lxt6iw5gJOGSbNbOIVBHWVXIH4/Nq1+GQgLLGgI1KlnN86WDXsPudVaqYHKBIx7Eyw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "peer": true, + "dependencies": { + "@marijn/find-cluster-break": "^1.0.0" + } }, - "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz", - "integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==", - "cpu": [ - "ppc64" - ], + "node_modules/@codemirror/view": { + "version": "6.38.6", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.38.6.tgz", + "integrity": "sha512-qiS0z1bKs5WOvHIAC0Cybmv4AJSkAXgX5aD6Mqd2epSLlVJsQl8NG23jCVouIgkh4All/mrbdsf2UOLFnJw0tw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "peer": true, + "dependencies": { + "@codemirror/state": "^6.5.0", + "crelt": "^1.0.6", + "style-mod": "^4.1.0", + "w3c-keyname": "^2.2.4" + } }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz", - "integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==", - "cpu": [ - "riscv64" - ], + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz", - "integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==", - "cpu": [ - "riscv64" - ], + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": ">=8" + } }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz", - "integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==", - "cpu": [ - "s390x" - ], + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz", - "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==", - "cpu": [ - "x64" - ], + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz", - "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==", - "cpu": [ - "x64" - ], + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz", - "integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==", - "cpu": [ - "x64" - ], + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ] + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz", - "integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==", - "cpu": [ - "arm64" - ], + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ] + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz", - "integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==", - "cpu": [ - "arm64" - ], + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz", - "integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==", - "cpu": [ - "ia32" - ], + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz", - "integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==", - "cpu": [ - "x64" - ], + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz", - "integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==", - "cpu": [ - "x64" - ], + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/@types/codemirror": { - "version": "5.60.8", - "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.8.tgz", - "integrity": "sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw==", + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, "license": "MIT", "dependencies": { - "@types/tern": "*" + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/d3": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", - "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "license": "MIT", "dependencies": { - "@types/d3-array": "*", - "@types/d3-axis": "*", - "@types/d3-brush": "*", - "@types/d3-chord": "*", - "@types/d3-color": "*", - "@types/d3-contour": "*", - "@types/d3-delaunay": "*", - "@types/d3-dispatch": "*", - "@types/d3-drag": "*", - "@types/d3-dsv": "*", - "@types/d3-ease": "*", - "@types/d3-fetch": "*", - "@types/d3-force": "*", - "@types/d3-format": "*", - "@types/d3-geo": "*", - "@types/d3-hierarchy": "*", - "@types/d3-interpolate": "*", - "@types/d3-path": "*", - "@types/d3-polygon": "*", - "@types/d3-quadtree": "*", - "@types/d3-random": "*", - "@types/d3-scale": "*", - "@types/d3-scale-chromatic": "*", - "@types/d3-selection": "*", - "@types/d3-shape": "*", - "@types/d3-time": "*", - "@types/d3-time-format": "*", - "@types/d3-timer": "*", - "@types/d3-transition": "*", - "@types/d3-zoom": "*" + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/d3-array": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", - "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/@types/d3-axis": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", - "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "license": "MIT", "dependencies": { - "@types/d3-selection": "*" + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/d3-brush": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", - "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, "license": "MIT", "dependencies": { - "@types/d3-selection": "*" + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/d3-chord": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", - "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "dev": true, "license": "MIT" }, - "node_modules/@types/d3-color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", - "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@marijn/find-cluster-break": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", + "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", "dev": true, "license": "MIT" }, - "node_modules/@types/d3-contour": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", - "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "license": "MIT", "dependencies": { - "@types/d3-array": "*", - "@types/geojson": "*" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-29.0.0.tgz", + "integrity": "sha512-U2YHaxR2cU/yAiwKJtJRhnyLk7cifnQw0zUpISsocBDoHDJn+HTV74ABqnwr5bEgWUwFZC9oFL6wLe21lHu5eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "fdir": "^6.2.0", + "is-reference": "1.2.1", + "magic-string": "^0.30.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=16.0.0 || 14 >= 14.17" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.3.tgz", + "integrity": "sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-terser": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", + "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-typescript": { + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.3.0.tgz", + "integrity": "sha512-7DP0/p7y3t67+NabT9f8oTBFE6gGkto4SA6Np2oudYmZE/m1dt8RB0SjL1msMxFpLo631qjRCcBlAbq1ml/Big==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0||^3.0.0||^4.0.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "tslib": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.58.0.tgz", + "integrity": "sha512-mr0tmS/4FoVk1cnaeN244A/wjvGDNItZKR8hRhnmCzygyRXYtKF5jVDSIILR1U97CTzAYmbgIj/Dukg62ggG5w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.58.0.tgz", + "integrity": "sha512-+s++dbp+/RTte62mQD9wLSbiMTV+xr/PeRJEc/sFZFSBRlHPNPVaf5FXlzAL77Mr8FtSfQqCN+I598M8U41ccQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.58.0.tgz", + "integrity": "sha512-MFWBwTcYs0jZbINQBXHfSrpSQJq3IUOakcKPzfeSznONop14Pxuqa0Kg19GD0rNBMPQI2tFtu3UzapZpH0Uc1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.58.0.tgz", + "integrity": "sha512-yiKJY7pj9c9JwzuKYLFaDZw5gma3fI9bkPEIyofvVfsPqjCWPglSHdpdwXpKGvDeYDms3Qal8qGMEHZ1M/4Udg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.58.0.tgz", + "integrity": "sha512-x97kCoBh5MOevpn/CNK9W1x8BEzO238541BGWBc315uOlN0AD/ifZ1msg+ZQB05Ux+VF6EcYqpiagfLJ8U3LvQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.58.0.tgz", + "integrity": "sha512-Aa8jPoZ6IQAG2eIrcXPpjRcMjROMFxCt1UYPZZtCxRV68WkuSigYtQ/7Zwrcr2IvtNJo7T2JfDXyMLxq5L4Jlg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.58.0.tgz", + "integrity": "sha512-Ob8YgT5kD/lSIYW2Rcngs5kNB/44Q2RzBSPz9brf2WEtcGR7/f/E9HeHn1wYaAwKBni+bdXEwgHvUd0x12lQSA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.58.0.tgz", + "integrity": "sha512-K+RI5oP1ceqoadvNt1FecL17Qtw/n9BgRSzxif3rTL2QlIu88ccvY+Y9nnHe/cmT5zbH9+bpiJuG1mGHRVwF4Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.58.0.tgz", + "integrity": "sha512-T+17JAsCKUjmbopcKepJjHWHXSjeW7O5PL7lEFaeQmiVyw4kkc5/lyYKzrv6ElWRX/MrEWfPiJWqbTvfIvjM1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.58.0.tgz", + "integrity": "sha512-cCePktb9+6R9itIJdeCFF9txPU7pQeEHB5AbHu/MKsfH/k70ZtOeq1k4YAtBv9Z7mmKI5/wOLYjQ+B9QdxR6LA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.58.0.tgz", + "integrity": "sha512-iekUaLkfliAsDl4/xSdoCJ1gnnIXvoNz85C8U8+ZxknM5pBStfZjeXgB8lXobDQvvPRCN8FPmmuTtH+z95HTmg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.58.0.tgz", + "integrity": "sha512-68ofRgJNl/jYJbxFjCKE7IwhbfxOl1muPN4KbIqAIe32lm22KmU7E8OPvyy68HTNkI2iV/c8y2kSPSm2mW/Q9Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.58.0.tgz", + "integrity": "sha512-dpz8vT0i+JqUKuSNPCP5SYyIV2Lh0sNL1+FhM7eLC457d5B9/BC3kDPp5BBftMmTNsBarcPcoz5UGSsnCiw4XQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.58.0.tgz", + "integrity": "sha512-4gdkkf9UJ7tafnweBCR/mk4jf3Jfl0cKX9Np80t5i78kjIH0ZdezUv/JDI2VtruE5lunfACqftJ8dIMGN4oHew==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.58.0.tgz", + "integrity": "sha512-YFS4vPnOkDTD/JriUeeZurFYoJhPf9GQQEF/v4lltp3mVcBmnsAdjEWhr2cjUCZzZNzxCG0HZOvJU44UGHSdzw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.58.0.tgz", + "integrity": "sha512-x2xgZlFne+QVNKV8b4wwaCS8pwq3y14zedZ5DqLzjdRITvreBk//4Knbcvm7+lWmms9V9qFp60MtUd0/t/PXPw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.58.0.tgz", + "integrity": "sha512-jIhrujyn4UnWF8S+DHSkAkDEO3hLX0cjzxJZPLF80xFyzyUIYgSMRcYQ3+uqEoyDD2beGq7Dj7edi8OnJcS/hg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.58.0.tgz", + "integrity": "sha512-+410Srdoh78MKSJxTQ+hZ/Mx+ajd6RjjPwBPNd0R3J9FtL6ZA0GqiiyNjCO9In0IzZkCNrpGymSfn+kgyPQocg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.58.0.tgz", + "integrity": "sha512-ZjMyby5SICi227y1MTR3VYBpFTdZs823Rs/hpakufleBoufoOIB6jtm9FEoxn/cgO7l6PM2rCEl5Kre5vX0QrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.58.0.tgz", + "integrity": "sha512-ds4iwfYkSQ0k1nb8LTcyXw//ToHOnNTJtceySpL3fa7tc/AsE+UpUFphW126A6fKBGJD5dhRvg8zw1rvoGFxmw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.58.0.tgz", + "integrity": "sha512-fd/zpJniln4ICdPkjWFhZYeY/bpnaN9pGa6ko+5WD38I0tTqk9lXMgXZg09MNdhpARngmxiCg0B0XUamNw/5BQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.58.0.tgz", + "integrity": "sha512-YpG8dUOip7DCz3nr/JUfPbIUo+2d/dy++5bFzgi4ugOGBIox+qMbbqt/JoORwvI/C9Kn2tz6+Bieoqd5+B1CjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.58.0.tgz", + "integrity": "sha512-b9DI8jpFQVh4hIXFr0/+N/TzLdpBIoPzjt0Rt4xJbW3mzguV3mduR9cNgiuFcuL/TeORejJhCWiAXe3E/6PxWA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.58.0.tgz", + "integrity": "sha512-CSrVpmoRJFN06LL9xhkitkwUcTZtIotYAF5p6XOR2zW0Zz5mzb3IPpcoPhB02frzMHFNo1reQ9xSF5fFm3hUsQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.58.0.tgz", + "integrity": "sha512-QFsBgQNTnh5K0t/sBsjJLq24YVqEIVkGpfN2VHsnN90soZyhaiA9UUHufcctVNL4ypJY0wrwad0wslx2KJQ1/w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.10", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz", + "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/codemirror": { + "version": "5.60.8", + "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.8.tgz", + "integrity": "sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/tern": "*" + } + }, + "node_modules/@types/d3": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", + "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-array": "*", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-delaunay": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-zoom": "*" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-axis": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", + "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-brush": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", + "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-chord": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", + "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-contour": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", + "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-array": "*", + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-dispatch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz", + "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-drag": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-dsv": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", + "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-fetch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", + "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-dsv": "*" + } + }, + "node_modules/@types/d3-force": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", + "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-format": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", + "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-hierarchy": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", + "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-polygon": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", + "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-quadtree": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", + "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-random": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", + "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-selection": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", + "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-shape": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", + "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-time-format": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", + "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-transition": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", + "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-zoom": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/fs-extra": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz", + "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "25.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.0.tgz", + "integrity": "sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.18.0" + } + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/sprintf-js": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@types/sprintf-js/-/sprintf-js-1.1.4.tgz", + "integrity": "sha512-aWK1reDYWxcjgcIIPmQi3u+OQDuYa9b+lr6eIsGWrekJ9vr1NSjr4Eab8oQ1iKuH1ltFHpXGyerAv1a3FMKxzQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/tern": { + "version": "0.23.9", + "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.9.tgz", + "integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/argparse/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz", + "integrity": "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001770", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001770.tgz", + "integrity": "sha512-x/2CLQ1jHENRbHg5PSId2sXq1CIO1CISvwWAj027ltMVG2UNgW+w9oH2+HzgEIRFembL8bUlXtfbBHR1fCg2xw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", + "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/crelt": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/d3": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "license": "ISC", + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "license": "ISC", + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "license": "ISC", + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "license": "ISC", + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "license": "ISC", + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "license": "ISC", + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", + "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" } }, - "node_modules/@types/d3-delaunay": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", - "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-dispatch": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz", - "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-drag": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", - "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { - "@types/d3-selection": "*" + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/@types/d3-dsv": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", - "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-ease": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", - "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-fetch": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", - "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", + "node_modules/dedent": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.1.tgz", + "integrity": "sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==", "dev": true, "license": "MIT", - "dependencies": { - "@types/d3-dsv": "*" + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } } }, - "node_modules/@types/d3-force": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", - "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/@types/d3-format": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", - "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", - "dev": true, - "license": "MIT" + "node_modules/delaunator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", + "license": "ISC", + "dependencies": { + "robust-predicates": "^3.0.2" + } }, - "node_modules/@types/d3-geo": { + "node_modules/detect-newline": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", - "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, "license": "MIT", - "dependencies": { - "@types/geojson": "*" + "engines": { + "node": ">=8" } }, - "node_modules/@types/d3-hierarchy": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", - "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/@types/d3-interpolate": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", - "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "license": "MIT", "dependencies": { - "@types/d3-color": "*" + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@types/d3-path": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", - "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-polygon": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", - "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-quadtree": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", - "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-random": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", - "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", + "node_modules/electron-to-chromium": { + "version": "1.5.302", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.302.tgz", + "integrity": "sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==", "dev": true, - "license": "MIT" + "license": "ISC" }, - "node_modules/@types/d3-scale": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", - "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, "license": "MIT", - "dependencies": { - "@types/d3-time": "*" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/@types/d3-scale-chromatic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", - "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-selection": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", - "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, "license": "MIT" }, - "node_modules/@types/d3-shape": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", - "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/d3-path": "*" + "is-arrayish": "^0.2.1" } }, - "node_modules/@types/d3-time": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", - "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-time-format": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", - "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-timer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", - "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "node_modules/@types/d3-transition": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", - "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, "license": "MIT", - "dependencies": { - "@types/d3-selection": "*" + "engines": { + "node": ">=8" } }, - "node_modules/@types/d3-zoom": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", - "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-interpolate": "*", - "@types/d3-selection": "*" + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" } }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true, "license": "MIT" }, - "node_modules/@types/fs-extra": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz", - "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==", + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "license": "MIT", "dependencies": { - "@types/node": "*" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/@types/geojson": { - "version": "7946.0.16", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", - "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, - "license": "MIT" + "engines": { + "node": ">= 0.8.0" + } }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "license": "MIT", "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "25.3.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.0.tgz", - "integrity": "sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A==", + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.18.0" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" } }, - "node_modules/@types/resolve": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", - "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true, "license": "MIT" }, - "node_modules/@types/sprintf-js": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@types/sprintf-js/-/sprintf-js-1.1.4.tgz", - "integrity": "sha512-aWK1reDYWxcjgcIIPmQi3u+OQDuYa9b+lr6eIsGWrekJ9vr1NSjr4Eab8oQ1iKuH1ltFHpXGyerAv1a3FMKxzQ==", + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } }, - "node_modules/@types/tern": { - "version": "0.23.9", - "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.9.tgz", - "integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==", + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@types/estree": "*" + "bser": "2.1.1" } }, - "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, "engines": { - "node": ">=0.4.0" + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, "engines": { "node": ">=8" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "license": "MIT", "dependencies": { - "fill-range": "^7.1.1" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=6 <7 || >=8" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true, - "license": "MIT" + "license": "ISC" }, - "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "license": "MIT" + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, - "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, "license": "MIT", "engines": { - "node": ">= 10" + "node": ">=6.9.0" } }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "license": "MIT" + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } }, - "node_modules/crelt": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", - "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/d3": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", - "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, "license": "ISC", "dependencies": { - "d3-array": "3", - "d3-axis": "3", - "d3-brush": "3", - "d3-chord": "3", - "d3-color": "3", - "d3-contour": "4", - "d3-delaunay": "6", - "d3-dispatch": "3", - "d3-drag": "3", - "d3-dsv": "3", - "d3-ease": "3", - "d3-fetch": "3", - "d3-force": "3", - "d3-format": "3", - "d3-geo": "3", - "d3-hierarchy": "3", - "d3-interpolate": "3", - "d3-path": "3", - "d3-polygon": "3", - "d3-quadtree": "3", - "d3-random": "3", - "d3-scale": "4", - "d3-scale-chromatic": "3", - "d3-selection": "3", - "d3-shape": "3", - "d3-time": "3", - "d3-time-format": "4", - "d3-timer": "3", - "d3-transition": "3", - "d3-zoom": "3" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=12" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "license": "ISC", "dependencies": { - "internmap": "1 - 2" + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", + "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" }, "engines": { - "node": ">=12" + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "node_modules/d3-axis": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", - "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", - "license": "ISC", + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/d3-brush": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", - "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", - "license": "ISC", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "3", - "d3-transition": "3" + "function-bind": "^1.1.2" }, "engines": { - "node": ">=12" + "node": ">= 0.4" } }, - "node_modules/d3-chord": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", - "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", - "license": "ISC", + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", "dependencies": { - "d3-path": "1 - 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "license": "ISC", + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">= 4" } }, - "node_modules/d3-contour": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", - "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", - "license": "ISC", + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "license": "MIT", "dependencies": { - "d3-array": "^3.2.0" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" }, "engines": { - "node": ">=12" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/d3-delaunay": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", - "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", - "license": "ISC", - "dependencies": { - "delaunator": "5" - }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=0.8.19" } }, - "node_modules/d3-dispatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", - "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, "license": "ISC", - "engines": { - "node": ">=12" + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/d3-drag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", - "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-selection": "3" - }, "engines": { "node": ">=12" } }, - "node_modules/d3-dsv": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", - "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", - "license": "ISC", + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", "dependencies": { - "commander": "7", - "iconv-lite": "0.6", - "rw": "1" + "hasown": "^2.0.2" }, - "bin": { - "csv2json": "bin/dsv2json.js", - "csv2tsv": "bin/dsv2dsv.js", - "dsv2dsv": "bin/dsv2dsv.js", - "dsv2json": "bin/dsv2json.js", - "json2csv": "bin/json2dsv.js", - "json2dsv": "bin/json2dsv.js", - "json2tsv": "bin/json2dsv.js", - "tsv2csv": "bin/dsv2dsv.js", - "tsv2json": "bin/dsv2json.js" + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "license": "BSD-3-Clause", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/d3-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", - "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", - "license": "ISC", - "dependencies": { - "d3-dsv": "1 - 3" - }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=6" } }, - "node_modules/d3-force": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", - "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", - "license": "ISC", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", "dependencies": { - "d3-dispatch": "1 - 3", - "d3-quadtree": "1 - 3", - "d3-timer": "1 - 3" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/d3-format": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", - "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", - "license": "ISC", - "engines": { - "node": ">=12" - } + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true, + "license": "MIT" }, - "node_modules/d3-geo": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", - "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", - "license": "ISC", - "dependencies": { - "d3-array": "2.5.0 - 3" - }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=0.12.0" } }, - "node_modules/d3-hierarchy": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", - "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", - "license": "ISC", + "node_modules/is-plain-object": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", + "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "license": "ISC", + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "license": "MIT", "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" + "@types/estree": "*" } }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", - "license": "ISC", + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/d3-polygon": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", - "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", - "license": "ISC", - "engines": { - "node": ">=12" - } + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" }, - "node_modules/d3-quadtree": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", - "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", - "license": "ISC", + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/d3-random": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", - "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", - "license": "ISC", + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, "engines": { - "node": ">=12" + "node": ">=10" } }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, "license": "ISC", - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=12" + "node": ">=10" } }, - "node_modules/d3-scale-chromatic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", - "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", - "license": "ISC", + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "d3-color": "1 - 3", - "d3-interpolate": "1 - 3" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=10" } }, - "node_modules/d3-selection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", - "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", - "license": "ISC", - "peer": true, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, "engines": { - "node": ">=12" + "node": ">=10" } }, - "node_modules/d3-shape": { + "node_modules/istanbul-reports": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "license": "ISC", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "d3-path": "^3.1.0" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "license": "ISC", + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "d3-array": "2 - 3" + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "license": "ISC", + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "license": "MIT", "dependencies": { - "d3-time": "1 - 3" + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "license": "ISC", + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/d3-transition": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", - "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", - "license": "ISC", + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "license": "MIT", "dependencies": { - "d3-color": "1 - 3", - "d3-dispatch": "1 - 3", - "d3-ease": "1 - 3", - "d3-interpolate": "1 - 3", - "d3-timer": "1 - 3" + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { - "d3-selection": "2 - 3" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/d3-zoom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", - "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", - "license": "ISC", + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "license": "MIT", "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "2 - 3", - "d3-transition": "2 - 3" + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/delaunator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", - "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", - "license": "ISC", + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "license": "MIT", "dependencies": { - "robust-predicates": "^3.0.2" + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "license": "MIT", "dependencies": { - "path-type": "^4.0.0" + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { - "node": ">=8.6.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/fastq": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", - "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, "engines": { - "node": ">=12.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "peerDependencies": { - "picomatch": "^3 || ^4" + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "license": "MIT", "dependencies": { - "to-regex-range": "^5.0.1" + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">=6 <7 || >=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, - "hasInstallScript": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" }, "engines": { - "node": ">= 6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/globby": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", - "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, "license": "MIT", "dependencies": { - "function-bind": "^1.1.2" + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, - "license": "MIT", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">= 4" + "node": ">=10" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "node_modules/jest-util/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "license": "ISC" - }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "license": "ISC", + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "license": "MIT", "dependencies": { - "hasown": "^2.0.2" + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "license": "MIT", "dependencies": { - "is-extglob": "^2.1.1" + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, "engines": { - "node": ">=0.12.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-plain-object": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", - "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "*" + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, "node_modules/jsep": { @@ -1848,6 +4371,39 @@ "node": ">= 10.16.0" } }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", @@ -1858,6 +4414,63 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, "node_modules/magic-string": { "version": "0.30.21", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", @@ -1868,6 +4481,59 @@ "@jridgewell/sourcemap-codec": "^1.5.5" } }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -1905,6 +4571,16 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -1918,6 +4594,16 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/moment": { "version": "2.29.4", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", @@ -1928,6 +4614,64 @@ "node": "*" } }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/obsidian": { "version": "1.12.2", "resolved": "https://github.com/obsidianmd/obsidian-api/tarball/master", @@ -1953,6 +4697,106 @@ "wrappy": "1" } }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -1963,6 +4807,16 @@ "node": ">=0.10.0" } }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", @@ -1980,6 +4834,13 @@ "node": ">=8" } }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, "node_modules/picomatch": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", @@ -1994,6 +4855,88 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -2025,6 +4968,23 @@ "safe-buffer": "^5.1.0" } }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resolve": { "version": "1.22.11", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", @@ -2046,6 +5006,39 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/reusify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", @@ -2064,9 +5057,9 @@ "license": "Unlicense" }, "node_modules/rollup": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz", - "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.58.0.tgz", + "integrity": "sha512-wbT0mBmWbIvvq8NeEYWWvevvxnOyhKChir47S66WCxw1SXqhw7ssIYejnQEVt7XYQpsj2y8F9PM+Cr3SNEa0gw==", "dev": true, "license": "MIT", "peer": true, @@ -2081,31 +5074,31 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.57.1", - "@rollup/rollup-android-arm64": "4.57.1", - "@rollup/rollup-darwin-arm64": "4.57.1", - "@rollup/rollup-darwin-x64": "4.57.1", - "@rollup/rollup-freebsd-arm64": "4.57.1", - "@rollup/rollup-freebsd-x64": "4.57.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", - "@rollup/rollup-linux-arm-musleabihf": "4.57.1", - "@rollup/rollup-linux-arm64-gnu": "4.57.1", - "@rollup/rollup-linux-arm64-musl": "4.57.1", - "@rollup/rollup-linux-loong64-gnu": "4.57.1", - "@rollup/rollup-linux-loong64-musl": "4.57.1", - "@rollup/rollup-linux-ppc64-gnu": "4.57.1", - "@rollup/rollup-linux-ppc64-musl": "4.57.1", - "@rollup/rollup-linux-riscv64-gnu": "4.57.1", - "@rollup/rollup-linux-riscv64-musl": "4.57.1", - "@rollup/rollup-linux-s390x-gnu": "4.57.1", - "@rollup/rollup-linux-x64-gnu": "4.57.1", - "@rollup/rollup-linux-x64-musl": "4.57.1", - "@rollup/rollup-openbsd-x64": "4.57.1", - "@rollup/rollup-openharmony-arm64": "4.57.1", - "@rollup/rollup-win32-arm64-msvc": "4.57.1", - "@rollup/rollup-win32-ia32-msvc": "4.57.1", - "@rollup/rollup-win32-x64-gnu": "4.57.1", - "@rollup/rollup-win32-x64-msvc": "4.57.1", + "@rollup/rollup-android-arm-eabi": "4.58.0", + "@rollup/rollup-android-arm64": "4.58.0", + "@rollup/rollup-darwin-arm64": "4.58.0", + "@rollup/rollup-darwin-x64": "4.58.0", + "@rollup/rollup-freebsd-arm64": "4.58.0", + "@rollup/rollup-freebsd-x64": "4.58.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.58.0", + "@rollup/rollup-linux-arm-musleabihf": "4.58.0", + "@rollup/rollup-linux-arm64-gnu": "4.58.0", + "@rollup/rollup-linux-arm64-musl": "4.58.0", + "@rollup/rollup-linux-loong64-gnu": "4.58.0", + "@rollup/rollup-linux-loong64-musl": "4.58.0", + "@rollup/rollup-linux-ppc64-gnu": "4.58.0", + "@rollup/rollup-linux-ppc64-musl": "4.58.0", + "@rollup/rollup-linux-riscv64-gnu": "4.58.0", + "@rollup/rollup-linux-riscv64-musl": "4.58.0", + "@rollup/rollup-linux-s390x-gnu": "4.58.0", + "@rollup/rollup-linux-x64-gnu": "4.58.0", + "@rollup/rollup-linux-x64-musl": "4.58.0", + "@rollup/rollup-openbsd-x64": "4.58.0", + "@rollup/rollup-openharmony-arm64": "4.58.0", + "@rollup/rollup-win32-arm64-msvc": "4.58.0", + "@rollup/rollup-win32-ia32-msvc": "4.58.0", + "@rollup/rollup-win32-x64-gnu": "4.58.0", + "@rollup/rollup-win32-x64-msvc": "4.58.0", "fsevents": "~2.3.2" } }, @@ -2183,15 +5176,62 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "license": "MIT" }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } + "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", @@ -2224,9 +5264,9 @@ } }, "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "license": "MIT", "dependencies": { @@ -2240,6 +5280,94 @@ "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", "license": "BSD-3-Clause" }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/style-mod": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.3.tgz", @@ -2247,6 +5375,19 @@ "dev": true, "license": "MIT" }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -2286,6 +5427,39 @@ "dev": true, "license": "MIT" }, + "node_modules/terser/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -2299,6 +5473,85 @@ "node": ">=8.0" } }, + "node_modules/ts-jest": { + "version": "29.4.6", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.6.tgz", + "integrity": "sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bs-logger": "^0.2.6", + "fast-json-stable-stringify": "^2.1.0", + "handlebars": "^4.7.8", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.7.3", + "type-fest": "^4.41.0", + "yargs-parser": "^21.1.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0 || ^30.0.0", + "@jest/types": "^29.0.0 || ^30.0.0", + "babel-jest": "^29.0.0 || ^30.0.0", + "jest": "^29.0.0 || ^30.0.0", + "jest-util": "^29.0.0 || ^30.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jest-util": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-jest/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", @@ -2307,6 +5560,29 @@ "license": "0BSD", "peer": true }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/typescript": { "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", @@ -2322,6 +5598,20 @@ "node": ">=14.17" } }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/undici-types": { "version": "7.18.2", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", @@ -2339,6 +5629,52 @@ "node": ">= 4.0.0" } }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, "node_modules/w3c-keyname": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", @@ -2346,12 +5682,136 @@ "dev": true, "license": "MIT" }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true, "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index 27d8cbe..b8d0769 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-tracker", - "version": "1.18.0", + "version": "1.19.0", "description": "A plugin tracks occurrences and numbers in your notes", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index 9157c01..8ce0487 100644 --- a/versions.json +++ b/versions.json @@ -40,5 +40,6 @@ "1.15.1": "0.9.12", "1.16.0": "0.9.12", "1.17.0": "0.9.12", - "1.18.0": "0.9.12" + "1.18.0": "0.9.12", + "1.19.0": "0.9.12" } From 8327f94c17ec46fca694c44ce8f51482f3178fa1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Mar 2026 14:32:08 +0000 Subject: [PATCH 275/277] Bump @types/node from 25.3.0 to 25.3.3 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 25.3.0 to 25.3.3. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 25.3.3 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 29 +++++++++++++---------------- package.json | 2 +- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index ab08b07..5ea23b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "@rollup/plugin-typescript": "^12.3.0", "@types/d3": "^7.4.3", "@types/jest": "^29.5.14", - "@types/node": "^25.3.0", + "@types/node": "^25.3.3", "@types/sprintf-js": "^1.1.4", "jest": "^29.7.0", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", @@ -938,7 +938,8 @@ "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", @@ -1910,9 +1911,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.3.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.0.tgz", - "integrity": "sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A==", + "version": "25.3.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.3.tgz", + "integrity": "sha512-DpzbrH7wIcBaJibpKo9nnSQL0MTRdnWttGyE5haGwK86xgMOkFLp7vEyfQPGLOJh5wNYiJ3V9PmUMDhV9u8kkQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2256,7 +2257,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -2509,7 +2509,8 @@ "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/cross-spawn": { "version": "7.0.6", @@ -2843,7 +2844,6 @@ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "license": "ISC", - "peer": true, "engines": { "node": ">=12" } @@ -3737,7 +3737,6 @@ "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -4847,7 +4846,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -5062,7 +5060,6 @@ "integrity": "sha512-wbT0mBmWbIvvq8NeEYWWvevvxnOyhKChir47S66WCxw1SXqhw7ssIYejnQEVt7XYQpsj2y8F9PM+Cr3SNEa0gw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -5373,7 +5370,8 @@ "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.3.tgz", "integrity": "sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/supports-color": { "version": "7.2.0", @@ -5557,8 +5555,7 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, - "license": "0BSD", - "peer": true + "license": "0BSD" }, "node_modules/type-detect": { "version": "4.0.8", @@ -5589,7 +5586,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -5680,7 +5676,8 @@ "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/walker": { "version": "1.0.8", diff --git a/package.json b/package.json index b8d0769..be01f4a 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "@rollup/plugin-typescript": "^12.3.0", "@types/d3": "^7.4.3", "@types/jest": "^29.5.14", - "@types/node": "^25.3.0", + "@types/node": "^25.3.3", "@types/sprintf-js": "^1.1.4", "jest": "^29.7.0", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", From c74f3b6c0a119c8a365a7d1367899b4eea167a0c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Mar 2026 17:30:30 +0000 Subject: [PATCH 276/277] Bump rollup from 4.58.0 to 4.59.0 Bumps [rollup](https://github.com/rollup/rollup) from 4.58.0 to 4.59.0. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.58.0...v4.59.0) --- updated-dependencies: - dependency-name: rollup dependency-version: 4.59.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 208 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 105 insertions(+), 105 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5ea23b4..0850ef9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "@types/sprintf-js": "^1.1.4", "jest": "^29.7.0", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.57.1", + "rollup": "^4.59.0", "rollup-plugin-copy": "^3.5.0", "ts-jest": "^29.4.6", "tslib": "^2.8.1", @@ -1105,9 +1105,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.58.0.tgz", - "integrity": "sha512-mr0tmS/4FoVk1cnaeN244A/wjvGDNItZKR8hRhnmCzygyRXYtKF5jVDSIILR1U97CTzAYmbgIj/Dukg62ggG5w==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz", + "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==", "cpu": [ "arm" ], @@ -1119,9 +1119,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.58.0.tgz", - "integrity": "sha512-+s++dbp+/RTte62mQD9wLSbiMTV+xr/PeRJEc/sFZFSBRlHPNPVaf5FXlzAL77Mr8FtSfQqCN+I598M8U41ccQ==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz", + "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==", "cpu": [ "arm64" ], @@ -1133,9 +1133,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.58.0.tgz", - "integrity": "sha512-MFWBwTcYs0jZbINQBXHfSrpSQJq3IUOakcKPzfeSznONop14Pxuqa0Kg19GD0rNBMPQI2tFtu3UzapZpH0Uc1Q==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz", + "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==", "cpu": [ "arm64" ], @@ -1147,9 +1147,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.58.0.tgz", - "integrity": "sha512-yiKJY7pj9c9JwzuKYLFaDZw5gma3fI9bkPEIyofvVfsPqjCWPglSHdpdwXpKGvDeYDms3Qal8qGMEHZ1M/4Udg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz", + "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==", "cpu": [ "x64" ], @@ -1161,9 +1161,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.58.0.tgz", - "integrity": "sha512-x97kCoBh5MOevpn/CNK9W1x8BEzO238541BGWBc315uOlN0AD/ifZ1msg+ZQB05Ux+VF6EcYqpiagfLJ8U3LvQ==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz", + "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==", "cpu": [ "arm64" ], @@ -1175,9 +1175,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.58.0.tgz", - "integrity": "sha512-Aa8jPoZ6IQAG2eIrcXPpjRcMjROMFxCt1UYPZZtCxRV68WkuSigYtQ/7Zwrcr2IvtNJo7T2JfDXyMLxq5L4Jlg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz", + "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==", "cpu": [ "x64" ], @@ -1189,9 +1189,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.58.0.tgz", - "integrity": "sha512-Ob8YgT5kD/lSIYW2Rcngs5kNB/44Q2RzBSPz9brf2WEtcGR7/f/E9HeHn1wYaAwKBni+bdXEwgHvUd0x12lQSA==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz", + "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==", "cpu": [ "arm" ], @@ -1203,9 +1203,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.58.0.tgz", - "integrity": "sha512-K+RI5oP1ceqoadvNt1FecL17Qtw/n9BgRSzxif3rTL2QlIu88ccvY+Y9nnHe/cmT5zbH9+bpiJuG1mGHRVwF4Q==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz", + "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==", "cpu": [ "arm" ], @@ -1217,9 +1217,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.58.0.tgz", - "integrity": "sha512-T+17JAsCKUjmbopcKepJjHWHXSjeW7O5PL7lEFaeQmiVyw4kkc5/lyYKzrv6ElWRX/MrEWfPiJWqbTvfIvjM1Q==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz", + "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==", "cpu": [ "arm64" ], @@ -1231,9 +1231,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.58.0.tgz", - "integrity": "sha512-cCePktb9+6R9itIJdeCFF9txPU7pQeEHB5AbHu/MKsfH/k70ZtOeq1k4YAtBv9Z7mmKI5/wOLYjQ+B9QdxR6LA==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz", + "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==", "cpu": [ "arm64" ], @@ -1245,9 +1245,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.58.0.tgz", - "integrity": "sha512-iekUaLkfliAsDl4/xSdoCJ1gnnIXvoNz85C8U8+ZxknM5pBStfZjeXgB8lXobDQvvPRCN8FPmmuTtH+z95HTmg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz", + "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==", "cpu": [ "loong64" ], @@ -1259,9 +1259,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.58.0.tgz", - "integrity": "sha512-68ofRgJNl/jYJbxFjCKE7IwhbfxOl1muPN4KbIqAIe32lm22KmU7E8OPvyy68HTNkI2iV/c8y2kSPSm2mW/Q9Q==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz", + "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==", "cpu": [ "loong64" ], @@ -1273,9 +1273,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.58.0.tgz", - "integrity": "sha512-dpz8vT0i+JqUKuSNPCP5SYyIV2Lh0sNL1+FhM7eLC457d5B9/BC3kDPp5BBftMmTNsBarcPcoz5UGSsnCiw4XQ==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz", + "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==", "cpu": [ "ppc64" ], @@ -1287,9 +1287,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.58.0.tgz", - "integrity": "sha512-4gdkkf9UJ7tafnweBCR/mk4jf3Jfl0cKX9Np80t5i78kjIH0ZdezUv/JDI2VtruE5lunfACqftJ8dIMGN4oHew==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz", + "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==", "cpu": [ "ppc64" ], @@ -1301,9 +1301,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.58.0.tgz", - "integrity": "sha512-YFS4vPnOkDTD/JriUeeZurFYoJhPf9GQQEF/v4lltp3mVcBmnsAdjEWhr2cjUCZzZNzxCG0HZOvJU44UGHSdzw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz", + "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==", "cpu": [ "riscv64" ], @@ -1315,9 +1315,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.58.0.tgz", - "integrity": "sha512-x2xgZlFne+QVNKV8b4wwaCS8pwq3y14zedZ5DqLzjdRITvreBk//4Knbcvm7+lWmms9V9qFp60MtUd0/t/PXPw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz", + "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==", "cpu": [ "riscv64" ], @@ -1329,9 +1329,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.58.0.tgz", - "integrity": "sha512-jIhrujyn4UnWF8S+DHSkAkDEO3hLX0cjzxJZPLF80xFyzyUIYgSMRcYQ3+uqEoyDD2beGq7Dj7edi8OnJcS/hg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz", + "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==", "cpu": [ "s390x" ], @@ -1343,9 +1343,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.58.0.tgz", - "integrity": "sha512-+410Srdoh78MKSJxTQ+hZ/Mx+ajd6RjjPwBPNd0R3J9FtL6ZA0GqiiyNjCO9In0IzZkCNrpGymSfn+kgyPQocg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz", + "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==", "cpu": [ "x64" ], @@ -1357,9 +1357,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.58.0.tgz", - "integrity": "sha512-ZjMyby5SICi227y1MTR3VYBpFTdZs823Rs/hpakufleBoufoOIB6jtm9FEoxn/cgO7l6PM2rCEl5Kre5vX0QrQ==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz", + "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==", "cpu": [ "x64" ], @@ -1371,9 +1371,9 @@ ] }, "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.58.0.tgz", - "integrity": "sha512-ds4iwfYkSQ0k1nb8LTcyXw//ToHOnNTJtceySpL3fa7tc/AsE+UpUFphW126A6fKBGJD5dhRvg8zw1rvoGFxmw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz", + "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==", "cpu": [ "x64" ], @@ -1385,9 +1385,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.58.0.tgz", - "integrity": "sha512-fd/zpJniln4ICdPkjWFhZYeY/bpnaN9pGa6ko+5WD38I0tTqk9lXMgXZg09MNdhpARngmxiCg0B0XUamNw/5BQ==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz", + "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==", "cpu": [ "arm64" ], @@ -1399,9 +1399,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.58.0.tgz", - "integrity": "sha512-YpG8dUOip7DCz3nr/JUfPbIUo+2d/dy++5bFzgi4ugOGBIox+qMbbqt/JoORwvI/C9Kn2tz6+Bieoqd5+B1CjA==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz", + "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==", "cpu": [ "arm64" ], @@ -1413,9 +1413,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.58.0.tgz", - "integrity": "sha512-b9DI8jpFQVh4hIXFr0/+N/TzLdpBIoPzjt0Rt4xJbW3mzguV3mduR9cNgiuFcuL/TeORejJhCWiAXe3E/6PxWA==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz", + "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==", "cpu": [ "ia32" ], @@ -1427,9 +1427,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.58.0.tgz", - "integrity": "sha512-CSrVpmoRJFN06LL9xhkitkwUcTZtIotYAF5p6XOR2zW0Zz5mzb3IPpcoPhB02frzMHFNo1reQ9xSF5fFm3hUsQ==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz", + "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==", "cpu": [ "x64" ], @@ -1441,9 +1441,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.58.0.tgz", - "integrity": "sha512-QFsBgQNTnh5K0t/sBsjJLq24YVqEIVkGpfN2VHsnN90soZyhaiA9UUHufcctVNL4ypJY0wrwad0wslx2KJQ1/w==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz", + "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==", "cpu": [ "x64" ], @@ -5055,9 +5055,9 @@ "license": "Unlicense" }, "node_modules/rollup": { - "version": "4.58.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.58.0.tgz", - "integrity": "sha512-wbT0mBmWbIvvq8NeEYWWvevvxnOyhKChir47S66WCxw1SXqhw7ssIYejnQEVt7XYQpsj2y8F9PM+Cr3SNEa0gw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz", + "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", "dev": true, "license": "MIT", "dependencies": { @@ -5071,31 +5071,31 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.58.0", - "@rollup/rollup-android-arm64": "4.58.0", - "@rollup/rollup-darwin-arm64": "4.58.0", - "@rollup/rollup-darwin-x64": "4.58.0", - "@rollup/rollup-freebsd-arm64": "4.58.0", - "@rollup/rollup-freebsd-x64": "4.58.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.58.0", - "@rollup/rollup-linux-arm-musleabihf": "4.58.0", - "@rollup/rollup-linux-arm64-gnu": "4.58.0", - "@rollup/rollup-linux-arm64-musl": "4.58.0", - "@rollup/rollup-linux-loong64-gnu": "4.58.0", - "@rollup/rollup-linux-loong64-musl": "4.58.0", - "@rollup/rollup-linux-ppc64-gnu": "4.58.0", - "@rollup/rollup-linux-ppc64-musl": "4.58.0", - "@rollup/rollup-linux-riscv64-gnu": "4.58.0", - "@rollup/rollup-linux-riscv64-musl": "4.58.0", - "@rollup/rollup-linux-s390x-gnu": "4.58.0", - "@rollup/rollup-linux-x64-gnu": "4.58.0", - "@rollup/rollup-linux-x64-musl": "4.58.0", - "@rollup/rollup-openbsd-x64": "4.58.0", - "@rollup/rollup-openharmony-arm64": "4.58.0", - "@rollup/rollup-win32-arm64-msvc": "4.58.0", - "@rollup/rollup-win32-ia32-msvc": "4.58.0", - "@rollup/rollup-win32-x64-gnu": "4.58.0", - "@rollup/rollup-win32-x64-msvc": "4.58.0", + "@rollup/rollup-android-arm-eabi": "4.59.0", + "@rollup/rollup-android-arm64": "4.59.0", + "@rollup/rollup-darwin-arm64": "4.59.0", + "@rollup/rollup-darwin-x64": "4.59.0", + "@rollup/rollup-freebsd-arm64": "4.59.0", + "@rollup/rollup-freebsd-x64": "4.59.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", + "@rollup/rollup-linux-arm-musleabihf": "4.59.0", + "@rollup/rollup-linux-arm64-gnu": "4.59.0", + "@rollup/rollup-linux-arm64-musl": "4.59.0", + "@rollup/rollup-linux-loong64-gnu": "4.59.0", + "@rollup/rollup-linux-loong64-musl": "4.59.0", + "@rollup/rollup-linux-ppc64-gnu": "4.59.0", + "@rollup/rollup-linux-ppc64-musl": "4.59.0", + "@rollup/rollup-linux-riscv64-gnu": "4.59.0", + "@rollup/rollup-linux-riscv64-musl": "4.59.0", + "@rollup/rollup-linux-s390x-gnu": "4.59.0", + "@rollup/rollup-linux-x64-gnu": "4.59.0", + "@rollup/rollup-linux-x64-musl": "4.59.0", + "@rollup/rollup-openbsd-x64": "4.59.0", + "@rollup/rollup-openharmony-arm64": "4.59.0", + "@rollup/rollup-win32-arm64-msvc": "4.59.0", + "@rollup/rollup-win32-ia32-msvc": "4.59.0", + "@rollup/rollup-win32-x64-gnu": "4.59.0", + "@rollup/rollup-win32-x64-msvc": "4.59.0", "fsevents": "~2.3.2" } }, diff --git a/package.json b/package.json index be01f4a..93941c7 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "@types/sprintf-js": "^1.1.4", "jest": "^29.7.0", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", - "rollup": "^4.57.1", + "rollup": "^4.59.0", "rollup-plugin-copy": "^3.5.0", "ts-jest": "^29.4.6", "tslib": "^2.8.1", From 2f42c1c7011e2bf0a734c624ae3d1b543e30b427 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Mar 2026 17:30:38 +0000 Subject: [PATCH 277/277] Bump jest and @types/jest Bumps [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) and [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest). These dependencies needed to be updated together. Updates `jest` from 29.7.0 to 30.2.0 - [Release notes](https://github.com/jestjs/jest/releases) - [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jestjs/jest/commits/v30.2.0/packages/jest) Updates `@types/jest` from 29.5.14 to 30.0.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest) --- updated-dependencies: - dependency-name: jest dependency-version: 30.2.0 dependency-type: direct:development update-type: version-update:semver-major - dependency-name: "@types/jest" dependency-version: 30.0.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 2052 +++++++++++++++++++++++++++++++-------------- package.json | 4 +- 2 files changed, 1410 insertions(+), 646 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5ea23b4..ecf1894 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,10 +20,10 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.3.0", "@types/d3": "^7.4.3", - "@types/jest": "^29.5.14", + "@types/jest": "^30.0.0", "@types/node": "^25.3.3", "@types/sprintf-js": "^1.1.4", - "jest": "^29.7.0", + "jest": "^30.2.0", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.57.1", "rollup-plugin-copy": "^3.5.0", @@ -553,6 +553,143 @@ "w3c-keyname": "^2.2.4" } }, + "node_modules/@emnapi/core": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz", + "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.1.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", + "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -581,61 +718,61 @@ } }, "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.2.0.tgz", + "integrity": "sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", + "@jest/types": "30.2.0", "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", + "chalk": "^4.1.2", + "jest-message-util": "30.2.0", + "jest-util": "30.2.0", "slash": "^3.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.2.0.tgz", + "integrity": "sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/console": "30.2.0", + "@jest/pattern": "30.0.1", + "@jest/reporters": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "exit-x": "^0.2.2", + "graceful-fs": "^4.2.11", + "jest-changed-files": "30.2.0", + "jest-config": "30.2.0", + "jest-haste-map": "30.2.0", + "jest-message-util": "30.2.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.2.0", + "jest-resolve-dependencies": "30.2.0", + "jest-runner": "30.2.0", + "jest-runtime": "30.2.0", + "jest-snapshot": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", + "jest-watcher": "30.2.0", + "micromatch": "^4.0.8", + "pretty-format": "30.2.0", + "slash": "^3.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -646,117 +783,150 @@ } } }, + "node_modules/@jest/diff-sequences": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz", + "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.2.0.tgz", + "integrity": "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==", "dev": true, "license": "MIT", "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/fake-timers": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", - "jest-mock": "^29.7.0" + "jest-mock": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.2.0.tgz", + "integrity": "sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==", "dev": true, "license": "MIT", "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" + "expect": "30.2.0", + "jest-snapshot": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.2.0.tgz", + "integrity": "sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==", "dev": true, "license": "MIT", "dependencies": { - "jest-get-type": "^29.6.3" + "@jest/get-type": "30.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.2.0.tgz", + "integrity": "sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", + "@jest/types": "30.2.0", + "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "jest-message-util": "30.2.0", + "jest-mock": "30.2.0", + "jest-util": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/get-type": { + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz", + "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.2.0.tgz", + "integrity": "sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "30.2.0", + "@jest/expect": "30.2.0", + "@jest/types": "30.2.0", + "jest-mock": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/pattern": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz", + "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" + "@types/node": "*", + "jest-regex-util": "30.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.2.0.tgz", + "integrity": "sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==", "dev": true, "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", + "@jest/console": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", + "@jridgewell/trace-mapping": "^0.3.25", "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", + "chalk": "^4.1.2", + "collect-v8-coverage": "^1.0.2", + "exit-x": "^0.2.2", + "glob": "^10.3.10", + "graceful-fs": "^4.2.11", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", + "istanbul-lib-source-maps": "^5.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", + "jest-message-util": "30.2.0", + "jest-util": "30.2.0", + "jest-worker": "30.2.0", "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", + "string-length": "^4.0.2", "v8-to-istanbul": "^9.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -767,109 +937,174 @@ } } }, + "node_modules/@jest/reporters/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@jest/reporters/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", + "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", "dev": true, "license": "MIT", "dependencies": { - "@sinclair/typebox": "^0.27.8" + "@sinclair/typebox": "^0.34.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/snapshot-utils": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.2.0.tgz", + "integrity": "sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.2.0", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "natural-compare": "^1.4.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.0.1.tgz", + "integrity": "sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" + "@jridgewell/trace-mapping": "^0.3.25", + "callsites": "^3.1.0", + "graceful-fs": "^4.2.11" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.2.0.tgz", + "integrity": "sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" + "@jest/console": "30.2.0", + "@jest/types": "30.2.0", + "@types/istanbul-lib-coverage": "^2.0.6", + "collect-v8-coverage": "^1.0.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.2.0.tgz", + "integrity": "sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==", "dev": true, "license": "MIT", "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", + "@jest/test-result": "30.2.0", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.2.0", "slash": "^3.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.2.0.tgz", + "integrity": "sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", + "@babel/core": "^7.27.4", + "@jest/types": "30.2.0", + "@jridgewell/trace-mapping": "^0.3.25", + "babel-plugin-istanbul": "^7.0.1", + "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.2.0", + "jest-regex-util": "30.0.1", + "jest-util": "30.2.0", + "micromatch": "^4.0.8", + "pirates": "^4.0.7", "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" + "write-file-atomic": "^5.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz", + "integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", + "@jest/pattern": "30.0.1", + "@jest/schemas": "30.0.5", + "@types/istanbul-lib-coverage": "^2.0.6", + "@types/istanbul-reports": "^3.0.4", "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" + "@types/yargs": "^17.0.33", + "chalk": "^4.1.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jridgewell/gen-mapping": { @@ -941,6 +1176,19 @@ "license": "MIT", "peer": true }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", + "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.10.0" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -979,6 +1227,30 @@ "node": ">= 8" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, "node_modules/@rollup/plugin-commonjs": { "version": "29.0.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-29.0.0.tgz", @@ -1455,9 +1727,9 @@ ] }, "node_modules/@sinclair/typebox": { - "version": "0.27.10", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz", - "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==", + "version": "0.34.48", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz", + "integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==", "dev": true, "license": "MIT" }, @@ -1472,13 +1744,24 @@ } }, "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", + "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@sinonjs/commons": "^3.0.0" + "@sinonjs/commons": "^3.0.1" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" } }, "node_modules/@types/babel__core": { @@ -1855,16 +2138,6 @@ "@types/node": "*" } }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -1893,14 +2166,14 @@ } }, "node_modules/@types/jest": { - "version": "29.5.14", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", - "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", + "version": "30.0.0", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-30.0.0.tgz", + "integrity": "sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==", "dev": true, "license": "MIT", "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" + "expect": "^30.0.0", + "pretty-format": "^30.0.0" } }, "node_modules/@types/minimatch": { @@ -1968,6 +2241,282 @@ "dev": true, "license": "MIT" }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" + }, + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.11" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/acorn": { "version": "8.16.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", @@ -2078,75 +2627,58 @@ } }, "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.2.0.tgz", + "integrity": "sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", + "@jest/transform": "30.2.0", + "@types/babel__core": "^7.20.5", + "babel-plugin-istanbul": "^7.0.1", + "babel-preset-jest": "30.2.0", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", "slash": "^3.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { - "@babel/core": "^7.8.0" + "@babel/core": "^7.11.0 || ^8.0.0-0" } }, "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz", + "integrity": "sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==", "dev": true, "license": "BSD-3-Clause", + "workspaces": [ + "test/babel-8" + ], "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-instrument": "^6.0.2", "test-exclude": "^6.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" + "node": ">=12" } }, "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.2.0.tgz", + "integrity": "sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" + "@types/babel__core": "^7.20.5" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/babel-preset-current-node-syntax": { @@ -2177,20 +2709,20 @@ } }, "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.2.0.tgz", + "integrity": "sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==", "dev": true, "license": "MIT", "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" + "babel-plugin-jest-hoist": "30.2.0", + "babel-preset-current-node-syntax": "^1.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.11.0 || ^8.0.0-beta.1" } }, "node_modules/balanced-match": { @@ -2370,9 +2902,9 @@ } }, "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", "dev": true, "funding": [ { @@ -2386,9 +2918,9 @@ } }, "node_modules/cjs-module-lexer": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", - "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.2.0.tgz", + "integrity": "sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==", "dev": true, "license": "MIT" }, @@ -2475,34 +3007,12 @@ "dev": true, "license": "MIT" }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" }, "node_modules/crelt": { "version": "1.0.6", @@ -2947,9 +3457,9 @@ } }, "node_modules/dedent": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.1.tgz", - "integrity": "sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz", + "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", "dev": true, "license": "MIT", "peerDependencies": { @@ -2990,16 +3500,6 @@ "node": ">=8" } }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -3013,6 +3513,13 @@ "node": ">=8" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, "node_modules/electron-to-chromium": { "version": "1.5.302", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.302.tgz", @@ -3115,30 +3622,32 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "node_modules/exit-x": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exit-x/-/exit-x-0.2.2.tgz", + "integrity": "sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-30.2.0.tgz", + "integrity": "sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" + "@jest/expect-utils": "30.2.0", + "@jest/get-type": "30.1.0", + "jest-matcher-utils": "30.2.0", + "jest-message-util": "30.2.0", + "jest-mock": "30.2.0", + "jest-util": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/fast-glob": { @@ -3230,6 +3739,36 @@ "node": ">=8" } }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -3703,15 +4242,15 @@ } }, "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", "dev": true, "license": "BSD-3-Clause", "dependencies": { + "@jridgewell/trace-mapping": "^0.3.23", "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "istanbul-lib-coverage": "^3.0.0" }, "engines": { "node": ">=10" @@ -3731,23 +4270,39 @@ "node": ">=8" } }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-30.2.0.tgz", + "integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" + "@jest/core": "30.2.0", + "@jest/types": "30.2.0", + "import-local": "^3.2.0", + "jest-cli": "30.2.0" }, "bin": { "jest": "bin/jest.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -3759,76 +4314,75 @@ } }, "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.2.0.tgz", + "integrity": "sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==", "dev": true, "license": "MIT", "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", + "execa": "^5.1.1", + "jest-util": "30.2.0", "p-limit": "^3.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.2.0.tgz", + "integrity": "sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/environment": "30.2.0", + "@jest/expect": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", - "chalk": "^4.0.0", + "chalk": "^4.1.2", "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", + "dedent": "^1.6.0", + "is-generator-fn": "^2.1.0", + "jest-each": "30.2.0", + "jest-matcher-utils": "30.2.0", + "jest-message-util": "30.2.0", + "jest-runtime": "30.2.0", + "jest-snapshot": "30.2.0", + "jest-util": "30.2.0", "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", + "pretty-format": "30.2.0", + "pure-rand": "^7.0.0", "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "stack-utils": "^2.0.6" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.2.0.tgz", + "integrity": "sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" + "@jest/core": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/types": "30.2.0", + "chalk": "^4.1.2", + "exit-x": "^0.2.2", + "import-local": "^3.2.0", + "jest-config": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", + "yargs": "^17.7.2" }, "bin": { "jest": "bin/jest.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -3840,215 +4394,259 @@ } }, "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.2.0.tgz", + "integrity": "sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@jest/get-type": "30.1.0", + "@jest/pattern": "30.0.1", + "@jest/test-sequencer": "30.2.0", + "@jest/types": "30.2.0", + "babel-jest": "30.2.0", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "deepmerge": "^4.3.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.11", + "jest-circus": "30.2.0", + "jest-docblock": "30.2.0", + "jest-environment-node": "30.2.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.2.0", + "jest-runner": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", + "micromatch": "^4.0.8", "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", + "pretty-format": "30.2.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { "@types/node": "*", + "esbuild-register": ">=3.4.0", "ts-node": ">=9.0.0" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "esbuild-register": { + "optional": true + }, "ts-node": { "optional": true } } }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "node_modules/jest-config/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "balanced-match": "^1.0.0" + } + }, + "node_modules/jest-config/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-config/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "node_modules/jest-diff": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz", + "integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==", "dev": true, "license": "MIT", "dependencies": { - "detect-newline": "^3.0.0" + "@jest/diff-sequences": "30.0.1", + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "pretty-format": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "node_modules/jest-docblock": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.2.0.tgz", + "integrity": "sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" + "detect-newline": "^3.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "node_modules/jest-each": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.2.0.tgz", + "integrity": "sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "@jest/get-type": "30.1.0", + "@jest/types": "30.2.0", + "chalk": "^4.1.2", + "jest-util": "30.2.0", + "pretty-format": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "node_modules/jest-environment-node": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.2.0.tgz", + "integrity": "sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==", "dev": true, "license": "MIT", + "dependencies": { + "@jest/environment": "30.2.0", + "@jest/fake-timers": "30.2.0", + "@jest/types": "30.2.0", + "@types/node": "*", + "jest-mock": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0" + }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.2.0.tgz", + "integrity": "sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", + "@jest/types": "30.2.0", "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", + "anymatch": "^3.1.3", + "fb-watchman": "^2.0.2", + "graceful-fs": "^4.2.11", + "jest-regex-util": "30.0.1", + "jest-util": "30.2.0", + "jest-worker": "30.2.0", + "micromatch": "^4.0.8", "walker": "^1.0.8" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "optionalDependencies": { - "fsevents": "^2.3.2" + "fsevents": "^2.3.3" } }, "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.2.0.tgz", + "integrity": "sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==", "dev": true, "license": "MIT", "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "@jest/get-type": "30.1.0", + "pretty-format": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz", + "integrity": "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "jest-diff": "30.2.0", + "pretty-format": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz", + "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", + "@babel/code-frame": "^7.27.1", + "@jest/types": "30.2.0", + "@types/stack-utils": "^2.0.3", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "micromatch": "^4.0.8", + "pretty-format": "30.2.0", "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "stack-utils": "^2.0.6" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.2.0.tgz", + "integrity": "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", + "@jest/types": "30.2.0", "@types/node": "*", - "jest-util": "^29.7.0" + "jest-util": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-pnp-resolver": { @@ -4070,147 +4668,196 @@ } }, "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", + "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", "dev": true, "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.2.0.tgz", + "integrity": "sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.2.0", + "jest-pnp-resolver": "^1.2.3", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", + "slash": "^3.0.0", + "unrs-resolver": "^1.7.11" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.2.0.tgz", + "integrity": "sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==", "dev": true, "license": "MIT", "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" + "jest-regex-util": "30.0.1", + "jest-snapshot": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.2.0.tgz", + "integrity": "sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/console": "30.2.0", + "@jest/environment": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", - "chalk": "^4.0.0", + "chalk": "^4.1.2", "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", + "exit-x": "^0.2.2", + "graceful-fs": "^4.2.11", + "jest-docblock": "30.2.0", + "jest-environment-node": "30.2.0", + "jest-haste-map": "30.2.0", + "jest-leak-detector": "30.2.0", + "jest-message-util": "30.2.0", + "jest-resolve": "30.2.0", + "jest-runtime": "30.2.0", + "jest-util": "30.2.0", + "jest-watcher": "30.2.0", + "jest-worker": "30.2.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.2.0.tgz", + "integrity": "sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/environment": "30.2.0", + "@jest/fake-timers": "30.2.0", + "@jest/globals": "30.2.0", + "@jest/source-map": "30.0.1", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", + "chalk": "^4.1.2", + "cjs-module-lexer": "^2.1.0", + "collect-v8-coverage": "^1.0.2", + "glob": "^10.3.10", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.2.0", + "jest-message-util": "30.2.0", + "jest-mock": "30.2.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.2.0", + "jest-snapshot": "30.2.0", + "jest-util": "30.2.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" + "node_modules/jest-runtime/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/jest-runtime/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-runtime/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-snapshot": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.2.0.tgz", + "integrity": "sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@babel/generator": "^7.27.5", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1", + "@babel/types": "^7.27.3", + "@jest/expect-utils": "30.2.0", + "@jest/get-type": "30.1.0", + "@jest/snapshot-utils": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", + "babel-preset-current-node-syntax": "^1.2.0", + "chalk": "^4.1.2", + "expect": "30.2.0", + "graceful-fs": "^4.2.11", + "jest-diff": "30.2.0", + "jest-matcher-utils": "30.2.0", + "jest-message-util": "30.2.0", + "jest-util": "30.2.0", + "pretty-format": "30.2.0", + "semver": "^7.7.2", + "synckit": "^0.11.8" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-snapshot/node_modules/semver": { @@ -4227,52 +4874,39 @@ } }, "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", + "@jest/types": "30.2.0", "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.2.0.tgz", + "integrity": "sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", + "@jest/get-type": "30.1.0", + "@jest/types": "30.2.0", + "camelcase": "^6.3.0", + "chalk": "^4.1.2", "leven": "^3.1.0", - "pretty-format": "^29.7.0" + "pretty-format": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-validate/node_modules/camelcase": { @@ -4289,39 +4923,40 @@ } }, "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.2.0.tgz", + "integrity": "sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/test-result": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" + "jest-util": "30.2.0", + "string-length": "^4.0.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.2.0.tgz", + "integrity": "sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==", "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", - "jest-util": "^29.7.0", + "@ungap/structured-clone": "^1.3.0", + "jest-util": "30.2.0", "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "supports-color": "^8.1.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-worker/node_modules/supports-color": { @@ -4413,16 +5048,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -4603,6 +5228,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/moment": { "version": "2.29.4", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", @@ -4620,6 +5255,22 @@ "dev": true, "license": "MIT" }, + "node_modules/napi-postinstall": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", + "dev": true, + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -4767,6 +5418,13 @@ "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -4823,6 +5481,30 @@ "dev": true, "license": "MIT" }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -4877,18 +5559,18 @@ } }, "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/pretty-format/node_modules/ansi-styles": { @@ -4904,24 +5586,10 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/pure-rand": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", - "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-7.0.1.tgz", + "integrity": "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==", "dev": true, "funding": [ { @@ -5027,16 +5695,6 @@ "node": ">=8" } }, - "node_modules/resolve.exports": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", - "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/reusify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", @@ -5223,13 +5881,6 @@ "dev": true, "license": "ISC" }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true, - "license": "MIT" - }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -5319,6 +5970,22 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -5332,6 +5999,20 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -5399,6 +6080,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/synckit": { + "version": "0.11.12", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.12.tgz", + "integrity": "sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.9" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, "node_modules/terser": { "version": "5.46.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", @@ -5625,6 +6322,41 @@ "node": ">= 4.0.0" } }, + "node_modules/unrs-resolver": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "napi-postinstall": "^0.3.0" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", + "@unrs/resolver-binding-android-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-x64": "1.11.1", + "@unrs/resolver-binding-freebsd-x64": "1.11.1", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" + } + }, "node_modules/update-browserslist-db": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", @@ -5730,6 +6462,25 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -5738,17 +6489,30 @@ "license": "ISC" }, "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "signal-exit": "^4.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/y18n": { diff --git a/package.json b/package.json index be01f4a..e9d9408 100644 --- a/package.json +++ b/package.json @@ -20,10 +20,10 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.3.0", "@types/d3": "^7.4.3", - "@types/jest": "^29.5.14", + "@types/jest": "^30.0.0", "@types/node": "^25.3.3", "@types/sprintf-js": "^1.1.4", - "jest": "^29.7.0", + "jest": "^30.2.0", "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", "rollup": "^4.57.1", "rollup-plugin-copy": "^3.5.0",