- add all migration files for database

- npm updates
This commit is contained in:
Kaimbacher 2023-04-24 13:03:36 +02:00
parent 8a404e8a0c
commit 4abcfe7135
29 changed files with 1540 additions and 375 deletions

81
contracts/enums.ts Normal file
View File

@ -0,0 +1,81 @@
// ./contracts/enums.ts
export enum DatasetTypes {
analysisdata = 'analysisdata',
measurementdata = 'measurementdata',
monitoring = 'monitoring',
remotesensing = 'remotesensing',
gis = 'gis',
models = 'models',
mixedtype = 'mixedtype',
}
export enum ServerStates {
deleted = 'deleted',
inprogress = 'inprogress',
published = 'published',
released = 'released',
editor_accepted = 'editor_accepted',
approved = 'approved',
rejected_reviewer = 'rejected_reviewer',
rejected_editor = 'rejected_editor',
reviewed = 'reviewed',
}
// for table dataset_titles
export enum TitleTypes {
Main = 'Main',
Sub = 'Sub',
Alternative = 'Alternative',
Translated = 'Translated',
Other = 'Other',
}
// for table dataset_abstracts
export enum DescriptionTypes {
abstract = 'Abstract',
methods = 'Methods',
series_information = 'Series_information',
technical_info = 'Technical_info',
translated = 'Translated',
other = 'Other',
}
export enum PersonNameTypes {
Organizational = 'Organizational',
Personal = 'Personal',
}
export enum PersonRoles {
author = 'author',
contributor = 'contributor',
other = 'other',
}
export enum ContributorTypes {
contact_person = 'ContactPerson',
data_collector = 'DataCollector',
data_curator = 'DataCurator',
data_manager = 'DataManager',
Distributor = 'Distributor',
editor = 'Editor',
hosting_institution = 'HostingInstitution',
producer = 'Producer',
poroject_leader = 'ProjectLeader',
project_manager = 'ProjectManager',
project_member = 'ProjectMember',
registration_agency = 'RegistrationAgency',
registration_authority = 'RegistrationAuthority',
related_person = 'RelatedPerson',
researcher = 'Researcher',
research_group = 'ResearchGroup',
rights_holder = 'RightsHolder',
sponsor = 'Sponsor',
supervisor = 'Supervisor',
work_package_leader = 'WorkPackageLeader',
other = 'Other',
}
export enum SubjectTypes {
uncontrolled = 'uncontrolled',
}

View File

@ -1,21 +1,16 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
import Config from '@ioc:Adonis/Core/Config';
export default class Roles extends BaseSchema {
protected tableName = Config.get('rolePermission.role_table', 'roles');
protected tableName = 'roles';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id');
table.string('name', 191).unique();
table.string('slug', 191).nullable().unique();
table.string('description', 191).nullable();
/**
* Uses timestamptz for PostgreSQL and DATETIME2 for MSSQL
*/
table.timestamp('created_at', { useTz: true }).nullable();
table.timestamp('updated_at', { useTz: true }).nullable();
table.increments('id').primary().defaultTo("nextval('roles_id_seq')");
table.string('name', 255).notNullable();
table.string('display_name', 255);
table.string('description', 255);
table.timestamp('created_at', { useTz: false }).nullable();
table.timestamp('updated_at', { useTz: false }).nullable();
});
}
@ -23,3 +18,19 @@ export default class Roles extends BaseSchema {
this.schema.dropTable(this.tableName);
}
}
// CREATE TABLE IF NOT EXISTS roles
// (
// id integer NOT NULL DEFAULT nextval('roles_id_seq'::regclass),
// name character varying(255) NOT NULL,
// display_name character varying(255),
// description character varying(255),
// created_at timestamp(0) without time zone,
// updated_at timestamp(0) without time zone,
// CONSTRAINT roles_pkey PRIMARY KEY (id)
// )
// ALTER TABLE IF EXISTS roles
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE roles FROM tethys_app;
// GRANT ALL ON TABLE roles TO tethys_admin;
// GRANT DELETE, UPDATE, INSERT, SELECT ON TABLE roles TO tethys_app;

View File

@ -1,25 +1,39 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema'
import Config from '@ioc:Adonis/Core/Config'
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
export default class Permissions extends BaseSchema {
protected tableName = Config.get('rolePermission.permission_table', 'permissions')
protected tableName = 'permissions';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id')
table.string('name', 191).unique()
table.string('slug', 191).nullable().unique()
table.string('description', 191).nullable()
/**
* Uses timestamptz for PostgreSQL and DATETIME2 for MSSQL
*/
table.timestamp('created_at', { useTz: true }).nullable()
table.timestamp('updated_at', { useTz: true }).nullable()
})
table.increments('id').primary().defaultTo("nextval('permissions_id_seq')");
table.string('name', 255).unique().notNullable();
table.string('display_name', 100).notNullable();
table.string('description', 255);
// table.timestamp('created_at');
// table.timestamp('updated_at');
table.timestamp('created_at', { useTz: false });
table.timestamp('updated_at', { useTz: false });
});
}
public async down() {
this.schema.dropTable(this.tableName)
this.schema.dropTableIfExists(this.tableName);
}
}
// CREATE TABLE IF NOT EXISTS permissions
// (
// id integer NOT NULL DEFAULT nextval('permissions_id_seq'::regclass),
// name character varying(255) NOT NULL,
// display_name character varying(100) NOT NULL,
// description character varying(255),
// created_at timestamp(0) without time zone,
// updated_at timestamp(0) without time zone,
// CONSTRAINT permissions_pkey PRIMARY KEY (id),
// CONSTRAINT permissions_name_unique UNIQUE (name)
// )
// ALTER TABLE IF EXISTS permissions
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE permissions FROM tethys_app;
// GRANT ALL ON TABLE permissions TO tethys_admin;
// GRANT DELETE, UPDATE, INSERT, SELECT ON TABLE permissions TO tethys_app;

View File

@ -0,0 +1,52 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
export default class RoleHasPermissions extends BaseSchema {
// protected tableName = Config.get('rolePermission.role_permission_table', 'role_permissions')
protected tableName = 'role_has_permissions';
public async up() {
this.schema.createTable(this.tableName, (table) => {
// table.integer('permission_id').notNullable();
// table.integer('role_id').notNullable();
table.integer('permission_id').unsigned().index().notNullable();
table
.foreign('permission_id', 'role_has_permissions_permission_id_foreign')
.references('id')
.inTable('permissions')
.onDelete('CASCADE') // delete this when permission is deleted
.onUpdate('CASCADE');
table.integer('role_id').unsigned().index().notNullable();
table
.foreign('role_id', 'role_has_permissions_role_id_foreign')
.references('id')
.inTable('roles')
.onDelete('CASCADE') // delete this when role is deleted
.onUpdate('CASCADE');
table.primary(['permission_id', 'role_id']);
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// CREATE TABLE IF NOT EXISTS role_has_permissions
// (
// permission_id integer NOT NULL,
// role_id integer NOT NULL,
// CONSTRAINT role_has_permissions_pkey PRIMARY KEY (permission_id, role_id),
// CONSTRAINT role_has_permissions_permission_id_foreign FOREIGN KEY (permission_id)
// REFERENCES permissions (id) MATCH SIMPLE
// ON UPDATE CASCADE
// ON DELETE CASCADE,
// CONSTRAINT role_has_permissions_role_id_foreign FOREIGN KEY (role_id)
// REFERENCES roles (id) MATCH SIMPLE
// ON UPDATE CASCADE
// ON DELETE CASCADE
// )
// ALTER TABLE IF EXISTS role_has_permissions
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE role_has_permissions FROM tethys_app;
// GRANT ALL ON TABLE role_has_permissions TO tethys_admin;
// GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE role_has_permissions TO tethys_app;

View File

@ -1,32 +0,0 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema'
import Config from '@ioc:Adonis/Core/Config'
export default class RolePermissions extends BaseSchema {
protected tableName = Config.get('rolePermission.role_permission_table', 'role_permissions')
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id')
table
.integer('role_id')
.unsigned()
.references('id')
.inTable(Config.get('rolePermission.role_table', 'roles'))
table
.integer('permission_id')
.unsigned()
.references('id')
.inTable(Config.get('rolePermission.permission_table', 'permissions'))
/**
* Uses timestamptz for PostgreSQL and DATETIME2 for MSSQL
*/
table.timestamp('created_at', { useTz: true }).nullable()
table.timestamp('updated_at', { useTz: true }).nullable()
})
}
public async down() {
this.schema.dropTable(this.tableName)
}
}

View File

@ -0,0 +1,43 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
export default class Accounts extends BaseSchema {
protected tableName = 'accounts';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').primary().defaultTo("nextval('accounts_id_seq')");
table.string('login', 20).notNullable();
table.string('password', 60).notNullable();
table.string('email', 255).unique().notNullable();
table.string('first_name', 255).nullable();
table.string('last_name', 255).nullable();
table.string('remember_token');
table.timestamp('created_at');
table.timestamp('updated_at');
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// CREATE TABLE IF NOT EXISTS accounts
// (
// id integer NOT NULL DEFAULT nextval('accounts_id_seq'::regclass),
// login character varying(20) NOT NULL,
// password character varying(60) NOT NULL,
// email character varying(255) NOT NULL,
// first_name character varying(255),
// last_name character varying(255),
// remember_token character varying(100),
// created_at timestamp(0) without time zone,
// updated_at timestamp(0) without time zone,
// CONSTRAINT accounts_pkey PRIMARY KEY (id),
// CONSTRAINT accounts_email_unique UNIQUE (email)
// )
// ALTER TABLE IF EXISTS accounts
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE accounts FROM tethys_app;
// GRANT ALL ON TABLE accounts TO tethys_admin;
// GRANT DELETE, UPDATE, INSERT, SELECT ON TABLE accounts TO tethys_app;

View File

@ -1,32 +0,0 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema'
import Config from '@ioc:Adonis/Core/Config'
export default class UserPermissions extends BaseSchema {
protected tableName = Config.get('rolePermission.user_permission_table', 'user_permissions')
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id')
table
.integer('user_id')
.unsigned()
.references('id')
.inTable(Config.get('rolePermission.user_table', 'users'))
table
.integer('permission_id')
.unsigned()
.references('id')
.inTable(Config.get('rolePermission.permission_table', 'permissions'))
/**
* Uses timestamptz for PostgreSQL and DATETIME2 for MSSQL
*/
table.timestamp('created_at', { useTz: true }).nullable()
table.timestamp('updated_at', { useTz: true }).nullable()
})
}
public async down() {
this.schema.dropTable(this.tableName)
}
}

View File

