fix(audio-clipper): init segment position on firstUpdate + improve UX by adding ghost handle

- clean web components and js modules
- update js dependencies to latest

fixes #351
This commit is contained in:
Yassine Doghri 2023-07-01 13:46:03 +00:00
parent d15a068e0c
commit aa68386667
14 changed files with 289 additions and 229 deletions

View File

@ -10,7 +10,6 @@ const Clipboard = (): void => {
); );
if (element) { if (element) {
button.addEventListener("click", () => { button.addEventListener("click", () => {
console.log(element);
element.select(); element.select();
element.setSelectionRange(0, element.value.length); element.setSelectionRange(0, element.value.length);
document.execCommand("copy"); document.execCommand("copy");

View File

@ -9,6 +9,7 @@ const MultiSelect = (): void => {
const multiSelect = multiSelects[i]; const multiSelect = multiSelects[i];
new Choices(multiSelect, { new Choices(multiSelect, {
allowHTML: false,
maxItemCount: parseInt(multiSelect.dataset.maxItemCount || "-1"), maxItemCount: parseInt(multiSelect.dataset.maxItemCount || "-1"),
loadingText: multiSelect.dataset.loadingText, loadingText: multiSelect.dataset.loadingText,
itemSelectText: multiSelect.dataset.selectText, itemSelectText: multiSelect.dataset.selectText,

View File

@ -10,6 +10,7 @@ const Select = (): void => {
const select = selects[i]; const select = selects[i];
new Choices(select, { new Choices(select, {
allowHTML: false,
loadingText: select.dataset.loadingText, loadingText: select.dataset.loadingText,
itemSelectText: select.dataset.selectText, itemSelectText: select.dataset.selectText,
maxItemText: select.dataset.maxItemText, maxItemText: select.dataset.maxItemText,

View File

@ -4,7 +4,7 @@ import {
property, property,
query, query,
queryAll, queryAll,
queryAssignedNodes, queryAssignedElements,
state, state,
} from "lit/decorators.js"; } from "lit/decorators.js";
import WaveSurfer from "wavesurfer.js"; import WaveSurfer from "wavesurfer.js";
@ -27,14 +27,14 @@ interface EventElement {
@customElement("audio-clipper") @customElement("audio-clipper")
export class AudioClipper extends LitElement { export class AudioClipper extends LitElement {
@queryAssignedNodes("audio", true) @queryAssignedElements({ slot: "audio", flatten: true })
_audio!: NodeListOf<HTMLAudioElement>; _audio!: Array<HTMLAudioElement>;
@queryAssignedNodes("start_time", true) @queryAssignedElements({ slot: "start_time", flatten: true })
_startTimeInput!: NodeListOf<HTMLInputElement>; _startTimeInput!: Array<HTMLInputElement>;
@queryAssignedNodes("duration", true) @queryAssignedElements({ slot: "duration", flatten: true })
_durationInput!: NodeListOf<HTMLInputElement>; _durationInput!: Array<HTMLInputElement>;
@query(".slider") @query(".slider")
_sliderNode!: HTMLDivElement; _sliderNode!: HTMLDivElement;
@ -45,9 +45,12 @@ export class AudioClipper extends LitElement {
@query(".slider__segment-content") @query(".slider__segment-content")
_segmentContentNode!: HTMLDivElement; _segmentContentNode!: HTMLDivElement;
@query(".slider__segment-progress-handle") @query(".slider__segment-progress-handle--main")
_progressNode!: HTMLDivElement; _progressNode!: HTMLDivElement;
@query(".slider__segment-progress-handle--ghost")
_progressGhostNode!: HTMLDivElement;
@query(".slider__seeking-placeholder") @query(".slider__seeking-placeholder")
_seekingNode!: HTMLDivElement; _seekingNode!: HTMLDivElement;
@ -60,6 +63,9 @@ export class AudioClipper extends LitElement {
@queryAll(".slider__segment-handle") @queryAll(".slider__segment-handle")
_segmentHandleNodes!: NodeListOf<HTMLButtonElement>; _segmentHandleNodes!: NodeListOf<HTMLButtonElement>;
@property({ type: Number, attribute: "audio-duration" })
audioDuration = 0;
@property({ type: Number, attribute: "start-time" }) @property({ type: Number, attribute: "start-time" })
initStartTime = 0; initStartTime = 0;
@ -81,6 +87,9 @@ export class AudioClipper extends LitElement {
@property({ attribute: "trim-end-label" }) @property({ attribute: "trim-end-label" })
trimEndLabel = "Trim end"; trimEndLabel = "Trim end";
@state()
_canInteract = false;
@state() @state()
_isPlaying = false; _isPlaying = false;
@ -93,9 +102,6 @@ export class AudioClipper extends LitElement {
@state() @state()
_action: Action | null = null; _action: Action | null = null;
@state()
_audioDuration = 0;
@state() @state()
_sliderWidth = 0; _sliderWidth = 0;
@ -116,7 +122,15 @@ export class AudioClipper extends LitElement {
_windowEvents: EventElement[] = [ _windowEvents: EventElement[] = [
{ {
events: ["load", "resize"], events: ["load"],
onEvent: () => {
this._canInteract = true;
this._sliderWidth = this._sliderNode.clientWidth;
this.setSegmentPosition();
},
},
{
events: ["resize"],
onEvent: () => { onEvent: () => {
this._sliderWidth = this._sliderNode.clientWidth; this._sliderWidth = this._sliderNode.clientWidth;
this.setSegmentPosition(); this.setSegmentPosition();
@ -130,9 +144,12 @@ export class AudioClipper extends LitElement {
onEvent: () => { onEvent: () => {
if (this._action !== null) { if (this._action !== null) {
document.body.style.cursor = ""; document.body.style.cursor = "";
if (this._action.type === ActionType.Seek && this._seekingTime) { if (
this._action.type === ActionType.Seek &&
this._seekingTime !== null
) {
this._audio[0].currentTime = this._seekingTime; this._audio[0].currentTime = this._seekingTime;
this._seekingTime = 0; this._seekingTime = null;
} }
this._action = null; this._action = null;
} }
@ -141,14 +158,24 @@ export class AudioClipper extends LitElement {
{ {
events: ["mousemove"], events: ["mousemove"],
onEvent: (event: Event) => { onEvent: (event: Event) => {
if (this._action !== null) {
this.updatePosition(event as MouseEvent); this.updatePosition(event as MouseEvent);
}
}, },
}, },
]; ];
_audioEvents: EventElement[] = [ _audioEvents: EventElement[] = [
{
events: ["loadedmetadata"],
onEvent: () => {
this.audioDuration = this._audio[0].duration;
},
},
{
events: ["waiting"],
onEvent: () => {
this._isBuffering = true;
},
},
{ {
events: ["play"], events: ["play"],
onEvent: () => { onEvent: () => {
@ -176,7 +203,7 @@ export class AudioClipper extends LitElement {
); );
context.fillStyle = "#04AC64"; context.fillStyle = "#04AC64";
const inc = this._bufferingBarNode.width / this._audio[0].duration; const inc = this._bufferingBarNode.width / this.audioDuration;
for (let i = 0; i < this._audio[0].buffered.length; i++) { for (let i = 0; i < this._audio[0].buffered.length; i++) {
const startX = this._audio[0].buffered.start(i) * inc; const startX = this._audio[0].buffered.start(i) * inc;
@ -192,13 +219,11 @@ export class AudioClipper extends LitElement {
{ {
events: ["timeupdate"], events: ["timeupdate"],
onEvent: () => { onEvent: () => {
// TODO: change this? this._currentTime = this._audio[0].currentTime;
this._currentTime = parseFloat(this._audio[0].currentTime.toFixed(3));
if (this._currentTime > this._clip.endTime) { if (this._currentTime > this._clip.endTime) {
this.pause(); this.pause();
this._audio[0].currentTime = this._clip.endTime; this._audio[0].currentTime = this._clip.endTime;
} else if (this._currentTime < this._clip.startTime) { } else if (this._currentTime < this._clip.startTime) {
this._isBuffering = true;
this._audio[0].currentTime = this._clip.startTime; this._audio[0].currentTime = this._clip.startTime;
} else { } else {
this._isBuffering = false; this._isBuffering = false;
@ -233,6 +258,21 @@ export class AudioClipper extends LitElement {
}, },
]; ];
_sliderSegmentEvents: EventElement[] = [
{
events: ["hover"],
onEvent: (event: Event) => {
const ghostHandle = (event.target as HTMLDivElement).querySelector(
".segment"
) as HTMLDivElement;
if (ghostHandle) {
ghostHandle.style.opacity = "1";
ghostHandle.style.transform = "translateX(50)";
}
},
},
];
connectedCallback(): void { connectedCallback(): void {
super.connectedCallback(); super.connectedCallback();
@ -244,7 +284,9 @@ export class AudioClipper extends LitElement {
} }
protected firstUpdated(): void { protected firstUpdated(): void {
this._audioDuration = this._audio[0].duration; this._sliderWidth = this._sliderNode.clientWidth;
this.setSegmentPosition();
this._audio[0].volume = this._volume; this._audio[0].volume = this._volume;
this._startTimeInput[0].hidden = true; this._startTimeInput[0].hidden = true;
this._durationInput[0].hidden = true; this._durationInput[0].hidden = true;
@ -255,7 +297,6 @@ export class AudioClipper extends LitElement {
interact: false, interact: false,
barWidth: 2, barWidth: 2,
barHeight: 1, barHeight: 1,
// barGap: 4,
responsive: true, responsive: true,
waveColor: "hsl(0 5% 85%)", waveColor: "hsl(0 5% 85%)",
cursorColor: "transparent", cursorColor: "transparent",
@ -338,11 +379,11 @@ export class AudioClipper extends LitElement {
} }
private getPositionFromSeconds(seconds: number) { private getPositionFromSeconds(seconds: number) {
return (seconds * this._sliderWidth) / this._audioDuration; return (seconds * this._sliderWidth) / this.audioDuration;
} }
private getSecondsFromPosition(position: number) { private getSecondsFromPosition(position: number) {
return (this._audioDuration * position) / this._sliderWidth; return (this.audioDuration * position) / this._sliderWidth;
} }
protected updated( protected updated(
@ -405,14 +446,14 @@ export class AudioClipper extends LitElement {
} }
case ActionType.StretchRight: { case ActionType.StretchRight: {
let endTime; let endTime;
if (seconds < this._audioDuration) { if (seconds < this.audioDuration) {
if (seconds < this._clip.startTime + this.minDuration) { if (seconds < this._clip.startTime + this.minDuration) {
endTime = this._clip.startTime + this.minDuration; endTime = this._clip.startTime + this.minDuration;
} else { } else {
endTime = seconds; endTime = seconds;
} }
} else { } else {
endTime = this._audioDuration; endTime = this.audioDuration;
} }
this._clip = { this._clip = {
@ -459,6 +500,7 @@ export class AudioClipper extends LitElement {
const seekingTimePercentage = const seekingTimePercentage =
(seekingTimeSegmentPosition / this._segmentContentNode.clientWidth) * (seekingTimeSegmentPosition / this._segmentContentNode.clientWidth) *
this._segmentContentNode.clientWidth; this._segmentContentNode.clientWidth;
this._progressNode.style.transform = `translateX(${seekingTimeSegmentPosition}px)`; this._progressNode.style.transform = `translateX(${seekingTimeSegmentPosition}px)`;
this._seekingNode.style.transform = `scaleX(${seekingTimePercentage})`; this._seekingNode.style.transform = `scaleX(${seekingTimePercentage})`;
} }
@ -586,6 +628,10 @@ export class AudioClipper extends LitElement {
border-top: 10px solid #3b82f6; border-top: 10px solid #3b82f6;
} }
.slider__segment-progress-handle--ghost {
opacity: 0.5;
}
.slider__segment .slider__segment-handle { .slider__segment .slider__segment-handle {
position: absolute; position: absolute;
width: 1rem; width: 1rem;
@ -742,14 +788,19 @@ export class AudioClipper extends LitElement {
<slot name="audio"></slot> <slot name="audio"></slot>
<slot name="start_time"></slot> <slot name="start_time"></slot>
<slot name="duration"></slot> <slot name="duration"></slot>
<div class="slider-wrapper" style="height:${this.height}"> <div class="slider-wrapper" style="height:${this.height}px">
<div id="waveform"></div> <div id="waveform"></div>
<div class="slider" role="slider"> <div class="slider" role="slider">
<div class="slider__segment--wrapper"> <div class="slider__segment--wrapper">
<div <div
class="slider__segment-progress-handle" class="slider__segment-progress-handle slider__segment-progress-handle--main"
@mousedown="${(event: MouseEvent) => @mousedown="${(event: MouseEvent) => {
this.setAction(event, { type: ActionType.Seek })}" this.setAction(event, { type: ActionType.Seek });
}}"
></div>
<div
class="slider__segment-progress-handle slider__segment-progress-handle--ghost"
?hidden=${true}
></div> ></div>
<div class="slider__segment"> <div class="slider__segment">
<button <button
@ -764,6 +815,16 @@ export class AudioClipper extends LitElement {
<div class="slider__seeking-placeholder"></div> <div class="slider__seeking-placeholder"></div>
<div <div
class="slider__segment-content" class="slider__segment-content"
@mousemove="${(event: MouseEvent) => {
const seekingTimeSegmentPosition =
event.clientX -
(event.target as HTMLDivElement).getBoundingClientRect()
.left;
this._progressGhostNode.hidden = false;
this._progressGhostNode.style.transform = `translateX(${seekingTimeSegmentPosition}px)`;
}}"
@mouseleave="${() => (this._progressGhostNode.hidden = true)}"
@mousedown="${(event: MouseEvent) => @mousedown="${(event: MouseEvent) =>
this.setAction(event, { type: ActionType.Seek })}" this.setAction(event, { type: ActionType.Seek })}"
@click="${(event: MouseEvent) => this.goTo(event)}" @click="${(event: MouseEvent) => this.goTo(event)}"
@ -786,7 +847,7 @@ export class AudioClipper extends LitElement {
class="toolbar__play-button" class="toolbar__play-button"
@click="${this._isPlaying ? this.pause : this.play}" @click="${this._isPlaying ? this.pause : this.play}"
> >
${this._isBuffering ${this._isBuffering || !this._canInteract
? html`<svg ? html`<svg
class="animate-spin" class="animate-spin"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"

View File

@ -9,10 +9,10 @@ export class MarkdownPreview extends LitElement {
@property() @property()
for!: string; for!: string;
@state() @property({ attribute: false })
_textarea!: HTMLTextAreaElement; _textarea!: HTMLTextAreaElement;
@state() @property({ attribute: false })
_markdownToolbar!: MarkdownToolbarElement; _markdownToolbar!: MarkdownToolbarElement;
@state() @state()
@ -49,6 +49,8 @@ export class MarkdownPreview extends LitElement {
return marked(this.escapeHtml(this._textarea.value), { return marked(this.escapeHtml(this._textarea.value), {
renderer: renderer, renderer: renderer,
headerIds: false,
mangle: false,
}); });
} }

View File

@ -1,5 +1,9 @@
import { css, html, LitElement, TemplateResult } from "lit"; import { css, html, LitElement, TemplateResult } from "lit";
import { customElement, property, queryAssignedNodes } from "lit/decorators.js"; import {
customElement,
property,
queryAssignedElements,
} from "lit/decorators.js";
import { MarkdownPreview } from "./markdown-preview"; import { MarkdownPreview } from "./markdown-preview";
@customElement("markdown-write-preview") @customElement("markdown-write-preview")
@ -7,17 +11,17 @@ export class MarkdownWritePreview extends LitElement {
@property() @property()
for!: string; for!: string;
@property() @property({ attribute: false })
_textarea: HTMLTextAreaElement | null = null; _textarea: HTMLTextAreaElement | null = null;
@property() @property({ attribute: false })
_markdownPreview!: MarkdownPreview; _markdownPreview!: MarkdownPreview;
@queryAssignedNodes("write", true) @queryAssignedElements({ slot: "write", flatten: true })
_write!: NodeListOf<HTMLButtonElement>; _write!: Array<HTMLButtonElement>;
@queryAssignedNodes("preview", true) @queryAssignedElements({ slot: "preview", flatten: true })
_preview!: NodeListOf<HTMLButtonElement>; _preview!: Array<HTMLButtonElement>;
connectedCallback(): void { connectedCallback(): void {
super.connectedCallback(); super.connectedCallback();

View File

@ -1,23 +1,24 @@
import "@github/clipboard-copy-element"; import "@github/clipboard-copy-element";
import ClipboardCopyElement from "@github/clipboard-copy-element";
import { css, html, LitElement, TemplateResult } from "lit"; import { css, html, LitElement, TemplateResult } from "lit";
import { import {
customElement, customElement,
property, property,
query, query,
queryAssignedNodes, queryAssignedElements,
state, state,
} from "lit/decorators.js"; } from "lit/decorators.js";
@customElement("permalink-edit") @customElement("permalink-edit")
export class PermalinkEdit extends LitElement { export class PermalinkEdit extends LitElement {
@queryAssignedNodes("domain", true) @queryAssignedElements({ slot: "domain", flatten: true })
_domain!: NodeListOf<HTMLSpanElement>; _domain!: NodeListOf<HTMLSpanElement>;
@queryAssignedNodes("slug-input", true) @queryAssignedElements({ slot: "slug-input", flatten: true })
_slugInput!: NodeListOf<HTMLInputElement>; _slugInput!: NodeListOf<HTMLInputElement>;
@query("clipboard-copy") @query("clipboard-copy")
_clipboardCopy!: any; _clipboardCopy!: ClipboardCopyElement;
@property({ attribute: "edit-label" }) @property({ attribute: "edit-label" })
editLabel = "Edit"; editLabel = "Edit";

View File

@ -27,15 +27,15 @@ export class PlayEpisodeButton extends LitElement {
@property() @property()
playingLabel!: string; playingLabel!: string;
@property() @property({ attribute: false })
isPlaying!: boolean;
@property()
_castopodAudioPlayer!: HTMLDivElement; _castopodAudioPlayer!: HTMLDivElement;
@property() @property({ attribute: false })
_audio!: HTMLAudioElement; _audio!: HTMLAudioElement;
@state()
isPlaying!: boolean;
@state() @state()
_playbackSpeed = 1; _playbackSpeed = 1;

View File

@ -44,11 +44,6 @@ export class PlaySoundbite extends LitElement {
name: "timeupdate", name: "timeupdate",
onEvent: () => { onEvent: () => {
if (this._audio) { if (this._audio) {
console.log(
this._audio.currentTime,
this.startTime,
this.startTime + this.duration
);
if (this._audio.currentTime < this.startTime) { if (this._audio.currentTime < this.startTime) {
this._isLoading = true; this._isLoading = true;
this._audio.currentTime = this.startTime; this._audio.currentTime = this.startTime;

View File

@ -2,8 +2,7 @@ import { css, html, LitElement, TemplateResult } from "lit";
import { import {
customElement, customElement,
property, property,
queryAssignedNodes, queryAssignedElements,
state,
} from "lit/decorators.js"; } from "lit/decorators.js";
import { styleMap } from "lit/directives/style-map.js"; import { styleMap } from "lit/directives/style-map.js";
@ -21,7 +20,7 @@ const formatMap = {
@customElement("video-clip-previewer") @customElement("video-clip-previewer")
export class VideoClipPreviewer extends LitElement { export class VideoClipPreviewer extends LitElement {
@queryAssignedNodes("preview_image", true) @queryAssignedElements({ slot: "preview_image", flatten: true })
_image!: NodeListOf<HTMLImageElement>; _image!: NodeListOf<HTMLImageElement>;
@property() @property()
@ -36,7 +35,7 @@ export class VideoClipPreviewer extends LitElement {
@property({ type: Number }) @property({ type: Number })
duration!: number; duration!: number;
@state() @property({ attribute: false })
_previewImage!: HTMLImageElement; _previewImage!: HTMLImageElement;
protected firstUpdated(): void { protected firstUpdated(): void {

View File

@ -34,7 +34,7 @@
"@codemirror/language": "^6.8.0", "@codemirror/language": "^6.8.0",
"@codemirror/state": "^6.2.1", "@codemirror/state": "^6.2.1",
"@codemirror/view": "^6.14.0", "@codemirror/view": "^6.14.0",
"@floating-ui/dom": "^1.4.2", "@floating-ui/dom": "^1.4.3",
"@github/clipboard-copy-element": "^1.2.1", "@github/clipboard-copy-element": "^1.2.1",
"@github/hotkey": "^2.0.1", "@github/hotkey": "^2.0.1",
"@github/markdown-toolbar-element": "^2.1.1", "@github/markdown-toolbar-element": "^2.1.1",
@ -52,8 +52,8 @@
"xml-formatter": "^3.4.1" "xml-formatter": "^3.4.1"
}, },
"devDependencies": { "devDependencies": {
"@commitlint/cli": "^17.6.5", "@commitlint/cli": "^17.6.6",
"@commitlint/config-conventional": "^17.6.5", "@commitlint/config-conventional": "^17.6.6",
"@csstools/css-tokenizer": "^2.1.1", "@csstools/css-tokenizer": "^2.1.1",
"@semantic-release/changelog": "^6.0.3", "@semantic-release/changelog": "^6.0.3",
"@semantic-release/exec": "^6.0.3", "@semantic-release/exec": "^6.0.3",
@ -64,19 +64,19 @@
"@types/leaflet": "^1.9.3", "@types/leaflet": "^1.9.3",
"@types/marked": "^5.0.0", "@types/marked": "^5.0.0",
"@types/wavesurfer.js": "^6.0.6", "@types/wavesurfer.js": "^6.0.6",
"@typescript-eslint/eslint-plugin": "^5.60.0", "@typescript-eslint/eslint-plugin": "^5.60.1",
"@typescript-eslint/parser": "^5.60.0", "@typescript-eslint/parser": "^5.60.1",
"all-contributors-cli": "^6.26.0", "all-contributors-cli": "^6.26.0",
"commitizen": "^4.3.0", "commitizen": "^4.3.0",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"cssnano": "^6.0.1", "cssnano": "^6.0.1",
"cz-conventional-changelog": "^3.3.0", "cz-conventional-changelog": "^3.3.0",
"eslint": "^8.43.0", "eslint": "^8.44.0",
"eslint-config-prettier": "^8.8.0", "eslint-config-prettier": "^8.8.0",
"eslint-plugin-prettier": "^4.2.1", "eslint-plugin-prettier": "^4.2.1",
"husky": "^8.0.3", "husky": "^8.0.3",
"is-ci": "^3.0.1", "is-ci": "^3.0.1",
"lint-staged": "^13.2.2", "lint-staged": "^13.2.3",
"postcss": "^8.4.24", "postcss": "^8.4.24",
"postcss-import": "^15.1.0", "postcss-import": "^15.1.0",
"postcss-nesting": "^11.3.0", "postcss-nesting": "^11.3.0",
@ -84,12 +84,12 @@
"postcss-reporter": "^7.0.5", "postcss-reporter": "^7.0.5",
"prettier": "2.8.8", "prettier": "2.8.8",
"prettier-plugin-organize-imports": "^3.2.2", "prettier-plugin-organize-imports": "^3.2.2",
"semantic-release": "^21.0.5", "semantic-release": "^21.0.6",
"stylelint": "^15.9.0", "stylelint": "^15.9.0",
"stylelint-config-standard": "^33.0.0", "stylelint-config-standard": "^33.0.0",
"svgo": "^3.0.2", "svgo": "^3.0.2",
"tailwindcss": "^3.3.2", "tailwindcss": "^3.3.2",
"typescript": "^5.1.3", "typescript": "^5.1.6",
"vite": "^4.3.9", "vite": "^4.3.9",
"vite-plugin-pwa": "^0.16.4", "vite-plugin-pwa": "^0.16.4",
"workbox-build": "^7.0.0", "workbox-build": "^7.0.0",

311
pnpm-lock.yaml generated
View File

@ -27,8 +27,8 @@ dependencies:
specifier: ^6.14.0 specifier: ^6.14.0
version: 6.14.0 version: 6.14.0
"@floating-ui/dom": "@floating-ui/dom":
specifier: ^1.4.2 specifier: ^1.4.3
version: 1.4.2 version: 1.4.3
"@github/clipboard-copy-element": "@github/clipboard-copy-element":
specifier: ^1.2.1 specifier: ^1.2.1
version: 1.2.1 version: 1.2.1
@ -77,26 +77,26 @@ dependencies:
devDependencies: devDependencies:
"@commitlint/cli": "@commitlint/cli":
specifier: ^17.6.5 specifier: ^17.6.6
version: 17.6.5 version: 17.6.6
"@commitlint/config-conventional": "@commitlint/config-conventional":
specifier: ^17.6.5 specifier: ^17.6.6
version: 17.6.5 version: 17.6.6
"@csstools/css-tokenizer": "@csstools/css-tokenizer":
specifier: ^2.1.1 specifier: ^2.1.1
version: 2.1.1 version: 2.1.1
"@semantic-release/changelog": "@semantic-release/changelog":
specifier: ^6.0.3 specifier: ^6.0.3
version: 6.0.3(semantic-release@21.0.5) version: 6.0.3(semantic-release@21.0.6)
"@semantic-release/exec": "@semantic-release/exec":
specifier: ^6.0.3 specifier: ^6.0.3
version: 6.0.3(semantic-release@21.0.5) version: 6.0.3(semantic-release@21.0.6)
"@semantic-release/git": "@semantic-release/git":
specifier: ^10.0.1 specifier: ^10.0.1
version: 10.0.1(semantic-release@21.0.5) version: 10.0.1(semantic-release@21.0.6)
"@semantic-release/gitlab": "@semantic-release/gitlab":
specifier: ^12.0.3 specifier: ^12.0.3
version: 12.0.3(semantic-release@21.0.5) version: 12.0.3(semantic-release@21.0.6)
"@tailwindcss/forms": "@tailwindcss/forms":
specifier: ^0.5.3 specifier: ^0.5.3
version: 0.5.3(tailwindcss@3.3.2) version: 0.5.3(tailwindcss@3.3.2)
@ -113,11 +113,11 @@ devDependencies:
specifier: ^6.0.6 specifier: ^6.0.6
version: 6.0.6 version: 6.0.6
"@typescript-eslint/eslint-plugin": "@typescript-eslint/eslint-plugin":
specifier: ^5.60.0 specifier: ^5.60.1
version: 5.60.0(@typescript-eslint/parser@5.60.0)(eslint@8.43.0)(typescript@5.1.3) version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.44.0)(typescript@5.1.6)
"@typescript-eslint/parser": "@typescript-eslint/parser":
specifier: ^5.60.0 specifier: ^5.60.1
version: 5.60.0(eslint@8.43.0)(typescript@5.1.3) version: 5.60.1(eslint@8.44.0)(typescript@5.1.6)
all-contributors-cli: all-contributors-cli:
specifier: ^6.26.0 specifier: ^6.26.0
version: 6.26.0 version: 6.26.0
@ -134,14 +134,14 @@ devDependencies:
specifier: ^3.3.0 specifier: ^3.3.0
version: 3.3.0 version: 3.3.0
eslint: eslint:
specifier: ^8.43.0 specifier: ^8.44.0
version: 8.43.0 version: 8.44.0
eslint-config-prettier: eslint-config-prettier:
specifier: ^8.8.0 specifier: ^8.8.0
version: 8.8.0(eslint@8.43.0) version: 8.8.0(eslint@8.44.0)
eslint-plugin-prettier: eslint-plugin-prettier:
specifier: ^4.2.1 specifier: ^4.2.1
version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.8) version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.44.0)(prettier@2.8.8)
husky: husky:
specifier: ^8.0.3 specifier: ^8.0.3
version: 8.0.3 version: 8.0.3
@ -149,8 +149,8 @@ devDependencies:
specifier: ^3.0.1 specifier: ^3.0.1
version: 3.0.1 version: 3.0.1
lint-staged: lint-staged:
specifier: ^13.2.2 specifier: ^13.2.3
version: 13.2.2 version: 13.2.3
postcss: postcss:
specifier: ^8.4.24 specifier: ^8.4.24
version: 8.4.24 version: 8.4.24
@ -171,10 +171,10 @@ devDependencies:
version: 2.8.8 version: 2.8.8
prettier-plugin-organize-imports: prettier-plugin-organize-imports:
specifier: ^3.2.2 specifier: ^3.2.2
version: 3.2.2(prettier@2.8.8)(typescript@5.1.3) version: 3.2.2(prettier@2.8.8)(typescript@5.1.6)
semantic-release: semantic-release:
specifier: ^21.0.5 specifier: ^21.0.6
version: 21.0.5 version: 21.0.6
stylelint: stylelint:
specifier: ^15.9.0 specifier: ^15.9.0
version: 15.9.0 version: 15.9.0
@ -188,8 +188,8 @@ devDependencies:
specifier: ^3.3.2 specifier: ^3.3.2
version: 3.3.2(ts-node@10.9.1) version: 3.3.2(ts-node@10.9.1)
typescript: typescript:
specifier: ^5.1.3 specifier: ^5.1.6
version: 5.1.3 version: 5.1.6
vite: vite:
specifier: ^4.3.9 specifier: ^4.3.9
version: 4.3.9(@types/node@20.3.1) version: 4.3.9(@types/node@20.3.1)
@ -210,6 +210,14 @@ devDependencies:
version: 7.0.0 version: 7.0.0
packages: packages:
/@aashutoshrathi/word-wrap@1.2.6:
resolution:
{
integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==,
}
engines: { node: ">=0.10.0" }
dev: true
/@alloc/quick-lru@5.2.0: /@alloc/quick-lru@5.2.0:
resolution: resolution:
{ {
@ -1907,16 +1915,16 @@ packages:
dev: true dev: true
optional: true optional: true
/@commitlint/cli@17.6.5: /@commitlint/cli@17.6.6:
resolution: resolution:
{ {
integrity: sha512-3PQrWr/uo6lzF5k7n5QuosCYnzaxP9qGBp3jhWP0Vmsa7XA6wrl9ccPqfQyXpSbQE3zBROVO3TDqgPKe4tfmLQ==, integrity: sha512-sTKpr2i/Fjs9OmhU+beBxjPavpnLSqZaO6CzwKVq2Tc4UYVTMFgpKOslDhUBVlfAUBfjVO8ParxC/MXkIOevEA==,
} }
engines: { node: ">=v14" } engines: { node: ">=v14" }
hasBin: true hasBin: true
dependencies: dependencies:
"@commitlint/format": 17.4.4 "@commitlint/format": 17.4.4
"@commitlint/lint": 17.6.5 "@commitlint/lint": 17.6.6
"@commitlint/load": 17.5.0 "@commitlint/load": 17.5.0
"@commitlint/read": 17.5.1 "@commitlint/read": 17.5.1
"@commitlint/types": 17.4.4 "@commitlint/types": 17.4.4
@ -1930,10 +1938,10 @@ packages:
- "@swc/wasm" - "@swc/wasm"
dev: true dev: true
/@commitlint/config-conventional@17.6.5: /@commitlint/config-conventional@17.6.6:
resolution: resolution:
{ {
integrity: sha512-Xl9H9KLl86NZm5CYNTNF9dcz1xelE/EbvhWIWcYxG/rn3UWYWdWmmnX2q6ZduNdLFSGbOxzUpIx61j5zxbeXxg==, integrity: sha512-phqPz3BDhfj49FUYuuZIuDiw+7T6gNAEy7Yew1IBHqSohVUCWOK2FXMSAExzS2/9X+ET93g0Uz83KjiHDOOFag==,
} }
engines: { node: ">=v14" } engines: { node: ">=v14" }
dependencies: dependencies:
@ -1985,25 +1993,25 @@ packages:
chalk: 4.1.2 chalk: 4.1.2
dev: true dev: true
/@commitlint/is-ignored@17.6.5: /@commitlint/is-ignored@17.6.6:
resolution: resolution:
{ {
integrity: sha512-CQvAPt9gX7cuUbMrIaIMKczfWJqqr6m8IlJs0F2zYwyyMTQ87QMHIj5jJ5HhOaOkaj6dvTMVGx8Dd1I4xgUuoQ==, integrity: sha512-4Fw875faAKO+2nILC04yW/2Vy/wlV3BOYCSQ4CEFzriPEprc1Td2LILmqmft6PDEK5Sr14dT9tEzeaZj0V56Gg==,
} }
engines: { node: ">=v14" } engines: { node: ">=v14" }
dependencies: dependencies:
"@commitlint/types": 17.4.4 "@commitlint/types": 17.4.4
semver: 7.5.0 semver: 7.5.2
dev: true dev: true
/@commitlint/lint@17.6.5: /@commitlint/lint@17.6.6:
resolution: resolution:
{ {
integrity: sha512-BSJMwkE4LWXrOsiP9KoHG+/heSDfvOL/Nd16+ojTS/DX8HZr8dNl8l3TfVr/d/9maWD8fSegRGtBtsyGuugFrw==, integrity: sha512-5bN+dnHcRLkTvwCHYMS7Xpbr+9uNi0Kq5NR3v4+oPNx6pYXt8ACuw9luhM/yMgHYwW0ajIR20wkPAFkZLEMGmg==,
} }
engines: { node: ">=v14" } engines: { node: ">=v14" }
dependencies: dependencies:
"@commitlint/is-ignored": 17.6.5 "@commitlint/is-ignored": 17.6.6
"@commitlint/parse": 17.6.5 "@commitlint/parse": 17.6.5
"@commitlint/rules": 17.6.5 "@commitlint/rules": 17.6.5
"@commitlint/types": 17.4.4 "@commitlint/types": 17.4.4
@ -2023,13 +2031,13 @@ packages:
"@types/node": 20.3.1 "@types/node": 20.3.1
chalk: 4.1.2 chalk: 4.1.2
cosmiconfig: 8.2.0 cosmiconfig: 8.2.0
cosmiconfig-typescript-loader: 4.3.0(@types/node@20.3.1)(cosmiconfig@8.2.0)(ts-node@10.9.1)(typescript@5.1.3) cosmiconfig-typescript-loader: 4.3.0(@types/node@20.3.1)(cosmiconfig@8.2.0)(ts-node@10.9.1)(typescript@5.1.6)
lodash.isplainobject: 4.0.6 lodash.isplainobject: 4.0.6
lodash.merge: 4.6.2 lodash.merge: 4.6.2
lodash.uniq: 4.5.0 lodash.uniq: 4.5.0
resolve-from: 5.0.0 resolve-from: 5.0.0
ts-node: 10.9.1(@types/node@20.3.1)(typescript@5.1.3) ts-node: 10.9.1(@types/node@20.3.1)(typescript@5.1.6)
typescript: 5.1.3 typescript: 5.1.6
transitivePeerDependencies: transitivePeerDependencies:
- "@swc/core" - "@swc/core"
- "@swc/wasm" - "@swc/wasm"
@ -2839,7 +2847,7 @@ packages:
dev: true dev: true
optional: true optional: true
/@eslint-community/eslint-utils@4.4.0(eslint@8.43.0): /@eslint-community/eslint-utils@4.4.0(eslint@8.44.0):
resolution: resolution:
{ {
integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==,
@ -2848,7 +2856,7 @@ packages:
peerDependencies: peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
dependencies: dependencies:
eslint: 8.43.0 eslint: 8.44.0
eslint-visitor-keys: 3.4.1 eslint-visitor-keys: 3.4.1
dev: true dev: true
@ -2860,16 +2868,16 @@ packages:
engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 }
dev: true dev: true
/@eslint/eslintrc@2.0.3: /@eslint/eslintrc@2.1.0:
resolution: resolution:
{ {
integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==, integrity: sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==,
} }
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
dependencies: dependencies:
ajv: 6.12.6 ajv: 6.12.6
debug: 4.3.4 debug: 4.3.4
espree: 9.5.2 espree: 9.6.0
globals: 13.20.0 globals: 13.20.0
ignore: 5.2.4 ignore: 5.2.4
import-fresh: 3.3.0 import-fresh: 3.3.0
@ -2880,10 +2888,10 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@eslint/js@8.43.0: /@eslint/js@8.44.0:
resolution: resolution:
{ {
integrity: sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==, integrity: sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==,
} }
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
dev: true dev: true
@ -2895,10 +2903,10 @@ packages:
} }
dev: false dev: false
/@floating-ui/dom@1.4.2: /@floating-ui/dom@1.4.3:
resolution: resolution:
{ {
integrity: sha512-VKmvHVatWnewmGGy+7Mdy4cTJX71Pli6v/Wjb5RQBuq5wjUYx+Ef+kRThi8qggZqDgD8CogCpqhRoVp3+yQk+g==, integrity: sha512-nB/68NyaQlcdY22L+Fgd1HERQ7UGv7XFN+tPxwrEfQL4nKtAP/jIZnZtpUlXbtV+VEGHh6W/63Gy2C5biWI3sA==,
} }
dependencies: dependencies:
"@floating-ui/core": 1.3.1 "@floating-ui/core": 1.3.1
@ -3434,7 +3442,7 @@ packages:
rollup: 2.79.1 rollup: 2.79.1
dev: true dev: true
/@semantic-release/changelog@6.0.3(semantic-release@21.0.5): /@semantic-release/changelog@6.0.3(semantic-release@21.0.6):
resolution: resolution:
{ {
integrity: sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==, integrity: sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==,
@ -3447,10 +3455,10 @@ packages:
aggregate-error: 3.1.0 aggregate-error: 3.1.0
fs-extra: 11.1.1 fs-extra: 11.1.1
lodash: 4.17.21 lodash: 4.17.21
semantic-release: 21.0.5 semantic-release: 21.0.6
dev: true dev: true
/@semantic-release/commit-analyzer@10.0.1(semantic-release@21.0.5): /@semantic-release/commit-analyzer@10.0.1(semantic-release@21.0.6):
resolution: resolution:
{ {
integrity: sha512-9ejHzTAijYs9z246sY/dKBatmOPcd0GQ7lH4MgLCkv1q4GCiDZRkjHJkaQZXZVaK7mJybS+sH3Ng6G8i3pYMGQ==, integrity: sha512-9ejHzTAijYs9z246sY/dKBatmOPcd0GQ7lH4MgLCkv1q4GCiDZRkjHJkaQZXZVaK7mJybS+sH3Ng6G8i3pYMGQ==,
@ -3466,7 +3474,7 @@ packages:
import-from: 4.0.0 import-from: 4.0.0
lodash-es: 4.17.21 lodash-es: 4.17.21
micromatch: 4.0.5 micromatch: 4.0.5
semantic-release: 21.0.5 semantic-release: 21.0.6
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
@ -3487,7 +3495,7 @@ packages:
engines: { node: ">=18" } engines: { node: ">=18" }
dev: true dev: true
/@semantic-release/exec@6.0.3(semantic-release@21.0.5): /@semantic-release/exec@6.0.3(semantic-release@21.0.6):
resolution: resolution:
{ {
integrity: sha512-bxAq8vLOw76aV89vxxICecEa8jfaWwYITw6X74zzlO0mc/Bgieqx9kBRz9z96pHectiTAtsCwsQcUyLYWnp3VQ==, integrity: sha512-bxAq8vLOw76aV89vxxICecEa8jfaWwYITw6X74zzlO0mc/Bgieqx9kBRz9z96pHectiTAtsCwsQcUyLYWnp3VQ==,
@ -3502,12 +3510,12 @@ packages:
execa: 5.1.1 execa: 5.1.1
lodash: 4.17.21 lodash: 4.17.21
parse-json: 5.2.0 parse-json: 5.2.0
semantic-release: 21.0.5 semantic-release: 21.0.6
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/@semantic-release/git@10.0.1(semantic-release@21.0.5): /@semantic-release/git@10.0.1(semantic-release@21.0.6):
resolution: resolution:
{ {
integrity: sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==, integrity: sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==,
@ -3524,12 +3532,12 @@ packages:
lodash: 4.17.21 lodash: 4.17.21
micromatch: 4.0.5 micromatch: 4.0.5
p-reduce: 2.1.0 p-reduce: 2.1.0
semantic-release: 21.0.5 semantic-release: 21.0.6
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/@semantic-release/github@9.0.3(semantic-release@21.0.5): /@semantic-release/github@9.0.3(semantic-release@21.0.6):
resolution: resolution:
{ {
integrity: sha512-X6gq4USKVlCxPwIIyXb99jU7gwVWlnsKOevs+OyABRdoqc+OIRITbFmrrYU3eE1vGMGk+Qu/GAoLUQQQwC3YOA==, integrity: sha512-X6gq4USKVlCxPwIIyXb99jU7gwVWlnsKOevs+OyABRdoqc+OIRITbFmrrYU3eE1vGMGk+Qu/GAoLUQQQwC3YOA==,
@ -3553,14 +3561,14 @@ packages:
lodash-es: 4.17.21 lodash-es: 4.17.21
mime: 3.0.0 mime: 3.0.0
p-filter: 3.0.0 p-filter: 3.0.0
semantic-release: 21.0.5 semantic-release: 21.0.6
url-join: 5.0.0 url-join: 5.0.0
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
- supports-color - supports-color
dev: true dev: true
/@semantic-release/gitlab@12.0.3(semantic-release@21.0.5): /@semantic-release/gitlab@12.0.3(semantic-release@21.0.6):
resolution: resolution:
{ {
integrity: sha512-CldGFrEoXduOWmp+jjbn/mzU5johxT5cYDxWqQnRQXVyX4JdK33bF9qSEhwn0l4Dm2NmhoSdFA0T7EmwiJtm9w==, integrity: sha512-CldGFrEoXduOWmp+jjbn/mzU5johxT5cYDxWqQnRQXVyX4JdK33bF9qSEhwn0l4Dm2NmhoSdFA0T7EmwiJtm9w==,
@ -3581,13 +3589,13 @@ packages:
hpagent: 1.2.0 hpagent: 1.2.0
lodash-es: 4.17.21 lodash-es: 4.17.21
parse-url: 8.1.0 parse-url: 8.1.0
semantic-release: 21.0.5 semantic-release: 21.0.6
url-join: 4.0.1 url-join: 4.0.1
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/@semantic-release/npm@10.0.4(semantic-release@21.0.5): /@semantic-release/npm@10.0.4(semantic-release@21.0.6):
resolution: resolution:
{ {
integrity: sha512-6R3timIQ7VoL2QWRkc9DG8v74RQtRp7UOe/2KbNaqwJ815qOibAv65bH3RtTEhs4axEaHoZf7HDgFs5opaZ9Jw==, integrity: sha512-6R3timIQ7VoL2QWRkc9DG8v74RQtRp7UOe/2KbNaqwJ815qOibAv65bH3RtTEhs4axEaHoZf7HDgFs5opaZ9Jw==,
@ -3607,12 +3615,12 @@ packages:
rc: 1.2.8 rc: 1.2.8
read-pkg: 8.0.0 read-pkg: 8.0.0
registry-auth-token: 5.0.2 registry-auth-token: 5.0.2
semantic-release: 21.0.5 semantic-release: 21.0.6
semver: 7.5.2 semver: 7.5.2
tempy: 3.0.0 tempy: 3.0.0
dev: true dev: true
/@semantic-release/release-notes-generator@11.0.3(semantic-release@21.0.5): /@semantic-release/release-notes-generator@11.0.3(semantic-release@21.0.6):
resolution: resolution:
{ {
integrity: sha512-NU77dWKQf+QcZrv/Hcp3DPeSxglPu8hYKCipGxAPpeaneLkg6S0zfTVug4tg4mfDhZHC6RtoI7ljQDK8VoJ2Dw==, integrity: sha512-NU77dWKQf+QcZrv/Hcp3DPeSxglPu8hYKCipGxAPpeaneLkg6S0zfTVug4tg4mfDhZHC6RtoI7ljQDK8VoJ2Dw==,
@ -3631,7 +3639,7 @@ packages:
into-stream: 7.0.0 into-stream: 7.0.0
lodash-es: 4.17.21 lodash-es: 4.17.21
read-pkg-up: 9.1.0 read-pkg-up: 9.1.0
semantic-release: 21.0.5 semantic-release: 21.0.6
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
@ -3860,10 +3868,10 @@ packages:
"@types/debounce": 1.2.1 "@types/debounce": 1.2.1
dev: true dev: true
/@typescript-eslint/eslint-plugin@5.60.0(@typescript-eslint/parser@5.60.0)(eslint@8.43.0)(typescript@5.1.3): /@typescript-eslint/eslint-plugin@5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.44.0)(typescript@5.1.6):
resolution: resolution:
{ {
integrity: sha512-78B+anHLF1TI8Jn/cD0Q00TBYdMgjdOn980JfAVa9yw5sop8nyTfVOQAv6LWywkOGLclDBtv5z3oxN4w7jxyNg==, integrity: sha512-KSWsVvsJsLJv3c4e73y/Bzt7OpqMCADUO846bHcuWYSYM19bldbAeDv7dYyV0jwkbMfJ2XdlzwjhXtuD7OY6bw==,
} }
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
peerDependencies: peerDependencies:
@ -3875,26 +3883,26 @@ packages:
optional: true optional: true
dependencies: dependencies:
"@eslint-community/regexpp": 4.5.1 "@eslint-community/regexpp": 4.5.1
"@typescript-eslint/parser": 5.60.0(eslint@8.43.0)(typescript@5.1.3) "@typescript-eslint/parser": 5.60.1(eslint@8.44.0)(typescript@5.1.6)
"@typescript-eslint/scope-manager": 5.60.0 "@typescript-eslint/scope-manager": 5.60.1
"@typescript-eslint/type-utils": 5.60.0(eslint@8.43.0)(typescript@5.1.3) "@typescript-eslint/type-utils": 5.60.1(eslint@8.44.0)(typescript@5.1.6)
"@typescript-eslint/utils": 5.60.0(eslint@8.43.0)(typescript@5.1.3) "@typescript-eslint/utils": 5.60.1(eslint@8.44.0)(typescript@5.1.6)
debug: 4.3.4 debug: 4.3.4
eslint: 8.43.0 eslint: 8.44.0
grapheme-splitter: 1.0.4 grapheme-splitter: 1.0.4
ignore: 5.2.4 ignore: 5.2.4
natural-compare-lite: 1.4.0 natural-compare-lite: 1.4.0
semver: 7.5.2 semver: 7.5.2
tsutils: 3.21.0(typescript@5.1.3) tsutils: 3.21.0(typescript@5.1.6)
typescript: 5.1.3 typescript: 5.1.6
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/@typescript-eslint/parser@5.60.0(eslint@8.43.0)(typescript@5.1.3): /@typescript-eslint/parser@5.60.1(eslint@8.44.0)(typescript@5.1.6):
resolution: resolution:
{ {
integrity: sha512-jBONcBsDJ9UoTWrARkRRCgDz6wUggmH5RpQVlt7BimSwaTkTjwypGzKORXbR4/2Hqjk9hgwlon2rVQAjWNpkyQ==, integrity: sha512-pHWlc3alg2oSMGwsU/Is8hbm3XFbcrb6P5wIxcQW9NsYBfnrubl/GhVVD/Jm/t8HXhA2WncoIRfBtnCgRGV96Q==,
} }
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
peerDependencies: peerDependencies:
@ -3904,31 +3912,31 @@ packages:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
"@typescript-eslint/scope-manager": 5.60.0 "@typescript-eslint/scope-manager": 5.60.1
"@typescript-eslint/types": 5.60.0 "@typescript-eslint/types": 5.60.1
"@typescript-eslint/typescript-estree": 5.60.0(typescript@5.1.3) "@typescript-eslint/typescript-estree": 5.60.1(typescript@5.1.6)
debug: 4.3.4 debug: 4.3.4
eslint: 8.43.0 eslint: 8.44.0
typescript: 5.1.3 typescript: 5.1.6
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/@typescript-eslint/scope-manager@5.60.0: /@typescript-eslint/scope-manager@5.60.1:
resolution: resolution:
{ {
integrity: sha512-hakuzcxPwXi2ihf9WQu1BbRj1e/Pd8ZZwVTG9kfbxAMZstKz8/9OoexIwnmLzShtsdap5U/CoQGRCWlSuPbYxQ==, integrity: sha512-Dn/LnN7fEoRD+KspEOV0xDMynEmR3iSHdgNsarlXNLGGtcUok8L4N71dxUgt3YvlO8si7E+BJ5Fe3wb5yUw7DQ==,
} }
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
dependencies: dependencies:
"@typescript-eslint/types": 5.60.0 "@typescript-eslint/types": 5.60.1
"@typescript-eslint/visitor-keys": 5.60.0 "@typescript-eslint/visitor-keys": 5.60.1
dev: true dev: true
/@typescript-eslint/type-utils@5.60.0(eslint@8.43.0)(typescript@5.1.3): /@typescript-eslint/type-utils@5.60.1(eslint@8.44.0)(typescript@5.1.6):
resolution: resolution:
{ {
integrity: sha512-X7NsRQddORMYRFH7FWo6sA9Y/zbJ8s1x1RIAtnlj6YprbToTiQnM6vxcMu7iYhdunmoC0rUWlca13D5DVHkK2g==, integrity: sha512-vN6UztYqIu05nu7JqwQGzQKUJctzs3/Hg7E2Yx8rz9J+4LgtIDFWjjl1gm3pycH0P3mHAcEUBd23LVgfrsTR8A==,
} }
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
peerDependencies: peerDependencies:
@ -3938,28 +3946,28 @@ packages:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
"@typescript-eslint/typescript-estree": 5.60.0(typescript@5.1.3) "@typescript-eslint/typescript-estree": 5.60.1(typescript@5.1.6)
"@typescript-eslint/utils": 5.60.0(eslint@8.43.0)(typescript@5.1.3) "@typescript-eslint/utils": 5.60.1(eslint@8.44.0)(typescript@5.1.6)
debug: 4.3.4 debug: 4.3.4
eslint: 8.43.0 eslint: 8.44.0
tsutils: 3.21.0(typescript@5.1.3) tsutils: 3.21.0(typescript@5.1.6)
typescript: 5.1.3 typescript: 5.1.6
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/@typescript-eslint/types@5.60.0: /@typescript-eslint/types@5.60.1:
resolution: resolution:
{ {
integrity: sha512-ascOuoCpNZBccFVNJRSC6rPq4EmJ2NkuoKnd6LDNyAQmdDnziAtxbCGWCbefG1CNzmDvd05zO36AmB7H8RzKPA==, integrity: sha512-zDcDx5fccU8BA0IDZc71bAtYIcG9PowaOwaD8rjYbqwK7dpe/UMQl3inJ4UtUK42nOCT41jTSCwg76E62JpMcg==,
} }
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
dev: true dev: true
/@typescript-eslint/typescript-estree@5.60.0(typescript@5.1.3): /@typescript-eslint/typescript-estree@5.60.1(typescript@5.1.6):
resolution: resolution:
{ {
integrity: sha512-R43thAuwarC99SnvrBmh26tc7F6sPa2B3evkXp/8q954kYL6Ro56AwASYWtEEi+4j09GbiNAHqYwNNZuNlARGQ==, integrity: sha512-hkX70J9+2M2ZT6fhti5Q2FoU9zb+GeZK2SLP1WZlvUDqdMbEKhexZODD1WodNRyO8eS+4nScvT0dts8IdaBzfw==,
} }
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
peerDependencies: peerDependencies:
@ -3968,34 +3976,34 @@ packages:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
"@typescript-eslint/types": 5.60.0 "@typescript-eslint/types": 5.60.1
"@typescript-eslint/visitor-keys": 5.60.0 "@typescript-eslint/visitor-keys": 5.60.1
debug: 4.3.4 debug: 4.3.4
globby: 11.1.0 globby: 11.1.0
is-glob: 4.0.3 is-glob: 4.0.3
semver: 7.5.2 semver: 7.5.2
tsutils: 3.21.0(typescript@5.1.3) tsutils: 3.21.0(typescript@5.1.6)
typescript: 5.1.3 typescript: 5.1.6
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/@typescript-eslint/utils@5.60.0(eslint@8.43.0)(typescript@5.1.3): /@typescript-eslint/utils@5.60.1(eslint@8.44.0)(typescript@5.1.6):
resolution: resolution:
{ {
integrity: sha512-ba51uMqDtfLQ5+xHtwlO84vkdjrqNzOnqrnwbMHMRY8Tqeme8C2Q8Fc7LajfGR+e3/4LoYiWXUM6BpIIbHJ4hQ==, integrity: sha512-tiJ7FFdFQOWssFa3gqb94Ilexyw0JVxj6vBzaSpfN/8IhoKkDuSAenUKvsSHw2A/TMpJb26izIszTXaqygkvpQ==,
} }
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
peerDependencies: peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies: dependencies:
"@eslint-community/eslint-utils": 4.4.0(eslint@8.43.0) "@eslint-community/eslint-utils": 4.4.0(eslint@8.44.0)
"@types/json-schema": 7.0.12 "@types/json-schema": 7.0.12
"@types/semver": 7.5.0 "@types/semver": 7.5.0
"@typescript-eslint/scope-manager": 5.60.0 "@typescript-eslint/scope-manager": 5.60.1
"@typescript-eslint/types": 5.60.0 "@typescript-eslint/types": 5.60.1
"@typescript-eslint/typescript-estree": 5.60.0(typescript@5.1.3) "@typescript-eslint/typescript-estree": 5.60.1(typescript@5.1.6)
eslint: 8.43.0 eslint: 8.44.0
eslint-scope: 5.1.1 eslint-scope: 5.1.1
semver: 7.5.2 semver: 7.5.2
transitivePeerDependencies: transitivePeerDependencies:
@ -4003,14 +4011,14 @@ packages:
- typescript - typescript
dev: true dev: true
/@typescript-eslint/visitor-keys@5.60.0: /@typescript-eslint/visitor-keys@5.60.1:
resolution: resolution:
{ {
integrity: sha512-wm9Uz71SbCyhUKgcaPRauBdTegUyY/ZWl8gLwD/i/ybJqscrrdVSFImpvUz16BLPChIeKBK5Fa9s6KDQjsjyWw==, integrity: sha512-xEYIxKcultP6E/RMKqube11pGjXH1DCo60mQoWhVYyKfLkwbIVVjYxmOenNMxILx0TjCujPTjjnTIVzm09TXIw==,
} }
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
dependencies: dependencies:
"@typescript-eslint/types": 5.60.0 "@typescript-eslint/types": 5.60.1
eslint-visitor-keys: 3.4.1 eslint-visitor-keys: 3.4.1
dev: true dev: true
@ -5243,7 +5251,7 @@ packages:
integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==,
} }
/cosmiconfig-typescript-loader@4.3.0(@types/node@20.3.1)(cosmiconfig@8.2.0)(ts-node@10.9.1)(typescript@5.1.3): /cosmiconfig-typescript-loader@4.3.0(@types/node@20.3.1)(cosmiconfig@8.2.0)(ts-node@10.9.1)(typescript@5.1.6):
resolution: resolution:
{ {
integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==, integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==,
@ -5257,8 +5265,8 @@ packages:
dependencies: dependencies:
"@types/node": 20.3.1 "@types/node": 20.3.1
cosmiconfig: 8.2.0 cosmiconfig: 8.2.0
ts-node: 10.9.1(@types/node@20.3.1)(typescript@5.1.3) ts-node: 10.9.1(@types/node@20.3.1)(typescript@5.1.6)
typescript: 5.1.3 typescript: 5.1.6
dev: true dev: true
/cosmiconfig@8.2.0: /cosmiconfig@8.2.0:
@ -6246,7 +6254,7 @@ packages:
source-map: 0.1.43 source-map: 0.1.43
dev: false dev: false
/eslint-config-prettier@8.8.0(eslint@8.43.0): /eslint-config-prettier@8.8.0(eslint@8.44.0):
resolution: resolution:
{ {
integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==, integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==,
@ -6255,10 +6263,10 @@ packages:
peerDependencies: peerDependencies:
eslint: ">=7.0.0" eslint: ">=7.0.0"
dependencies: dependencies:
eslint: 8.43.0 eslint: 8.44.0
dev: true dev: true
/eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.8): /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.44.0)(prettier@2.8.8):
resolution: resolution:
{ {
integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==, integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==,
@ -6272,8 +6280,8 @@ packages:
eslint-config-prettier: eslint-config-prettier:
optional: true optional: true
dependencies: dependencies:
eslint: 8.43.0 eslint: 8.44.0
eslint-config-prettier: 8.8.0(eslint@8.43.0) eslint-config-prettier: 8.8.0(eslint@8.44.0)
prettier: 2.8.8 prettier: 2.8.8
prettier-linter-helpers: 1.0.0 prettier-linter-helpers: 1.0.0
dev: true dev: true
@ -6308,18 +6316,18 @@ packages:
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
dev: true dev: true
/eslint@8.43.0: /eslint@8.44.0:
resolution: resolution:
{ {
integrity: sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==, integrity: sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==,
} }
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
hasBin: true hasBin: true
dependencies: dependencies:
"@eslint-community/eslint-utils": 4.4.0(eslint@8.43.0) "@eslint-community/eslint-utils": 4.4.0(eslint@8.44.0)
"@eslint-community/regexpp": 4.5.1 "@eslint-community/regexpp": 4.5.1
"@eslint/eslintrc": 2.0.3 "@eslint/eslintrc": 2.1.0
"@eslint/js": 8.43.0 "@eslint/js": 8.44.0
"@humanwhocodes/config-array": 0.11.10 "@humanwhocodes/config-array": 0.11.10
"@humanwhocodes/module-importer": 1.0.1 "@humanwhocodes/module-importer": 1.0.1
"@nodelib/fs.walk": 1.2.8 "@nodelib/fs.walk": 1.2.8
@ -6331,7 +6339,7 @@ packages:
escape-string-regexp: 4.0.0 escape-string-regexp: 4.0.0
eslint-scope: 7.2.0 eslint-scope: 7.2.0
eslint-visitor-keys: 3.4.1 eslint-visitor-keys: 3.4.1
espree: 9.5.2 espree: 9.6.0
esquery: 1.5.0 esquery: 1.5.0
esutils: 2.0.3 esutils: 2.0.3
fast-deep-equal: 3.1.3 fast-deep-equal: 3.1.3
@ -6351,7 +6359,7 @@ packages:
lodash.merge: 4.6.2 lodash.merge: 4.6.2
minimatch: 3.1.2 minimatch: 3.1.2
natural-compare: 1.4.0 natural-compare: 1.4.0
optionator: 0.9.1 optionator: 0.9.3
strip-ansi: 6.0.1 strip-ansi: 6.0.1
strip-json-comments: 3.1.1 strip-json-comments: 3.1.1
text-table: 0.2.0 text-table: 0.2.0
@ -6359,10 +6367,10 @@ packages:
- supports-color - supports-color
dev: true dev: true
/espree@9.5.2: /espree@9.6.0:
resolution: resolution:
{ {
integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==, integrity: sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==,
} }
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
dependencies: dependencies:
@ -8272,10 +8280,10 @@ packages:
engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
dev: true dev: true
/lint-staged@13.2.2: /lint-staged@13.2.3:
resolution: resolution:
{ {
integrity: sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA==, integrity: sha512-zVVEXLuQIhr1Y7R7YAWx4TZLdvuzk7DnmrsTNL0fax6Z3jrpFcas+vKbzxhhvp6TA55m1SQuWkpzI1qbfDZbAg==,
} }
engines: { node: ^14.13.1 || >=16.0.0 } engines: { node: ^14.13.1 || >=16.0.0 }
hasBin: true hasBin: true
@ -9300,19 +9308,19 @@ packages:
word-wrap: 1.2.3 word-wrap: 1.2.3
dev: false dev: false
/optionator@0.9.1: /optionator@0.9.3:
resolution: resolution:
{ {
integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==, integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==,
} }
engines: { node: ">= 0.8.0" } engines: { node: ">= 0.8.0" }
dependencies: dependencies:
"@aashutoshrathi/word-wrap": 1.2.6
deep-is: 0.1.4 deep-is: 0.1.4
fast-levenshtein: 2.0.6 fast-levenshtein: 2.0.6
levn: 0.4.1 levn: 0.4.1
prelude-ls: 1.2.1 prelude-ls: 1.2.1
type-check: 0.4.0 type-check: 0.4.0
word-wrap: 1.2.3
dev: true dev: true
/ora@5.4.1: /ora@5.4.1:
@ -10128,7 +10136,7 @@ packages:
dependencies: dependencies:
lilconfig: 2.1.0 lilconfig: 2.1.0
postcss: 8.4.24 postcss: 8.4.24
ts-node: 10.9.1(@types/node@20.3.1)(typescript@5.1.3) ts-node: 10.9.1(@types/node@20.3.1)(typescript@5.1.6)
yaml: 2.3.1 yaml: 2.3.1
dev: true dev: true
@ -10715,7 +10723,7 @@ packages:
fast-diff: 1.3.0 fast-diff: 1.3.0
dev: true dev: true
/prettier-plugin-organize-imports@3.2.2(prettier@2.8.8)(typescript@5.1.3): /prettier-plugin-organize-imports@3.2.2(prettier@2.8.8)(typescript@5.1.6):
resolution: resolution:
{ {
integrity: sha512-e97lE6odGSiHonHJMTYC0q0iLXQyw0u5z/PJpvP/3vRy6/Zi9kLBwFAbEGjDzIowpjQv8b+J04PDamoUSQbzGA==, integrity: sha512-e97lE6odGSiHonHJMTYC0q0iLXQyw0u5z/PJpvP/3vRy6/Zi9kLBwFAbEGjDzIowpjQv8b+J04PDamoUSQbzGA==,
@ -10732,7 +10740,7 @@ packages:
optional: true optional: true
dependencies: dependencies:
prettier: 2.8.8 prettier: 2.8.8
typescript: 5.1.3 typescript: 5.1.6
dev: true dev: true
/prettier@2.8.8: /prettier@2.8.8:
@ -11349,19 +11357,19 @@ packages:
get-assigned-identifiers: 1.2.0 get-assigned-identifiers: 1.2.0
dev: false dev: false
/semantic-release@21.0.5: /semantic-release@21.0.6:
resolution: resolution:
{ {
integrity: sha512-mCc7Hx9Ro/1Clk9tLLgwQIQuiEzx+1OX12EazvNysnx1VG4eaNJE9b9IyWtTxyFxaFYi7nM5VB5ZDVzheHTDPA==, integrity: sha512-NDyosObAwUNzPpdf+mpL49Xy+5iYHjdWM34LBNdbdYv9vBLbw+eCCDihxcqPh+f9m4ZzlBrYCkHUaZv2vPGW9A==,
} }
engines: { node: ">=18" } engines: { node: ">=18" }
hasBin: true hasBin: true
dependencies: dependencies:
"@semantic-release/commit-analyzer": 10.0.1(semantic-release@21.0.5) "@semantic-release/commit-analyzer": 10.0.1(semantic-release@21.0.6)
"@semantic-release/error": 4.0.0 "@semantic-release/error": 4.0.0
"@semantic-release/github": 9.0.3(semantic-release@21.0.5) "@semantic-release/github": 9.0.3(semantic-release@21.0.6)
"@semantic-release/npm": 10.0.4(semantic-release@21.0.5) "@semantic-release/npm": 10.0.4(semantic-release@21.0.6)
"@semantic-release/release-notes-generator": 11.0.3(semantic-release@21.0.5) "@semantic-release/release-notes-generator": 11.0.3(semantic-release@21.0.6)
aggregate-error: 4.0.1 aggregate-error: 4.0.1
cosmiconfig: 8.2.0 cosmiconfig: 8.2.0
debug: 4.3.4 debug: 4.3.4
@ -11424,17 +11432,6 @@ packages:
hasBin: true hasBin: true
dev: true dev: true
/semver@7.5.0:
resolution:
{
integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==,
}
engines: { node: ">=10" }
hasBin: true
dependencies:
lru-cache: 6.0.0
dev: true
/semver@7.5.2: /semver@7.5.2:
resolution: resolution:
{ {
@ -12393,7 +12390,7 @@ packages:
} }
dev: true dev: true
/ts-node@10.9.1(@types/node@20.3.1)(typescript@5.1.3): /ts-node@10.9.1(@types/node@20.3.1)(typescript@5.1.6):
resolution: resolution:
{ {
integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==, integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==,
@ -12422,7 +12419,7 @@ packages:
create-require: 1.1.1 create-require: 1.1.1
diff: 4.0.2 diff: 4.0.2
make-error: 1.3.6 make-error: 1.3.6
typescript: 5.1.3 typescript: 5.1.6
v8-compile-cache-lib: 3.0.1 v8-compile-cache-lib: 3.0.1
yn: 3.1.1 yn: 3.1.1
dev: true dev: true
@ -12440,7 +12437,7 @@ packages:
integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==, integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==,
} }
/tsutils@3.21.0(typescript@5.1.3): /tsutils@3.21.0(typescript@5.1.6):
resolution: resolution:
{ {
integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==,
@ -12450,7 +12447,7 @@ packages:
typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
dependencies: dependencies:
tslib: 1.14.1 tslib: 1.14.1
typescript: 5.1.3 typescript: 5.1.6
dev: true dev: true
/type-check@0.3.2: /type-check@0.3.2:
@ -12577,10 +12574,10 @@ packages:
} }
dev: false dev: false
/typescript@5.1.3: /typescript@5.1.6:
resolution: resolution:
{ {
integrity: sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==, integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==,
} }
engines: { node: ">=14.17" } engines: { node: ">=14.17" }
hasBin: true hasBin: true

View File

@ -20,8 +20,8 @@
required="true" required="true"
class="max-w-sm" class="max-w-sm"
/> />
<audio-clipper start-time="<?= old('start_time', 0) ?>" duration="<?= old('duration', 30) ?>" min-duration="10" volume=".5" height="50" trim-start-label="<?= lang('VideoClip.form.trim_start') ?>" trim-end-label="<?= lang('VideoClip.form.trim_end') ?>" class="mt-8"> <audio-clipper start-time="<?= old('start_time', 0) ?>" audio-duration="<?= $episode->audio->duration ?>" duration="<?= old('duration', $episode->audio->duration >= 60 ? 60 : $episode->audio->duration) ?>" min-duration="10" volume=".5" height="50" trim-start-label="<?= lang('VideoClip.form.trim_start') ?>" trim-end-label="<?= lang('VideoClip.form.trim_end') ?>" class="mt-8">
<audio slot="audio" src="<?= $episode->audio_url ?>" preload="auto"> <audio slot="audio" src="<?= $episode->audio->file_url ?>" preload="auto">
Your browser does not support the <code>audio</code> element. Your browser does not support the <code>audio</code> element.
</audio> </audio>
<input slot="start_time" type="number" name="start_time" placeholder="<?= lang('VideoClip.form.start_time') ?>" step="0.001" /> <input slot="start_time" type="number" name="start_time" placeholder="<?= lang('VideoClip.form.start_time') ?>" step="0.001" />

View File

@ -17,7 +17,7 @@
<video-clip-previewer duration="<?= old('duration', 30) ?>"> <video-clip-previewer duration="<?= old('duration', 30) ?>">
<img slot="preview_image" src="<?= $episode->cover->thumbnail_url ?>" alt="<?= $episode->cover->description ?>" loading="lazy" /> <img slot="preview_image" src="<?= $episode->cover->thumbnail_url ?>" alt="<?= $episode->cover->description ?>" loading="lazy" />
</video-clip-previewer> </video-clip-previewer>
<audio-clipper start-time="<?= old('start_time', 0) ?>" duration="<?= old('duration', 30) ?>" min-duration="10" volume=".5" height="50" trim-start-label="<?= lang('VideoClip.form.trim_start') ?>" trim-end-label="<?= lang('VideoClip.form.trim_end') ?>"> <audio-clipper start-time="<?= old('start_time', 0) ?>" audio-duration="<?= $episode->audio->duration ?>" duration="<?= old('duration', $episode->audio->duration >= 60 ? 60 : $episode->audio->duration) ?>" volume=".5" height="50" trim-start-label="<?= lang('VideoClip.form.trim_start') ?>" trim-end-label="<?= lang('VideoClip.form.trim_end') ?>">
<audio slot="audio" src="<?= $episode->audio->file_url ?>" preload="auto"> <audio slot="audio" src="<?= $episode->audio->file_url ?>" preload="auto">
Your browser does not support the <code>audio</code> element. Your browser does not support the <code>audio</code> element.
</audio> </audio>