+import tinycolor from 'tinycolor2'
+
+import { NcProjectType, baseIconColors } from '#imports'
+
+const props = withDefaults(
+ defineProps<{
+ type?: NcProjectType | string
+ modelValue?: string
+ size?: 'small' | 'medium' | 'large' | 'xlarge'
+ readonly?: boolean
+ iconClass?: string
+ }>(),
+ {
+ type: NcProjectType.DB,
+ size: 'small',
+ },
+)
+
+const emit = defineEmits(['update:modelValue'])
+
+const { modelValue } = toRefs(props)
+const { size, readonly } = props
+
+const isOpen = ref(false)
+
+const colorRef = ref(tinycolor(modelValue.value).isValid() ? modelValue.value : baseIconColors[0])
+
+const updateIconColor = (color: string) => {
+ const tcolor = tinycolor(color)
+ if (tcolor.isValid()) {
+ colorRef.value = color
+ }
+}
+
+const onClick = (e: Event) => {
+ if (readonly) return
+
+ e.stopPropagation()
+
+ isOpen.value = !isOpen.value
+}
+
+watch(
+ isOpen,
+ (value) => {
+ if (!value && colorRef.value !== modelValue.value) {
+ emit('update:modelValue', colorRef.value)
+ }
+ },
+ {
+ immediate: true,
+ },
+)
+
+
+
+
+
+
+
+ {{ $t('tooltip.changeIconColour') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/nc-gui/components/general/ColorPicker.vue b/packages/nc-gui/components/general/ColorPicker.vue
index dffd7c9bc5..98c7aedfd5 100644
--- a/packages/nc-gui/components/general/ColorPicker.vue
+++ b/packages/nc-gui/components/general/ColorPicker.vue
@@ -1,4 +1,5 @@
+
+
+
+
+
+
diff --git a/packages/nc-gui/components/general/ProjectIcon.vue b/packages/nc-gui/components/general/ProjectIcon.vue
index d732cafc7f..e926f38c5c 100644
--- a/packages/nc-gui/components/general/ProjectIcon.vue
+++ b/packages/nc-gui/components/general/ProjectIcon.vue
@@ -1,18 +1,62 @@
-
+ >
+
+
+
+
+
+
+
+
diff --git a/packages/nc-gui/components/smartsheet/Gallery.vue b/packages/nc-gui/components/smartsheet/Gallery.vue
index 5ad503ed50..d5f1518d1f 100644
--- a/packages/nc-gui/components/smartsheet/Gallery.vue
+++ b/packages/nc-gui/components/smartsheet/Gallery.vue
@@ -285,7 +285,7 @@ watch(
@@ -372,7 +372,7 @@ watch(
{
paginationData.value.totalRows)
{
+
diff --git a/packages/nc-gui/components/smartsheet/calendar/DayView/DateField.vue b/packages/nc-gui/components/smartsheet/calendar/DayView/DateField.vue
index 7d6e5c8864..1f7ba889e3 100644
--- a/packages/nc-gui/components/smartsheet/calendar/DayView/DateField.vue
+++ b/packages/nc-gui/components/smartsheet/calendar/DayView/DateField.vue
@@ -4,7 +4,7 @@ import type { ColumnType } from 'nocodb-sdk'
import { type Row, computed, isPrimary, ref, useViewColumnsOrThrow } from '#imports'
import { isRowEmpty } from '~/utils'
-const emit = defineEmits(['expand-record', 'new-record'])
+const emit = defineEmits(['expandRecord', 'newRecord'])
const meta = inject(MetaInj, ref())
@@ -20,22 +20,22 @@ const fields = inject(FieldsInj, ref())
const { fields: _fields } = useViewColumnsOrThrow()
const getFieldStyle = (field: ColumnType) => {
- const fi = _fields.value.find((f) => f.title === field.title)
+ const fi = _fields.value?.find((f) => f.title === field.title)
return {
- underline: fi.underline,
- bold: fi.bold,
- italic: fi.italic,
+ underline: fi?.underline,
+ bold: fi?.bold,
+ italic: fi?.italic,
}
}
-const fieldsWithoutDisplay = computed(() => fields.value.filter((f) => !isPrimary(f)))
+const fieldsWithoutDisplay = computed(() => fields.value?.filter((f) => !isPrimary(f)))
// We loop through all the records and calculate the position of each record based on the range
// We only need to calculate the top, of the record since there is no overlap in the day view of date Field
const recordsAcrossAllRange = computed(() => {
let dayRecordCount = 0
- const perRecordHeight = 40
+ const perRecordHeight = 28
if (!calendarRange.value) return []
@@ -183,6 +183,17 @@ const dropEvent = (event: DragEvent) => {
updateRowProperty(newRow, updateProperty, false)
}
}
+
+// TODO: Add Support for multiple ranges when multiple ranges are supported
+const newRecord = () => {
+ if (!isUIAllowed('dataEdit') || !calendarRange.value?.length) return
+ const record = {
+ row: {
+ [calendarRange.value[0].fk_from_col!.title!]: selectedDate.value.format('YYYY-MM-DD HH:mm:ssZ'),
+ },
+ }
+ emit('newRecord', record)
+}
@@ -191,6 +202,7 @@ const dropEvent = (event: DragEvent) => {
ref="container"
class="w-full relative h-[calc(100vh-10.8rem)] overflow-y-auto nc-scrollbar-md"
data-testid="nc-calendar-day-view"
+ @dblclick="newRecord"
@drop="dropEvent"
>
{
:resize="false"
color="blue"
size="small"
- @click="emit('expand-record', record)"
+ @click="emit('expandRecord', record)"
>
{
{
ref="container"
class="w-full h-full flex text-md font-bold text-gray-500 items-center justify-center"
@drop="dropEvent"
+ @dblclick="newRecord"
>
No records in this day
diff --git a/packages/nc-gui/components/smartsheet/calendar/DayView/DateTimeField.vue b/packages/nc-gui/components/smartsheet/calendar/DayView/DateTimeField.vue
index d086a45c43..412c3c822a 100644
--- a/packages/nc-gui/components/smartsheet/calendar/DayView/DateTimeField.vue
+++ b/packages/nc-gui/components/smartsheet/calendar/DayView/DateTimeField.vue
@@ -4,7 +4,7 @@ import type { ColumnType } from 'nocodb-sdk'
import { type Row, computed, isPrimary, ref, useViewColumnsOrThrow } from '#imports'
import { generateRandomNumber, isRowEmpty } from '~/utils'
-const emit = defineEmits(['expandRecord', 'new-record'])
+const emit = defineEmits(['expandRecord', 'newRecord'])
const {
// activeCalendarView,
@@ -52,6 +52,146 @@ const hours = computed(() => {
return hours
})
+const calculateNewDates = ({
+ endDate,
+ startDate,
+ scheduleStart,
+ scheduleEnd,
+}: {
+ endDate: dayjs.Dayjs
+ startDate: dayjs.Dayjs
+ scheduleStart: dayjs.Dayjs
+ scheduleEnd: dayjs.Dayjs
+}) => {
+ // If there is no end date, we add 15 minutes to the start date and use that as the end date
+ if (!endDate.isValid()) {
+ endDate = startDate.clone().add(15, 'minutes')
+ }
+
+ // If the start date is before the opened date, we use the schedule start as the start date
+ // This is to ensure the generated style of the record is not outside the bounds of the calendar
+ if (startDate.isSameOrBefore(scheduleStart)) {
+ startDate = scheduleStart
+ }
+
+ // If the end date is after the schedule end, we use the schedule end as the end date
+ // This is to ensure the generated style of the record is not outside the bounds of the calendar
+ if (endDate.isAfter(scheduleEnd)) {
+ endDate = scheduleEnd
+ }
+
+ return { endDate, startDate }
+}
+
+/* const getGridTime = (date: dayjs.Dayjs, round = false) => {
+ const gridCalc = date.hour() * 60 + date.minute()
+ if (round) {
+ return Math.ceil(gridCalc)
+ } else {
+ return Math.floor(gridCalc)
+ }
+}
+
+const getGridTimeSlots = (from: dayjs.Dayjs, to: dayjs.Dayjs) => {
+ return {
+ from: getGridTime(from, false),
+ to: getGridTime(to, true) - 1,
+ }
+} */
+
+/* const hasSlotForRecord = (
+ record: Row,
+ columnArray: Row[],
+ dates: {
+ fromDate: dayjs.Dayjs
+ toDate: dayjs.Dayjs
+ },
+) => {
+ const { fromDate, toDate } = dates
+
+ if (!fromDate || !toDate) return false
+
+ for (const column of columnArray) {
+ const columnFromCol = column.rowMeta.range?.fk_from_col
+ const columnToCol = column.rowMeta.range?.fk_to_col
+
+ if (!columnFromCol) return false
+
+ const { startDate: columnFromDate, endDate: columnToDate } = calculateNewDates({
+ startDate: dayjs(column.row[columnFromCol.title!]),
+ endDate: columnToCol ? dayjs(column.row[columnToCol.title!]) : dayjs(column.row[columnFromCol.title!]).add(1, 'hour'),
+ scheduleStart: dayjs(selectedDate.value).startOf('day'),
+ scheduleEnd: dayjs(selectedDate.value).endOf('day'),
+ })
+
+ if (
+ fromDate.isBetween(columnFromDate, columnToDate, null, '[]') ||
+ toDate.isBetween(columnFromDate, columnToDate, null, '[]')
+ ) {
+ return false
+ }
+ }
+ return true
+} */
+
+/* const getMaxOfGrid = (
+ {
+ fromDate,
+ toDate,
+ }: {
+ fromDate: dayjs.Dayjs
+ toDate: dayjs.Dayjs
+ },
+ gridTimeMap: Map,
+) => {
+ let max = 0
+ const gridTimes = getGridTimeSlots(fromDate, toDate)
+
+ for (let gridCounter = gridTimes.from; gridCounter <= gridTimes.to; gridCounter++) {
+ if (gridTimeMap.has(gridCounter) && gridTimeMap.get(gridCounter) > max) {
+ max = gridTimeMap.get(gridCounter)
+ }
+ }
+ return max
+} */
+/* const isOverlaps = (row1: Row, row2: Row) => {
+ const fromCol1 = row1.rowMeta.range?.fk_from_col
+ const toCol1 = row1.rowMeta.range?.fk_to_col
+ const fromCol2 = row2.rowMeta.range?.fk_from_col
+ const toCol2 = row2.rowMeta.range?.fk_to_col
+
+ if (!fromCol1 || !fromCol2) return false
+
+ const { startDate: startDate1, endDate: endDate1 } = calculateNewDates({
+ endDate: toCol1 ? dayjs(row1.row[toCol1.title!]) : dayjs(row1.row[fromCol1.title!]).add(1, 'hour'),
+ startDate: dayjs(row1.row[fromCol1.title!]),
+ scheduleStart: dayjs(selectedDate.value).startOf('day'),
+ scheduleEnd: dayjs(selectedDate.value).endOf('day'),
+ })
+
+ const { startDate: startDate2, endDate: endDate2 } = calculateNewDates({
+ endDate: toCol2 ? dayjs(row2.row[toCol2.title!]) : dayjs(row2.row[fromCol2.title!]).add(1, 'hour'),
+ startDate: dayjs(row2.row[fromCol2.title!]),
+ scheduleStart: dayjs(selectedDate.value).startOf('day'),
+ scheduleEnd: dayjs(selectedDate.value).endOf('day'),
+ })
+
+ return startDate1.isBetween(startDate2, endDate2, null, '[]') || endDate1.isBetween(startDate2, endDate2, null, '[]')
+} */
+
+/* const getMaxOverlaps = ({ row, rowArray }: { row: Row; rowArray: Row[] }) => {
+ let maxOverlaps = row.rowMeta.numberOfOverlaps
+ for (const record of rowArray) {
+ if (isOverlaps(row, record)) {
+ if (!record.rowMeta.numberOfOverlaps || !row.rowMeta.numberOfOverlaps) continue
+ if (record.rowMeta.numberOfOverlaps > row.rowMeta.numberOfOverlaps) {
+ maxOverlaps = record.rowMeta.numberOfOverlaps
+ }
+ }
+ }
+ return maxOverlaps
+} */
+
const recordsAcrossAllRange = computed<{
record: Row[]
count: {
@@ -82,6 +222,9 @@ const recordsAcrossAllRange = computed<{
const perRecordHeight = 80
+ /* const columnArray: Array> = [[]]
+ const gridTimeMap = new Map() */
+
let recordsByRange: Array = []
calendarRange.value.forEach((range) => {
@@ -90,48 +233,36 @@ const recordsAcrossAllRange = computed<{
// We fetch all the records that match the calendar ranges in a single time.
// But not all fetched records are valid for the certain range, so we filter them out & sort them
- const sortedFormattedData = [...formattedData.value].filter((record) => {
- const fromDate = record.row[fromCol!.title!] ? dayjs(record.row[fromCol!.title!]) : null
-
- if (fromCol && endCol) {
- const fromDate = record.row[fromCol.title!] ? dayjs(record.row[fromCol.title!]) : null
- const toDate = record.row[endCol.title!] ? dayjs(record.row[endCol.title!]) : null
-
- return fromDate && toDate?.isValid() ? fromDate.isBefore(toDate) : true
- } else if (fromCol && !endCol) {
- return !!fromDate
- }
- return false
- })
-
- // If there is a start and end column, we calculate the top and height of the record based on the start and end date
- if (fromCol && endCol) {
- for (const record of sortedFormattedData) {
- // We use this id during the drag and drop operation and to keep track of the number of records that overlap at a given time
- const id = generateRandomNumber()
- let startDate = dayjs(record.row[fromCol.title!])
- let endDate = dayjs(record.row[endCol.title!])
+ const sortedFormattedData = [...formattedData.value]
+ .filter((record) => {
+ const fromDate = record.row[fromCol!.title!] ? dayjs(record.row[fromCol!.title!]) : null
- // If no start date is provided or startDate is after the endDate, we skip the record
- if (!startDate.isValid() || startDate.isAfter(endDate)) continue
+ if (fromCol && endCol) {
+ const fromDate = record.row[fromCol.title!] ? dayjs(record.row[fromCol.title!]) : null
+ const toDate = record.row[endCol.title!] ? dayjs(record.row[endCol.title!]) : null
- // If there is no end date, we add 30 minutes to the start date and use that as the end date
- if (!endDate.isValid()) {
- endDate = startDate.clone().add(30, 'minutes')
- }
-
- // If the start date is before the opened date, we use the schedule start as the start date
- // This is to ensure the generated style of the record is not outside the bounds of the calendar
- if (startDate.isBefore(scheduleStart, 'minutes')) {
- startDate = scheduleStart
+ return fromDate && toDate?.isValid() ? fromDate.isSameOrBefore(toDate) : true
+ } else if (fromCol && !endCol) {
+ return !!fromDate
}
+ return false
+ })
+ .sort((a, b) => {
+ const aDate = dayjs(a.row[fromCol!.title!])
+ const bDate = dayjs(b.row[fromCol!.title!])
+ return aDate.isBefore(bDate) ? 1 : -1
+ })
- // If the end date is after the schedule end, we use the schedule end as the end date
- // This is to ensure the generated style of the record is not outside the bounds of the calendar
- if (endDate.isAfter(scheduleEnd, 'minutes')) {
- endDate = scheduleEnd
- }
+ for (const record of sortedFormattedData) {
+ const id = record.rowMeta.id ?? generateRandomNumber()
+ if (fromCol && endCol) {
+ const { endDate, startDate } = calculateNewDates({
+ endDate: dayjs(record.row[endCol.title!]),
+ startDate: dayjs(record.row[fromCol.title!]),
+ scheduleStart,
+ scheduleEnd,
+ })
// The top of the record is calculated based on the start hour and minute
const topInPixels = (startDate.hour() + startDate.minute() / 60) * 80
@@ -140,7 +271,6 @@ const recordsAcrossAllRange = computed<{
const heightInPixels = Math.max((endDate.diff(startDate, 'minute') / 60) * 80, perRecordHeight)
const startHour = startDate.hour()
-
let _startDate = startDate.clone()
const style: Partial = {
@@ -148,7 +278,7 @@ const recordsAcrossAllRange = computed<{
top: `${topInPixels + 5 + startHour * 2}px`,
}
- // We loop through every 15 minutes between the start and end date and keep track of the number of records that overlap at a given time
+ // We loop through every 1 minutes between the start and end date and keep track of the number of records that overlap at a given time
// If the number of records exceeds 4, we hide the record and show a button to view more records
while (_startDate.isBefore(endDate)) {
const timeKey = _startDate.format('HH:mm')
@@ -199,18 +329,13 @@ const recordsAcrossAllRange = computed<{
range: range as any,
},
})
- }
- } else if (fromCol) {
- for (const record of sortedFormattedData) {
- const id = generateRandomNumber()
-
- const startDate = dayjs(record.row[fromCol.title!])
-
- let endDate = dayjs(record.row[fromCol.title!]).add(1, 'hour')
-
- if (endDate.isAfter(scheduleEnd, 'minutes')) {
- endDate = scheduleEnd
- }
+ } else if (fromCol) {
+ const { startDate, endDate } = calculateNewDates({
+ startDate: dayjs(record.row[fromCol.title!]),
+ endDate: dayjs(record.row[fromCol.title!]).add(1, 'hour'),
+ scheduleStart,
+ scheduleEnd,
+ })
const startHour = startDate.hour()
@@ -218,7 +343,7 @@ const recordsAcrossAllRange = computed<{
let _startDate = startDate.clone()
// We loop through every minute between the start and end date and keep track of the number of records that overlap at a given time
- while (_startDate.isBefore(endDate)) {
+ while (_startDate.isBefore(endDate, 'minute')) {
const timeKey = _startDate.format('HH:mm')
if (!overlaps[timeKey]) {
@@ -239,6 +364,7 @@ const recordsAcrossAllRange = computed<{
display: 'none',
}
}
+
_startDate = _startDate.add(1, 'minute')
}
@@ -273,6 +399,13 @@ const recordsAcrossAllRange = computed<{
}
}
})
+ /*
+ recordsByRange.sort((a, b) => {
+ const fromColA = a.rowMeta.range?.fk_from_col
+ const fromColB = b.rowMeta.range?.fk_from_col
+ if (!fromColA || !fromColB) return 0
+ return dayjs(a.row[fromColA.title!]).isBefore(dayjs(b.row[fromColB.title!])) ? -1 : 1
+ }) */
// We can't calculate the width & left of the records without knowing the number of records that overlap at a given time
// So we loop through the records again and calculate the width & left of the records based on the number of records that overlap at a given time
@@ -287,12 +420,9 @@ const recordsAcrossAllRange = computed<{
overlapIndex = Math.max(overlaps[minutes].id.indexOf(record.rowMeta.id!), overlapIndex)
}
}
-
const spacing = 0.25
const widthPerRecord = (100 - spacing * (maxOverlaps - 1)) / maxOverlaps
-
const leftPerRecord = (widthPerRecord + spacing) * overlapIndex
-
record.rowMeta.style = {
...record.rowMeta.style,
left: `${leftPerRecord - 0.08}%`,
@@ -301,6 +431,92 @@ const recordsAcrossAllRange = computed<{
return record
})
+ // TODO: Rewrite the calculations for the style of the records
+
+ /* for (const record of recordsByRange) {
+ const fromCol = record.rowMeta.range?.fk_from_col
+ const toCol = record.rowMeta.range?.fk_to_col
+
+ if (!fromCol) continue
+
+ const { startDate, endDate } = calculateNewDates({
+ startDate: dayjs(record.row[fromCol.title!]),
+ endDate: toCol ? dayjs(record.row[toCol.title!]) : dayjs(record.row[fromCol.title!]).add(1, 'hour'),
+ scheduleStart,
+ scheduleEnd,
+ })
+
+ const gridTimes = getGridTimeSlots(startDate, endDate)
+
+ for (let gridCounter = gridTimes.from; gridCounter <= gridTimes.to; gridCounter++) {
+ if (gridTimeMap.has(gridCounter)) {
+ gridTimeMap.set(gridCounter, gridTimeMap.get(gridCounter) + 1)
+ } else {
+ gridTimeMap.set(gridCounter, 1)
+ }
+ }
+
+ let foundAColumn = false
+
+ for (const column in columnArray) {
+ if (
+ hasSlotForRecord(record, columnArray[column], {
+ fromDate: startDate,
+ toDate: endDate,
+ })
+ ) {
+ columnArray[column].push(record)
+ foundAColumn = true
+ break
+ }
+ }
+
+ if (!foundAColumn) {
+ columnArray.push([record])
+ }
+ }
+ for (const columnIndex in columnArray) {
+ for (const record of columnArray[columnIndex]) {
+ const recordRange = record.rowMeta.range
+ const fromCol = recordRange?.fk_from_col
+ const toCol = recordRange?.fk_to_col
+
+ if (!fromCol) continue
+
+ const { startDate, endDate } = calculateNewDates({
+ startDate: dayjs(record.row[fromCol.title!]),
+ endDate: toCol ? dayjs(record.row[toCol.title!]) : dayjs(record.row[fromCol.title!]).add(1, 'hour'),
+ scheduleStart: dayjs(selectedDate.value).startOf('day'),
+ scheduleEnd: dayjs(selectedDate.value).endOf('day'),
+ })
+
+ record.rowMeta.numberOfOverlaps =
+ getMaxOfGrid(
+ {
+ fromDate: startDate,
+ toDate: endDate,
+ },
+ gridTimeMap,
+ ) - 1
+ record.rowMeta.overLapIteration = parseInt(columnIndex) + 1
+ }
+ }
+ for (const record of recordsByRange) {
+ record.rowMeta.numberOfOverlaps = getMaxOverlaps({
+ row: record,
+ rowArray: recordsByRange,
+ })
+
+ const width = 100 / columnArray.length
+ const left = width * (record.rowMeta.overLapIteration - 1)
+
+ record.rowMeta.style = {
+ ...record.rowMeta.style,
+ width: `${width.toFixed(2)}%`,
+ left: `${left}%`,
+ }
+ } */
+
return {
count: overlaps,
record: recordsByRange,
@@ -328,6 +544,7 @@ const useDebouncedRowUpdate = useDebounceFn((row: Row, updateProperty: string[],
// When the user is dragging a record, we calculate the new start and end date based on the mouse position
const calculateNewRow = (event: MouseEvent) => {
if (!container.value || !dragRecord.value) return { newRow: null, updateProperty: [] }
+
const { top } = container.value.getBoundingClientRect()
const { scrollHeight } = container.value
@@ -391,10 +608,7 @@ const calculateNewRow = (event: MouseEvent) => {
if (dragElement.value) {
formattedData.value = formattedData.value.map((r) => {
const pk = extractPkFromRow(r.row, meta.value!.columns!)
- if (pk === newPk) {
- return newRow
- }
- return r
+ return pk === newPk ? newRow : r
})
} else {
// If the old row is not found, we add the new row to the formattedData array and remove the old row from the formattedSideBarData array
@@ -408,10 +622,9 @@ const calculateNewRow = (event: MouseEvent) => {
}
const onResize = (event: MouseEvent) => {
- if (!isUIAllowed('dataEdit')) return
- if (!container.value || !resizeRecord.value) return
- const { top, bottom } = container.value.getBoundingClientRect()
+ if (!isUIAllowed('dataEdit') || !container.value || !resizeRecord.value) return
+ const { top, bottom } = container.value.getBoundingClientRect()
const { scrollHeight } = container.value
// If the mouse position is near the top or bottom of the scroll container, we scroll the container
@@ -425,26 +638,28 @@ const onResize = (event: MouseEvent) => {
const fromCol = resizeRecord.value.rowMeta.range?.fk_from_col
const toCol = resizeRecord.value.rowMeta.range?.fk_to_col
+
if (!fromCol || !toCol) return
const ogEndDate = dayjs(resizeRecord.value.row[toCol.title!])
const ogStartDate = dayjs(resizeRecord.value.row[fromCol.title!])
- const hour = Math.max(Math.floor(percentY * 23), 0)
+ const hour = Math.floor(percentY * 24) // Round down to the nearest hour
+ const minutes = Math.round((percentY * 24 * 60) % 60)
let newRow: Row | null = null
let updateProperty: string[] = []
if (resizeDirection.value === 'right') {
// If the user is resizing the record to the right, we calculate the new end date based on the mouse position
- let newEndDate = dayjs(selectedDate.value).add(hour, 'hour')
+ let newEndDate = dayjs(selectedDate.value).add(hour, 'hour').add(minutes, 'minute')
updateProperty = [toCol.title!]
// If the new end date is before the start date, we set the new end date to the start date
// This is to ensure the end date is always same or after the start date
- if (dayjs(newEndDate).isBefore(ogStartDate, 'day')) {
- newEndDate = ogStartDate.clone()
+ if (dayjs(newEndDate).isBefore(ogStartDate.add(1, 'hour'))) {
+ newEndDate = ogStartDate.clone().add(1, 'hour')
}
if (!newEndDate.isValid()) return
@@ -457,14 +672,14 @@ const onResize = (event: MouseEvent) => {
},
}
} else if (resizeDirection.value === 'left') {
- let newStartDate = dayjs(selectedDate.value).add(hour, 'hour')
+ let newStartDate = dayjs(selectedDate.value).add(hour, 'hour').add(minutes, 'minute')
updateProperty = [fromCol.title!]
// If the new start date is after the end date, we set the new start date to the end date
// This is to ensure the start date is always before or same the end date
- if (dayjs(newStartDate).isAfter(ogEndDate)) {
- newStartDate = dayjs(dayjs(ogEndDate)).clone()
+ if (dayjs(newStartDate).isAfter(ogEndDate.subtract(1, 'hour'))) {
+ newStartDate = dayjs(dayjs(ogEndDate)).clone().add(-1, 'hour')
}
if (!newStartDate) return
@@ -532,6 +747,10 @@ const stopDrag = (event: MouseEvent) => {
dragElement.value = null
}
+ if (dragRecord.value) {
+ dragRecord.value = undefined
+ }
+
if (!newRow) return
updateRowProperty(newRow, updateProperty, false)
@@ -564,7 +783,6 @@ const dragStart = (event: MouseEvent, record: Row) => {
dragRecord.value = record
dragElement.value = target
- dragRecord.value = record
document.addEventListener('mousemove', onDrag)
document.addEventListener('mouseup', stopDrag)
@@ -615,11 +833,26 @@ const viewMore = (hour: dayjs.Dayjs) => {
selectedTime.value = hour
showSideMenu.value = true
}
+
+const selectHour = (hour: dayjs.Dayjs) => {
+ selectedTime.value = hour
+ dragRecord.value = null
+}
+
+// TODO: Add Support for multiple ranges when multiple ranges are supported
+const newRecord = (hour: dayjs.Dayjs) => {
+ if (!isUIAllowed('dataEdit') || !calendarRange.value?.length) return
+ const record = {
+ row: {
+ [calendarRange.value[0].fk_from_col!.title!]: hour.format('YYYY-MM-DD HH:mm:ssZ'),
+ },
+ }
+ emit('newRecord', record)
+}
-
- No records in this day
diff --git a/packages/nc-gui/store/bases.ts b/packages/nc-gui/store/bases.ts
index d83b05c261..cf453fbeca 100644
--- a/packages/nc-gui/store/bases.ts
+++ b/packages/nc-gui/store/bases.ts
@@ -201,6 +201,7 @@ export const useBases = defineStore('basesStore', () => {
isExpanded: route.value.params.baseId === baseId || existingProject.isExpanded,
// isLoading is managed by Sidebar
isLoading: existingProject.isLoading,
+ meta: { ...parseProp(existingProject.meta), ...parseProp(_project.meta) },
}
bases.value.set(baseId, base)
@@ -229,7 +230,7 @@ export const useBases = defineStore('basesStore', () => {
...baseUpdatePayload,
}
- bases.value.set(baseId, base)
+ bases.value.set(baseId, { ...base, meta: parseProp(base.meta) })
await api.base.update(baseId, baseUpdatePayload)
@@ -241,11 +242,15 @@ export const useBases = defineStore('basesStore', () => {
workspaceId?: string
type: string
linkedDbProjectIds?: string[]
+ meta?: Record
}) => {
const result = await api.base.create(
{
title: basePayload.title,
linked_db_project_ids: basePayload.linkedDbProjectIds,
+ meta: JSON.stringify({
+ ...(basePayload.meta || {}),
+ }),
},
{
baseURL: getBaseUrl('nc'),
diff --git a/packages/nc-gui/store/views.ts b/packages/nc-gui/store/views.ts
index f32ca96271..f5e60d480c 100644
--- a/packages/nc-gui/store/views.ts
+++ b/packages/nc-gui/store/views.ts
@@ -1,6 +1,7 @@
import type { FilterType, SortType, ViewType, ViewTypes } from 'nocodb-sdk'
import { acceptHMRUpdate, defineStore } from 'pinia'
import type { ViewPageType } from '~/lib'
+import { navigateToBlankTargetOpenOption, useMagicKeys } from '#imports'
export const useViewsStore = defineStore('viewsStore', () => {
const { $api } = useNuxtApp()
@@ -27,6 +28,8 @@ export const useViewsStore = defineStore('viewsStore', () => {
const { activeWorkspaceId } = storeToRefs(useWorkspace())
+ const { meta: metaKey, ctrlKey } = useMagicKeys()
+
const recentViews = computed(() =>
allRecentViews.value.filter((f) => f.workspaceId === activeWorkspaceId.value).splice(0, 10),
)
@@ -116,6 +119,8 @@ export const useViewsStore = defineStore('viewsStore', () => {
// Used for Grid View Pagination
const isPaginationLoading = ref(true)
+ const preFillFormSearchParams = ref('')
+
const loadViews = async ({
tableId,
ignoreLoading,
@@ -214,6 +219,8 @@ export const useViewsStore = defineStore('viewsStore', () => {
hardReload?: boolean
doNotSwitchTab?: boolean
}) => {
+ const cmdOrCtrl = isMac() ? metaKey.value : ctrlKey.value
+
const routeName = 'index-typeOrId-baseId-index-index-viewId-viewTitle-slugs'
let baseIdOrBaseId = baseId
@@ -229,29 +236,64 @@ export const useViewsStore = defineStore('viewsStore', () => {
router.currentRoute.value.query.page &&
router.currentRoute.value.query.page === 'fields'
) {
- await router.push({
- name: routeName,
- params: {
- viewTitle: view.id || '',
- viewId: tableId,
- baseId: baseIdOrBaseId,
- slugs,
- },
- query: router.currentRoute.value.query,
- })
+ if (cmdOrCtrl) {
+ await navigateTo(
+ router.resolve({
+ name: routeName,
+ params: {
+ viewTitle: view.id || '',
+ viewId: tableId,
+ baseId: baseIdOrBaseId,
+ slugs,
+ },
+ query: router.currentRoute.value.query,
+ }).href,
+ {
+ open: navigateToBlankTargetOpenOption,
+ },
+ )
+ } else {
+ await router.push({
+ name: routeName,
+ params: {
+ viewTitle: view.id || '',
+ viewId: tableId,
+ baseId: baseIdOrBaseId,
+ slugs,
+ },
+ query: router.currentRoute.value.query,
+ })
+ }
} else {
- await router.push({
- name: routeName,
- params: {
- viewTitle: view.id || '',
- viewId: tableId,
- baseId: baseIdOrBaseId,
- slugs,
- },
- })
+ if (cmdOrCtrl) {
+ await navigateTo(
+ router.resolve({
+ name: routeName,
+ params: {
+ viewTitle: view.id || '',
+ viewId: tableId,
+ baseId: baseIdOrBaseId,
+ slugs,
+ },
+ }).href,
+ {
+ open: navigateToBlankTargetOpenOption,
+ },
+ )
+ } else {
+ await router.push({
+ name: routeName,
+ params: {
+ viewTitle: view.id || '',
+ viewId: tableId,
+ baseId: baseIdOrBaseId,
+ slugs,
+ },
+ })
+ }
}
- if (hardReload) {
+ if (!cmdOrCtrl && hardReload) {
await router
.replace({
name: routeName,
@@ -322,6 +364,7 @@ export const useViewsStore = defineStore('viewsStore', () => {
activeSorts,
activeNestedFilters,
isActiveViewLocked,
+ preFillFormSearchParams,
}
})
diff --git a/packages/nc-gui/store/workspace.ts b/packages/nc-gui/store/workspace.ts
index db79670ce3..3d5751c8c2 100644
--- a/packages/nc-gui/store/workspace.ts
+++ b/packages/nc-gui/store/workspace.ts
@@ -48,6 +48,8 @@ export const useWorkspace = defineStore('workspaceStore', () => {
return { id: 'default', title: 'default', meta: {}, roles: '' } as any
})
+ const workspaceRole = computed(() => activeWorkspace.value?.roles)
+
const activeWorkspaceMeta = computed>(() => {
const defaultMeta = {}
if (!activeWorkspace.value) return defaultMeta
@@ -199,8 +201,15 @@ export const useWorkspace = defineStore('workspaceStore', () => {
})
}
- const navigateToWorkspaceSettings = async () => {
- navigateTo('/account/users')
+ const navigateToWorkspaceSettings = async (_, cmdOrCtrl) => {
+ await navigateTo(
+ `${cmdOrCtrl ? '#' : ''}/account/users`,
+ cmdOrCtrl
+ ? {
+ open: navigateToBlankTargetOpenOption,
+ }
+ : undefined,
+ )
}
function setLoadingState(isLoading = false) {
@@ -246,6 +255,7 @@ export const useWorkspace = defineStore('workspaceStore', () => {
isWorkspaceSettingsPageOpened,
workspaceUserCount,
getPlanLimit,
+ workspaceRole,
}
})
diff --git a/packages/nc-gui/utils/browserUtils.ts b/packages/nc-gui/utils/browserUtils.ts
index 8f2f4b7ec2..22d928e104 100644
--- a/packages/nc-gui/utils/browserUtils.ts
+++ b/packages/nc-gui/utils/browserUtils.ts
@@ -19,6 +19,6 @@ export const getScrollbarWidth = () => {
outer.appendChild(inner)
const widthWithScroll = inner.offsetWidth
- outer.parentNode.removeChild(outer)
+ outer?.parentNode?.removeChild(outer)
return widthNoScroll - widthWithScroll
}
diff --git a/packages/nc-gui/utils/cell.ts b/packages/nc-gui/utils/cell.ts
index 4df66dab79..66e73c81a5 100644
--- a/packages/nc-gui/utils/cell.ts
+++ b/packages/nc-gui/utils/cell.ts
@@ -82,3 +82,14 @@ export const renderValue = (result?: any) => {
return dayjs(d).isValid() ? dayjs(d).format('YYYY-MM-DD HH:mm') : d
})
}
+
+export const isNumericFieldType = (column: ColumnType, abstractType: any) => {
+ return (
+ isInt(column, abstractType) ||
+ isFloat(column, abstractType) ||
+ isDecimal(column) ||
+ isCurrency(column) ||
+ isPercent(column) ||
+ isDuration(column)
+ )
+}
diff --git a/packages/nc-gui/utils/colorsUtils.ts b/packages/nc-gui/utils/colorsUtils.ts
index dbb67f5612..e1e47beb52 100644
--- a/packages/nc-gui/utils/colorsUtils.ts
+++ b/packages/nc-gui/utils/colorsUtils.ts
@@ -111,6 +111,8 @@ export const baseThemeColors = [
'#333333',
]
+export const baseIconColors = ['#36BFFF', '#FA8231', '#FCBE3A', '#27D665', '#6A7184', '#FF4A3F', '#FC3AC6', '#7D26CD']
+
const designSystem = {
light: [
// '#EBF0FF',
diff --git a/packages/nc-gui/utils/columnUtils.ts b/packages/nc-gui/utils/columnUtils.ts
index 316056a332..2be05db81d 100644
--- a/packages/nc-gui/utils/columnUtils.ts
+++ b/packages/nc-gui/utils/columnUtils.ts
@@ -1,125 +1,123 @@
import type { ColumnType, LinkToAnotherRecordType } from 'nocodb-sdk'
import { RelationTypes, UITypes } from 'nocodb-sdk'
import { iconMap } from '#imports'
-import LinkVariant from '~icons/mdi/link-variant'
-import ID from '~icons/mdi/identifier'
const uiTypes = [
{
name: UITypes.Links,
- icon: iconMap.link,
+ icon: iconMap.cellLinks,
virtual: 1,
},
{
name: UITypes.LinkToAnotherRecord,
- icon: iconMap.link,
+ icon: iconMap.cellLinks,
virtual: 1,
deprecated: 1,
},
{
name: UITypes.Lookup,
- icon: iconMap.lookup,
+ icon: iconMap.cellLookup,
virtual: 1,
},
{
name: UITypes.SingleLineText,
- icon: iconMap.text,
+ icon: iconMap.cellText,
},
{
name: UITypes.LongText,
- icon: iconMap.longText,
+ icon: iconMap.cellLongText,
},
{
name: UITypes.Number,
- icon: iconMap.number,
+ icon: iconMap.cellNumber,
},
{
name: UITypes.Decimal,
- icon: iconMap.decimal,
+ icon: iconMap.cellDecimal,
},
{
name: UITypes.Attachment,
- icon: iconMap.image,
+ icon: iconMap.cellAttachment,
},
{
name: UITypes.Checkbox,
- icon: iconMap.boolean,
+ icon: iconMap.cellCheckbox,
},
{
name: UITypes.MultiSelect,
- icon: iconMap.multiSelect,
+ icon: iconMap.cellMultiSelect,
},
{
name: UITypes.SingleSelect,
- icon: iconMap.singleSelect,
+ icon: iconMap.cellSingleSelect,
},
{
name: UITypes.Date,
- icon: iconMap.calendar,
+ icon: iconMap.cellDate,
},
{
name: UITypes.Year,
- icon: iconMap.calendar,
+ icon: iconMap.cellDate,
},
{
name: UITypes.Time,
- icon: iconMap.clock,
+ icon: iconMap.cellTime,
},
{
name: UITypes.PhoneNumber,
- icon: iconMap.phone,
+ icon: iconMap.cellPhone,
},
{
name: UITypes.Email,
- icon: iconMap.email,
+ icon: iconMap.cellEmail,
},
{
name: UITypes.URL,
- icon: iconMap.web,
+ icon: iconMap.cellUrl,
},
{
name: UITypes.Currency,
- icon: iconMap.currency,
+ icon: iconMap.cellCurrency,
},
{
name: UITypes.Percent,
- icon: iconMap.percent,
+ icon: iconMap.cellPercent,
},
{
name: UITypes.Duration,
- icon: iconMap.duration,
+ icon: iconMap.cellDuration,
},
{
name: UITypes.Rating,
- icon: iconMap.rating,
+ icon: iconMap.cellRating,
},
{
name: UITypes.Formula,
- icon: iconMap.formula,
+ icon: iconMap.cellFormula,
virtual: 1,
},
{
name: UITypes.Rollup,
- icon: iconMap.rollup,
+ icon: iconMap.cellRollup,
virtual: 1,
},
{
name: UITypes.DateTime,
- icon: iconMap.datetime,
+ icon: iconMap.cellDatetime,
},
{
name: UITypes.QrCode,
- icon: iconMap.qrCode,
+ icon: iconMap.cellQrCode,
virtual: 1,
},
{
name: UITypes.Barcode,
- icon: iconMap.barCode,
+ icon: iconMap.cellBarcode,
virtual: 1,
},
{
name: UITypes.Geometry,
- icon: iconMap.calculator,
+ icon: iconMap.cellGeometry,
},
{
@@ -128,31 +126,31 @@ const uiTypes = [
},
{
name: UITypes.JSON,
- icon: iconMap.json,
+ icon: iconMap.cellJson,
},
{
name: UITypes.SpecificDBType,
- icon: iconMap.specificDbType,
+ icon: iconMap.cellDb,
},
{
name: UITypes.User,
- icon: iconMap.phUser,
+ icon: iconMap.cellUser,
},
{
name: UITypes.CreatedTime,
- icon: iconMap.datetime,
+ icon: iconMap.cellSystemDate,
},
{
name: UITypes.LastModifiedTime,
- icon: iconMap.datetime,
+ icon: iconMap.cellSystemDate,
},
{
name: UITypes.CreatedBy,
- icon: iconMap.phUser,
+ icon: iconMap.cellSystemUser,
},
{
name: UITypes.LastModifiedBy,
- icon: iconMap.phUser,
+ icon: iconMap.cellSystemUser,
},
]
@@ -162,15 +160,15 @@ const getUIDTIcon = (uidt: UITypes | string) => {
...uiTypes,
{
name: UITypes.CreatedTime,
- icon: iconMap.calendar,
+ icon: iconMap.cellSystemDate,
},
{
name: UITypes.ID,
- icon: ID,
+ icon: iconMap.cellSystemKey,
},
{
name: UITypes.ForeignKey,
- icon: LinkVariant,
+ icon: iconMap.cellLinks,
},
].find((t) => t.name === uidt) || {}
).icon
diff --git a/packages/nc-gui/utils/dataUtils.ts b/packages/nc-gui/utils/dataUtils.ts
index d5eb9a029e..939ce369f7 100644
--- a/packages/nc-gui/utils/dataUtils.ts
+++ b/packages/nc-gui/utils/dataUtils.ts
@@ -1,4 +1,4 @@
-import { RelationTypes, UITypes, isLinksOrLTAR, isSystemColumn, isVirtualCol } from 'nocodb-sdk'
+import { RelationTypes, UITypes, isSystemColumn, isVirtualCol } from 'nocodb-sdk'
import type { ColumnType, LinkToAnotherRecordType, TableType } from 'nocodb-sdk'
import { isColumnRequiredAndNull } from './columnUtils'
import type { Row } from '~/lib'
@@ -102,9 +102,9 @@ export const rowDefaultData = (columns: ColumnType[] = []) => {
if (
!isSystemColumn(col) &&
!isVirtualCol(col) &&
- !isLinksOrLTAR({ uidt: col.uidt! }) &&
![UITypes.Rollup, UITypes.Lookup, UITypes.Formula, UITypes.Barcode, UITypes.QrCode].includes(col.uidt) &&
- col?.cdf
+ col?.cdf &&
+ !/^\w+\(\)|CURRENT_TIMESTAMP$/.test(col.cdf)
) {
const defaultValue = col.cdf
acc[col.title!] = typeof defaultValue === 'string' ? defaultValue.replace(/^'/, '').replace(/'$/, '') : defaultValue
diff --git a/packages/nc-gui/utils/iconUtils.ts b/packages/nc-gui/utils/iconUtils.ts
index 41a6cafcdb..38130ce6f0 100644
--- a/packages/nc-gui/utils/iconUtils.ts
+++ b/packages/nc-gui/utils/iconUtils.ts
@@ -120,6 +120,8 @@ import NcCopy from '~icons/nc-icons/copy'
import NcPaste from '~icons/nc-icons/paste'
import NcArrowUp from '~icons/nc-icons/arrow-up'
import NcArrowDown from '~icons/nc-icons/arrow-down'
+import NcArrowLeft from '~icons/nc-icons/arrow-left'
+import NcArrowRight from '~icons/nc-icons/arrow-right'
import NcUpload from '~icons/nc-icons/upload'
import NcDownload from '~icons/nc-icons/download'
// import NcProjectGray from '~icons/nc-icons/project-gray'
@@ -130,6 +132,41 @@ import NcUnderline from '~icons/nc-icons/underline'
import NcCrop from '~icons/nc-icons/crop'
import NcLink from '~icons/nc-icons/link'
+import NcCellBarcode from '~icons/nc-icons/cell-barcode'
+import NcCellCheckbox from '~icons/nc-icons/cell-checkbox'
+import NcCellDate from '~icons/nc-icons/cell-date'
+import NcCellEmail from '~icons/nc-icons/cell-email'
+import NcCellFormula from '~icons/nc-icons/cell-formula'
+import NcCellCurrency from '~icons/nc-icons/cell-currency'
+import NcCellDatetime from '~icons/nc-icons/cell-datetime'
+import NcCellDb from '~icons/nc-icons/cell-db'
+import NcCellDecimal from '~icons/nc-icons/cell-decimal'
+import NcCellDuration from '~icons/nc-icons/cell-duration'
+import NcCellGeometry from '~icons/nc-icons/cell-geometry'
+import NcCellJson from '~icons/nc-icons/cell-json'
+import NcCellLinks from '~icons/nc-icons/cell-link'
+import NcCellLongText from '~icons/nc-icons/cell-longtext'
+import NcCellLookup from '~icons/nc-icons/cell-lookup'
+import NcCellMultiSelect from '~icons/nc-icons/cell-multiselect'
+import NcCellNumber from '~icons/nc-icons/cell-number'
+import NcCellPercent from '~icons/nc-icons/cell-percentage'
+import NcCellPhone from '~icons/nc-icons/cell-phone'
+import NcCellQrCode from '~icons/nc-icons/cell-qrcode'
+import NcCellRating from '~icons/nc-icons/cell-rating'
+import NcCellRollup from '~icons/nc-icons/cell-rollup'
+import NcCellSingleSelect from '~icons/nc-icons/cell-select'
+import NcCellText from '~icons/nc-icons/cell-text'
+import NcCellTime from '~icons/nc-icons/cell-time'
+import NcCellUrl from '~icons/nc-icons/cell-url'
+import NcCellUser from '~icons/nc-icons/cell-user'
+import NcCellSystemDate from '~icons/nc-icons/system-date'
+import NcCellSystemKey from '~icons/nc-icons/system-key'
+import NcCellSystemUser from '~icons/nc-icons/system-user'
+import NcCellSystemText from '~icons/nc-icons/system-text'
+import NcCellAttachment from '~icons/nc-icons/cell-attachment'
+
+import NcCircleCheck from '~icons/nc-icons/circle-check'
+
// keep it for reference
// todo: remove it after all icons are migrated
/* export const iconMapOld = {
@@ -278,6 +315,39 @@ import NcLink from '~icons/nc-icons/link'
} as const */
export const iconMap = {
+ cellBarcode: NcCellBarcode,
+ cellCheckbox: NcCellCheckbox,
+ cellDate: NcCellDate,
+ cellEmail: NcCellEmail,
+ cellFormula: NcCellFormula,
+ cellCurrency: NcCellCurrency,
+ cellDatetime: NcCellDatetime,
+ cellDb: NcCellDb,
+ cellDecimal: NcCellDecimal,
+ cellDuration: NcCellDuration,
+ cellGeometry: NcCellGeometry,
+ cellJson: NcCellJson,
+ cellLinks: NcCellLinks,
+ cellLongText: NcCellLongText,
+ cellLookup: NcCellLookup,
+ cellMultiSelect: NcCellMultiSelect,
+ cellNumber: NcCellNumber,
+ cellPercent: NcCellPercent,
+ cellPhone: NcCellPhone,
+ cellQrCode: NcCellQrCode,
+ cellRating: NcCellRating,
+ cellRollup: NcCellRollup,
+ cellSingleSelect: NcCellSingleSelect,
+ cellText: NcCellText,
+ cellTime: NcCellTime,
+ cellUrl: NcCellUrl,
+ cellUser: NcCellUser,
+ cellSystemDate: NcCellSystemDate,
+ cellSystemKey: NcCellSystemKey,
+ cellSystemUser: NcCellSystemUser,
+ cellSystemText: NcCellSystemText,
+ cellAttachment: NcCellAttachment,
+
sort: Sort,
group: Group,
filter: Filter,
@@ -489,11 +559,14 @@ export const iconMap = {
ncEdit: NcEdit,
ncArrowUp: NcArrowUp,
ncArrowDown: NcArrowDown,
+ ncArrowLeft: NcArrowLeft,
+ ncArrowRight: NcArrowRight,
underline: NcUnderline,
bold: NcBold,
italic: NcItalic,
phoneCall: NcPhoneCall,
crop: NcCrop,
+ circleCheck2: NcCircleCheck,
}
export const getMdiIcon = (type: string): any => {
diff --git a/packages/nc-gui/utils/urlUtils.ts b/packages/nc-gui/utils/urlUtils.ts
index d0c098b460..b1ab1b826f 100644
--- a/packages/nc-gui/utils/urlUtils.ts
+++ b/packages/nc-gui/utils/urlUtils.ts
@@ -35,3 +35,11 @@ export const openLink = (path: string, baseURL?: string, target = '_blank') => {
const url = new URL(path, baseURL)
window.open(url.href, target, 'noopener,noreferrer')
}
+
+export const navigateToBlankTargetOpenOption = {
+ target: '_blank',
+ windowFeatures: {
+ noopener: true,
+ noreferrer: true,
+ },
+}
diff --git a/packages/noco-docs/docs/060.table-operations/020.field-operations.md b/packages/noco-docs/docs/060.table-operations/020.field-operations.md
index aafbc86e94..3f6759d0c0 100644
--- a/packages/noco-docs/docs/060.table-operations/020.field-operations.md
+++ b/packages/noco-docs/docs/060.table-operations/020.field-operations.md
@@ -34,11 +34,9 @@ For Gallery View & Kanban View, you can change the cover field by clicking on th
![Change cover field](/img/v2/table-operations/change-cover-image.png)
### Related topics
-- [Filter](filter)
-- [Sort](sort)
-- [GroupBy](group-by)
-- [Row height](row-height)
-- [Quick Search](search)
-- [Download](download)
-
-
+- [Filter](/table-operations/filter)
+- [Sort](/table-operations/sort)
+- [GroupBy](/table-operations/group-by)
+- [Row Height](/table-operations/row-height)
+- [Quick Search](/table-operations/search)
+- [Download](/table-operations/download)
\ No newline at end of file
diff --git a/packages/noco-docs/docs/060.table-operations/030.filter.md b/packages/noco-docs/docs/060.table-operations/030.filter.md
index 9570c1acfe..8462954af8 100644
--- a/packages/noco-docs/docs/060.table-operations/030.filter.md
+++ b/packages/noco-docs/docs/060.table-operations/030.filter.md
@@ -50,9 +50,9 @@ NocoDB currently supports various types of filters for corresponding fields. Ple
[Filter Matrix](https://docs.google.com/spreadsheets/d/e/2PACX-1vTpCNKtA-szaXUKJEO5uuSIRnzUOK793MKnyBz9m2rQcwn7HqK19jPHeER-IIRWH9X56J78wfxXZuuv/pubhtml?gid=427284630&single=true&widget=true&headers=false)
### Related topics
-- [Field operations](field-operations)
-- [Sort](sort)
-- [GroupBy](group-by)
-- [Row height](row-height)
-- [Quick Search](search)
-- [Download](download)
\ No newline at end of file
+- [Field Operations](/table-operations/field-operations)
+- [Sort](/table-operations/sort)
+- [GroupBy](/table-operations/group-by)
+- [Row Height](/table-operations/row-height)
+- [Quick Search](/table-operations/search)
+- [Download](/table-operations/download)
\ No newline at end of file
diff --git a/packages/noco-docs/docs/060.table-operations/040.sort.md b/packages/noco-docs/docs/060.table-operations/040.sort.md
index 223956ad21..5fc5d9bb3a 100644
--- a/packages/noco-docs/docs/060.table-operations/040.sort.md
+++ b/packages/noco-docs/docs/060.table-operations/040.sort.md
@@ -34,9 +34,9 @@ Field configured at the top will be used for the first-level sorting, followed b
![Delete Sorting](/img/v2/table-operations/sort-4.png)
### Related topics
-- [Field operations](field-operations)
-- [Filter](filter)
-- [GroupBy](group-by)
-- [record height](row-height)
-- [Quick Search](search)
-- [Download](download)
+- [Field Operations](/table-operations/field-operations)
+- [Filter](/table-operations/filter)
+- [GroupBy](/table-operations/group-by)
+- [Row Height](/table-operations/row-height)
+- [Quick Search](/table-operations/search)
+- [Download](/table-operations/download)
\ No newline at end of file
diff --git a/packages/noco-docs/docs/060.table-operations/050.group-by.md b/packages/noco-docs/docs/060.table-operations/050.group-by.md
index 517deaf604..04cd56ccf9 100644
--- a/packages/noco-docs/docs/060.table-operations/050.group-by.md
+++ b/packages/noco-docs/docs/060.table-operations/050.group-by.md
@@ -39,9 +39,9 @@ To disable `Group By` and return to the standard spreadsheet grid view, you must
![Group By](/img/v2/table-operations/group-by-delete.png)
### Related topics
-- [Field operations](field-operations)
-- [Filter](filter)
-- [Sort](sort)
-- [Row height](row-height)
-- [Quick Search](search)
-- [Download](download)
\ No newline at end of file
+- [Field Operations](/table-operations/field-operations)
+- [Filter](/table-operations/filter)
+- [Sort](/table-operations/sort)
+- [Row Height](/table-operations/row-height)
+- [Quick Search](/table-operations/search)
+- [Download](/table-operations/download)
\ No newline at end of file
diff --git a/packages/noco-docs/docs/060.table-operations/060.row-height.md b/packages/noco-docs/docs/060.table-operations/060.row-height.md
index b120659135..60114320e4 100644
--- a/packages/noco-docs/docs/060.table-operations/060.row-height.md
+++ b/packages/noco-docs/docs/060.table-operations/060.row-height.md
@@ -24,9 +24,9 @@ NocoDB offers users the flexibility to adjust the display height of records with
![Extra](/img/v2/table-operations/row-height-5.png)
### Related topics
-- [Field operations](field-operations)
-- [Filter](filter)
-- [Sort](sort)
-- [GroupBy](group-by)
-- [Quick Search](search)
-- [Download](download)
+- [Field Operations](/table-operations/field-operations)
+- [Filter](/table-operations/filter)
+- [Sort](/table-operations/sort)
+- [GroupBy](/table-operations/group-by)
+- [Quick Search](/table-operations/search)
+- [Download](/table-operations/download)
\ No newline at end of file
diff --git a/packages/noco-docs/docs/060.table-operations/070.search.md b/packages/noco-docs/docs/060.table-operations/070.search.md
index d6dfbb228f..0dc637135c 100644
--- a/packages/noco-docs/docs/060.table-operations/070.search.md
+++ b/packages/noco-docs/docs/060.table-operations/070.search.md
@@ -14,10 +14,9 @@ NocoDB offers a quick search feature that allows you to search for records by fi
![image](/img/v2/table-operations/table-search.png)
### Related topics
-- [Field operations](field-operations)
-- [Filter](filter)
-- [Sort](sort)
-- [GroupBy](group-by)
-- [record height](row-height)
-- [Download](download)
-
+- [Field Operations](/table-operations/field-operations)
+- [Filter](/table-operations/filter)
+- [Sort](/table-operations/sort)
+- [GroupBy](/table-operations/group-by)
+- [Row Height](/table-operations/row-height)
+- [Download](/table-operations/download)
\ No newline at end of file
diff --git a/packages/noco-docs/docs/060.table-operations/080.download.md b/packages/noco-docs/docs/060.table-operations/080.download.md
index 086a46cffe..c3c6aa4dc5 100644
--- a/packages/noco-docs/docs/060.table-operations/080.download.md
+++ b/packages/noco-docs/docs/060.table-operations/080.download.md
@@ -17,9 +17,9 @@ To export data from NocoDB, follow these steps:
![Export](/img/v2/table-operations/download.png)
### Related topics
-- [Field operations](field-operations)
-- [Filter](filter)
-- [Sort](sort)
-- [GroupBy](group-by)
-- [record height](row-height)
-- [Quick Search](search)
+- [Field Operations](/table-operations/field-operations)
+- [Filter](/table-operations/filter)
+- [Sort](/table-operations/sort)
+- [GroupBy](/table-operations/group-by)
+- [Row Height](/table-operations/row-height)
+- [Quick Search](/table-operations/search)
\ No newline at end of file
diff --git a/packages/noco-docs/docs/070.fields/040.field-types/060.formula/030.string-functions.md b/packages/noco-docs/docs/070.fields/040.field-types/060.formula/030.string-functions.md
index 5285182fd3..85e00d4aad 100644
--- a/packages/noco-docs/docs/070.fields/040.field-types/060.formula/030.string-functions.md
+++ b/packages/noco-docs/docs/070.fields/040.field-types/060.formula/030.string-functions.md
@@ -216,6 +216,27 @@ URL(text)
URL('https://www.example.com') => a clickable link for https://www.example.com
```
+## URLENCODE
+The URLENCODE function percent-encodes special characters in a string so it can
+be substituted as a query parameter into a URL.
+
+It is similar to JavaScript `encodeURIComponent()` function, except it encodes
+only characters that have a special meaning according to RFC 3986 section 2.2
+and also percent signs and spaces; other characters such as letters from
+non-Latin alphabets will not be encoded. Like `encodeURIComponent()`, it should
+be used only for encoding URL components, not whole URLs.
+
+#### Syntax
+```plaintext
+URLENCODE(text)
+```
+
+#### Sample
+```plaintext
+'https://example.com/q?param=' & URLENCODE('Hello, world')
+=> 'https://example.com/q?param=Hello%2C%20world'
+```
+
## Related Articles
- [Numeric and Logical Operators](015.operators.md)
diff --git a/packages/noco-docs/docusaurus.config.js b/packages/noco-docs/docusaurus.config.js
index 8689f75761..2003e5ead2 100644
--- a/packages/noco-docs/docusaurus.config.js
+++ b/packages/noco-docs/docusaurus.config.js
@@ -68,7 +68,7 @@ const config = {
sidebarPath: require.resolve("./sidebars.js"),
routeBasePath: "/",
editUrl:
- "https://github.com/nocodb/nocodb/tree/develop/packages/noco-docs/docs/",
+ "https://github.com/nocodb/nocodb/tree/develop/packages/noco-docs/",
lastVersion: "current",
versions: {
current: {
diff --git a/packages/noco-docs/package-lock.json b/packages/noco-docs/package-lock.json
index edd09af26d..baa85cb049 100644
--- a/packages/noco-docs/package-lock.json
+++ b/packages/noco-docs/package-lock.json
@@ -9,15 +9,15 @@
"version": "1.1.0",
"license": "AGPL-3.0-or-later",
"dependencies": {
- "@docusaurus/core": "3.0.1",
- "@docusaurus/plugin-client-redirects": "3.0.1",
- "@docusaurus/plugin-ideal-image": "3.0.1",
- "@docusaurus/plugin-sitemap": "3.0.1",
- "@docusaurus/preset-classic": "3.0.1",
+ "@docusaurus/core": "3.1.1",
+ "@docusaurus/plugin-client-redirects": "3.1.1",
+ "@docusaurus/plugin-ideal-image": "3.1.1",
+ "@docusaurus/plugin-sitemap": "3.1.1",
+ "@docusaurus/preset-classic": "3.1.1",
"@mdx-js/react": "^3.0.1",
"clsx": "^1.2.1",
"docusaurus-plugin-sass": "^0.2.5",
- "docusaurus-theme-search-typesense": "^0.14.1",
+ "docusaurus-theme-search-typesense": "^0.16.0",
"nc-analytics": "^0.0.9",
"plugin-image-zoom": "github:flexanalytics/plugin-image-zoom",
"prism-react-renderer": "^1.3.5",
@@ -196,12 +196,12 @@
}
},
"node_modules/@ampproject/remapping": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
- "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
+ "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
"dependencies": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
},
"engines": {
"node": ">=6.0.0"
@@ -2172,9 +2172,9 @@
}
},
"node_modules/@docusaurus/core": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.0.1.tgz",
- "integrity": "sha512-CXrLpOnW+dJdSv8M5FAJ3JBwXtL6mhUWxFA8aS0ozK6jBG/wgxERk5uvH28fCeFxOGbAT9v1e9dOMo1X2IEVhQ==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.1.1.tgz",
+ "integrity": "sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==",
"dependencies": {
"@babel/core": "^7.23.3",
"@babel/generator": "^7.23.3",
@@ -2186,13 +2186,13 @@
"@babel/runtime": "^7.22.6",
"@babel/runtime-corejs3": "^7.22.6",
"@babel/traverse": "^7.22.8",
- "@docusaurus/cssnano-preset": "3.0.1",
- "@docusaurus/logger": "3.0.1",
- "@docusaurus/mdx-loader": "3.0.1",
+ "@docusaurus/cssnano-preset": "3.1.1",
+ "@docusaurus/logger": "3.1.1",
+ "@docusaurus/mdx-loader": "3.1.1",
"@docusaurus/react-loadable": "5.5.2",
- "@docusaurus/utils": "3.0.1",
- "@docusaurus/utils-common": "3.0.1",
- "@docusaurus/utils-validation": "3.0.1",
+ "@docusaurus/utils": "3.1.1",
+ "@docusaurus/utils-common": "3.1.1",
+ "@docusaurus/utils-validation": "3.1.1",
"@slorber/static-site-generator-webpack-plugin": "^4.0.7",
"@svgr/webpack": "^6.5.1",
"autoprefixer": "^10.4.14",
@@ -2258,9 +2258,9 @@
}
},
"node_modules/@docusaurus/cssnano-preset": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.0.1.tgz",
- "integrity": "sha512-wjuXzkHMW+ig4BD6Ya1Yevx9UJadO4smNZCEljqBoQfIQrQskTswBs7lZ8InHP7mCt273a/y/rm36EZhqJhknQ==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.1.1.tgz",
+ "integrity": "sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==",
"dependencies": {
"cssnano-preset-advanced": "^5.3.10",
"postcss": "^8.4.26",
@@ -2272,9 +2272,9 @@
}
},
"node_modules/@docusaurus/logger": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.0.1.tgz",
- "integrity": "sha512-I5L6Nk8OJzkVA91O2uftmo71LBSxe1vmOn9AMR6JRCzYeEBrqneWMH02AqMvjJ2NpMiviO+t0CyPjyYV7nxCWQ==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.1.1.tgz",
+ "integrity": "sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==",
"dependencies": {
"chalk": "^4.1.2",
"tslib": "^2.6.0"
@@ -2284,11 +2284,11 @@
}
},
"node_modules/@docusaurus/lqip-loader": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/lqip-loader/-/lqip-loader-3.0.1.tgz",
- "integrity": "sha512-hFSu8ltYo0ZnWBWmjMhSprOr6nNKG01YdMDxH/hahBfyaNDCkZU4o7mQNgUW845lvYdp6bhjyW31WJwBjOnLqw==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/lqip-loader/-/lqip-loader-3.1.1.tgz",
+ "integrity": "sha512-s06lySAX5ghCiQe0+/GaMWcVvgkBQ6U8p182fW+JbdjxABS8ecx2in2AQJbvrwKNgiMjOhsXiaE6BmbQAmT6nw==",
"dependencies": {
- "@docusaurus/logger": "3.0.1",
+ "@docusaurus/logger": "3.1.1",
"file-loader": "^6.2.0",
"lodash": "^4.17.21",
"sharp": "^0.32.3",
@@ -2299,15 +2299,15 @@
}
},
"node_modules/@docusaurus/mdx-loader": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.0.1.tgz",
- "integrity": "sha512-ldnTmvnvlrONUq45oKESrpy+lXtbnTcTsFkOTIDswe5xx5iWJjt6eSa0f99ZaWlnm24mlojcIGoUWNCS53qVlQ==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.1.1.tgz",
+ "integrity": "sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==",
"dependencies": {
"@babel/parser": "^7.22.7",
"@babel/traverse": "^7.22.8",
- "@docusaurus/logger": "3.0.1",
- "@docusaurus/utils": "3.0.1",
- "@docusaurus/utils-validation": "3.0.1",
+ "@docusaurus/logger": "3.1.1",
+ "@docusaurus/utils": "3.1.1",
+ "@docusaurus/utils-validation": "3.1.1",
"@mdx-js/mdx": "^3.0.0",
"@slorber/remark-comment": "^1.0.0",
"escape-html": "^1.0.3",
@@ -2342,6 +2342,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.0.1.tgz",
"integrity": "sha512-DEHpeqUDsLynl3AhQQiO7AbC7/z/lBra34jTcdYuvp9eGm01pfH1wTVq8YqWZq6Jyx0BgcVl/VJqtE9StRd9Ag==",
+ "dev": true,
"dependencies": {
"@docusaurus/react-loadable": "5.5.2",
"@docusaurus/types": "3.0.1",
@@ -2358,15 +2359,15 @@
}
},
"node_modules/@docusaurus/plugin-client-redirects": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.0.1.tgz",
- "integrity": "sha512-CoZapnHbV3j5jsHCa/zmKaa8+H+oagHBgg91dN5I8/3kFit/xtZPfRaznvDX49cHg2nSoV74B3VMAT+bvCmzFQ==",
- "dependencies": {
- "@docusaurus/core": "3.0.1",
- "@docusaurus/logger": "3.0.1",
- "@docusaurus/utils": "3.0.1",
- "@docusaurus/utils-common": "3.0.1",
- "@docusaurus/utils-validation": "3.0.1",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.1.1.tgz",
+ "integrity": "sha512-J/1Z75XkO+BmUXHW17FrCIYZQ3b0IKaJECH6yCxW5RQ8NMMJ+SZCtPtx5oYoAd0VHersNiUu+ZAxfOqbsn1jKQ==",
+ "dependencies": {
+ "@docusaurus/core": "3.1.1",
+ "@docusaurus/logger": "3.1.1",
+ "@docusaurus/utils": "3.1.1",
+ "@docusaurus/utils-common": "3.1.1",
+ "@docusaurus/utils-validation": "3.1.1",
"eta": "^2.2.0",
"fs-extra": "^11.1.1",
"lodash": "^4.17.21",
@@ -2381,17 +2382,17 @@
}
},
"node_modules/@docusaurus/plugin-content-blog": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.0.1.tgz",
- "integrity": "sha512-cLOvtvAyaMQFLI8vm4j26svg3ktxMPSXpuUJ7EERKoGbfpJSsgtowNHcRsaBVmfuCsRSk1HZ/yHBsUkTmHFEsg==",
- "dependencies": {
- "@docusaurus/core": "3.0.1",
- "@docusaurus/logger": "3.0.1",
- "@docusaurus/mdx-loader": "3.0.1",
- "@docusaurus/types": "3.0.1",
- "@docusaurus/utils": "3.0.1",
- "@docusaurus/utils-common": "3.0.1",
- "@docusaurus/utils-validation": "3.0.1",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.1.1.tgz",
+ "integrity": "sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==",
+ "dependencies": {
+ "@docusaurus/core": "3.1.1",
+ "@docusaurus/logger": "3.1.1",
+ "@docusaurus/mdx-loader": "3.1.1",
+ "@docusaurus/types": "3.1.1",
+ "@docusaurus/utils": "3.1.1",
+ "@docusaurus/utils-common": "3.1.1",
+ "@docusaurus/utils-validation": "3.1.1",
"cheerio": "^1.0.0-rc.12",
"feed": "^4.2.2",
"fs-extra": "^11.1.1",
@@ -2411,18 +2412,38 @@
"react-dom": "^18.0.0"
}
},
- "node_modules/@docusaurus/plugin-content-docs": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.0.1.tgz",
- "integrity": "sha512-dRfAOA5Ivo+sdzzJGXEu33yAtvGg8dlZkvt/NEJ7nwi1F2j4LEdsxtfX2GKeETB2fP6XoGNSQnFXqa2NYGrHFg==",
+ "node_modules/@docusaurus/plugin-content-blog/node_modules/@docusaurus/types": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.1.1.tgz",
+ "integrity": "sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==",
"dependencies": {
- "@docusaurus/core": "3.0.1",
- "@docusaurus/logger": "3.0.1",
- "@docusaurus/mdx-loader": "3.0.1",
- "@docusaurus/module-type-aliases": "3.0.1",
- "@docusaurus/types": "3.0.1",
- "@docusaurus/utils": "3.0.1",
- "@docusaurus/utils-validation": "3.0.1",
+ "@mdx-js/mdx": "^3.0.0",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "commander": "^5.1.0",
+ "joi": "^17.9.2",
+ "react-helmet-async": "^1.3.0",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.88.1",
+ "webpack-merge": "^5.9.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@docusaurus/plugin-content-docs": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.1.1.tgz",
+ "integrity": "sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==",
+ "dependencies": {
+ "@docusaurus/core": "3.1.1",
+ "@docusaurus/logger": "3.1.1",
+ "@docusaurus/mdx-loader": "3.1.1",
+ "@docusaurus/module-type-aliases": "3.1.1",
+ "@docusaurus/types": "3.1.1",
+ "@docusaurus/utils": "3.1.1",
+ "@docusaurus/utils-validation": "3.1.1",
"@types/react-router-config": "^5.0.7",
"combine-promises": "^1.1.0",
"fs-extra": "^11.1.1",
@@ -2440,16 +2461,55 @@
"react-dom": "^18.0.0"
}
},
- "node_modules/@docusaurus/plugin-content-pages": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.0.1.tgz",
- "integrity": "sha512-oP7PoYizKAXyEttcvVzfX3OoBIXEmXTMzCdfmC4oSwjG4SPcJsRge3mmI6O8jcZBgUPjIzXD21bVGWEE1iu8gg==",
+ "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/module-type-aliases": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.1.1.tgz",
+ "integrity": "sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==",
"dependencies": {
- "@docusaurus/core": "3.0.1",
- "@docusaurus/mdx-loader": "3.0.1",
- "@docusaurus/types": "3.0.1",
- "@docusaurus/utils": "3.0.1",
- "@docusaurus/utils-validation": "3.0.1",
+ "@docusaurus/react-loadable": "5.5.2",
+ "@docusaurus/types": "3.1.1",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "@types/react-router-config": "*",
+ "@types/react-router-dom": "*",
+ "react-helmet-async": "*",
+ "react-loadable": "npm:@docusaurus/react-loadable@5.5.2"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-dom": "*"
+ }
+ },
+ "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/types": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.1.1.tgz",
+ "integrity": "sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==",
+ "dependencies": {
+ "@mdx-js/mdx": "^3.0.0",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "commander": "^5.1.0",
+ "joi": "^17.9.2",
+ "react-helmet-async": "^1.3.0",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.88.1",
+ "webpack-merge": "^5.9.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@docusaurus/plugin-content-pages": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.1.1.tgz",
+ "integrity": "sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==",
+ "dependencies": {
+ "@docusaurus/core": "3.1.1",
+ "@docusaurus/mdx-loader": "3.1.1",
+ "@docusaurus/types": "3.1.1",
+ "@docusaurus/utils": "3.1.1",
+ "@docusaurus/utils-validation": "3.1.1",
"fs-extra": "^11.1.1",
"tslib": "^2.6.0",
"webpack": "^5.88.1"
@@ -2462,14 +2522,34 @@
"react-dom": "^18.0.0"
}
},
+ "node_modules/@docusaurus/plugin-content-pages/node_modules/@docusaurus/types": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.1.1.tgz",
+ "integrity": "sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==",
+ "dependencies": {
+ "@mdx-js/mdx": "^3.0.0",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "commander": "^5.1.0",
+ "joi": "^17.9.2",
+ "react-helmet-async": "^1.3.0",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.88.1",
+ "webpack-merge": "^5.9.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
"node_modules/@docusaurus/plugin-debug": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.0.1.tgz",
- "integrity": "sha512-09dxZMdATky4qdsZGzhzlUvvC+ilQ2hKbYF+wez+cM2mGo4qHbv8+qKXqxq0CQZyimwlAOWQLoSozIXU0g0i7g==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.1.1.tgz",
+ "integrity": "sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==",
"dependencies": {
- "@docusaurus/core": "3.0.1",
- "@docusaurus/types": "3.0.1",
- "@docusaurus/utils": "3.0.1",
+ "@docusaurus/core": "3.1.1",
+ "@docusaurus/types": "3.1.1",
+ "@docusaurus/utils": "3.1.1",
"fs-extra": "^11.1.1",
"react-json-view-lite": "^1.2.0",
"tslib": "^2.6.0"
@@ -2482,14 +2562,34 @@
"react-dom": "^18.0.0"
}
},
+ "node_modules/@docusaurus/plugin-debug/node_modules/@docusaurus/types": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.1.1.tgz",
+ "integrity": "sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==",
+ "dependencies": {
+ "@mdx-js/mdx": "^3.0.0",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "commander": "^5.1.0",
+ "joi": "^17.9.2",
+ "react-helmet-async": "^1.3.0",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.88.1",
+ "webpack-merge": "^5.9.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
"node_modules/@docusaurus/plugin-google-analytics": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.0.1.tgz",
- "integrity": "sha512-jwseSz1E+g9rXQwDdr0ZdYNjn8leZBnKPjjQhMBEiwDoenL3JYFcNW0+p0sWoVF/f2z5t7HkKA+cYObrUh18gg==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.1.1.tgz",
+ "integrity": "sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==",
"dependencies": {
- "@docusaurus/core": "3.0.1",
- "@docusaurus/types": "3.0.1",
- "@docusaurus/utils-validation": "3.0.1",
+ "@docusaurus/core": "3.1.1",
+ "@docusaurus/types": "3.1.1",
+ "@docusaurus/utils-validation": "3.1.1",
"tslib": "^2.6.0"
},
"engines": {
@@ -2500,14 +2600,34 @@
"react-dom": "^18.0.0"
}
},
+ "node_modules/@docusaurus/plugin-google-analytics/node_modules/@docusaurus/types": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.1.1.tgz",
+ "integrity": "sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==",
+ "dependencies": {
+ "@mdx-js/mdx": "^3.0.0",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "commander": "^5.1.0",
+ "joi": "^17.9.2",
+ "react-helmet-async": "^1.3.0",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.88.1",
+ "webpack-merge": "^5.9.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
"node_modules/@docusaurus/plugin-google-gtag": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.0.1.tgz",
- "integrity": "sha512-UFTDvXniAWrajsulKUJ1DB6qplui1BlKLQZjX4F7qS/qfJ+qkKqSkhJ/F4VuGQ2JYeZstYb+KaUzUzvaPK1aRQ==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.1.1.tgz",
+ "integrity": "sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==",
"dependencies": {
- "@docusaurus/core": "3.0.1",
- "@docusaurus/types": "3.0.1",
- "@docusaurus/utils-validation": "3.0.1",
+ "@docusaurus/core": "3.1.1",
+ "@docusaurus/types": "3.1.1",
+ "@docusaurus/utils-validation": "3.1.1",
"@types/gtag.js": "^0.0.12",
"tslib": "^2.6.0"
},
@@ -2519,14 +2639,34 @@
"react-dom": "^18.0.0"
}
},
+ "node_modules/@docusaurus/plugin-google-gtag/node_modules/@docusaurus/types": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.1.1.tgz",
+ "integrity": "sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==",
+ "dependencies": {
+ "@mdx-js/mdx": "^3.0.0",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "commander": "^5.1.0",
+ "joi": "^17.9.2",
+ "react-helmet-async": "^1.3.0",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.88.1",
+ "webpack-merge": "^5.9.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
"node_modules/@docusaurus/plugin-google-tag-manager": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.0.1.tgz",
- "integrity": "sha512-IPFvuz83aFuheZcWpTlAdiiX1RqWIHM+OH8wS66JgwAKOiQMR3+nLywGjkLV4bp52x7nCnwhNk1rE85Cpy/CIw==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.1.1.tgz",
+ "integrity": "sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==",
"dependencies": {
- "@docusaurus/core": "3.0.1",
- "@docusaurus/types": "3.0.1",
- "@docusaurus/utils-validation": "3.0.1",
+ "@docusaurus/core": "3.1.1",
+ "@docusaurus/types": "3.1.1",
+ "@docusaurus/utils-validation": "3.1.1",
"tslib": "^2.6.0"
},
"engines": {
@@ -2537,17 +2677,37 @@
"react-dom": "^18.0.0"
}
},
+ "node_modules/@docusaurus/plugin-google-tag-manager/node_modules/@docusaurus/types": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.1.1.tgz",
+ "integrity": "sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==",
+ "dependencies": {
+ "@mdx-js/mdx": "^3.0.0",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "commander": "^5.1.0",
+ "joi": "^17.9.2",
+ "react-helmet-async": "^1.3.0",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.88.1",
+ "webpack-merge": "^5.9.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
"node_modules/@docusaurus/plugin-ideal-image": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-ideal-image/-/plugin-ideal-image-3.0.1.tgz",
- "integrity": "sha512-IvAUpEIz6v1/fVz6UTdQY12pYIE5geNFtsuKpsULpMaotwYf3Gs7acXjQog4qquKkc65yV5zuvMj8BZMHEwLyQ==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-ideal-image/-/plugin-ideal-image-3.1.1.tgz",
+ "integrity": "sha512-FYce5eV5/fWO4qIG8sKYdK3MTwusdxQML/M62IiltUNM/cqFkDrty1d+H+/I2PYX1s7AOoL3YomdJNP4vra/Tg==",
"dependencies": {
- "@docusaurus/core": "3.0.1",
- "@docusaurus/lqip-loader": "3.0.1",
+ "@docusaurus/core": "3.1.1",
+ "@docusaurus/lqip-loader": "3.1.1",
"@docusaurus/responsive-loader": "^1.7.0",
- "@docusaurus/theme-translations": "3.0.1",
- "@docusaurus/types": "3.0.1",
- "@docusaurus/utils-validation": "3.0.1",
+ "@docusaurus/theme-translations": "3.1.1",
+ "@docusaurus/types": "3.1.1",
+ "@docusaurus/utils-validation": "3.1.1",
"@slorber/react-ideal-image": "^0.0.12",
"react-waypoint": "^10.3.0",
"sharp": "^0.32.3",
@@ -2568,17 +2728,37 @@
}
}
},
- "node_modules/@docusaurus/plugin-sitemap": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.0.1.tgz",
- "integrity": "sha512-xARiWnjtVvoEniZudlCq5T9ifnhCu/GAZ5nA7XgyLfPcNpHQa241HZdsTlLtVcecEVVdllevBKOp7qknBBaMGw==",
+ "node_modules/@docusaurus/plugin-ideal-image/node_modules/@docusaurus/types": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.1.1.tgz",
+ "integrity": "sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==",
"dependencies": {
- "@docusaurus/core": "3.0.1",
- "@docusaurus/logger": "3.0.1",
- "@docusaurus/types": "3.0.1",
- "@docusaurus/utils": "3.0.1",
- "@docusaurus/utils-common": "3.0.1",
- "@docusaurus/utils-validation": "3.0.1",
+ "@mdx-js/mdx": "^3.0.0",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "commander": "^5.1.0",
+ "joi": "^17.9.2",
+ "react-helmet-async": "^1.3.0",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.88.1",
+ "webpack-merge": "^5.9.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@docusaurus/plugin-sitemap": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.1.1.tgz",
+ "integrity": "sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==",
+ "dependencies": {
+ "@docusaurus/core": "3.1.1",
+ "@docusaurus/logger": "3.1.1",
+ "@docusaurus/types": "3.1.1",
+ "@docusaurus/utils": "3.1.1",
+ "@docusaurus/utils-common": "3.1.1",
+ "@docusaurus/utils-validation": "3.1.1",
"fs-extra": "^11.1.1",
"sitemap": "^7.1.1",
"tslib": "^2.6.0"
@@ -2591,24 +2771,44 @@
"react-dom": "^18.0.0"
}
},
+ "node_modules/@docusaurus/plugin-sitemap/node_modules/@docusaurus/types": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.1.1.tgz",
+ "integrity": "sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==",
+ "dependencies": {
+ "@mdx-js/mdx": "^3.0.0",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "commander": "^5.1.0",
+ "joi": "^17.9.2",
+ "react-helmet-async": "^1.3.0",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.88.1",
+ "webpack-merge": "^5.9.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
"node_modules/@docusaurus/preset-classic": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.0.1.tgz",
- "integrity": "sha512-il9m9xZKKjoXn6h0cRcdnt6wce0Pv1y5t4xk2Wx7zBGhKG1idu4IFHtikHlD0QPuZ9fizpXspXcTzjL5FXc1Gw==",
- "dependencies": {
- "@docusaurus/core": "3.0.1",
- "@docusaurus/plugin-content-blog": "3.0.1",
- "@docusaurus/plugin-content-docs": "3.0.1",
- "@docusaurus/plugin-content-pages": "3.0.1",
- "@docusaurus/plugin-debug": "3.0.1",
- "@docusaurus/plugin-google-analytics": "3.0.1",
- "@docusaurus/plugin-google-gtag": "3.0.1",
- "@docusaurus/plugin-google-tag-manager": "3.0.1",
- "@docusaurus/plugin-sitemap": "3.0.1",
- "@docusaurus/theme-classic": "3.0.1",
- "@docusaurus/theme-common": "3.0.1",
- "@docusaurus/theme-search-algolia": "3.0.1",
- "@docusaurus/types": "3.0.1"
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.1.1.tgz",
+ "integrity": "sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==",
+ "dependencies": {
+ "@docusaurus/core": "3.1.1",
+ "@docusaurus/plugin-content-blog": "3.1.1",
+ "@docusaurus/plugin-content-docs": "3.1.1",
+ "@docusaurus/plugin-content-pages": "3.1.1",
+ "@docusaurus/plugin-debug": "3.1.1",
+ "@docusaurus/plugin-google-analytics": "3.1.1",
+ "@docusaurus/plugin-google-gtag": "3.1.1",
+ "@docusaurus/plugin-google-tag-manager": "3.1.1",
+ "@docusaurus/plugin-sitemap": "3.1.1",
+ "@docusaurus/theme-classic": "3.1.1",
+ "@docusaurus/theme-common": "3.1.1",
+ "@docusaurus/theme-search-algolia": "3.1.1",
+ "@docusaurus/types": "3.1.1"
},
"engines": {
"node": ">=18.0"
@@ -2618,6 +2818,26 @@
"react-dom": "^18.0.0"
}
},
+ "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/types": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.1.1.tgz",
+ "integrity": "sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==",
+ "dependencies": {
+ "@mdx-js/mdx": "^3.0.0",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "commander": "^5.1.0",
+ "joi": "^17.9.2",
+ "react-helmet-async": "^1.3.0",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.88.1",
+ "webpack-merge": "^5.9.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
"node_modules/@docusaurus/react-loadable": {
"version": "5.5.2",
"resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz",
@@ -2654,22 +2874,22 @@
}
},
"node_modules/@docusaurus/theme-classic": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.0.1.tgz",
- "integrity": "sha512-XD1FRXaJiDlmYaiHHdm27PNhhPboUah9rqIH0lMpBt5kYtsGjJzhqa27KuZvHLzOP2OEpqd2+GZ5b6YPq7Q05Q==",
- "dependencies": {
- "@docusaurus/core": "3.0.1",
- "@docusaurus/mdx-loader": "3.0.1",
- "@docusaurus/module-type-aliases": "3.0.1",
- "@docusaurus/plugin-content-blog": "3.0.1",
- "@docusaurus/plugin-content-docs": "3.0.1",
- "@docusaurus/plugin-content-pages": "3.0.1",
- "@docusaurus/theme-common": "3.0.1",
- "@docusaurus/theme-translations": "3.0.1",
- "@docusaurus/types": "3.0.1",
- "@docusaurus/utils": "3.0.1",
- "@docusaurus/utils-common": "3.0.1",
- "@docusaurus/utils-validation": "3.0.1",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.1.1.tgz",
+ "integrity": "sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==",
+ "dependencies": {
+ "@docusaurus/core": "3.1.1",
+ "@docusaurus/mdx-loader": "3.1.1",
+ "@docusaurus/module-type-aliases": "3.1.1",
+ "@docusaurus/plugin-content-blog": "3.1.1",
+ "@docusaurus/plugin-content-docs": "3.1.1",
+ "@docusaurus/plugin-content-pages": "3.1.1",
+ "@docusaurus/theme-common": "3.1.1",
+ "@docusaurus/theme-translations": "3.1.1",
+ "@docusaurus/types": "3.1.1",
+ "@docusaurus/utils": "3.1.1",
+ "@docusaurus/utils-common": "3.1.1",
+ "@docusaurus/utils-validation": "3.1.1",
"@mdx-js/react": "^3.0.0",
"clsx": "^2.0.0",
"copy-text-to-clipboard": "^3.2.0",
@@ -2692,6 +2912,45 @@
"react-dom": "^18.0.0"
}
},
+ "node_modules/@docusaurus/theme-classic/node_modules/@docusaurus/module-type-aliases": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.1.1.tgz",
+ "integrity": "sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==",
+ "dependencies": {
+ "@docusaurus/react-loadable": "5.5.2",
+ "@docusaurus/types": "3.1.1",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "@types/react-router-config": "*",
+ "@types/react-router-dom": "*",
+ "react-helmet-async": "*",
+ "react-loadable": "npm:@docusaurus/react-loadable@5.5.2"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-dom": "*"
+ }
+ },
+ "node_modules/@docusaurus/theme-classic/node_modules/@docusaurus/types": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.1.1.tgz",
+ "integrity": "sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==",
+ "dependencies": {
+ "@mdx-js/mdx": "^3.0.0",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "commander": "^5.1.0",
+ "joi": "^17.9.2",
+ "react-helmet-async": "^1.3.0",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.88.1",
+ "webpack-merge": "^5.9.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
"node_modules/@docusaurus/theme-classic/node_modules/clsx": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz",
@@ -2713,17 +2972,17 @@
}
},
"node_modules/@docusaurus/theme-common": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.0.1.tgz",
- "integrity": "sha512-cr9TOWXuIOL0PUfuXv6L5lPlTgaphKP+22NdVBOYah5jSq5XAAulJTjfe+IfLsEG4L7lJttLbhW7LXDFSAI7Ag==",
- "dependencies": {
- "@docusaurus/mdx-loader": "3.0.1",
- "@docusaurus/module-type-aliases": "3.0.1",
- "@docusaurus/plugin-content-blog": "3.0.1",
- "@docusaurus/plugin-content-docs": "3.0.1",
- "@docusaurus/plugin-content-pages": "3.0.1",
- "@docusaurus/utils": "3.0.1",
- "@docusaurus/utils-common": "3.0.1",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.1.1.tgz",
+ "integrity": "sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==",
+ "dependencies": {
+ "@docusaurus/mdx-loader": "3.1.1",
+ "@docusaurus/module-type-aliases": "3.1.1",
+ "@docusaurus/plugin-content-blog": "3.1.1",
+ "@docusaurus/plugin-content-docs": "3.1.1",
+ "@docusaurus/plugin-content-pages": "3.1.1",
+ "@docusaurus/utils": "3.1.1",
+ "@docusaurus/utils-common": "3.1.1",
"@types/history": "^4.7.11",
"@types/react": "*",
"@types/react-router-config": "*",
@@ -2741,6 +3000,45 @@
"react-dom": "^18.0.0"
}
},
+ "node_modules/@docusaurus/theme-common/node_modules/@docusaurus/module-type-aliases": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.1.1.tgz",
+ "integrity": "sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==",
+ "dependencies": {
+ "@docusaurus/react-loadable": "5.5.2",
+ "@docusaurus/types": "3.1.1",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "@types/react-router-config": "*",
+ "@types/react-router-dom": "*",
+ "react-helmet-async": "*",
+ "react-loadable": "npm:@docusaurus/react-loadable@5.5.2"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-dom": "*"
+ }
+ },
+ "node_modules/@docusaurus/theme-common/node_modules/@docusaurus/types": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.1.1.tgz",
+ "integrity": "sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==",
+ "dependencies": {
+ "@mdx-js/mdx": "^3.0.0",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "commander": "^5.1.0",
+ "joi": "^17.9.2",
+ "react-helmet-async": "^1.3.0",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.88.1",
+ "webpack-merge": "^5.9.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
"node_modules/@docusaurus/theme-common/node_modules/clsx": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz",
@@ -2762,18 +3060,18 @@
}
},
"node_modules/@docusaurus/theme-search-algolia": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.0.1.tgz",
- "integrity": "sha512-DDiPc0/xmKSEdwFkXNf1/vH1SzJPzuJBar8kMcBbDAZk/SAmo/4lf6GU2drou4Ae60lN2waix+jYWTWcJRahSA==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.1.1.tgz",
+ "integrity": "sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==",
"dependencies": {
"@docsearch/react": "^3.5.2",
- "@docusaurus/core": "3.0.1",
- "@docusaurus/logger": "3.0.1",
- "@docusaurus/plugin-content-docs": "3.0.1",
- "@docusaurus/theme-common": "3.0.1",
- "@docusaurus/theme-translations": "3.0.1",
- "@docusaurus/utils": "3.0.1",
- "@docusaurus/utils-validation": "3.0.1",
+ "@docusaurus/core": "3.1.1",
+ "@docusaurus/logger": "3.1.1",
+ "@docusaurus/plugin-content-docs": "3.1.1",
+ "@docusaurus/theme-common": "3.1.1",
+ "@docusaurus/theme-translations": "3.1.1",
+ "@docusaurus/utils": "3.1.1",
+ "@docusaurus/utils-validation": "3.1.1",
"algoliasearch": "^4.18.0",
"algoliasearch-helper": "^3.13.3",
"clsx": "^2.0.0",
@@ -2800,9 +3098,9 @@
}
},
"node_modules/@docusaurus/theme-translations": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.0.1.tgz",
- "integrity": "sha512-6UrbpzCTN6NIJnAtZ6Ne9492vmPVX+7Fsz4kmp+yor3KQwA1+MCzQP7ItDNkP38UmVLnvB/cYk/IvehCUqS3dg==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.1.1.tgz",
+ "integrity": "sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==",
"dependencies": {
"fs-extra": "^11.1.1",
"tslib": "^2.6.0"
@@ -2815,6 +3113,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.0.1.tgz",
"integrity": "sha512-plyX2iU1tcUsF46uQ01pAd4JhexR7n0iiQ5MSnBFX6M6NSJgDYdru/i1/YNPKOnQHBoXGLHv0dNT6OAlDWNjrg==",
+ "devOptional": true,
"dependencies": {
"@types/history": "^4.7.11",
"@types/react": "*",
@@ -2831,11 +3130,11 @@
}
},
"node_modules/@docusaurus/utils": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.0.1.tgz",
- "integrity": "sha512-TwZ33Am0q4IIbvjhUOs+zpjtD/mXNmLmEgeTGuRq01QzulLHuPhaBTTAC/DHu6kFx3wDgmgpAlaRuCHfTcXv8g==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.1.1.tgz",
+ "integrity": "sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==",
"dependencies": {
- "@docusaurus/logger": "3.0.1",
+ "@docusaurus/logger": "3.1.1",
"@svgr/webpack": "^6.5.1",
"escape-string-regexp": "^4.0.0",
"file-loader": "^6.2.0",
@@ -2866,9 +3165,9 @@
}
},
"node_modules/@docusaurus/utils-common": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.0.1.tgz",
- "integrity": "sha512-W0AxD6w6T8g6bNro8nBRWf7PeZ/nn7geEWM335qHU2DDDjHuV4UZjgUGP1AQsdcSikPrlIqTJJbKzer1lRSlIg==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.1.1.tgz",
+ "integrity": "sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==",
"dependencies": {
"tslib": "^2.6.0"
},
@@ -2885,12 +3184,12 @@
}
},
"node_modules/@docusaurus/utils-validation": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.0.1.tgz",
- "integrity": "sha512-ujTnqSfyGQ7/4iZdB4RRuHKY/Nwm58IIb+41s5tCXOv/MBU2wGAjOHq3U+AEyJ8aKQcHbxvTKJaRchNHYUVUQg==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.1.1.tgz",
+ "integrity": "sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==",
"dependencies": {
- "@docusaurus/logger": "3.0.1",
- "@docusaurus/utils": "3.0.1",
+ "@docusaurus/logger": "3.1.1",
+ "@docusaurus/utils": "3.1.1",
"joi": "^17.9.2",
"js-yaml": "^4.1.0",
"tslib": "^2.6.0"
@@ -2940,13 +3239,13 @@
}
},
"node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.4.tgz",
- "integrity": "sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw==",
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+ "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
"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"
@@ -2961,9 +3260,9 @@
}
},
"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==",
"engines": {
"node": ">=6.0.0"
}
@@ -2983,9 +3282,9 @@
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
},
"node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.23",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.23.tgz",
- "integrity": "sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg==",
+ "version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
@@ -3510,9 +3809,9 @@
}
},
"node_modules/@types/eslint": {
- "version": "8.56.4",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.4.tgz",
- "integrity": "sha512-lG1GLUnL5vuRBGb3MgWUWLdGMH2Hps+pERuyQXCfWozuGKdnhf9Pbg4pkcrVUHjKrU7Rl+GCZ/299ObBXZFAxg==",
+ "version": "8.56.5",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.5.tgz",
+ "integrity": "sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==",
"dependencies": {
"@types/estree": "*",
"@types/json-schema": "*"
@@ -3653,9 +3952,9 @@
"integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g=="
},
"node_modules/@types/node": {
- "version": "20.11.21",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.21.tgz",
- "integrity": "sha512-/ySDLGscFPNasfqStUuWWPfL78jompfIoVzLJPVVAHBh6rpG68+pI2Gk+fNLeI8/f1yPYL4s46EleVIc20F1Ow==",
+ "version": "20.11.24",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.24.tgz",
+ "integrity": "sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==",
"dependencies": {
"undici-types": "~5.26.4"
}
@@ -3694,9 +3993,9 @@
"integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="
},
"node_modules/@types/react": {
- "version": "18.2.60",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.60.tgz",
- "integrity": "sha512-dfiPj9+k20jJrLGOu9Nf6eqxm2EyJRrq2NvwOFsfbb7sFExZ9WELPs67UImHj3Ayxg8ruTtKtNnbjaF8olPq0A==",
+ "version": "18.2.62",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.62.tgz",
+ "integrity": "sha512-l3f57BbaEKP0xcFzf+5qRG8/PXykZiuVM6eEoPtqBPCp6dxO3HhDkLIgIyXPhPKNAeXn3KO2pEaNgzaEo/asaw==",
"dependencies": {
"@types/prop-types": "*",
"@types/scheduler": "*",
@@ -4107,9 +4406,9 @@
}
},
"node_modules/algoliasearch-helper": {
- "version": "3.16.2",
- "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.16.2.tgz",
- "integrity": "sha512-Yl/Gu5Cq4Z5s/AJ0jR37OPI1H3+z7PHz657ibyaXgMOaWvPlZ3OACN13N+7HCLPUlB0BN+8BtmrG/CqTilowBA==",
+ "version": "3.16.3",
+ "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.16.3.tgz",
+ "integrity": "sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==",
"dependencies": {
"@algolia/events": "^4.0.1"
},
@@ -4228,9 +4527,9 @@
}
},
"node_modules/autoprefixer": {
- "version": "10.4.17",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz",
- "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==",
+ "version": "10.4.18",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz",
+ "integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==",
"funding": [
{
"type": "opencollective",
@@ -4246,8 +4545,8 @@
}
],
"dependencies": {
- "browserslist": "^4.22.2",
- "caniuse-lite": "^1.0.30001578",
+ "browserslist": "^4.23.0",
+ "caniuse-lite": "^1.0.30001591",
"fraction.js": "^4.3.7",
"normalize-range": "^0.1.2",
"picocolors": "^1.0.0",
@@ -4359,15 +4658,15 @@
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"node_modules/bare-events": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.0.tgz",
- "integrity": "sha512-Yyyqff4PIFfSuthCZqLlPISTWHmnQxoPuAvkmgzsJEmG3CesdIv6Xweayl0JkCZJSB2yYIdJyEz97tpxNhgjbg==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.1.tgz",
+ "integrity": "sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==",
"optional": true
},
"node_modules/bare-fs": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.2.0.tgz",
- "integrity": "sha512-+VhW202E9eTVGkX7p+TNXtZC4RTzj9JfJW7PtfIbZ7mIQ/QT9uOafQTx7lx2n9ERmWsXvLHF4hStAFn4gl2mQw==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.2.1.tgz",
+ "integrity": "sha512-+CjmZANQDFZWy4PGbVdmALIwmt33aJg8qTkVjClU6X4WmZkTPBDxRHiBn7fpqEWEfF3AC2io++erpViAIQbSjg==",
"optional": true,
"dependencies": {
"bare-events": "^2.0.0",
@@ -4442,12 +4741,12 @@
}
},
"node_modules/body-parser": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
- "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
+ "version": "1.20.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
+ "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
"dependencies": {
"bytes": "3.1.2",
- "content-type": "~1.0.4",
+ "content-type": "~1.0.5",
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
@@ -4455,7 +4754,7 @@
"iconv-lite": "0.4.24",
"on-finished": "2.4.1",
"qs": "6.11.0",
- "raw-body": "2.5.1",
+ "raw-body": "2.5.2",
"type-is": "~1.6.18",
"unpipe": "1.0.0"
},
@@ -4712,9 +5011,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001591",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz",
- "integrity": "sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==",
+ "version": "1.0.30001593",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001593.tgz",
+ "integrity": "sha512-UWM1zlo3cZfkpBysd7AS+z+v007q9G1+fLTUU42rQnY6t2axoogPW/xol6T7juU5EUoOhML4WgBIdG+9yYqAjQ==",
"funding": [
{
"type": "opencollective",
@@ -5905,15 +6204,15 @@
}
},
"node_modules/docusaurus-theme-search-typesense": {
- "version": "0.14.1",
- "resolved": "https://registry.npmjs.org/docusaurus-theme-search-typesense/-/docusaurus-theme-search-typesense-0.14.1.tgz",
- "integrity": "sha512-Zdbs1qnVv5cqxzh5/zGbLQfX4UNQGo6wnRRkYTtCg1eMvK14kFn7oejCxvkvfmRZpeeWLTMBgKyV220Kv7kKFw==",
- "dependencies": {
- "@docusaurus/logger": "3.0.1",
- "@docusaurus/plugin-content-docs": "3.0.1",
- "@docusaurus/theme-translations": "3.0.1",
- "@docusaurus/utils": "3.0.1",
- "@docusaurus/utils-validation": "3.0.1",
+ "version": "0.16.0",
+ "resolved": "https://registry.npmjs.org/docusaurus-theme-search-typesense/-/docusaurus-theme-search-typesense-0.16.0.tgz",
+ "integrity": "sha512-XbBoXnzx0hzc9uipF07w7CYyu/YPn2tjm4NprO+izA9B9jxMi6vtzNgTYzR0keOWeALGrcoswpDNvYgjHjMfCQ==",
+ "dependencies": {
+ "@docusaurus/logger": "3.1.1",
+ "@docusaurus/plugin-content-docs": "3.1.1",
+ "@docusaurus/theme-translations": "3.1.1",
+ "@docusaurus/utils": "3.1.1",
+ "@docusaurus/utils-validation": "3.1.1",
"algoliasearch-helper": "^3.10.0",
"clsx": "^1.2.1",
"eta": "^2.0.0",
@@ -5928,8 +6227,8 @@
"node": ">=18"
},
"peerDependencies": {
- "@docusaurus/core": "3.0.1",
- "@docusaurus/theme-common": "3.0.1",
+ "@docusaurus/core": "3.1.1",
+ "@docusaurus/theme-common": "3.1.1",
"react": "^18.0.0",
"react-dom": "^18.0.0"
}
@@ -6053,9 +6352,9 @@
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"node_modules/electron-to-chromium": {
- "version": "1.4.685",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.685.tgz",
- "integrity": "sha512-yDYeobbTEe4TNooEzOQO6xFqg9XnAkVy2Lod1C1B2it8u47JNLYvl9nLDWBamqUakWB8Jc1hhS1uHUNYTNQdfw=="
+ "version": "1.4.692",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.692.tgz",
+ "integrity": "sha512-d5rZRka9n2Y3MkWRN74IoAsxR0HK3yaAt7T50e3iT9VZmCCQDT3geXUO5ZRMhDToa1pkCeQXuNo+0g+NfDOVPA=="
},
"node_modules/emoji-regex": {
"version": "9.2.2",
@@ -6410,13 +6709,13 @@
}
},
"node_modules/express": {
- "version": "4.18.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
- "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
+ "version": "4.18.3",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.3.tgz",
+ "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==",
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.20.1",
+ "body-parser": "1.20.2",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
"cookie": "0.5.0",
@@ -7544,9 +7843,9 @@
}
},
"node_modules/html-entities": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz",
- "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==",
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz",
+ "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==",
"funding": [
{
"type": "github",
@@ -12021,9 +12320,9 @@
}
},
"node_modules/prebuild-install": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz",
- "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==",
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz",
+ "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==",
"dependencies": {
"detect-libc": "^2.0.0",
"expand-template": "^2.0.3",
@@ -12267,9 +12566,9 @@
}
},
"node_modules/raw-body": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
- "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
"dependencies": {
"bytes": "3.1.2",
"http-errors": "2.0.0",
@@ -13602,11 +13901,11 @@
}
},
"node_modules/side-channel": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz",
- "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
"dependencies": {
- "call-bind": "^1.0.6",
+ "call-bind": "^1.0.7",
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.4",
"object-inspect": "^1.13.1"
diff --git a/packages/noco-docs/package.json b/packages/noco-docs/package.json
index 6b8ef33d63..1c33a99ef9 100644
--- a/packages/noco-docs/package.json
+++ b/packages/noco-docs/package.json
@@ -28,15 +28,15 @@
"typecheck": "tsc"
},
"dependencies": {
- "@docusaurus/core": "3.0.1",
- "@docusaurus/plugin-client-redirects": "3.0.1",
- "@docusaurus/plugin-ideal-image": "3.0.1",
- "@docusaurus/plugin-sitemap": "3.0.1",
- "@docusaurus/preset-classic": "3.0.1",
+ "@docusaurus/core": "3.1.1",
+ "@docusaurus/plugin-client-redirects": "3.1.1",
+ "@docusaurus/plugin-ideal-image": "3.1.1",
+ "@docusaurus/plugin-sitemap": "3.1.1",
+ "@docusaurus/preset-classic": "3.1.1",
"@mdx-js/react": "^3.0.1",
"clsx": "^1.2.1",
"docusaurus-plugin-sass": "^0.2.5",
- "docusaurus-theme-search-typesense": "^0.14.1",
+ "docusaurus-theme-search-typesense": "^0.16.0",
"nc-analytics": "^0.0.9",
"plugin-image-zoom": "github:flexanalytics/plugin-image-zoom",
"prism-react-renderer": "^1.3.5",
@@ -45,7 +45,7 @@
"sass": "^1.71.1"
},
"devDependencies": {
- "@docusaurus/module-type-aliases": "3.0.1",
+ "@docusaurus/module-type-aliases": "3.1.1",
"@tsconfig/docusaurus": "^1.0.7",
"typescript": "^4.9.5"
},
@@ -62,6 +62,6 @@
]
},
"engines": {
- "node": ">=16.14.2"
+ "node": ">=16.20.2"
}
}
diff --git a/packages/nocodb-sdk/src/lib/enums.ts b/packages/nocodb-sdk/src/lib/enums.ts
index 4136a17d82..dd77534f27 100644
--- a/packages/nocodb-sdk/src/lib/enums.ts
+++ b/packages/nocodb-sdk/src/lib/enums.ts
@@ -19,6 +19,7 @@ export enum WorkspaceUserRoles {
VIEWER = 'workspace-level-viewer',
EDITOR = 'workspace-level-editor',
COMMENTER = 'workspace-level-commenter',
+ NO_ACCESS = 'workspace-level-no-access',
}
export enum AppEvents {
@@ -167,6 +168,7 @@ export const RoleLabels = {
[WorkspaceUserRoles.EDITOR]: 'editor',
[WorkspaceUserRoles.COMMENTER]: 'commenter',
[WorkspaceUserRoles.VIEWER]: 'viewer',
+ [WorkspaceUserRoles.NO_ACCESS]: 'noaccess',
[ProjectRoles.OWNER]: 'owner',
[ProjectRoles.CREATOR]: 'creator',
[ProjectRoles.EDITOR]: 'editor',
@@ -184,6 +186,7 @@ export const RoleColors = {
[WorkspaceUserRoles.EDITOR]: 'green',
[WorkspaceUserRoles.COMMENTER]: 'orange',
[WorkspaceUserRoles.VIEWER]: 'yellow',
+ [WorkspaceUserRoles.NO_ACCESS]: 'red',
[ProjectRoles.OWNER]: 'purple',
[ProjectRoles.CREATOR]: 'blue',
[ProjectRoles.EDITOR]: 'green',
@@ -203,6 +206,7 @@ export const RoleDescriptions = {
[WorkspaceUserRoles.COMMENTER]:
'Can view and comment data in workspace bases',
[WorkspaceUserRoles.VIEWER]: 'Can view data in workspace bases',
+ [WorkspaceUserRoles.NO_ACCESS]: 'Cannot access this workspace',
[ProjectRoles.OWNER]: 'Full access to base',
[ProjectRoles.CREATOR]:
'Can create tables, views, setup webhook, invite collaborators and more',
@@ -222,6 +226,7 @@ export const RoleIcons = {
[WorkspaceUserRoles.EDITOR]: 'role_editor',
[WorkspaceUserRoles.COMMENTER]: 'role_commenter',
[WorkspaceUserRoles.VIEWER]: 'role_viewer',
+ [WorkspaceUserRoles.NO_ACCESS]: 'role_no_access',
[ProjectRoles.OWNER]: 'role_owner',
[ProjectRoles.CREATOR]: 'role_creator',
[ProjectRoles.EDITOR]: 'role_editor',
@@ -239,6 +244,7 @@ export const WorkspaceRolesToProjectRoles = {
[WorkspaceUserRoles.EDITOR]: ProjectRoles.EDITOR,
[WorkspaceUserRoles.COMMENTER]: ProjectRoles.COMMENTER,
[WorkspaceUserRoles.VIEWER]: ProjectRoles.VIEWER,
+ [WorkspaceUserRoles.NO_ACCESS]: ProjectRoles.NO_ACCESS,
};
export const OrderedWorkspaceRoles = [
@@ -247,6 +253,7 @@ export const OrderedWorkspaceRoles = [
WorkspaceUserRoles.EDITOR,
WorkspaceUserRoles.COMMENTER,
WorkspaceUserRoles.VIEWER,
+ WorkspaceUserRoles.NO_ACCESS,
];
export const OrderedOrgRoles = [
diff --git a/packages/nocodb-sdk/src/lib/formulaHelpers.ts b/packages/nocodb-sdk/src/lib/formulaHelpers.ts
index 0ba7e1dc54..b935faa93d 100644
--- a/packages/nocodb-sdk/src/lib/formulaHelpers.ts
+++ b/packages/nocodb-sdk/src/lib/formulaHelpers.ts
@@ -1056,6 +1056,22 @@ export const formulas: Record = {
examples: ['URL("https://github.com/nocodb/nocodb")', 'URL({column1})'],
returnType: FormulaDataTypes.STRING,
},
+ URLENCODE: {
+ docsUrl:
+ 'https://docs.nocodb.com/fields/field-types/formula/string-functions#urlencode',
+
+ validation: {
+ args: {
+ rqd: 1,
+ type: FormulaDataTypes.STRING,
+ },
+ },
+ description:
+ 'Percent-encode the input parameter for use in URLs',
+ syntax: 'URLENCODE(str)',
+ examples: ['URLENCODE("Hello, world") => "Hello%2C%20world"', 'URLENCODE({column1})'],
+ returnType: FormulaDataTypes.STRING,
+ },
WEEKDAY: {
docsUrl:
'https://docs.nocodb.com/fields/field-types/formula/date-functions#weekday',
diff --git a/packages/nocodb-sdk/src/lib/helperFunctions.ts b/packages/nocodb-sdk/src/lib/helperFunctions.ts
index 43a8d878ec..9831c4f9a6 100644
--- a/packages/nocodb-sdk/src/lib/helperFunctions.ts
+++ b/packages/nocodb-sdk/src/lib/helperFunctions.ts
@@ -70,7 +70,14 @@ const getAvailableRollupForUiType = (type: string) => {
'sumDistinct',
'avgDistinct',
];
- } else if ([UITypes.Date, UITypes.DateTime].includes(type as UITypes)) {
+ } else if (
+ [
+ UITypes.Date,
+ UITypes.DateTime,
+ UITypes.CreatedTime,
+ UITypes.LastModifiedTime,
+ ].includes(type as UITypes)
+ ) {
return ['count', 'min', 'max', 'countDistinct'];
} else if (
[
diff --git a/packages/nocodb/package.json b/packages/nocodb/package.json
index 177a008a47..f9fcf189a7 100644
--- a/packages/nocodb/package.json
+++ b/packages/nocodb/package.json
@@ -137,8 +137,8 @@
"ncp": "^2.0.0",
"nestjs-kafka": "^1.0.6",
"nestjs-throttler-storage-redis": "^0.4.2",
- "nocodb-sdk": "0.204.4",
- "nodemailer": "^6.9.11",
+ "nocodb-sdk": "workspace:^",
+ "nodemailer": "^6.9.12",
"object-hash": "^3.0.0",
"object-sizeof": "^2.6.4",
"os-locale": "^6.0.2",
@@ -167,12 +167,12 @@
"sqlite3": "^5.1.7",
"tedious": "^16.6.1",
"tinycolor2": "^1.6.0",
- "twilio": "^3.84.1",
+ "twilio": "^4.23.0",
"unique-names-generator": "^4.7.1",
"uuid": "^9.0.1",
"validator": "^13.11.0",
"xc-core-ts": "^0.1.0",
- "xlsx": "^0.18.5"
+ "xlsx": "https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz"
},
"devDependencies": {
"@nestjs/cli": "^10.3.2",
@@ -184,7 +184,7 @@
"@types/jest": "^29.5.12",
"@types/mocha": "^10.0.6",
"@types/multer": "^1.4.11",
- "@types/node": "20.11.24",
+ "@types/node": "20.11.25",
"@types/passport-google-oauth20": "^2.0.14",
"@types/passport-jwt": "^3.0.13",
"@types/supertest": "^2.0.16",
@@ -229,4 +229,4 @@
"coverageDirectory": "../coverage",
"testEnvironment": "node"
}
-}
\ No newline at end of file
+}
diff --git a/packages/nocodb/src/controllers/view-columns.controller.ts b/packages/nocodb/src/controllers/view-columns.controller.ts
index 6e5f0e9851..9647b342de 100644
--- a/packages/nocodb/src/controllers/view-columns.controller.ts
+++ b/packages/nocodb/src/controllers/view-columns.controller.ts
@@ -58,8 +58,8 @@ export class ViewColumnsController {
'/api/v1/db/meta/views/:viewId/columns/:columnId',
'/api/v2/meta/views/:viewId/columns/:columnId',
])
- @Acl('columnUpdate')
- async columnUpdate(
+ @Acl('viewColumnUpdate')
+ async viewColumnUpdate(
@Param('viewId') viewId: string,
@Param('columnId') columnId: string,
@Body() body: ViewColumnReqType,
diff --git a/packages/nocodb/src/db/BaseModelSqlv2.ts b/packages/nocodb/src/db/BaseModelSqlv2.ts
index 958e13bebb..53f69b6a7a 100644
--- a/packages/nocodb/src/db/BaseModelSqlv2.ts
+++ b/packages/nocodb/src/db/BaseModelSqlv2.ts
@@ -318,14 +318,14 @@ class BaseModelSqlv2 {
sortArr?: Sort[];
sort?: string | string[];
fieldsSet?: Set;
- calendarLimitOverride?: number;
+ limitOverride?: number;
} = {},
options: {
ignoreViewFilterAndSort?: boolean;
ignorePagination?: boolean;
validateFormula?: boolean;
throwErrorIfInvalidParams?: boolean;
- calendarLimitOverride?: number;
+ limitOverride?: number;
} = {},
): Promise {
const {
@@ -333,7 +333,7 @@ class BaseModelSqlv2 {
ignorePagination = false,
validateFormula = false,
throwErrorIfInvalidParams = false,
- calendarLimitOverride,
+ limitOverride,
} = options;
const { where, fields, ...rest } = this._getListArgs(args as any);
@@ -429,12 +429,22 @@ class BaseModelSqlv2 {
if (createdCol) qb.orderBy(createdCol.column_name);
}
- // For calendar View, if calendarLimitOverride is provided, use it as limit for the query
+ if (rest.pks) {
+ const pks = rest.pks.split(',');
+ qb.where((qb) => {
+ pks.forEach((pk) => {
+ qb.orWhere(_wherePk(this.model.primaryKeys, pk));
+ });
+ return qb;
+ });
+ }
+
+ // if limitOverride is provided, use it as limit for the query (for internal usage eg. calendar, export)
if (!ignorePagination) {
- if (!calendarLimitOverride) {
+ if (!limitOverride) {
applyPaginate(qb, rest);
} else {
- applyPaginate(qb, { ...rest, limit: calendarLimitOverride });
+ applyPaginate(qb, { ...rest, limit: limitOverride });
}
}
const proto = await this.getProto();
@@ -2124,6 +2134,7 @@ class BaseModelSqlv2 {
obj.offset = Math.max(+(args.offset || args.o) || 0, 0);
obj.fields = args.fields || args.f;
obj.sort = args.sort || args.s;
+ obj.pks = args.pks;
return obj;
}
@@ -6170,7 +6181,14 @@ function validateFilterComparison(uidt: UITypes, op: any, sub_op?: any) {
}
if (sub_op) {
- if (![UITypes.Date, UITypes.DateTime].includes(uidt)) {
+ if (
+ ![
+ UITypes.Date,
+ UITypes.DateTime,
+ UITypes.CreatedTime,
+ UITypes.LastModifiedTime,
+ ].includes(uidt)
+ ) {
NcError.badRequest(`'${sub_op}' is not supported for UI Type'${uidt}'.`);
}
if (!COMPARISON_SUB_OPS.includes(sub_op)) {
@@ -6226,7 +6244,7 @@ export function extractCondition(
if (aliasColObjMap[alias]) {
if (
- [UITypes.Date, UITypes.DateTime].includes(aliasColObjMap[alias].uidt)
+ [UITypes.Date, UITypes.DateTime, UITypes.LastModifiedTime, UITypes.CreatedTime].includes(aliasColObjMap[alias].uidt)
) {
value = value?.split(',');
// the first element would be sub_op
@@ -6392,6 +6410,7 @@ export function getListArgs(
obj.fields =
args?.fields || args?.f || (ignoreAssigningWildcardSelect ? null : '*');
obj.sort = args?.sort || args?.s || model.primaryKey?.[0]?.column_name;
+ obj.pks = args?.pks;
return obj;
}
diff --git a/packages/nocodb/src/db/conditionV2.ts b/packages/nocodb/src/db/conditionV2.ts
index 9613310c07..da0383a889 100644
--- a/packages/nocodb/src/db/conditionV2.ts
+++ b/packages/nocodb/src/db/conditionV2.ts
@@ -902,7 +902,8 @@ const parseConditionV2 = async (
// If the column is a datetime and the client is pg and the value has a timezone offset at the end
// then we need to convert the value to timestamptz before comparing
if (
- column.uidt === UITypes.DateTime &&
+ (column.uidt === UITypes.DateTime ||
+ column.uidt === UITypes.Date) &&
val.match(/[+-]\d{2}:\d{2}$/)
) {
if (qb.client.config.client === 'pg') {
@@ -944,7 +945,8 @@ const parseConditionV2 = async (
// If the column is a datetime and the client is pg and the value has a timezone offset at the end
// then we need to convert the value to timestamptz before comparing
if (
- column.uidt === UITypes.DateTime &&
+ (column.uidt === UITypes.DateTime ||
+ column.uidt === UITypes.Date) &&
val.match(/[+-]\d{2}:\d{2}$/)
) {
if (qb.client.config.client === 'pg') {
@@ -985,7 +987,8 @@ const parseConditionV2 = async (
// If the column is a datetime and the client is pg and the value has a timezone offset at the end
// then we need to convert the value to timestamptz before comparing
if (
- column.uidt === UITypes.DateTime &&
+ (column.uidt === UITypes.DateTime ||
+ column.uidt === UITypes.Date) &&
val.match(/[+-]\d{2}:\d{2}$/)
) {
if (qb.client.config.client === 'pg') {
@@ -1028,7 +1031,8 @@ const parseConditionV2 = async (
// If the column is a datetime and the client is pg and the value has a timezone offset at the end
// then we need to convert the value to timestamptz before comparing
if (
- column.uidt === UITypes.DateTime &&
+ (column.uidt === UITypes.DateTime ||
+ column.uidt === UITypes.Date) &&
val.match(/[+-]\d{2}:\d{2}$/)
) {
if (qb.client.config.client === 'pg') {
diff --git a/packages/nocodb/src/db/functionMappings/commonFns.ts b/packages/nocodb/src/db/functionMappings/commonFns.ts
index 3a1c267075..79b285acec 100644
--- a/packages/nocodb/src/db/functionMappings/commonFns.ts
+++ b/packages/nocodb/src/db/functionMappings/commonFns.ts
@@ -384,4 +384,15 @@ export default {
builder: knex.raw(`(${valueBuilder} IS NOT NULL)${colAlias}`),
};
},
+ URLENCODE: async ({ fn, knex, pt, colAlias }: MapFnArgs) => {
+ const specialCharacters = '% :/?#[]@$&+,;=';
+ let str = (await fn(pt.arguments[0])).builder;
+ // Pass the characters as bound parameters to avoid problems with ? sign.
+ for (const c of specialCharacters) {
+ str = `REPLACE(${str}, ?, '${encodeURIComponent(c)}')`;
+ }
+ return {
+ builder: knex.raw(`${str} ${colAlias}`, specialCharacters.split('')),
+ };
+ },
};
diff --git a/packages/nocodb/src/db/sql-data-mapper/lib/BaseModel.ts b/packages/nocodb/src/db/sql-data-mapper/lib/BaseModel.ts
index f0a7ccb85b..7eb712b5bb 100644
--- a/packages/nocodb/src/db/sql-data-mapper/lib/BaseModel.ts
+++ b/packages/nocodb/src/db/sql-data-mapper/lib/BaseModel.ts
@@ -1514,6 +1514,7 @@ export interface XcFilter {
fields?: string;
filterArr?: Filter[];
sortArr?: Sort[];
+ pks?: string;
}
export interface XcFilterWithAlias extends XcFilter {
diff --git a/packages/nocodb/src/helpers/PagedResponse.ts b/packages/nocodb/src/helpers/PagedResponse.ts
index 09d4e35f82..09696b11a6 100644
--- a/packages/nocodb/src/helpers/PagedResponse.ts
+++ b/packages/nocodb/src/helpers/PagedResponse.ts
@@ -11,6 +11,7 @@ export class PagedResponseImpl {
count?: number | string;
l?: number;
o?: number;
+ limitOverride?: number;
} = {},
additionalProps?: Record,
) {
diff --git a/packages/nocodb/src/helpers/extractLimitAndOffset.ts b/packages/nocodb/src/helpers/extractLimitAndOffset.ts
index d995d14bc0..42df63224a 100644
--- a/packages/nocodb/src/helpers/extractLimitAndOffset.ts
+++ b/packages/nocodb/src/helpers/extractLimitAndOffset.ts
@@ -15,6 +15,7 @@ export function extractLimitAndOffset(
offset?: number | string;
l?: number | string;
o?: number | string;
+ limitOverride?: number;
} = {},
) {
const obj: {
@@ -40,5 +41,10 @@ export function extractLimitAndOffset(
const offset = +(args.offset || args.o) || 0;
obj.offset = Math.max(Number.isInteger(offset) ? offset : 0, 0);
+ // override limit if provided
+ if (args.limitOverride) {
+ obj.limit = +args.limitOverride;
+ }
+
return obj;
}
diff --git a/packages/nocodb/src/helpers/webhookHelpers.ts b/packages/nocodb/src/helpers/webhookHelpers.ts
index 5b884486c1..6faba5155b 100644
--- a/packages/nocodb/src/helpers/webhookHelpers.ts
+++ b/packages/nocodb/src/helpers/webhookHelpers.ts
@@ -30,6 +30,7 @@ export function parseBody(template: string, data: any): string {
return Handlebars.compile(template, { noEscape: true })({
data,
+ event: data,
});
}
@@ -435,6 +436,7 @@ export function axiosRequestMake(_apiMeta, _user, data) {
}),
}
: {}),
+ timeout: 30 * 1000,
};
return req;
}
diff --git a/packages/nocodb/src/middlewares/extract-ids/extract-ids.middleware.ts b/packages/nocodb/src/middlewares/extract-ids/extract-ids.middleware.ts
index 12cdef3be0..22bbf1bb45 100644
--- a/packages/nocodb/src/middlewares/extract-ids/extract-ids.middleware.ts
+++ b/packages/nocodb/src/middlewares/extract-ids/extract-ids.middleware.ts
@@ -35,6 +35,7 @@ export const rolesLabel = {
[ProjectRoles.VIEWER]: 'Base Viewer',
[ProjectRoles.EDITOR]: 'Base Editor',
[ProjectRoles.COMMENTER]: 'Base Commenter',
+ [ProjectRoles.NO_ACCESS]: 'No Access',
};
export function getRolesLabels(
diff --git a/packages/nocodb/src/models/Base.ts b/packages/nocodb/src/models/Base.ts
index 7d59562d48..73f1b67fb5 100644
--- a/packages/nocodb/src/models/Base.ts
+++ b/packages/nocodb/src/models/Base.ts
@@ -62,6 +62,11 @@ export default class Base implements BaseType {
insertObj.order = await ncMeta.metaGetNextOrder(MetaTable.PROJECT, {});
}
+ // stringify meta
+ if (insertObj.meta) {
+ insertObj.meta = stringifyMetaProp(insertObj);
+ }
+
const { id: baseId } = await ncMeta.metaInsert2(
null,
null,
diff --git a/packages/nocodb/src/models/BaseUser.ts b/packages/nocodb/src/models/BaseUser.ts
index 2f7be5a8c4..12c6dceb50 100644
--- a/packages/nocodb/src/models/BaseUser.ts
+++ b/packages/nocodb/src/models/BaseUser.ts
@@ -26,6 +26,47 @@ export default class BaseUser {
return baseUser && new BaseUser(baseUser);
}
+ public static async bulkInsert(
+ baseUsers: Partial[],
+ ncMeta = Noco.ncMeta,
+ ) {
+ const insertObj = baseUsers.map((baseUser) =>
+ extractProps(baseUser, ['fk_user_id', 'base_id', 'roles']),
+ );
+
+ const bulkData = await ncMeta.bulkMetaInsert(
+ null,
+ null,
+ MetaTable.PROJECT_USERS,
+ insertObj,
+ true,
+ );
+
+ const uniqueFks: string[] = [
+ ...new Set(bulkData.map((d) => d.base_id)),
+ ] as string[];
+
+ for (const fk of uniqueFks) {
+ await NocoCache.deepDel(
+ `${CacheScope.BASE_USER}:${fk}:list`,
+ CacheDelDirection.PARENT_TO_CHILD,
+ );
+ }
+
+ for (const d of bulkData) {
+ await NocoCache.set(
+ `${CacheScope.BASE_USER}:${d.base_id}:${d.fk_user_id}`,
+ d,
+ );
+
+ await NocoCache.appendToList(
+ CacheScope.BASE_USER,
+ [d.base_id],
+ `${CacheScope.BASE_USER}:${d.base_id}:${d.fk_user_id}`,
+ );
+ }
+ }
+
public static async insert(
baseUser: Partial,
ncMeta = Noco.ncMeta,
diff --git a/packages/nocodb/src/models/FormView.ts b/packages/nocodb/src/models/FormView.ts
index cddb2308a5..14939f29d1 100644
--- a/packages/nocodb/src/models/FormView.ts
+++ b/packages/nocodb/src/models/FormView.ts
@@ -1,8 +1,8 @@
import type {
- MetaType,
+ AttachmentResType,
BoolType,
FormType,
- AttachmentResType,
+ MetaType,
} from 'nocodb-sdk';
import { PresignedUrl } from '~/models';
import FormViewColumn from '~/models/FormViewColumn';
diff --git a/packages/nocodb/src/modules/jobs/jobs/export-import/export.service.ts b/packages/nocodb/src/modules/jobs/jobs/export-import/export.service.ts
index 15b383663c..d69c9275f2 100644
--- a/packages/nocodb/src/modules/jobs/jobs/export-import/export.service.ts
+++ b/packages/nocodb/src/modules/jobs/jobs/export-import/export.service.ts
@@ -13,6 +13,7 @@ import NcPluginMgrv2 from '~/helpers/NcPluginMgrv2';
import { NcError } from '~/helpers/catchError';
import { DatasService } from '~/services/datas.service';
import { Base, Hook, Model, Source } from '~/models';
+import { parseMetaProp } from '~/utils/modelUtils';
@Injectable()
export class ExportService {
@@ -220,10 +221,7 @@ export class ExportService {
break;
case 'meta':
if (view.type === ViewTypes.KANBAN) {
- const meta = JSON.parse(view.view.meta as string) as Record<
- string,
- any
- >;
+ const meta = parseMetaProp(view.view) as Record;
for (const [k, v] of Object.entries(meta)) {
const colId = idMap.get(k as string);
for (const op of v) {
@@ -613,6 +611,7 @@ export class ExportService {
query: { limit, offset, fields },
baseModel,
ignoreViewFilterAndSort: true,
+ limitOverride: limit,
})
.then((result) => {
try {
@@ -634,7 +633,9 @@ export class ExportService {
offset + limit,
limit,
fields,
- ).then(resolve);
+ )
+ .then(resolve)
+ .catch(reject);
}
} catch (e) {
reject(e);
@@ -663,6 +664,7 @@ export class ExportService {
query: { limit, offset, fields },
baseModel,
ignoreViewFilterAndSort: true,
+ limitOverride: limit,
})
.then((result) => {
try {
@@ -683,7 +685,9 @@ export class ExportService {
offset + limit,
limit,
fields,
- ).then(resolve);
+ )
+ .then(resolve)
+ .catch(reject);
}
} catch (e) {
reject(e);
diff --git a/packages/nocodb/src/schema/swagger-v2.json b/packages/nocodb/src/schema/swagger-v2.json
index 773b95d50f..48884eeac3 100644
--- a/packages/nocodb/src/schema/swagger-v2.json
+++ b/packages/nocodb/src/schema/swagger-v2.json
@@ -7688,6 +7688,14 @@
"in": "query",
"name": "filterArrJson",
"description": "Used for multiple filter queries"
+ },
+ {
+ "schema": {
+ "type": "string"
+ },
+ "in": "query",
+ "name": "pks",
+ "description": "Comma separated list of pks"
}
],
"description": "List all shared view rows"
@@ -16344,6 +16352,10 @@
"items": {
"type": "string"
}
+ },
+ "meta": {
+ "$ref": "#/components/schemas/Meta",
+ "description": "Base Meta"
}
},
"required": [
diff --git a/packages/nocodb/src/schema/swagger.json b/packages/nocodb/src/schema/swagger.json
index b028df4574..40abea1495 100644
--- a/packages/nocodb/src/schema/swagger.json
+++ b/packages/nocodb/src/schema/swagger.json
@@ -9051,6 +9051,14 @@
"name": "filterArrJson",
"description": "Used for multiple filter queries"
},
+ {
+ "schema": {
+ "type": "string"
+ },
+ "in": "query",
+ "name": "pks",
+ "description": "Comma separated list of pks"
+ },
{
"$ref": "#/components/parameters/xc-auth"
}
@@ -12772,6 +12780,14 @@
"in": "query",
"name": "filterArrJson",
"description": "Used for multiple filter queries"
+ },
+ {
+ "schema": {
+ "type": "string"
+ },
+ "in": "query",
+ "name": "pks",
+ "description": "Comma separated list of pks"
}
],
"description": "List all shared view rows"
@@ -16338,6 +16354,14 @@
"name": "filterArrJson",
"description": "Used for multiple filter queries"
},
+ {
+ "schema": {
+ "type": "string"
+ },
+ "in": "query",
+ "name": "pks",
+ "description": "Comma separated list of pks"
+ },
{
"$ref": "#/components/parameters/xc-auth"
}
@@ -22498,6 +22522,10 @@
"items": {
"type": "string"
}
+ },
+ "meta": {
+ "$ref": "#/components/schemas/Meta",
+ "description": "Base Meta"
}
},
"required": [
@@ -22577,7 +22605,6 @@
"type": "object",
"properties": {
"email": {
- "format": "email",
"type": "string",
"description": "Base User Email"
},
diff --git a/packages/nocodb/src/services/api-docs/swaggerV2/swagger-base.json b/packages/nocodb/src/services/api-docs/swaggerV2/swagger-base.json
index 5c43b8914a..a8ec46234e 100644
--- a/packages/nocodb/src/services/api-docs/swaggerV2/swagger-base.json
+++ b/packages/nocodb/src/services/api-docs/swaggerV2/swagger-base.json
@@ -9,8 +9,7 @@
"url": "http://localhost:8080"
}
],
- "paths": {
- },
+ "paths": {},
"components": {
"schemas": {
"Paginated": {
@@ -86,7 +85,7 @@
},
"responses": {
"BadRequest": {
- "description": "BadReqeust",
+ "description": "BadRequest",
"content": {
"application/json": {
"schema": {
@@ -125,4 +124,4 @@
"xcToken": []
}
]
-}
+}
\ No newline at end of file
diff --git a/packages/nocodb/src/services/calendar-datas.service.ts b/packages/nocodb/src/services/calendar-datas.service.ts
index d34a7c637e..48480f7efa 100644
--- a/packages/nocodb/src/services/calendar-datas.service.ts
+++ b/packages/nocodb/src/services/calendar-datas.service.ts
@@ -53,9 +53,10 @@ export class CalendarDatasService {
return await this.datasService.dataList({
...param,
...query,
+ viewName: view.id,
baseName: model.base_id,
tableName: model.id,
- calendarLimitOverride: 3000, // TODO: make this configurable in env
+ limitOverride: 3000, // TODO: make this configurable in env
});
}
diff --git a/packages/nocodb/src/services/command-palette.service.ts b/packages/nocodb/src/services/command-palette.service.ts
index 7bf3ac2585..6076461a02 100644
--- a/packages/nocodb/src/services/command-palette.service.ts
+++ b/packages/nocodb/src/services/command-palette.service.ts
@@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common';
import { type UserType, ViewTypes } from 'nocodb-sdk';
import { Base } from '~/models';
import { TablesService } from '~/services/tables.service';
+import { deserializeJSON } from '~/utils/serialize';
const viewTypeAlias: Record = {
[ViewTypes.GRID]: 'grid',
@@ -28,6 +29,7 @@ export class CommandPaletteService {
id: `p-${base.id}`,
title: base.title,
icon: 'project',
+ iconColor: deserializeJSON(base.meta)?.iconColor,
section: 'Bases',
scopePayload: {
scope: `p-${base.id}`,
@@ -70,6 +72,7 @@ export class CommandPaletteService {
id: `p-${b.id}`,
title: b.title,
icon: 'project',
+ iconColor: deserializeJSON(b.meta)?.iconColor,
section: 'Bases',
});
}
diff --git a/packages/nocodb/src/services/datas.service.ts b/packages/nocodb/src/services/datas.service.ts
index 676ed3428a..dac753df80 100644
--- a/packages/nocodb/src/services/datas.service.ts
+++ b/packages/nocodb/src/services/datas.service.ts
@@ -23,7 +23,7 @@ export class DatasService {
query: any;
disableOptimization?: boolean;
ignorePagination?: boolean;
- calendarLimitOverride?: number;
+ limitOverride?: number;
throwErrorIfInvalidParams?: boolean;
},
) {
@@ -43,7 +43,7 @@ export class DatasService {
query: param.query,
throwErrorIfInvalidParams: true,
ignorePagination: param.ignorePagination,
- calendarLimitOverride: param.calendarLimitOverride,
+ limitOverride: param.limitOverride,
});
}
@@ -153,7 +153,7 @@ export class DatasService {
throwErrorIfInvalidParams?: boolean;
ignoreViewFilterAndSort?: boolean;
ignorePagination?: boolean;
- calendarLimitOverride?: number;
+ limitOverride?: number;
}) {
const { model, view, query = {}, ignoreViewFilterAndSort = false } = param;
@@ -193,7 +193,7 @@ export class DatasService {
ignoreViewFilterAndSort,
throwErrorIfInvalidParams: param.throwErrorIfInvalidParams,
ignorePagination: param.ignorePagination,
- calendarLimitOverride: param.calendarLimitOverride,
+ limitOverride: param.limitOverride,
}),
{},
listArgs,
@@ -210,6 +210,7 @@ export class DatasService {
]);
return new PagedResponseImpl(data, {
...query,
+ ...(param.limitOverride ? { limitOverride: param.limitOverride } : {}),
count,
});
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c4b3ab4f07..abf9f6299c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -7,6 +7,15 @@ settings:
overrides:
vue: 3.3.13
typescript: latest
+ ajv@<6.12.3: '>=6.12.3'
+ node.extend@<1.1.7: '>=1.1.7'
+ tough-cookie@<4.1.3: '>=4.1.3'
+ '@babel/traverse@<7.23.2': '>=7.23.2'
+ follow-redirects@<1.15.4: '>=1.15.4'
+ axios@>=0.8.1 <0.28.0: '>=0.28.0'
+ ip@<1.1.9: '>=1.1.9'
+ ip@=2.0.0: '>=2.0.1'
+ xml2js@<0.5.0: '>=0.5.0'
importers:
@@ -22,8 +31,8 @@ importers:
specifier: ^7.4.2
version: 7.4.2
xlsx:
- specifier: ^0.17.5
- version: 0.17.5
+ specifier: https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz
+ version: '@cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz'
packages/nc-gui:
dependencies:
@@ -36,6 +45,9 @@ importers:
'@iconify/vue':
specifier: ^4.1.1
version: 4.1.1(vue@3.3.13)
+ '@nuxt/image':
+ specifier: ^1.3.0
+ version: 1.3.0
'@pinia/nuxt':
specifier: ^0.5.1
version: 0.5.1(vue@3.3.13)
@@ -142,7 +154,7 @@ importers:
specifier: ^0.11.0
version: 0.11.0
nocodb-sdk:
- specifier: 0.204.4
+ specifier: workspace:^
version: link:../nocodb-sdk
papaparse:
specifier: ^5.4.1
@@ -223,8 +235,8 @@ importers:
specifier: ^4.1.0
version: 4.1.0(vue@3.3.13)
xlsx:
- specifier: ^0.18.5
- version: 0.18.5
+ specifier: https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz
+ version: '@cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz'
devDependencies:
'@antfu/eslint-config':
specifier: ^0.26.3
@@ -263,8 +275,8 @@ importers:
specifier: ^1.1.42
version: 1.1.42
'@iconify-json/lucide':
- specifier: ^1.1.171
- version: 1.1.171
+ specifier: ^1.1.172
+ version: 1.1.172
'@iconify-json/material-symbols':
specifier: ^1.1.74
version: 1.1.74
@@ -295,9 +307,6 @@ importers:
'@intlify/unplugin-vue-i18n':
specifier: ^0.13.0
version: 0.13.0(vue-i18n@9.9.1)
- '@nuxt/image':
- specifier: ^1.3.0
- version: 1.3.0
'@types/d3-scale':
specifier: ^4.0.8
version: 4.0.8
@@ -381,7 +390,7 @@ importers:
version: 6.0.4
nuxt:
specifier: ^3.10.3
- version: 3.10.3(eslint@8.56.0)(sass@1.70.0)(vite@4.5.2)
+ version: 3.10.3(eslint@8.56.0)(sass@1.71.1)(vite@4.5.2)
nuxt-windicss:
specifier: ^2.6.1
version: 2.6.1(vite@4.5.2)
@@ -389,8 +398,8 @@ importers:
specifier: ^2.8.8
version: 2.8.8
sass:
- specifier: ^1.70.0
- version: 1.70.0
+ specifier: ^1.71.1
+ version: 1.71.1
ts-loader:
specifier: ^9.5.1
version: 9.5.1(webpack@5.90.3)
@@ -408,7 +417,7 @@ importers:
version: 0.10.0(vite@4.5.2)
vitest:
specifier: ^1.2.2
- version: 1.2.2(@vitest/ui@0.34.7)(happy-dom@6.0.4)(sass@1.70.0)
+ version: 1.2.2(@vitest/ui@0.34.7)(happy-dom@6.0.4)(sass@1.71.1)
windicss:
specifier: ^3.5.6
version: 3.5.6
@@ -692,11 +701,11 @@ importers:
specifier: ^0.4.2
version: 0.4.2(@nestjs/common@10.3.3)(@nestjs/core@10.3.3)(@nestjs/throttler@5.1.2)(ioredis@5.3.2)(reflect-metadata@0.2.1)
nocodb-sdk:
- specifier: 0.204.4
+ specifier: workspace:^
version: link:../nocodb-sdk
nodemailer:
- specifier: ^6.9.11
- version: 6.9.11
+ specifier: ^6.9.12
+ version: 6.9.12
object-hash:
specifier: ^3.0.0
version: 3.0.0
@@ -782,8 +791,8 @@ importers:
specifier: ^1.6.0
version: 1.6.0
twilio:
- specifier: ^3.84.1
- version: 3.84.1(debug@4.3.4)
+ specifier: ^4.23.0
+ version: 4.23.0(debug@4.3.4)
unique-names-generator:
specifier: ^4.7.1
version: 4.7.1
@@ -797,8 +806,8 @@ importers:
specifier: ^0.1.0
version: 0.1.0
xlsx:
- specifier: ^0.18.5
- version: 0.18.5
+ specifier: https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz
+ version: '@cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz'
devDependencies:
'@nestjs/cli':
specifier: ^10.3.2
@@ -828,8 +837,8 @@ importers:
specifier: ^1.4.11
version: 1.4.11
'@types/node':
- specifier: 20.11.24
- version: 20.11.24
+ specifier: 20.11.25
+ version: 20.11.25
'@types/passport-google-oauth20':
specifier: ^2.0.14
version: 2.0.14
@@ -874,7 +883,7 @@ importers:
version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.56.0)(prettier@2.8.8)
jest:
specifier: 29.7.0
- version: 29.7.0(@types/node@20.11.24)(ts-node@10.9.2)
+ version: 29.7.0(@types/node@20.11.25)(ts-node@10.9.2)
mocha:
specifier: ^10.3.0
version: 10.3.0
@@ -892,13 +901,13 @@ importers:
version: 6.3.4
ts-jest:
specifier: 29.1.2
- version: 29.1.2(@babel/core@7.23.7)(jest@29.7.0)(typescript@5.3.2)
+ version: 29.1.2(@babel/core@7.23.9)(jest@29.7.0)(typescript@5.3.2)
ts-loader:
specifier: ^9.5.1
version: 9.5.1(typescript@5.3.2)(webpack@5.90.3)
ts-node:
specifier: ^10.9.2
- version: 10.9.2(@types/node@20.11.24)(typescript@5.3.2)
+ version: 10.9.2(@types/node@20.11.25)(typescript@5.3.2)
tsconfig-paths:
specifier: ^4.2.0
version: 4.2.0
@@ -913,7 +922,7 @@ importers:
dependencies:
axios:
specifier: ^1.6.7
- version: 1.6.7
+ version: 1.6.7(debug@3.2.7)
dayjs:
specifier: ^1.11.10
version: 1.11.10
@@ -962,7 +971,7 @@ importers:
version: 5.0.5
ts-jest:
specifier: ^29.1.2
- version: 29.1.2(@babel/core@7.23.7)(jest@29.7.0)(typescript@5.3.2)
+ version: 29.1.2(@babel/core@7.23.9)(jest@29.7.0)(typescript@5.3.2)
tsc-alias:
specifier: ^1.8.8
version: 1.8.8
@@ -1085,7 +1094,7 @@ packages:
resolution: {integrity: sha512-QjUN9EakpQ+sFYeMfBMecxVhgI4Vdg0k20h6PZDjZ9lqYNXjpaQVtBo7qiPYHh5kQeJEvdrzca6yeYuCP3TvZw==}
engines: {node: '>= 10.9.0', npm: '>= 6.2.0'}
dependencies:
- ajv: 6.10.2
+ ajv: 8.12.0
fast-json-stable-stringify: 2.0.0
magic-string: 0.25.3
rxjs: 6.4.0
@@ -2660,7 +2669,6 @@ packages:
/@babel/compat-data@7.23.5:
resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==}
engines: {node: '>=6.9.0'}
- dev: true
/@babel/core@7.23.3:
resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==}
@@ -2728,7 +2736,6 @@ packages:
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- dev: true
/@babel/generator@7.23.4:
resolution: {integrity: sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==}
@@ -2774,7 +2781,6 @@ packages:
browserslist: 4.23.0
lru-cache: 5.1.1
semver: 6.3.1
- dev: true
/@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.9):
resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==}
@@ -2863,7 +2869,6 @@ packages:
'@babel/helper-simple-access': 7.22.5
'@babel/helper-split-export-declaration': 7.22.6
'@babel/helper-validator-identifier': 7.22.20
- dev: true
/@babel/helper-optimise-call-expression@7.22.5:
resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
@@ -2923,7 +2928,6 @@ packages:
/@babel/helper-validator-option@7.23.5:
resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
engines: {node: '>=6.9.0'}
- dev: true
/@babel/helpers@7.23.2:
resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==}
@@ -2955,7 +2959,6 @@ packages:
'@babel/types': 7.23.9
transitivePeerDependencies:
- supports-color
- dev: true
/@babel/highlight@7.23.4:
resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==}
@@ -3217,7 +3220,6 @@ packages:
/@babel/standalone@7.23.10:
resolution: {integrity: sha512-xqWviI/pt1Zb/d+6ilWa5IDL2mkDzsBnlHbreqnfyP3/QB/ofQ1bNVcHj8YQX154Rf/xZKR6y0s1ydVF3nAS8g==}
engines: {node: '>=6.9.0'}
- dev: true
/@babel/template@7.22.15:
resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==}
@@ -3520,7 +3522,7 @@ packages:
requiresBuild: true
dependencies:
tslib: 2.6.2
- dev: true
+ dev: false
optional: true
/@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.20.1):
@@ -4213,7 +4215,7 @@ packages:
resolution: {integrity: sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ==}
engines: {node: '>=14'}
requiresBuild: true
- dev: true
+ dev: false
optional: true
/@fastify/busboy@2.1.0:
@@ -4520,8 +4522,8 @@ packages:
'@iconify/types': 2.0.0
dev: true
- /@iconify-json/lucide@1.1.171:
- resolution: {integrity: sha512-qYOXqnmYBHwH6yGVHOyNgLQ2WFz3UrZpBou37jFe1OWtTKbu/8fDixZuv/rBEhyQcX1mw+dFY+dguYNlGjYAmQ==}
+ /@iconify-json/lucide@1.1.172:
+ resolution: {integrity: sha512-D7O4Z/Sx9xYVtkx5EcNpe6B5btZwEH9Fxf2KQh9nwFgOGGXdTuOB2Sh0AHfR6K3eCQ63Uhvz/4MzaIyUoixPQw==}
dependencies:
'@iconify/types': 2.0.0
dev: true
@@ -4630,7 +4632,7 @@ packages:
requiresBuild: true
optionalDependencies:
'@img/sharp-libvips-darwin-arm64': 1.0.1
- dev: true
+ dev: false
optional: true
/@img/sharp-darwin-x64@0.33.2:
@@ -4641,7 +4643,7 @@ packages:
requiresBuild: true
optionalDependencies:
'@img/sharp-libvips-darwin-x64': 1.0.1
- dev: true
+ dev: false
optional: true
/@img/sharp-libvips-darwin-arm64@1.0.1:
@@ -4650,7 +4652,7 @@ packages:
cpu: [arm64]
os: [darwin]
requiresBuild: true
- dev: true
+ dev: false
optional: true
/@img/sharp-libvips-darwin-x64@1.0.1:
@@ -4659,7 +4661,7 @@ packages:
cpu: [x64]
os: [darwin]
requiresBuild: true
- dev: true
+ dev: false
optional: true
/@img/sharp-libvips-linux-arm64@1.0.1:
@@ -4668,7 +4670,7 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
- dev: true
+ dev: false
optional: true
/@img/sharp-libvips-linux-arm@1.0.1:
@@ -4677,7 +4679,7 @@ packages:
cpu: [arm]
os: [linux]
requiresBuild: true
- dev: true
+ dev: false
optional: true
/@img/sharp-libvips-linux-s390x@1.0.1:
@@ -4686,7 +4688,7 @@ packages:
cpu: [s390x]
os: [linux]
requiresBuild: true
- dev: true
+ dev: false
optional: true
/@img/sharp-libvips-linux-x64@1.0.1:
@@ -4695,7 +4697,7 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
- dev: true
+ dev: false
optional: true
/@img/sharp-libvips-linuxmusl-arm64@1.0.1:
@@ -4704,7 +4706,7 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
- dev: true
+ dev: false
optional: true
/@img/sharp-libvips-linuxmusl-x64@1.0.1:
@@ -4713,7 +4715,7 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
- dev: true
+ dev: false
optional: true
/@img/sharp-linux-arm64@0.33.2:
@@ -4724,7 +4726,7 @@ packages:
requiresBuild: true
optionalDependencies:
'@img/sharp-libvips-linux-arm64': 1.0.1
- dev: true
+ dev: false
optional: true
/@img/sharp-linux-arm@0.33.2:
@@ -4735,7 +4737,7 @@ packages:
requiresBuild: true
optionalDependencies:
'@img/sharp-libvips-linux-arm': 1.0.1
- dev: true
+ dev: false
optional: true
/@img/sharp-linux-s390x@0.33.2:
@@ -4746,7 +4748,7 @@ packages:
requiresBuild: true
optionalDependencies:
'@img/sharp-libvips-linux-s390x': 1.0.1
- dev: true
+ dev: false
optional: true
/@img/sharp-linux-x64@0.33.2:
@@ -4757,7 +4759,7 @@ packages:
requiresBuild: true
optionalDependencies:
'@img/sharp-libvips-linux-x64': 1.0.1
- dev: true
+ dev: false
optional: true
/@img/sharp-linuxmusl-arm64@0.33.2:
@@ -4768,7 +4770,7 @@ packages:
requiresBuild: true
optionalDependencies:
'@img/sharp-libvips-linuxmusl-arm64': 1.0.1
- dev: true
+ dev: false
optional: true
/@img/sharp-linuxmusl-x64@0.33.2:
@@ -4779,7 +4781,7 @@ packages:
requiresBuild: true
optionalDependencies:
'@img/sharp-libvips-linuxmusl-x64': 1.0.1
- dev: true
+ dev: false
optional: true
/@img/sharp-wasm32@0.33.2:
@@ -4789,7 +4791,7 @@ packages:
requiresBuild: true
dependencies:
'@emnapi/runtime': 0.45.0
- dev: true
+ dev: false
optional: true
/@img/sharp-win32-ia32@0.33.2:
@@ -4798,7 +4800,7 @@ packages:
cpu: [ia32]
os: [win32]
requiresBuild: true
- dev: true
+ dev: false
optional: true
/@img/sharp-win32-x64@0.33.2:
@@ -4807,7 +4809,7 @@ packages:
cpu: [x64]
os: [win32]
requiresBuild: true
- dev: true
+ dev: false
optional: true
/@interactjs/actions@1.10.18(@interactjs/core@1.10.18)(@interactjs/utils@1.10.18):
@@ -5018,7 +5020,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.6.3
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
chalk: 4.1.2
jest-message-util: 29.7.0
jest-util: 29.7.0
@@ -5039,14 +5041,14 @@ packages:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
ansi-escapes: 4.3.2
chalk: 4.1.2
ci-info: 3.8.0
exit: 0.1.2
graceful-fs: 4.2.11
jest-changed-files: 29.7.0
- jest-config: 29.7.0(@types/node@20.11.24)(ts-node@10.9.2)
+ jest-config: 29.7.0(@types/node@20.11.25)(ts-node@10.9.2)
jest-haste-map: 29.7.0
jest-message-util: 29.7.0
jest-regex-util: 29.6.3
@@ -5074,7 +5076,7 @@ packages:
dependencies:
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
jest-mock: 29.7.0
dev: true
@@ -5108,7 +5110,7 @@ packages:
dependencies:
'@jest/types': 29.6.3
'@sinonjs/fake-timers': 10.3.0
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
jest-message-util: 29.7.0
jest-mock: 29.7.0
jest-util: 29.7.0
@@ -5141,7 +5143,7 @@ packages:
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
'@jridgewell/trace-mapping': 0.3.20
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
chalk: 4.1.2
collect-v8-coverage: 1.0.2
exit: 0.1.2
@@ -5229,7 +5231,7 @@ packages:
'@jest/schemas': 29.6.3
'@types/istanbul-lib-coverage': 2.0.4
'@types/istanbul-reports': 3.0.1
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
'@types/yargs': 17.0.24
chalk: 4.1.2
dev: true
@@ -5568,7 +5570,7 @@ packages:
class-validator:
optional: true
dependencies:
- axios: 0.27.2(debug@4.3.4)
+ axios: 1.6.7(debug@4.3.4)
iterare: 1.2.1
reflect-metadata: 0.2.1
rxjs: 7.8.1
@@ -6109,8 +6111,8 @@ packages:
'@nuxt/kit': 3.10.3
'@nuxt/schema': 3.10.3
execa: 7.2.0
- nuxt: 3.10.3(eslint@8.56.0)(sass@1.70.0)(vite@4.5.2)
- vite: 4.5.2(sass@1.70.0)
+ nuxt: 3.10.3(eslint@8.56.0)(sass@1.71.1)(vite@4.5.2)
+ vite: 4.5.2(sass@1.71.1)
transitivePeerDependencies:
- rollup
- supports-color
@@ -6157,7 +6159,7 @@ packages:
launch-editor: 2.6.1
local-pkg: 0.5.0
magicast: 0.3.2
- nuxt: 3.10.3(eslint@8.56.0)(sass@1.70.0)(vite@4.5.2)
+ nuxt: 3.10.3(eslint@8.56.0)(sass@1.71.1)(vite@4.5.2)
nypm: 0.3.6
ohash: 1.1.3
pacote: 17.0.6
@@ -6170,7 +6172,7 @@ packages:
simple-git: 3.22.0
sirv: 2.0.4
unimport: 3.7.1(rollup@4.12.0)
- vite: 4.5.2(sass@1.70.0)
+ vite: 4.5.2(sass@1.71.1)
vite-plugin-inspect: 0.8.3(@nuxt/kit@3.10.3)(vite@4.5.2)
vite-plugin-vue-inspector: 4.0.2(vite@4.5.2)
which: 3.0.1
@@ -6214,7 +6216,7 @@ packages:
- idb-keyval
- rollup
- supports-color
- dev: true
+ dev: false
/@nuxt/kit@3.10.1:
resolution: {integrity: sha512-M9VRY0QGbG6lWOVqt69ZF96RLBUZVXyFpbBUwHnoHgjF9BXSX/MT/hrZcJicN4aPM2QRephGgsBd4U5wFmmn6g==}
@@ -6241,7 +6243,7 @@ packages:
transitivePeerDependencies:
- rollup
- supports-color
- dev: true
+ dev: false
/@nuxt/kit@3.10.2:
resolution: {integrity: sha512-Bua7taY9CIm7HCTpHXqFyM1xlZkrUl6HOqWrkGjLLQg9eeWAdKT7ppT0iEMiGnb9f+5T0uL5Ec3TvuR5J8P9WA==}
@@ -6368,7 +6370,7 @@ packages:
transitivePeerDependencies:
- rollup
- supports-color
- dev: true
+ dev: false
/@nuxt/schema@3.10.2:
resolution: {integrity: sha512-hHVnMlPKYR6AVK889gvcYVgewB1885/KPZW6uYhVWkeKGc63JzNCILq8ykTqG/t8LpG1ZJpwxo5KtDk9nIZrfA==}
@@ -6480,7 +6482,7 @@ packages:
/@nuxt/ui-templates@1.3.1:
resolution: {integrity: sha512-5gc02Pu1HycOVUWJ8aYsWeeXcSTPe8iX8+KIrhyEtEoOSkY0eMBuo0ssljB8wALuEmepv31DlYe5gpiRwkjESA==}
- /@nuxt/vite-builder@3.10.3(eslint@8.56.0)(sass@1.70.0)(vue@3.3.13):
+ /@nuxt/vite-builder@3.10.3(eslint@8.56.0)(sass@1.71.1)(vue@3.3.13):
resolution: {integrity: sha512-BqkbrYkEk1AVUJleofbqTRV+ltf2p1CDjGDK78zENPCgrSABlj4F4oK8rze8vmRY5qoH7kMZxgMa2dXVXCp6OA==}
engines: {node: ^14.18.0 || >=16.10.0}
peerDependencies:
@@ -6516,8 +6518,8 @@ packages:
ufo: 1.4.0
unenv: 1.9.0
unplugin: 1.7.1
- vite: 5.1.4(sass@1.70.0)
- vite-node: 1.3.1(sass@1.70.0)
+ vite: 5.1.4(sass@1.71.1)
+ vite-node: 1.3.1(sass@1.71.1)
vite-plugin-checker: 0.6.4(eslint@8.56.0)(vite@5.1.4)
vue: 3.3.13
vue-bundle-renderer: 2.0.0
@@ -6810,7 +6812,6 @@ packages:
cpu: [arm64]
os: [android]
requiresBuild: true
- dev: true
optional: true
/@parcel/watcher-darwin-arm64@2.3.0:
@@ -6828,7 +6829,6 @@ packages:
cpu: [arm64]
os: [darwin]
requiresBuild: true
- dev: true
optional: true
/@parcel/watcher-darwin-x64@2.3.0:
@@ -6846,7 +6846,6 @@ packages:
cpu: [x64]
os: [darwin]
requiresBuild: true
- dev: true
optional: true
/@parcel/watcher-freebsd-x64@2.3.0:
@@ -6864,7 +6863,6 @@ packages:
cpu: [x64]
os: [freebsd]
requiresBuild: true
- dev: true
optional: true
/@parcel/watcher-linux-arm-glibc@2.3.0:
@@ -6882,7 +6880,6 @@ packages:
cpu: [arm]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@parcel/watcher-linux-arm64-glibc@2.3.0:
@@ -6900,7 +6897,6 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@parcel/watcher-linux-arm64-musl@2.3.0:
@@ -6918,7 +6914,6 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@parcel/watcher-linux-x64-glibc@2.3.0:
@@ -6936,7 +6931,6 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@parcel/watcher-linux-x64-musl@2.3.0:
@@ -6954,7 +6948,6 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@parcel/watcher-wasm@2.3.0:
@@ -6977,7 +6970,6 @@ packages:
is-glob: 4.0.3
micromatch: 4.0.5
napi-wasm: 1.1.0
- dev: true
bundledDependencies:
- napi-wasm
@@ -6996,7 +6988,6 @@ packages:
cpu: [arm64]
os: [win32]
requiresBuild: true
- dev: true
optional: true
/@parcel/watcher-win32-ia32@2.3.0:
@@ -7014,7 +7005,6 @@ packages:
cpu: [ia32]
os: [win32]
requiresBuild: true
- dev: true
optional: true
/@parcel/watcher-win32-x64@2.3.0:
@@ -7032,7 +7022,6 @@ packages:
cpu: [x64]
os: [win32]
requiresBuild: true
- dev: true
optional: true
/@parcel/watcher@2.0.4:
@@ -7090,7 +7079,6 @@ packages:
'@parcel/watcher-win32-arm64': 2.4.0
'@parcel/watcher-win32-ia32': 2.4.0
'@parcel/watcher-win32-x64': 2.4.0
- dev: true
/@pinia/nuxt@0.5.1(vue@3.3.13):
resolution: {integrity: sha512-6wT6TqY81n+7/x3Yhf0yfaJVKkZU42AGqOR0T3+UvChcaOJhSma7OWPN64v+ptYlznat+fS1VTwNAcbi2lzHnw==}
@@ -7136,7 +7124,7 @@ packages:
resolution: {integrity: sha512-AtJbZv5Yy+vWX5v32DPTr+CW7AkSK8HJx52orDbrYt/9s4lGM2t4KKAmwaTQEH2HYr2HVh1mlqs54/S1s3WT1g==}
dependencies:
'@iconify/iconify': 2.1.2
- axios: 0.26.1(debug@4.3.4)
+ axios: 1.6.7(debug@4.3.4)
debug: 4.3.4(supports-color@5.5.0)
fast-glob: 3.3.2
fs-extra: 10.1.0
@@ -7597,7 +7585,6 @@ packages:
/@sindresorhus/merge-streams@2.2.1:
resolution: {integrity: sha512-255V7MMIKw6aQ43Wbqp9HZ+VHn6acddERTLiiLnlcPLU9PdTq9Aijl12oklAgUEblLWye+vHLzmqBx6f2TGcZw==}
engines: {node: '>=18'}
- dev: true
/@sinonjs/commons@3.0.0:
resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==}
@@ -8875,7 +8862,6 @@ packages:
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
requiresBuild: true
- dev: true
/@tsconfig/node10@1.0.9:
resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==}
@@ -8952,7 +8938,7 @@ packages:
resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==}
dependencies:
'@types/connect': 3.4.35
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
dev: true
/@types/caseless@0.12.5:
@@ -8966,13 +8952,13 @@ packages:
/@types/concat-stream@1.6.1:
resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==}
dependencies:
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
dev: true
/@types/connect@3.4.35:
resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==}
dependencies:
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
dev: true
/@types/cookie@0.4.1:
@@ -8985,7 +8971,7 @@ packages:
/@types/cors@2.8.13:
resolution: {integrity: sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==}
dependencies:
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
/@types/d3-scale@4.0.8:
resolution: {integrity: sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==}
@@ -9045,7 +9031,7 @@ packages:
/@types/express-serve-static-core@4.17.36:
resolution: {integrity: sha512-zbivROJ0ZqLAtMzgzIUC4oNqDG9iF0lSsAqpOD9kbs5xcIM3dTiyuHvBc7R8MtWBp3AAWGaovJa+wzWPjLYW7Q==}
dependencies:
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
'@types/qs': 6.9.7
'@types/range-parser': 1.2.4
'@types/send': 0.17.1
@@ -9067,7 +9053,7 @@ packages:
/@types/form-data@0.0.33:
resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==}
dependencies:
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
dev: true
/@types/geojson@7946.0.10:
@@ -9078,13 +9064,13 @@ packages:
resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==}
dependencies:
'@types/minimatch': 5.1.2
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
dev: true
/@types/graceful-fs@4.1.6:
resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==}
dependencies:
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
dev: true
/@types/http-errors@2.0.1:
@@ -9094,13 +9080,13 @@ packages:
/@types/http-proxy@1.17.14:
resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==}
dependencies:
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
dev: true
/@types/ioredis-mock@8.2.5:
resolution: {integrity: sha512-cZyuwC9LGtg7s5G9/w6rpy3IOZ6F/hFR0pQlWYZESMo1xQUYbDpa6haqB4grTePjsGzcB/YLBFCjqRunK5wieg==}
dependencies:
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
ioredis: 5.3.2
transitivePeerDependencies:
- supports-color
@@ -9144,13 +9130,13 @@ packages:
/@types/jsonwebtoken@9.0.2:
resolution: {integrity: sha512-drE6uz7QBKq1fYqqoFKTDRdFCPHd5TCub75BM+D+cMx7NU9hUz7SESLfC2fSCXVFMO5Yj8sOWHuGqPgjc+fz0Q==}
dependencies:
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
dev: true
/@types/jsonwebtoken@9.0.5:
resolution: {integrity: sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA==}
dependencies:
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
dev: false
/@types/leaflet.markercluster@1.5.4:
@@ -9204,7 +9190,7 @@ packages:
/@types/node-fetch@2.6.4:
resolution: {integrity: sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==}
dependencies:
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
form-data: 3.0.1
dev: false
@@ -9216,8 +9202,8 @@ packages:
resolution: {integrity: sha512-+k+57NVS9opgrEn5l9c0gvD1r6C+PtyhVE4BTnMMRwiEA8ZO8uFcs6Yy2sXIy0eC95ZurBtRSvhZiHXBysbl6w==}
dev: false
- /@types/node@20.11.24:
- resolution: {integrity: sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==}
+ /@types/node@20.11.25:
+ resolution: {integrity: sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw==}
dependencies:
undici-types: 5.26.5
@@ -9236,7 +9222,7 @@ packages:
/@types/oauth@0.9.1:
resolution: {integrity: sha512-a1iY62/a3yhZ7qH7cNUsxoI3U/0Fe9+RnuFrpTKr+0WVOzbKlSLojShCKe20aOD1Sppv+i8Zlq0pLDuTJnwS4A==}
dependencies:
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
dev: true
/@types/object.omit@3.0.3:
@@ -9314,7 +9300,7 @@ packages:
resolution: {integrity: sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==}
dependencies:
'@types/caseless': 0.12.5
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
'@types/tough-cookie': 4.0.5
form-data: 2.5.1
dev: false
@@ -9331,7 +9317,7 @@ packages:
resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==}
dependencies:
'@types/mime': 1.3.2
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
dev: true
/@types/serve-static@1.15.2:
@@ -9339,7 +9325,7 @@ packages:
dependencies:
'@types/http-errors': 2.0.1
'@types/mime': 3.0.1
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
dev: true
/@types/showdown@2.0.6:
@@ -9366,7 +9352,7 @@ packages:
resolution: {integrity: sha512-LOWgpacIV8GHhrsQU+QMZuomfqXiqzz3ILLkCtKx3Us6AmomFViuzKT9D693QTKgyut2oCytMG8/efOop+DB+w==}
dependencies:
'@types/cookiejar': 2.1.2
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
dev: true
/@types/supertest@2.0.16:
@@ -9398,7 +9384,7 @@ packages:
/@types/tunnel@0.0.3:
resolution: {integrity: sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==}
dependencies:
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
dev: false
/@types/turndown@5.0.4:
@@ -9438,7 +9424,7 @@ packages:
resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
requiresBuild: true
dependencies:
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
dev: false
optional: true
@@ -9923,7 +9909,7 @@ packages:
'@unocss/core': 0.58.5
'@unocss/reset': 0.58.5
'@unocss/vite': 0.58.5(vite@4.5.2)
- vite: 4.5.2(sass@1.70.0)
+ vite: 4.5.2(sass@1.71.1)
transitivePeerDependencies:
- rollup
dev: true
@@ -10146,7 +10132,7 @@ packages:
chokidar: 3.6.0
fast-glob: 3.3.2
magic-string: 0.30.7
- vite: 4.5.2(sass@1.70.0)
+ vite: 4.5.2(sass@1.71.1)
transitivePeerDependencies:
- rollup
dev: true
@@ -10201,7 +10187,7 @@ packages:
'@babel/core': 7.23.9
'@babel/plugin-transform-typescript': 7.23.4(@babel/core@7.23.9)
'@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.23.9)
- vite: 5.1.4(sass@1.70.0)
+ vite: 5.1.4(sass@1.71.1)
vue: 3.3.13
transitivePeerDependencies:
- supports-color
@@ -10214,7 +10200,7 @@ packages:
vite: ^5.0.0
vue: 3.3.13
dependencies:
- vite: 5.1.4(sass@1.70.0)
+ vite: 5.1.4(sass@1.71.1)
vue: 3.3.13
dev: true
@@ -10260,7 +10246,7 @@ packages:
pathe: 1.1.2
picocolors: 1.0.0
sirv: 2.0.3
- vitest: 1.2.2(@vitest/ui@0.34.7)(happy-dom@6.0.4)(sass@1.70.0)
+ vitest: 1.2.2(@vitest/ui@0.34.7)(happy-dom@6.0.4)(sass@1.71.1)
dev: true
/@vitest/utils@0.34.7:
@@ -10567,7 +10553,7 @@ packages:
resolution: {integrity: sha512-+u3RLPFedjASs5EKPc69Ge49WNgqeMfSxFn+qrQTzblPXZg6+EFzhjarS5edj2qAf6xQ93f95TUxRwKStXj/sQ==}
peerDependencies:
async-validator: '*'
- axios: '*'
+ axios: '>=0.28.0'
change-case: '*'
drauu: '*'
focus-trap: '*'
@@ -10628,7 +10614,7 @@ packages:
'@vueuse/core': 10.7.2(vue@3.3.13)
'@vueuse/metadata': 10.7.2
local-pkg: 0.5.0
- nuxt: 3.10.3(eslint@8.56.0)(sass@1.70.0)(vite@4.5.2)
+ nuxt: 3.10.3(eslint@8.56.0)(sass@1.71.1)(vite@4.5.2)
vue-demi: 0.14.7(vue@3.3.13)
transitivePeerDependencies:
- '@vue/composition-api'
@@ -10978,18 +10964,10 @@ packages:
resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==}
dev: true
- /adler-32@1.2.0:
- resolution: {integrity: sha512-/vUqU/UY4MVeFsg+SsK6c+/05RZXIHZMGJA+PX5JyWI0ZRcBpupnRuPLU/NXXoFwMYCPCoxIfElM2eS+DUXCqQ==}
- engines: {node: '>=0.8'}
- hasBin: true
- dependencies:
- exit-on-epipe: 1.0.1
- printj: 1.1.2
- dev: true
-
/adler-32@1.3.1:
resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==}
engines: {node: '>=0.8'}
+ dev: false
/agent-base@6.0.2:
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
@@ -11046,7 +11024,7 @@ packages:
/ajv-keywords@3.5.2(ajv@6.12.6):
resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
peerDependencies:
- ajv: ^6.9.1
+ ajv: '>=6.12.3'
dependencies:
ajv: 6.12.6
dev: true
@@ -11060,15 +11038,6 @@ packages:
fast-deep-equal: 3.1.3
dev: true
- /ajv@6.10.2:
- resolution: {integrity: sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==}
- dependencies:
- fast-deep-equal: 2.0.1
- fast-json-stable-stringify: 2.1.0
- json-schema-traverse: 0.4.1
- uri-js: 4.4.1
- dev: true
-
/ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
dependencies:
@@ -11291,7 +11260,7 @@ packages:
/array-buffer-byte-length@1.0.0:
resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.7
is-array-buffer: 3.0.2
/array-buffer-byte-length@1.0.1:
@@ -11318,10 +11287,10 @@ packages:
resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.7
define-properties: 1.2.0
es-abstract: 1.22.1
- get-intrinsic: 1.2.1
+ get-intrinsic: 1.2.4
is-string: 1.0.7
dev: true
@@ -11364,7 +11333,7 @@ packages:
resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.7
define-properties: 1.2.0
es-abstract: 1.22.1
es-shim-unscopables: 1.0.0
@@ -11384,7 +11353,7 @@ packages:
resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.7
define-properties: 1.2.0
es-abstract: 1.22.1
es-shim-unscopables: 1.0.0
@@ -11403,7 +11372,7 @@ packages:
/array.prototype.tosorted@1.1.3:
resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==}
dependencies:
- call-bind: 1.0.6
+ call-bind: 1.0.7
define-properties: 1.2.1
es-abstract: 1.22.4
es-errors: 1.3.0
@@ -11415,9 +11384,9 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
array-buffer-byte-length: 1.0.0
- call-bind: 1.0.2
+ call-bind: 1.0.7
define-properties: 1.2.0
- get-intrinsic: 1.2.1
+ get-intrinsic: 1.2.4
is-array-buffer: 3.0.2
is-shared-array-buffer: 1.0.2
@@ -11445,6 +11414,7 @@ packages:
/asap@2.0.6:
resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
+ dev: true
/asn1.js-rfc2560@5.0.1(asn1.js@5.4.1):
resolution: {integrity: sha512-1PrVg6kuBziDN3PGFmRk3QrjpKvP9h/Hv5yMrFZvC1kpzP6dQRzf5BpKstANqHBkaOUmTpakJWhicTATOA/SbA==}
@@ -11624,50 +11594,17 @@ packages:
is-retry-allowed: 2.2.0
dev: false
- /axios@0.24.0(debug@4.3.4):
- resolution: {integrity: sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==}
- dependencies:
- follow-redirects: 1.15.4(debug@4.3.4)
- transitivePeerDependencies:
- - debug
- dev: false
-
- /axios@0.26.1(debug@4.3.4):
- resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==}
- dependencies:
- follow-redirects: 1.15.4(debug@4.3.4)
- transitivePeerDependencies:
- - debug
-
- /axios@0.27.2(debug@3.2.7):
- resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==}
- dependencies:
- follow-redirects: 1.15.4(debug@3.2.7)
- form-data: 4.0.0
- transitivePeerDependencies:
- - debug
- dev: false
-
- /axios@0.27.2(debug@4.3.4):
- resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==}
- dependencies:
- follow-redirects: 1.15.4(debug@4.3.4)
- form-data: 4.0.0
- transitivePeerDependencies:
- - debug
- dev: false
-
/axios@1.6.2:
resolution: {integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==}
dependencies:
- follow-redirects: 1.15.2
+ follow-redirects: 1.15.4(debug@3.2.7)
form-data: 4.0.0
proxy-from-env: 1.1.0
transitivePeerDependencies:
- debug
dev: false
- /axios@1.6.7:
+ /axios@1.6.7(debug@3.2.7):
resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==}
dependencies:
follow-redirects: 1.15.4(debug@3.2.7)
@@ -11684,7 +11621,6 @@ packages:
proxy-from-env: 1.1.0
transitivePeerDependencies:
- debug
- dev: false
/b4a@1.6.4:
resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==}
@@ -11947,7 +11883,6 @@ packages:
/boolbase@1.0.0:
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
- dev: true
/bowser@2.11.0:
resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==}
@@ -12162,7 +12097,6 @@ packages:
perfect-debounce: 1.0.0
pkg-types: 1.0.3
rc9: 2.1.1
- dev: true
/c12@1.9.0:
resolution: {integrity: sha512-7KTCZXdIbOA2hLRQ+1KzJ15Qp9Wn58one74dkihMVp2H6EzKTa3OYBy0BSfS1CCcmxYyqeX8L02m40zjQ+dstg==}
@@ -12252,17 +12186,8 @@ packages:
/call-bind@1.0.2:
resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
dependencies:
- function-bind: 1.1.1
- get-intrinsic: 1.2.1
-
- /call-bind@1.0.6:
- resolution: {integrity: sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==}
- engines: {node: '>= 0.4'}
- dependencies:
- es-errors: 1.3.0
function-bind: 1.1.2
get-intrinsic: 1.2.4
- set-function-length: 1.2.1
dev: true
/call-bind@1.0.7:
@@ -12274,7 +12199,6 @@ packages:
function-bind: 1.1.2
get-intrinsic: 1.2.4
set-function-length: 1.2.1
- dev: true
/callforth@0.3.1:
resolution: {integrity: sha512-Q2zPfqnwoKsb1DTVCr4lmhe49wKNBsMmNlbudjleu3/co+Nw1pOqFHYJHrW3VZ253ou9AAr+xauQR0C55NPdzA==}
@@ -12327,6 +12251,7 @@ packages:
dependencies:
adler-32: 1.3.1
crc-32: 1.2.2
+ dev: false
/chai@4.4.1:
resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==}
@@ -12618,7 +12543,6 @@ packages:
execa: 8.0.1
is-wsl: 3.1.0
is64bit: 2.0.0
- dev: true
/cliui@6.0.0:
resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==}
@@ -12680,6 +12604,7 @@ packages:
/codepage@1.15.0:
resolution: {integrity: sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==}
engines: {node: '>=0.8'}
+ dev: false
/collect-v8-coverage@1.0.2:
resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
@@ -12708,6 +12633,7 @@ packages:
dependencies:
color-name: 1.1.4
simple-swizzle: 0.2.2
+ dev: false
/color-support@1.1.3:
resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
@@ -12727,7 +12653,7 @@ packages:
dependencies:
color-convert: 2.0.1
color-string: 1.9.1
- dev: true
+ dev: false
optional: true
/colord@2.9.3:
@@ -12794,7 +12720,6 @@ packages:
/commander@7.2.0:
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
engines: {node: '>= 10'}
- dev: true
/commander@8.3.0:
resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
@@ -13031,7 +12956,6 @@ packages:
/cookie-es@1.0.0:
resolution: {integrity: sha512-mWYvfOLrfEc996hlKcdABeIiPHUPC6DM2QYZdGGOvhOTbA3tjm2eBwqlJpoFdjC89NI4Qt6h0Pu06Mp+1Pj5OQ==}
- dev: true
/cookie-parser@1.4.6:
resolution: {integrity: sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==}
@@ -13130,7 +13054,7 @@ packages:
readable-stream: 3.6.2
dev: true
- /create-jest@29.7.0(@types/node@20.11.24)(ts-node@10.9.2):
+ /create-jest@29.7.0(@types/node@20.11.25)(ts-node@10.9.2):
resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
@@ -13139,7 +13063,7 @@ packages:
chalk: 4.1.2
exit: 0.1.2
graceful-fs: 4.2.11
- jest-config: 29.7.0(@types/node@20.11.24)(ts-node@10.9.2)
+ jest-config: 29.7.0(@types/node@20.11.25)(ts-node@10.9.2)
jest-util: 29.7.0
prompts: 2.4.2
transitivePeerDependencies:
@@ -13221,7 +13145,6 @@ packages:
/crossws@0.1.1:
resolution: {integrity: sha512-c9c/o7bS3OjsdpSkvexpka0JNlesBF2JU9B2V1yNsYGwRbAafxhJQ7VI9b48D5bpONz/oxbPGMzBojy9sXoQIQ==}
requiresBuild: true
- dev: true
/crossws@0.2.4:
resolution: {integrity: sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg==}
@@ -13356,7 +13279,6 @@ packages:
domhandler: 5.0.3
domutils: 3.1.0
nth-check: 2.1.1
- dev: true
/css-tree@2.2.1:
resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
@@ -13365,7 +13287,6 @@ packages:
dependencies:
mdn-data: 2.0.28
source-map-js: 1.0.2
- dev: true
/css-tree@2.3.1:
resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
@@ -13391,7 +13312,7 @@ packages:
/cssfilter@0.0.10:
resolution: {integrity: sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==}
requiresBuild: true
- dev: true
+ dev: false
optional: true
/cssnano-preset-default@6.0.3(postcss@8.4.35):
@@ -13458,7 +13379,6 @@ packages:
requiresBuild: true
dependencies:
css-tree: 2.2.1
- dev: true
/cssstyle@4.0.1:
resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==}
@@ -13777,16 +13697,6 @@ packages:
clone: 1.0.4
dev: true
- /define-data-property@1.1.2:
- resolution: {integrity: sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==}
- engines: {node: '>= 0.4'}
- dependencies:
- es-errors: 1.3.0
- get-intrinsic: 1.2.4
- gopd: 1.0.1
- has-property-descriptors: 1.0.1
- dev: true
-
/define-data-property@1.1.4:
resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
engines: {node: '>= 0.4'}
@@ -13794,7 +13704,6 @@ packages:
es-define-property: 1.0.0
es-errors: 1.3.0
gopd: 1.0.1
- dev: true
/define-lazy-prop@2.0.0:
resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
@@ -13809,15 +13718,15 @@ packages:
resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==}
engines: {node: '>= 0.4'}
dependencies:
- has-property-descriptors: 1.0.0
+ has-property-descriptors: 1.0.2
object-keys: 1.1.1
/define-properties@1.2.1:
resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
engines: {node: '>= 0.4'}
dependencies:
- define-data-property: 1.1.2
- has-property-descriptors: 1.0.1
+ define-data-property: 1.1.4
+ has-property-descriptors: 1.0.2
object-keys: 1.1.1
dev: true
@@ -13852,7 +13761,6 @@ packages:
/destr@2.0.3:
resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==}
- dev: true
/destroy@1.2.0:
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
@@ -13868,7 +13776,6 @@ packages:
engines: {node: '>=0.10'}
hasBin: true
requiresBuild: true
- dev: true
/detect-libc@2.0.2:
resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
@@ -13954,18 +13861,15 @@ packages:
domelementtype: 2.3.0
domhandler: 5.0.3
entities: 4.5.0
- dev: true
/domelementtype@2.3.0:
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
- dev: true
/domhandler@5.0.3:
resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
engines: {node: '>= 4'}
dependencies:
domelementtype: 2.3.0
- dev: true
/domino@2.1.6:
resolution: {integrity: sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==}
@@ -13985,7 +13889,6 @@ packages:
dom-serializer: 2.0.0
domelementtype: 2.3.0
domhandler: 5.0.3
- dev: true
/dot-prop@5.3.0:
resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
@@ -14018,7 +13921,6 @@ packages:
/dotenv@16.4.4:
resolution: {integrity: sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==}
engines: {node: '>=12'}
- dev: true
/dotenv@8.6.0:
resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==}
@@ -14176,7 +14078,7 @@ packages:
dependencies:
'@types/cookie': 0.4.1
'@types/cors': 2.8.13
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
accepts: 1.3.8
base64id: 2.0.0
cookie: 0.4.2
@@ -14273,16 +14175,16 @@ packages:
array-buffer-byte-length: 1.0.0
arraybuffer.prototype.slice: 1.0.1
available-typed-arrays: 1.0.5
- call-bind: 1.0.2
+ call-bind: 1.0.7
es-set-tostringtag: 2.0.1
es-to-primitive: 1.2.1
function.prototype.name: 1.1.5
- get-intrinsic: 1.2.1
+ get-intrinsic: 1.2.4
get-symbol-description: 1.0.0
globalthis: 1.0.3
gopd: 1.0.1
has: 1.0.3
- has-property-descriptors: 1.0.0
+ has-property-descriptors: 1.0.2
has-proto: 1.0.1
has-symbols: 1.0.3
internal-slot: 1.0.5
@@ -14294,7 +14196,7 @@ packages:
is-string: 1.0.7
is-typed-array: 1.1.12
is-weakref: 1.0.2
- object-inspect: 1.12.3
+ object-inspect: 1.13.1
object-keys: 1.1.1
object.assign: 4.1.4
regexp.prototype.flags: 1.5.0
@@ -14363,9 +14265,9 @@ packages:
dependencies:
define-properties: 1.2.0
es-abstract: 1.22.1
- function-bind: 1.1.1
+ function-bind: 1.1.2
functions-have-names: 1.2.3
- get-intrinsic: 1.2.1
+ get-intrinsic: 1.2.4
globalthis: 1.0.3
has-property-descriptors: 1.0.0
dev: false
@@ -14375,12 +14277,10 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
get-intrinsic: 1.2.4
- dev: true
/es-errors@1.3.0:
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
engines: {node: '>= 0.4'}
- dev: true
/es-iterator-helpers@1.0.17:
resolution: {integrity: sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==}
@@ -14415,7 +14315,7 @@ packages:
resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==}
engines: {node: '>= 0.4'}
dependencies:
- get-intrinsic: 1.2.1
+ get-intrinsic: 1.2.4
has: 1.0.3
has-tostringtag: 1.0.0
@@ -14437,7 +14337,7 @@ packages:
/es-shim-unscopables@1.0.2:
resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
dependencies:
- hasown: 2.0.0
+ hasown: 2.0.1
dev: true
/es-to-primitive@1.2.1:
@@ -15406,11 +15306,6 @@ packages:
signal-exit: 4.1.0
strip-final-newline: 3.0.0
- /exit-on-epipe@1.0.1:
- resolution: {integrity: sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==}
- engines: {node: '>=0.8'}
- dev: true
-
/exit@0.1.2:
resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
engines: {node: '>= 0.8.0'}
@@ -15619,10 +15514,6 @@ packages:
engines: {'0': node >=0.6.0}
dev: false
- /fast-deep-equal@2.0.1:
- resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==}
- dev: true
-
/fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
@@ -15868,16 +15759,6 @@ packages:
resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
dev: false
- /follow-redirects@1.15.2:
- resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
- engines: {node: '>=4.0'}
- peerDependencies:
- debug: '*'
- peerDependenciesMeta:
- debug:
- optional: true
- dev: false
-
/follow-redirects@1.15.4(debug@3.2.7):
resolution: {integrity: sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==}
engines: {node: '>=4.0'}
@@ -16007,6 +15888,7 @@ packages:
/frac@1.1.2:
resolution: {integrity: sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==}
engines: {node: '>=0.8'}
+ dev: false
/fraction.js@4.3.7:
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
@@ -16124,9 +16006,6 @@ packages:
requiresBuild: true
optional: true
- /function-bind@1.1.1:
- resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
-
/function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
@@ -16134,7 +16013,7 @@ packages:
resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.7
define-properties: 1.2.0
es-abstract: 1.22.1
functions-have-names: 1.2.3
@@ -16262,10 +16141,11 @@ packages:
/get-intrinsic@1.2.1:
resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==}
dependencies:
- function-bind: 1.1.1
+ function-bind: 1.1.2
has: 1.0.3
has-proto: 1.0.1
has-symbols: 1.0.3
+ dev: true
/get-intrinsic@1.2.4:
resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
@@ -16275,8 +16155,7 @@ packages:
function-bind: 1.1.2
has-proto: 1.0.1
has-symbols: 1.0.3
- hasown: 2.0.0
- dev: true
+ hasown: 2.0.1
/get-own-enumerable-property-symbols@3.0.2:
resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==}
@@ -16303,7 +16182,6 @@ packages:
/get-port-please@3.1.2:
resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==}
- dev: true
/get-port@3.2.0:
resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==}
@@ -16353,8 +16231,8 @@ packages:
resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
- get-intrinsic: 1.2.1
+ call-bind: 1.0.7
+ get-intrinsic: 1.2.4
/get-symbol-description@1.0.2:
resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
@@ -16613,7 +16491,6 @@ packages:
path-type: 5.0.0
slash: 5.1.0
unicorn-magic: 0.1.0
- dev: true
/google-auth-library@8.9.0:
resolution: {integrity: sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg==}
@@ -16660,7 +16537,7 @@ packages:
/gopd@1.0.1:
resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
dependencies:
- get-intrinsic: 1.2.1
+ get-intrinsic: 1.2.4
/graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
@@ -16773,7 +16650,6 @@ packages:
ufo: 1.4.0
uncrypto: 0.1.3
unenv: 1.9.0
- dev: true
/h3@1.10.1:
resolution: {integrity: sha512-UBAUp47hmm4BB5/njB4LrEa9gpuvZj4/Qf/ynSMzO6Ku2RXaouxEfiG2E2IFnv6fxbhAkzjasDxmo6DFdEeXRg==}
@@ -16788,7 +16664,6 @@ packages:
ufo: 1.4.0
uncrypto: 0.1.3
unenv: 1.9.0
- dev: true
/h3@1.11.1:
resolution: {integrity: sha512-AbaH6IDnZN6nmbnJOH72y3c5Wwh9P97soSVdGSBbcDACRdkC0FEWf25pzx4f/NuOCK6quHmW18yF2Wx+G4Zi1A==}
@@ -16890,20 +16765,14 @@ packages:
/has-property-descriptors@1.0.0:
resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==}
- dependencies:
- get-intrinsic: 1.2.1
-
- /has-property-descriptors@1.0.1:
- resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==}
dependencies:
get-intrinsic: 1.2.4
- dev: true
+ dev: false
/has-property-descriptors@1.0.2:
resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
dependencies:
es-define-property: 1.0.0
- dev: true
/has-proto@1.0.1:
resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
@@ -16933,7 +16802,7 @@ packages:
resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
engines: {node: '>= 0.4.0'}
dependencies:
- function-bind: 1.1.1
+ function-bind: 1.1.2
/hash-sum@2.0.0:
resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==}
@@ -16949,7 +16818,6 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
function-bind: 1.1.2
- dev: true
/he@1.2.0:
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
@@ -17098,7 +16966,6 @@ packages:
resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==}
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
requiresBuild: true
- dev: true
/http-signature@1.2.0:
resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==}
@@ -17235,11 +17102,9 @@ packages:
/ignore@5.3.1:
resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
engines: {node: '>= 4'}
- dev: true
/image-meta@0.2.0:
resolution: {integrity: sha512-ZBGjl0ZMEMeOC3Ns0wUF/5UdUmr3qQhBSCniT0LxOgGGIRHiNFOkMtIHB7EOznRU47V2AxPgiVP+s+0/UCU0Hg==}
- dev: true
/immutable@4.3.4:
resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==}
@@ -17369,7 +17234,7 @@ packages:
resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==}
engines: {node: '>= 0.4'}
dependencies:
- get-intrinsic: 1.2.1
+ get-intrinsic: 1.2.4
has: 1.0.3
side-channel: 1.0.4
@@ -17378,7 +17243,7 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
es-errors: 1.3.0
- hasown: 2.0.0
+ hasown: 2.0.1
side-channel: 1.0.4
dev: true
@@ -17439,13 +17304,13 @@ packages:
transitivePeerDependencies:
- supports-color
- /ip@1.1.8:
- resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==}
- dev: false
-
/ip@2.0.0:
resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==}
requiresBuild: true
+ dev: false
+
+ /ip@2.0.1:
+ resolution: {integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==}
/ipaddr.js@1.9.1:
resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
@@ -17491,7 +17356,7 @@ packages:
- '@vercel/kv'
- idb-keyval
- supports-color
- dev: true
+ dev: false
optional: true
/iron-webcrypto@0.8.0:
@@ -17500,7 +17365,6 @@ packages:
/iron-webcrypto@1.0.0:
resolution: {integrity: sha512-anOK1Mktt8U1Xi7fCM3RELTuYbnFikQY5VtrDj7kPgpejV7d43tWKhzgioO0zpkazLEL/j/iayRqnJhrGfqUsg==}
- dev: true
/is-absolute@1.0.0:
resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==}
@@ -17525,15 +17389,15 @@ packages:
resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.7
has-tostringtag: 1.0.0
dev: false
/is-array-buffer@3.0.2:
resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
dependencies:
- call-bind: 1.0.2
- get-intrinsic: 1.2.1
+ call-bind: 1.0.7
+ get-intrinsic: 1.2.4
is-typed-array: 1.1.12
/is-array-buffer@3.0.4:
@@ -17551,6 +17415,7 @@ packages:
/is-arrayish@0.3.2:
resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
requiresBuild: true
+ dev: false
/is-async-function@2.0.0:
resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
@@ -17575,7 +17440,7 @@ packages:
resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.7
has-tostringtag: 1.0.0
/is-buffer@1.1.6:
@@ -17630,7 +17495,6 @@ packages:
resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
hasBin: true
- dev: true
/is-extendable@0.1.1:
resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
@@ -17716,7 +17580,6 @@ packages:
hasBin: true
dependencies:
is-docker: 3.0.0
- dev: true
/is-installed-globally@1.0.0:
resolution: {integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==}
@@ -17833,7 +17696,7 @@ packages:
resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.7
has-tostringtag: 1.0.0
/is-regexp@1.0.0:
@@ -17860,7 +17723,7 @@ packages:
/is-shared-array-buffer@1.0.2:
resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.7
/is-ssh@1.4.0:
resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==}
@@ -17940,7 +17803,7 @@ packages:
/is-weakref@1.0.2:
resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.7
/is-weakset@2.0.2:
resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==}
@@ -17965,7 +17828,6 @@ packages:
engines: {node: '>=16'}
dependencies:
is-inside-container: 1.0.0
- dev: true
/is64bit@2.0.0:
resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==}
@@ -17973,10 +17835,9 @@ packages:
requiresBuild: true
dependencies:
system-architecture: 0.1.0
- dev: true
- /is@0.2.7:
- resolution: {integrity: sha512-ajQCouIvkcSnl2iRdK70Jug9mohIHVX9uKpoWnl115ov0R5mzBvRrXxrnHbsA+8AdwCwc/sfw7HXmd4I5EJBdQ==}
+ /is@3.3.0:
+ resolution: {integrity: sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg==}
dev: false
/isarray@1.0.0:
@@ -18149,7 +18010,7 @@ packages:
'@jest/expect': 29.7.0
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
chalk: 4.1.2
co: 4.6.0
dedent: 1.5.1
@@ -18170,7 +18031,7 @@ packages:
- supports-color
dev: true
- /jest-cli@29.7.0(@types/node@20.11.24)(ts-node@10.9.2):
+ /jest-cli@29.7.0(@types/node@20.11.25)(ts-node@10.9.2):
resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
@@ -18184,10 +18045,10 @@ packages:
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
chalk: 4.1.2
- create-jest: 29.7.0(@types/node@20.11.24)(ts-node@10.9.2)
+ create-jest: 29.7.0(@types/node@20.11.25)(ts-node@10.9.2)
exit: 0.1.2
import-local: 3.1.0
- jest-config: 29.7.0(@types/node@20.11.24)(ts-node@10.9.2)
+ jest-config: 29.7.0(@types/node@20.11.25)(ts-node@10.9.2)
jest-util: 29.7.0
jest-validate: 29.7.0
yargs: 17.7.2
@@ -18198,7 +18059,7 @@ packages:
- ts-node
dev: true
- /jest-config@29.7.0(@types/node@20.11.24)(ts-node@10.9.2):
+ /jest-config@29.7.0(@types/node@20.11.25)(ts-node@10.9.2):
resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
@@ -18213,7 +18074,7 @@ packages:
'@babel/core': 7.23.7
'@jest/test-sequencer': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
babel-jest: 29.7.0(@babel/core@7.23.7)
chalk: 4.1.2
ci-info: 3.8.0
@@ -18233,7 +18094,7 @@ packages:
pretty-format: 29.7.0
slash: 3.0.0
strip-json-comments: 3.1.1
- ts-node: 10.9.2(@types/node@20.11.24)(typescript@5.3.2)
+ ts-node: 10.9.2(@types/node@20.11.25)(typescript@5.3.2)
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
@@ -18274,7 +18135,7 @@ packages:
'@jest/environment': 29.7.0
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
jest-mock: 29.7.0
jest-util: 29.7.0
dev: true
@@ -18290,7 +18151,7 @@ packages:
dependencies:
'@jest/types': 29.6.3
'@types/graceful-fs': 4.1.6
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.11
@@ -18366,7 +18227,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.6.3
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
jest-util: 29.7.0
dev: true
@@ -18421,7 +18282,7 @@ packages:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
chalk: 4.1.2
emittery: 0.13.1
graceful-fs: 4.2.11
@@ -18452,7 +18313,7 @@ packages:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
chalk: 4.1.2
cjs-module-lexer: 1.2.3
collect-v8-coverage: 1.0.2
@@ -18504,7 +18365,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.6.3
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
chalk: 4.1.2
ci-info: 3.8.0
graceful-fs: 4.2.11
@@ -18516,7 +18377,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.6.3
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
chalk: 4.1.2
ci-info: 3.8.0
graceful-fs: 4.2.11
@@ -18541,7 +18402,7 @@ packages:
dependencies:
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
ansi-escapes: 4.3.2
chalk: 4.1.2
emittery: 0.13.1
@@ -18553,7 +18414,7 @@ packages:
resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
engines: {node: '>= 10.13.0'}
dependencies:
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
merge-stream: 2.0.0
supports-color: 8.1.1
dev: true
@@ -18562,13 +18423,13 @@ packages:
resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
dev: true
- /jest@29.7.0(@types/node@20.11.24)(ts-node@10.9.2):
+ /jest@29.7.0(@types/node@20.11.25)(ts-node@10.9.2):
resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
@@ -18581,7 +18442,7 @@ packages:
'@jest/core': 29.7.0(ts-node@10.9.2)
'@jest/types': 29.6.3
import-local: 3.1.0
- jest-cli: 29.7.0(@types/node@20.11.24)(ts-node@10.9.2)
+ jest-cli: 29.7.0(@types/node@20.11.25)(ts-node@10.9.2)
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -18801,22 +18662,6 @@ packages:
resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
engines: {'0': node >= 0.2.0}
- /jsonwebtoken@8.5.1:
- resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==}
- engines: {node: '>=4', npm: '>=1.4.28'}
- dependencies:
- jws: 3.2.2
- lodash.includes: 4.3.0
- lodash.isboolean: 3.0.3
- lodash.isinteger: 4.0.4
- lodash.isnumber: 3.0.3
- lodash.isplainobject: 4.0.6
- lodash.isstring: 4.0.1
- lodash.once: 4.1.1
- ms: 2.1.3
- semver: 5.7.2
- dev: false
-
/jsonwebtoken@9.0.2:
resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==}
engines: {node: '>=12', npm: '>=6'}
@@ -19296,7 +19141,6 @@ packages:
ufo: 1.4.0
untun: 0.1.3
uqr: 0.1.2
- dev: true
/listr2@4.0.5:
resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==}
@@ -19530,7 +19374,6 @@ packages:
/lru-cache@10.0.3:
resolution: {integrity: sha512-B7gr+F6MkqB3uzINHXNctGieGsRTMwIBgxkp0yq/5BwcuDzD4A8wQpHQW6vDAm1uKSLQghmRdD9sKqf2vJ1cEg==}
engines: {node: 14 || >=16.14}
- dev: true
/lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
@@ -19770,7 +19613,6 @@ packages:
/mdn-data@2.0.28:
resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
requiresBuild: true
- dev: true
/mdn-data@2.0.30:
resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
@@ -20375,7 +20217,6 @@ packages:
/napi-wasm@1.1.0:
resolution: {integrity: sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg==}
requiresBuild: true
- dev: true
/native-duplexpair@1.0.0:
resolution: {integrity: sha512-E7QQoM+3jvNtlmyfqRZ0/U75VFgCls+fSkbml2MpgWkWyz3ox8Y58gNhfuziuQYGNNQAbFZJQck55LHCnCK6CA==}
@@ -20400,7 +20241,7 @@ packages:
peerDependencies:
knex: 2.4.2
dependencies:
- axios: 0.27.2(debug@4.3.4)
+ axios: 1.6.7(debug@4.3.4)
emittery: 0.13.1
is-docker: 2.2.1
knex: 2.4.2(mysql2@3.9.2)(pg@8.11.3)(sqlite3@5.1.7)(tedious@16.6.1)
@@ -20713,23 +20554,23 @@ packages:
/node-releases@2.0.14:
resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
- /node.extend@1.0.8:
- resolution: {integrity: sha512-yvo/DZY0kijlDF192KqLX59/Yz0S5eUrV0GnRcjsoRXVqCGt7EVK+ONq3ZlijJvH/z/447qJaOeTgOGfyFQNPA==}
- engines: {'0': node >= 0.4.0}
+ /node.extend@2.0.3:
+ resolution: {integrity: sha512-xwADg/okH48PvBmRZyoX8i8GJaKuJ1CqlqotlZOhUio8egD1P5trJupHKBzcPjSF9ifK2gPcEICRBnkfPqQXZw==}
+ engines: {node: '>=0.4.0'}
dependencies:
- is: 0.2.7
- object-keys: 0.4.0
+ hasown: 2.0.1
+ is: 3.3.0
dev: false
/node.flow@1.2.3:
resolution: {integrity: sha512-f6bmAiB6wte7YTVWn5rWpz7Fh9OFHMmj8FwNkI3XnwIHRbg7H3nVncr1Kz8DnGS3idUFpRQ8D6lsecUAvjlqKA==}
engines: {'0': node >= 0.4.0}
dependencies:
- node.extend: 1.0.8
+ node.extend: 2.0.3
dev: false
- /nodemailer@6.9.11:
- resolution: {integrity: sha512-UiAkgiERuG94kl/3bKfE8o10epvDnl0vokNEtZDPTq9BWzIl6EFT9336SbIT4oaTBD8NmmUTLsQyXHV82eXSWg==}
+ /nodemailer@6.9.12:
+ resolution: {integrity: sha512-pnLo7g37Br3jXbF0bl5DekBJihm2q+3bB3l2o/B060sWmb5l+VqeScAQCBqaQ+5ezRZFzW5SciZNGdRDEbq89w==}
engines: {node: '>=6.0.0'}
dev: false
@@ -21011,7 +20852,6 @@ packages:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
dependencies:
boolbase: 1.0.0
- dev: true
/nuxi@3.10.1:
resolution: {integrity: sha512-ZNt858+FOZDIiKKFJkXO7uJAnALytDdn1XbLgtZAqbtWNMayHbOnWcnxh+WSOE4H9uOi2+loWXEqKElmNWLgcQ==}
@@ -21045,7 +20885,7 @@ packages:
- vite
dev: true
- /nuxt@3.10.3(eslint@8.56.0)(sass@1.70.0)(vite@4.5.2):
+ /nuxt@3.10.3(eslint@8.56.0)(sass@1.71.1)(vite@4.5.2):
resolution: {integrity: sha512-NchGNiiz9g/ErJAb462W/lpX2NqcXYb9hugySKWvLXNdrjeAPiJ2/7mhgwUSiZA9MpjuQg3saiEajr1zlRIOCg==}
engines: {node: ^14.18.0 || >=16.10.0}
hasBin: true
@@ -21064,7 +20904,7 @@ packages:
'@nuxt/schema': 3.10.3
'@nuxt/telemetry': 2.5.3
'@nuxt/ui-templates': 1.3.1
- '@nuxt/vite-builder': 3.10.3(eslint@8.56.0)(sass@1.70.0)(vue@3.3.13)
+ '@nuxt/vite-builder': 3.10.3(eslint@8.56.0)(sass@1.71.1)(vue@3.3.13)
'@unhead/dom': 1.8.10
'@unhead/ssr': 1.8.10
'@unhead/vue': 1.8.10(vue@3.3.13)
@@ -21169,7 +21009,7 @@ packages:
'@yarnpkg/lockfile': 1.1.0
'@yarnpkg/parsers': 3.0.0-rc.46
'@zkochan/js-yaml': 0.0.6
- axios: 1.6.7
+ axios: 1.6.7(debug@3.2.7)
chalk: 4.1.2
cli-cursor: 3.1.0
cli-spinners: 2.6.1
@@ -21253,14 +21093,10 @@ packages:
/object-inspect@1.12.3:
resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
+ dev: true
/object-inspect@1.13.1:
resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
- dev: true
-
- /object-keys@0.4.0:
- resolution: {integrity: sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==}
- dev: false
/object-keys@1.1.1:
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
@@ -21276,7 +21112,7 @@ packages:
resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.7
define-properties: 1.2.0
has-symbols: 1.0.3
object-keys: 1.1.1
@@ -21295,7 +21131,7 @@ packages:
resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.6
+ call-bind: 1.0.7
define-properties: 1.2.0
es-abstract: 1.22.1
dev: true
@@ -21343,7 +21179,7 @@ packages:
resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.7
define-properties: 1.2.0
es-abstract: 1.22.1
dev: true
@@ -21363,7 +21199,6 @@ packages:
destr: 2.0.3
node-fetch-native: 1.6.1
ufo: 1.4.0
- dev: true
/ohash@1.1.3:
resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==}
@@ -22142,10 +21977,6 @@ packages:
engines: {node: '>=10.13.0'}
dev: false
- /pop-iterate@1.0.1:
- resolution: {integrity: sha512-HRCx4+KJE30JhX84wBN4+vja9bNfysxg1y28l0DuJmkoaICiv2ZSilKddbS48pq50P8d2erAhqDLbp47yv3MbQ==}
- dev: false
-
/possible-typed-array-names@1.0.0:
resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
engines: {node: '>= 0.4'}
@@ -22482,7 +22313,7 @@ packages:
engines: {node: '>=4'}
hasBin: true
dependencies:
- axios: 0.24.0(debug@4.3.4)
+ axios: 1.6.7(debug@4.3.4)
axios-retry: 3.6.1
component-type: 1.2.1
join-component: 1.1.0
@@ -22546,12 +22377,6 @@ packages:
react-is: 18.2.0
dev: true
- /printj@1.1.2:
- resolution: {integrity: sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==}
- engines: {node: '>=0.8'}
- hasBin: true
- dev: true
-
/proc-log@3.0.0:
resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
@@ -22806,10 +22631,6 @@ packages:
resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==}
dev: false
- /punycode@1.4.1:
- resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
- dev: false
-
/punycode@2.3.0:
resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
engines: {node: '>=6'}
@@ -22829,14 +22650,6 @@ packages:
long: 4.0.0
dev: false
- /q@2.0.3:
- resolution: {integrity: sha512-gv6vLGcmAOg96/fgo3d9tvA4dJNZL3fMyBqVRrGxQ+Q/o4k9QzbJ3NQF9cOO/71wRodoXhaPgphvMFU68qVAJQ==}
- dependencies:
- asap: 2.0.6
- pop-iterate: 1.0.1
- weak-map: 1.0.8
- dev: false
-
/qrcode@1.5.3:
resolution: {integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==}
engines: {node: '>=10.13.0'}
@@ -22911,7 +22724,6 @@ packages:
/radix3@1.1.0:
resolution: {integrity: sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A==}
- dev: true
/randombytes@2.1.0:
resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
@@ -23163,7 +22975,7 @@ packages:
resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.7
define-properties: 1.2.0
functions-have-names: 1.2.3
@@ -23223,7 +23035,7 @@ packages:
performance-now: 2.1.0
qs: 6.5.3
safe-buffer: 5.2.1
- tough-cookie: 2.4.3
+ tough-cookie: 4.1.3
tunnel-agent: 0.6.0
uuid: 3.4.0
dev: false
@@ -23250,7 +23062,7 @@ packages:
performance-now: 2.1.0
qs: 6.5.3
safe-buffer: 5.2.1
- tough-cookie: 2.5.0
+ tough-cookie: 4.1.3
tunnel-agent: 0.6.0
uuid: 3.4.0
dev: false
@@ -23478,10 +23290,6 @@ packages:
'@rollup/rollup-win32-x64-msvc': 4.12.0
fsevents: 2.3.3
- /rootpath@0.1.2:
- resolution: {integrity: sha512-R3wLbuAYejpxQjL/SjXo1Cjv4wcJECnMRT/FlcCfTwCBhaji9rWaRCoVEQ1SPiTJ4kKK+yh+bZLAV7SCafoDDw==}
- dev: false
-
/rope-sequence@1.3.4:
resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==}
dev: false
@@ -23533,8 +23341,8 @@ packages:
resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==}
engines: {node: '>=0.4'}
dependencies:
- call-bind: 1.0.2
- get-intrinsic: 1.2.1
+ call-bind: 1.0.7
+ get-intrinsic: 1.2.4
has-symbols: 1.0.3
isarray: 2.0.5
@@ -23557,8 +23365,8 @@ packages:
/safe-regex-test@1.0.0:
resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==}
dependencies:
- call-bind: 1.0.2
- get-intrinsic: 1.2.1
+ call-bind: 1.0.7
+ get-intrinsic: 1.2.4
is-regex: 1.1.4
/safe-regex-test@1.0.3:
@@ -23584,8 +23392,8 @@ packages:
/safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
- /sass@1.70.0:
- resolution: {integrity: sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==}
+ /sass@1.71.1:
+ resolution: {integrity: sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==}
engines: {node: '>=14.0.0'}
hasBin: true
dependencies:
@@ -23737,13 +23545,12 @@ packages:
resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==}
engines: {node: '>= 0.4'}
dependencies:
- define-data-property: 1.1.2
+ define-data-property: 1.1.4
es-errors: 1.3.0
function-bind: 1.1.2
get-intrinsic: 1.2.4
gopd: 1.0.1
- has-property-descriptors: 1.0.1
- dev: true
+ has-property-descriptors: 1.0.2
/set-function-name@2.0.2:
resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
@@ -23797,7 +23604,7 @@ packages:
'@img/sharp-wasm32': 0.33.2
'@img/sharp-win32-ia32': 0.33.2
'@img/sharp-win32-x64': 0.33.2
- dev: true
+ dev: false
optional: true
/shebang-command@1.2.0:
@@ -23846,9 +23653,9 @@ packages:
/side-channel@1.0.4:
resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
dependencies:
- call-bind: 1.0.2
- get-intrinsic: 1.2.1
- object-inspect: 1.12.3
+ call-bind: 1.0.7
+ get-intrinsic: 1.2.4
+ object-inspect: 1.13.1
/siginfo@2.0.0:
resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
@@ -23922,6 +23729,7 @@ packages:
requiresBuild: true
dependencies:
is-arrayish: 0.3.2
+ dev: false
/simple-update-notifier@2.0.0:
resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==}
@@ -24024,7 +23832,7 @@ packages:
asn1.js-rfc2560: 5.0.1(asn1.js@5.4.1)
asn1.js-rfc5280: 3.0.0
aws-sdk: 2.1555.0
- axios: 0.27.2(debug@3.2.7)
+ axios: 1.6.7(debug@3.2.7)
big-integer: 1.6.51
bignumber.js: 2.4.0
binascii: 0.0.2
@@ -24142,7 +23950,7 @@ packages:
resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==}
engines: {node: '>= 10.13.0', npm: '>= 3.0.0'}
dependencies:
- ip: 2.0.0
+ ip: 2.0.1
smart-buffer: 4.2.0
/sort-keys@2.0.0:
@@ -24301,6 +24109,7 @@ packages:
engines: {node: '>=0.8'}
dependencies:
frac: 1.1.2
+ dev: false
/sshpk@1.17.0:
resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==}
@@ -24460,7 +24269,7 @@ packages:
/string.prototype.matchall@4.0.10:
resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==}
dependencies:
- call-bind: 1.0.6
+ call-bind: 1.0.7
define-properties: 1.2.0
es-abstract: 1.22.1
get-intrinsic: 1.2.4
@@ -24475,7 +24284,7 @@ packages:
resolution: {integrity: sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.7
define-properties: 1.2.0
es-abstract: 1.22.1
dev: true
@@ -24484,7 +24293,7 @@ packages:
resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.7
define-properties: 1.2.0
es-abstract: 1.22.1
@@ -24500,7 +24309,7 @@ packages:
/string.prototype.trimend@1.0.6:
resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.7
define-properties: 1.2.0
es-abstract: 1.22.1
@@ -24515,7 +24324,7 @@ packages:
/string.prototype.trimstart@1.0.6:
resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.7
define-properties: 1.2.0
es-abstract: 1.22.1
@@ -24739,7 +24548,6 @@ packages:
css-what: 6.1.0
csso: 5.0.5
picocolors: 1.0.0
- dev: true
/symbol-observable@1.2.0:
resolution: {integrity: sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==}
@@ -24783,7 +24591,6 @@ packages:
resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==}
engines: {node: '>=18'}
requiresBuild: true
- dev: true
/tapable@1.1.3:
resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==}
@@ -25153,28 +24960,12 @@ packages:
nopt: 1.0.10
dev: true
- /tough-cookie@2.4.3:
- resolution: {integrity: sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==}
- engines: {node: '>=0.8'}
- dependencies:
- psl: 1.9.0
- punycode: 1.4.1
- dev: false
-
- /tough-cookie@2.5.0:
- resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==}
- engines: {node: '>=0.8'}
- dependencies:
- psl: 1.9.0
- punycode: 2.3.0
- dev: false
-
/tough-cookie@4.1.3:
resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
engines: {node: '>=6'}
dependencies:
psl: 1.9.0
- punycode: 2.3.0
+ punycode: 2.3.1
universalify: 0.2.0
url-parse: 1.5.10
dev: false
@@ -25218,7 +25009,7 @@ packages:
engines: {node: '>=14.0.0'}
dev: false
- /ts-jest@29.1.2(@babel/core@7.23.7)(jest@29.7.0)(typescript@5.3.2):
+ /ts-jest@29.1.2(@babel/core@7.23.9)(jest@29.7.0)(typescript@5.3.2):
resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==}
engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0}
hasBin: true
@@ -25239,10 +25030,10 @@ packages:
esbuild:
optional: true
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
bs-logger: 0.2.6
fast-json-stable-stringify: 2.1.0
- jest: 29.7.0(@types/node@20.11.24)(ts-node@10.9.2)
+ jest: 29.7.0(@types/node@20.11.25)(ts-node@10.9.2)
jest-util: 29.6.3
json5: 2.2.3
lodash.memoize: 4.1.2
@@ -25297,7 +25088,7 @@ packages:
typescript: 5.3.2
dev: true
- /ts-node@10.9.2(@types/node@20.11.24)(typescript@5.3.2):
+ /ts-node@10.9.2(@types/node@20.11.25)(typescript@5.3.2):
resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
hasBin: true
peerDependencies:
@@ -25316,7 +25107,7 @@ packages:
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4
- '@types/node': 20.11.24
+ '@types/node': 20.11.25
acorn: 8.11.2
acorn-walk: 8.2.0
arg: 4.1.3
@@ -25451,18 +25242,15 @@ packages:
resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==}
dev: false
- /twilio@3.84.1(debug@4.3.4):
- resolution: {integrity: sha512-Q/xaPoayTj+bgJdnUgpE+EiB/VoNOG+byDFdlDej0FgxiHLgXKliZfVv6boqHPWvC1k7Dt0AK96OBFZ0P55QQg==}
- engines: {node: '>=6.0'}
+ /twilio@4.23.0(debug@4.3.4):
+ resolution: {integrity: sha512-LdNBQfOe0dY2oJH2sAsrxazpgfFQo5yXGxe96QA8UWB5uu+433PrUbkv8gQ5RmrRCqUTPQ0aOrIyAdBr1aB03Q==}
+ engines: {node: '>=14.0'}
dependencies:
- axios: 0.26.1(debug@4.3.4)
+ axios: 1.6.7(debug@4.3.4)
dayjs: 1.11.10
https-proxy-agent: 5.0.1
- jsonwebtoken: 8.5.1
- lodash: 4.17.21
- q: 2.0.3
+ jsonwebtoken: 9.0.2
qs: 6.11.2
- rootpath: 0.1.2
scmp: 2.1.0
url-parse: 1.5.10
xmlbuilder: 13.0.2
@@ -25533,8 +25321,8 @@ packages:
resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
- get-intrinsic: 1.2.1
+ call-bind: 1.0.7
+ get-intrinsic: 1.2.4
is-typed-array: 1.1.12
/typed-array-buffer@1.0.2:
@@ -25550,7 +25338,7 @@ packages:
resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.7
for-each: 0.3.3
has-proto: 1.0.1
is-typed-array: 1.1.12
@@ -25560,7 +25348,7 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
available-typed-arrays: 1.0.5
- call-bind: 1.0.2
+ call-bind: 1.0.7
for-each: 0.3.3
has-proto: 1.0.1
is-typed-array: 1.1.12
@@ -25568,7 +25356,7 @@ packages:
/typed-array-length@1.0.4:
resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.7
for-each: 0.3.3
is-typed-array: 1.1.12
@@ -25627,7 +25415,7 @@ packages:
/unbox-primitive@1.0.2:
resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.7
has-bigints: 1.0.2
has-symbols: 1.0.3
which-boxed-primitive: 1.0.2
@@ -25648,7 +25436,6 @@ packages:
/uncrypto@0.1.3:
resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==}
- dev: true
/unctx@2.3.1:
resolution: {integrity: sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A==}
@@ -25680,7 +25467,6 @@ packages:
mime: 3.0.0
node-fetch-native: 1.6.1
pathe: 1.1.2
- dev: true
/unescape@1.0.1:
resolution: {integrity: sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==}
@@ -25822,7 +25608,7 @@ packages:
'@unocss/transformer-variant-group': 0.58.5
'@unocss/vite': 0.58.5(vite@4.5.2)
'@unocss/webpack': 0.58.5(webpack@5.90.3)
- vite: 4.5.2(sass@1.70.0)
+ vite: 4.5.2(sass@1.71.1)
transitivePeerDependencies:
- postcss
- rollup
@@ -25992,7 +25778,6 @@ packages:
ufo: 1.4.0
transitivePeerDependencies:
- supports-color
- dev: true
/untun@0.1.2:
resolution: {integrity: sha512-wLAMWvxfqyTiBODA1lg3IXHQtjggYLeTK7RnSfqtOXixWJ3bAa2kK/HHmOOg19upteqO3muLvN6O/icbyQY33Q==}
@@ -26012,7 +25797,6 @@ packages:
citty: 0.1.5
consola: 3.2.3
pathe: 1.1.2
- dev: true
/untyped@1.4.0:
resolution: {integrity: sha512-Egkr/s4zcMTEuulcIb7dgURS6QpN7DyqQYdf+jBtiaJvQ+eRsrtWUoX84SbvQWuLkXsOjM+8sJC9u6KoMK/U7Q==}
@@ -26041,7 +25825,6 @@ packages:
scule: 1.3.0
transitivePeerDependencies:
- supports-color
- dev: true
/upath@2.0.1:
resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==}
@@ -26061,7 +25844,6 @@ packages:
/uqr@0.1.2:
resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==}
requiresBuild: true
- dev: true
/uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
@@ -26100,7 +25882,7 @@ packages:
formstream: 1.3.1
humanize-ms: 1.2.1
iconv-lite: 0.4.24
- ip: 1.1.8
+ ip: 2.0.0
pump: 3.0.0
qs: 6.11.2
statuses: 1.5.0
@@ -26237,7 +26019,7 @@ packages:
extsprintf: 1.3.0
dev: false
- /vite-node@1.2.2(sass@1.70.0):
+ /vite-node@1.2.2(sass@1.71.1):
resolution: {integrity: sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
@@ -26246,7 +26028,7 @@ packages:
debug: 4.3.4(supports-color@5.5.0)
pathe: 1.1.2
picocolors: 1.0.0
- vite: 5.1.4(sass@1.70.0)
+ vite: 5.1.4(sass@1.71.1)
transitivePeerDependencies:
- '@types/node'
- less
@@ -26258,7 +26040,7 @@ packages:
- terser
dev: true
- /vite-node@1.3.1(sass@1.70.0):
+ /vite-node@1.3.1(sass@1.71.1):
resolution: {integrity: sha512-azbRrqRxlWTJEVbzInZCTchx0X69M/XPTCz4H+TLvlTcR/xH/3hkRqhOakT41fMJCMzXTu4UvegkZiEoJAWvng==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
@@ -26267,7 +26049,7 @@ packages:
debug: 4.3.4(supports-color@5.5.0)
pathe: 1.1.2
picocolors: 1.0.0
- vite: 5.1.4(sass@1.70.0)
+ vite: 5.1.4(sass@1.71.1)
transitivePeerDependencies:
- '@types/node'
- less
@@ -26322,7 +26104,7 @@ packages:
semver: 7.6.0
strip-ansi: 6.0.1
tiny-invariant: 1.3.1
- vite: 5.1.4(sass@1.70.0)
+ vite: 5.1.4(sass@1.71.1)
vscode-languageclient: 7.0.0
vscode-languageserver: 7.0.0
vscode-languageserver-textdocument: 1.0.8
@@ -26349,7 +26131,7 @@ packages:
perfect-debounce: 1.0.0
picocolors: 1.0.0
sirv: 2.0.4
- vite: 4.5.2(sass@1.70.0)
+ vite: 4.5.2(sass@1.71.1)
transitivePeerDependencies:
- rollup
- supports-color
@@ -26372,7 +26154,7 @@ packages:
'@purge-icons/core': 0.10.0
'@purge-icons/generated': 0.10.0
rollup-plugin-purge-icons: 0.10.0
- vite: 4.5.2(sass@1.70.0)
+ vite: 4.5.2(sass@1.71.1)
transitivePeerDependencies:
- encoding
- supports-color
@@ -26392,7 +26174,7 @@ packages:
'@vue/compiler-dom': 3.4.20
kolorist: 1.8.0
magic-string: 0.30.7
- vite: 4.5.2(sass@1.70.0)
+ vite: 4.5.2(sass@1.71.1)
transitivePeerDependencies:
- supports-color
dev: true
@@ -26405,13 +26187,13 @@ packages:
'@windicss/plugin-utils': 1.9.1
debug: 4.3.4(supports-color@5.5.0)
kolorist: 1.8.0
- vite: 4.5.2(sass@1.70.0)
+ vite: 4.5.2(sass@1.71.1)
windicss: 3.5.6
transitivePeerDependencies:
- supports-color
dev: true
- /vite@4.5.2(sass@1.70.0):
+ /vite@4.5.2(sass@1.71.1):
resolution: {integrity: sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
@@ -26442,12 +26224,12 @@ packages:
esbuild: 0.18.20
postcss: 8.4.35
rollup: 3.29.4
- sass: 1.70.0
+ sass: 1.71.1
optionalDependencies:
fsevents: 2.3.3
dev: true
- /vite@5.1.4(sass@1.70.0):
+ /vite@5.1.4(sass@1.71.1):
resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
@@ -26478,12 +26260,12 @@ packages:
esbuild: 0.19.11
postcss: 8.4.35
rollup: 4.12.0
- sass: 1.70.0
+ sass: 1.71.1
optionalDependencies:
fsevents: 2.3.3
dev: true
- /vitest@1.2.2(@vitest/ui@0.34.7)(happy-dom@6.0.4)(sass@1.70.0):
+ /vitest@1.2.2(@vitest/ui@0.34.7)(happy-dom@6.0.4)(sass@1.71.1):
resolution: {integrity: sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
@@ -26528,8 +26310,8 @@ packages:
strip-literal: 1.3.0
tinybench: 2.6.0
tinypool: 0.8.2
- vite: 5.1.4(sass@1.70.0)
- vite-node: 1.2.2(sass@1.70.0)
+ vite: 5.1.4(sass@1.71.1)
+ vite-node: 1.2.2(sass@1.71.1)
why-is-node-running: 2.2.2
transitivePeerDependencies:
- less
@@ -26870,10 +26652,6 @@ packages:
defaults: 1.0.4
dev: true
- /weak-map@1.0.8:
- resolution: {integrity: sha512-lNR9aAefbGPpHO7AEnY0hCFjz1eTkWCXYvkTRrTHs9qv8zJp+SkVYpzfLIFXQQiG3tVvbNFQgVg2bQS8YGgxyw==}
- dev: false
-
/web-encoding@1.1.5:
resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==}
dependencies:
@@ -26887,7 +26665,7 @@ packages:
engines: {node: '>=0.8.x'}
dependencies:
step: 0.0.6
- xml2js: 0.1.14
+ xml2js: 0.6.2
dev: false
/webidl-conversions@3.0.1:
@@ -27171,7 +26949,7 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
available-typed-arrays: 1.0.5
- call-bind: 1.0.2
+ call-bind: 1.0.7
for-each: 0.3.3
gopd: 1.0.1
has-tostringtag: 1.0.0
@@ -27319,10 +27097,12 @@ packages:
/wmf@1.0.2:
resolution: {integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==}
engines: {node: '>=0.8'}
+ dev: false
/word@0.3.0:
resolution: {integrity: sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==}
engines: {node: '>=0.8'}
+ dev: false
/wordwrap@1.0.0:
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
@@ -27480,20 +27260,6 @@ packages:
engines: {node: '>=8'}
dev: true
- /xlsx@0.17.5:
- resolution: {integrity: sha512-lXNU0TuYsvElzvtI6O7WIVb9Zar1XYw7Xb3VAx2wn8N/n0whBYrCnHMxtFyIiUU1Wjf09WzmLALDfBO5PqTb1g==}
- engines: {node: '>=0.8'}
- hasBin: true
- dependencies:
- adler-32: 1.2.0
- cfb: 1.2.2
- codepage: 1.15.0
- crc-32: 1.2.2
- ssf: 0.11.2
- wmf: 1.0.2
- word: 0.3.0
- dev: true
-
/xlsx@0.18.5:
resolution: {integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==}
engines: {node: '>=0.8'}
@@ -27525,12 +27291,6 @@ packages:
engines: {node: '>=18'}
dev: false
- /xml2js@0.1.14:
- resolution: {integrity: sha512-pbdws4PPPNc1HPluSUKamY4GWMk592K7qwcj6BExbVOhhubub8+pMda/ql68b6L3luZs/OGjGSB5goV7SnmgnA==}
- dependencies:
- sax: 1.2.4
- dev: false
-
/xml2js@0.5.0:
resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==}
engines: {node: '>=4.0.0'}
@@ -27578,7 +27338,7 @@ packages:
dependencies:
commander: 2.20.3
cssfilter: 0.0.10
- dev: true
+ dev: false
optional: true
/xtend@4.0.2:
@@ -27739,3 +27499,10 @@ packages:
compress-commons: 5.0.1
readable-stream: 3.6.2
dev: true
+
+ '@cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz':
+ resolution: {tarball: https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz}
+ name: xlsx
+ version: 0.19.3
+ engines: {node: '>=0.8'}
+ hasBin: true
diff --git a/scripts/pkg-executable/package.json b/scripts/pkg-executable/package.json
index 3102b1934f..08d223738f 100644
--- a/scripts/pkg-executable/package.json
+++ b/scripts/pkg-executable/package.json
@@ -30,7 +30,7 @@
"@nestjs/common": "^10.3.3",
"@nestjs/core": "^10.3.3",
"express": "^4.18.3",
- "nocodb": "0.204.3"
+ "nocodb": "0.204.4"
},
"overrides": {
"sqlite3": "5.1.7"
diff --git a/tests/playwright/pages/Dashboard/ExpandedForm/index.ts b/tests/playwright/pages/Dashboard/ExpandedForm/index.ts
index bcc92d406b..1a76a78d59 100644
--- a/tests/playwright/pages/Dashboard/ExpandedForm/index.ts
+++ b/tests/playwright/pages/Dashboard/ExpandedForm/index.ts
@@ -68,7 +68,7 @@ export class ExpandedFormPage extends BasePage {
}
async fillField({ columnTitle, value, type = 'text' }: { columnTitle: string; value: string; type?: string }) {
- const field = this.get().locator(`[data-testid="nc-expand-col-${columnTitle}"]`);
+ const field = this.get().getByTestId(`nc-expand-col-${columnTitle}`);
switch (type) {
case 'text':
await field.locator('input').fill(value);
diff --git a/tests/playwright/pages/Dashboard/SurveyForm/index.ts b/tests/playwright/pages/Dashboard/SurveyForm/index.ts
index 26e9d8aaca..c6a429a6ca 100644
--- a/tests/playwright/pages/Dashboard/SurveyForm/index.ts
+++ b/tests/playwright/pages/Dashboard/SurveyForm/index.ts
@@ -5,6 +5,8 @@ import { getTextExcludeIconText } from '../../../tests/utils/general';
export class SurveyFormPage extends BasePage {
readonly formHeading: Locator;
readonly formSubHeading: Locator;
+ readonly fillFormButton: Locator;
+ readonly submitConfirmationButton: Locator;
readonly submitButton: Locator;
readonly nextButton: Locator;
readonly nextSlideButton: Locator;
@@ -16,7 +18,11 @@ export class SurveyFormPage extends BasePage {
super(rootPage);
this.formHeading = this.get().locator('[data-testid="nc-survey-form__heading"]');
this.formSubHeading = this.get().locator('[data-testid="nc-survey-form__sub-heading"]');
- this.submitButton = this.get().locator('[data-testid="nc-survey-form__btn-submit"]');
+ this.fillFormButton = this.get().locator('[data-testid="nc-survey-form__fill-form-btn"]');
+ this.submitConfirmationButton = this.get().locator('[data-testid="nc-survey-form__btn-submit-confirm"]');
+ this.submitButton = this.rootPage.locator(
+ '.nc-survery-form__confirmation_modal [data-testid="nc-survey-form__btn-submit"]'
+ );
this.nextButton = this.get().locator('[data-testid="nc-survey-form__btn-next"]');
this.nextSlideButton = this.get().locator('[data-testid="nc-survey-form__icon-next"]');
this.prevSlideButton = this.get().locator('[data-testid="nc-survey-form__icon-prev"]');
@@ -28,20 +34,15 @@ export class SurveyFormPage extends BasePage {
return this.rootPage.locator('html >> .nc-form-view');
}
- async validate({
- heading,
- subHeading,
- fieldLabel,
- footer,
- }: {
- heading: string;
- subHeading: string;
- fieldLabel: string;
- footer: string;
- }) {
+ async validateHeaders({ heading, subHeading }: { heading: string; subHeading: string }) {
await expect(this.get()).toBeVisible();
await expect(this.formHeading).toHaveText(heading);
await expect(this.formSubHeading).toHaveText(subHeading);
+ }
+
+ async validate({ fieldLabel, footer }: { fieldLabel: string; footer: string }) {
+ await expect(this.get()).toBeVisible();
+
await expect(this.formFooter).toHaveText(footer);
const locator = this.get().locator(`[data-testid="nc-form-column-label"]`);
@@ -62,7 +63,7 @@ export class SurveyFormPage extends BasePage {
isLastSlide = true;
}
if (isLastSlide) {
- await expect(this.submitButton).toBeVisible();
+ await expect(this.submitConfirmationButton).toBeVisible();
} else {
await expect(this.nextButton).toBeVisible();
}
@@ -88,6 +89,8 @@ export class SurveyFormPage extends BasePage {
}
async validateSuccessMessage(param: { message: string; showAnotherForm?: boolean }) {
+ await this.get().locator('[data-testid="nc-survey-form__success-msg"]').waitFor({ state: 'visible' });
+
await expect(
this.get().locator(`[data-testid="nc-survey-form__success-msg"]:has-text("${param.message}")`)
).toBeVisible();
@@ -96,4 +99,17 @@ export class SurveyFormPage extends BasePage {
await expect(this.get().locator(`button:has-text("Submit Another Form")`)).toBeVisible();
}
}
+
+ async clickFillForm() {
+ await this.fillFormButton.click();
+ }
+
+ async confirmAndSubmit() {
+ await this.submitConfirmationButton.click();
+ await this.submitButton.waitFor({ state: 'visible' });
+
+ await this.submitButton.click();
+
+ await this.submitButton.waitFor({ state: 'hidden' });
+ }
}
diff --git a/tests/playwright/tests/db/columns/columnFormula.spec.ts b/tests/playwright/tests/db/columns/columnFormula.spec.ts
index b9ca6de3ce..29053a016b 100644
--- a/tests/playwright/tests/db/columns/columnFormula.spec.ts
+++ b/tests/playwright/tests/db/columns/columnFormula.spec.ts
@@ -143,6 +143,16 @@ const formulaDataByDbType = (context: NcContext, index: number) => {
result: ['A Corua (La Corua)', 'Abha', 'Abu Dhabi', 'Acua', 'Ad...'],
unSupDbType: ['sqlite3'],
},
+ {
+ formula: 'URLENCODE({City})',
+ result: [
+ 'A%20Corua%20(La%20Corua)',
+ 'Abha',
+ 'Abu%20Dhabi',
+ 'Acua',
+ 'Adana',
+ ],
+ },
];
else
return [
diff --git a/tests/playwright/tests/db/columns/columnLinkToAnotherRecord.spec.ts b/tests/playwright/tests/db/columns/columnLinkToAnotherRecord.spec.ts
index 03bdb301c2..9b932c6d26 100644
--- a/tests/playwright/tests/db/columns/columnLinkToAnotherRecord.spec.ts
+++ b/tests/playwright/tests/db/columns/columnLinkToAnotherRecord.spec.ts
@@ -45,7 +45,6 @@ test.describe('LTAR create & update', () => {
childTable: 'Sheet2',
relationType: 'Many To many',
});
- await dashboard.closeTab({ title: 'Sheet1' });
await dashboard.treeView.openTable({ title: 'Sheet2', networkResponse: false });
await dashboard.grid.column.create({
diff --git a/tests/playwright/tests/db/views/viewFormShareSurvey.spec.ts b/tests/playwright/tests/db/views/viewFormShareSurvey.spec.ts
index 198bf9a20e..84da7e03f6 100644
--- a/tests/playwright/tests/db/views/viewFormShareSurvey.spec.ts
+++ b/tests/playwright/tests/db/views/viewFormShareSurvey.spec.ts
@@ -46,9 +46,15 @@ test.describe('Share form', () => {
await dashboard.rootPage.waitForTimeout(2000);
surveyForm = new SurveyFormPage(dashboard.rootPage);
- await surveyForm.validate({
+
+ await surveyForm.validateHeaders({
heading: 'Country Title',
subHeading: 'Country Form Subtitle',
+ });
+
+ await surveyForm.clickFillForm();
+
+ await surveyForm.validate({
fieldLabel: 'Country *',
footer: '1 / 3',
});
@@ -59,8 +65,6 @@ test.describe('Share form', () => {
});
await surveyForm.validate({
- heading: 'Country Title',
- subHeading: 'Country Form Subtitle',
fieldLabel: 'LastUpdate',
footer: '2 / 3',
});
@@ -70,12 +74,10 @@ test.describe('Share form', () => {
});
await surveyForm.validate({
- heading: 'Country Title',
- subHeading: 'Country Form Subtitle',
fieldLabel: 'Cities',
footer: '3 / 3',
});
- await surveyForm.submitButton.click();
+ await surveyForm.confirmAndSubmit();
// validate post submit data
await surveyForm.validateSuccessMessage({