@ -0,0 +1,52 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
export default class LinkAccountsRoles extends BaseSchema {
// protected tableName = Config.get('rolePermission.user_role_table', 'user_roles')
protected tableName = 'link_accounts_roles';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.integer('account_id').index().unsigned().notNullable();
table
.foreign('account_id', 'link_accounts_roles_account_id_foreign')
.references('id')
.inTable('accounts')
// .inTable(Config.get('rolePermission.user_table', 'users'))
.onDelete('CASCADE') // delete this when account is delete
.onUpdate('CASCADE');
table.integer('role_id').index().unsigned().notNullable();
table
.foreign('role_id', 'link_accounts_roles_role_id_foreign')
.references('id')
.inTable('roles')
// .inTable(Config.get('rolePermission.role_table', 'roles'))
.onDelete('CASCADE') // delete this when account is delete
.onUpdate('CASCADE');
table.primary(['account_id', 'role_id']);
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// CREATE TABLE IF NOT EXISTS link_accounts_roles
// (
// account_id integer NOT NULL,
// role_id integer NOT NULL,
// CONSTRAINT link_accounts_roles_pkey PRIMARY KEY (account_id, role_id),
// CONSTRAINT link_accounts_roles_account_id_foreign FOREIGN KEY (account_id)
// REFERENCES accounts (id) MATCH SIMPLE
// ON UPDATE CASCADE
// ON DELETE CASCADE,
// CONSTRAINT link_accounts_roles_role_id_foreign FOREIGN KEY (role_id)
// REFERENCES roles (id) MATCH SIMPLE
// ON UPDATE CASCADE
// ON DELETE CASCADE
// )
// ALTER TABLE IF EXISTS link_accounts_roles
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE link_accounts_roles FROM tethys_app;
// GRANT ALL ON TABLE link_accounts_roles TO tethys_admin;
// GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE link_accounts_roles TO tethys_app;

View File

@ -1,32 +0,0 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema'
import Config from '@ioc:Adonis/Core/Config'
export default class UserRoles extends BaseSchema {
protected tableName = Config.get('rolePermission.user_role_table', 'user_roles')
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id')
table
.integer('user_id')
.unsigned()
.references('id')
.inTable(Config.get('rolePermission.user_table', 'users'))
table
.integer('role_id')
.unsigned()
.references('id')
.inTable(Config.get('rolePermission.role_table', 'roles'))
/**
* Uses timestamptz for PostgreSQL and DATETIME2 for MSSQL
*/
table.timestamp('created_at', { useTz: true }).nullable()
table.timestamp('updated_at', { useTz: true }).nullable()
})
}
public async down() {
this.schema.dropTable(this.tableName)
}
}

View File

