diff --git a/.github/workflows/publish-nodejs-package.yml b/.github/workflows/publish-nodejs-package.yml
new file mode 100644
index 0000000..af2deb1
--- /dev/null
+++ b/.github/workflows/publish-nodejs-package.yml
@@ -0,0 +1,34 @@
+# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
+# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
+name: Create Node.js package
+
+on:
+ release:
+ types: [created]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
+ with:
+ node-version: 20
+ - run: npm ci
+
+ publish-gpr:
+ needs: build
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ packages: write
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
+ with:
+ node-version: 20
+ registry-url: https://npm.pkg.github.com/
+ - run: npm ci
+ - run: npm publish
+ env:
+ NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
\ No newline at end of file
diff --git a/README.md b/README.md
index d677ca4..98c241d 100644
--- a/README.md
+++ b/README.md
@@ -54,76 +54,6 @@ export default defineHook((register, context) => {
-### `deleteUnusedM2AItems`
-
-Used to delete related M2A items that loose their relation and should not be kept, which is not possible via directus itself.
-
-Goes through all `junctionCollections` and stores the keys for each found `anyCollection` item. Then deletes all `anyCollections` items that are not included in the stored keys.
-
-Example
-
-```ts
-// src/index.ts
-import { defineHook } from "@directus/extensions-sdk";
-import {
- toJunctionCollectionM2A,
- toAnyCollectionM2A,
- deleteUnusedM2AItems,
-} from "directus-hook-library";
-
-export default defineHook((register, context) => {
- deleteUnusedM2AItems(register, context, {
- anyCollections: [
- "gallery",
- "video",
- "definition_list",
- "related_content",
- ].map(toAnyCollectionM2A),
- junctionCollections: ["page_editor_nodes", "post_editor_nodes"].map(
- toJunctionCollectionM2A
- ),
- });
-});
-```
-
-**`toAnyCollectionM2A`** ... maps the array elements to objects of type `AnyCollection` with a default `key` field of `“id”`.
-
-**`toJunctionCollectionM2A`** ... maps the array elements to objects of type `JunctionCollection` with a default `foreignKey` field of `“item”` and a default `foreignCollection` field of `“collection”`
-
-
-
-### `preventDeletingM2AItems`
-
-Used for M2A items to prevent their deletion, which is not possible via directus itself.
-
-Goes through all `junctionCollections` and searches for the `relatedCollection` items to delete. If found, prevents deletion.
-
-> Find M2A items by searching the schema for `“one_allowed_collections”` and look for collections that are deletable/reachable by the app/user (`many_collection` goes to the `junctionCollections`)
-
-Example
-
-```ts
-// src/index.ts
-import { defineHook } from "@directus/extensions-sdk";
-import {
- toJunctionCollectionM2A,
- preventDeletingM2AItems,
-} from "directus-hook-library";
-
-export default defineHook((register, context) => {
- preventDeletingM2AItems(register, context, {
- relatedCollections: ["video"],
- junctionCollections: ["page_editor_nodes", "post_editor_nodes"].map(
- toJunctionCollectionM2A
- ),
- });
-});
-```
-
-**`toJunctionCollectionM2A`** ... maps the array elements to objects of type `JunctionCollection` with a default `foreignKey` field of `“item”` and a default `foreignCollection` field of `“collection”`
-
-
-
### `replaceDeletedUserReferences`
This replaces the reference to a deleted user with a reference to the current user in the directus_files collection.
@@ -204,3 +134,437 @@ PROJECT_URL=http://localhost:3000
```
+
+
+
+
+
+## Many to Any (M2A) hooks
+This library provides hooks implementing cascading functionality for `M2A` relations, which is not possible via directus itself.\
+For more information and `configuration` details, read the following sections referring to each function.
+
+
+
+ M2A configuration
+
+The configuration object for all `M2A` type hooks is the same.\
+Configuration objects are described by:
+
+- ONE `junctionCollection` entry:
+ ```ts
+ export type JunctionCollection = {
+ collectionName: string;
+ foreignKeyFieldName: string;
+ itemDiscriminatorFieldName: string;
+ };
+ ```
+ Described by:
+ - collectionName: The name of the junction collection (`article_block` in examples)
+ - foreignKeyField: The name of the field containing the foreign key for related any items. (`item` if left as Directus default, left as default in examples)
+ - itemDiscriminatorFieldName: The name of the field containing the table containing the related item. (`collection` if left as Directus default, left as default in examples)
+
+- MANY `anyCollection` entries:
+ ```ts
+ export type AnyCollection = {
+ collectionName: string;
+ primaryKeyFieldName: string;
+ };
+ ```
+ Described by:
+ - collectionName: The name of the junction collection (`text_block`, `image_block` or `video_block` in examples)
+ - primaryKeyFieldName: The name of the field containing the primary key, which is used to create a relation of items inside of `junctionCollection` collections. (`id` if left as Directus default, left as default in examples)
+
+
+Grouped together as an object describing the relation called `M2AConfig`:
+```ts
+export type M2AConfig = {
+ anyCollections: AnyCollection[];
+ junctionCollection: JunctionCollection;
+};
+```
+
+
+
+
+
+
+
+
+
+ Helper functions
+
+Two helper functions are provided, reducing configuration repetition if default fields are left as default.\
+The specified helper functions are:
+
+- `toJunctionCollectionM2A` (optional):
+
+ This functions takes the `collectionName` as string and sets the other properties to Directus defaults.\
+ It is used in the following examples, but customized `JunctionCollection` items can also be passed.\
+ For details regarding default values [see M2A configuration](#m2a-configuration) or [Directus documentation](https://docs.directus.io/app/data-model/relationships.html#many-to-any-m2a).
+ ```ts
+ export const toJunctionCollectionM2A = (collectionName: string): JunctionCollection => ({
+ collectionName,
+ foreignKeyFieldName: "item",
+ itemDiscriminatorFieldName: "collection",
+ });
+ ```
+
+- `toAnyCollectionM2A` (optional):
+
+ This functions takes the `collectionName` as string and sets the other properties to Directus defaults.\
+ It is used in the following examples, but customized `AnyCollection` items can also be passed.\
+ For details regarding default values [see M2A configuration](#m2a-configuration) or [Directus documentation](https://docs.directus.io/app/data-model/relationships.html#many-to-any-m2a).
+ ```ts
+ export const toAnyCollectionM2A = (collectionName: string): AnyCollection => ({
+ collectionName,
+ primaryKeyFieldName: "id",
+ });
+ ```
+
+
+
+
+
+
+
+### `deleteUnusedItemFilterM2A`
+Used to cascade deletes performed on `junctionCollection` items to all configured `anyCollections` (on `junctionCollection` delete, the related `anyCollection` item is also deleted).
+
+Each `Filter` instance is configured with:
+- a `Directus register function` (see [register function](https://docs.directus.io/extensions/hooks.html#register-function))
+- a `Directus extension context` (see [context object](https://docs.directus.io/extensions/hooks.html#register-function))
+- a `M2AConfig` object, containing configuration as specified in [M2A configuration](#m2a-configuration)
+On delete of an item inside a configured `junctionCollection` item, the `anyCollection` item which the junction collection item relates to is also deleted.\
+Works like `M2O`, `O2M` or `M2M` selection of `DELETE CASCADE`.
+
+
+Examples
+
+Basic in code usage/configuration (configure a single M2A relation):
+```ts
+// src/index.ts
+import { defineHook } from "@directus/extensions-sdk";
+import {
+ toJunctionCollectionM2A,
+ toAnyCollectionM2A,
+ deleteUnusedItemFilterM2A,
+} from "directus-hook-library";
+
+export default defineHook((register, context) => {
+ deleteUnusedItemFilterM2A(register, context, {
+ anyCollections: [
+ "text_block",
+ "image_block",
+ "video_block"
+ ].map(toAnyCollectionM2A),
+ junctionCollection: toJunctionCollectionM2A("article_block")
+ });
+});
+```
+
+Advanced in code usage/configuration (configure multiple M2A relations with multiple junction tables referencing identical item pools):
+```ts
+// src/index.ts
+import { defineHook } from "@directus/extensions-sdk";
+import {
+ toJunctionCollectionM2A,
+ toAnyCollectionM2A,
+ deleteUnusedItemFilterM2A,
+} from "directus-hook-library";
+
+const advancedExampleConfig = [
+ {
+ configCollections: [
+ "image_block",
+ "video_block",
+ "text_block"
+ ],
+ configJunctions: [
+ "article_block",
+ "blogpost_block"
+ ]
+ },
+ {
+ configCollections: [
+ "pizza_item",
+ "pasta_item",
+ "dessert_item"
+ ],
+ configJunctions: [
+ "order_item"
+ ]
+ },
+]
+
+export default defineHook((register, context) => {
+ for (const relationConfig of advancedExampleConfig) {
+ for (const junctionCollectionName of relationConfig.configJunctions) {
+ deleteUnusedItemFilterM2A(register, context, {
+ anyCollections: relationConfig.configCollections.map(toAnyCollectionM2A),
+ junctionCollection: toJunctionCollectionM2A(junctionCollectionName)
+ });
+ }
+ }
+});
+```
+
+
+
+
+
+
+### `deleteUnusedRelationActionM2A`
+Used to cascade deletes performed on `anyCollection` items to a configured `junctionCollection` (on `anyCollection` item delete, relating items in `junctionCollection` are also deleted).
+
+Each `Action` instance is configured with:
+- a `Directus register function` (see [register function](https://docs.directus.io/extensions/hooks.html#register-function))
+- a `Directus extension context` (see [context object](https://docs.directus.io/extensions/hooks.html#register-function))
+- a `M2AConfig` object, containing configuration as specified in [M2A configuration](#m2a-configuration)
+On delete of an item inside a configured `any` collection, `junction` entries pointing to the deleted `any` item are deleted.\
+Works like `M2O`, `O2M` or `M2M` selection of `DELETE CASCADE`.
+
+
+Examples
+
+Basic in code usage/configuration (configure a single M2A relation):
+```ts
+// src/index.ts
+import { defineHook } from "@directus/extensions-sdk";
+import {
+ toJunctionCollectionM2A,
+ toAnyCollectionM2A,
+ deleteUnusedRelationActionM2A,
+} from "directus-hook-library";
+
+export default defineHook((register, context) => {
+ deleteUnusedRelationActionM2A(register, context, {
+ anyCollections: [
+ "text_block",
+ "image_block",
+ "video_block"
+ ].map(toAnyCollectionM2A),
+ junctionCollection: toJunctionCollectionM2A("article_block")
+ });
+});
+```
+
+Advanced in code usage/configuration (configure multiple M2A relations with multiple junction tables referencing identical item pools):
+```ts
+// src/index.ts
+import { defineHook } from "@directus/extensions-sdk";
+import {
+ toJunctionCollectionM2A,
+ toAnyCollectionM2A,
+ deleteUnusedRelationActionM2A,
+} from "directus-hook-library";
+
+const advancedExampleConfig = [
+ {
+ configCollections: [
+ "image_block",
+ "video_block",
+ "text_block"
+ ],
+ configJunctions: [
+ "article_block",
+ "blogpost_block"
+ ]
+ },
+ {
+ configCollections: [
+ "pizza_item",
+ "pasta_item",
+ "dessert_item"
+ ],
+ configJunctions: [
+ "order_item"
+ ]
+ },
+]
+
+export default defineHook((register, context) => {
+ for (const relationConfig of advancedExampleConfig) {
+ for (const junctionCollectionName of relationConfig.configJunctions) {
+ deleteUnusedRelationActionM2A(register, context, {
+ anyCollections: relationConfig.configCollections.map(toAnyCollectionM2A),
+ junctionCollection: toJunctionCollectionM2A(junctionCollectionName)
+ });
+ }
+ }
+});
+```
+
+
+
+
+
+
+### `preventItemDeleteFilterM2A`
+Used to prevent deletes performed on `anyCollection` if the related `junctionCollection` contains a relation to deleted `anyCollection` item (delete request for `junctionCollection` item should be prevented).
+
+Each `Filter` instance is configured with:
+- a `Directus register function` (see [register function](https://docs.directus.io/extensions/hooks.html#register-function))
+- a `Directus extension context` (see [context object](https://docs.directus.io/extensions/hooks.html#register-function))
+- a `M2AConfig` object, containing configuration as specified in [M2A configuration](#m2a-configuration)
+On delete request of an `anyCollection` item, configured `junctionCollection` is checked.\
+If an item containing a relation still exists, the delete request is denied and the operation is prohibited.\
+Works like `M2O`, `O2M` or `M2M` selection of `DELETE RESTRICT`.
+
+
+Examples
+
+Basic in code usage/configuration (configure a single M2A relation):
+```ts
+// src/index.ts
+import { defineHook } from "@directus/extensions-sdk";
+import {
+ toJunctionCollectionM2A,
+ toAnyCollectionM2A,
+ preventItemDeleteFilterM2A,
+} from "directus-hook-library";
+
+export default defineHook((register, context) => {
+ preventItemDeleteFilterM2A(register, context, {
+ anyCollections: [
+ "text_block",
+ "image_block",
+ "video_block"
+ ].map(toAnyCollectionM2A),
+ junctionCollection: toJunctionCollectionM2A("article_block")
+ });
+});
+```
+
+Advanced in code usage/configuration (configure multiple M2A relations with multiple junction tables referencing identical item pools):
+```ts
+// src/index.ts
+import { defineHook } from "@directus/extensions-sdk";
+import {
+ toJunctionCollectionM2A,
+ toAnyCollectionM2A,
+ preventItemDeleteFilterM2A,
+} from "directus-hook-library";
+
+const advancedExampleConfig = [
+ {
+ configCollections: [
+ "image_block",
+ "video_block",
+ "text_block"
+ ],
+ configJunctions: [
+ "article_block",
+ "blogpost_block"
+ ]
+ },
+ {
+ configCollections: [
+ "pizza_item",
+ "pasta_item",
+ "dessert_item"
+ ],
+ configJunctions: [
+ "order_item"
+ ]
+ },
+]
+
+export default defineHook((register, context) => {
+ for (const relationConfig of advancedExampleConfig) {
+ for (const junctionCollectionName of relationConfig.configJunctions) {
+ preventItemDeleteFilterM2A(register, context, {
+ anyCollections: relationConfig.configCollections.map(toAnyCollectionM2A),
+ junctionCollection: toJunctionCollectionM2A(junctionCollectionName)
+ });
+ }
+ }
+});
+```
+
+
+
+
+
+
+### `preventRelationDeleteFilterM2A`
+Used to prevent deletes performed on `junctionCollection` if the related `anyCollection` item still exists (delete request for `anyCollection` item should be prevented).
+
+Each `Filter` instance is configured with:
+- a `Directus register function` (see [register function](https://docs.directus.io/extensions/hooks.html#register-function))
+- a `Directus extension context` (see [context object](https://docs.directus.io/extensions/hooks.html#register-function))
+- a `M2AConfig` object, containing configuration as specified in [M2A configuration](#m2a-configuration)
+On delete request of a `junctionCollection` item, configured `anyCollections` are checked.\
+If related item still exists, the delete request is denied and the operation is prohibited.\
+Works like `M2O`, `O2M` or `M2M` selection of `DELETE RESTRICT`.
+
+
+Examples
+
+Basic in code usage/configuration (configure a single M2A relation):
+```ts
+// src/index.ts
+import { defineHook } from "@directus/extensions-sdk";
+import {
+ toJunctionCollectionM2A,
+ toAnyCollectionM2A,
+ preventRelationDeleteFilterM2A,
+} from "directus-hook-library";
+
+export default defineHook((register, context) => {
+ preventRelationDeleteFilterM2A(register, context, {
+ anyCollections: [
+ "text_block",
+ "image_block",
+ "video_block"
+ ].map(toAnyCollectionM2A),
+ junctionCollection: toJunctionCollectionM2A("article_block")
+ });
+});
+```
+
+Advanced in code usage/configuration (configure multiple M2A relations with multiple junction tables referencing identical item pools):
+```ts
+// src/index.ts
+import { defineHook } from "@directus/extensions-sdk";
+import {
+ toJunctionCollectionM2A,
+ toAnyCollectionM2A,
+ preventRelationDeleteFilterM2A,
+} from "directus-hook-library";
+
+const advancedExampleConfig = [
+ {
+ configCollections: [
+ "image_block",
+ "video_block",
+ "text_block"
+ ],
+ configJunctions: [
+ "article_block",
+ "blogpost_block"
+ ]
+ },
+ {
+ configCollections: [
+ "pizza_item",
+ "pasta_item",
+ "dessert_item"
+ ],
+ configJunctions: [
+ "order_item"
+ ]
+ },
+]
+
+export default defineHook((register, context) => {
+ for (const relationConfig of advancedExampleConfig) {
+ for (const junctionCollectionName of relationConfig.configJunctions) {
+ preventRelationDeleteFilterM2A(register, context, {
+ anyCollections: relationConfig.configCollections.map(toAnyCollectionM2A),
+ junctionCollection: toJunctionCollectionM2A(junctionCollectionName)
+ });
+ }
+ }
+});
+```
+
diff --git a/index.ts b/index.ts
index 4b57a4f..4f8776d 100644
--- a/index.ts
+++ b/index.ts
@@ -1,21 +1,24 @@
import deleteUnusedM2OItems from "./lib/deleteUnusedM2OItems";
-import {
- toJunctionCollectionM2A,
- preventDeletingM2AItems,
- deleteUnusedM2AItems,
- toAnyCollectionM2A,
-} from "./lib/deletingM2AItems";
import replaceDeletedUserReferences from "./lib/replaceDeletedUserReferences";
import resetFieldsHiddenByOption from "./lib/resetFieldsHiddenByOption";
import setProjectSettingsFromEnvVars from "./lib/setProjectSettingsFromEnvVars";
export {
+ //// M2O HOOKS //////////////////////////////////
deleteUnusedM2OItems,
- toJunctionCollectionM2A,
- preventDeletingM2AItems,
- deleteUnusedM2AItems,
- toAnyCollectionM2A,
+
+ //// UTIL HOOKS //////////////////////////////////
replaceDeletedUserReferences,
resetFieldsHiddenByOption,
setProjectSettingsFromEnvVars,
};
+
+//// M2A OPERATION TYPES //////////////////////////////////
+export * from './lib/m2a/shared/types';
+
+//// M2A HOOKS //////////////////////////////////
+export * from "./lib/m2a/itemRelationCascade";
+export * from "./lib/m2a/relationItemCascade";
+
+ //// HELPERS //////////////////////////////////
+export { toAnyCollectionM2A, toJunctionCollectionM2A } from "./lib/m2a/shared/helper-functions";
diff --git a/lib/deleteUnusedM2OItems.ts b/lib/deleteUnusedM2OItems.ts
index 977c4f4..86ed804 100644
--- a/lib/deleteUnusedM2OItems.ts
+++ b/lib/deleteUnusedM2OItems.ts
@@ -1,9 +1,8 @@
// This deletes all items from a collection `oneCollection`, where all (reverse) related fields `manyField of manyCollections` are null
// This makes sense for a M2O relation that is used like a O2O relation
-import type { HookExtensionContext } from "@directus/extensions";
+import type { HookExtensionContext, RegisterFunctions } from "@directus/extensions";
import type { EventContext } from "@directus/types";
-import type { RegisterFunctions } from "./types";
type ManyField = string;
diff --git a/lib/deletingM2AItems.ts b/lib/deletingM2AItems.ts
deleted file mode 100644
index 2aff1db..0000000
--- a/lib/deletingM2AItems.ts
+++ /dev/null
@@ -1,178 +0,0 @@
-import { createError } from "@directus/errors";
-import type { HookExtensionContext } from "@directus/extensions";
-import type { EventContext, PrimaryKey } from "@directus/types";
-import type { RegisterFunctions } from "./types";
-
-type JunctionCollection = {
- name: string;
- foreignKey: string;
- foreignCollection: string;
-};
-
-type AnyCollection = {
- name: string;
- key: string;
-};
-
-type ContextPreventDeletion = {
- /** collections which items should not be deleted, if they are related to a junctionCollection */
- relatedCollections: string[];
- /** collections to search in */
- junctionCollections: JunctionCollection[];
-};
-
-type ContextReallyDeleteUnused = {
- /** collections to search in */
- junctionCollections: JunctionCollection[];
- /** collections that potentially have unused items */
- anyCollections: AnyCollection[];
-};
-
-/** maps the array elements to objects of type JunctionCollection with a default `foreignKey` field of `“item”` and a default `foreignCollection` field of `“collection”` */
-export const toJunctionCollectionM2A = (name: string): JunctionCollection => ({
- name,
- foreignKey: "item",
- foreignCollection: "collection",
-});
-
-/** maps the array elements to objects of type AnyCollection with a default `key` field of `“id”` */
-export const toAnyCollectionM2A = (name: string): AnyCollection => ({
- name,
- key: "id",
-});
-
-/**
- * Go through all `junctionCollections` and search for the `relatedCollection` items to delete. If found, prevent deletion.
- *
- * Used for M2A items to prevent their deletion, which is not possible via directus itself.
- *
- * Find M2A items by searching the schema for `“one_allowed_collections”` and look for collections that are deletable/reachable by the app/user (`many_collection` goes to the `junctionCollections`)
- */
-export const preventDeletingM2AItems = (
- { filter }: RegisterFunctions,
- { services, getSchema }: HookExtensionContext,
- { relatedCollections, junctionCollections }: ContextPreventDeletion
-) => {
- const { ItemsService } = services;
-
- for (const collection of relatedCollections) {
- filter(`${collection}.items.delete`, handler);
- }
-
- async function handler(
- itemsToDelete: any,
- meta: Record,
- context: EventContext
- ) {
- for (const itemToDelete of itemsToDelete) {
- for (const junctionCollection of junctionCollections) {
- const itemsService = new ItemsService(junctionCollection.name, {
- ...context,
- schema: await getSchema(),
- });
-
- const relatedItems = await itemsService.readByQuery({
- limit: -1,
- filter: {
- _and: [
- {
- [junctionCollection.foreignKey]: {
- _eq: itemToDelete,
- },
- },
- {
- [junctionCollection.foreignCollection!]: {
- _eq: meta.collection,
- },
- },
- ],
- },
- fields: [],
- });
-
- if (relatedItems?.length) {
- const InvalidDeletionException = createError(
- "InvalidDeletionException",
- `This item is related to “${junctionCollection.name}” and therefore cannot be deleted!`
- );
- throw new InvalidDeletionException();
- }
- }
- }
-
- return itemsToDelete;
- }
-};
-
-/**
- * Go through all `junctionCollections` and store the keys for each found `anyCollection` item. Then delete all `anyCollections` items that are not included in the stored keys.
- *
- * Used to delete related M2A items that should not be kept, which is not possible via directus itself.
- */
-export const deleteUnusedM2AItems = (
- { action }: RegisterFunctions,
- { services, getSchema }: HookExtensionContext,
- { anyCollections, junctionCollections }: ContextReallyDeleteUnused
-) => {
- const { ItemsService } = services;
-
- action("items.delete", handler);
-
- async function handler(meta: Record, context: EventContext) {
- for (const anyCollection of anyCollections) {
- const usedAnyCollectionItems = await _getUsedAnyCollectionItems(
- anyCollection
- );
-
- const anyItemsService = new ItemsService(anyCollection.name, {
- ...context,
- schema: await getSchema(),
- });
-
- await anyItemsService.deleteByQuery({
- limit: -1,
- filter: {
- [anyCollection.key]: {
- _nin: usedAnyCollectionItems,
- },
- },
- });
- }
-
- async function _getUsedAnyCollectionItems(
- anyCollection: AnyCollection
- ) {
- const usedItems: PrimaryKey[] = [];
-
- for (const junctionCollection of junctionCollections) {
- const junctionItemsService = new ItemsService(
- junctionCollection.name,
- {
- ...context,
- schema: await getSchema(),
- }
- );
-
- const anyCollectionItems =
- await junctionItemsService.readByQuery({
- limit: -1,
- filter: {
- [junctionCollection.foreignCollection!]: {
- _eq: anyCollection.name,
- },
- },
- fields: [junctionCollection.foreignKey],
- });
-
- anyCollectionItems.forEach((item: any) => {
- const id = item[junctionCollection.foreignKey];
- if (!id) return;
-
- usedItems.push(id);
- });
- }
-
- return usedItems;
- }
- }
-};
diff --git a/lib/m2a/itemRelationCascade.ts b/lib/m2a/itemRelationCascade.ts
new file mode 100644
index 0000000..d67991d
--- /dev/null
+++ b/lib/m2a/itemRelationCascade.ts
@@ -0,0 +1,134 @@
+import { HookExtensionContext, RegisterFunctions } from "@directus/extensions";
+import { EventContext } from "@directus/types";
+import { buildIllegalDeleteError } from "./shared/helper-functions";
+import { M2AConfig } from "./shared/types";
+
+/**
+ * Creates a filter hook on configured junctionCollection.\
+ * On delete of junctionCollection item, looks up if related item still exist in any of the configured anyCollections.\
+ * If an existing item is found in anyCollections, delete operation is prevented.\
+ * Otherwise, the requested item delete operation is executed on junctionCollection.
+ *
+ * @param {RegisterFunctions} { filter } Directus hook register functions
+ * @param {HookExtensionContext} { services, getSchema } Directus extension context
+ * @param {M2AConfig} config Filter configuration options (contains watched collections)
+ */
+export const preventRelationDeleteFilterM2A = (
+ { filter }: RegisterFunctions,
+ { services, getSchema }: HookExtensionContext,
+ config: M2AConfig
+) => {
+ const { ItemsService } = services;
+
+ // ? Register filter hook on configured junctionCollection (items.delete / blocking)
+ filter(`${config.junctionCollection.collectionName}.items.delete`, handler);
+
+ async function handler(
+ junctionDeleteKeys: unknown[],
+ meta: Record,
+ context: EventContext
+ ) {
+ // ? For all junctionCollection items to be deleted do:
+ for (const junctionTableKey of junctionDeleteKeys) {
+
+ // ? create ItemsService for watched junctionCollection
+ const junctionItemService = new ItemsService(meta["collection"], {
+ ...context,
+ schema: await getSchema(),
+ });
+
+ // ? read content of junctionCollection item that triggered delete event
+ const junctionItemContent = await junctionItemService.readOne(junctionTableKey);
+
+ // ? search in configuration if prevention of related anyCollection deletes is configured
+ const relatedCollection = config.anyCollections.find(
+ collectionConfig => collectionConfig.collectionName === junctionItemContent[config.junctionCollection.itemDiscriminatorFieldName]
+ );
+
+ // ? if prevention is not configured for related anyCollection,
+ // ? allow deletion of junctionCollection item without further checks
+ if (!relatedCollection)
+ continue;
+
+ // ? create ItemsService for related anyCollection
+ const relatedItemService = new ItemsService(relatedCollection.collectionName, {
+ ...context,
+ schema: await getSchema(),
+ });
+
+ // ? try to verify existence of related anyCollection item by reading it
+ const relatedItems = await relatedItemService.readByQuery({
+ limit: -1,
+ filter: {
+ [relatedCollection.primaryKeyFieldName]: {
+ _eq: junctionItemContent[config.junctionCollection.foreignKeyFieldName],
+ },
+ }
+ });
+
+ // ? if related anyCollection item does not exist, allow deletion of junctionCollection item
+ if (!relatedItems.length)
+ continue;
+
+ // ? if junctionCollection item is configured for delete prevention and related anyCollection item exists,
+ // ? prevent deletion by throwing an error
+ throw new (buildIllegalDeleteError(config.junctionCollection.collectionName, relatedCollection.collectionName));
+ }
+
+ return junctionDeleteKeys;
+ }
+};
+
+/**
+ * Creates an action hook on configured anyCollections.\
+ * On delete of anyCollection item, looks up if a junctionCollection item exists which contains a relation to the deleted anyCollection item.\
+ * If a referencing item is found in junctionCollection, the junctionCollection item is deleted too (cascade).\
+ *
+ * @param {RegisterFunctions} { action } Directus hook register functions
+ * @param {HookExtensionContext} { services, getSchema } Directus extension context
+ * @param {M2AConfig} config Action configuration options (contains watched collections)
+ */
+export const deleteUnusedRelationActionM2A = (
+ { action }: RegisterFunctions,
+ { services, getSchema }: HookExtensionContext,
+ config: M2AConfig
+) => {
+ const { ItemsService } = services;
+
+ // ? Register action hooks on configured anyCollections (items.delete / non-blocking)
+ for (const watchedCollection of config.anyCollections)
+ action(`${watchedCollection.collectionName}.items.delete`, handler);
+
+ async function handler(
+ meta: Record,
+ context: EventContext
+ ) {
+ // ? Create ItemsService for configured junctionCollection
+ const junctionItemsService = new ItemsService(
+ config.junctionCollection.collectionName,
+ {
+ ...context,
+ schema: await getSchema(),
+ }
+ );
+
+ // ? Delete junctionCollection items, filtered by anyCollection discriminator provided by action trigger
+ await junctionItemsService.deleteByQuery({
+ limit: -1,
+ filter: {
+ _and: [
+ {
+ [config.junctionCollection.itemDiscriminatorFieldName]: {
+ _eq: meta["collection"],
+ },
+ },
+ {
+ [config.junctionCollection.foreignKeyFieldName]: {
+ _in: meta["keys"],
+ },
+ },
+ ],
+ }
+ });
+ }
+};
\ No newline at end of file
diff --git a/lib/m2a/relationItemCascade.ts b/lib/m2a/relationItemCascade.ts
new file mode 100644
index 0000000..a20a5c7
--- /dev/null
+++ b/lib/m2a/relationItemCascade.ts
@@ -0,0 +1,122 @@
+import type { HookExtensionContext, RegisterFunctions } from "@directus/extensions";
+import type { EventContext } from "@directus/types";
+import { buildIllegalDeleteError } from "./shared/helper-functions";
+import { M2AConfig } from "./shared/types";
+
+/**
+ * Creates a filter hook on configured anyCollection.\
+ * On delete of anyCollection item, looks up if a junctionCollection item exists which contains a relation to the anyCollection item to be deleted.\
+ * If a referencing item is found in junctionCollection, the delete request on anyCollection item is prevented.\
+ * Otherwise, the requested item delete operation is executed on anyCollection.
+ *
+ * @param {RegisterFunctions} { filter } Directus hook register functions
+ * @param {HookExtensionContext} { services, getSchema } Directus extension context
+ * @param {M2AConfig} config Filter configuration options (contains watched collections)
+ */
+export const preventItemDeleteFilterM2A = (
+ { filter }: RegisterFunctions,
+ { services, getSchema }: HookExtensionContext,
+ config: M2AConfig
+) => {
+ const { ItemsService } = services;
+
+ // ? Register filter hooks on configured anyCollections (items.delete / blocking)
+ for (const watchedCollection of config.anyCollections)
+ filter(`${watchedCollection.collectionName}.items.delete`, handler);
+
+ async function handler(
+ itemDeleteKeys: unknown[],
+ meta: Record,
+ context: EventContext
+ ) {
+ // ? For all anyCollection items to be deleted do:
+ for (const itemKey of itemDeleteKeys) {
+ // ? create ItemsService for junctionCollection possibly referencing anyCollection item to be deleted
+ const junctionCollectionItemService = new ItemsService(config.junctionCollection.collectionName, {
+ ...context,
+ schema: await getSchema(),
+ });
+
+ // ? try to verify existence of junctionCollection item containing a relation to an anyCollection item by querying it
+ const relatedItems = await junctionCollectionItemService.readByQuery({
+ limit: -1,
+ filter: {
+ _and: [
+ {
+ [config.junctionCollection.foreignKeyFieldName]: {
+ _eq: itemKey,
+ },
+ },
+ {
+ [config.junctionCollection.itemDiscriminatorFieldName]: {
+ _eq: meta["collection"],
+ },
+ },
+ ],
+ },
+ fields: [],
+ });
+
+ // ? if no anyCollection item being related is found, continue checking remaining configured junctionCollections
+ if (!relatedItems.length)
+ continue;
+
+ // ? if a relation to an anyCollection item exists, prevent deletion
+ throw new (buildIllegalDeleteError(String(meta["collection"]), config.junctionCollection.collectionName));
+ }
+
+ // ? if no relation to an item is found, allow delete of items
+ return itemDeleteKeys;
+ };
+}
+
+/**
+ * Creates a filter hook on configured junctionCollection.\
+ * On delete of junctionCollection item, looks up if the related anyCollection item exists.\
+ * If the related item is found in anyCollection, the anyCollection item is deleted too (cascade).\
+ *
+ * @param {RegisterFunctions} { action } Directus hook register functions
+ * @param {HookExtensionContext} { services, getSchema } Directus extension context
+ * @param {M2AConfig} config Action configuration options (contains watched collections)
+ */
+export const deleteUnusedItemFilterM2A = (
+ { filter }: RegisterFunctions,
+ { services, getSchema }: HookExtensionContext,
+ config: M2AConfig
+) => {
+ const { ItemsService } = services;
+
+ // ? Register filter hooks on configured junctionCollections (items.delete / blocking)
+ // ? This needs to be a filter (compared to "deleteUnusedRelationActionM2A"),
+ // ? because data of junctionCollection item is nod passed in action and needs to be read manually BEFORE deleting it
+ filter(`${config.junctionCollection.collectionName}.items.delete`, handler);
+
+ async function handler(
+ junctionItemDeleteKeys: unknown[],
+ meta: Record,
+ context: EventContext) {
+ // ? Create ItemsService for configured junctionCollection
+ const junctionItemsService = new ItemsService(
+ config.junctionCollection.collectionName,
+ {
+ ...context,
+ schema: await getSchema(),
+ }
+ );
+
+ for (const junctionItemKey of junctionItemDeleteKeys) {
+ const junctionItem = await junctionItemsService.readOne(junctionItemKey);
+ const anyItemsService = new ItemsService(
+ junctionItem[config.junctionCollection.itemDiscriminatorFieldName],
+ {
+ ...context,
+ schema: await getSchema(),
+ }
+ );
+
+ await anyItemsService.deleteOne(junctionItem[config.junctionCollection.foreignKeyFieldName]);
+ }
+
+ return junctionItemDeleteKeys;
+ }
+};
diff --git a/lib/m2a/shared/helper-functions.ts b/lib/m2a/shared/helper-functions.ts
new file mode 100644
index 0000000..0f255e1
--- /dev/null
+++ b/lib/m2a/shared/helper-functions.ts
@@ -0,0 +1,25 @@
+import { createError } from "@directus/errors";
+import { AnyCollection, JunctionCollection } from "./types";
+
+/** Maps collection names to to objects of type JunctionCollection.\
+ * Uses default directus settings:\
+ * `foreignKeyFieldName` = `"item"`\
+ * `foreignCollection` =`"collection"` */
+export const toJunctionCollectionM2A = (collectionName: string): JunctionCollection => ({
+ collectionName,
+ foreignKeyFieldName: "item",
+ itemDiscriminatorFieldName: "collection",
+});
+
+/** Maps collection names to to objects of type AnyCollection.\
+ * Uses default directus settings:\
+ * `primaryKeyFieldName` =`"id"` */
+export const toAnyCollectionM2A = (collectionName: string): AnyCollection => ({
+ collectionName,
+ primaryKeyFieldName: "id",
+});
+
+export const buildIllegalDeleteError = (watchedItemName: string, relatedItemName: string) => createError(
+ "ILLEGAL_DELETE",
+ `This “${watchedItemName}” item is related to existing “${relatedItemName}” and therefore cannot be deleted!`
+);
\ No newline at end of file
diff --git a/lib/m2a/shared/types.ts b/lib/m2a/shared/types.ts
new file mode 100644
index 0000000..6efa300
--- /dev/null
+++ b/lib/m2a/shared/types.ts
@@ -0,0 +1,34 @@
+export type JunctionCollection = {
+ collectionName: string;
+ foreignKeyFieldName: string;
+ itemDiscriminatorFieldName: string;
+};
+
+export type AnyCollection = {
+ collectionName: string;
+ primaryKeyFieldName: string;
+};
+
+export type M2AConfig = {
+ anyCollections: AnyCollection[];
+ junctionCollection: JunctionCollection;
+};
+
+// export type PreventItemDeleteConfig = {
+// /** collections which items should not be deleted, if they are related to a junctionCollection */
+// anyCollection: AnyCollection;
+// /** collections to search in */
+// watchedJunctionCollections: JunctionCollection[];
+// };
+
+// export type DeleteUnusedConfig = {
+// junctionCollection: JunctionCollection;
+// anyCollections: AnyCollection[];
+// };
+
+// export type DeleteUnusedConfig = {
+// /** collections to search in */
+// watchedJunctionCollections: JunctionCollection[];
+// /** collections that potentially have unused items */
+// anyCollection: AnyCollection;
+// };
\ No newline at end of file
diff --git a/lib/replaceDeletedUserReferences.ts b/lib/replaceDeletedUserReferences.ts
index a222858..c5f0cc5 100644
--- a/lib/replaceDeletedUserReferences.ts
+++ b/lib/replaceDeletedUserReferences.ts
@@ -1,7 +1,6 @@
// This replaces the reference to a deleted user with a reference to the current user in the directus_files collection.
-import type { HookExtensionContext } from "@directus/extensions";
-import type { RegisterFunctions } from "./types";
+import type { HookExtensionContext,RegisterFunctions } from "@directus/extensions";
export default function (
{ filter }: RegisterFunctions,
diff --git a/lib/resetFieldsHiddenByOption.ts b/lib/resetFieldsHiddenByOption.ts
index bdc53e9..ab130e9 100644
--- a/lib/resetFieldsHiddenByOption.ts
+++ b/lib/resetFieldsHiddenByOption.ts
@@ -1,5 +1,4 @@
-import type { RegisterFunctions } from "./types";
-import type { HookExtensionContext } from "@directus/extensions";
+import type { HookExtensionContext, RegisterFunctions } from "@directus/extensions";
type ResetGroup = {
not: string[];
diff --git a/lib/setProjectSettingsFromEnvVars.ts b/lib/setProjectSettingsFromEnvVars.ts
index 53b0a40..4f15cfe 100644
--- a/lib/setProjectSettingsFromEnvVars.ts
+++ b/lib/setProjectSettingsFromEnvVars.ts
@@ -1,7 +1,6 @@
// This overwrites the values for `settings` in the Project Settings when starting Directus
-import type { HookExtensionContext } from "@directus/extensions";
-import type { RegisterFunctions } from "./types";
+import type { HookExtensionContext, RegisterFunctions } from "@directus/extensions";
export default function (
{ action }: RegisterFunctions,
diff --git a/lib/types.ts b/lib/types.ts
deleted file mode 100644
index 42cb29f..0000000
--- a/lib/types.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import type {
- FilterHandler,
- ActionHandler,
- InitHandler,
- ScheduleHandler,
- EmbedHandler,
-} from "@directus/types";
-
-// Copied from @directus/types/hooks.d.ts
-export type RegisterFunctions = {
- filter: (event: string, handler: FilterHandler) => void;
- action: (event: string, handler: ActionHandler) => void;
- init: (event: string, handler: InitHandler) => void;
- schedule: (cron: string, handler: ScheduleHandler) => void;
- embed: (position: "head" | "body", code: string | EmbedHandler) => void;
-};
diff --git a/package-lock.json b/package-lock.json
index e00abba..65e486f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,25 +1,58 @@
{
- "name": "directus-hook-library",
- "version": "0.0.5",
+ "name": "@derskillbaumapfel/directus-hook-library",
+ "version": "1.1.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
- "name": "directus-hook-library",
- "version": "0.0.5",
+ "name": "@derskillbaumapfel/directus-hook-library",
+ "version": "1.1.0",
"license": "GPL-3.0",
- "dependencies": {
- "@directus/errors": "^0.2.0",
- "@directus/extensions": "^0.1.0",
- "@directus/types": "^11.0.1",
- "@types/node": "^20.8.9",
- "typescript": "^5.2.2"
+ "devDependencies": {
+ "@directus/errors": "^2.0.0",
+ "@directus/extensions": "^3.0.3",
+ "@directus/types": "^13.0.0",
+ "@types/node": "^22.13.10",
+ "typescript": "^5.8.2"
+ },
+ "peerDependencies": {
+ "@directus/errors": "^2.0.0",
+ "@directus/extensions": "^3.0.3",
+ "@directus/types": "^13.0.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
+ "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
+ "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=6.9.0"
}
},
"node_modules/@babel/parser": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
- "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
+ "version": "7.26.10",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz",
+ "integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@babel/types": "^7.26.10"
+ },
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -27,34 +60,39 @@
"node": ">=6.0.0"
}
},
- "node_modules/@babel/runtime": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz",
- "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==",
+ "node_modules/@babel/types": {
+ "version": "7.26.10",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz",
+ "integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "regenerator-runtime": "^0.14.0"
+ "@babel/helper-string-parser": "^7.25.9",
+ "@babel/helper-validator-identifier": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@directus/constants": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/@directus/constants/-/constants-11.0.1.tgz",
- "integrity": "sha512-/VulX3IJyXJHJKYh4VUrrYlIwBpjJdt1lRh9Y/4khyANbtq88gQuzLah1GLzG0yffRRipBkdWJd2EUo+oC/f1A==",
- "dependencies": {
- "zod": "3.22.4"
- },
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/@directus/constants/-/constants-13.0.0.tgz",
+ "integrity": "sha512-R2uuMEJarlq29IPH9Pqe11U74mDqQWBHWhVy77R7ZrnJeZiiayLFoQTlZS4FN8M+ROVrCkIcsg39meNpxEyvpA==",
+ "dev": true,
+ "license": "MIT",
"funding": {
"url": "https://github.com/directus/directus?sponsor=1"
}
},
"node_modules/@directus/errors": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/@directus/errors/-/errors-0.2.0.tgz",
- "integrity": "sha512-PQmR4G7+dQ/ID6FatPL//o++J3FdjY/mc/p/EcaYsX+6DYVLyQSaJhA8/o55W0i8WRRinqrXy+K3IB0j3ZdU1A==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@directus/errors/-/errors-2.0.0.tgz",
+ "integrity": "sha512-2KVKjAnmPLDCoujECA6GsxhAw104HtF2iXTIZ7HF3ztEK8tzWmhYItA3vA30s/jmzmTMBHoCwlNWWCi3TSmjwQ==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@directus/storage": "10.0.7",
+ "@directus/storage": "12.0.0",
"ms": "2.1.3"
},
"funding": {
@@ -62,78 +100,148 @@
}
},
"node_modules/@directus/extensions": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/@directus/extensions/-/extensions-0.1.0.tgz",
- "integrity": "sha512-E7NKG53oRDXomWbeHNDlyesGcbYTckoqB0prtZax770Lc2/eia8tXpLmGgj97KgdfSo2Waazc0GriCIEupUItg==",
- "dependencies": {
- "@directus/utils": "11.0.1",
- "fs-extra": "11.1.1",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@directus/extensions/-/extensions-3.0.3.tgz",
+ "integrity": "sha512-lqWGQOciI6R7lDi8j8P7d0H1fYS62JSIXIZwAj3F+1j+RAWkncdtM7vWu+r5lM8GCE9UpsTTXlXZ/cEUdBcJ4A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@directus/constants": "13.0.0",
+ "@directus/themes": "1.0.9",
+ "@directus/types": "13.0.0",
+ "@directus/utils": "13.0.2",
+ "@types/express": "4.17.21",
+ "fs-extra": "11.2.0",
"lodash-es": "4.17.21",
- "tmp": "0.2.1",
- "zod": "3.22.4"
+ "zod": "3.24.1"
},
"funding": {
"url": "https://github.com/directus/directus?sponsor=1"
+ },
+ "peerDependencies": {
+ "knex": "3",
+ "pino": "9",
+ "vue": "^3.4",
+ "vue-router": "4"
+ },
+ "peerDependenciesMeta": {
+ "knex": {
+ "optional": true
+ },
+ "pino": {
+ "optional": true
+ },
+ "vue": {
+ "optional": true
+ },
+ "vue-router": {
+ "optional": true
+ }
}
},
"node_modules/@directus/schema": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/@directus/schema/-/schema-11.0.0.tgz",
- "integrity": "sha512-4YkutVuMr62nRZeoWylExOlC6l0TxmB1hQ4ZaNgKe5j4CWHX/lO2xrTc2BuA4QBdSgTp/qOdCdIbMXTkedou7Q==",
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/@directus/schema/-/schema-13.0.0.tgz",
+ "integrity": "sha512-QrL+HQ6BWyoyQSXNoPNhaFE7OrK/9jcT10TP86qKxWwLt1BQ+yxgWqar53Hh3i4r/dA25qCIXhm9I/SLWqe9SA==",
+ "dev": true,
+ "license": "BUSL-1.1",
"dependencies": {
- "knex": "2.4.2"
+ "knex": "3.1.0"
},
"funding": {
"url": "https://github.com/directus/directus?sponsor=1"
}
},
"node_modules/@directus/storage": {
- "version": "10.0.7",
- "resolved": "https://registry.npmjs.org/@directus/storage/-/storage-10.0.7.tgz",
- "integrity": "sha512-dS3NjnQGR42XfgdprxMVUnoGO55F2jfVoshXFt7j56TDHirGODdogvypKbGm+1OM3VTD+s84GSXfh7RjtlLJHg==",
+ "version": "12.0.0",
+ "resolved": "https://registry.npmjs.org/@directus/storage/-/storage-12.0.0.tgz",
+ "integrity": "sha512-8xoxUkVFd0wyKbPr2j/chXzOlaaatMIaVX6HwXVL3gNC+7jKRgND1odfRiwkednAMChpVRJGMNGaIhhLC4hurw==",
+ "dev": true,
+ "license": "BUSL-1.1",
+ "funding": {
+ "url": "https://github.com/directus/directus?sponsor=1"
+ }
+ },
+ "node_modules/@directus/system-data": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@directus/system-data/-/system-data-3.0.1.tgz",
+ "integrity": "sha512-ze6AqiHHvZM9ChrZqhaPxA8ETK5kQ1WGzdwzAc6+UAZh4ucJlIFiD7Cw5ZuYeL8CdAlsNfBfhw1ZrXFQexvpPQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/directus/directus?sponsor=1"
+ }
+ },
+ "node_modules/@directus/themes": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/@directus/themes/-/themes-1.0.9.tgz",
+ "integrity": "sha512-5I+VcQHU2njLDzCtwj+KkcOZhZaApK3FwpA8URIf9cs8s6wkdOpixiSKXBFA6DB/Cr/xJEtkQTpcdQ0GpfVFkA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@directus/utils": "13.0.2",
+ "@sinclair/typebox": "0.34.13",
+ "decamelize": "6.0.0",
+ "flat": "6.0.1",
+ "lodash-es": "4.17.21"
+ },
"funding": {
"url": "https://github.com/directus/directus?sponsor=1"
+ },
+ "peerDependencies": {
+ "@unhead/vue": "1",
+ "pinia": "2",
+ "vue": "^3.4"
}
},
"node_modules/@directus/types": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/@directus/types/-/types-11.0.1.tgz",
- "integrity": "sha512-cs0DsVH3hsFQ5SVbO7acFSNMHzRSWUpVsLQr3gQAMDievRHKqeRwA/6CCnHBPLxfrQ2gS1befPr+jRDyXqKkWw==",
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/@directus/types/-/types-13.0.0.tgz",
+ "integrity": "sha512-e1zcdk/vCYVTqo3uXVPPU5zJoCWcPHLihRz3ihn8cq/HVrTwAYAKpSjYCsvL9/cmjggubozocgGqfte/+HQ23w==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@directus/constants": "11.0.1",
- "@directus/schema": "11.0.0",
- "@types/express": "4.17.17",
- "@types/geojson": "7946.0.10",
- "express": "4.18.2",
- "geojson": "0.5.0",
- "knex": "2.4.2",
- "pino": "8.14.1",
- "vue": "3.3.4",
- "vue-router": "4.2.0",
- "zod": "3.22.4"
+ "@directus/constants": "13.0.0",
+ "@directus/schema": "13.0.0",
+ "@types/geojson": "7946.0.15"
},
"funding": {
"url": "https://github.com/directus/directus?sponsor=1"
+ },
+ "peerDependencies": {
+ "knex": "3",
+ "vue": "^3.4"
+ },
+ "peerDependenciesMeta": {
+ "knex": {
+ "optional": true
+ },
+ "vue": {
+ "optional": true
+ }
}
},
"node_modules/@directus/utils": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/@directus/utils/-/utils-11.0.1.tgz",
- "integrity": "sha512-I1cpMf2fxh8Cv8XeyYUOXH//teeNyEZ3loqHBTIV0m8TlBxdIeWqND8Bqm1AFcep3r6Adolx3vCp/9OvUH0aBg==",
- "dependencies": {
- "@directus/constants": "11.0.1",
- "date-fns": "2.30.0",
- "fs-extra": "11.1.1",
- "joi": "17.9.2",
+ "version": "13.0.2",
+ "resolved": "https://registry.npmjs.org/@directus/utils/-/utils-13.0.2.tgz",
+ "integrity": "sha512-+rEP6uYUHkivzVrC4rVJYCosVVxErM9ZVat5ZPsYzF9leb2wE9+J3O6x2gr42vaF2Nx9pA6XJvVB4G2H1EFcgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@directus/constants": "13.0.0",
+ "@directus/system-data": "3.0.1",
+ "date-fns": "4.1.0",
+ "fs-extra": "11.2.0",
+ "joi": "17.13.3",
+ "js-yaml": "4.1.0",
"lodash-es": "4.17.21",
- "micromustache": "8.0.3",
- "tmp": "0.2.1"
+ "micromustache": "8.0.3"
},
"funding": {
"url": "https://github.com/directus/directus?sponsor=1"
},
"peerDependencies": {
- "vue": "3.3.4"
+ "vue": "^3.4"
},
"peerDependenciesMeta": {
"vue": {
@@ -144,25 +252,34 @@
"node_modules/@hapi/hoek": {
"version": "9.3.0",
"resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
- "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ=="
+ "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==",
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/@hapi/topo": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
"integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"@hapi/hoek": "^9.0.0"
}
},
"node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.15",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
- "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
},
"node_modules/@sideway/address": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
- "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
+ "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
+ "dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"@hapi/hoek": "^9.0.0"
}
@@ -170,34 +287,51 @@
"node_modules/@sideway/formula": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
- "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg=="
+ "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==",
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/@sideway/pinpoint": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
- "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
+ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@sinclair/typebox": {
+ "version": "0.34.13",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.13.tgz",
+ "integrity": "sha512-ceVKqyCEgC355Kw0s/0tyfY9MzMQINSykJ/pG2w6YnaZyrcjV48svZpr8lVZrYgWjzOmrIPBhQRAtr/7eJpA5g==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/body-parser": {
- "version": "1.19.4",
- "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.4.tgz",
- "integrity": "sha512-N7UDG0/xiPQa2D/XrVJXjkWbpqHCd2sBaB32ggRF2l83RhPfamgKGF8gwwqyksS95qUS5ZYF9aF+lLPRlwI2UA==",
+ "version": "1.19.5",
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
+ "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
"@types/connect": "*",
"@types/node": "*"
}
},
"node_modules/@types/connect": {
- "version": "3.4.37",
- "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.37.tgz",
- "integrity": "sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q==",
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
+ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/express": {
- "version": "4.17.17",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz",
- "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==",
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
+ "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
"@types/body-parser": "*",
"@types/express-serve-static-core": "^4.17.33",
@@ -206,9 +340,11 @@
}
},
"node_modules/@types/express-serve-static-core": {
- "version": "4.17.39",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.39.tgz",
- "integrity": "sha512-BiEUfAiGCOllomsRAZOiMFP7LAnrifHpt56pc4Z7l9K6ACyN06Ns1JLMBxwkfLOjJRlSf06NwWsT7yzfpaVpyQ==",
+ "version": "4.19.6",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz",
+ "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*",
"@types/qs": "*",
@@ -217,443 +353,375 @@
}
},
"node_modules/@types/geojson": {
- "version": "7946.0.10",
- "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz",
- "integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA=="
+ "version": "7946.0.15",
+ "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.15.tgz",
+ "integrity": "sha512-9oSxFzDCT2Rj6DfcHF8G++jxBKS7mBqXl5xrRW+Kbvjry6Uduya2iiwqHPhVXpasAVMBYKkEPGgKhd3+/HZ6xA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/http-errors": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.3.tgz",
- "integrity": "sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA=="
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
+ "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/mime": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.4.tgz",
- "integrity": "sha512-1Gjee59G25MrQGk8bsNvC6fxNiRgUlGn2wlhGf95a59DrprnnHk80FIMMFG9XHMdrfsuA119ht06QPDXA1Z7tw=="
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
+ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/node": {
- "version": "20.8.9",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.9.tgz",
- "integrity": "sha512-UzykFsT3FhHb1h7yD4CA4YhBHq545JC0YnEz41xkipN88eKQtL6rSgocL5tbAP6Ola9Izm/Aw4Ora8He4x0BHg==",
+ "version": "22.13.10",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz",
+ "integrity": "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "undici-types": "~5.26.4"
+ "undici-types": "~6.20.0"
}
},
"node_modules/@types/qs": {
- "version": "6.9.9",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.9.tgz",
- "integrity": "sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg=="
+ "version": "6.9.18",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz",
+ "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/range-parser": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.6.tgz",
- "integrity": "sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA=="
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
+ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/send": {
- "version": "0.17.3",
- "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.3.tgz",
- "integrity": "sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
+ "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
"@types/mime": "^1",
"@types/node": "*"
}
},
"node_modules/@types/serve-static": {
- "version": "1.15.4",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.4.tgz",
- "integrity": "sha512-aqqNfs1XTF0HDrFdlY//+SGUxmdSUbjeRXb5iaZc3x0/vMbYmdw9qvOgHWOyyLFxSSRnUuP5+724zBgfw8/WAw==",
+ "version": "1.15.7",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
+ "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
"@types/http-errors": "*",
- "@types/mime": "*",
- "@types/node": "*"
+ "@types/node": "*",
+ "@types/send": "*"
}
},
- "node_modules/@vue/compiler-core": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz",
- "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==",
+ "node_modules/@unhead/dom": {
+ "version": "1.11.20",
+ "resolved": "https://registry.npmjs.org/@unhead/dom/-/dom-1.11.20.tgz",
+ "integrity": "sha512-jgfGYdOH+xHJF/j8gudjsYu3oIjFyXhCWcgKaw3vQnT616gSqyqnGQGOItL+BQtQZACKNISwIfx5PuOtztMKLA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@unhead/schema": "1.11.20",
+ "@unhead/shared": "1.11.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/harlan-zw"
+ }
+ },
+ "node_modules/@unhead/schema": {
+ "version": "1.11.20",
+ "resolved": "https://registry.npmjs.org/@unhead/schema/-/schema-1.11.20.tgz",
+ "integrity": "sha512-0zWykKAaJdm+/Y7yi/Yds20PrUK7XabLe9c3IRcjnwYmSWY6z0Cr19VIs3ozCj8P+GhR+/TI2mwtGlueCEYouA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "hookable": "^5.5.3",
+ "zhead": "^2.2.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/harlan-zw"
+ }
+ },
+ "node_modules/@unhead/shared": {
+ "version": "1.11.20",
+ "resolved": "https://registry.npmjs.org/@unhead/shared/-/shared-1.11.20.tgz",
+ "integrity": "sha512-1MOrBkGgkUXS+sOKz/DBh4U20DNoITlJwpmvSInxEUNhghSNb56S0RnaHRq0iHkhrO/cDgz2zvfdlRpoPLGI3w==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@unhead/schema": "1.11.20",
+ "packrup": "^0.1.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/harlan-zw"
+ }
+ },
+ "node_modules/@unhead/vue": {
+ "version": "1.11.20",
+ "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-1.11.20.tgz",
+ "integrity": "sha512-sqQaLbwqY9TvLEGeq8Fd7+F2TIuV3nZ5ihVISHjWpAM3y7DwNWRU7NmT9+yYT+2/jw1Vjwdkv5/HvDnvCLrgmg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@babel/parser": "^7.21.3",
- "@vue/shared": "3.3.4",
+ "@unhead/schema": "1.11.20",
+ "@unhead/shared": "1.11.20",
+ "hookable": "^5.5.3",
+ "unhead": "1.11.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/harlan-zw"
+ },
+ "peerDependencies": {
+ "vue": ">=2.7 || >=3"
+ }
+ },
+ "node_modules/@vue/compiler-core": {
+ "version": "3.5.13",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz",
+ "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@babel/parser": "^7.25.3",
+ "@vue/shared": "3.5.13",
+ "entities": "^4.5.0",
"estree-walker": "^2.0.2",
- "source-map-js": "^1.0.2"
+ "source-map-js": "^1.2.0"
}
},
"node_modules/@vue/compiler-dom": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz",
- "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==",
+ "version": "3.5.13",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz",
+ "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@vue/compiler-core": "3.3.4",
- "@vue/shared": "3.3.4"
+ "@vue/compiler-core": "3.5.13",
+ "@vue/shared": "3.5.13"
}
},
"node_modules/@vue/compiler-sfc": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz",
- "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==",
- "dependencies": {
- "@babel/parser": "^7.20.15",
- "@vue/compiler-core": "3.3.4",
- "@vue/compiler-dom": "3.3.4",
- "@vue/compiler-ssr": "3.3.4",
- "@vue/reactivity-transform": "3.3.4",
- "@vue/shared": "3.3.4",
+ "version": "3.5.13",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz",
+ "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@babel/parser": "^7.25.3",
+ "@vue/compiler-core": "3.5.13",
+ "@vue/compiler-dom": "3.5.13",
+ "@vue/compiler-ssr": "3.5.13",
+ "@vue/shared": "3.5.13",
"estree-walker": "^2.0.2",
- "magic-string": "^0.30.0",
- "postcss": "^8.1.10",
- "source-map-js": "^1.0.2"
+ "magic-string": "^0.30.11",
+ "postcss": "^8.4.48",
+ "source-map-js": "^1.2.0"
}
},
"node_modules/@vue/compiler-ssr": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz",
- "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==",
+ "version": "3.5.13",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz",
+ "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@vue/compiler-dom": "3.3.4",
- "@vue/shared": "3.3.4"
+ "@vue/compiler-dom": "3.5.13",
+ "@vue/shared": "3.5.13"
}
},
"node_modules/@vue/devtools-api": {
- "version": "6.5.1",
- "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz",
- "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA=="
+ "version": "6.6.4",
+ "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
+ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
},
"node_modules/@vue/reactivity": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz",
- "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==",
+ "version": "3.5.13",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz",
+ "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@vue/shared": "3.3.4"
- }
- },
- "node_modules/@vue/reactivity-transform": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz",
- "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==",
- "dependencies": {
- "@babel/parser": "^7.20.15",
- "@vue/compiler-core": "3.3.4",
- "@vue/shared": "3.3.4",
- "estree-walker": "^2.0.2",
- "magic-string": "^0.30.0"
+ "@vue/shared": "3.5.13"
}
},
"node_modules/@vue/runtime-core": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz",
- "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==",
+ "version": "3.5.13",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz",
+ "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@vue/reactivity": "3.3.4",
- "@vue/shared": "3.3.4"
+ "@vue/reactivity": "3.5.13",
+ "@vue/shared": "3.5.13"
}
},
"node_modules/@vue/runtime-dom": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz",
- "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==",
+ "version": "3.5.13",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz",
+ "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@vue/runtime-core": "3.3.4",
- "@vue/shared": "3.3.4",
- "csstype": "^3.1.1"
+ "@vue/reactivity": "3.5.13",
+ "@vue/runtime-core": "3.5.13",
+ "@vue/shared": "3.5.13",
+ "csstype": "^3.1.3"
}
},
"node_modules/@vue/server-renderer": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz",
- "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==",
+ "version": "3.5.13",
+ "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz",
+ "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@vue/compiler-ssr": "3.3.4",
- "@vue/shared": "3.3.4"
+ "@vue/compiler-ssr": "3.5.13",
+ "@vue/shared": "3.5.13"
},
"peerDependencies": {
- "vue": "3.3.4"
+ "vue": "3.5.13"
}
},
"node_modules/@vue/shared": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz",
- "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ=="
- },
- "node_modules/abort-controller": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
- "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
- "dependencies": {
- "event-target-shim": "^5.0.0"
- },
- "engines": {
- "node": ">=6.5"
- }
- },
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
- },
- "node_modules/atomic-sleep": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz",
- "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==",
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- },
- "node_modules/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/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==",
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.11.0",
- "raw-body": "2.5.1",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
- }
- },
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
- "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
- "dependencies": {
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.1",
- "set-function-length": "^1.1.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
+ "version": "3.5.13",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz",
+ "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true,
+ "license": "Python-2.0"
},
"node_modules/colorette": {
"version": "2.0.19",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz",
- "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ=="
+ "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/commander": {
- "version": "9.5.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
- "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+ "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": "^12.20.0 || >=14"
+ "node": ">=14"
}
},
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
- },
- "node_modules/content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
- "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
- },
"node_modules/csstype": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
- "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
},
"node_modules/date-fns": {
- "version": "2.30.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz",
- "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==",
- "dependencies": {
- "@babel/runtime": "^7.21.0"
- },
- "engines": {
- "node": ">=0.11"
- },
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz",
+ "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==",
+ "dev": true,
+ "license": "MIT",
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/date-fns"
+ "type": "github",
+ "url": "https://github.com/sponsors/kossnocorp"
}
},
"node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/debug/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/define-data-property": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
- "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "get-intrinsic": "^1.2.1",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0"
+ "ms": "2.1.2"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
}
},
- "node_modules/depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "engines": {
- "node": ">= 0.8"
- }
+ "node_modules/debug/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+ "node_modules/decamelize": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-6.0.0.tgz",
+ "integrity": "sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
- },
- "node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "peer": true,
"engines": {
- "node": ">= 0.8"
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
- },
"node_modules/esm": {
"version": "3.2.25",
"resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
"integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==",
+ "dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -661,118 +729,30 @@
"node_modules/estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
- },
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/event-target-shim": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
- "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/events": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "engines": {
- "node": ">=0.8.x"
- }
- },
- "node_modules/express": {
- "version": "4.18.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
- "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.1",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.5.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.2.0",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.7",
- "qs": "6.11.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.18.0",
- "serve-static": "1.15.0",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/fast-redact": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.3.0.tgz",
- "integrity": "sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/finalhandler": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/flat": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-6.0.1.tgz",
+ "integrity": "sha512-/3FfIa8mbrg3xE7+wAhWeV+bd7L2Mof+xtZb5dRDKZ+wDvYJK4WDYeIOuOhre5Yv5aQObZrlbRmk3RTSiuQBtw==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "bin": {
+ "flat": "cli.js"
},
"engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "engines": {
- "node": ">= 0.6"
+ "node": ">=18"
}
},
"node_modules/fs-extra": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
- "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
+ "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -782,37 +762,12 @@
"node": ">=14.14"
}
},
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
- },
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/geojson": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/geojson/-/geojson-0.5.0.tgz",
- "integrity": "sha512-/Bx5lEn+qRF4TfQ5aLu6NH+UKtvIv7Lhc487y/c8BdludrCTpiWf9wyI0RTyqg49MFefIAvFDuEi5Dfd/zgNxQ==",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
- "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
- "dependencies": {
- "function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
- },
+ "dev": true,
+ "license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -821,6 +776,8 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
"integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
+ "dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8.0.0"
}
@@ -828,189 +785,97 @@
"node_modules/getopts": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz",
- "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA=="
+ "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "function-bind": "^1.1.2"
},
"engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/hookable": {
+ "version": "5.5.3",
+ "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz",
+ "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/interpret": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz",
+ "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
}
},
- "node_modules/gopd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "node_modules/is-core-module": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "get-intrinsic": "^1.1.3"
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
- },
- "node_modules/has-property-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
- "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
- "dependencies": {
- "get-intrinsic": "^1.2.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/hasown": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
- "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "node_modules/interpret": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz",
- "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "engines": {
- "node": ">= 0.10"
+ "node_modules/joi": {
+ "version": "17.13.3",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz",
+ "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@hapi/hoek": "^9.3.0",
+ "@hapi/topo": "^5.1.0",
+ "@sideway/address": "^4.1.5",
+ "@sideway/formula": "^3.0.1",
+ "@sideway/pinpoint": "^2.0.0"
}
},
- "node_modules/is-core-module": {
- "version": "2.13.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
- "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "hasown": "^2.0.0"
+ "argparse": "^2.0.1"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/joi": {
- "version": "17.9.2",
- "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz",
- "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==",
- "dependencies": {
- "@hapi/hoek": "^9.0.0",
- "@hapi/topo": "^5.0.0",
- "@sideway/address": "^4.1.3",
- "@sideway/formula": "^3.0.1",
- "@sideway/pinpoint": "^2.0.0"
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
"node_modules/jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
"universalify": "^2.0.0"
},
@@ -1019,12 +884,14 @@
}
},
"node_modules/knex": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/knex/-/knex-2.4.2.tgz",
- "integrity": "sha512-tMI1M7a+xwHhPxjbl/H9K1kHX+VncEYcvCx5K00M16bWvpYPKAZd6QrCu68PtHAdIZNQPWZn0GVhqVBEthGWCg==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/knex/-/knex-3.1.0.tgz",
+ "integrity": "sha512-GLoII6hR0c4ti243gMs5/1Rb3B+AjwMOfjYm97pu0FOQa7JH56hgBxYf5WK2525ceSbBY1cjeZ9yk99GPMB6Kw==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
"colorette": "2.0.19",
- "commander": "^9.1.0",
+ "commander": "^10.0.0",
"debug": "4.3.4",
"escalade": "^3.1.1",
"esm": "^3.2.25",
@@ -1032,7 +899,7 @@
"getopts": "2.3.0",
"interpret": "^2.2.0",
"lodash": "^4.17.21",
- "pg-connection-string": "2.5.0",
+ "pg-connection-string": "2.6.2",
"rechoir": "^0.8.0",
"resolve-from": "^5.0.0",
"tarn": "^3.0.2",
@@ -1042,7 +909,7 @@
"knex": "bin/cli.js"
},
"engines": {
- "node": ">=12"
+ "node": ">=16"
},
"peerDependenciesMeta": {
"better-sqlite3": {
@@ -1068,73 +935,37 @@
}
}
},
- "node_modules/knex/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/knex/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
"node_modules/lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lodash-es": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
- "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/magic-string": {
- "version": "0.30.5",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
- "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
+ "version": "0.30.17",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
+ "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@jridgewell/sourcemap-codec": "^1.4.15"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
- },
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "engines": {
- "node": ">= 0.6"
+ "@jridgewell/sourcemap-codec": "^1.5.0"
}
},
"node_modules/micromustache": {
"version": "8.0.3",
"resolved": "https://registry.npmjs.org/micromustache/-/micromustache-8.0.3.tgz",
"integrity": "sha512-SXjrEPuYNtWq0reR9LR2nHdzdQx/3re9HPcDGjm00L7hi2RsH5KMRBhYEBvPdyQC51RW/2TznjwX/sQLPPyHNw==",
+ "dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
},
@@ -1142,62 +973,25 @@
"url": "https://github.com/userpixel/micromustache/blob/master/.github/FUNDING.yml"
}
},
- "node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
"node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
},
"node_modules/nanoid": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
- "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.9.tgz",
+ "integrity": "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==",
+ "dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
+ "peer": true,
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -1205,124 +999,68 @@
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
- "node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/object-inspect": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
- "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
+ "node_modules/packrup": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/packrup/-/packrup-0.1.2.tgz",
+ "integrity": "sha512-ZcKU7zrr5GlonoS9cxxrb5HVswGnyj6jQvwFBa6p5VFw7G71VAHcUKL5wyZSU/ECtPM/9gacWxy2KFQKt1gMNA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
"funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/on-exit-leak-free": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz",
- "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==",
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "engines": {
- "node": ">=0.10.0"
+ "url": "https://github.com/sponsors/harlan-zw"
}
},
"node_modules/path-parse": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
- },
- "node_modules/path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/pg-connection-string": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz",
- "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ=="
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz",
+ "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
- },
- "node_modules/pino": {
- "version": "8.14.1",
- "resolved": "https://registry.npmjs.org/pino/-/pino-8.14.1.tgz",
- "integrity": "sha512-8LYNv7BKWXSfS+k6oEc6occy5La+q2sPwU3q2ljTX5AZk7v+5kND2o5W794FyRaqha6DJajmkNRsWtPpFyMUdw==",
- "dependencies": {
- "atomic-sleep": "^1.0.0",
- "fast-redact": "^3.1.1",
- "on-exit-leak-free": "^2.1.0",
- "pino-abstract-transport": "v1.0.0",
- "pino-std-serializers": "^6.0.0",
- "process-warning": "^2.0.0",
- "quick-format-unescaped": "^4.0.3",
- "real-require": "^0.2.0",
- "safe-stable-stringify": "^2.3.1",
- "sonic-boom": "^3.1.0",
- "thread-stream": "^2.0.0"
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true,
+ "license": "ISC",
+ "peer": true
+ },
+ "node_modules/pinia": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.3.1.tgz",
+ "integrity": "sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@vue/devtools-api": "^6.6.3",
+ "vue-demi": "^0.14.10"
},
- "bin": {
- "pino": "bin.js"
- }
- },
- "node_modules/pino-abstract-transport": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz",
- "integrity": "sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==",
- "dependencies": {
- "readable-stream": "^4.0.0",
- "split2": "^4.0.0"
+ "funding": {
+ "url": "https://github.com/sponsors/posva"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.4.4",
+ "vue": "^2.7.0 || ^3.5.11"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/pino-std-serializers": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz",
- "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA=="
- },
"node_modules/postcss": {
- "version": "8.4.31",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
- "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+ "version": "8.5.3",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
+ "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
+ "dev": true,
"funding": [
{
"type": "opencollective",
@@ -1337,108 +1075,23 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "nanoid": "^3.3.6",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
+ "nanoid": "^3.3.8",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12 || >=14"
}
},
- "node_modules/process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
- "engines": {
- "node": ">= 0.6.0"
- }
- },
- "node_modules/process-warning": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz",
- "integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg=="
- },
- "node_modules/proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "dependencies": {
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/quick-format-unescaped": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz",
- "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg=="
- },
- "node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "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==",
- "dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/readable-stream": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz",
- "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==",
- "dependencies": {
- "abort-controller": "^3.0.0",
- "buffer": "^6.0.3",
- "events": "^3.3.0",
- "process": "^0.11.10",
- "string_decoder": "^1.3.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
- "node_modules/real-require": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz",
- "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==",
- "engines": {
- "node": ">= 12.13.0"
- }
- },
"node_modules/rechoir": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz",
"integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
"resolve": "^1.20.0"
},
@@ -1446,23 +1099,23 @@
"node": ">= 10.13.0"
}
},
- "node_modules/regenerator-runtime": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
- "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA=="
- },
"node_modules/resolve": {
- "version": "1.22.8",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
- "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "version": "1.22.10",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
+ "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "is-core-module": "^2.13.0",
+ "is-core-module": "^2.16.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
"bin": {
"resolve": "bin/resolve"
},
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -1471,169 +1124,29 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/safe-stable-stringify": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz",
- "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "node_modules/send": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/serve-static": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
- "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
- "dependencies": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.18.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/set-function-length": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz",
- "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==",
- "dependencies": {
- "define-data-property": "^1.1.1",
- "get-intrinsic": "^1.2.1",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "node_modules/side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "dependencies": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/sonic-boom": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.7.0.tgz",
- "integrity": "sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg==",
- "dependencies": {
- "atomic-sleep": "^1.0.0"
- }
- },
"node_modules/source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/split2": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
- "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
- "engines": {
- "node": ">= 10.x"
- }
- },
- "node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
"node_modules/supports-preserve-symlinks-flag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -1645,61 +1158,28 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz",
"integrity": "sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==",
+ "dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8.0.0"
}
},
- "node_modules/thread-stream": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.4.1.tgz",
- "integrity": "sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==",
- "dependencies": {
- "real-require": "^0.2.0"
- }
- },
"node_modules/tildify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz",
"integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==",
+ "dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/tmp": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
- "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
- "dependencies": {
- "rimraf": "^3.0.0"
- },
- "engines": {
- "node": ">=8.17.0"
- }
- },
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/typescript": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
- "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
+ "version": "5.8.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz",
+ "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==",
+ "dev": true,
+ "license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -1709,77 +1189,107 @@
}
},
"node_modules/undici-types": {
- "version": "5.26.5",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
- "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
+ "version": "6.20.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
+ "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/unhead": {
+ "version": "1.11.20",
+ "resolved": "https://registry.npmjs.org/unhead/-/unhead-1.11.20.tgz",
+ "integrity": "sha512-3AsNQC0pjwlLqEYHLjtichGWankK8yqmocReITecmpB1H0aOabeESueyy+8X1gyJx4ftZVwo9hqQ4O3fPWffCA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@unhead/dom": "1.11.20",
+ "@unhead/schema": "1.11.20",
+ "@unhead/shared": "1.11.20",
+ "hookable": "^5.5.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/harlan-zw"
+ }
},
"node_modules/universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 10.0.0"
}
},
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/vue": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz",
- "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==",
- "dependencies": {
- "@vue/compiler-dom": "3.3.4",
- "@vue/compiler-sfc": "3.3.4",
- "@vue/runtime-dom": "3.3.4",
- "@vue/server-renderer": "3.3.4",
- "@vue/shared": "3.3.4"
+ "version": "3.5.13",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz",
+ "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@vue/compiler-dom": "3.5.13",
+ "@vue/compiler-sfc": "3.5.13",
+ "@vue/runtime-dom": "3.5.13",
+ "@vue/server-renderer": "3.5.13",
+ "@vue/shared": "3.5.13"
+ },
+ "peerDependencies": {
+ "typescript": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/vue-router": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.0.tgz",
- "integrity": "sha512-c+usESa6ZoWsm4PPdzRSyenp5A4dsUtnDJnrI03fY1IpIihA9TK3x5ffgkFDpjhLJZewsXoKURapNLFdZjuqTg==",
- "dependencies": {
- "@vue/devtools-api": "^6.5.0"
+ "node_modules/vue-demi": {
+ "version": "0.14.10",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
+ "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "peer": true,
+ "bin": {
+ "vue-demi-fix": "bin/vue-demi-fix.js",
+ "vue-demi-switch": "bin/vue-demi-switch.js"
+ },
+ "engines": {
+ "node": ">=12"
},
"funding": {
- "url": "https://github.com/sponsors/posva"
+ "url": "https://github.com/sponsors/antfu"
},
"peerDependencies": {
- "vue": "^3.2.0"
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^3.0.0-0 || ^2.6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
}
},
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ "node_modules/zhead": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/zhead/-/zhead-2.2.4.tgz",
+ "integrity": "sha512-8F0OI5dpWIA5IGG5NHUg9staDwz/ZPxZtvGVf01j7vHqSyZ0raHY+78atOVxRqb73AotX22uV1pXt3gYSstGag==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "funding": {
+ "url": "https://github.com/sponsors/harlan-zw"
+ }
},
"node_modules/zod": {
- "version": "3.22.4",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz",
- "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==",
+ "version": "3.24.1",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz",
+ "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==",
+ "dev": true,
+ "license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
diff --git a/package.json b/package.json
index 2638efb..6e9bc6c 100644
--- a/package.json
+++ b/package.json
@@ -1,18 +1,31 @@
{
- "name": "directus-hook-library",
- "version": "1.0.2",
+ "name": "@derskillbaumapfel/directus-hook-library",
+ "version": "1.1.0",
"description": "A collection of customizable hooks for Directus",
"license": "GPL-3.0",
"author": {
"email": "dev@formfcw.com",
"name": "formfcw"
},
+ "contributors": [
+ {
+ "name": "DerSkillBaumApfel",
+ "email": "office@heureka.education"
+ },
+ {
+ "email": "dev@formfcw.com",
+ "name": "formfcw"
+ }
+ ],
"main": "dist/index.js",
"types": "dist/index.d.ts",
"repository": {
"type": "git",
- "url": "git+https://github.com/formfcw/directus-hook-library.git"
+ "url": "git+https://github.com/DerSkillBaumApfel/directus-hook-library.git"
},
+ "publishConfig": {
+ "registry": "https://npm.pkg.github.com/"
+ },
"keywords": [
"directus",
"directus-extension",
@@ -27,18 +40,24 @@
"replace-deleted-user-references"
],
"bugs": {
- "url": "https://github.com/formfcw/directus-hook-library/issues"
+ "url": "https://github.com/DerSkillBaumApfel/directus-hook-library/issues"
},
- "homepage": "https://github.com/formfcw/directus-hook-library#readme",
+ "homepage": "https://github.com/DerSkillBaumApfel/directus-hook-library#readme",
"scripts": {
"build-and-publish": "tsc && npm publish",
- "build": "tsc"
+ "build": "tsc",
+ "prepublishOnly": "npm run build"
+ },
+ "devDependencies": {
+ "@directus/errors": "^2.0.0",
+ "@directus/extensions": "^3.0.3",
+ "@directus/types": "^13.0.0",
+ "@types/node": "^22.13.10",
+ "typescript": "^5.8.2"
},
- "dependencies": {
- "@directus/errors": "^0.2.0",
- "@directus/extensions": "^0.1.0",
- "@directus/types": "^11.0.1",
- "@types/node": "^20.8.9",
- "typescript": "^5.2.2"
+ "peerDependencies": {
+ "@directus/errors": "^2.0.0",
+ "@directus/extensions": "^3.0.3",
+ "@directus/types": "^13.0.0"
}
}