@ -0,0 +1,80 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
import { PersonRoles, ContributorTypes } from 'Contracts/enums';
export default class LinkDocumentsPersons extends BaseSchema {
protected tableName = 'link_documents_persons';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.integer('person_id').index('ix_fk_link_documents_persons_persons').notNullable();
table
.foreign('person_id', 'fk_link_documents_persons_persons')
.references('id')
.inTable('persons')
.onDelete('NO ACTION') // don't delete this when license is deleted
.onUpdate('NO ACTION');
table.integer('document_id').index('ix_fk_link_persons_documents_documents').notNullable();
table
.foreign('document_id', 'fk_link_persons_documents_documents')
.references('id')
.inTable('documents')
.onDelete('CASCADE') // delete this when document is deleted
.onUpdate('CASCADE');
// table.string('role').notNullable().defaultTo("'other'");
table.enum('role', Object.values(PersonRoles)).notNullable().defaultTo('other');
table.specificType('sort_order', 'smallint').notNullable();
table.boolean('allow_email_contact').notNullable().defaultTo(false);
// table.string('contributor_type');
table.enum('contributor_type', Object.values(ContributorTypes));
table.primary(['person_id', 'document_id', 'role']);
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// -- Table: gba.link_documents_persons
// -- DROP TABLE IF EXISTS gba.link_documents_persons;
// CREATE TABLE IF NOT EXISTS link_documents_persons
// (
// person_id integer NOT NULL,
// document_id integer NOT NULL,
// role character varying(255) NOT NULL DEFAULT 'other'::character varying,
// sort_order smallint NOT NULL,
// allow_email_contact boolean NOT NULL DEFAULT false,
// contributor_type character varying(255),
// CONSTRAINT link_documents_persons_pkey PRIMARY KEY (person_id, document_id, role),
// CONSTRAINT fk_link_documents_persons_persons FOREIGN KEY (person_id)
// REFERENCES persons (id) MATCH SIMPLE
// ON UPDATE NO ACTION
// ON DELETE NO ACTION,
// CONSTRAINT fk_link_persons_documents_documents FOREIGN KEY (document_id)
// REFERENCES documents (id) MATCH SIMPLE
// ON UPDATE CASCADE
// ON DELETE CASCADE,
// CONSTRAINT link_documents_persons_contributor_type_check CHECK (contributor_type::text = ANY (ARRAY['ContactPerson'::character varying::text, 'DataCollector'::character varying::text, 'DataCurator'::character varying::text, 'DataManager'::character varying::text, 'Distributor'::character varying::text, 'Editor'::character varying::text, 'HostingInstitution'::character varying::text, 'Producer'::character varying::text, 'ProjectLeader'::character varying::text, 'ProjectManager'::character varying::text, 'ProjectMember'::character varying::text, 'RegistrationAgency'::character varying::text, 'RegistrationAuthority'::character varying::text, 'RelatedPerson'::character varying::text, 'Researcher'::character varying::text, 'ResearchGroup'::character varying::text, 'RightsHolder'::character varying::text, 'Sponsor'::character varying::text, 'Supervisor'::character varying::text, 'WorkPackageLeader'::character varying::text, 'Other'::character varying::text])),
// CONSTRAINT link_documents_persons_role_check CHECK (role::text = ANY (ARRAY['author'::character varying::text, 'contributor'::character varying::text, 'other'::character varying::text]))
// )
// ALTER TABLE IF EXISTS link_documents_persons
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE link_documents_persons FROM tethys_app;
// GRANT ALL ON TABLE link_documents_persons TO tethys_admin;
// GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE link_documents_persons TO tethys_app;
// -- Index: ix_fk_link_documents_persons_persons
// -- DROP INDEX IF EXISTS ix_fk_link_documents_persons_persons;
// CREATE INDEX IF NOT EXISTS ix_fk_link_documents_persons_persons
// ON link_documents_persons USING btree
// (person_id ASC);
// -- Index: ix_fk_link_persons_documents_documents
// -- DROP INDEX IF EXISTS ix_fk_link_persons_documents_documents;
// CREATE INDEX IF NOT EXISTS ix_fk_link_persons_documents_documents
// ON link_documents_persons USING btree
// (document_id ASC);

View File

@ -0,0 +1,41 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
import { SubjectTypes } from 'Contracts/enums';
export default class DatasetSubjects extends BaseSchema {
protected tableName = 'dataset_subjects';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.bigIncrements('id').defaultTo("nextval('dataset_subjects_id_seq')");
table.string('language', 3);
// table.string('type', 255).notNullable().defaultTo('uncontrolled');
table.enum('type', Object.values(SubjectTypes)).defaultTo('uncontrolled');
table.string('value', 255).notNullable();
table.string('external_key', 255);
table.timestamp('created_at', { useTz: false }).nullable();
table.timestamp('updated_at', { useTz: false }).nullable();
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// -- Table: dataset_subjects
// CREATE TABLE IF NOT EXISTS dataset_subjects
// (
// id bigint NOT NULL DEFAULT nextval('dataset_subjects_id_seq'::regclass),
// language character varying(3),
// type character varying(255) NOT NULL,
// value character varying(255) NOT NULL,
// external_key character varying(255),
// created_at timestamp(0) without time zone,
// updated_at timestamp(0) without time zone,
// CONSTRAINT dataset_subjects_pkey PRIMARY KEY (id),
// CONSTRAINT dataset_subjects_type_check CHECK (type::text = 'uncontrolled'::text)
// )
// ALTER TABLE IF EXISTS dataset_subjects OWNER to tethys_admin;
// REVOKE ALL ON TABLE dataset_subjects FROM tethys_app;
// GRANT ALL ON TABLE dataset_subjects TO tethys_admin;
// GRANT DELETE, UPDATE, INSERT, SELECT ON TABLE dataset_subjects TO tethys_app;

View File

@ -0,0 +1,62 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
export default class LinkDatasetSubjects extends BaseSchema {
protected tableName = 'link_dataset_subjects';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.integer('subject_id').index('link_dataset_subjects_subject_id_index').notNullable();
table
.foreign('subject_id', 'link_dataset_subjects_subject_id_foreign')
.references('id')
.inTable('dataset_subjects')
.onDelete('NO ACTION') // don't delete this when subject is deleted
.onUpdate('NO ACTION');
table.integer('document_id').index('link_dataset_subjects_document_id_index').notNullable();
table
.foreign('document_id', 'link_dataset_subjects_document_id_foreign')
.references('id')
.inTable('documents')
.onDelete('CASCADE') // delete this when document is deleted
.onUpdate('CASCADE');
table.primary(['subject_id', 'document_id']);
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// -- Table: link_dataset_subjects
// CREATE TABLE IF NOT EXISTS link_dataset_subjects
// (
// subject_id integer NOT NULL,
// document_id integer NOT NULL,
// CONSTRAINT link_dataset_subjects_pkey PRIMARY KEY (subject_id, document_id),
// CONSTRAINT link_dataset_subjects_document_id_foreign FOREIGN KEY (document_id)
// REFERENCES documents (id) MATCH SIMPLE
// ON UPDATE CASCADE
// ON DELETE CASCADE,
// CONSTRAINT link_dataset_subjects_subject_id_foreign FOREIGN KEY (subject_id)
// REFERENCES dataset_subjects (id) MATCH SIMPLE
// ON UPDATE NO ACTION
// ON DELETE NO ACTION
// )
// ALTER TABLE IF EXISTS .link_dataset_subjects
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE link_dataset_subjects FROM tethys_app;
// GRANT ALL ON TABLE link_dataset_subjects TO tethys_admin;
// GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE link_dataset_subjects TO tethys_app;
// -- Index: link_dataset_subjects_document_id_index
// -- DROP INDEX IF EXISTS link_dataset_subjects_document_id_index;
// CREATE INDEX IF NOT EXISTS link_dataset_subjects_document_id_index
// ON link_dataset_subjects USING btree
// (document_id ASC);
// -- Index: link_dataset_subjects_subject_id_index
// -- DROP INDEX IF EXISTS link_dataset_subjects_subject_id_index;
// CREATE INDEX IF NOT EXISTS link_dataset_subjects_subject_id_index
// ON link_dataset_subjects USING btree
// (subject_id ASC);

View File

@ -0,0 +1,37 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
export default class Projects extends BaseSchema {
protected tableName = 'projects';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').primary().defaultTo("nextval('projects_id_seq')");
table.string('label', 50).notNullable();
table.string('name', 255).notNullable();
table.string('description', 255).nullable();
table.timestamp('created_at', { useTz: false }).nullable();
table.timestamp('updated_at', { useTz: false }).nullable();
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// -- Table: project
// CREATE TABLE IF NOT EXISTS projects
// (
// id integer NOT NULL DEFAULT nextval('projects_id_seq'::regclass),
// label character varying(50) NOT NULL,
// name character varying(255) NOT NULL,
// description character varying(2500),
// created_at timestamp(0) without time zone,
// updated_at timestamp(0) without time zone,
// CONSTRAINT projects_pkey PRIMARY KEY (id)
// )
// ALTER TABLE IF EXISTS projects
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE projects FROM tethys_app;
// GRANT ALL ON TABLE projects TO tethys_admin;
// GRANT DELETE, UPDATE, INSERT, SELECT ON TABLE projects TO tethys_app;

View File

@ -0,0 +1,93 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
import { DatasetTypes, ServerStates } from 'Contracts/enums';
export default class Documents extends BaseSchema {
protected tableName = 'documents';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').primary().defaultTo("nextval('documents_id_seq')");
table.string('contributing_corporation');
table.string('creating_corporation').notNullable();
table.string('publisher_name');
table.timestamp('embargo_date');
table.integer('publish_id').unique();
table.integer('project_id').unsigned().nullable();
table
.foreign('project_id', 'documents_project_id_foreign')
.references('id')
.inTable('projects')
.onDelete('NO ACTION') // don't delete this doc when project is deleted
.onUpdate('NO ACTION');
table.enum('type', Object.values(DatasetTypes)).notNullable();
table.string('language').notNullable();
table.enum('server_state', Object.values(ServerStates)).notNullable().defaultTo("'inprogress'");
table.boolean('belongs_to_bibliography').notNullable().defaultTo(false);
table.timestamp('created_at').notNullable();
table.timestamp('server_date_modified').notNullable();
table.timestamp('server_date_published');
table.integer('account_id').unsigned().nullable();
table
.foreign('account_id', 'documents_account_id_foreign')
.references('id')
.inTable('accounts')
.onDelete('NO ACTION') // don't delete this when account is deleted
.onUpdate('NO ACTION');
table.integer('editor_id');
table.integer('reviewer_id');
table.string('preferred_reviewer');
table.string('preferred_reviewer_email');
table.string('reject_editor_note');
table.string('reject_reviewer_note');
table.boolean('reviewer_note_visible').notNullable().defaultTo(false);
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// -- Table: documents
// CREATE TABLE IF NOT EXISTS documents
// (
// id integer NOT NULL DEFAULT nextval('documents_id_seq'::regclass),
// contributing_corporation character varying(255) ,
// creating_corporation character varying(255) NOT NULL,
// publisher_name character varying(255) ,
// embargo_date timestamp(0) without time zone,
// publish_id integer,
// project_id integer,
// type character varying(255) NOT NULL,
// language character varying(10) NOT NULL,
// server_state character varying(255) NOT NULL DEFAULT 'inprogress'::character varying,
// belongs_to_bibliography boolean NOT NULL DEFAULT false,
// created_at timestamp(0) without time zone NOT NULL,
// server_date_modified timestamp(0) without time zone NOT NULL,
// server_date_published timestamp(0) without time zone,
// account_id integer,
// editor_id integer,
// reviewer_id integer,
// preferred_reviewer character varying(25) ,
// preferred_reviewer_email character varying(50) ,
// reject_editor_note character varying(500) ,
// reject_reviewer_note character varying(500) ,
// reviewer_note_visible boolean NOT NULL DEFAULT false,
// CONSTRAINT documents_pkey PRIMARY KEY (id),
// CONSTRAINT documents_publish_id_unique UNIQUE (publish_id),
// CONSTRAINT documents_project_id_foreign FOREIGN KEY (project_id)
// REFERENCES projects (id) MATCH SIMPLE
// ON UPDATE NO ACTION
// ON DELETE NO ACTION,
// CONSTRAINT documents_account_id_foreign FOREIGN KEY (account_id)
// REFERENCES accounts (id) MATCH SIMPLE
// ON UPDATE NO ACTION
// ON DELETE NO ACTION,
// CONSTRAINT documents_server_state_check CHECK (server_state::text = ANY (ARRAY['deleted'::character varying::text, 'inprogress'::character varying::text, 'published'::character varying::text, 'released'::character varying::text, 'editor_accepted'::character varying::text, 'approved'::character varying::text, 'rejected_reviewer'::character varying::text, 'rejected_editor'::character varying::text, 'reviewed'::character varying::text])),
// CONSTRAINT documents_type_check CHECK (type::text = ANY (ARRAY['analysisdata'::character varying::text, 'measurementdata'::character varying::text, 'monitoring'::character varying::text, 'remotesensing'::character varying::text, 'gis'::character varying::text, 'models'::character varying::text, 'mixedtype'::character varying::text]))
// )
// ALTER TABLE IF EXISTS documents
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE documents FROM tethys_app;
// GRANT ALL ON TABLE documents TO tethys_admin;
// GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE documents TO tethys_app;

View File

@ -0,0 +1,48 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
import { DescriptionTypes } from 'Contracts/enums';
export default class DatasetTitles extends BaseSchema {
protected tableName = 'dataset_abstracts';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').primary().defaultTo("nextval('dataset_abstracts_id_seq')");
table.integer('document_id').unsigned().notNullable();
table
.foreign('document_id', 'dataset_abstracts_document_id_foreign')
.references('id')
.inTable('documents')
.onDelete('CASCADE') // delete this abstract when document is deleted
.onUpdate('CASCADE');
// table.string('type', 255).notNullable();
table.enum('type', Object.values(DescriptionTypes)).notNullable();
table.string('value', 255).notNullable();
table.string('language', 3).notNullable();
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// -- Table: dataset_titles
// CREATE TABLE IF NOT EXISTS dataset_titles
// (
// id integer NOT NULL DEFAULT nextval('dataset_titles_id_seq'::regclass),
// document_id integer NOT NULL,
// type character varying(255) NOT NULL,
// value character varying(255) NOT NULL,
// language character varying(3) NOT NULL,
// CONSTRAINT dataset_titles_pkey PRIMARY KEY (id),
// CONSTRAINT dataset_titles_document_id_foreign FOREIGN KEY (document_id)
// REFERENCES documents (id) MATCH SIMPLE
// ON UPDATE CASCADE
// ON DELETE CASCADE,
// CONSTRAINT dataset_titles_type_check CHECK (type::text = ANY (ARRAY['Main'::character varying::text, 'Sub'::character varying::text, 'Alternative'::character varying::text, 'Translated'::character varying::text, 'Other'::character varying::text]))
// )
// ALTER TABLE IF EXISTS dataset_titles
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE dataset_titles FROM tethys_app;
// GRANT ALL ON TABLE dataset_titles TO tethys_admin;
// GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE dataset_titles TO tethys_app;

View File

@ -0,0 +1,48 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
import { TitleTypes } from 'Contracts/enums';
export default class DatasetTitles extends BaseSchema {
protected tableName = 'dataset_titles';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').primary().defaultTo("nextval('dataset_titles_id_seq')");
table.integer('document_id').unsigned().notNullable();
table
.foreign('document_id', 'dataset_titles_document_id_foreign')
.references('id')
.inTable('documents')
.onDelete('CASCADE') // delete this titke when document is deleted
.onUpdate('CASCADE');
// table.string('type', 255).notNullable();
table.enum('type', Object.values(TitleTypes)).notNullable();
table.string('value', 255).notNullable();
table.string('language', 3).notNullable();
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// -- Table: dataset_titles
// CREATE TABLE IF NOT EXISTS dataset_titles
// (
// id integer NOT NULL DEFAULT nextval('dataset_titles_id_seq'::regclass),
// document_id integer NOT NULL,
// type character varying(255) NOT NULL,
// value character varying(255) NOT NULL,
// language character varying(3) NOT NULL,
// CONSTRAINT dataset_titles_pkey PRIMARY KEY (id),
// CONSTRAINT dataset_titles_document_id_foreign FOREIGN KEY (document_id)
// REFERENCES documents (id) MATCH SIMPLE
// ON UPDATE CASCADE
// ON DELETE CASCADE,
// CONSTRAINT dataset_titles_type_check CHECK (type::text = ANY (ARRAY['Main'::character varying::text, 'Sub'::character varying::text, 'Alternative'::character varying::text, 'Translated'::character varying::text, 'Other'::character varying::text]))
// )
// ALTER TABLE IF EXISTS dataset_titles
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE dataset_titles FROM tethys_app;
// GRANT ALL ON TABLE dataset_titles TO tethys_admin;
// GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE dataset_titles TO tethys_app;

View File

@ -0,0 +1,40 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
export default class CollectionsRoles extends BaseSchema {
protected tableName = 'collections_roles';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').primary().defaultTo("nextval('collections_roles_id_seq')");
table.string('name', 255).notNullable();
table.string('oai_name', 255).notNullable();
table.integer('position').notNullable();
table.boolean('visible').notNullable().defaultTo(true);
table.boolean('visible_frontdoor').notNullable().defaultTo(true);
table.boolean('visible_oai').notNullable().defaultTo(true);
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// -- Table: collection roles
// CREATE TABLE IF NOT EXISTS collections_roles
// (
// id integer NOT NULL DEFAULT nextval('collections_roles_id_seq'::regclass),
// name character varying(255) NOT NULL,
// oai_name character varying(255) NOT NULL,
// "position" integer NOT NULL,
// visible boolean NOT NULL DEFAULT true,
// visible_frontdoor boolean NOT NULL DEFAULT true,
// visible_oai boolean NOT NULL DEFAULT true,
// CONSTRAINT collections_roles_pkey PRIMARY KEY (id)
// )
// ALTER TABLE IF EXISTS collections_roles
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE collections_roles FROM tethys_app;
// GRANT ALL ON TABLE collections_roles TO tethys_admin;
// GRANT DELETE, UPDATE, INSERT, SELECT ON TABLE collections_roles TO tethys_app;

View File

@ -0,0 +1,61 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
export default class Collections extends BaseSchema {
protected tableName = 'collections';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').defaultTo("nextval('collections_id_seq')");
table.integer('role_id').unsigned();
table
.foreign('role_id', 'collections_role_id_foreign')
.references('id')
.inTable('collections_roles')
.onDelete('CASCADE') // delete this collection when collection_role is deleted
.onUpdate('CASCADE');
table.string('number', 255);
table.string('name', 255).notNullable();
table.string('oai_subset', 255);
table.integer('parent_id').unsigned();
table
.foreign('parent_id', 'collections_parent_id_foreign')
.references('id')
.inTable('collections')
.onDelete('CASCADE') // delete this collection when parent collection is deleted
.onUpdate('CASCADE');
table.boolean('visible').notNullable().defaultTo(true);
table.boolean('visible_publish').notNullable().defaultTo(true);
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// -- Table: collections
// CREATE TABLE IF NOT EXISTS collections
// (
// id integer NOT NULL DEFAULT nextval('collections_id_seq'::regclass),
// role_id integer,
// "number" character varying(255),
// name character varying(255) NOT NULL,
// oai_subset character varying(255),
// parent_id integer,
// visible boolean NOT NULL DEFAULT true,
// visible_publish boolean NOT NULL DEFAULT true,
// CONSTRAINT collections_pkey PRIMARY KEY (id),
// CONSTRAINT collections_parent_id_foreign FOREIGN KEY (parent_id)
// REFERENCES collections (id) MATCH SIMPLE
// ON UPDATE CASCADE
// ON DELETE CASCADE,
// CONSTRAINT collections_role_id_foreign FOREIGN KEY (role_id)
// REFERENCES collections_roles (id) MATCH SIMPLE
// ON UPDATE CASCADE
// ON DELETE CASCADE
// )
// ALTER TABLE IF EXISTS collections
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE collections FROM tethys_app;
// GRANT ALL ON TABLE collections TO tethys_admin;
// GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE collections TO tethys_app;

View File

@ -0,0 +1,59 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
export default class LinkDocumentsCollections extends BaseSchema {
protected tableName = 'link_documents_collections';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.integer('collection_id').index('link_documents_collections_collection_id_index').notNullable();
table
.foreign('collection_id', 'link_documents_collections_collection_id_foreign')
.references('id')
.inTable('collections')
.onDelete('CASCADE') // don't delete this when collection is deleted
.onUpdate('CASCADE');
table.integer('document_id').index('link_documents_collections_document_id_index').notNullable();
table
.foreign('document_id', 'link_documents_collections_document_id_foreign')
.references('id')
.inTable('documents')
.onDelete('CASCADE') // don't delete this when document is deleted
.onUpdate('CASCADE');
table.primary(['collection_id', 'document_id']);
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// -- Table: link_documents_collections
// CREATE TABLE IF NOT EXISTS link_documents_collections
// (
// collection_id integer NOT NULL,
// document_id integer NOT NULL,
// CONSTRAINT link_documents_collections_pkey PRIMARY KEY (collection_id, document_id),
// CONSTRAINT link_documents_collections_collection_id_foreign FOREIGN KEY (collection_id)
// REFERENCES collections (id) MATCH SIMPLE
// ON UPDATE CASCADE
// ON DELETE CASCADE,
// CONSTRAINT link_documents_collections_document_id_foreign FOREIGN KEY (document_id)
// REFERENCES documents (id) MATCH SIMPLE
// ON UPDATE CASCADE
// ON DELETE CASCADE
// )
// ALTER TABLE IF EXISTS link_documents_collections
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE link_documents_collections FROM tethys_app;
// GRANT ALL ON TABLE link_documents_collections TO tethys_admin;
// GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE link_documents_collections TO tethys_app;
// -- Index: link_documents_collections_collection_id_index
// -- DROP INDEX IF EXISTS link_documents_collections_collection_id_index;
// CREATE INDEX IF NOT EXISTS link_documents_collections_collection_id_index
// ON link_documents_collections USING btree (collection_id ASC);
// -- Index: link_documents_collections_document_id_index
// -- DROP INDEX IF EXISTS link_documents_collections_document_id_index;
// CREATE INDEX IF NOT EXISTS link_documents_collections_document_id_index
// ON link_documents_collections USING btree (document_id ASC);

View File

@ -0,0 +1,56 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
import { PersonNameTypes } from 'Contracts/enums';
export default class Persons extends BaseSchema {
protected tableName = 'persons';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').primary().defaultTo("nextval('persons_id_seq')");
table.string('academic_title', 255);
table.string('date_of_birth', 100);
table.string('email', 100).notNullable();
table.string('first_name', 255);
table.string('last_name', 255);
table.string('place_of_birth', 255);
table.string('identifier_orcid', 50);
table.string('identifier_gnd', 50);
table.string('identifier_misc', 50);
table.boolean('status').defaultTo(true);
table.integer('registered_at');
// table.string('name_type', 255);
table.enum('name_type', Object.values(PersonNameTypes)).notNullable();
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// -- Table: persons
// CREATE TABLE IF NOT EXISTS persons
// (
// id integer NOT NULL DEFAULT nextval('persons_id_seq'::regclass),
// academic_title character varying(255),
// date_of_birth character varying(100),
// email character varying(100) NOT NULL,
// first_name character varying(255),
// last_name character varying(255),
// place_of_birth character varying(255),
// identifier_orcid character varying(50),
// identifier_gnd character varying(50),
// identifier_misc character varying(50),
// status boolean DEFAULT true,
// registered_at integer,
// name_type character varying(255),
// CONSTRAINT persons_pkey PRIMARY KEY (id),
// CONSTRAINT persons_name_type_check CHECK (name_type::text = ANY (ARRAY['Organizational'::character varying::text, 'Personal'::character varying::text]))
// )
// ALTER TABLE IF EXISTS persons
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE persons FROM tethys_app;
// GRANT ALL ON TABLE persons TO tethys_admin;
// GRANT DELETE, UPDATE, INSERT, SELECT ON TABLE persons TO tethys_app;

View File

@ -0,0 +1,61 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
export default class DocumentFiles extends BaseSchema {
protected tableName = 'document_files';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').primary().defaultTo("nextval('document_files_id_seq')");
table.integer('document_id').unsigned().notNullable();
table
.foreign('document_id', 'document_files_document_id_foreign')
.references('id')
.inTable('documents')
.onDelete('CASCADE') // delete this when document is deleted
.onUpdate('CASCADE');
table.string('path_name').notNullable();
table.string('label');
table.string('comment');
table.string('mime_type');
table.string('language');
table.bigInteger('file_size').notNullable();
table.boolean('visible_in_frontdoor').notNullable().defaultTo(true);
table.boolean('visible_in_oai').notNullable().defaultTo(true);
table.integer('sort_order').notNullable();
table.timestamp('created_at');
table.timestamp('updated_at');
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// -- Table: document_files
// CREATE TABLE IF NOT EXISTS document_files
// (
// id integer NOT NULL DEFAULT nextval('document_files_id_seq'::regclass),
// document_id integer NOT NULL,
// path_name character varying(100) NOT NULL,
// label character varying(100),
// comment character varying(255),
// mime_type character varying(255),
// language character varying(3),
// file_size bigint NOT NULL,
// visible_in_frontdoor boolean NOT NULL DEFAULT true,
// visible_in_oai boolean NOT NULL DEFAULT true,
// sort_order integer NOT NULL,
// created_at timestamp(0) without time zone,
// updated_at timestamp(0) without time zone,
// CONSTRAINT document_files_pkey PRIMARY KEY (id),
// CONSTRAINT document_files_document_id_foreign FOREIGN KEY (document_id)
// REFERENCES documents (id) MATCH SIMPLE
// ON UPDATE CASCADE
// ON DELETE CASCADE
// )
// ALTER TABLE IF EXISTS document_files
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE document_files FROM tethys_app;
// GRANT ALL ON TABLE document_files TO tethys_admin;
// GRANT DELETE, UPDATE, INSERT, SELECT ON TABLE document_files TO tethys_app;

View File

@ -0,0 +1,42 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
export default class FileHashvalues extends BaseSchema {
protected tableName = 'file_hashvalues';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.integer('file_id').notNullable();
table
.foreign('file_id', 'file_hashvalues_file_id_foreign')
.references('id')
.inTable('document_files')
.onDelete('CASCADE') // delete this when document_file is deleted
.onUpdate('CASCADE');
table.string('type', 50).notNullable();
table.string('value').notNullable();
table.primary(['file_id', 'type']);
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// -- Table: file_hashvalues
// CREATE TABLE IF NOT EXISTS file_hashvalues
// (
// file_id integer NOT NULL,
// type character varying(50) NOT NULL,
// value character varying(255) NOT NULL,
// CONSTRAINT file_hashvalues_pkey PRIMARY KEY (file_id, type),
// CONSTRAINT file_hashvalues_file_id_foreign FOREIGN KEY (file_id)
// REFERENCES document_files (id) MATCH SIMPLE
// ON UPDATE CASCADE
// ON DELETE CASCADE
// )
// ALTER TABLE IF EXISTS file_hashvalues
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE file_hashvalues FROM tethys_app;
// GRANT ALL ON TABLE file_hashvalues TO tethys_admin;
// GRANT DELETE, UPDATE, INSERT, SELECT ON TABLE file_hashvalues TO tethys_app;

View File

@ -0,0 +1,53 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
export default class DocumentLicences extends BaseSchema {
protected tableName = 'document_licences';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').primary().defaultTo("nextval('document_licences_id_seq')");
table.boolean('active').notNullable().defaultTo(true);
table.string('comment_internal', 4000);
table.string('desc_markup', 4000);
table.string('desc_text', 4000);
table.string('language', 3);
table.string('link_licence', 200).notNullable();
table.string('link_logo', 200);
table.string('link_sign', 200);
table.string('mime_type', 30);
table.string('name_long', 200).notNullable();
table.string('name', 50).notNullable();
table.boolean('pod_allowed').notNullable().defaultTo(false);
table.specificType('sort_order', 'smallint').notNullable();
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// -- Table: document_licences
// CREATE TABLE IF NOT EXISTS document_licences
// (
// id integer NOT NULL DEFAULT nextval('document_licences_id_seq'::regclass),
// active boolean NOT NULL DEFAULT true,
// comment_internal character varying(4000),
// desc_markup character varying(4000),
// desc_text character varying(4000),
// language character varying(3),
// link_licence character varying(200) NOT NULL,
// link_logo character varying(200),
// link_sign character varying(200),
// mime_type character varying(30),
// name_long character varying(200) NOT NULL,
// name character varying(50) NOT NULL,
// pod_allowed boolean NOT NULL DEFAULT false,
// sort_order smallint NOT NULL,
// CONSTRAINT document_licences_pkey PRIMARY KEY (id)
// )
// ALTER TABLE IF EXISTS document_licences
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE document_licences FROM tethys_app;
// GRANT ALL ON TABLE document_licences TO tethys_admin;
// GRANT DELETE, UPDATE, INSERT, SELECT ON TABLE document_licences TO tethys_app;

View File

@ -0,0 +1,63 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
import { PersonRoles } from 'Contracts/enums';
export default class LinkDocumentsLicences extends BaseSchema {
protected tableName = 'link_documents_licences';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.integer('licence_id').index('link_documents_licences_licence_id_index').notNullable();
table
.foreign('licence_id', 'link_documents_licences_licence_id_foreign')
.references('id')
.inTable('document_licences')
.onDelete('NO ACTION') // don't delete this when license is deleted
.onUpdate('NO ACTION');
// table.index('licence_id', 'link_documents_licences_licence_id_index')
table.integer('document_id').index('link_documents_licences_document_id_index').notNullable();
table
.foreign('document_id', 'link_documents_licences_document_id_foreign')
.references('id')
.inTable('documents')
.onDelete('CASCADE') // delete this when permission is deleted
.onUpdate(' CASCADE');
// table.index('licence_id', 'link_documents_licences_document_id_index')
table.primary(['licence_id', 'document_id']);
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// -- Table: link_documents_licences
// CREATE TABLE IF NOT EXISTS link_documents_licences
// (
// licence_id integer NOT NULL,
// document_id integer NOT NULL,
// role character varying(255) NOT NULL DEFAULT 'other'::character varying,
// CONSTRAINT link_documents_licences_pkey PRIMARY KEY (licence_id, document_id),
// CONSTRAINT link_documents_licences_document_id_foreign FOREIGN KEY (document_id)
// REFERENCES documents (id) MATCH SIMPLE
// ON UPDATE CASCADE
// ON DELETE CASCADE,
// CONSTRAINT link_documents_licences_licence_id_foreign FOREIGN KEY (licence_id)
// REFERENCES document_licences (id) MATCH SIMPLE
// ON UPDATE NO ACTION
// ON DELETE NO ACTION,
// )
// ALTER TABLE IF EXISTS link_documents_licences
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE link_documents_licences FROM tethys_app;
// GRANT ALL ON TABLE link_documents_licences TO tethys_admin;
// GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE link_documents_licences TO tethys_app;
// -- Index: link_documents_licences_document_id_index
// CREATE INDEX IF NOT EXISTS link_documents_licences_document_id_index
// ON link_documents_licences USING btree
// (document_id ASC);
// -- Index: link_documents_licences_licence_id_index
// CREATE INDEX IF NOT EXISTS link_documents_licences_licence_id_index
// ON link_documents_licences USING btree
// (licence_id ASC);

View File

@ -0,0 +1,37 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
export default class MimeTypes extends BaseSchema {
protected tableName = 'mime_types';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').primary().defaultTo("nextval('mime_types_id_seq')");
table.string('name', 255).notNullable();
table.string('file_extension', 255).notNullable();
table.boolean('enabled').notNullable().defaultTo(false);
table.timestamp('created_at', { useTz: false }).nullable();
table.timestamp('updated_at', { useTz: false }).nullable();
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// -- Table: mime_types
// CREATE TABLE IF NOT EXISTS mime_types
// (
// id integer NOT NULL DEFAULT nextval('mime_types_id_seq'::regclass),
// name character varying(255) NOT NULL,
// file_extension character varying(255) NOT NULL,
// enabled boolean NOT NULL DEFAULT false,
// created_at timestamp(0) without time zone,
// updated_at timestamp(0) without time zone,
// CONSTRAINT mime_types_pkey PRIMARY KEY (id)
// )
// ALTER TABLE IF EXISTS mime_types
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE mime_types FROM tethys_app;
// GRANT ALL ON TABLE mime_types TO tethys_admin;
// GRANT DELETE, UPDATE, INSERT, SELECT ON TABLE mime_types TO tethys_app;

View File

@ -0,0 +1,41 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
export default class Languages extends BaseSchema {
protected tableName = 'languages';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').primary().defaultTo("nextval('languages_id_seq')");
table.string('part2_b', 3).notNullable();
table.string('part2_t', 3).notNullable();
table.string('part1', 2).notNullable();
table.string('scope', 20).notNullable();
table.string('type', 20).notNullable();
table.string('ref_name', 150).notNullable();
table.boolean('active').notNullable().defaultTo(true);
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// -- Table: languages
// CREATE TABLE IF NOT EXISTS languages
// (
// id integer NOT NULL DEFAULT nextval('languages_id_seq'::regclass),
// part2_b character varying(3) NOT NULL,
// part2_t character varying(3) NOT NULL,
// part1 character varying(2) NOT NULL,
// scope character varying(20) NOT NULL,
// type character varying(20) NOT NULL,
// ref_name character varying(150) NOT NULL,
// active boolean NOT NULL DEFAULT true,
// CONSTRAINT languages_pkey PRIMARY KEY (id)
// )
// ALTER TABLE IF EXISTS languages
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE languages FROM tethys_app;
// GRANT ALL ON TABLE languages TO tethys_admin;
// GRANT DELETE, UPDATE, INSERT, SELECT ON TABLE languages TO tethys_app;

View File

@ -0,0 +1,33 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema';
export default class DocumentXmlCache extends BaseSchema {
protected tableName = 'document_xml_cache';
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('document_id').primary();
table.integer('xml_version').notNullable();
table.string('server_date_modified', 50);
table.text('xml_data');
});
}
public async down() {
this.schema.dropTable(this.tableName);
}
}
// -- Table: document_xml_cache
// CREATE TABLE IF NOT EXISTS document_xml_cache
// (
// document_id integer NOT NULL,
// xml_version integer NOT NULL,
// server_date_modified character varying(50),
// xml_data text,
// CONSTRAINT document_xml_cache_pkey PRIMARY KEY (document_id)
// )
// ALTER TABLE IF EXISTS document_xml_cache
// OWNER to tethys_admin;
// REVOKE ALL ON TABLE document_xml_cache FROM tethys_app;
// GRANT ALL ON TABLE document_xml_cache TO tethys_admin;
// GRANT DELETE, UPDATE, INSERT, SELECT ON TABLE document_xml_cache TO tethys_app;

View File

@ -0,0 +1,32 @@
docker exec -it tethys_db /bin/bash
su -l postgres
psql
drop database test with (force);
create database test;
\q
psql -d test -U postgres -p 5432
CREATE SCHEMA IF NOT EXISTS gba AUTHORIZATION tethys_admin;
CREATE EXTENSION adminpack;
\q
exit
exit
node ace migration:run
migrated database/migrations/acl_1_roles
migrated database/migrations/acl_2_permissions
migrated database/migrations/acl_3_role_has_permissions
migrated database/migrations/acl_4_accounts
migrated database/migrations/acl_5_link_accounts_roles
migrated database/migrations/files_1681720090636_documents
migrated database/migrations/files_1681720091636_document_files
migrated database/migrations/files_1681720092636_file_hashvalues
node ace migration:rollback

515
package-lock.json generated
View File

@ -2662,9 +2662,9 @@
}
},
"node_modules/@eslint/js": {
"version": "8.38.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz",
"integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==",
"version": "8.39.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz",
"integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@ -2723,9 +2723,9 @@
"dev": true
},
"node_modules/@inertiajs/core": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@inertiajs/core/-/core-1.0.2.tgz",
"integrity": "sha512-IJryvuNBcOIEZqKaA1vsX++hroovrLfb4jezym/W6NqxpsacoOkCLqWFneiScTaa5IiU0Wv0Li3lCuxK7DwTEQ==",
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/@inertiajs/core/-/core-1.0.6.tgz",
"integrity": "sha512-l1fna4c9h2Tw8EWRGrYd8XVOsNI9rNGKLiAnTfbW+tbcpCtsoBIDmp2OZpeMsBw8tuO7qJV+V01G11nsajrJdQ==",
"dependencies": {
"axios": "^1.2.0",
"deepmerge": "^4.0.0",
@ -2734,9 +2734,9 @@
}
},
"node_modules/@inertiajs/core/node_modules/axios": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.3.5.tgz",
"integrity": "sha512-glL/PvG/E+xCWwV8S6nCHcrfg1exGx7vxyUIivIA1iL7BIh6bePylCfVHwp6k13ao7SATxB6imau2kqY+I67kw==",
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.3.6.tgz",
"integrity": "sha512-PEcdkk7JcdPiMDkvM4K6ZBRYq9keuVJsToxm2zQIM70Qqo2WHTdJZMXcG9X+RmRp2VPNUQC8W1RAGbgt6b1yMg==",
"dependencies": {
"follow-redirects": "^1.15.0",
"form-data": "^4.0.0",
@ -2754,11 +2754,11 @@
}
},
"node_modules/@inertiajs/vue3": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@inertiajs/vue3/-/vue3-1.0.2.tgz",
"integrity": "sha512-8LU6fd3BcmmxN7kHWgF06zKXnqZibi3+2UJ5Im1WsMXfqZO4jwaz5qFU2NjOBQEgcm5t+FNv1fbAESGEC8eezg==",
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/@inertiajs/vue3/-/vue3-1.0.6.tgz",
"integrity": "sha512-s5I0SMm687RTH7L1sJ06tYLRJIxmYN5Y83fBKfP+ThnleBAjWq4kT1eMGXPWxvL8T7qu6rIjkrx4NsG89st4DA==",
"dependencies": {
"@inertiajs/core": "1.0.2",
"@inertiajs/core": "1.0.6",
"lodash.clonedeep": "^4.5.0",
"lodash.isequal": "^4.5.0"
},
@ -3346,9 +3346,9 @@
"dev": true
},
"node_modules/@symfony/webpack-encore": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@symfony/webpack-encore/-/webpack-encore-4.2.0.tgz",
"integrity": "sha512-m0ZGm7vZpmc9pVKE7YBppS1tb9bK8r0qzOvRI2uCK7UfXtzfV3VgXr0VdTAlfmC72vvLKI+s9YJpiesOFbR6Aw==",
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/@symfony/webpack-encore/-/webpack-encore-4.3.0.tgz",
"integrity": "sha512-YhM6xh+aKmrWS7X7Y2CUDte4wiUm9WIo0w07KTwDLLQnOUdMHRf3wa680WXH/I3oHqD+grFa7BHPpR0sfmoGMQ==",
"dev": true,
"dependencies": {
"@nuxt/friendly-errors-webpack-plugin": "^2.5.1",
@ -3389,7 +3389,7 @@
"@vue/babel-preset-jsx": "^1.0.0",
"@vue/compiler-sfc": "^2.6 || ^3.0.2",
"eslint": "^8.0.0",
"eslint-webpack-plugin": "^3.1.0",
"eslint-webpack-plugin": "^3.1.0 || ^4.0.0",
"file-loader": "^6.0.0",
"fork-ts-checker-webpack-plugin": "^7.0.0",
"handlebars": "^4.7.7",
@ -3403,7 +3403,7 @@
"stylus": "^0.58.1",
"stylus-loader": "^7.0.0",
"ts-loader": "^9.0.0",
"typescript": "^4.2.2",
"typescript": "^4.2.2 || ^5.0.0",
"vue": "^2.6 || ^3.2.14",
"vue-loader": "^15.0.11 || ^17.0.0",
"vue-template-compiler": "^2.5",
@ -3709,9 +3709,9 @@
}
},
"node_modules/@types/estree": {
"version": "0.0.51",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz",
"integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==",
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz",
"integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==",
"dev": true,
"peer": true
},
@ -3823,9 +3823,9 @@
}
},
"node_modules/@types/lodash": {
"version": "4.14.192",
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.192.tgz",
"integrity": "sha512-km+Vyn3BYm5ytMO13k9KTp27O75rbQ0NFw+U//g+PX7VZyjCioXaRFisqSIJRECljcTv73G3i6BpglNGHgUQ5A==",
"version": "4.14.194",
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz",
"integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==",
"dev": true
},
"node_modules/@types/lodash-es": {
@ -3860,9 +3860,9 @@
"dev": true
},
"node_modules/@types/node": {
"version": "18.15.11",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz",
"integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q=="
"version": "18.16.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.0.tgz",
"integrity": "sha512-BsAaKhB+7X+H4GnSjGhJG9Qi8Tw+inU9nJDwmD5CgOmBLEI6ArdhikpLX7DjbjDRDTbqZzU2LSQNZg8WGPiSZQ=="
},
"node_modules/@types/pino": {
"version": "6.3.12",
@ -3974,9 +3974,9 @@
}
},
"node_modules/@types/validator": {
"version": "13.7.14",
"resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.14.tgz",
"integrity": "sha512-J6OAed6rhN6zyqL9Of6ZMamhlsOEU/poBVvbHr/dKOYKTeuYYMlDkMv+b6UUV0o2i0tw73cgyv/97WTWaUl0/g=="
"version": "13.7.15",
"resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.15.tgz",
"integrity": "sha512-yeinDVQunb03AEP8luErFcyf/7Lf7AzKCD0NXfgVoGCCQDNpZET8Jgq74oBgqKld3hafLbfzt/3inUdQvaFeXQ=="
},
"node_modules/@types/ws": {
"version": "8.5.4",
@ -4003,15 +4003,15 @@
"dev": true
},
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "5.58.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.58.0.tgz",
"integrity": "sha512-vxHvLhH0qgBd3/tW6/VccptSfc8FxPQIkmNTVLWcCOVqSBvqpnKkBTYrhcGlXfSnd78azwe+PsjYFj0X34/njA==",
"version": "5.59.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.0.tgz",
"integrity": "sha512-p0QgrEyrxAWBecR56gyn3wkG15TJdI//eetInP3zYRewDh0XS+DhB3VUAd3QqvziFsfaQIoIuZMxZRB7vXYaYw==",
"dev": true,
"dependencies": {
"@eslint-community/regexpp": "^4.4.0",
"@typescript-eslint/scope-manager": "5.58.0",
"@typescript-eslint/type-utils": "5.58.0",
"@typescript-eslint/utils": "5.58.0",
"@typescript-eslint/scope-manager": "5.59.0",
"@typescript-eslint/type-utils": "5.59.0",
"@typescript-eslint/utils": "5.59.0",
"debug": "^4.3.4",
"grapheme-splitter": "^1.0.4",
"ignore": "^5.2.0",
@ -4037,14 +4037,14 @@
}
},
"node_modules/@typescript-eslint/parser": {
"version": "5.58.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.58.0.tgz",
"integrity": "sha512-ixaM3gRtlfrKzP8N6lRhBbjTow1t6ztfBvQNGuRM8qH1bjFFXIJ35XY+FC0RRBKn3C6cT+7VW1y8tNm7DwPHDQ==",
"version": "5.59.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.0.tgz",
"integrity": "sha512-qK9TZ70eJtjojSUMrrEwA9ZDQ4N0e/AuoOIgXuNBorXYcBDk397D2r5MIe1B3cok/oCtdNC5j+lUUpVB+Dpb+w==",
"dev": true,
"dependencies": {
"@typescript-eslint/scope-manager": "5.58.0",
"@typescript-eslint/types": "5.58.0",
"@typescript-eslint/typescript-estree": "5.58.0",
"@typescript-eslint/scope-manager": "5.59.0",
"@typescript-eslint/types": "5.59.0",
"@typescript-eslint/typescript-estree": "5.59.0",
"debug": "^4.3.4"
},
"engines": {
@ -4064,13 +4064,13 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
"version": "5.58.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.58.0.tgz",
"integrity": "sha512-b+w8ypN5CFvrXWQb9Ow9T4/6LC2MikNf1viLkYTiTbkQl46CnR69w7lajz1icW0TBsYmlpg+mRzFJ4LEJ8X9NA==",
"version": "5.59.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.0.tgz",
"integrity": "sha512-tsoldKaMh7izN6BvkK6zRMINj4Z2d6gGhO2UsI8zGZY3XhLq1DndP3Ycjhi1JwdwPRwtLMW4EFPgpuKhbCGOvQ==",
"dev": true,
"dependencies": {
"@typescript-eslint/types": "5.58.0",
"@typescript-eslint/visitor-keys": "5.58.0"
"@typescript-eslint/types": "5.59.0",
"@typescript-eslint/visitor-keys": "5.59.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@ -4081,13 +4081,13 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
"version": "5.58.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.58.0.tgz",
"integrity": "sha512-FF5vP/SKAFJ+LmR9PENql7fQVVgGDOS+dq3j+cKl9iW/9VuZC/8CFmzIP0DLKXfWKpRHawJiG70rVH+xZZbp8w==",
"version": "5.59.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.0.tgz",
"integrity": "sha512-d/B6VSWnZwu70kcKQSCqjcXpVH+7ABKH8P1KNn4K7j5PXXuycZTPXF44Nui0TEm6rbWGi8kc78xRgOC4n7xFgA==",
"dev": true,
"dependencies": {
"@typescript-eslint/typescript-estree": "5.58.0",
"@typescript-eslint/utils": "5.58.0",
"@typescript-eslint/typescript-estree": "5.59.0",
"@typescript-eslint/utils": "5.59.0",
"debug": "^4.3.4",
"tsutils": "^3.21.0"
},
@ -4108,9 +4108,9 @@
}
},
"node_modules/@typescript-eslint/types": {
"version": "5.58.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.58.0.tgz",
"integrity": "sha512-JYV4eITHPzVQMnHZcYJXl2ZloC7thuUHrcUmxtzvItyKPvQ50kb9QXBkgNAt90OYMqwaodQh2kHutWZl1fc+1g==",
"version": "5.59.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.0.tgz",
"integrity": "sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@ -4121,13 +4121,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
"version": "5.58.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.58.0.tgz",
"integrity": "sha512-cRACvGTodA+UxnYM2uwA2KCwRL7VAzo45syNysqlMyNyjw0Z35Icc9ihPJZjIYuA5bXJYiJ2YGUB59BqlOZT1Q==",
"version": "5.59.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.0.tgz",
"integrity": "sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg==",
"dev": true,
"dependencies": {
"@typescript-eslint/types": "5.58.0",
"@typescript-eslint/visitor-keys": "5.58.0",
"@typescript-eslint/types": "5.59.0",
"@typescript-eslint/visitor-keys": "5.59.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@ -4198,17 +4198,17 @@
}
},
"node_modules/@typescript-eslint/utils": {
"version": "5.58.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.58.0.tgz",
"integrity": "sha512-gAmLOTFXMXOC+zP1fsqm3VceKSBQJNzV385Ok3+yzlavNHZoedajjS4UyS21gabJYcobuigQPs/z71A9MdJFqQ==",
"version": "5.59.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.0.tgz",
"integrity": "sha512-GGLFd+86drlHSvPgN/el6dRQNYYGOvRSDVydsUaQluwIW3HvbXuxyuD5JETvBt/9qGYe+lOrDk6gRrWOHb/FvA==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@types/json-schema": "^7.0.9",
"@types/semver": "^7.3.12",
"@typescript-eslint/scope-manager": "5.58.0",
"@typescript-eslint/types": "5.58.0",
"@typescript-eslint/typescript-estree": "5.58.0",
"@typescript-eslint/scope-manager": "5.59.0",
"@typescript-eslint/types": "5.59.0",
"@typescript-eslint/typescript-estree": "5.59.0",
"eslint-scope": "^5.1.1",
"semver": "^7.3.7"
},
@ -4246,12 +4246,12 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
"version": "5.58.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.58.0.tgz",
"integrity": "sha512-/fBraTlPj0jwdyTwLyrRTxv/3lnU2H96pNTVM6z3esTWLtA5MZ9ghSMJ7Rb+TtUAdtEw9EyJzJ0EydIMKxQ9gA==",
"version": "5.59.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.0.tgz",
"integrity": "sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA==",
"dev": true,
"dependencies": {
"@typescript-eslint/types": "5.58.0",
"@typescript-eslint/types": "5.59.0",
"eslint-visitor-keys": "^3.3.0"
},
"engines": {
@ -4390,73 +4390,73 @@
}
},
"node_modules/@webassemblyjs/ast": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
"integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==",
"version": "1.11.5",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.5.tgz",
"integrity": "sha512-LHY/GSAZZRpsNQH+/oHqhRQ5FT7eoULcBqgfyTB5nQHogFnK3/7QoN7dLnwSE/JkUAF0SrRuclT7ODqMFtWxxQ==",
"dev": true,
"peer": true,
"dependencies": {
"@webassemblyjs/helper-numbers": "1.11.1",
"@webassemblyjs/helper-wasm-bytecode": "1.11.1"
"@webassemblyjs/helper-numbers": "1.11.5",
"@webassemblyjs/helper-wasm-bytecode": "1.11.5"
}
},
"node_modules/@webassemblyjs/floating-point-hex-parser": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz",
"integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==",
"version": "1.11.5",
"resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.5.tgz",
"integrity": "sha512-1j1zTIC5EZOtCplMBG/IEwLtUojtwFVwdyVMbL/hwWqbzlQoJsWCOavrdnLkemwNoC/EOwtUFch3fuo+cbcXYQ==",
"dev": true,
"peer": true
},
"node_modules/@webassemblyjs/helper-api-error": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz",
"integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==",
"version": "1.11.5",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.5.tgz",
"integrity": "sha512-L65bDPmfpY0+yFrsgz8b6LhXmbbs38OnwDCf6NpnMUYqa+ENfE5Dq9E42ny0qz/PdR0LJyq/T5YijPnU8AXEpA==",
"dev": true,
"peer": true
},
"node_modules/@webassemblyjs/helper-buffer": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz",
"integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==",
"version": "1.11.5",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.5.tgz",
"integrity": "sha512-fDKo1gstwFFSfacIeH5KfwzjykIE6ldh1iH9Y/8YkAZrhmu4TctqYjSh7t0K2VyDSXOZJ1MLhht/k9IvYGcIxg==",
"dev": true,
"peer": true
},
"node_modules/@webassemblyjs/helper-numbers": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz",
"integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==",
"version": "1.11.5",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.5.tgz",
"integrity": "sha512-DhykHXM0ZABqfIGYNv93A5KKDw/+ywBFnuWybZZWcuzWHfbp21wUfRkbtz7dMGwGgT4iXjWuhRMA2Mzod6W4WA==",
"dev": true,
"peer": true,
"dependencies": {
"@webassemblyjs/floating-point-hex-parser": "1.11.1",
"@webassemblyjs/helper-api-error": "1.11.1",
"@webassemblyjs/floating-point-hex-parser": "1.11.5",
"@webassemblyjs/helper-api-error": "1.11.5",
"@xtuc/long": "4.2.2"
}
},
"node_modules/@webassemblyjs/helper-wasm-bytecode": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz",
"integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==",
"version": "1.11.5",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.5.tgz",
"integrity": "sha512-oC4Qa0bNcqnjAowFn7MPCETQgDYytpsfvz4ujZz63Zu/a/v71HeCAAmZsgZ3YVKec3zSPYytG3/PrRCqbtcAvA==",
"dev": true,
"peer": true
},
"node_modules/@webassemblyjs/helper-wasm-section": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz",
"integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==",
"version": "1.11.5",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.5.tgz",
"integrity": "sha512-uEoThA1LN2NA+K3B9wDo3yKlBfVtC6rh0i4/6hvbz071E8gTNZD/pT0MsBf7MeD6KbApMSkaAK0XeKyOZC7CIA==",
"dev": true,
"peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.11.1",
"@webassemblyjs/helper-buffer": "1.11.1",
"@webassemblyjs/helper-wasm-bytecode": "1.11.1",
"@webassemblyjs/wasm-gen": "1.11.1"
"@webassemblyjs/ast": "1.11.5",
"@webassemblyjs/helper-buffer": "1.11.5",
"@webassemblyjs/helper-wasm-bytecode": "1.11.5",
"@webassemblyjs/wasm-gen": "1.11.5"
}
},
"node_modules/@webassemblyjs/ieee754": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz",
"integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==",
"version": "1.11.5",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.5.tgz",
"integrity": "sha512-37aGq6qVL8A8oPbPrSGMBcp38YZFXcHfiROflJn9jxSdSMMM5dS5P/9e2/TpaJuhE+wFrbukN2WI6Hw9MH5acg==",
"dev": true,
"peer": true,
"dependencies": {
@ -4464,9 +4464,9 @@
}
},
"node_modules/@webassemblyjs/leb128": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz",
"integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==",
"version": "1.11.5",
"resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.5.tgz",
"integrity": "sha512-ajqrRSXaTJoPW+xmkfYN6l8VIeNnR4vBOTQO9HzR7IygoCcKWkICbKFbVTNMjMgMREqXEr0+2M6zukzM47ZUfQ==",
"dev": true,
"peer": true,
"dependencies": {
@ -4474,79 +4474,79 @@
}
},
"node_modules/@webassemblyjs/utf8": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz",
"integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==",
"version": "1.11.5",
"resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.5.tgz",
"integrity": "sha512-WiOhulHKTZU5UPlRl53gHR8OxdGsSOxqfpqWeA2FmcwBMaoEdz6b2x2si3IwC9/fSPLfe8pBMRTHVMk5nlwnFQ==",
"dev": true,
"peer": true
},
"node_modules/@webassemblyjs/wasm-edit": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz",
"integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==",
"version": "1.11.5",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.5.tgz",
"integrity": "sha512-C0p9D2fAu3Twwqvygvf42iGCQ4av8MFBLiTb+08SZ4cEdwzWx9QeAHDo1E2k+9s/0w1DM40oflJOpkZ8jW4HCQ==",
"dev": true,
"peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.11.1",
"@webassemblyjs/helper-buffer": "1.11.1",
"@webassemblyjs/helper-wasm-bytecode": "1.11.1",
"@webassemblyjs/helper-wasm-section": "1.11.1",
"@webassemblyjs/wasm-gen": "1.11.1",
"@webassemblyjs/wasm-opt": "1.11.1",
"@webassemblyjs/wasm-parser": "1.11.1",
"@webassemblyjs/wast-printer": "1.11.1"
"@webassemblyjs/ast": "1.11.5",
"@webassemblyjs/helper-buffer": "1.11.5",
"@webassemblyjs/helper-wasm-bytecode": "1.11.5",
"@webassemblyjs/helper-wasm-section": "1.11.5",
"@webassemblyjs/wasm-gen": "1.11.5",
"@webassemblyjs/wasm-opt": "1.11.5",
"@webassemblyjs/wasm-parser": "1.11.5",
"@webassemblyjs/wast-printer": "1.11.5"
}
},
"node_modules/@webassemblyjs/wasm-gen": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz",
"integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==",
"version": "1.11.5",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.5.tgz",
"integrity": "sha512-14vteRlRjxLK9eSyYFvw1K8Vv+iPdZU0Aebk3j6oB8TQiQYuO6hj9s4d7qf6f2HJr2khzvNldAFG13CgdkAIfA==",
"dev": true,
"peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.11.1",
"@webassemblyjs/helper-wasm-bytecode": "1.11.1",
"@webassemblyjs/ieee754": "1.11.1",
"@webassemblyjs/leb128": "1.11.1",
"@webassemblyjs/utf8": "1.11.1"
"@webassemblyjs/ast": "1.11.5",
"@webassemblyjs/helper-wasm-bytecode": "1.11.5",
"@webassemblyjs/ieee754": "1.11.5",
"@webassemblyjs/leb128": "1.11.5",
"@webassemblyjs/utf8": "1.11.5"
}
},
"node_modules/@webassemblyjs/wasm-opt": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz",
"integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==",
"version": "1.11.5",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.5.tgz",
"integrity": "sha512-tcKwlIXstBQgbKy1MlbDMlXaxpucn42eb17H29rawYLxm5+MsEmgPzeCP8B1Cl69hCice8LeKgZpRUAPtqYPgw==",
"dev": true,
"peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.11.1",
"@webassemblyjs/helper-buffer": "1.11.1",
"@webassemblyjs/wasm-gen": "1.11.1",
"@webassemblyjs/wasm-parser": "1.11.1"
"@webassemblyjs/ast": "1.11.5",
"@webassemblyjs/helper-buffer": "1.11.5",
"@webassemblyjs/wasm-gen": "1.11.5",
"@webassemblyjs/wasm-parser": "1.11.5"
}
},
"node_modules/@webassemblyjs/wasm-parser": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz",
"integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==",
"version": "1.11.5",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.5.tgz",
"integrity": "sha512-SVXUIwsLQlc8srSD7jejsfTU83g7pIGr2YYNb9oHdtldSxaOhvA5xwvIiWIfcX8PlSakgqMXsLpLfbbJ4cBYew==",
"dev": true,
"peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.11.1",
"@webassemblyjs/helper-api-error": "1.11.1",
"@webassemblyjs/helper-wasm-bytecode": "1.11.1",
"@webassemblyjs/ieee754": "1.11.1",
"@webassemblyjs/leb128": "1.11.1",
"@webassemblyjs/utf8": "1.11.1"
"@webassemblyjs/ast": "1.11.5",
"@webassemblyjs/helper-api-error": "1.11.5",
"@webassemblyjs/helper-wasm-bytecode": "1.11.5",
"@webassemblyjs/ieee754": "1.11.5",
"@webassemblyjs/leb128": "1.11.5",
"@webassemblyjs/utf8": "1.11.5"
}
},
"node_modules/@webassemblyjs/wast-printer": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz",
"integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==",
"version": "1.11.5",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.5.tgz",
"integrity": "sha512-f7Pq3wvg3GSPUPzR0F6bmI89Hdb+u9WXrSKc4v+N0aV0q6r42WoF92Jp2jEorBEBRoRNXgjp53nBniDXcqZYPA==",
"dev": true,
"peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.11.1",
"@webassemblyjs/ast": "1.11.5",
"@xtuc/long": "4.2.2"
}
},
@ -4579,9 +4579,9 @@
}
},
"node_modules/@webpack-cli/serve": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.1.tgz",
"integrity": "sha512-0G7tNyS+yW8TdgHwZKlDWYXFA6OJQnoLCQvYKkQP0Q2X205PSQ6RNUj0M+1OB/9gRQaUZ/ccYfaxd0nhaWKfjw==",
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.2.tgz",
"integrity": "sha512-S9h3GmOmzUseyeFW3tYNnWS7gNUuwxZ3mmMq0JyW78Vx1SGKPSkt5bT4pB0rUnVfHjP0EL9gW2bOzmtiTfQt0A==",
"dev": true,
"peer": true,
"engines": {
@ -5856,9 +5856,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001477",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001477.tgz",
"integrity": "sha512-lZim4iUHhGcy5p+Ri/G7m84hJwncj+Kz7S5aD4hoQfslKZJgt0tHc/hafVbqHC5bbhHb+mrW2JOUHkI5KH7toQ==",
"version": "1.0.30001481",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001481.tgz",
"integrity": "sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==",
"dev": true,
"funding": [
{
@ -6499,9 +6499,9 @@
}
},
"node_modules/core-js-compat": {
"version": "3.30.0",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.0.tgz",
"integrity": "sha512-P5A2h/9mRYZFIAP+5Ab8ns6083IyVpSclU74UNvbGVQ8VM7n3n3/g2yF3AkKQ9NXz2O+ioxLbEWKnDtgsFamhg==",
"version": "3.30.1",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.1.tgz",
"integrity": "sha512-d690npR7MC6P0gq4npTl5n2VQeNAmUrJ90n+MHiKS7W2+xno4o3F5GDEuylSdi6EJ3VssibSGXOa1r3YXD3Mhw==",
"dev": true,
"dependencies": {
"browserslist": "^4.21.5"
@ -6823,15 +6823,15 @@
"dev": true
},
"node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
"integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz",
"integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==",
"dev": true,
"dependencies": {
"@types/json-schema": "^7.0.9",
"ajv": "^8.8.0",
"ajv": "^8.9.0",
"ajv-formats": "^2.1.1",
"ajv-keywords": "^5.0.0"
"ajv-keywords": "^5.1.0"
},
"engines": {
"node": ">= 12.13.0"
@ -7344,9 +7344,9 @@
"dev": true
},
"node_modules/dns-packet": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.5.0.tgz",
"integrity": "sha512-USawdAUzRkV6xrqTjiAEp6M9YagZEzWcSUaZTcIFAiyQWW1SoI6KyId8y2+/71wbgHKQAKd+iupLv4YvEwYWvA==",
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz",
"integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==",
"dev": true,
"dependencies": {
"@leichtgewicht/ip-codec": "^2.0.1"
@ -7588,9 +7588,9 @@
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"node_modules/electron-to-chromium": {
"version": "1.4.357",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.357.tgz",
"integrity": "sha512-UTkCbNTAcGXABmEnQrGcW4m3cG6fcyBfD4KDF0iyEAlbrGZiY9dmslyDAGOD1Kr5biN2F743Y30aRCOtau35Vw==",
"version": "1.4.369",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.369.tgz",
"integrity": "sha512-LfxbHXdA/S+qyoTEA4EbhxGjrxx7WK2h6yb5K2v0UCOufUKX+VZaHbl3svlzZfv9sGseym/g3Ne4DpsgRULmqg==",
"dev": true
},
"node_modules/emittery": {
@ -7636,9 +7636,9 @@
}
},
"node_modules/enhanced-resolve": {
"version": "5.12.0",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz",
"integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==",
"version": "5.13.0",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.13.0.tgz",
"integrity": "sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.2.4",
@ -7738,15 +7738,15 @@
}
},
"node_modules/eslint": {
"version": "8.38.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz",
"integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==",
"version": "8.39.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz",
"integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.4.0",
"@eslint/eslintrc": "^2.0.2",
"@eslint/js": "8.38.0",
"@eslint/js": "8.39.0",
"@humanwhocodes/config-array": "^0.11.8",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
@ -7756,7 +7756,7 @@
"debug": "^4.3.2",
"doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0",
"eslint-scope": "^7.1.1",
"eslint-scope": "^7.2.0",
"eslint-visitor-keys": "^3.4.0",
"espree": "^9.5.1",
"esquery": "^1.4.2",
@ -7844,9 +7844,9 @@
}
},
"node_modules/eslint-scope": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
"integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz",
"integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==",
"dev": true,
"dependencies": {
"esrecurse": "^4.3.0",
@ -7854,6 +7854,9 @@
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
"url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint-visitor-keys": {
@ -11100,9 +11103,9 @@
}
},
"node_modules/memfs": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.0.tgz",
"integrity": "sha512-yK6o8xVJlQerz57kvPROwTMgx5WtGwC2ZxDtOUsnGl49rHjYkfQoPNZPCKH73VdLE1BwBu/+Fx/NL8NYMUw2aA==",
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.1.tgz",
"integrity": "sha512-UWbFJKvj5k+nETdteFndTpYxdeTMox/ULeqX5k/dpaQJCCFmj5EeKv3dBcyO2xmkRAx2vppRu5dVG7SOtsGOzA==",
"dependencies": {
"fs-monkey": "^1.0.3"
},
@ -11251,15 +11254,15 @@
"dev": true
},
"node_modules/mini-css-extract-plugin/node_modules/schema-utils": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
"integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz",
"integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==",
"dev": true,
"dependencies": {
"@types/json-schema": "^7.0.9",
"ajv": "^8.8.0",
"ajv": "^8.9.0",
"ajv-formats": "^2.1.1",
"ajv-keywords": "^5.0.0"
"ajv-keywords": "^5.1.0"
},
"engines": {
"node": ">= 12.13.0"
@ -12414,9 +12417,9 @@
}
},
"node_modules/pinia": {
"version": "2.0.34",
"resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.34.tgz",
"integrity": "sha512-cgOoGUiyqX0SSgX8XelK9+Ri4XA2/YyNtgjogwfzIx1g7iZTaZPxm7/bZYMCLU2qHRiHhxG7SuQO0eBacFNc2Q==",
"version": "2.0.35",
"resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.35.tgz",
"integrity": "sha512-P1IKKQWhxGXiiZ3atOaNI75bYlFUbRxtJdhPLX059Z7+b9Z04rnTZdSY8Aph1LA+/4QEMAYHsTQ638Wfe+6K5g==",
"dev": true,
"dependencies": {
"@vue/devtools-api": "^6.5.0",
@ -12440,9 +12443,9 @@
}
},
"node_modules/pinia/node_modules/vue-demi": {
"version": "0.13.11",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz",
"integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
"version": "0.14.0",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.0.tgz",
"integrity": "sha512-gt58r2ogsNQeVoQ3EhoUAvUsH9xviydl0dWJj7dabBC/2L4uBId7ujtCwDRD0JhkGsV1i0CtfLAeyYKBht9oWg==",
"dev": true,
"hasInstallScript": true,
"bin": {
@ -12727,9 +12730,9 @@
}
},
"node_modules/postcss": {
"version": "8.4.21",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
"integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
"version": "8.4.23",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz",
"integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==",
"funding": [
{
"type": "opencollective",
@ -12738,10 +12741,14 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"dependencies": {
"nanoid": "^3.3.4",
"nanoid": "^3.3.6",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
},
@ -13394,9 +13401,9 @@
}
},
"node_modules/prettier": {
"version": "2.8.7",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz",
"integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==",
"version": "2.8.8",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
"dev": true,
"bin": {
"prettier": "bin-prettier.js"
@ -14139,9 +14146,9 @@
}
},
"node_modules/semver": {
"version": "7.4.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz",
"integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==",
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz",
"integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==",
"dependencies": {
"lru-cache": "^6.0.0"
},
@ -15421,9 +15428,9 @@
}
},
"node_modules/terser": {
"version": "5.16.9",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.16.9.tgz",
"integrity": "sha512-HPa/FdTB9XGI2H1/keLFZHxl6WNvAI4YalHGtDQTlMnJcoqSab1UwL4l1hGEhs6/GmLHBZIg/YgB++jcbzoOEg==",
"version": "5.17.1",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.17.1.tgz",
"integrity": "sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==",
"dev": true,
"dependencies": {
"@jridgewell/source-map": "^0.3.2",
@ -15473,9 +15480,9 @@
}
},
"node_modules/terser-webpack-plugin/node_modules/schema-utils": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
"integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz",
"integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==",
"dev": true,
"dependencies": {
"@types/json-schema": "^7.0.8",
@ -16076,9 +16083,9 @@
}
},
"node_modules/update-browserslist-db": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
"integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
"integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
"dev": true,
"funding": [
{
@ -16088,6 +16095,10 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/browserslist"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"dependencies": {
@ -16095,7 +16106,7 @@
"picocolors": "^1.0.0"
},
"bin": {
"browserslist-lint": "cli.js"
"update-browserslist-db": "cli.js"
},
"peerDependencies": {
"browserslist": ">= 4.21.0"
@ -16396,23 +16407,23 @@
}
},
"node_modules/webpack": {
"version": "5.78.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.78.0.tgz",
"integrity": "sha512-gT5DP72KInmE/3azEaQrISjTvLYlSM0j1Ezhht/KLVkrqtv10JoP/RXhwmX/frrutOPuSq3o5Vq0ehR/4Vmd1g==",
"version": "5.80.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.80.0.tgz",
"integrity": "sha512-OIMiq37XK1rWO8mH9ssfFKZsXg4n6klTEDL7S8/HqbAOBBaiy8ABvXvz0dDCXeEF9gqwxSvVk611zFPjS8hJxA==",
"dev": true,
"peer": true,
"dependencies": {
"@types/eslint-scope": "^3.7.3",
"@types/estree": "^0.0.51",
"@webassemblyjs/ast": "1.11.1",
"@webassemblyjs/wasm-edit": "1.11.1",
"@webassemblyjs/wasm-parser": "1.11.1",
"@types/estree": "^1.0.0",
"@webassemblyjs/ast": "^1.11.5",
"@webassemblyjs/wasm-edit": "^1.11.5",
"@webassemblyjs/wasm-parser": "^1.11.5",
"acorn": "^8.7.1",
"acorn-import-assertions": "^1.7.6",
"browserslist": "^4.14.5",
"chrome-trace-event": "^1.0.2",
"enhanced-resolve": "^5.10.0",
"es-module-lexer": "^0.9.0",
"enhanced-resolve": "^5.13.0",
"es-module-lexer": "^1.2.1",
"eslint-scope": "5.1.1",
"events": "^3.2.0",
"glob-to-regexp": "^0.4.1",
@ -16421,9 +16432,9 @@
"loader-runner": "^4.2.0",
"mime-types": "^2.1.27",
"neo-async": "^2.6.2",
"schema-utils": "^3.1.0",
"schema-utils": "^3.1.2",
"tapable": "^2.1.1",
"terser-webpack-plugin": "^5.1.3",
"terser-webpack-plugin": "^5.3.7",
"watchpack": "^2.4.0",
"webpack-sources": "^3.2.3"
},
@ -16444,18 +16455,18 @@
}
},
"node_modules/webpack-cli": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.0.1.tgz",
"integrity": "sha512-S3KVAyfwUqr0Mo/ur3NzIp6jnerNpo7GUO6so51mxLi1spqsA17YcMXy0WOIJtBSnj748lthxC6XLbNKh/ZC+A==",
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.0.2.tgz",
"integrity": "sha512-4y3W5Dawri5+8dXm3+diW6Mn1Ya+Dei6eEVAdIduAmYNLzv1koKVAqsfgrrc9P2mhrYHQphx5htnGkcNwtubyQ==",
"dev": true,
"peer": true,
"dependencies": {
"@discoveryjs/json-ext": "^0.5.0",
"@webpack-cli/configtest": "^2.0.1",
"@webpack-cli/info": "^2.0.1",
"@webpack-cli/serve": "^2.0.1",
"@webpack-cli/serve": "^2.0.2",
"colorette": "^2.0.14",
"commander": "^9.4.1",
"commander": "^10.0.1",
"cross-spawn": "^7.0.3",
"envinfo": "^7.7.3",
"fastest-levenshtein": "^1.0.12",
@ -16489,6 +16500,16 @@
}
}
},
"node_modules/webpack-cli/node_modules/commander": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
"integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
"dev": true,
"peer": true,
"engines": {
"node": ">=14"
}
},
"node_modules/webpack-cli/node_modules/interpret": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz",
@ -16571,15 +16592,15 @@
"dev": true
},
"node_modules/webpack-dev-middleware/node_modules/schema-utils": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
"integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz",
"integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==",
"dev": true,
"dependencies": {
"@types/json-schema": "^7.0.9",
"ajv": "^8.8.0",
"ajv": "^8.9.0",
"ajv-formats": "^2.1.1",
"ajv-keywords": "^5.0.0"
"ajv-keywords": "^5.1.0"
},
"engines": {
"node": ">= 12.13.0"
@ -16590,9 +16611,9 @@
}
},
"node_modules/webpack-dev-server": {
"version": "4.13.2",
"resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.13.2.tgz",
"integrity": "sha512-5i6TrGBRxG4vnfDpB6qSQGfnB6skGBXNL5/542w2uRGLimX6qeE5BQMLrzIC3JYV/xlGOv+s+hTleI9AZKUQNw==",
"version": "4.13.3",
"resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.13.3.tgz",
"integrity": "sha512-KqqzrzMRSRy5ePz10VhjyL27K2dxqwXQLP5rAKwRJBPUahe7Z2bBWzHw37jeb8GCPKxZRO79ZdQUAPesMh/Nug==",
"dev": true,
"dependencies": {
"@types/bonjour": "^3.5.9",
@ -16707,15 +16728,15 @@
}
},
"node_modules/webpack-dev-server/node_modules/schema-utils": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
"integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz",
"integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==",
"dev": true,
"dependencies": {
"@types/json-schema": "^7.0.9",
"ajv": "^8.8.0",
"ajv": "^8.9.0",
"ajv-formats": "^2.1.1",
"ajv-keywords": "^5.0.0"
"ajv-keywords": "^5.1.0"
},
"engines": {
"node": ">= 12.13.0"
@ -16745,9 +16766,9 @@
}
},
"node_modules/webpack/node_modules/es-module-lexer": {
"version": "0.9.3",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
"integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==",
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz",
"integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==",
"dev": true,
"peer": true
},
@ -16776,9 +16797,9 @@
}
},
"node_modules/webpack/node_modules/schema-utils": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
"integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz",
"integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==",
"dev": true,
"peer": true,
"dependencies": {