diff --git a/.adonisrc.json b/.adonisrc.json deleted file mode 100644 index 5db2c02..0000000 --- a/.adonisrc.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "typescript": true, - "commands": [ - "./commands", - "@adonisjs/core/build/commands/index.js", - "@adonisjs/repl/build/commands", - "@eidellev/inertia-adonisjs/build/commands", - "@adonisjs/lucid/build/commands" - ], - "exceptionHandlerNamespace": "App/Exceptions/Handler", - "aliases": { - "App": "app", - "Config": "config", - "Database": "database", - "Contracts": "contracts" - }, - "preloads": [ - "./start/routes", - "./start/kernel", - { - "file": "./start/inertia", - "environment": [ - "web" - ] - }, - { - "file": "./start/validator", - "environment": [ - "web" - ] - } - ], - "providers": [ - "./providers/AppProvider", - "@adonisjs/core", - "@adonisjs/session", - "@adonisjs/view", - "@adonisjs/shield", - "@eidellev/inertia-adonisjs", - "@adonisjs/lucid", - "@adonisjs/auth", - "@eidellev/adonis-stardust", - "./providers/QueryBuilderProvider" - ], - "metaFiles": [ - { - "pattern": "public/**", - "reloadServer": false - }, - { - "pattern": "resources/views/**/*.edge", - "reloadServer": false - } - ], - "aceProviders": [ - "@adonisjs/repl" - ], - "tests": { - "suites": [ - { - "name": "functional", - "files": [ - "tests/functional/**/*.spec(.ts|.js)" - ], - "timeout": 60000 - } - ] - }, - "testProviders": [ - "@japa/preset-adonis/TestsProvider" - ] -} diff --git a/.babelrc b/.babelrc index 0a3a2c1..f8f7152 100644 --- a/.babelrc +++ b/.babelrc @@ -1,37 +1,37 @@ -{ - "presets": [ - [ - "@babel/preset-env", - { - "targets": { - "edge": "17", - "firefox": "60", - "chrome": "67", - "safari": "11.1" - } - // "useBuiltIns": "usage", - // "corejs": "3.16" - // "targets":{"node":"16"} - // "useBuiltIns": "entry", - // "targets": "> 0.25%, not dead" - } - ], - // "@babel/preset-env", - "@babel/preset-typescript" - ], - "plugins": [ - // [ - // "@babel/plugin-transform-typescript", { - // "allowDeclareFields": true - // }], - [ - "@babel/plugin-proposal-decorators", - { - "legacy": true - } - ], +{ + "presets": [ + [ + "@babel/preset-env", + { + "targets": { + "edge": "17", + "firefox": "60", + "chrome": "67", + "safari": "11.1" + } + // "useBuiltIns": "usage", + // "corejs": "3.16" + // "targets":{"node":"16"} + // "useBuiltIns": "entry", + // "targets": "> 0.25%, not dead" + } + ], + // "@babel/preset-env", + "@babel/preset-typescript" + ], + "plugins": [ + // [ + // "@babel/plugin-transform-typescript", { + // "allowDeclareFields": true + // }], + [ + "@babel/plugin-proposal-decorators", + { + "legacy": true + } + ], - "@babel/proposal-class-properties" - // "@babel/proposal-object-rest-spread" - ] + "@babel/proposal-class-properties" + // "@babel/proposal-object-rest-spread" + ] } diff --git a/.editorconfig b/.editorconfig index 5ea5f4e..09cd80b 100644 --- a/.editorconfig +++ b/.editorconfig @@ -2,7 +2,7 @@ root = true [*] indent_style = space -indent_size = 2 +indent_size = 4 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true diff --git a/.env.example b/.env.example index 50ee29c..d1cfe3a 100644 --- a/.env.example +++ b/.env.example @@ -11,3 +11,12 @@ PG_PORT=5432 PG_USER=lucid PG_PASSWORD= PG_DB_NAME=lucid +REDIS_CONNECTION=local +REDIS_HOST=127.0.0.1 +REDIS_PORT=6379 +REDIS_PASSWORD= +SMTP_HOST= +SMTP_PORT= +RESEND_API_KEY= +OPENSEARCH_HOST=http://localhost +OPENSEARCH_CORE=tethys-records \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json index 3a298bb..d1a86ab 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,24 +1,14 @@ { - "extends": [ - "plugin:adonis/typescriptApp", - "prettier" - ], - "plugins": [ - "prettier" - ], + "extends": ["plugin:adonis/typescriptApp", "prettier"], + "plugins": ["prettier"], "rules": { - "prettier/prettier": [ - "error", - { "singleQuote": true } - ], - "@typescript-eslint/indent": ["error", 4, { "ignoredNodes": ["PropertyDefinition", "TSUnionType"] }], + "prettier/prettier": ["error", { "singleQuote": true }], + "@typescript-eslint/indent": ["error", 4, { "ignoredNodes": ["PropertyDefinition", "TSUnionType"] }], "@typescript-eslint/naming-convention": [ "warn", { "selector": "interface", - "format": [ - "PascalCase" - ], + "format": ["PascalCase"], "custom": { "regex": "^I[A-Z]", "match": false @@ -26,4 +16,4 @@ } ] } -} \ No newline at end of file +} diff --git a/.gitea/workflows/checkReferenceType.yaml b/.gitea/workflows/checkReferenceType.yaml new file mode 100644 index 0000000..ab88380 --- /dev/null +++ b/.gitea/workflows/checkReferenceType.yaml @@ -0,0 +1,78 @@ +# This is a Gitea Actions workflow configuration file for running CI tests on the `feat/checkReferenceType` branch. +# The workflow is named "CI" and runs on the latest Ubuntu environment using a Node.js 20 Docker container. +# It sets up a PostgreSQL service with specified environment variables and health checks. +# The workflow includes the following steps: +# 1. Checkout the repository using the actions/checkout@v3 action. +# 2. Install Node.js dependencies using `npm ci`. +# 3. Create a `.env.test` file by copying from `.env.example`. +# 4. Set up environment variables in the `.env.test` file, including database connection details and other app-specific settings. +# 5. Run functional tests using the `node ace test functional --groups "ReferenceValidation"` command. +name: CI +run-name: Running tests for checkReferenceType branch +on: + push: + branches: + - feat/checkReferenceType + +jobs: + container-job: + runs-on: ubuntu-latest + # Docker Hub image that `container-job` executes in + container: node:20-bullseye + + services: + # Label used to access the service container + postgres: + image: postgres:latest + env: + POSTGRES_USER: alice + POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }} + POSTGRES_DB: tethys_dev + # ports: + # - 5432:5432 + options: | + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + # - name: Set up Node.js + # uses: actions/setup-node@v2 + # with: + # node-version: '20' + + - name: Install dependencies + run: npm ci + + - name: Create .env.test file + run: cp .env.example .env.test + + - name: Set up environment variables + run: | + echo "DB_CONNECTION=pg" >> .env.test + echo "PG_HOST=postgres" >> .env.test + echo "PG_PORT=5432" >> .env.test + echo "PG_USER=alice" >> .env.test + echo "PG_PASSWORD=${{ secrets.POSTGRES_PASSWORD }}" >> .env.test + echo "PG_DB_NAME=tethys_dev" >> .env.test + echo "NODE_ENV=test" >> .env.test + echo "ASSETS_DRIVER=fake" >> .env.test + echo "SESSION_DRIVER=memory" >> .env.test + echo "HASH_DRIVER=bcrypt" >> .env.test + echo "HOST=127.0.0.1" >> .env.test + echo "PORT=3333" >> .env.test + echo "APP_NAME=TethysCloud" >> .env.test + echo "APP_URL=http://${HOST}:${PORT}" >> .env.test + echo "CACHE_VIEWS=false" >> .env.test + echo "APP_KEY=pfi5N2ACN4tMJ5d8d8BPHfh3FEuvleej" >> .env.test + echo "DRIVE_DISK=local" >> .env.test + echo "OAI_LIST_SIZE=200" >> .env.test + echo "OPENSEARCH_HOST=${{ secrets.OPENSEARCH_HOST }}" >> .env.test + echo "OPENSEARCH_CORE=tethys-records" >> .env.test + + - name: Run tests + run: node ace test functional --groups "ReferenceValidation" diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 18bb2eb..916f839 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -4,7 +4,13 @@ name: CI Pipeline run-name: ${{ github.actor }} is running CI pipeline # trigger build when pushing, or when creating a pull request -on: [push, pull_request] +on: + push: + branches: + - master + pull_request: + branches: + - master jobs: # Label of the container job @@ -12,12 +18,12 @@ jobs: # run build on latest ubuntu runs-on: ubuntu-latest - container: node:16-bullseye - + container: node:20-bullseye + services: mydb: image: postgres:latest - container_name: mydb + # container_name: mydb env: POSTGRES_USER: alice POSTGRES_PASSWORD: iEx4Vj7zBb6 @@ -27,8 +33,7 @@ jobs: - 5432:5432 # Set health checks to wait until postgres has started options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 - - + steps: # this will check out the current branch (https://github.com/actions/checkout#Push-a-commit-using-the-built-in-token) - name: 1 Check out repository code @@ -66,11 +71,12 @@ jobs: && echo "HASH_DRIVER=bcrypt" >> .env.test && echo "HOST=127.0.0.1" >> .env.test && echo "PORT=3333" >> .env.test - && echo "APP_NAME=AdonisJs" >> .env.test + && echo "APP_NAME=TethysCloud" >> .env.test && echo "APP_URL=http://${HOST}:${PORT}" >> .env.test && echo "CACHE_VIEWS=false" >> .env.test && echo "APP_KEY=pfi5N2ACN4tMJ5d8d8BPHfh3FEuvleej" >> .env.test && echo "DRIVE_DISK=local" >> .env.test + && echo "OAI_LIST_SIZE=200" >> .env.test # finally run the tests # - run: npm test @@ -96,3 +102,4 @@ jobs: # uses: coverallsapp/github-action@master # with: # github-token: ${{ secrets.GITHUB_TOKEN }} + diff --git a/.gitignore b/.gitignore index f0bd219..6d6d265 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ coverage tmp docker-compose.yml .env.test +public/assets diff --git a/Dockerfile b/Dockerfile index 128ed11..a5d1263 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ ################## First Stage - Creating base ######################### # Created a variable to hold our node base image -ARG NODE_IMAGE=node:18-bookworm-slim +ARG NODE_IMAGE=node:22-bookworm-slim FROM $NODE_IMAGE AS base # Install dumb-init and ClamAV, and perform ClamAV database update @@ -44,7 +44,7 @@ USER node # initial update of av databases RUN freshclam -VOLUME /var/lib/clamav +# VOLUME /var/lib/clamav COPY --chown=node:clamav docker-entrypoint.sh /home/node/app/docker-entrypoint.sh RUN chmod +x /home/node/app/docker-entrypoint.sh ENV TZ="Europe/Vienna" @@ -66,8 +66,11 @@ COPY --chown=node:node . . ################## Third Stage - Building Stage ##################### # In this stage, we will start building dependencies FROM dependencies AS build +ENV NODE_ENV=production # We run "node ace build" to build the app (dist folder) for production -RUN node ace build --production +RUN node ace build --ignore-ts-errors +# RUN node ace build --production +# RUN node ace build --ignore-ts-errors ################## Final Stage - Production ######################### @@ -85,7 +88,7 @@ RUN npm ci --omit=dev # Copy files to the working directory from the build folder the user COPY --chown=node:node --from=build /home/node/app/build . # Expose port -EXPOSE $PORT +EXPOSE 3333 ENTRYPOINT ["/home/node/app/docker-entrypoint.sh"] # Run the command to start the server using "dumb-init" -CMD [ "dumb-init", "node", "server.js" ] \ No newline at end of file +CMD [ "dumb-init", "node", "bin/server.js" ] \ No newline at end of file diff --git a/ace b/ace deleted file mode 100644 index c175031..0000000 --- a/ace +++ /dev/null @@ -1,16 +0,0 @@ -/* -|-------------------------------------------------------------------------- -| Ace Commands -|-------------------------------------------------------------------------- -| -| This file is the entry point for running ace commands. -| -*/ - -require('reflect-metadata') -require('source-map-support').install({ handleUncaughtExceptions: false }) - -const { Ignitor } = require('@adonisjs/core/build/standalone') -new Ignitor(__dirname) - .ace() - .handle(process.argv.slice(2)) diff --git a/ace-manifest.json b/ace-manifest.json deleted file mode 100644 index 485d3b5..0000000 --- a/ace-manifest.json +++ /dev/null @@ -1,609 +0,0 @@ -{ - "commands": { - "validate:checksum": { - "settings": { - "loadApp": true, - "stayAlive": false - }, - "commandPath": "./commands/ValidateChecksum", - "commandName": "validate:checksum", - "description": "", - "args": [], - "aliases": [], - "flags": [] - }, - "dump:rcfile": { - "settings": {}, - "commandPath": "@adonisjs/core/build/commands/DumpRc", - "commandName": "dump:rcfile", - "description": "Dump contents of .adonisrc.json file along with defaults", - "args": [], - "aliases": [], - "flags": [] - }, - "list:routes": { - "settings": { - "loadApp": true, - "stayAlive": true - }, - "commandPath": "@adonisjs/core/build/commands/ListRoutes/index", - "commandName": "list:routes", - "description": "List application routes", - "args": [], - "aliases": [], - "flags": [ - { - "name": "verbose", - "propertyName": "verbose", - "type": "boolean", - "description": "Display more information" - }, - { - "name": "reverse", - "propertyName": "reverse", - "type": "boolean", - "alias": "r", - "description": "Reverse routes display" - }, - { - "name": "methods", - "propertyName": "methodsFilter", - "type": "array", - "alias": "m", - "description": "Filter routes by method" - }, - { - "name": "patterns", - "propertyName": "patternsFilter", - "type": "array", - "alias": "p", - "description": "Filter routes by the route pattern" - }, - { - "name": "names", - "propertyName": "namesFilter", - "type": "array", - "alias": "n", - "description": "Filter routes by route name" - }, - { - "name": "json", - "propertyName": "json", - "type": "boolean", - "description": "Output as JSON" - }, - { - "name": "table", - "propertyName": "table", - "type": "boolean", - "description": "Output as Table" - }, - { - "name": "max-width", - "propertyName": "maxWidth", - "type": "number", - "description": "Specify maximum rendering width. Ignored for JSON Output" - } - ] - }, - "generate:key": { - "settings": {}, - "commandPath": "@adonisjs/core/build/commands/GenerateKey", - "commandName": "generate:key", - "description": "Generate a new APP_KEY secret", - "args": [], - "aliases": [], - "flags": [] - }, - "repl": { - "settings": { - "loadApp": true, - "environment": "repl", - "stayAlive": true - }, - "commandPath": "@adonisjs/repl/build/commands/AdonisRepl", - "commandName": "repl", - "description": "Start a new REPL session", - "args": [], - "aliases": [], - "flags": [] - }, - "ssr:build": { - "settings": { - "stayAlive": true - }, - "commandPath": "@eidellev/inertia-adonisjs/build/commands/Build", - "commandName": "ssr:build", - "description": "Build and watch files for changes", - "args": [], - "aliases": [], - "flags": [] - }, - "ssr:watch": { - "settings": { - "stayAlive": true - }, - "commandPath": "@eidellev/inertia-adonisjs/build/commands/Watch", - "commandName": "ssr:watch", - "description": "Build and watch files for changes", - "args": [], - "aliases": [], - "flags": [] - }, - "db:seed": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/DbSeed", - "commandName": "db:seed", - "description": "Execute database seeders", - "args": [], - "aliases": [], - "flags": [ - { - "name": "connection", - "propertyName": "connection", - "type": "string", - "description": "Define a custom database connection for the seeders", - "alias": "c" - }, - { - "name": "interactive", - "propertyName": "interactive", - "type": "boolean", - "description": "Run seeders in interactive mode", - "alias": "i" - }, - { - "name": "files", - "propertyName": "files", - "type": "array", - "description": "Define a custom set of seeders files names to run", - "alias": "f" - }, - { - "name": "compact-output", - "propertyName": "compactOutput", - "type": "boolean", - "description": "A compact single-line output" - } - ] - }, - "db:wipe": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/DbWipe", - "commandName": "db:wipe", - "description": "Drop all tables, views and types in database", - "args": [], - "aliases": [], - "flags": [ - { - "name": "connection", - "propertyName": "connection", - "type": "string", - "description": "Define a custom database connection", - "alias": "c" - }, - { - "name": "drop-views", - "propertyName": "dropViews", - "type": "boolean", - "description": "Drop all views" - }, - { - "name": "drop-types", - "propertyName": "dropTypes", - "type": "boolean", - "description": "Drop all custom types (Postgres only)" - }, - { - "name": "force", - "propertyName": "force", - "type": "boolean", - "description": "Explicitly force command to run in production" - } - ] - }, - "db:truncate": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/DbTruncate", - "commandName": "db:truncate", - "description": "Truncate all tables in database", - "args": [], - "aliases": [], - "flags": [ - { - "name": "connection", - "propertyName": "connection", - "type": "string", - "description": "Define a custom database connection", - "alias": "c" - }, - { - "name": "force", - "propertyName": "force", - "type": "boolean", - "description": "Explicitly force command to run in production" - } - ] - }, - "make:model": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/MakeModel", - "commandName": "make:model", - "description": "Make a new Lucid model", - "args": [ - { - "type": "string", - "propertyName": "name", - "name": "name", - "required": true, - "description": "Name of the model class" - } - ], - "aliases": [], - "flags": [ - { - "name": "migration", - "propertyName": "migration", - "type": "boolean", - "alias": "m", - "description": "Generate the migration for the model" - }, - { - "name": "controller", - "propertyName": "controller", - "type": "boolean", - "alias": "c", - "description": "Generate the controller for the model" - }, - { - "name": "factory", - "propertyName": "factory", - "type": "boolean", - "alias": "f", - "description": "Generate a factory for the model" - } - ] - }, - "make:migration": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/MakeMigration", - "commandName": "make:migration", - "description": "Make a new migration file", - "args": [ - { - "type": "string", - "propertyName": "name", - "name": "name", - "required": true, - "description": "Name of the migration file" - } - ], - "aliases": [], - "flags": [ - { - "name": "connection", - "propertyName": "connection", - "type": "string", - "description": "The connection flag is used to lookup the directory for the migration file" - }, - { - "name": "folder", - "propertyName": "folder", - "type": "string", - "description": "Pre-select a migration directory" - }, - { - "name": "create", - "propertyName": "create", - "type": "string", - "description": "Define the table name for creating a new table" - }, - { - "name": "table", - "propertyName": "table", - "type": "string", - "description": "Define the table name for altering an existing table" - } - ] - }, - "make:seeder": { - "settings": {}, - "commandPath": "@adonisjs/lucid/build/commands/MakeSeeder", - "commandName": "make:seeder", - "description": "Make a new Seeder file", - "args": [ - { - "type": "string", - "propertyName": "name", - "name": "name", - "required": true, - "description": "Name of the seeder class" - } - ], - "aliases": [], - "flags": [] - }, - "make:factory": { - "settings": {}, - "commandPath": "@adonisjs/lucid/build/commands/MakeFactory", - "commandName": "make:factory", - "description": "Make a new factory", - "args": [ - { - "type": "string", - "propertyName": "model", - "name": "model", - "required": true, - "description": "The name of the model" - } - ], - "aliases": [], - "flags": [ - { - "name": "model-path", - "propertyName": "modelPath", - "type": "string", - "description": "The path to the model" - }, - { - "name": "exact", - "propertyName": "exact", - "type": "boolean", - "description": "Create the factory with the exact name as provided", - "alias": "e" - } - ] - }, - "migration:run": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/Migration/Run", - "commandName": "migration:run", - "description": "Migrate database by running pending migrations", - "args": [], - "aliases": [], - "flags": [ - { - "name": "connection", - "propertyName": "connection", - "type": "string", - "description": "Define a custom database connection", - "alias": "c" - }, - { - "name": "force", - "propertyName": "force", - "type": "boolean", - "description": "Explicitly force to run migrations in production" - }, - { - "name": "dry-run", - "propertyName": "dryRun", - "type": "boolean", - "description": "Do not run actual queries. Instead view the SQL output" - }, - { - "name": "compact-output", - "propertyName": "compactOutput", - "type": "boolean", - "description": "A compact single-line output" - }, - { - "name": "disable-locks", - "propertyName": "disableLocks", - "type": "boolean", - "description": "Disable locks acquired to run migrations safely" - } - ] - }, - "migration:rollback": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/Migration/Rollback", - "commandName": "migration:rollback", - "description": "Rollback migrations to a specific batch number", - "args": [], - "aliases": [], - "flags": [ - { - "name": "connection", - "propertyName": "connection", - "type": "string", - "description": "Define a custom database connection", - "alias": "c" - }, - { - "name": "force", - "propertyName": "force", - "type": "boolean", - "description": "Explictly force to run migrations in production" - }, - { - "name": "dry-run", - "propertyName": "dryRun", - "type": "boolean", - "description": "Do not run actual queries. Instead view the SQL output" - }, - { - "name": "batch", - "propertyName": "batch", - "type": "number", - "description": "Define custom batch number for rollback. Use 0 to rollback to initial state" - }, - { - "name": "compact-output", - "propertyName": "compactOutput", - "type": "boolean", - "description": "A compact single-line output" - }, - { - "name": "disable-locks", - "propertyName": "disableLocks", - "type": "boolean", - "description": "Disable locks acquired to run migrations safely" - } - ] - }, - "migration:status": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/Migration/Status", - "commandName": "migration:status", - "description": "View migrations status", - "args": [], - "aliases": [], - "flags": [ - { - "name": "connection", - "propertyName": "connection", - "type": "string", - "description": "Define a custom database connection", - "alias": "c" - } - ] - }, - "migration:reset": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/Migration/Reset", - "commandName": "migration:reset", - "description": "Rollback all migrations", - "args": [], - "aliases": [], - "flags": [ - { - "name": "connection", - "propertyName": "connection", - "type": "string", - "description": "Define a custom database connection", - "alias": "c" - }, - { - "name": "force", - "propertyName": "force", - "type": "boolean", - "description": "Explicitly force command to run in production" - }, - { - "name": "dry-run", - "propertyName": "dryRun", - "type": "boolean", - "description": "Do not run actual queries. Instead view the SQL output" - }, - { - "name": "disable-locks", - "propertyName": "disableLocks", - "type": "boolean", - "description": "Disable locks acquired to run migrations safely" - } - ] - }, - "migration:refresh": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/Migration/Refresh", - "commandName": "migration:refresh", - "description": "Rollback and migrate database", - "args": [], - "aliases": [], - "flags": [ - { - "name": "connection", - "propertyName": "connection", - "type": "string", - "description": "Define a custom database connection", - "alias": "c" - }, - { - "name": "force", - "propertyName": "force", - "type": "boolean", - "description": "Explicitly force command to run in production" - }, - { - "name": "dry-run", - "propertyName": "dryRun", - "type": "boolean", - "description": "Do not run actual queries. Instead view the SQL output" - }, - { - "name": "seed", - "propertyName": "seed", - "type": "boolean", - "description": "Run seeders" - }, - { - "name": "disable-locks", - "propertyName": "disableLocks", - "type": "boolean", - "description": "Disable locks acquired to run migrations safely" - } - ] - }, - "migration:fresh": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/Migration/Fresh", - "commandName": "migration:fresh", - "description": "Drop all tables and re-migrate the database", - "args": [], - "aliases": [], - "flags": [ - { - "name": "connection", - "propertyName": "connection", - "type": "string", - "description": "Define a custom database connection", - "alias": "c" - }, - { - "name": "force", - "propertyName": "force", - "type": "boolean", - "description": "Explicitly force command to run in production" - }, - { - "name": "seed", - "propertyName": "seed", - "type": "boolean", - "description": "Run seeders" - }, - { - "name": "drop-views", - "propertyName": "dropViews", - "type": "boolean", - "description": "Drop all views" - }, - { - "name": "drop-types", - "propertyName": "dropTypes", - "type": "boolean", - "description": "Drop all custom types (Postgres only)" - }, - { - "name": "disable-locks", - "propertyName": "disableLocks", - "type": "boolean", - "description": "Disable locks acquired to run migrations safely" - } - ] - } - }, - "aliases": {} -} diff --git a/ace.js b/ace.js new file mode 100644 index 0000000..98fb5cb --- /dev/null +++ b/ace.js @@ -0,0 +1,25 @@ +/* +/* +|-------------------------------------------------------------------------- +| JavaScript entrypoint for running ace commands +|-------------------------------------------------------------------------- +| +| Since, we cannot run TypeScript source code using "node" binary, we need +| a JavaScript entrypoint to run ace commands. +| +| This file registers the "ts-node/esm" hook with the Node.js module system +| and then imports the "bin/console.ts" file. +| +*/ + +/** + * Register hook to process TypeScript files using ts-node + */ +// import { register } from 'node:module'; +// register('ts-node/esm', import.meta.url); +import 'ts-node-maintained/register/esm'; + +/** + * Import ace console entrypoint + */ +await import('./bin/console.js'); diff --git a/adonisrc.ts b/adonisrc.ts new file mode 100644 index 0000000..19e946c --- /dev/null +++ b/adonisrc.ts @@ -0,0 +1,120 @@ +import { defineConfig } from '@adonisjs/core/app'; + +export default defineConfig({ + /* +|-------------------------------------------------------------------------- +| Commands +|-------------------------------------------------------------------------- +| +| List of ace commands to register from packages. The application commands +| will be scanned automatically from the "./commands" directory. + +*/ + commands: [ + () => import('@adonisjs/core/commands'), + () => import('@adonisjs/lucid/commands'), + () => import('@adonisjs/mail/commands')], + /* +|-------------------------------------------------------------------------- +| Preloads +|-------------------------------------------------------------------------- +| +| List of modules to import before starting the application. +| +*/ + preloads: [ + () => import('./start/routes.js'), + () => import('./start/kernel.js'), + () => import('#start/validator'), + () => import('#start/rules/unique'), + () => import('#start/rules/translated_language'), + () => import('#start/rules/unique_person'), + () => import('#start/rules/file_length'), + () => import('#start/rules/file_scan'), + () => import('#start/rules/allowed_extensions_mimetypes'), + () => import('#start/rules/dependent_array_min_length'), + () => import('#start/rules/referenceValidation'), + () => import('#start/rules/valid_mimetype'), + () => import('#start/rules/array_contains_types'), + ], + /* +|-------------------------------------------------------------------------- +| Service providers +|-------------------------------------------------------------------------- +| +| List of service providers to import and register when booting the +| application +| +*/ + providers: [ + // () => import('./providers/AppProvider.js'), + () => import('@adonisjs/core/providers/app_provider'), + () => import('@adonisjs/core/providers/hash_provider'), + { + file: () => import('@adonisjs/core/providers/repl_provider'), + environment: ['repl', 'test'], + }, + () => import('@adonisjs/session/session_provider'), + () => import('@adonisjs/core/providers/edge_provider'), + () => import('@adonisjs/shield/shield_provider'), + // () => import('@eidellev/inertia-adonisjs'), + // () => import('@adonisjs/inertia/inertia_provider'), + () => import('#providers/app_provider'), + () => import('#providers/inertia_provider'), + () => import('@adonisjs/lucid/database_provider'), + () => import('@adonisjs/auth/auth_provider'), + // () => import('@eidellev/adonis-stardust'), + () => import('@adonisjs/redis/redis_provider'), + // () => import('@adonisjs/encore/encore_provider'), + () => import('@adonisjs/static/static_provider'), + () => import('#providers/stardust_provider'), + () => import('#providers/query_builder_provider'), + () => import('#providers/token_worker_provider'), + // () => import('#providers/validator_provider'), + // () => import('#providers/drive/provider/drive_provider'), + () => import('@adonisjs/drive/drive_provider'), + // () => import('@adonisjs/core/providers/vinejs_provider'), + () => import('#providers/vinejs_provider'), + () => import('@adonisjs/mail/mail_provider'), + () => import('@adonisjs/vite/vite_provider'), + ], + metaFiles: [ + { + pattern: 'public/**', + reloadServer: false, + }, + { + pattern: 'resources/views/**/*.edge', + reloadServer: false, + }, + ], + /* +|-------------------------------------------------------------------------- +| Tests +|-------------------------------------------------------------------------- +| +| List of test suites to organize tests by their type. Feel free to remove +| and add additional suites. +| +*/ + tests: { + suites: [ + { + files: ['tests/unit/**/*.spec(.ts|.js)'], + name: 'unit', + timeout: 2000, + }, + { + files: ['tests/functional/**/*.spec(.ts|.js)'], + name: 'functional', + timeout: 30000, + }, + ], + forceExit: false, + }, + assetsBundler: false, + hooks: { + onBuildStarting: [() => import('@adonisjs/vite/build_hook')], + }, + // assetsBundler: false +}); diff --git a/app/Controllers/Http/Admin/UsersController.ts b/app/Controllers/Http/Admin/AdminuserController.ts similarity index 64% rename from app/Controllers/Http/Admin/UsersController.ts rename to app/Controllers/Http/Admin/AdminuserController.ts index 342d79f..2962cbd 100644 --- a/app/Controllers/Http/Admin/UsersController.ts +++ b/app/Controllers/Http/Admin/AdminuserController.ts @@ -1,14 +1,14 @@ -import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; -import User from 'App/Models/User'; -import Role from 'App/Models/Role'; -import type { ModelQueryBuilderContract } from '@ioc:Adonis/Lucid/Orm'; -import CreateUserValidator from 'App/Validators/CreateUserValidator'; -import UpdateUserValidator from 'App/Validators/UpdateUserValidator'; -import { RenderResponse } from '@ioc:EidelLev/Inertia'; +import type { HttpContext } from '@adonisjs/core/http'; +import User from '#models/user'; +import Role from '#models/role'; +import { ModelQueryBuilderContract } from '@adonisjs/lucid/types/model'; +import { createUserValidator, updateUserValidator } from '#validators/user'; +// import { schema, rules } from '@ioc:Adonis/Core/Validator'; +// import Hash from '@ioc:Adonis/Core/Hash'; // import { schema, rules } from '@ioc:Adonis/Core/Validator'; -export default class UsersController { - public async index({ auth, request, inertia }: HttpContextContract) { +export default class AdminuserController { + public async index({ auth, request, inertia }: HttpContext) { const page = request.input('page', 1); // const limit = 10 @@ -45,7 +45,7 @@ export default class UsersController { // .filter(qs) // .preload('focusInterests') // .preload('role') - .paginate(page, 5); + .paginate(page, 10); // var test = request.all(); @@ -61,7 +61,7 @@ export default class UsersController { }); } - public async create({ inertia }: HttpContextContract) { + public async create({ inertia }: HttpContext) { // let rolesPluck = {}; // (await Role.query().select('id', 'name')).forEach((user) => { // rolesPluck[user.id] = user.name; @@ -73,18 +73,21 @@ export default class UsersController { }); } - public async store({ request, response, session }: HttpContextContract) { + public async store({ request, response, session }: HttpContext) { // node ace make:validator CreateUser try { // Step 2 - Validate request body against the schema - await request.validate(CreateUserValidator); + // await request.validate(CreateUserValidator); + await request.validateUsing(createUserValidator); // console.log({ payload }); } catch (error) { // Step 3 - Handle errors // return response.badRequest(error.messages); throw error; } - const input = request.only(['login', 'email', 'password']); + + const input: Record = request.only(['login', 'email','first_name', 'last_name']); + input.password = request.input('new_password'); const user = await User.create(input); if (request.input('roles')) { const roles: Array = request.input('roles'); @@ -92,10 +95,9 @@ export default class UsersController { } session.flash('message', 'User has been created successfully'); - return response.redirect().toRoute('user.index'); + return response.redirect().toRoute('settings.user.index'); } - - public async show({ request, inertia }: HttpContextContract) { + public async show({ request, inertia }: HttpContext) { const id = request.param('id'); const user = await User.query().where('id', id).firstOrFail(); @@ -110,7 +112,7 @@ export default class UsersController { }); } - public async edit({ request, inertia }: HttpContextContract) { + public async edit({ request, inertia }: HttpContext) { const id = request.param('id'); const user = await User.query().where('id', id).firstOrFail(); @@ -125,20 +127,26 @@ export default class UsersController { }); } - public async update({ request, response, session }: HttpContextContract) { + public async update({ request, response, session }: HttpContext) { // node ace make:validator UpdateUser const id = request.param('id'); const user = await User.query().where('id', id).firstOrFail(); // validate update form - await request.validate(UpdateUserValidator); + await request.validateUsing(updateUserValidator, { + meta: { + objId: user.id, + }, + }); // password is optional - let input; - if (request.input('password')) { - input = request.only(['login', 'email', 'password']); + let input: Record; + + if (request.input('new_password')) { + input = request.only(['login', 'email', 'first_name', 'last_name']); + input.password = request.input('new_password'); } else { - input = request.only(['login', 'email']); + input = request.only(['login', 'email', 'first_name', 'last_name']); } await user.merge(input).save(); // await user.save(); @@ -149,61 +157,19 @@ export default class UsersController { } session.flash('message', 'User has been updated successfully'); - return response.redirect().toRoute('user.index'); + return response.redirect().toRoute('settings.user.index'); } - - public async destroy({ request, response, session }: HttpContextContract) { + public async destroy({ request, response, session }: HttpContext) { const id = request.param('id'); const user = await User.findOrFail(id); await user.delete(); session.flash('message', `User ${user.login} has been deleted.`); - return response.redirect().toRoute('user.index'); + return response.redirect().toRoute('settings.user.index'); } - /** - * Show the user a form to change their personal information & password. - * - * @return — \Inertia\Response - */ - public accountInfo({ inertia, auth }: HttpContextContract): RenderResponse { - const user = auth.user; - // const id = request.param('id'); - // const user = await User.query().where('id', id).firstOrFail(); - - return inertia.render('Admin/User/AccountInfo', { - user: user, - }); - } - - /** - * Save the modified personal information for a user. - * - * @param HttpContextContract ctx - * @return : RedirectContract - */ - public async accountInfoStore({ request, response, auth, session }: HttpContextContract) { - // validate update form - await request.validate(UpdateUserValidator); - - const payload = request.only(['login', 'email']); - auth.user?.merge(payload); - const user = await auth.user?.save(); - // $user = \Auth::user()->update($request->except(['_token'])); - let message; - if (user) { - message = 'Account updated successfully.'; - } else { - message = 'Error while saving. Please try again.'; - } - - session.flash(message); - return response.redirect().toRoute('admin.account.info'); - //->with('message', __($message)); - } - - // private async syncRoles(userId: number, roleIds: Array) { - // const user = await User.findOrFail(userId) + // private async syncRoles(objId: number, roleIds: Array) { + // const user = await User.findOrFail(objId) // // const roles: Role[] = await Role.query().whereIn('id', roleIds); // // await user.roles().sync(roles.rows.map(role => role.id)) diff --git a/app/Controllers/Http/Admin/HomeController.ts b/app/Controllers/Http/Admin/HomeController.ts index 33bc433..27e1bc3 100644 --- a/app/Controllers/Http/Admin/HomeController.ts +++ b/app/Controllers/Http/Admin/HomeController.ts @@ -1,17 +1,17 @@ -import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; +import type { HttpContext } from '@adonisjs/core/http'; export default class HomeController { - public async index({}: HttpContextContract) {} + public async index({}: HttpContext) {} - public async create({}: HttpContextContract) {} + public async create({}: HttpContext) {} - public async store({}: HttpContextContract) {} + public async store({}: HttpContext) {} - public async show({}: HttpContextContract) {} + public async show({}: HttpContext) {} - public async edit({}: HttpContextContract) {} + public async edit({}: HttpContext) {} - public async update({}: HttpContextContract) {} + public async update({}: HttpContext) {} - public async destroy({}: HttpContextContract) {} + public async destroy({}: HttpContext) {} } diff --git a/app/Controllers/Http/Admin/LicenseController.ts b/app/Controllers/Http/Admin/LicenseController.ts new file mode 100644 index 0000000..9d15208 --- /dev/null +++ b/app/Controllers/Http/Admin/LicenseController.ts @@ -0,0 +1,51 @@ +import type { HttpContext } from '@adonisjs/core/http'; +import License from '#models/license'; + +export default class LicenseController { + public async index({ auth, inertia }: HttpContext) { + const direction = 'asc'; // or 'desc' + const licenses = await License.query().orderBy('sort_order', direction).exec(); + + return inertia.render('Admin/License/Index', { + licenses: licenses, + can: { + edit: await auth.user?.can(['settings']), + }, + }); + } + + public async down({ request, response }: HttpContext) { + const id = request.param('id'); + const license = await License.findOrFail(id); + license.active = false; + await license.save(); + + // session.flash({ message: 'person has been deactivated!' }); + return response.flash('License has been deactivated!', 'message').toRoute('settings.license.index') + } + + public async up({ request, response }: HttpContext) { + const id = request.param('id'); + const license = await License.findOrFail(id); + license.active = true; + await license.save(); + + // session.flash({ message: 'person has been activated!' }); + return response.flash('License has been activated!', 'message').toRoute('settings.license.index'); + } + + // public async edit({ request, inertia }: HttpContext) { + // const id = request.param('id'); + // const license = await License.query().where('id', id).firstOrFail(); + + // // const permissions = await Permission.query().pluck('name', 'id'); + // // // const userHasRoles = user.roles; + // // const rolerHasPermissions = await role.related('permissions').query().orderBy('name').pluck('id'); + + // return inertia.render('Admin/License/Edit', { + // // permissions: permissions, + // license: license, + // // roleHasPermissions: Object.keys(rolerHasPermissions).map((key) => rolerHasPermissions[key]), //convert object to array with role ids + // }); + // } +} diff --git a/app/Controllers/Http/Admin/MimetypeController.ts b/app/Controllers/Http/Admin/MimetypeController.ts new file mode 100644 index 0000000..561c0ad --- /dev/null +++ b/app/Controllers/Http/Admin/MimetypeController.ts @@ -0,0 +1,188 @@ +import type { HttpContext } from '@adonisjs/core/http'; +import MimeType from '#models/mime_type'; +import vine, { SimpleMessagesProvider } from '@vinejs/vine'; + +export default class MimetypeController { + public async index({ auth, inertia }: HttpContext) { + const direction = 'asc'; // or 'desc' + const mimetypes = await MimeType.query().orderBy('name', direction).exec(); + + return inertia.render('Admin/Mimetype/Index', { + mimetypes: mimetypes, + can: { + create: await auth.user?.can(['settings']), + edit: await auth.user?.can(['settings']), + }, + }); + } + + public async create({ inertia }: HttpContext) { + // const permissions = await Permission.query().select('id', 'name').pluck('name', 'id'); + return inertia.render('Admin/Mimetype/Create', {}); + } + + public async store({ request, response, session }: HttpContext) { + const newDatasetSchema = vine.object({ + name: vine.string().trim().isUnique({ table: 'mime_types', column: 'name' }), + file_extension: vine.array(vine.string()).minLength(1), // define at least one extension for the new mimetype + alternate_mimetype: vine.array(vine.string().isValidMimetype()).distinct().optional(), // define alias mimetypes + enabled: vine.boolean(), + }); + // await request.validate({ schema: newDatasetSchema, messages: this.messages }); + try { + // Step 2 - Validate request body against the schema + // await request.validate({ schema: newDatasetSchema, messages: this.messages }); + const validator = vine.compile(newDatasetSchema); + validator.messagesProvider = new SimpleMessagesProvider(this.messages); + await request.validateUsing(validator, { messagesProvider: new SimpleMessagesProvider(this.messages) }); + } catch (error) { + // Step 3 - Handle errors + // return response.badRequest(error.messages); + throw error; + } + const input = request.only(['name', 'enabled', 'file_extension', 'alternate_mimetype']); + // Concatenate the file_extensions array into a string with '|' as the separator + if (Array.isArray(input.file_extension)) { + input.file_extension = input.file_extension.join('|'); + } + // Concatenate the alias_mimetype array into a string with '|' as the separator + if (Array.isArray(input.alternate_mimetype)) { + input.alternate_mimetype = input.alternate_mimetype.join('|'); + } + await MimeType.create(input); + // if (request.input('roles')) { + // const roles: Array = request.input('roles'); + // await user.related('roles').attach(roles); + // } + + session.flash('message', 'MimeType has been created successfully'); + return response.redirect().toRoute('settings.mimetype.index'); + } + + public messages = { + 'minLength': '{{ field }} must be at least {{ min }} characters long', + 'maxLength': '{{ field }} must be less then {{ max }} characters long', + 'isUnique': '{{ field }} must be unique, and this value is already taken', + 'required': '{{ field }} is required', + 'file_extension.array.minLength': 'at least {{ min }} mimetypes must be defined', + 'file_extension.*.string': 'Each file extension must be a valid string', // Adjusted to match the type + }; + + public async edit({ request, inertia }: HttpContext) { + const id = request.param('id'); + const mimetype = await MimeType.query().where('id', id).firstOrFail(); + + // const permissions = await Permission.query().pluck('name', 'id'); + // // const userHasRoles = user.roles; + // const rolerHasPermissions = await role.related('permissions').query().orderBy('name').pluck('id'); + + return inertia.render('Admin/Mimetype/Edit', { + mimetype: mimetype, + }); + } + + // public async update({ request, response, session }: HttpContext) { + // // node ace make:validator UpdateUser + // const id = request.param('id'); + // const role = await Role.query().where('id', id).firstOrFail(); + + // // validate update form + // // await request.validate(UpdateRoleValidator); + // await request.validateUsing(updateRoleValidator, { + // meta: { + // roleId: role.id, + // }, + // }); + + // // password is optional + + // const input = request.only(['name', 'description']); + // await role.merge(input).save(); + // // await user.save(); + + // if (request.input('permissions')) { + // const permissions: Array = request.input('permissions'); + // await role.related('permissions').sync(permissions); + // } + + // session.flash('message', 'Role has been updated successfully'); + // return response.redirect().toRoute('settings.role.index'); + // } + + public async down({ request, response }: HttpContext) { + const id = request.param('id'); + const mimetype = (await MimeType.findOrFail(id)) as MimeType; + mimetype.enabled = false; + await mimetype.save(); + + // session.flash({ message: 'person has been deactivated!' }); + return response.flash('mimetype has been deactivated!', 'message').toRoute('settings.mimetype.index'); + } + + public async up({ request, response }: HttpContext) { + const id = request.param('id'); + const mimetype = await MimeType.findOrFail(id); + mimetype.enabled = true; + await mimetype.save(); + + // session.flash({ message: 'person has been activated!' }); + return response.flash('mimetype has been activated!', 'message').toRoute('settings.mimetype.index'); + } + + // public async edit({ request, inertia }: HttpContext) { + // const id = request.param('id'); + // const license = await License.query().where('id', id).firstOrFail(); + + // // const permissions = await Permission.query().pluck('name', 'id'); + // // // const userHasRoles = user.roles; + // // const rolerHasPermissions = await role.related('permissions').query().orderBy('name').pluck('id'); + + // return inertia.render('Admin/License/Edit', { + // // permissions: permissions, + // license: license, + // // roleHasPermissions: Object.keys(rolerHasPermissions).map((key) => rolerHasPermissions[key]), //convert object to array with role ids + // }); + // } + public async delete({ request, inertia, response, session }: HttpContext) { + const id = request.param('id'); + try { + const mimetype = await MimeType.query() + // .preload('user', (builder) => { + // builder.select('id', 'login'); + // }) + .where('id', id) + // .preload('files') + .firstOrFail(); + // const validStates = ['inprogress', 'rejected_editor']; + // if (!validStates.includes(dataset.server_state)) { + // // session.flash('errors', 'Invalid server state!'); + // return response + // .flash( + // 'warning', + // `Invalid server state. Dataset with id ${id} cannot be deleted. Datset has server state ${dataset.server_state}.`, + // ) + // .redirect() + // .toRoute('dataset.list'); + // } + return inertia.render('Admin/Mimetype/Delete', { + mimetype, + }); + } catch (error) { + if (error.code == 'E_ROW_NOT_FOUND') { + session.flash({ warning: 'Mimetype is not found in database' }); + } else { + session.flash({ warning: 'general error occured, you cannot delete the mimetype' }); + } + return response.redirect().toRoute('mimetype.index'); + } + } + + public async deleteStore({ request, response, session }: HttpContext) { + const id = request.param('id'); + const mimetype = await MimeType.findOrFail(id); + await mimetype.delete(); + + session.flash('message', `Mimetype ${mimetype.name} has been deleted.`); + return response.redirect().toRoute('settings.mimetype.index'); + } +} diff --git a/app/Controllers/Http/Admin/RoleController.ts b/app/Controllers/Http/Admin/RoleController.ts index f591a4d..1c4ab7a 100644 --- a/app/Controllers/Http/Admin/RoleController.ts +++ b/app/Controllers/Http/Admin/RoleController.ts @@ -1,14 +1,13 @@ -import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; -import Role from 'App/Models/Role'; -import Permission from 'App/Models/Permission'; -import type { ModelQueryBuilderContract } from '@ioc:Adonis/Lucid/Orm'; -import CreateRoleValidator from 'App/Validators/CreateRoleValidator'; -import UpdateRoleValidator from 'App/Validators/UpdateRoleValidator'; -import { RenderResponse } from '@ioc:EidelLev/Inertia'; +import type { HttpContext } from '@adonisjs/core/http'; +import Role from '#models/role'; +import Permission from '#models/permission'; +import { createRoleValidator, updateRoleValidator } from '#validators/role'; +import type { ModelQueryBuilderContract } from '@adonisjs/lucid/types/model'; + // import { schema, rules } from '@ioc:Adonis/Core/Validator'; export default class RoleController { - public async index({ auth, request, inertia }: HttpContextContract) { + public async index({ auth, request, inertia }: HttpContext) { let roles: ModelQueryBuilderContract = Role.query(); if (request.input('search')) { @@ -48,18 +47,19 @@ export default class RoleController { }); } - public async create({ inertia }: HttpContextContract) { + public async create({ inertia }: HttpContext) { const permissions = await Permission.query().select('id', 'name').pluck('name', 'id'); return inertia.render('Admin/Role/Create', { permissions: permissions, }); } - public async store({ request, response, session }: HttpContextContract) { + public async store({ request, response, session }: HttpContext) { // node ace make:validator CreateUser try { // Step 2 - Validate request body against the schema - await request.validate(CreateRoleValidator); + // await request.validate(CreateRoleValidator); + await request.validateUsing(createRoleValidator); // await request.validate({ schema: roleSchema }); // console.log({ payload }); } catch (error) { @@ -76,10 +76,10 @@ export default class RoleController { } session.flash('message', `Role ${role.name} has been created successfully`); - return response.redirect().toRoute('role.index'); + return response.redirect().toRoute('settings.role.index'); } - public async show({ request, inertia }: HttpContextContract): RenderResponse { + public async show({ request, inertia }: HttpContext) { const id = request.param('id'); const role = await Role.query().where('id', id).firstOrFail(); @@ -94,7 +94,7 @@ export default class RoleController { }); } - public async edit({ request, inertia }: HttpContextContract) { + public async edit({ request, inertia }: HttpContext) { const id = request.param('id'); const role = await Role.query().where('id', id).firstOrFail(); @@ -109,13 +109,18 @@ export default class RoleController { }); } - public async update({ request, response, session }: HttpContextContract) { + public async update({ request, response, session }: HttpContext) { // node ace make:validator UpdateUser const id = request.param('id'); const role = await Role.query().where('id', id).firstOrFail(); // validate update form - await request.validate(UpdateRoleValidator); + // await request.validate(UpdateRoleValidator); + await request.validateUsing(updateRoleValidator, { + meta: { + roleId: role.id, + }, + }); // password is optional @@ -129,15 +134,15 @@ export default class RoleController { } session.flash('message', 'Role has been updated successfully'); - return response.redirect().toRoute('role.index'); + return response.redirect().toRoute('settings.role.index'); } - public async destroy({ request, response, session }: HttpContextContract) { + public async destroy({ request, response, session }: HttpContext) { const id = request.param('id'); const role = await Role.findOrFail(id); await role.delete(); session.flash('message', `Role ${role.name} has been deleted.`); - return response.redirect().toRoute('role.index'); + return response.redirect().toRoute('settings.role.index'); } } diff --git a/app/Controllers/Http/Admin/mailsettings_controller.ts b/app/Controllers/Http/Admin/mailsettings_controller.ts new file mode 100644 index 0000000..43e9dc7 --- /dev/null +++ b/app/Controllers/Http/Admin/mailsettings_controller.ts @@ -0,0 +1,103 @@ +import type { HttpContext } from '@adonisjs/core/http'; +import vine from '@vinejs/vine'; +import AppConfig from '#models/appconfig'; +import mail from '@adonisjs/mail/services/main'; +// import config from '@adonisjs/core/services/config'; +// import { configProvider } from '@adonisjs/core'; +// import app from '@adonisjs/core/services/app'; + +export default class MailSettingsController { + /** + * Save the email server settings + */ + public async setMailSettings({ request, response }: HttpContext) { + const settingsSchema = vine.compile( + vine.object({ + mail_domain: vine.string(), + mail_from_address: vine.string(), + mail_smtp_mode: vine.string(), + mail_smtpsecure: vine.string().optional(), + mail_smtphost: vine.string(), + mail_smtpport: vine.string(), + mail_smtpauth: vine.boolean(), + // mail_sendmailmode: vine.string().optional(), + }), + ); + + const validatedData = await request.validateUsing(settingsSchema); + + const configData: any = { ...validatedData }; + + if (!validatedData.mail_smtpauth) { + configData.mail_smtpname = null; + configData.mail_smtppassword = null; + } + + // Prepare the settings to be saved + const settingsToSave = [ + { appid: 'settings', configkey: 'default', configvalue: validatedData.mail_smtp_mode, type: 1, lazy: 0 }, + { appid: 'settings', configkey: 'host', configvalue: validatedData.mail_smtphost, type: 1, lazy: 0 }, + { appid: 'settings', configkey: 'port', configvalue: validatedData.mail_smtpport, type: 1, lazy: 0 }, + { + appid: 'settings', + configkey: 'from.address', + configvalue: `${validatedData.mail_from_address}@${validatedData.mail_domain}`, + type: 1, + lazy: 0, + }, + ]; + + // if (validatedData.mail_smtpauth) { + // settingsToSave.push( + // { appid: 'settings', configkey: 'smtp_user', configvalue: validatedData.mail_smtpname, type: 1, lazy: 0 }, + // { appid: 'settings', configkey: 'smtp_password', configvalue: validatedData.mail_smtppassword, type: 1, lazy: 0 }, + // ); + // } else { + // settingsToSave.push( + // { appid: 'settings', configkey: 'smtp_user', configvalue: null, type: 1, lazy: 0 }, + // { appid: 'settings', configkey: 'smtp_password', configvalue: null, type: 1, lazy: 0 }, + // ); + // } + + // Save or update the settings in the database + for (const setting of settingsToSave) { + await AppConfig.updateOrCreate( + { appid: setting.appid, configkey: setting.configkey }, + { configvalue: setting.configvalue, type: setting.type, lazy: setting.lazy }, + ); + } + + return response.json({ success: true, message: 'Mail settings updated successfully' }); + } + + /** + * Send a test email to ensure settings work + */ + public async sendTestMail({ response, auth }: HttpContext) { + const user = auth.user!; + const userEmail = user.email; + + // let mailManager = await app.container.make('mail.manager'); + // let iwas = mailManager.use(); + // let test = mail.config.mailers.smtp(); + if (!userEmail) { + return response.badRequest({ message: 'User email is not set. Please update your profile.' }); + } + + try { + await mail.send((message) => { + message + // .from(Config.get('mail.from.address')) + .from('tethys@geosphere.at') + .to(userEmail) + .subject('Test Email') + .html('

If you received this email, the email configuration seems to be correct.

'); + }); + + return response.json({ success: true, message: 'Test email sent successfully' }); + // return response.flash('Test email sent successfully!', 'message').redirect().back(); + } catch (error) { + return response.internalServerError({ message: `Error sending test email: ${error.message}` }); + } + } +} diff --git a/app/Controllers/Http/Api/AuthorsController.ts b/app/Controllers/Http/Api/AuthorsController.ts index 7a54bfa..7209699 100644 --- a/app/Controllers/Http/Api/AuthorsController.ts +++ b/app/Controllers/Http/Api/AuthorsController.ts @@ -1,31 +1,37 @@ -import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; -import Person from 'App/Models/Person'; +import type { HttpContext } from '@adonisjs/core/http'; +import Person from '#models/person'; // import Dataset from 'App/Models/Dataset'; // node ace make:controller Author export default class AuthorsController { - public async index({}: HttpContextContract) { + public async index({}: HttpContext) { // select * from gba.persons // where exists (select * from gba.documents inner join gba.link_documents_persons on "documents"."id" = "link_documents_persons"."document_id" // where ("link_documents_persons"."role" = 'author') and ("persons"."id" = "link_documents_persons"."person_id")); const authors = await Person.query() + .preload('datasets') + .where('name_type', 'Personal') .whereHas('datasets', (dQuery) => { dQuery.wherePivot('role', 'author'); }) .withCount('datasets', (query) => { query.as('datasets_count'); - }); + }) + .orderBy('datasets_count', 'desc'); return authors; } - public async persons({ request }: HttpContextContract) { + public async persons({ request }: HttpContext) { const authors = Person.query().where('status', true); if (request.input('filter')) { // users = users.whereRaw('name like %?%', [request.input('search')]) const searchTerm = request.input('filter'); - authors.whereILike('first_name', `%${searchTerm}%`).orWhereILike('last_name', `%${searchTerm}%`); + authors.andWhere((query) => { + query.whereILike('first_name', `%${searchTerm}%`) + .orWhereILike('last_name', `%${searchTerm}%`); + }); // .orWhere('email', 'like', `%${searchTerm}%`); } diff --git a/app/Controllers/Http/Api/AvatarController.ts b/app/Controllers/Http/Api/AvatarController.ts new file mode 100644 index 0000000..74fe135 --- /dev/null +++ b/app/Controllers/Http/Api/AvatarController.ts @@ -0,0 +1,135 @@ +import type { HttpContext } from '@adonisjs/core/http'; +import { StatusCodes } from 'http-status-codes'; +import redis from '@adonisjs/redis/services/main'; + +const PREFIXES = ['von', 'van']; +const DEFAULT_SIZE = 50; +const FONT_SIZE_RATIO = 0.4; +const COLOR_LIGHTENING_PERCENT = 60; +const COLOR_DARKENING_FACTOR = 0.6; + +export default class AvatarController { + public async generateAvatar({ request, response }: HttpContext) { + try { + const { name, size = DEFAULT_SIZE } = request.only(['name', 'size']); + if (!name) { + return response.status(StatusCodes.BAD_REQUEST).json({ error: 'Name is required' }); + } + + // Build a unique cache key for the given name and size + const cacheKey = `avatar:${name.trim().toLowerCase()}-${size}`; + const cachedSvg = await redis.get(cacheKey); + if (cachedSvg) { + this.setResponseHeaders(response); + return response.send(cachedSvg); + } + + const initials = this.getInitials(name); + const colors = this.generateColors(name); + const svgContent = this.createSvg(size, colors, initials); + + // // Cache the generated avatar for future use, e.g. 1 hour expiry + await redis.setex(cacheKey, 3600, svgContent); + + this.setResponseHeaders(response); + return response.send(svgContent); + } catch (error) { + return response.status(StatusCodes.INTERNAL_SERVER_ERROR).json({ error: error.message }); + } + } + + private getInitials(name: string): string { + const parts = name + .trim() + .split(' ') + .filter((part) => part.length > 0); + + if (parts.length === 0) { + return 'NA'; + } + + if (parts.length >= 2) { + return this.getMultiWordInitials(parts); + } + return parts[0].substring(0, 2).toUpperCase(); + } + + private getMultiWordInitials(parts: string[]): string { + const firstName = parts[0]; + const lastName = parts[parts.length - 1]; + const firstInitial = firstName.charAt(0).toUpperCase(); + const lastInitial = lastName.charAt(0).toUpperCase(); + + if (PREFIXES.includes(lastName.toLowerCase()) && lastName === lastName.toUpperCase()) { + return firstInitial + lastName.charAt(1).toUpperCase(); + } + return firstInitial + lastInitial; + } + + private generateColors(name: string): { background: string; text: string } { + const baseColor = this.getColorFromName(name); + return { + background: this.lightenColor(baseColor, COLOR_LIGHTENING_PERCENT), + text: this.darkenColor(baseColor), + }; + } + + private createSvg(size: number, colors: { background: string; text: string }, initials: string): string { + const fontSize = size * FONT_SIZE_RATIO; + return ` + + + ${initials} + + `; + } + + private setResponseHeaders(response: HttpContext['response']): void { + response.header('Content-type', 'image/svg+xml'); + response.header('Cache-Control', 'no-cache'); + response.header('Pragma', 'no-cache'); + response.header('Expires', '0'); + } + + private getColorFromName(name: string): string { + let hash = 0; + for (let i = 0; i < name.length; i++) { + hash = name.charCodeAt(i) + ((hash << 5) - hash); + } + + const colorParts = []; + for (let i = 0; i < 3; i++) { + const value = (hash >> (i * 8)) & 0xff; + colorParts.push(value.toString(16).padStart(2, '0')); + } + return colorParts.join(''); + } + + private lightenColor(hexColor: string, percent: number): string { + const r = parseInt(hexColor.substring(0, 2), 16); + const g = parseInt(hexColor.substring(2, 4), 16); + const b = parseInt(hexColor.substring(4, 6), 16); + + const lightenValue = (value: number) => Math.min(255, Math.floor((value * (100 + percent)) / 100)); + + const newR = lightenValue(r); + const newG = lightenValue(g); + const newB = lightenValue(b); + + return ((newR << 16) | (newG << 8) | newB).toString(16).padStart(6, '0'); + } + + private darkenColor(hexColor: string): string { + const r = parseInt(hexColor.slice(0, 2), 16); + const g = parseInt(hexColor.slice(2, 4), 16); + const b = parseInt(hexColor.slice(4, 6), 16); + + const darkenValue = (value: number) => Math.round(value * COLOR_DARKENING_FACTOR); + + const darkerR = darkenValue(r); + const darkerG = darkenValue(g); + const darkerB = darkenValue(b); + + return ((darkerR << 16) + (darkerG << 8) + darkerB).toString(16).padStart(6, '0'); + } +} diff --git a/app/Controllers/Http/Api/DatasetController.ts b/app/Controllers/Http/Api/DatasetController.ts index 5245c26..b80949d 100644 --- a/app/Controllers/Http/Api/DatasetController.ts +++ b/app/Controllers/Http/Api/DatasetController.ts @@ -1,20 +1,25 @@ -import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; +import type { HttpContext } from '@adonisjs/core/http'; // import Person from 'App/Models/Person'; -import Dataset from 'App/Models/Dataset'; +import Dataset from '#models/dataset'; import { StatusCodes } from 'http-status-codes'; // node ace make:controller Author export default class DatasetController { - public async index({}: HttpContextContract) { - // select * from gba.persons - // where exists (select * from gba.documents inner join gba.link_documents_persons on "documents"."id" = "link_documents_persons"."document_id" - // where ("link_documents_persons"."role" = 'author') and ("persons"."id" = "link_documents_persons"."person_id")); - const datasets = await Dataset.query().where('server_state', 'published').orWhere('server_state', 'deleted'); + public async index({}: HttpContext) { + // Select datasets with server_state 'published' or 'deleted' and sort by the last published date + const datasets = await Dataset.query() + .where(function (query) { + query.where('server_state', 'published') + .orWhere('server_state', 'deleted'); + }) + .preload('titles') + .preload('identifier') + .orderBy('server_date_published', 'desc'); return datasets; } - public async findAll({ response }: HttpContextContract) { + public async findAll({ response }: HttpContext) { try { const datasets = await Dataset.query() .where('server_state', 'published') @@ -29,7 +34,7 @@ export default class DatasetController { } } - public async findOne({ params }: HttpContextContract) { + public async findOne({ params }: HttpContext) { const datasets = await Dataset.query() .where('publish_id', params.publish_id) .preload('titles') diff --git a/app/Controllers/Http/Api/FileController.ts b/app/Controllers/Http/Api/FileController.ts new file mode 100644 index 0000000..8080479 --- /dev/null +++ b/app/Controllers/Http/Api/FileController.ts @@ -0,0 +1,54 @@ +import type { HttpContext } from '@adonisjs/core/http'; +import File from '#models/file'; +import { StatusCodes } from 'http-status-codes'; +import * as fs from 'fs'; +import * as path from 'path'; + +// node ace make:controller Author +export default class FileController { + // @Get("download/:id") + public async findOne({ response, params }: HttpContext) { + const id = params.id; + const file = await File.findOrFail(id); + // const file = await File.findOne({ + // where: { id: id }, + // }); + if (file) { + const filePath = '/storage/app/data/' + file.pathName; + const ext = path.extname(filePath); + const fileName = file.label + ext; + try { + fs.accessSync(filePath, fs.constants.R_OK); //| fs.constants.W_OK); + // console.log("can read/write:", path); + + response + .header('Cache-Control', 'no-cache private') + .header('Content-Description', 'File Transfer') + .header('Content-Type', file.mimeType) + .header('Content-Disposition', 'inline; filename=' + fileName) + .header('Content-Transfer-Encoding', 'binary') + .header('Access-Control-Allow-Origin', '*') + .header('Access-Control-Allow-Methods', 'GET,POST'); + + response.status(StatusCodes.OK).download(filePath); + } catch (err) { + // console.log("no access:", path); + response.status(StatusCodes.NOT_FOUND).send({ + message: `File with id ${id} doesn't exist on file server`, + }); + } + + // res.status(StatusCodes.OK).sendFile(filePath, (err) => { + // // res.setHeader("Content-Type", "application/json"); + // // res.removeHeader("Content-Disposition"); + // res.status(StatusCodes.NOT_FOUND).send({ + // message: `File with id ${id} doesn't exist on file server`, + // }); + // }); + } else { + response.status(StatusCodes.NOT_FOUND).send({ + message: `Cannot find File with id=${id}.`, + }); + } + } +} diff --git a/app/Controllers/Http/Api/HomeController.ts b/app/Controllers/Http/Api/HomeController.ts index 6f15773..fdec7f9 100644 --- a/app/Controllers/Http/Api/HomeController.ts +++ b/app/Controllers/Http/Api/HomeController.ts @@ -1,9 +1,9 @@ -import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; -import Database from '@ioc:Adonis/Lucid/Database'; +import type { HttpContext } from '@adonisjs/core/http'; +import db from '@adonisjs/lucid/services/db'; import { StatusCodes } from 'http-status-codes'; export default class HomeController { - public async findDocumentsPerYear({ response, params }: HttpContextContract) { + public async findDocumentsPerYear({ response, params }: HttpContext) { const year = params.year; const from = parseInt(year); const serverState = 'published'; @@ -17,8 +17,9 @@ export default class HomeController { // .preload('authors') // .orderBy('server_date_published'); - const datasets = await Database.from('documents as doc') - .select(['publish_id', 'server_date_published', Database.raw(`date_part('year', server_date_published) as pub_year`)]) + const datasets = await db + .from('documents as doc') + .select(['publish_id', 'server_date_published', db.raw(`date_part('year', server_date_published) as pub_year`)]) .where('server_state', serverState) .innerJoin('link_documents_persons as ba', 'doc.id', 'ba.document_id') .andWhereRaw(`date_part('year', server_date_published) = ?`, [from]) @@ -32,17 +33,17 @@ export default class HomeController { } } - public async findYears({ response }: HttpContextContract) { + public async findYears({ response }: HttpContext) { const serverState = 'published'; // Use raw SQL queries to select all cars which belongs to the user try { - const datasets = await Database.rawQuery( + const datasets = await db.rawQuery( 'SELECT distinct EXTRACT(YEAR FROM server_date_published) as published_date FROM gba.documents WHERE server_state = ?', [serverState], ); // Pluck the ids of the cars - const years = datasets.rows.map((dataset) => dataset.published_date); + const years = datasets.rows.map((dataset: any) => dataset.published_date); // check if the cars is returned // if (years.length > 0) { return response.status(StatusCodes.OK).json(years); @@ -53,4 +54,92 @@ export default class HomeController { }); } } + + public async findPublicationsPerMonth({ response }: HttpContext) { + const serverState = 'published'; + // const year = params.year; + // const from = parseInt(year); + try { + // const datasets = await Database.from('documents as doc') + // .select([Database.raw(`date_part('month', server_date_published) as pub_month`), Database.raw('COUNT(*) as count')]) + // .where('server_state', serverState) + // .innerJoin('link_documents_persons as ba', 'doc.id', 'ba.document_id') + // .andWhereRaw(`date_part('year', server_date_published) = ?`, [from]) + // .groupBy('pub_month'); + // // .orderBy('server_date_published'); + + // Calculate the last 4 years including the current year + const currentYear = new Date().getFullYear(); + const years = Array.from({ length: 4 }, (_, i) => currentYear - (i + 1)).reverse(); + + const result = await db + .from('documents as doc') + .select([ + db.raw(`date_part('year', server_date_published) as pub_year`), + db.raw(`date_part('month', server_date_published) as pub_month`), + db.raw('COUNT(*) as count'), + ]) + .where('server_state', serverState) + // .innerJoin('link_documents_persons as ba', 'doc.id', 'ba.document_id') + // .whereIn('pub_year', years) // Filter by both years + .whereRaw(`date_part('year', server_date_published) IN (${years.join(',')})`) // Filter by both years + .groupBy('pub_year', 'pub_month') + .orderBy('pub_year', 'asc') + .orderBy('pub_month', 'asc'); + + const labels = Array.from({ length: 12 }, (_, i) => i + 1); // Assuming 12 months + + const inputDatasets: Map = result.reduce((acc, item) => { + const { pub_year, pub_month, count } = item; + + if (!acc[pub_year]) { + acc[pub_year] = { + data: Array.from({ length: 12 }).fill(0), + label: pub_year.toString(), + borderColor: this.getRandomHexColor, // pub_year === 2022 ? '#3e95cd' : '#8e5ea2', + fill: false, + }; + } + + acc[pub_year].data[pub_month - 1] = parseInt(count); + + return acc; + }, {}); + + const outputDatasets = Object.entries(inputDatasets).map(([year, data]) => ({ + data: data.data, + label: year, + borderColor: data.borderColor, + fill: data.fill, + })); + + const data = { + labels: labels, + datasets: outputDatasets, + }; + + return response.json(data); + } catch (error) { + return response.status(StatusCodes.INTERNAL_SERVER_ERROR).json({ + message: error.message || 'Some error occurred while retrieving datasets.', + }); + } + } + + private getRandomHexColor() { + const letters = '0123456789ABCDEF'; + let color = '#'; + + for (let i = 0; i < 6; i++) { + color += letters[Math.floor(Math.random() * 16)]; + } + + return color; + } +} +interface ChartDataset { + data: Array; + label: string; + borderColor: string; + fill: boolean; } diff --git a/app/Controllers/Http/Api/UserController.ts b/app/Controllers/Http/Api/UserController.ts new file mode 100644 index 0000000..1d7a14a --- /dev/null +++ b/app/Controllers/Http/Api/UserController.ts @@ -0,0 +1,132 @@ +import type { HttpContext } from '@adonisjs/core/http'; +import User from '#models/user'; +import TwoFactorAuthProvider from '#app/services/TwoFactorAuthProvider'; +import { StatusCodes } from 'http-status-codes'; +import { InvalidArgumentException } from 'node-exceptions'; +import { TotpState } from '#contracts/enums'; +import BackupCodeStorage, { SecureRandom } from '#services/backup_code_storage'; +import BackupCode from '#models/backup_code'; + +// Here we are generating secret and recovery codes for the user that’s enabling 2FA and storing them to our database. +export default class UserController { + public async getSubmitters({ response }: HttpContext) { + try { + const submitters = await User.query() + .preload('roles', (query) => { + query.where('name', 'submitter') + }) + .whereHas('roles', (query) => { + query.where('name', 'submitter') + }) + .exec(); + return submitters; + } catch (error) { + return response.status(StatusCodes.INTERNAL_SERVER_ERROR).json({ + message: 'Invalid TOTP state', + }); + } + } + + public async enable({ auth, response, request }: HttpContext) { + const user = (await User.find(auth.user?.id)) as User; + // await user.load('totp_secret'); + // if (!user.totp_secret) { + // let totpSecret = new TotpSecret(); + // user.related('totp_secret').save(totpSecret); + // await user.load('totp_secret'); + // } + + if (!user) { + throw new Error('user not available'); + } + const state: number = request.input('state'); + + try { + switch (state) { + case TotpState.STATE_DISABLED: + // user.twoFactorSecret = null; + // user.twoFactorRecoveryCodes = null; + await BackupCode.deleteCodes(user); + user.twoFactorSecret = ''; + // user.twoFactorRecoveryCodes = ['']; + await user.save(); + + user.state = TotpState.STATE_DISABLED; + await user.save(); + + let storage = new BackupCodeStorage(new SecureRandom()); + let backupState = await storage.getBackupCodesState(user); + + return response.status(StatusCodes.OK).json({ + state: TotpState.STATE_DISABLED, + backupState: backupState, + }); + case TotpState.STATE_CREATED: + user.twoFactorSecret = TwoFactorAuthProvider.generateSecret(user); + user.state = TotpState.STATE_CREATED; + await user.save(); + + let qrcode = await TwoFactorAuthProvider.generateQrCode(user); + // throw new InvalidArgumentException('code is missing'); + return response.status(StatusCodes.OK).json({ + state: user.state, + secret: user.twoFactorSecret, + url: qrcode.url, + svg: qrcode.svg, + }); + case TotpState.STATE_ENABLED: + let code: string = request.input('code'); + if (!code) { + throw new InvalidArgumentException('code is missing'); + } + const success = await TwoFactorAuthProvider.enable(user, code); + + return response.status(StatusCodes.OK).json({ + state: success ? TotpState.STATE_ENABLED : TotpState.STATE_CREATED, + }); + default: + throw new InvalidArgumentException('Invalid TOTP state'); + } + } catch (error) { + return response.status(StatusCodes.INTERNAL_SERVER_ERROR).json({ + message: 'Invalid TOTP state', + }); + } + } + + // public async fetchRecoveryCodes({ auth, view }) { + // const user = auth?.user; + + // return view.render('pages/settings', { + // twoFactorEnabled: user.isTwoFactorEnabled, + // recoveryCodes: user.twoFactorRecoveryCodes, + // }); + // } + + /** + * @NoAdminRequired + * @PasswordConfirmationRequired + * + * @return JSONResponse + */ + public async createCodes({ auth, response }: HttpContext) { + // $user = $this->userSession->getUser(); + const user = (await User.find(auth.user?.id)) as User; + + // let codes = TwoFactorAuthProvider.generateRecoveryCodes(); + let storage = new BackupCodeStorage(new SecureRandom()); + // $codes = $this->storage->createCodes($user); + const codes = await storage.createCodes(user); + + let backupState = await storage.getBackupCodesState(user); + // return new JSONResponse([ + // 'codes' => $codes, + // 'state' => $this->storage->getBackupCodesState($user), + // ]); + return response.status(StatusCodes.OK).json({ + codes: codes, + // state: success ? TotpState.STATE_ENABLED : TotpState.STATE_CREATED, + backupState: backupState, //storage.getBackupCodesState(user), + }); + } +} diff --git a/app/Controllers/Http/Api/collections_controller.ts b/app/Controllers/Http/Api/collections_controller.ts new file mode 100644 index 0000000..04dcdb2 --- /dev/null +++ b/app/Controllers/Http/Api/collections_controller.ts @@ -0,0 +1,36 @@ +import type { HttpContext } from '@adonisjs/core/http'; +import Collection from '#models/collection'; + +export default class CollectionsController { + public async show({ params, response }: HttpContext) { + // Get the collection id from route parameters + const collectionId = params.id; + + // Find the selected collection by id + const collection = await Collection.find(collectionId); + if (!collection) { + return response.status(404).json({ message: 'Collection not found' }); + } + + // Query for narrower concepts: collections whose parent_id equals the selected collection's id + const narrowerCollections = await Collection.query().where('parent_id', collection.id) || []; + + // For broader concept, if the selected collection has a parent_id fetch that record (otherwise null) + const broaderCollection: Collection[] | never[] | null = await (async () => { + if (collection.parent_id) { + // Try to fetch the parent... + const parent = await Collection.find(collection.parent_id) + // If found, return it wrapped in an array; if not found, return null (or empty array if you prefer) + return parent ? [parent] : null + } + return [] + })() + + // Return the selected collection along with its narrower and broader concepts in JSON format + return response.json({ + selectedCollection: collection, + narrowerCollections, + broaderCollection, + }); + } +} diff --git a/app/Controllers/Http/Auth/AuthController.ts b/app/Controllers/Http/Auth/AuthController.ts index 8d16f3b..08b1c05 100644 --- a/app/Controllers/Http/Auth/AuthController.ts +++ b/app/Controllers/Http/Auth/AuthController.ts @@ -1,40 +1,131 @@ -import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; -// import User from 'App/Models/User'; +import type { HttpContext } from '@adonisjs/core/http'; +import User from '#models/user'; +import BackupCode from '#models/backup_code'; // import Hash from '@ioc:Adonis/Core/Hash'; // import InvalidCredentialException from 'App/Exceptions/InvalidCredentialException'; -import AuthValidator from 'App/Validators/AuthValidator'; +import { authValidator } from '#validators/auth'; +import hash from '@adonisjs/core/services/hash'; +import db from '@adonisjs/lucid/services/db'; +import TwoFactorAuthProvider from '#app/services/TwoFactorAuthProvider'; +// import { Authenticator } from '@adonisjs/auth'; +// import { LoginState } from 'Contracts/enums'; +// import { StatusCodes } from 'http-status-codes'; +// interface MyHttpsContext extends HttpContext { +// auth: Authenticator +// } export default class AuthController { - // login function - public async login({ request, response, auth, session }: HttpContextContract) { + // login function{ request, auth, response }:HttpContext + public async login({ request, response, auth, session }: HttpContext) { // console.log({ // registerBody: request.body(), // }); - await request.validate(AuthValidator); + // await request.validate(AuthValidator); + await request.validateUsing(authValidator); - const plainPassword = await request.input('password'); - const email = await request.input('email'); + // const plainPassword = await request.input('password'); + // const email = await request.input('email'); // grab uid and password values off request body - // const { email, password } = request.only(['email', 'password']) + const { email, password } = request.only(['email', 'password']); try { - // attempt to login - await auth.use('web').attempt(email, plainPassword); + + await db.connection().rawQuery('SELECT 1') + + + // // attempt to verify credential and login user + // await auth.use('web').attempt(email, plainPassword); + + // const user = await auth.use('web').verifyCredentials(email, password); + const user = await User.verifyCredentials(email, password); + + if (user.isTwoFactorEnabled) { + // session.put("login.id", user.id); + // return view.render("pages/two-factor-challenge"); + + session.flash('user_id', user.id); + return response.redirect().back(); + + // let state = LoginState.STATE_VALIDATED; + // return response.status(StatusCodes.OK).json({ + // state: state, + // new_user_id: user.id, + // }); + } + + await auth.use('web').login(user); } catch (error) { + if (error.code === 'ECONNREFUSED') { + throw error + } // if login fails, return vague form message and redirect back session.flash('message', 'Your username, email, or password is incorrect'); return response.redirect().back(); } // otherwise, redirect todashboard - response.redirect('/dashboard'); + response.redirect('/apps/dashboard'); + } + + public async twoFactorChallenge({ request, session, auth, response }: HttpContext) { + const { code, backup_code, login_id } = request.only(['code', 'backup_code', 'login_id']); + const user = await User.query().where('id', login_id).firstOrFail(); + + if (code) { + const isValid = await TwoFactorAuthProvider.validate(user, code); + if (isValid) { + // login user and redirect to dashboard + await auth.use('web').login(user); + response.redirect('/apps/dashboard'); + } else { + session.flash('message', 'Your two-factor code is incorrect'); + return response.redirect().back(); + } + } else if (backup_code) { + const codes: BackupCode[] = await user.getBackupCodes(); + + // const verifiedBackupCodes = await Promise.all( + // codes.map(async (backupCode) => { + // let isVerified = await hash.verify(backupCode.code, backup_code); + // if (isVerified) { + // return backupCode; + // } + // }), + // ); + // const backupCodeToDelete = verifiedBackupCodes.find(Boolean); + + let backupCodeToDelete = null; + for (const backupCode of codes) { + const isVerified = await hash.verify(backupCode.code, backup_code); + if (isVerified) { + backupCodeToDelete = backupCode; + break; + } + } + + if (backupCodeToDelete) { + if (backupCodeToDelete.used === false) { + backupCodeToDelete.used = true; + await backupCodeToDelete.save(); + console.log(`BackupCode with id ${backupCodeToDelete.id} has been marked as used.`); + await auth.use('web').login(user); + response.redirect('/apps/dashboard'); + } else { + session.flash('message', 'BackupCode already used'); + return response.redirect().back(); + } + } else { + session.flash('message', 'BackupCode not found'); + return response.redirect().back(); + } + } } // logout function - public async logout({ auth, response }: HttpContextContract) { + public async logout({ auth, response }: HttpContext) { // await auth.logout(); await auth.use('web').logout(); - response.redirect('/app/login'); + return response.redirect('/app/login'); // return response.status(200); } } diff --git a/app/Controllers/Http/Auth/UserController.ts b/app/Controllers/Http/Auth/UserController.ts new file mode 100644 index 0000000..46a8d48 --- /dev/null +++ b/app/Controllers/Http/Auth/UserController.ts @@ -0,0 +1,306 @@ +import type { HttpContext } from '@adonisjs/core/http'; +import User from '#models/user'; +// import { RenderResponse } from '@ioc:EidelLev/Inertia'; +import TwoFactorAuthProvider from '#app/services/TwoFactorAuthProvider'; +import hash from '@adonisjs/core/services/hash'; +// import { schema, rules } from '@adonisjs/validator'; +import vine from '@vinejs/vine'; +import BackupCodeStorage, { SecureRandom } from '#services/backup_code_storage'; +import path from 'path'; +import crypto from 'crypto'; +// import drive from '#services/drive'; +import drive from '@adonisjs/drive/services/main'; +import logger from '@adonisjs/core/services/logger'; + +// Here we are generating secret and recovery codes for the user that’s enabling 2FA and storing them to our database. +export default class UserController { + /** + * Show the user a form to change their personal information & password. + * + * @return — \Inertia\Response + */ + public async accountInfo({ inertia, auth }: HttpContext) { + // const user = auth.user; + const user = (await User.find(auth.user?.id)) as User; + // const id = request.param('id'); + // const user = await User.query().where('id', id).firstOrFail(); + + let storage = new BackupCodeStorage(new SecureRandom()); + // const codes= user.isTwoFactorEnabled? (await user.getBackupCodes()).map((role) => role.code) : []; + let backupState = await storage.getBackupCodesState(user); + + return inertia.render('Auth/AccountInfo', { + user: user, + twoFactorEnabled: user.isTwoFactorEnabled, + // code: await TwoFactorAuthProvider.generateQrCode(user), + backupState: backupState, + }); + } + + public async accountInfoStore({ auth, request, response, session }: HttpContext) { + // const passwordSchema = schema.create({ + // old_password: schema.string({ trim: true }, [rules.required()]), + // new_password: schema.string({ trim: true }, [rules.minLength(8), rules.maxLength(255), rules.confirmed('confirm_password')]), + // confirm_password: schema.string({ trim: true }, [rules.required()]), + // }); + const passwordSchema = vine.object({ + // first step + old_password: vine.string().trim(), + // .regex(/^[a-zA-Z0-9]+$/), + new_password: vine.string().confirmed({ confirmationField: 'confirm_password' }).trim().minLength(8).maxLength(255), + }); + try { + // await request.validate({ schema: passwordSchema }); + const validator = vine.compile(passwordSchema); + await request.validateUsing(validator); + } catch (error) { + // return response.badRequest(error.messages); + throw error; + } + + try { + const user = (await auth.user) as User; + const { old_password, new_password } = request.only(['old_password', 'new_password']); + + // if (!(old_password && new_password && confirm_password)) { + // return response.status(400).send({ warning: 'Old password and new password are required.' }); + // } + + // Verify if the provided old password matches the user's current password + const isSame = await hash.verify(user.password, old_password); + if (!isSame) { + return response.flash('warning', 'Old password is incorrect.').redirect().back(); + } + + // Hash the new password before updating the user's password + user.password = new_password; + await user.save(); + + // return response.status(200).send({ message: 'Password updated successfully.' }); + session.flash({ message: 'Password updated successfully.' }); + return response.redirect().toRoute('settings.user'); + } catch (error) { + // return response.status(500).send({ message: 'Internal server error.' }); + return response.flash('warning', `Invalid server state. Internal server error.`).redirect().back(); + } + } + + public async profile({ inertia, auth }: HttpContext) { + const user = await User.find(auth.user?.id); + // let test = await drive.use().getUrl(user?.avatar); + // user?.preload('roles'); + const avatarFullPathUrl = user?.avatar ? await drive.use('public').getUrl(user.avatar) : null; + return inertia.render('profile/show', { + user: user, + defaultUrl: avatarFullPathUrl, + }); + } + + /** + * Update the user's profile information. + * + * @param {HttpContext} ctx - The HTTP context object. + * @returns {Promise} + */ + public async profileUpdate({ auth, request, response, session }: HttpContext) { + if (!auth.user) { + session.flash('error', 'You must be logged in to update your profile.'); + return response.redirect().toRoute('login'); + } + + const updateProfileValidator = vine.withMetaData<{ userId: number }>().compile( + vine.object({ + first_name: vine.string().trim().minLength(4).maxLength(255), + last_name: vine.string().trim().minLength(4).maxLength(255), + login: vine.string().trim().minLength(4).maxLength(255), + email: vine + .string() + .trim() + .maxLength(255) + .email() + .normalizeEmail() + .isUnique({ table: 'accounts', column: 'email', whereNot: (field) => field.meta.userId }), + avatar: vine + .myfile({ + size: '2mb', + extnames: ['jpg', 'jpeg', 'png', 'gif', 'webp', 'svg'], + }) + // .allowedMimetypeExtensions({ + // allowedExtensions: ['jpg', 'jpeg', 'png', 'gif', 'webp', 'svg'], + // }) + .optional(), + }), + ); + + const user = await User.find(auth.user.id); + if (!user) { + session.flash('error', 'User not found.'); + return response.redirect().toRoute('login'); + } + + try { + // validate update form + await request.validateUsing(updateProfileValidator, { + meta: { + userId: user.id, + }, + }); + + const { login, email, first_name, last_name } = request.only(['login', 'email', 'first_name', 'last_name']); + const sanitizedData: { [key: string]: any } = { + login: login?.trim(), + email: email?.toLowerCase().trim(), + first_name: first_name?.trim(), + last_name: last_name?.trim(), + // avatar: "", + }; + const toCamelCase = (str: string) => str.replace(/_([a-z])/g, (g) => g[1].toUpperCase()); + const hasInputChanges = Object.keys(sanitizedData).some((key) => { + const camelKey = toCamelCase(key); + return sanitizedData[key] !== (user.$attributes as { [key: string]: any })[camelKey]; + }); + + let hasAvatarChanged = false; + const avatar = request.file('avatar'); + if (avatar) { + const fileHash = crypto + .createHash('sha256') + .update(avatar.clientName + avatar.size) + .digest('hex'); + const fileName = `avatar-${fileHash}.${avatar.extname}`; + const avatarFullPath = path.join('/uploads', `${user.login}`, fileName); + + if (user.avatar != avatarFullPath) { + if (user.avatar) { + await drive.use('public').delete(user.avatar); + } + hasAvatarChanged = user.avatar !== avatarFullPath; + await avatar.moveToDisk(avatarFullPath, 'public', { + name: fileName, + overwrite: true, // overwrite in case of conflict + disk: 'public', + }); + sanitizedData.avatar = avatarFullPath; + } + } + + if (!hasInputChanges && !hasAvatarChanged) { + session.flash('message', 'No changes were made.'); + return response.redirect().back(); + } + + await user.merge(sanitizedData).save(); + session.flash('message', 'User has been updated successfully'); + return response.redirect().toRoute('settings.profile.edit'); + } catch (error) { + logger.error('Profile update failed:', error); + // session.flash('errors', 'Profile update failed. Please try again.'); + // return response.redirect().back(); + throw error; + } + } + + public async passwordUpdate({ auth, request, response, session }: HttpContext) { + // const passwordSchema = schema.create({ + // old_password: schema.string({ trim: true }, [rules.required()]), + // new_password: schema.string({ trim: true }, [rules.minLength(8), rules.maxLength(255), rules.confirmed('confirm_password')]), + // confirm_password: schema.string({ trim: true }, [rules.required()]), + // }); + const passwordSchema = vine.object({ + // first step + old_password: vine.string().trim(), + // .regex(/^[a-zA-Z0-9]+$/), + new_password: vine.string().confirmed({ confirmationField: 'confirm_password' }).trim().minLength(8).maxLength(255), + }); + try { + // await request.validate({ schema: passwordSchema }); + const validator = vine.compile(passwordSchema); + await request.validateUsing(validator); + } catch (error) { + // return response.badRequest(error.messages); + throw error; + } + + try { + const user = (await auth.user) as User; + const { old_password, new_password } = request.only(['old_password', 'new_password']); + + // if (!(old_password && new_password && confirm_password)) { + // return response.status(400).send({ warning: 'Old password and new password are required.' }); + // } + + // Verify if the provided old password matches the user's current password + const isSame = await hash.verify(user.password, old_password); + if (!isSame) { + session.flash('warning', 'Old password is incorrect.'); + return response.redirect().back(); + // return response.flash('warning', 'Old password is incorrect.').redirect().back(); + } + + // Hash the new password before updating the user's password + user.password = new_password; + await user.save(); + + // return response.status(200).send({ message: 'Password updated successfully.' }); + session.flash({ message: 'Password updated successfully.' }); + return response.redirect().toRoute('settings.profile.edit'); + } catch (error) { + // return response.status(500).send({ message: 'Internal server error.' }); + return response.flash('warning', `Invalid server state. Internal server error.`).redirect().back(); + } + } + + public async enableTwoFactorAuthentication({ auth, response, session }: HttpContext): Promise { + // const user: User | undefined = auth?.user; + const user = (await User.find(auth.user?.id)) as User; + + user.twoFactorSecret = TwoFactorAuthProvider.generateSecret(user); + user.twoFactorRecoveryCodes = await TwoFactorAuthProvider.generateRecoveryCodes(); + await user.save(); + + session.flash('message', 'Two factor authentication enabled.'); + return response.redirect().back(); + // return inertia.render('Auth/AccountInfo', { + // // status: { + // // type: 'success', + // // message: 'Two factor authentication enabled.', + // // }, + // user: user, + // twoFactorEnabled: user.isTwoFactorEnabled, + // code: await TwoFactorAuthProvider.generateQrCode(user), + // recoveryCodes: user.twoFactorRecoveryCodes, + // }); + } + + public async disableTwoFactorAuthentication({ auth, response, session }: HttpContext): Promise { + const user: User | undefined = auth.user; + + if (user) { + user.twoFactorSecret = null; + user.twoFactorRecoveryCodes = null; + await user.save(); + session.flash('message', 'Two-factor authentication disabled.'); + } else { + session.flash('error', 'User not found.'); + } + + return response.redirect().back(); + // return inertia.render('Auth/AccountInfo', { + // // status: { + // // type: 'success', + // // message: 'Two factor authentication disabled.', + // // }, + // user: user, + // twoFactorEnabled: user.isTwoFactorEnabled, + // }); + } + + // public async fetchRecoveryCodes({ auth, view }) { + // const user = auth?.user; + + // return view.render('pages/settings', { + // twoFactorEnabled: user.isTwoFactorEnabled, + // recoveryCodes: user.twoFactorRecoveryCodes, + // }); + // } +} diff --git a/app/Controllers/Http/Editor/DatasetController.ts b/app/Controllers/Http/Editor/DatasetController.ts new file mode 100644 index 0000000..5ec3910 --- /dev/null +++ b/app/Controllers/Http/Editor/DatasetController.ts @@ -0,0 +1,1154 @@ +import type { HttpContext } from '@adonisjs/core/http'; +import { Client } from '@opensearch-project/opensearch'; +import User from '#models/user'; +import Dataset from '#models/dataset'; +import DatasetIdentifier from '#models/dataset_identifier'; +import XmlModel from '#app/Library/XmlModel'; +import { XMLBuilder } from 'xmlbuilder2/lib/interfaces.js'; +import { create } from 'xmlbuilder2'; +import { readFileSync } from 'fs'; +import SaxonJS from 'saxon-js'; +import { DateTime } from 'luxon'; +import Index from '#app/Library/Utils/Index'; +import { getDomain } from '#app/utils/utility-functions'; +import { DoiClient } from '#app/Library/Doi/DoiClient'; +import DoiClientException from '#app/exceptions/DoiClientException'; +import logger from '@adonisjs/core/services/logger'; +import { HttpException } from 'node-exceptions'; +import { ModelQueryBuilderContract } from '@adonisjs/lucid/types/model'; +import vine, { SimpleMessagesProvider } from '@vinejs/vine'; +import mail from '@adonisjs/mail/services/main'; +import { validate } from 'deep-email-validator'; +import { + TitleTypes, + DescriptionTypes, + ContributorTypes, + PersonNameTypes, + ReferenceIdentifierTypes, + RelationTypes, + SubjectTypes, + DatasetTypes, +} from '#contracts/enums'; +import { TransactionClientContract } from '@adonisjs/lucid/types/database'; +import db from '@adonisjs/lucid/services/db'; +import Project from '#models/project'; +import License from '#models/license'; +import Language from '#models/language'; +import File from '#models/file'; +import Coverage from '#models/coverage'; +import Title from '#models/title'; +import Description from '#models/description'; +import Subject from '#models/subject'; +import DatasetReference from '#models/dataset_reference'; +import Collection from '#models/collection'; +import CollectionRole from '#models/collection_role'; +import { updateEditorDatasetValidator } from '#validators/dataset'; +import { savePersons } from '#app/utils/utility-functions'; + +// Create a new instance of the client +const client = new Client({ node: 'http://localhost:9200' }); // replace with your OpenSearch endpoint + +export default class DatasetsController { + private proc; + public messages = { + // 'required': '{{ field }} is required', + // 'licenses.minLength': 'at least {{ options.minLength }} permission must be defined', + 'reviewer_id.required': 'reviewer_id must be defined', + 'publisher_name.required': 'publisher name must be defined', + }; + + constructor() { + this.proc = readFileSync('public/assets2/solr.sef.json'); + // Load the XSLT file + // this.proc = readFileSync('public/assets2/datasetxml2oai.sef.json'); + } + + // public async index({}: HttpContextContract) {} + public async index({ auth, request, inertia }: HttpContext) { + const user = (await User.find(auth.user?.id)) as User; + const page = request.input('page', 1); + let datasets: ModelQueryBuilderContract = Dataset.query(); + + // if (request.input('search')) { + // // users = users.whereRaw('name like %?%', [request.input('search')]) + // const searchTerm = request.input('search'); + // datasets.where('name', 'ilike', `%${searchTerm}%`); + // } + + if (request.input('sort')) { + type SortOrder = 'asc' | 'desc' | undefined; + let attribute = request.input('sort'); + let sortOrder: SortOrder = 'asc'; + + if (attribute.substr(0, 1) === '-') { + sortOrder = 'desc'; + // attribute = substr(attribute, 1); + attribute = attribute.substr(1); + } + datasets.orderBy(attribute, sortOrder); + } else { + // datasets.orderBy('id', 'asc'); + // Custom ordering to prioritize rejected_editor state + datasets.orderByRaw(` + CASE + WHEN server_state = 'rejected_reviewer' THEN 0 + ELSE 1 + END ASC, + id ASC + `); + } + + // const users = await User.query().orderBy('login').paginate(page, limit); + const myDatasets = await datasets + .where('server_state', 'released') + .orWhere((dQuery) => { + dQuery + .whereIn('server_state', ['editor_accepted', 'rejected_reviewer', 'reviewed', 'published']) + .where('editor_id', user.id) + .doesntHave('identifier', 'and'); + }) + // .preload('identifier') + .preload('titles') + .preload('user', (query) => query.select('id', 'login')) + .preload('editor', (query) => query.select('id', 'login')) + .paginate(page, 10); + + return inertia.render('Editor/Dataset/Index', { + datasets: myDatasets.serialize(), + filters: request.all(), + can: { + receive: await auth.user?.can(['dataset-receive']), + approve: await auth.user?.can(['dataset-approve']), + reject: await auth.user?.can(['dataset-editor-reject']), + edit: await auth.user?.can(['dataset-editor-update']), + delete: await auth.user?.can(['dataset-editor-delete']), + publish: await auth.user?.can(['dataset-publish']), + }, + }); + } + + public async receive({ request, inertia, response }: HttpContext) { + const id = request.param('id'); + const dataset = await Dataset.query() + .where('id', id) + .preload('titles') + .preload('descriptions') + .preload('user', (builder) => { + builder.select('id', 'login'); + }) + + .firstOrFail(); + + const validStates = ['released']; + if (!validStates.includes(dataset.server_state)) { + // session.flash('errors', 'Invalid server state!'); + return response + .flash( + 'warning', + `Invalid server state. Dataset with id ${id} cannot be received. Datset has server state ${dataset.server_state}.`, + ) + .redirect() + .back(); + } + + return inertia.render('Editor/Dataset/Receive', { + dataset, + }); + } + + public async receiveUpdate({ auth, request, response }: HttpContext) { + const id = request.param('id'); + // const { id } = params; + const dataset = await Dataset.findOrFail(id); + + const validStates = ['released']; + if (!validStates.includes(dataset.server_state)) { + // throw new Error('Invalid server state!'); + // return response.flash('warning', 'Invalid server state. Dataset cannot be released to editor').redirect().back(); + return response + .flash( + 'warning', + `Invalid server state. Dataset with id ${id} cannot be received by editor. Datset has server state ${dataset.server_state}.`, + ) + .redirect() + .toRoute('editor.dataset.list'); + } + + dataset.server_state = 'editor_accepted'; + const user = (await User.find(auth.user?.id)) as User; + // dataset.editor().associate(user).save(); + try { + await dataset.related('editor').associate(user); // speichert schon ab + // await dataset.save(); + return response.toRoute('editor.dataset.list').flash(`You have accepted dataset ${dataset.id}!`, 'message'); + } catch (error) { + // Handle any errors + console.error(error); + return response.status(500).json({ error: 'An error occurred while accepting the data.' }); + } + } + + public async approve({ request, inertia, response }: HttpContext) { + const id = request.param('id'); + // $dataset = Dataset::with('user:id,login')->findOrFail($id); + const dataset = await Dataset.findOrFail(id); + + const validStates = ['editor_accepted', 'rejected_reviewer']; + if (!validStates.includes(dataset.server_state)) { + // session.flash('errors', 'Invalid server state!'); + return response + .flash( + 'warning', + `Invalid server state. Dataset with id ${id} cannot be approved. Datset has server state ${dataset.server_state}.`, + ) + .redirect() + .back(); + } + + const reviewers = await User.query() + .whereHas('roles', (builder) => { + builder.where('name', 'reviewer'); + }) + .pluck('login', 'id'); + + return inertia.render('Editor/Dataset/Approve', { + dataset, + reviewers, + }); + } + + public async approveUpdate({ request, response }: HttpContext) { + const approveDatasetSchema = vine.object({ + reviewer_id: vine.number(), + }); + try { + // await request.validate({ schema: approveDatasetSchema, messages: this.messages }); + const validator = vine.compile(approveDatasetSchema); + await request.validateUsing(validator, { messagesProvider: new SimpleMessagesProvider(this.messages) }); + } catch (error) { + // return response.badRequest(error.messages); + throw error; + } + const id = request.param('id'); + const dataset = await Dataset.findOrFail(id); + + const validStates = ['editor_accepted', 'rejected_reviewer']; + if (!validStates.includes(dataset.server_state)) { + // session.flash('errors', 'Invalid server state!'); + return response + .flash( + 'warning', + `Invalid server state. Dataset with id ${id} cannot be approved. Datset has server state ${dataset.server_state}.`, + ) + .redirect() + .back(); + } + + dataset.server_state = 'approved'; + if (dataset.reject_reviewer_note != null) { + dataset.reject_reviewer_note = null; + } + if (dataset.reject_editor_note != null) { + dataset.reject_editor_note = null; + } + + + //save main and additional titles + const reviewer_id = request.input('reviewer_id', null); + dataset.reviewer_id = reviewer_id; + + if (await dataset.save()) { + return response.toRoute('editor.dataset.list').flash('message', 'You have approved one dataset!'); + } + } + + public async reject({ request, inertia, response }: HttpContext) { + const id = request.param('id'); + const dataset = await Dataset.query() + .where('id', id) + // .preload('titles') + // .preload('descriptions') + .preload('user', (builder) => { + builder.select('id', 'login', 'email'); + }) + .firstOrFail(); + + const validStates = ['editor_accepted', 'rejected_reviewer']; + if (!validStates.includes(dataset.server_state)) { + // session.flash('errors', 'Invalid server state!'); + return response + .flash( + 'warning', + `Invalid server state. Dataset with id ${id} cannot be rejected. Datset has server state ${dataset.server_state}.`, + ) + .redirect() + .toRoute('editor.dataset.list'); + } + + return inertia.render('Editor/Dataset/Reject', { + dataset, + }); + } + + + + public async rejectUpdate({ request, response, auth }: HttpContext) { + const authUser = auth.user!; + + const id = request.param('id'); + const dataset = await Dataset.query() + .where('id', id) + .preload('user', (builder) => { + builder.select('id', 'login', 'email'); + }) + .firstOrFail(); + + const newSchema = vine.object({ + server_state: vine.string().trim(), + reject_editor_note: vine.string().trim().minLength(10).maxLength(500), + send_mail: vine.boolean().optional(), + }); + + try { + // await request.validate({ schema: newSchema }); + const validator = vine.compile(newSchema); + await request.validateUsing(validator); + } catch (error) { + // return response.badRequest(error.messages); + throw error; + } + + const validStates = ['editor_accepted', 'rejected_reviewer']; + if (!validStates.includes(dataset.server_state)) { + // throw new Error('Invalid server state!'); + // return response.flash('warning', 'Invalid server state. Dataset cannot be released to editor').redirect().back(); + return response + .flash( + `Invalid server state. Dataset with id ${id} cannot be rejected. Datset has server state ${dataset.server_state}.`, + 'warning', + ) + .redirect() + .toRoute('editor.dataset.list'); + } + + dataset.server_state = 'rejected_editor'; + const rejectEditorNote = request.input('reject_editor_note', ''); + dataset.reject_editor_note = rejectEditorNote; + + // add logic for sending reject message + const sendMail = request.input('send_email', false); + // const validRecipientEmail = await this.checkEmailDomain('arno.kaimbacher@outlook.at'); + const validationResult = await validate({ + email: dataset.user.email, + validateSMTP: false, + }); + const validRecipientEmail: boolean = validationResult.valid; + + let emailStatusMessage = ''; + + if (sendMail == true) { + if (dataset.user.email && validRecipientEmail) { + try { + await mail.send((message) => { + message.to(dataset.user.email).subject('Dataset Rejection Notification').html(` +

Dear ${dataset.user.login},

+

Your dataset with ID ${dataset.id} has been rejected.

+

Reason for rejection: ${rejectEditorNote}

+

Best regards,
Your Tethys editor: ${authUser.login}

+ `); + }); + emailStatusMessage = ` A rejection email was successfully sent to ${dataset.user.email}.`; + } catch (error) { + logger.error(error); + return response + .flash('Dataset has not been rejected due to an email error: ' + error.message, 'error') + .toRoute('editor.dataset.list'); + } + } else { + emailStatusMessage = ` However, the email could not be sent because the submitter's email address (${dataset.user.email}) is not valid.`; + } + } + + await dataset.save(); + return response + .flash( + `You have successfully rejected dataset ${dataset.id} submitted by ${dataset.user.login}.${emailStatusMessage}`, + 'message', + ) + .toRoute('editor.dataset.list'); + } + + public async publish({ request, inertia, response, auth }: HttpContext) { + const id = request.param('id'); + + const dataset = await Dataset.query() + .where('id', id) + .preload('titles') + .preload('authors') + // .preload('persons', (builder) => { + // builder.wherePivot('role', 'author') + // }) + .firstOrFail(); + + const validStates = ['reviewed']; + if (!validStates.includes(dataset.server_state)) { + // session.flash('errors', 'Invalid server state!'); + return response + .flash( + 'warning', + `Invalid server state. Dataset with id ${id} cannot be published. Datset has server state ${dataset.server_state}.`, + ) + .redirect() + .back(); + } + + + + return inertia.render('Editor/Dataset/Publish', { + dataset, + can: { + reject: await auth.user?.can(['dataset-editor-reject']), + publish: await auth.user?.can(['dataset-publish']), + }, + }); + } + + public async publishUpdate({ request, response }: HttpContext) { + const publishDatasetSchema = vine.object({ + publisher_name: vine.string().trim(), + }); + try { + // await request.validate({ schema: publishDatasetSchema, messages: this.messages }); + const validator = vine.compile(publishDatasetSchema); + await request.validateUsing(validator, { messagesProvider: new SimpleMessagesProvider(this.messages) }); + } catch (error) { + throw error; + } + const id = request.param('id'); + const dataset = await Dataset.findOrFail(id); + + // let test = await Dataset.getMax('publish_id'); + // const maxPublishId = await Database.from('documents').max('publish_id as max_publish_id').first(); + // const max = maxPublishId.max_publish_id; + const max = await Dataset.getMax('publish_id'); + let publish_id = 0; + if (max != null) { + publish_id = max + 1; + } else { + publish_id = publish_id + 1; + } + dataset.publish_id = publish_id; + dataset.server_state = 'published'; + dataset.server_date_published = DateTime.now(); + + const publisherName = request.input('publisher_name', 'Tethys'); + dataset.publisher_name = publisherName; + + if (await dataset.save()) { + const index_name = 'tethys-records'; + await Index.indexDocument(dataset, index_name); + return response.toRoute('editor.dataset.list').flash('message', 'You have successfully published the dataset!'); + } + } + + public async rejectToReviewer({ request, inertia, response }: HttpContext) { + const id = request.param('id'); + const dataset = await Dataset.query() + .where('id', id) + .preload('reviewer', (builder) => { + builder.select('id', 'login', 'email'); + }) + .firstOrFail(); + + const validStates = ['reviewed']; + if (!validStates.includes(dataset.server_state)) { + // session.flash('errors', 'Invalid server state!'); + return response + .flash( + 'warning', + `Invalid server state. Dataset with id ${id} cannot be rejected to the reviewer. Datset has server state ${dataset.server_state}.`, + ) + .redirect() + .toRoute('editor.dataset.list'); + } + + return inertia.render('Editor/Dataset/RejectToReviewer', { + dataset, + }); + } + + public async rejectToReviewerUpdate({ request, response, auth }: HttpContext) { + const authUser = auth.user!; + + const id = request.param('id'); + const dataset = await Dataset.query() + .where('id', id) + .preload('reviewer', (builder) => { + builder.select('id', 'login', 'email'); + }) + .firstOrFail(); + + const newSchema = vine.object({ + server_state: vine.string().trim(), + reject_editor_note: vine.string().trim().minLength(10).maxLength(500), + send_mail: vine.boolean().optional(), + }); + + try { + // await request.validate({ schema: newSchema }); + const validator = vine.compile(newSchema); + await request.validateUsing(validator); + } catch (error) { + // return response.badRequest(error.messages); + throw error; + } + + const validStates = ['reviewed']; + if (!validStates.includes(dataset.server_state)) { + // throw new Error('Invalid server state!'); + // return response.flash('warning', 'Invalid server state. Dataset cannot be released to editor').redirect().back(); + return response + .flash( + `Invalid server state. Dataset with id ${id} cannot be rejected to reviewer. Datset has server state ${dataset.server_state}.`, + 'warning', + ) + .redirect() + .toRoute('editor.dataset.list'); + } + + dataset.server_state = 'rejected_to_reviewer'; + const rejectEditorNote = request.input('reject_editor_note', ''); + dataset.reject_editor_note = rejectEditorNote; + + // add logic for sending reject message + const sendMail = request.input('send_email', false); + // const validRecipientEmail = await this.checkEmailDomain('arno.kaimbacher@outlook.at'); + const validationResult = await validate({ + email: dataset.reviewer.email, + validateSMTP: false, + }); + const validRecipientEmail: boolean = validationResult.valid; + + await dataset.save(); + + let emailStatusMessage = ''; + if (sendMail == true) { + if (dataset.reviewer.email && validRecipientEmail) { + try { + await mail.send((message) => { + message.to(dataset.reviewer.email).subject('Dataset Rejection Notification').html(` +

Dear ${dataset.reviewer.login},

+

Your dataset with ID ${dataset.id} has been rejected.

+

Reason for rejection: ${rejectEditorNote}

+

Best regards,
Your Tethys editor: ${authUser.login}

+ `); + }); + emailStatusMessage = ` A rejection email was successfully sent to ${dataset.reviewer.email}.`; + } catch (error) { + logger.error(error); + return response + .flash('Dataset has not been rejected due to an email error: ' + error.message, 'error') + .toRoute('editor.dataset.list'); + } + } else { + emailStatusMessage = ` However, the email could not be sent because the submitter's email address (${dataset.reviewer.email}) is not valid.`; + } + } + + + return response + .flash( + `You have successfully rejected dataset ${dataset.id} reviewed by ${dataset.reviewer.login}.${emailStatusMessage}`, + 'message', + ) + .toRoute('editor.dataset.list'); + } + + public async doiCreate({ request, inertia }: HttpContext) { + const id = request.param('id'); + const dataset = await Dataset.query() + .where('id', id) + .preload('titles') + .preload('descriptions') + // .preload('identifier') + .preload('authors') + .firstOrFail(); + return inertia.render('Editor/Dataset/Doi', { + dataset, + }); + } + + public async doiStore({ request, response }: HttpContext) { + const dataId = request.param('publish_id'); + const dataset = await Dataset.query() + // .preload('xmlCache') + .where('publish_id', dataId) + .firstOrFail(); + const xmlMeta = (await Index.getDoiRegisterString(dataset)) as string; + + let prefix = ''; + let base_domain = ''; + // const datacite_environment = process.env.DATACITE_ENVIRONMENT || 'debug'; + prefix = process.env.DATACITE_PREFIX || ''; + base_domain = process.env.BASE_DOMAIN || ''; + + // register DOI: + const doiValue = prefix + '/tethys.' + dataset.publish_id; //'10.21388/tethys.213' + const landingPageUrl = 'https://doi.' + getDomain(base_domain) + '/' + prefix + '/tethys.' + dataset.publish_id; //https://doi.dev.tethys.at/10.21388/tethys.213 + const doiClient = new DoiClient(); + const dataciteResponse = await doiClient.registerDoi(doiValue, xmlMeta, landingPageUrl); + + if (dataciteResponse?.status === 201) { + // if response OK 201; save the Identifier value into db + const doiIdentifier = new DatasetIdentifier(); + doiIdentifier.value = doiValue; + doiIdentifier.dataset_id = dataset.id; + doiIdentifier.type = 'doi'; + doiIdentifier.status = 'findable'; + // save modified date of datset for re-caching model in db an update the search index + dataset.server_date_modified = DateTime.now(); + + // save updated dataset to db an index to OpenSearch + try { + await dataset.related('identifier').save(doiIdentifier); + const index_name = 'tethys-records'; + await Index.indexDocument(dataset, index_name); + } catch (error) { + logger.error(`${__filename}: Indexing document ${dataset.id} failed: ${error.message}`); + // Log the error or handle it as needed + throw new HttpException(error.message); + } + return response.toRoute('editor.dataset.list').flash('message', 'You have successfully created a DOI for the dataset!'); + } else { + const message = `Unexpected DataCite MDS response code ${dataciteResponse?.status}`; + // Log the error or handle it as needed + throw new DoiClientException(dataciteResponse?.status, message); + } + // return response.toRoute('editor.dataset.list').flash('message', xmlMeta); + } + + public async show({}: HttpContext) {} + + public async edit({ request, inertia, response }: HttpContext) { + const id = request.param('id'); + const datasetQuery = Dataset.query().where('id', id); + datasetQuery + .preload('titles', (query) => query.orderBy('id', 'asc')) + .preload('descriptions', (query) => query.orderBy('id', 'asc')) + .preload('coverage') + .preload('licenses') + .preload('authors', (query) => query.orderBy('pivot_sort_order', 'asc')) + .preload('contributors', (query) => query.orderBy('pivot_sort_order', 'asc')) + // .preload('subjects') + .preload('subjects', (builder) => { + builder.orderBy('id', 'asc').withCount('datasets'); + }) + .preload('references') + .preload('files', (query) => { + query.orderBy('sort_order', 'asc'); // Sort by sort_order column + }); + + const dataset = await datasetQuery.firstOrFail(); + const validStates = ['editor_accepted', 'rejected_reviewer']; + if (!validStates.includes(dataset.server_state)) { + // session.flash('errors', 'Invalid server state!'); + return response + .flash( + `Invalid server state. Dataset with id ${id} cannot be edited. Datset has server state ${dataset.server_state}.`, + 'warning', + ) + .toRoute('editor.dataset.list'); + } + + const titleTypes = Object.entries(TitleTypes) + .filter(([value]) => value !== 'Main') + .map(([key, value]) => ({ value: key, label: value })); + + const descriptionTypes = Object.entries(DescriptionTypes) + .filter(([value]) => value !== 'Abstract') + .map(([key, value]) => ({ value: key, label: value })); + + const languages = await Language.query().where('active', true).pluck('part1', 'part1'); + + // const contributorTypes = Config.get('enums.contributor_types'); + const contributorTypes = Object.entries(ContributorTypes).map(([key, value]) => ({ value: key, label: value })); + + // const nameTypes = Config.get('enums.name_types'); + const nameTypes = Object.entries(PersonNameTypes).map(([key, value]) => ({ value: key, label: value })); + + // const messages = await Database.table('messages') + // .pluck('help_text', 'metadata_element'); + + const projects = await Project.query().pluck('label', 'id'); + + const currentDate = new Date(); + const currentYear = currentDate.getFullYear(); + const years = Array.from({ length: currentYear - 1990 + 1 }, (_, index) => 1990 + index); + + const licenses = await License.query().select('id', 'name_long').where('active', 'true').pluck('name_long', 'id'); + // const userHasRoles = user.roles; + // const datasetHasLicenses = await dataset.related('licenses').query().pluck('id'); + // const checkeds = dataset.licenses.first().id; + + // const doctypes = { + // analysisdata: { label: 'Analysis', value: 'analysisdata' }, + // measurementdata: { label: 'Measurements', value: 'measurementdata' }, + // monitoring: 'Monitoring', + // remotesensing: 'Remote Sensing', + // gis: 'GIS', + // models: 'Models', + // mixedtype: 'Mixed Type', + // }; + + return inertia.render('Editor/Dataset/Edit', { + dataset, + titletypes: titleTypes, + descriptiontypes: descriptionTypes, + contributorTypes, + nameTypes, + languages, + // messages, + projects, + licenses, + // datasetHasLicenses: Object.keys(datasetHasLicenses).map((key) => datasetHasLicenses[key]), //convert object to array with license ids + // checkeds, + years, + // languages, + subjectTypes: SubjectTypes, + referenceIdentifierTypes: Object.entries(ReferenceIdentifierTypes).map(([key, value]) => ({ value: key, label: value })), + relationTypes: Object.entries(RelationTypes).map(([key, value]) => ({ value: key, label: value })), + doctypes: DatasetTypes, + }); + } + + public async update({ request, response, session }: HttpContext) { + // Get the dataset id from the route parameter + const datasetId = request.param('id'); + // Retrieve the dataset and load its existing files + const dataset = await Dataset.findOrFail(datasetId); + await dataset.load('files'); + + let trx: TransactionClientContract | null = null; + try { + await request.validateUsing(updateEditorDatasetValidator); + trx = await db.transaction(); + // const user = (await User.find(auth.user?.id)) as User; + // await this.createDatasetAndAssociations(user, request, trx); + const dataset = await Dataset.findOrFail(datasetId); + + // save the licenses + const licenses: number[] = request.input('licenses', []); + // await dataset.useTransaction(trx).related('licenses').sync(licenses); + await dataset.useTransaction(trx).related('licenses').sync(licenses); + + // save authors and contributors + await dataset.useTransaction(trx).related('authors').sync([]); + await dataset.useTransaction(trx).related('contributors').sync([]); + await savePersons(dataset, request.input('authors', []), 'author', trx); + await savePersons(dataset, request.input('contributors', []), 'contributor', trx); + + //save the titles: + const titles = request.input('titles', []); + // const savedTitles:Array = []; + for (const titleData of titles) { + if (titleData.id) { + const title = await Title.findOrFail(titleData.id); + title.value = titleData.value; + title.language = titleData.language; + title.type = titleData.type; + if (title.$isDirty) { + await title.useTransaction(trx).save(); + // await dataset.useTransaction(trx).related('titles').save(title); + // savedTitles.push(title); + } + } else { + const title = new Title(); + title.fill(titleData); + // savedTitles.push(title); + await dataset.useTransaction(trx).related('titles').save(title); + } + } + + // save the abstracts + const descriptions = request.input('descriptions', []); + // const savedTitles:Array<Title> = []; + for (const descriptionData of descriptions) { + if (descriptionData.id) { + const description = await Description.findOrFail(descriptionData.id); + description.value = descriptionData.value; + description.language = descriptionData.language; + description.type = descriptionData.type; + if (description.$isDirty) { + await description.useTransaction(trx).save(); + // await dataset.useTransaction(trx).related('titles').save(title); + // savedTitles.push(title); + } + } else { + const description = new Description(); + description.fill(descriptionData); + // savedTitles.push(title); + await dataset.useTransaction(trx).related('descriptions').save(description); + } + } + + // Process all subjects/keywords from the request + const subjects = request.input('subjects'); + for (const subjectData of subjects) { + // Case 1: Subject already exists in the database (has an ID) + if (subjectData.id) { + // Retrieve the existing subject + const existingSubject = await Subject.findOrFail(subjectData.id); + + // Update subject properties from the request data + existingSubject.value = subjectData.value; + existingSubject.type = subjectData.type; + existingSubject.external_key = subjectData.external_key; + + // Only save if there are actual changes + if (existingSubject.$isDirty) { + await existingSubject.save(); + } + + // Note: The relationship between dataset and subject is already established, + // so we don't need to attach it again + } + // Case 2: New subject being added (no ID) + else { + // Check if a subject with the same value and type already exists in the database + const subject = await Subject.firstOrNew({ value: subjectData.value, type: subjectData.type }, subjectData); + + if (subject.$isNew === true) { + // If it's a completely new subject, create and associate it with the dataset + await dataset.useTransaction(trx).related('subjects').save(subject); + } else { + // If the subject already exists, just create the relationship + await dataset.useTransaction(trx).related('subjects').attach([subject.id]); + } + } + } + + const subjectsToDelete = request.input('subjectsToDelete', []); + for (const subjectData of subjectsToDelete) { + if (subjectData.id) { + // const subject = await Subject.findOrFail(subjectData.id); + const subject = await Subject.query() + .where('id', subjectData.id) + .preload('datasets', (builder) => { + builder.orderBy('id', 'asc'); + }) + .withCount('datasets') + .firstOrFail(); + + // Check if the subject is used by multiple datasets + if (subject.$extras.datasets_count > 1) { + // If used by multiple datasets, just detach it from the current dataset + await dataset.useTransaction(trx).related('subjects').detach([subject.id]); + } else { + // If only used by this dataset, delete the subject completely + + await dataset.useTransaction(trx).related('subjects').detach([subject.id]); + await subject.useTransaction(trx).delete(); + } + } + } + + // Process references + const references = request.input('references', []); + // First, get existing references to determine which ones to update vs. create + const existingReferences = await dataset.related('references').query(); + const existingReferencesMap: Map<number, DatasetReference> = new Map(existingReferences.map((ref) => [ref.id, ref])); + + for (const referenceData of references) { + if (existingReferencesMap.has(referenceData.id) && referenceData.id) { + // Update existing reference + const reference = existingReferencesMap.get(referenceData.id); + if (reference) { + reference.merge(referenceData); + if (reference.$isDirty) { + await reference.useTransaction(trx).save(); + } + } + } else { + // Create new reference + const dataReference = new DatasetReference(); + dataReference.fill(referenceData); + await dataset.useTransaction(trx).related('references').save(dataReference); + } + } + + // Handle references to delete if provided + const referencesToDelete = request.input('referencesToDelete', []); + for (const referenceData of referencesToDelete) { + if (referenceData.id) { + const reference = await DatasetReference.findOrFail(referenceData.id); + await reference.useTransaction(trx).delete(); + } + } + + // save coverage + const coverageData = request.input('coverage'); + if (coverageData) { + if (coverageData.id) { + const coverage = await Coverage.findOrFail(coverageData.id); + coverage.merge(coverageData); + if (coverage.$isDirty) { + await coverage.useTransaction(trx).save(); + } + } + } + + const input = request.only(['project_id', 'embargo_date', 'language', 'type', 'creating_corporation']); + // dataset.type = request.input('type'); + dataset.merge(input); + // let test: boolean = dataset.$isDirty; + await dataset.useTransaction(trx).save(); + + await trx.commit(); + // console.log('Dataset has been updated successfully'); + + session.flash('message', 'Dataset has been updated successfully'); + // return response.redirect().toRoute('user.index'); + return response.redirect().toRoute('editor.dataset.edit', [dataset.id]); + } catch (error) { + if (trx !== null) { + await trx.rollback(); + } + console.error('Failed to update dataset and related models:', error); + // throw new ValidationException(true, { 'upload error': `failed to create dataset and related models. ${error}` }); + throw error; + } + } + + public async categorize({ inertia, request, response }: HttpContext) { + const id = request.param('id'); + // Preload dataset and its "collections" relation + const dataset = await Dataset.query().where('id', id).preload('collections').firstOrFail(); + const validStates = ['editor_accepted', 'rejected_reviewer']; + if (!validStates.includes(dataset.server_state)) { + // session.flash('errors', 'Invalid server state!'); + return response + .flash( + 'warning', + `Invalid server state. Dataset with id ${id} cannot be edited. Datset has server state ${dataset.server_state}.`, + ) + .redirect() + .toRoute('editor.dataset.list'); + } + + const collectionRoles = await CollectionRole.query() + .whereIn('name', ['ddc', 'ccs']) + .preload('collections', (coll: Collection) => { + // preloa only top level collection with noparent_id + coll.whereNull('parent_id').orderBy('number', 'asc'); + }) + .exec(); + + return inertia.render('Editor/Dataset/Category', { + collectionRoles: collectionRoles, + dataset: dataset, + relatedCollections: dataset.collections, + }); + } + + public async categorizeUpdate({ request, response, session }: HttpContext) { + // Get the dataset id from the route parameter + const id = request.param('id'); + const dataset = await Dataset.query().preload('files').where('id', id).firstOrFail(); + + const validStates = ['editor_accepted', 'rejected_reviewer']; + if (!validStates.includes(dataset.server_state)) { + return response + .flash( + 'warning', + `Invalid server state. Dataset with id ${id} cannot be categorized. Dataset has server state ${dataset.server_state}.`, + ) + .redirect() + .toRoute('editor.dataset.list'); + } + + let trx: TransactionClientContract | null = null; + try { + trx = await db.transaction(); + // const user = (await User.find(auth.user?.id)) as User; + // await this.createDatasetAndAssociations(user, request, trx); + + // Retrieve the selected collections from the request. + // This should be an array of collection ids. + const collections: number[] = request.input('collections', []); + + // Synchronize the dataset collections using the transaction. + await dataset.useTransaction(trx).related('collections').sync(collections); + + // Commit the transaction.await trx.commit() + await trx.commit(); + + // Redirect with a success flash message. + // return response.flash('success', 'Dataset collections updated successfully!').redirect().toRoute('dataset.list'); + + session.flash('message', 'Dataset collections updated successfully!'); + return response.redirect().toRoute('editor.dataset.list'); + } catch (error) { + if (trx !== null) { + await trx.rollback(); + } + console.error('Failed tocatgorize dataset collections:', error); + // throw new ValidationException(true, { 'upload error': `failed to create dataset and related models. ${error}` }); + throw error; + } + } + + // public async update({}: HttpContextContract) {} + public async updateOpensearch({ response }: HttpContext) { + const id = 273; //request.param('id'); + const dataset = await Dataset.query().preload('xmlCache').where('id', id).firstOrFail(); + // add xml elements + let xml = create({ version: '1.0', encoding: 'UTF-8', standalone: true }, '<root></root>'); + const datasetNode = xml.root().ele('Dataset'); + await this.createXmlRecord(dataset, datasetNode); + // const domNode = await this.getDatasetXmlDomNode(dataset); + // const xmlString = xml.end({ prettyPrint: true }); + + // const data = request.only(['field1', 'field2']); // get it from xslt + + // Create an index with non-default settings. + var index_name = 'tethys-features'; + + const xmlString = xml.end({ prettyPrint: false }); + let doc = ''; + try { + const result = await SaxonJS.transform({ + // stylesheetFileName: `${config.TMP_BASE_DIR}/data-quality/rules/iati.sef.json`, + stylesheetText: this.proc, + destination: 'serialized', + // sourceFileName: sourceFile, + sourceText: xmlString, + // stylesheetParams: xsltParameter, + // logLevel: 10, + }); + doc = result.principalResult; + } catch (error) { + return response.status(500).json({ + message: 'An error occurred while creating the user', + error: error.message, + }); + } + + // var settings = { + // settings: { + // index: { + // number_of_shards: 4, + // number_of_replicas: 3, + // }, + // }, + // }; + // var test = await client.indices.create({ + // index: index_name, + // body: settings, + // }); + + // var document = { + // title: 'Sample Document', + // authors: [ + // { + // first_name: 'John', + // last_name: 'Doe', + // }, + // { + // first_name: 'Jane', + // last_name: 'Smith', + // }, + // ], + // year: '2018', + // genre: 'Crime fiction', + // }; + + // http://localhost:9200/datastets/_doc/1 + + // var id = '1'; + + try { + // console.log(doc); + let document = JSON.parse(`${doc}`); + + // https://opensearch.org/docs/2.1/opensearch/supported-field-types/geo-shape/ + // Define the new document + // const document = { + // title: 'Your Document Name', + // id: dataset.publish_id, + // doctype: 'GIS', + // // "location" : { + // // "type" : "point", + // // "coordinates" : [74.00, 40.71] + // // }, + // geo_location: { + // type: 'linestring', + // coordinates: [ + // [-77.03653, 38.897676], + // [-77.009051, 38.889939], + // ], + // }, + // // geo_location: 'BBOX (71.0589, 74.0060, 42.3601, 40.7128)' + // // geo_location: { + // // type: 'envelope', + // // coordinates: [ + // // [13.0, 53.0], + // // [14.0, 52.0], + // // ], // Define your BBOX coordinates + // // }, + // }; + + // Update the document + var test = await client.index({ + id: dataset.publish_id?.toString(), + index: index_name, + body: document, + refresh: true, + }); + + // Return the result + return response.json(test.body); + } catch (error) { + // Handle any errors + console.error(error); + return response.status(500).json({ error: 'An error occurred while updating the data.' }); + } + } + + public async download({ params, response }: HttpContext) { + const id = params.id; + // Find the file by ID + const file = await File.findOrFail(id); + // const filePath = await drive.use('local').getUrl('/'+ file.filePath) + const filePath = file.filePath; + const fileExt = file.filePath.split('.').pop() || ''; + // Set the response headers and download the file + response.header('Content-Type', file.mime_type || 'application/octet-stream'); + response.attachment(`${file.label}.${fileExt}`); + return response.download(filePath); + } + + public async destroy({}: HttpContext) {} + + private async createXmlRecord(dataset: Dataset, datasetNode: XMLBuilder) { + const domNode = await this.getDatasetXmlDomNode(dataset); + if (domNode) { + datasetNode.import(domNode); + } + } + + private async getDatasetXmlDomNode(dataset: Dataset) { + const xmlModel = new XmlModel(dataset); + // xmlModel.setModel(dataset); + xmlModel.excludeEmptyFields(); + xmlModel.caching = true; + // const cache = dataset.xmlCache ? dataset.xmlCache : null; + // dataset.load('xmlCache'); + if (dataset.xmlCache) { + xmlModel.xmlCache = dataset.xmlCache; + } + + // return cache.getDomDocument(); + const domDocument: XMLBuilder | null = await xmlModel.getDomDocument(); + return domDocument; + } +} diff --git a/app/Controllers/Http/Editor/deleteDoiMetadata.xml b/app/Controllers/Http/Editor/deleteDoiMetadata.xml new file mode 100644 index 0000000..a286c64 --- /dev/null +++ b/app/Controllers/Http/Editor/deleteDoiMetadata.xml @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="utf-8"?> +<resource xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns="http://datacite.org/schema/kernel-4" + xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4.3/metadata.xsd"> + <identifier identifierType="DOI">10.21388/tethys.213</identifier> + <creators> + <creator> + <creatorName nameType="Personal">Moser, Michael</creatorName> + <givenName>Michael</givenName> + <familyName>Moser</familyName> + <affiliation>GBA</affiliation> + </creator> + </creators> + <titles> + <title xml:lang="en">rewerewr + + Tethys RDR + 2024 + + Aletshausen-Langenneufnach Störung + Wolfersberg-Moosach Störung + wefwef + + en + + + Jürgen Reitner + + + + 2023-11-30 + + 1 + Dataset + + https://www.tethys.at/dataset/213 + + + Creative Commons Attribution 4.0 International (CC BY 4.0) + Open Access + + + 1 datasets + + + image/png + + + rewrewr + + + + + 11.71142578125 + 14.414062500000002 + 46.58906908309185 + 47.45780853075031 + + + + \ No newline at end of file diff --git a/app/Controllers/Http/Oai/OaiController.ts b/app/Controllers/Http/Oai/OaiController.ts index 3629241..db49a32 100644 --- a/app/Controllers/Http/Oai/OaiController.ts +++ b/app/Controllers/Http/Oai/OaiController.ts @@ -1,16 +1,30 @@ -import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; -import { RequestContract } from '@ioc:Adonis/Core/Request'; -import { XMLBuilder } from 'xmlbuilder2/lib/interfaces'; +import type { HttpContext } from '@adonisjs/core/http'; +// import { RequestContract } from '@ioc:Adonis/Core/Request'; +import { Request } from '@adonisjs/core/http'; +import { XMLBuilder } from 'xmlbuilder2/lib/interfaces.js'; import { create } from 'xmlbuilder2'; import dayjs, { Dayjs } from 'dayjs'; -import utc from 'dayjs/plugin/utc'; -import timezone from 'dayjs/plugin/timezone'; +import utc from 'dayjs/plugin/utc.js'; +import timezone from 'dayjs/plugin/timezone.js'; import { readFileSync } from 'fs'; import { StatusCodes } from 'http-status-codes'; -import { transform } from 'saxon-js'; +import SaxonJS from 'saxon-js'; // import { Xslt, xmlParse } from 'xslt-processor' -import { OaiErrorCodes, OaiModelError } from 'App/Exceptions/OaiErrorCodes'; -import { OaiModelException } from 'App/Exceptions/OaiModelException'; +import { OaiErrorCodes, OaiModelError } from '#app/exceptions/OaiErrorCodes'; +import { OaiModelException, BadOaiModelException } from '#app/exceptions/OaiModelException'; +import Dataset from '#models/dataset'; +import Collection from '#models/collection'; +import { getDomain, preg_match } from '#app/utils/utility-functions'; +import XmlModel from '#app/Library/XmlModel'; +import logger from '@adonisjs/core/services/logger'; +import ResumptionToken from '#app/Library/Oai/ResumptionToken'; +// import Config from '@ioc:Adonis/Core/Config'; +import config from '@adonisjs/core/services/config'; +// import { inject } from '@adonisjs/fold'; +import { inject } from '@adonisjs/core'; +// import { TokenWorkerContract } from "MyApp/Models/TokenWorker"; +import TokenWorkerContract from '#library/Oai/TokenWorkerContract'; +import { ModelQueryBuilderContract } from '@adonisjs/lucid/types/model'; interface XslTParameter { [key: string]: any; @@ -20,10 +34,23 @@ interface Dictionary { [index: string]: string; } +interface PagingParameter { + cursor: number; + totalLength: number; + start: number; + nextDocIds: number[]; + activeWorkIds: number[]; + metadataPrefix: string; + queryParams: Object; +} + +@inject() export default class OaiController { - // private deliveringDocumentStates = ["published", "deleted"]; - // private sampleRegEx = /^[A-Za-zäüÄÜß0-9\-_.!~]+$/; + private deliveringDocumentStates = ['published', 'deleted']; + private sampleRegEx = /^[A-Za-zäüÄÜß0-9\-_.!~]+$/; private xsltParameter: XslTParameter; + + private firstPublishedDataset: Dataset | null; /** * Holds xml representation of document information to be processed. * @@ -32,23 +59,19 @@ export default class OaiController { private xml: XMLBuilder; private proc; - constructor() { + constructor(public tokenWorker: TokenWorkerContract) { // Load the XSLT file this.proc = readFileSync('public/assets2/datasetxml2oai.sef.json'); - // tests - // const xslPath = 'assets/datasetxml2oai-pmh.xslt'; // Replace with the actual path to your XSLT file - // this.proc = readFileSync(xslPath, 'utf-8'); - // this.configuration = new Configuration(); dayjs.extend(utc); dayjs.extend(timezone); } - public async index({ response, request }: HttpContextContract): Promise { + public async index({ response, request }: HttpContext): Promise { this.xml = create({ version: '1.0', encoding: 'UTF-8', standalone: true }, ''); // this.proc = new XSLTProcessor(); // const stylesheet = readFileSync(__dirname + "/datasetxml2oai.sef.json"); - const xsltParameter = (this.xsltParameter = {}); + const xsltParameter: XslTParameter = (this.xsltParameter = {}); let oaiRequest: Dictionary = {}; if (request.method() === 'POST') { @@ -59,9 +82,16 @@ export default class OaiController { xsltParameter['oai_error_code'] = 'unknown'; xsltParameter['oai_error_message'] = 'Only POST and GET methods are allowed for OAI-PMH.'; } + + let earliestDateFromDb; // const oaiRequest: OaiParameter = request.body; try { - this.handleRequest(oaiRequest, request); + this.firstPublishedDataset = await Dataset.earliestPublicationDate(); + this.firstPublishedDataset != null && + (earliestDateFromDb = this.firstPublishedDataset.server_date_published.toFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")); + this.xsltParameter['earliestDatestamp'] = earliestDateFromDb; + // start the request + await this.handleRequest(oaiRequest, request); } catch (error) { if (error instanceof OaiModelException) { const code = error.oaiCode; @@ -80,9 +110,9 @@ export default class OaiController { const xmlString = this.xml.end({ prettyPrint: true }); - let xmlOutput; + let xmlOutput; // = xmlString; try { - const result = await transform({ + const result = await SaxonJS.transform({ // stylesheetFileName: `${config.TMP_BASE_DIR}/data-quality/rules/iati.sef.json`, stylesheetText: this.proc, destination: 'serialized', @@ -106,7 +136,7 @@ export default class OaiController { response.status(StatusCodes.OK).send(xmlOutput); } - protected handleRequest(oaiRequest: Dictionary, request: RequestContract) { + protected async handleRequest(oaiRequest: Dictionary, request: Request) { // Setup stylesheet // $this->loadStyleSheet('datasetxml2oai-pmh.xslt'); @@ -116,7 +146,7 @@ export default class OaiController { this.xsltParameter['unixTimestamp'] = now.unix(); // set OAI base url - const baseDomain = process.env.BASE_DOMAIN || 'localhost'; + const baseDomain = process.env.OAI_BASE_DOMAIN || 'localhost'; this.xsltParameter['baseURL'] = baseDomain + '/oai'; this.xsltParameter['repURL'] = request.protocol() + '://' + request.hostname(); this.xsltParameter['downloadLink'] = request.protocol() + '://' + request.hostname() + '/file/download/'; @@ -130,27 +160,22 @@ export default class OaiController { this.handleIdentify(); } else if (verb === 'ListMetadataFormats') { this.handleListMetadataFormats(); - } - // else if (verb == "GetRecord") { - // await this.handleGetRecord(oaiRequest); - // } else if (verb == "ListRecords") { - // await this.handleListRecords(oaiRequest); - // } else if (verb == "ListIdentifiers") { - // await this.handleListIdentifiers(oaiRequest); - // } else if (verb == "ListSets") { - // await this.handleListSets(); - // } - else { + } else if (verb == 'GetRecord') { + await this.handleGetRecord(oaiRequest); + } else if (verb == 'ListRecords') { + // Get browser fingerprint from the request: + const browserFingerprint = this.getBrowserFingerprint(request); + await this.handleListRecords(oaiRequest, browserFingerprint); + } else if (verb == 'ListIdentifiers') { + // Get browser fingerprint from the request: + const browserFingerprint = this.getBrowserFingerprint(request); + await this.handleListIdentifiers(oaiRequest, browserFingerprint); + } else if (verb == 'ListSets') { + await this.handleListSets(); + } else { this.handleIllegalVerb(); } } else { - // // try { - // // console.log("Async code example.") - // const err = new PageNotFoundException("verb not found"); - // throw err; - // // } catch (error) { // manually catching - // // next(error); // passing to default middleware error handler - // // } throw new OaiModelException( StatusCodes.INTERNAL_SERVER_ERROR, 'The verb provided in the request is illegal.', @@ -160,11 +185,11 @@ export default class OaiController { } protected handleIdentify() { - const email = process.env.OAI_EMAIL || 'repository@geosphere.at'; - const repositoryName = 'Tethys RDR'; - const repIdentifier = 'tethys.at'; - const sampleIdentifier = 'oai:' + repIdentifier + ':1'; //$this->_configuration->getSampleIdentifier(); - + // Get configuration values from environment or a dedicated configuration service + const email = process.env.OAI_EMAIL ?? 'repository@geosphere.at'; + const repositoryName = process.env.OAI_REPOSITORY_NAME ?? 'Tethys RDR'; + const repIdentifier = process.env.OAI_REP_IDENTIFIER ?? 'tethys.at'; + const sampleIdentifier = `oai:${repIdentifier}:1`; // Dataset::earliestPublicationDate()->server_date_published->format('Y-m-d\TH:i:s\Z') : null; // earliestDateFromDb!= null && (this.xsltParameter['earliestDatestamp'] = earliestDateFromDb?.server_date_published); @@ -182,8 +207,521 @@ export default class OaiController { this.xml.root().ele('Datasets'); } + protected async handleListSets() { + const repIdentifier = 'tethys.at'; + this.xsltParameter['repIdentifier'] = repIdentifier; + const datasetElement = this.xml.root().ele('Datasets'); + + const sets: { [key: string]: string } = { + 'open_access': 'Set for open access licenses', + 'openaire_data': 'OpenAIRE', + 'doc-type:ResearchData': 'Set for document type ResearchData', + ...(await this.getSetsForDatasetTypes()), + ...(await this.getSetsForCollections()), + // ... await this.getSetsForProjects(), + } as Dictionary; + + for (const [key, value] of Object.entries(sets)) { + const setElement = datasetElement.ele('Rdr_Sets'); + setElement.att('Type', key); + setElement.att('TypeName', value); + } + } + + protected async handleGetRecord(oaiRequest: Dictionary) { + const repIdentifier = 'tethys.at'; + this.xsltParameter['repIdentifier'] = repIdentifier; + + // Validate that required parameter exists early + if (!('identifier' in oaiRequest)) { + throw new BadOaiModelException('The prefix of the identifier argument is unknown.'); + } + + // Validate and extract the dataset identifier from the request + const dataId = this.validateAndGetIdentifier(oaiRequest); + + // Retrieve dataset with associated XML cache and collection roles + const dataset = await Dataset.query() + .where('publish_id', dataId) + .preload('xmlCache') + .preload('collections', (builder) => { + builder.preload('collectionRole'); + }) + .first(); + + if (!dataset || !dataset.publish_id) { + throw new OaiModelException( + StatusCodes.INTERNAL_SERVER_ERROR, + 'The value of the identifier argument is unknown or illegal in this repository.', + OaiErrorCodes.IDDOESNOTEXIST, + ); + } + + // Validate and set the metadata prefix parameter + const metadataPrefix = this.validateAndGetMetadataPrefix(oaiRequest); + this.xsltParameter['oai_metadataPrefix'] = metadataPrefix; + + // Ensure that the dataset is in an exportable state + this.validateDatasetState(dataset); + + // Build the XML for the dataset record and add it to the root node + const datasetNode = this.xml.root().ele('Datasets'); + await this.createXmlRecord(dataset, datasetNode); + } + + protected async handleListIdentifiers(oaiRequest: Dictionary, browserFingerprint: string) { + if (!this.tokenWorker.isConnected) { + await this.tokenWorker.connect(); + } + + const maxIdentifier: number = config.get('oai.max.listidentifiers', 100); + await this.handleLists(oaiRequest, maxIdentifier, browserFingerprint); + } + + protected async handleListRecords(oaiRequest: Dictionary, browserFingerprint: string) { + if (!this.tokenWorker.isConnected) { + await this.tokenWorker.connect(); + } + + const maxRecords: number = config.get('oai.max.listrecords', 100); + await this.handleLists(oaiRequest, maxRecords, browserFingerprint); + } + + private async handleLists(oaiRequest: Dictionary, maxRecords: number, browserFingerprint: string) { + const repIdentifier = 'tethys.at'; + this.xsltParameter['repIdentifier'] = repIdentifier; + const datasetNode = this.xml.root().ele('Datasets'); + + const paginationParams: PagingParameter ={ + cursor: 0, + totalLength: 0, + start: maxRecords + 1, + nextDocIds: [], + activeWorkIds: [], + metadataPrefix: '', + queryParams: {}, + }; + + if ('resumptionToken' in oaiRequest) { + await this.handleResumptionToken(oaiRequest, maxRecords, paginationParams); + } else { + await this.handleNoResumptionToken(oaiRequest, paginationParams, maxRecords); + } + + const nextIds: number[] = paginationParams.nextDocIds; + const workIds: number[] = paginationParams.activeWorkIds; + + if (workIds.length === 0) { + throw new OaiModelException( + StatusCodes.INTERNAL_SERVER_ERROR, + 'The combination of the given values results in an empty list.', + OaiErrorCodes.NORECORDSMATCH, + ); + } + + const datasets = await Dataset.query() + .whereIn('publish_id', workIds) + .preload('xmlCache') + .preload('collections', (builder) => { + builder.preload('collectionRole'); + }) + .orderBy('publish_id'); + for (const dataset of datasets) { + await this.createXmlRecord(dataset, datasetNode); + } + await this.setResumptionToken(nextIds, paginationParams, browserFingerprint); + } + + private async handleNoResumptionToken(oaiRequest: Dictionary, paginationParams: PagingParameter, maxRecords: number) { + this.validateMetadataPrefix(oaiRequest, paginationParams); + const finder: ModelQueryBuilderContract = Dataset.query().whereIn( + 'server_state', + this.deliveringDocumentStates, + ); + this.applySetFilter(finder, oaiRequest); + this.applyDateFilters(finder, oaiRequest); + await this.fetchAndSetResults(finder, paginationParams, oaiRequest, maxRecords); + } + + private async fetchAndSetResults( + finder: ModelQueryBuilderContract, + paginationParams: PagingParameter, + oaiRequest: Dictionary, + maxRecords: number + ) { + const totalResult = await finder + .clone() + .count('* as total') + .first() + .then((res) => res?.$extras.total); + paginationParams.totalLength = Number(totalResult); + + const combinedRecords: Dataset[] = await finder.select('publish_id').orderBy('publish_id').offset(0).limit(maxRecords*2); + + paginationParams.activeWorkIds = combinedRecords.slice(0, 100).map((dat) => Number(dat.publish_id)); + paginationParams.nextDocIds = combinedRecords.slice(100).map((dat) => Number(dat.publish_id)); + + // No resumption token was used – set queryParams from the current oaiRequest + paginationParams.queryParams = { + ...oaiRequest, + deliveringStates: this.deliveringDocumentStates, + }; + + // paginationParams.totalLength = 230; + } + + private async handleResumptionToken(oaiRequest: Dictionary, maxRecords: number, paginationParams: PagingParameter) { + const resParam = oaiRequest['resumptionToken']; + const token = await this.tokenWorker.get(resParam); + + if (!token) { + throw new OaiModelException(StatusCodes.INTERNAL_SERVER_ERROR, 'cache is outdated.', OaiErrorCodes.BADRESUMPTIONTOKEN); + } + + // this.setResumptionParameters(token, maxRecords, paginationParams); + paginationParams.cursor = token.startPosition - 1; + paginationParams.start = token.startPosition + maxRecords; + paginationParams.totalLength = token.totalIds; + paginationParams.activeWorkIds = token.documentIds; + paginationParams.metadataPrefix = token.metadataPrefix; + paginationParams.queryParams = token.queryParams; + this.xsltParameter['oai_metadataPrefix'] = token.metadataPrefix; + + const finder = this.buildDatasetQueryViaToken(token); + const nextRecords: Dataset[] = await this.fetchNextRecords(finder, token, maxRecords); + paginationParams.nextDocIds = nextRecords.map((dat) => Number(dat.publish_id)); + } + + private async setResumptionToken(nextIds: number[], paginationParams: PagingParameter, browserFingerprint: string) { + const countRestIds = nextIds.length; + if (countRestIds > 0) { + // const token = this.createResumptionToken(paginationParams, nextIds); + const token = new ResumptionToken(); + token.startPosition = paginationParams.start; + token.totalIds = paginationParams.totalLength; + token.documentIds = nextIds; + token.metadataPrefix = paginationParams.metadataPrefix; + token.queryParams = paginationParams.queryParams; + const res: string = await this.tokenWorker.set(token, browserFingerprint); + this.setParamResumption(res, paginationParams.cursor, paginationParams.totalLength); + } + } + + private buildDatasetQueryViaToken(token: ResumptionToken) { + const finder = Dataset.query(); + const originalQuery = token.queryParams || {}; + const deliveringStates = originalQuery.deliveringStates || this.deliveringDocumentStates; + + finder.whereIn('server_state', deliveringStates); + this.applySetFilter(finder, originalQuery); + this.applyDateFilters(finder, originalQuery); + + return finder; + } + + private async fetchNextRecords(finder: ModelQueryBuilderContract, token: ResumptionToken, maxRecords: number) { + return finder + .select('publish_id') + .orderBy('publish_id') + .offset(token.startPosition - 1 + maxRecords) + .limit(100); + } + + private validateMetadataPrefix(oaiRequest: Dictionary, paginationParams: PagingParameter) { + if (!('metadataPrefix' in oaiRequest)) { + throw new OaiModelException( + StatusCodes.INTERNAL_SERVER_ERROR, + 'The prefix of the metadata argument is unknown.', + OaiErrorCodes.BADARGUMENT, + ); + } + paginationParams.metadataPrefix = oaiRequest['metadataPrefix']; + this.xsltParameter['oai_metadataPrefix'] = paginationParams.metadataPrefix; + } + + private applySetFilter(finder: ModelQueryBuilderContract, queryParams: any) { + if ('set' in queryParams) { + const [setType, setValue] = queryParams['set'].split(':'); + + switch (setType) { + case 'data-type': + setValue && finder.where('type', setValue); + break; + case 'open_access': + finder.andWhereHas('licenses', (query) => { + query.whereIn('name', ['CC-BY-4.0', 'CC-BY-SA-4.0']); + }); + break; + case 'ddc': + setValue && + finder.andWhereHas('collections', (query) => { + query.where('number', setValue); + }); + break; + } + } + } + + private applyDateFilters(finder: ModelQueryBuilderContract, queryParams: any) { + const { from, until } = queryParams; + + if (from && until) { + this.handleFromUntilFilter(finder, from, until); + } else if (from) { + this.handleFromFilter(finder, from); + } else if (until) { + this.handleUntilFilter(finder, until); + } + } + + private handleFromUntilFilter(finder: ModelQueryBuilderContract, from: string, until: string) { + const fromDate = this.parseDateWithValidation(from, 'From'); + const untilDate = this.parseDateWithValidation(until, 'Until'); + + if (from.length !== until.length) { + throw new OaiModelException( + StatusCodes.INTERNAL_SERVER_ERROR, + 'The request has different granularities for the from and until parameters.', + OaiErrorCodes.BADARGUMENT, + ); + } + + finder.whereBetween('server_date_published', [fromDate.format('YYYY-MM-DD HH:mm:ss'), untilDate.format('YYYY-MM-DD HH:mm:ss')]); + } + + private handleFromFilter(finder: ModelQueryBuilderContract, from: string) { + const fromDate = this.parseDateWithValidation(from, 'From'); + const now = dayjs(); + + if (fromDate.isAfter(now)) { + throw new OaiModelException( + StatusCodes.INTERNAL_SERVER_ERROR, + 'Given from date is greater than now. The given values results in an empty list.', + OaiErrorCodes.NORECORDSMATCH, + ); + } + + finder.andWhere('server_date_published', '>=', fromDate.format('YYYY-MM-DD HH:mm:ss')); + } + + private handleUntilFilter(finder: ModelQueryBuilderContract, until: string) { + const untilDate = this.parseDateWithValidation(until, 'Until'); + + const earliestPublicationDate = dayjs(this.firstPublishedDataset?.server_date_published.toISO()); + + if (earliestPublicationDate.isAfter(untilDate)) { + throw new OaiModelException( + StatusCodes.INTERNAL_SERVER_ERROR, + 'earliestDatestamp is greater than given until date. The given values results in an empty list.', + OaiErrorCodes.NORECORDSMATCH, + ); + } + + finder.andWhere('server_date_published', '<=', untilDate.format('YYYY-MM-DD HH:mm:ss')); + } + + private parseDateWithValidation(dateStr: string, label: string) { + let date = dayjs(dateStr); + if (!date.isValid()) { + throw new OaiModelException( + StatusCodes.INTERNAL_SERVER_ERROR, + `${label} date parameter is not valid.`, + OaiErrorCodes.BADARGUMENT, + ); + } + date = dayjs.tz(dateStr, 'Europe/Vienna'); + return date.hour() === 0 ? (label === 'From' ? date.startOf('day') : date.endOf('day')) : date; + } + + private setParamResumption(res: string, cursor: number, totalIds: number) { + const tomorrow = dayjs().add(1, 'day').format('YYYY-MM-DDThh:mm:ss[Z]'); + this.xsltParameter['dateDelete'] = tomorrow; + this.xsltParameter['res'] = res; + this.xsltParameter['cursor'] = cursor; + this.xsltParameter['totalIds'] = totalIds; + } + + private validateAndGetIdentifier(oaiRequest: Dictionary): number { + // Identifier references metadata Urn, not plain Id! + // Currently implemented as 'oai:foo.bar.de:{docId}' or 'urn:nbn...-123' + if (!('identifier' in oaiRequest)) { + throw new BadOaiModelException('The prefix of the identifier argument is unknown.'); + } + const dataId = Number(this.getDocumentIdByIdentifier(oaiRequest.identifier)); + if (isNaN(dataId)) { + throw new OaiModelException( + StatusCodes.INTERNAL_SERVER_ERROR, + 'The value of the identifier argument is illegal in this repository.', + OaiErrorCodes.BADARGUMENT, + ); + } + return dataId; + } + + private validateAndGetMetadataPrefix(oaiRequest: Dictionary): string { + let metadataPrefix = ''; + if ('metadataPrefix' in oaiRequest) { + metadataPrefix = oaiRequest['metadataPrefix']; + } else { + throw new OaiModelException( + StatusCodes.INTERNAL_SERVER_ERROR, + 'The prefix of the metadata argument is unknown.', + OaiErrorCodes.BADARGUMENT, + ); + } + return metadataPrefix; + } + + private validateDatasetState(dataset: Dataset): void { + if (dataset.server_state == null || !this.deliveringDocumentStates.includes(dataset.server_state)) { + throw new OaiModelException( + StatusCodes.INTERNAL_SERVER_ERROR, + 'Document is not available for OAI export!', + OaiErrorCodes.NORECORDSMATCH, + ); + } + } + + private async createXmlRecord(dataset: Dataset, datasetNode: XMLBuilder) { + const domNode = await this.getDatasetXmlDomNode(dataset); + + if (domNode) { + // add frontdoor url and data-type + dataset.publish_id && this.addLandingPageAttribute(domNode, dataset.publish_id.toString()); + this.addSpecInformation(domNode, 'data-type:' + dataset.type); + + if (dataset.collections) { + for (const coll of dataset.collections) { + const collRole = coll.collectionRole; + this.addSpecInformation(domNode, collRole.oai_name + ':' + coll.number); + } + } + + datasetNode.import(domNode); + } + } + + private async getDatasetXmlDomNode(dataset: Dataset) { + const xmlModel = new XmlModel(dataset); + // xmlModel.setModel(dataset); + xmlModel.excludeEmptyFields(); + xmlModel.caching = true; + // const cache = dataset.xmlCache ? dataset.xmlCache : null; + // dataset.load('xmlCache'); + if (dataset.xmlCache) { + xmlModel.xmlCache = dataset.xmlCache; + } + + // return cache.getDomDocument(); + const domDocument: XMLBuilder | null = await xmlModel.getDomDocument(); + return domDocument; + } + + private addSpecInformation(domNode: XMLBuilder, information: string) { + domNode.ele('SetSpec').att('Value', information); + } + + private addLandingPageAttribute(domNode: XMLBuilder, dataid: string) { + const baseDomain = process.env.OAI_BASE_DOMAIN || 'localhost'; + const url = 'https://' + getDomain(baseDomain) + '/dataset/' + dataid; + // add attribute du dataset xml element + domNode.att('landingpage', url); + } + + private getDocumentIdByIdentifier(oaiIdentifier: string): string { + const identifierParts: string[] = oaiIdentifier.split(':'); // explode(":", $oaiIdentifier); + const dataId: string = identifierParts[2]; + // switch (identifierParts[0]) { + // case 'oai': + // if (isset($identifierParts[2])) { + // $dataId = $identifierParts[2]; + // } + // break; + // default: + // throw new OaiModelException( + // 'The prefix of the identifier argument is unknown.', + // OaiModelError::BADARGUMENT + // ); + // break; + // } + + // if (empty($dataId) or !preg_match('/^\d+$/', $dataId)) { + // throw new OaiModelException( + // 'The value of the identifier argument is unknown or illegal in this repository.', + // OaiModelError::IDDOESNOTEXIST + // ); + + return dataId; + } + + private async getSetsForCollections(): Promise { + const sets: { [key: string]: string } = {} as Dictionary; + + const collections = await Collection.query() + .select('name', 'number', 'role_id') + .whereHas('collectionRole', (query) => { + query.where('visible_oai', true); + }) + .preload('collectionRole'); + + collections.forEach((collection) => { + // if collection has a collection role (classification like ddc): + if (collection.number) { + // collection.load('collectionRole'); + const setSpec = collection.collectionRole?.oai_name + ':' + collection.number; + sets[setSpec] = `Set ${collection.number} '${collection.name}'`; + } + }); + return sets; + } + + private async getSetsForDatasetTypes(): Promise { + const sets: { [key: string]: string } = {} as Dictionary; + + const datasets: Array = await Dataset.query().select('type').where('server_state', 'published'); + + datasets.forEach((dataset) => { + if (dataset.type && false == preg_match(this.sampleRegEx, dataset.type)) { + const msg = `Invalid SetSpec (data-type='${dataset.type}'). + Allowed characters are [${this.sampleRegEx}].`; + // Log::error("OAI-PMH: $msg"); + logger.error(`OAI-PMH: ${msg}`); + return; + } + const setSpec = 'data-type:' + dataset.type; + sets[setSpec] = `Set for document type '${dataset.type}'`; + }); + return sets; + } + private handleIllegalVerb() { this.xsltParameter['oai_error_code'] = 'badVerb'; this.xsltParameter['oai_error_message'] = 'The verb provided in the request is illegal.'; } + + /** + * Helper method to build a browser fingerprint by combining: + * - User-Agent header, + * - the IP address, + * - Accept-Language header, + * - current timestamp rounded to the hour. + * + * Every new hour, this will return a different fingerprint. + */ + private getBrowserFingerprint(request: Request): string { + const userAgent = request.header('user-agent') || 'unknown'; + // Check for X-Forwarded-For header to use the client IP from the proxy if available. + const xForwardedFor = request.header('x-forwarded-for'); + let ip = request.ip(); + // console.log(ip); + if (xForwardedFor) { + // X-Forwarded-For may contain a comma-separated list of IPs; the first one is the client IP. + ip = xForwardedFor.split(',')[0].trim(); + // console.log('xforwardedfor ip' + ip); + } + const locale = request.header('accept-language') || 'default'; + // Round the current time to the start of the hour. + const timestampHour = dayjs().startOf('hour').format('YYYY-MM-DDTHH'); + return `${userAgent}-${ip}-${locale}-${timestampHour}`; + } } diff --git a/app/Controllers/Http/Reviewer/DatasetController.ts b/app/Controllers/Http/Reviewer/DatasetController.ts new file mode 100644 index 0000000..6b54772 --- /dev/null +++ b/app/Controllers/Http/Reviewer/DatasetController.ts @@ -0,0 +1,385 @@ +import type { HttpContext } from '@adonisjs/core/http'; +import User from '#models/user'; +import Dataset from '#models/dataset'; +import Field from '#app/Library/Field'; +import BaseModel from '#models/base_model'; +import { DateTime } from 'luxon'; +import { ModelQueryBuilderContract } from '@adonisjs/lucid/types/model'; +import vine from '@vinejs/vine'; +import mail from '@adonisjs/mail/services/main'; +import logger from '@adonisjs/core/services/logger'; +import { validate } from 'deep-email-validator'; +import File from '#models/file'; + +interface Dictionary { + [index: string]: string; +} + +export default class DatasetsController { + public async index({ auth, request, inertia }: HttpContext) { + const user = (await User.find(auth.user?.id)) as User; + const page = request.input('page', 1); + let datasets: ModelQueryBuilderContract = Dataset.query(); + + // if (request.input('search')) { + // // users = users.whereRaw('name like %?%', [request.input('search')]) + // const searchTerm = request.input('search'); + // datasets.where('name', 'ilike', `%${searchTerm}%`); + // } + + if (request.input('sort')) { + type SortOrder = 'asc' | 'desc' | undefined; + let attribute = request.input('sort'); + let sortOrder: SortOrder = 'asc'; + + if (attribute.substr(0, 1) === '-') { + sortOrder = 'desc'; + // attribute = substr(attribute, 1); + attribute = attribute.substr(1); + } + datasets.orderBy(attribute, sortOrder); + } else { + // datasets.orderBy('id', 'asc'); + // Custom ordering to prioritize rejected_editor state + datasets.orderByRaw(` + CASE + WHEN server_state = 'rejected_to_reviewer' THEN 0 + ELSE 1 + END ASC, + id ASC + `); + } + + // const users = await User.query().orderBy('login').paginate(page, limit); + const myDatasets = await datasets + // .where('server_state', 'approved') + .whereIn('server_state', ['approved', 'rejected_to_reviewer']) + .where('reviewer_id', user.id) + + .preload('titles') + .preload('user', (query) => query.select('id', 'login')) + .preload('editor', (query) => query.select('id', 'login')) + .paginate(page, 10); + + return inertia.render('Reviewer/Dataset/Index', { + datasets: myDatasets.serialize(), + filters: request.all(), + can: { + review: await auth.user?.can(['dataset-review']), + reject: await auth.user?.can(['dataset-review-reject']), + }, + }); + } + + public async review({ request, inertia, response, auth }: HttpContext) { + const id = request.param('id'); + const datasetQuery = Dataset.query().where('id', id); + + datasetQuery + .preload('titles', (query) => query.orderBy('id', 'asc')) + .preload('descriptions', (query) => query.orderBy('id', 'asc')) + .preload('coverage') + .preload('licenses') + .preload('authors', (query) => query.orderBy('pivot_sort_order', 'asc')) + .preload('contributors', (query) => query.orderBy('pivot_sort_order', 'asc')) + // .preload('subjects') + .preload('subjects', (builder) => { + builder.orderBy('id', 'asc').withCount('datasets'); + }) + .preload('references') + .preload('project') + .preload('files', (query) => { + query.orderBy('sort_order', 'asc'); // Sort by sort_order column + }); + + const dataset = await datasetQuery.firstOrFail(); + + const validStates = ['approved', 'rejected_to_reviewer']; + if (!validStates.includes(dataset.server_state)) { + // session.flash('errors', 'Invalid server state!'); + return response + .flash( + 'warning', + `Invalid server state. Dataset with id ${id} cannot be reviewed. Datset has server state ${dataset.server_state}.`, + ) + .redirect() + .toRoute('reviewer.dataset.list'); + } + + return inertia.render('Reviewer/Dataset/Review', { + dataset, + can: { + review: await auth.user?.can(['dataset-review']), + reject: await auth.user?.can(['dataset-review-reject']), + }, + }); + + } + + public async review_old({ request, inertia, response, auth }: HttpContext) { + const id = request.param('id'); + const dataset = await Dataset.query() + .where('id', id) + // .preload('titles') + // .preload('descriptions') + .preload('user', (builder) => { + builder.select('id', 'login'); + }) + .firstOrFail(); + + const validStates = ['approved']; + if (!validStates.includes(dataset.server_state)) { + // session.flash('errors', 'Invalid server state!'); + return response + .flash( + 'warning', + `Invalid server state. Dataset with id ${id} cannot be reviewed. Datset has server state ${dataset.server_state}.`, + ) + .redirect() + .toRoute('reviewer.dataset.list'); + } + + const fieldnames: Array = await dataset.describe(); + const fields: Dictionary = {}; + for (const fieldName of fieldnames) { + const field: Field = dataset.getField(fieldName) as Field; + const modelClass = field.getValueModelClass(); + let fieldValues = field.getValue(); + let value = ''; + + if (fieldValues === null || fieldValues == undefined) { + continue; + } + + if (modelClass === null) { + if (typeof fieldValues === 'number') { + // If the field values are a number, use them as is + value = fieldValues.toString(); + } else { + // If the field values are not a number, use the replace() function to remove non-printable characters + value = fieldValues.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g, '\xEF\xBF\xBD '); + } + } else { + if (!Array.isArray(fieldValues)) { + fieldValues = [fieldValues]; + } + + for (const fieldValue of fieldValues) { + if (fieldValue === null) { + continue; + } + if (modelClass.prototype instanceof BaseModel) { + // this.mapModelAttributes(fieldValue, childNode); + value = '
    '; + Object.keys(fieldValue).forEach((prop) => { + let modelValue = fieldValue[prop]; + // console.log(`${prop}: ${value}`); + if (modelValue != null) { + if (modelValue instanceof DateTime) { + modelValue = modelValue.toFormat('yyyy-MM-dd HH:mm:ss').trim(); + } else { + modelValue = modelValue.toString().trim(); + } + + // Replace invalid XML-1.0-Characters by UTF-8 replacement character. + modelValue = modelValue.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g, '\xEF\xBF\xBD '); + + value = value + '
  • ' + prop + ' : ' + modelValue + '
  • '; + } + }); + value = value + '
'; + } else if (modelClass instanceof DateTime) { + // console.log('Value is a luxon date'); + // this.mapDateAttributes(fieldValue, childNode); + value = value + ' Year ' + modelClass.year.toString(); + value = value + ' Month ' + modelClass.month.toString(); + value = value + ' Day ' + modelClass.day.toString(); + value = value + ' Hour ' + modelClass.hour.toString(); + value = value + ' Minute ' + modelClass.minute.toString(); + value = value + ' Second ' + modelClass.second.toString(); + value = value + ' UnixTimestamp ' + modelClass.toUnixInteger().toString(); + let zoneName = modelClass.zoneName ? modelClass.zoneName : ''; + value = value + ' Timezone ' + zoneName; + } + } + } + + if (value != '') { + fields[fieldName] = value; + } + } + + return inertia.render('Reviewer/Dataset/Review', { + dataset, + fields: fields, + can: { + review: await auth.user?.can(['dataset-review']), + reject: await auth.user?.can(['dataset-review-reject']), + }, + }); + } + + public async reviewUpdate({ request, response }: HttpContext) { + const id = request.param('id'); + // const { id } = params; + const dataset = await Dataset.findOrFail(id); + + const validStates = ['approved', 'rejected_to_reviewer']; + if (!validStates.includes(dataset.server_state)) { + // throw new Error('Invalid server state!'); + // return response.flash('warning', 'Invalid server state. Dataset cannot be released to editor').redirect().back(); + return response + .flash( + 'warning', + `Invalid server state. Dataset with id ${id} cannot be reviewed. Datset has server state ${dataset.server_state}.`, + ) + .redirect() + .toRoute('reviewer.dataset.list'); + } + + dataset.server_state = 'reviewed'; + // if editor has rejected to reviewer: + if (dataset.reject_editor_note != null) { + dataset.reject_editor_note = null; + } + + try { + // await dataset.related('editor').associate(user); // speichert schon ab + await dataset.save(); + return response.toRoute('reviewer.dataset.list').flash('message', `You have successfully reviewed dataset ${dataset.id}!`); + } catch (error) { + // Handle any errors + console.error(error); + return response.status(500).json({ error: 'An error occurred while reviewing the data.' }); + } + } + + public async reject({ request, inertia, response }: HttpContext) { + const id = request.param('id'); + const dataset = await Dataset.query() + .where('id', id) + // .preload('titles') + // .preload('descriptions') + .preload('editor', (builder) => { + builder.select('id', 'login', 'email'); + }) + .firstOrFail(); + + const validStates = ['approved', 'rejected_to_reviewer']; + if (!validStates.includes(dataset.server_state)) { + // session.flash('errors', 'Invalid server state!'); + return response + .flash( + 'warning', + `Invalid server state. Dataset with id ${id} cannot be rejected. Datset has server state ${dataset.server_state}.`, + ) + .redirect() + .toRoute('reviewer.dataset.list'); + } + + return inertia.render('Reviewer/Dataset/Reject', { + dataset, + }); + } + + public async rejectUpdate({ request, response, auth }: HttpContext) { + const authUser = auth.user!; + + const id = request.param('id'); + const dataset = await Dataset.query() + .where('id', id) + .preload('editor', (builder) => { + builder.select('id', 'login', 'email'); + }) + .firstOrFail(); + + // const newSchema = schema.create({ + // server_state: schema.string({ trim: true }), + // reject_reviewer_note: schema.string({ trim: true }, [rules.minLength(10), rules.maxLength(500)]), + // }); + const newSchema = vine.object({ + server_state: vine.string().trim(), + reject_reviewer_note: vine.string().trim().minLength(10).maxLength(500), + send_mail: vine.boolean().optional(), + }); + + try { + // await request.validate({ schema: newSchema }); + const validator = vine.compile(newSchema); + await request.validateUsing(validator); + } catch (error) { + // return response.badRequest(error.messages); + throw error; + } + + const validStates = ['approved', 'rejected_to_reviewer']; + if (!validStates.includes(dataset.server_state)) { + // throw new Error('Invalid server state!'); + // return response.flash('warning', 'Invalid server state. Dataset cannot be released to editor').redirect().back(); + return response + .flash( + `Invalid server state. Dataset with id ${id} cannot be rejected. Datset has server state ${dataset.server_state}.`, + 'warning', + ) + .redirect() + .toRoute('reviewer.dataset.list'); + } + + // dataset.server_state = 'reviewed'; + dataset.server_state = 'rejected_reviewer'; + const rejectReviewerNote = request.input('reject_reviewer_note', ''); + dataset.reject_reviewer_note = rejectReviewerNote; + + // add logic for sending reject message + const sendMail = request.input('send_email', false); + // const validRecipientEmail = await this.checkEmailDomain('arno.kaimbacher@outlook.at'); + const validationResult = await validate({ + email: dataset.editor.email, + validateSMTP: false, + }); + const validRecipientEmail: boolean = validationResult.valid; + // let emailStatusMessage = ''; + + if (sendMail == true) { + if (dataset.editor.email && validRecipientEmail) { + try { + await mail.send((message) => { + message.to(dataset.editor.email).subject('Dataset Rejection Notification').html(` +

Dear editor ${dataset.editor.login},

+

Your approved dataset with ID ${dataset.id} has been rejected.

+

Reason for rejection: ${rejectReviewerNote}

+

Best regards,
Your Tethys reviewer: ${authUser.login}

+ `); + }); + // emailStatusMessage = ` A rejection email was successfully sent to ${dataset.editor.email}.`; + } catch (error) { + logger.error(error); + return response + .flash('Dataset has not been rejected due to an email error: ' + error.message, 'error') + .toRoute('reviewer.dataset.list'); + } + } else { + // emailStatusMessage = ` However, the email could not be sent because the editor's email address (${dataset.editor.email}) is not valid.`; + } + } + + await dataset.save(); + + return response + .toRoute('reviewer.dataset.list') + .flash(`You have rejected dataset ${dataset.id}! to editor ${dataset.editor.login}`, 'message'); + } + + public async download({ params, response }: HttpContext) { + const id = params.id; + // Find the file by ID + const file = await File.findOrFail(id); + // const filePath = await drive.use('local').getUrl('/'+ file.filePath) + const filePath = file.filePath; + const fileExt = file.filePath.split('.').pop() || ''; + // Set the response headers and download the file + response.header('Content-Type', file.mime_type || 'application/octet-stream'); + response.attachment(`${file.label}.${fileExt}`); + return response.download(filePath); + } +} diff --git a/app/Controllers/Http/Submitter/DatasetController.ts b/app/Controllers/Http/Submitter/DatasetController.ts index 0484ac7..245b5d9 100644 --- a/app/Controllers/Http/Submitter/DatasetController.ts +++ b/app/Controllers/Http/Submitter/DatasetController.ts @@ -1,20 +1,22 @@ -import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; -import User from 'App/Models/User'; -import Dataset from 'App/Models/Dataset'; -import License from 'App/Models/License'; -import Project from 'App/Models/Project'; -import Title from 'App/Models/Title'; -import Description from 'App/Models/Description'; -import Language from 'App/Models/Language'; -import Coverage from 'App/Models/Coverage'; -import Collection from 'App/Models/Collection'; -import { schema, CustomMessages, rules } from '@ioc:Adonis/Core/Validator'; +import type { HttpContext } from '@adonisjs/core/http'; +import User from '#models/user'; +import Dataset from '#models/dataset'; +import License from '#models/license'; +import Project from '#models/project'; +import Title from '#models/title'; +import Description from '#models/description'; +import Language from '#models/language'; +import Coverage from '#models/coverage'; +import Collection from '#models/collection'; +import CollectionRole from '#models/collection_role'; import dayjs from 'dayjs'; -import Person from 'App/Models/Person'; -import Database from '@ioc:Adonis/Lucid/Database'; -import { TransactionClientContract } from '@ioc:Adonis/Lucid/Database'; -import Subject from 'App/Models/Subject'; -import CreateDatasetValidator from 'App/Validators/CreateDatasetValidator'; +import Person from '#models/person'; +import db from '@adonisjs/lucid/services/db'; +import { TransactionClientContract } from '@adonisjs/lucid/types/database'; +import Subject from '#models/subject'; +// import CreateDatasetValidator from '#validators/create_dataset_validator'; +import { createDatasetValidator, updateDatasetValidator } from '#validators/dataset'; +// import UpdateDatasetValidator from '#validators/update_dataset_validator'; import { TitleTypes, DescriptionTypes, @@ -24,20 +26,34 @@ import { RelationTypes, DatasetTypes, SubjectTypes, -} from 'Contracts/enums'; -import type { ModelQueryBuilderContract } from '@ioc:Adonis/Lucid/Orm'; -import DatasetReference from 'App/Models/DatasetReference'; -import { cuid } from '@ioc:Adonis/Core/Helpers'; -import File from 'App/Models/File'; +} from '#contracts/enums'; +import { ModelQueryBuilderContract } from '@adonisjs/lucid/types/model'; +import DatasetReference from '#models/dataset_reference'; +import File from '#models/file'; import ClamScan from 'clamscan'; -import { ValidationException } from '@ioc:Adonis/Core/Validator'; -import Drive from '@ioc:Adonis/Core/Drive'; -import { Exception } from '@adonisjs/core/build/standalone'; -import XmlModel from 'App/Library/XmlModel'; -import { XMLBuilder } from 'xmlbuilder2/lib/interfaces'; +import drive from '@adonisjs/drive/services/main'; +import path from 'path'; +import { Exception } from '@adonisjs/core/exceptions'; +import { MultipartFile } from '@adonisjs/core/types/bodyparser'; +import * as crypto from 'crypto'; +import { pipeline } from 'node:stream/promises'; +import { createWriteStream } from 'node:fs'; +import type { Multipart } from '@adonisjs/bodyparser'; +import * as fs from 'fs'; +import { parseBytesSize, getConfigFor, getTmpPath, formatBytes } from '#app/utils/utility-functions'; + +interface Dictionary { + [index: string]: string; +} +import vine, { SimpleMessagesProvider, errors } from '@vinejs/vine'; export default class DatasetController { - public async index({ auth, request, inertia }: HttpContextContract) { + /** + * Bodyparser config + */ + // config: BodyParserConfig = config.get('bodyparser'); + + public async index({ auth, request, inertia }: HttpContext) { const user = (await User.find(auth.user?.id)) as User; const page = request.input('page', 1); let datasets: ModelQueryBuilderContract = Dataset.query(); @@ -60,8 +76,16 @@ export default class DatasetController { } datasets.orderBy(attribute, sortOrder); } else { - // users.orderBy('created_at', 'desc'); - datasets.orderBy('id', 'asc'); + // datasets.orderBy('id', 'asc'); + // Custom ordering to prioritize rejected_editor state + datasets.orderByRaw(` + CASE + WHEN server_state = 'rejected_editor' THEN 0 + WHEN server_state = 'rejected_reviewer' THEN 1 + ELSE 2 + END ASC, + id ASC + `); } // const results = await Database @@ -90,11 +114,11 @@ export default class DatasetController { // builder.where('type', 'Main'); // }) - .paginate(page, 10); + .paginate(page, 5); return inertia.render('Submitter/Dataset/Index', { // testing: 'this is a test', - datasets: myDatasets.serialize(), + datasets: myDatasets.toJSON(), filters: request.all(), can: { // create: await auth.user?.can(['dataset-submit']), @@ -104,23 +128,11 @@ export default class DatasetController { }); } - public async create({ inertia }: HttpContextContract) { + public async create({ inertia }: HttpContext) { const licenses = await License.query().select('id', 'name_long').where('active', 'true').pluck('name_long', 'id'); const projects = await Project.query().pluck('label', 'id'); - // const doctypes = { - // analysisdata: { label: 'Analysis', value: 'analysisdata' }, - // measurementdata: { label: 'Measurements', value: 'measurementdata' }, - // monitoring: 'Monitoring', - // remotesensing: 'Remote Sensing', - // gis: 'GIS', - // models: 'Models', - // mixedtype: 'Mixed Type', - // vocabulary: 'Vocabulary', - // }; - - // const languages = await Database.from('languages').select('*').where('active', true); return inertia.render('Submitter/Dataset/Create', { licenses: licenses, doctypes: DatasetTypes, @@ -139,187 +151,370 @@ export default class DatasetController { }); } - public async firstStep({ request, response }: HttpContextContract) { - const newDatasetSchema = schema.create({ - language: schema.string({ trim: true }, [ - rules.regex(/^[a-zA-Z0-9-_]+$/), //Must be alphanumeric with hyphens or underscores - ]), - licenses: schema.array([rules.minLength(1)]).members(schema.number()), // define at least one license for the new dataset - rights: schema.string([rules.equalTo('true')]), - }); - - try { - // Step 2 - Validate request body against the schema - - await request.validate({ schema: newDatasetSchema, messages: this.messages }); - // console.log({ payload }); - } catch (error) { - // Step 3 - Handle errors - // return response.badRequest(error.messages); - throw error; - } - return response.redirect().back(); - } - - public async secondStep({ request, response }: HttpContextContract) { - const newDatasetSchema = schema.create({ + public async firstStep({ request, response }: HttpContext) { + // const newDatasetSchema = schema.create({ + // language: schema.string({ trim: true }, [ + // rules.regex(/^[a-zA-Z0-9-_]+$/), //Must be alphanumeric with hyphens or underscores + // ]), + // licenses: schema.array([rules.minLength(1)]).members(schema.number()), // define at least one license for the new dataset + // rights: schema.string([rules.equalTo('true')]), + // }); + const newDatasetSchema = vine.object({ // first step - language: schema.string({ trim: true }, [ - rules.regex(/^[a-zA-Z0-9-_]+$/), //Must be alphanumeric with hyphens or underscores - ]), - licenses: schema.array([rules.minLength(1)]).members(schema.number()), // define at least one license for the new dataset - rights: schema.string([rules.equalTo('true')]), - // second step - type: schema.string({ trim: true }, [rules.minLength(3), rules.maxLength(255)]), - creating_corporation: schema.string({ trim: true }, [rules.minLength(3), rules.maxLength(255)]), - titles: schema.array([rules.minLength(1)]).members( - schema.object().members({ - value: schema.string({ trim: true }, [rules.minLength(3), rules.maxLength(255)]), - type: schema.enum(Object.values(TitleTypes)), - language: schema.string({ trim: true }, [ - rules.minLength(2), - rules.maxLength(255), - rules.translatedLanguage('/language', 'type'), - ]), - }), - ), - descriptions: schema.array([rules.minLength(1)]).members( - schema.object().members({ - value: schema.string({ trim: true }, [rules.minLength(3), rules.maxLength(255)]), - type: schema.enum(Object.values(DescriptionTypes)), - language: schema.string({ trim: true }, [ - rules.minLength(2), - rules.maxLength(255), - rules.translatedLanguage('/language', 'type'), - ]), - }), - ), - authors: schema.array([rules.minLength(1)]).members(schema.object().members({ email: schema.string({ trim: true }) })), - contributors: schema.array.optional().members( - schema.object().members({ - email: schema.string({ trim: true }), - pivot_contributor_type: schema.enum(Object.keys(ContributorTypes)), - }), - ), - // project_id: schema.number(), + language: vine + .string() + .trim() + .regex(/^[a-zA-Z0-9]+$/), + licenses: vine.array(vine.number()).minLength(1), // define at least one license for the new dataset + rights: vine.string().in(['true']), }); - - try { - // Step 2 - Validate request body against the schema - await request.validate({ schema: newDatasetSchema, messages: this.messages }); - // console.log({ payload }); - } catch (error) { - // Step 3 - Handle errors - // return response.badRequest(error.messages); - throw error; - } - return response.redirect().back(); - } - - public async thirdStep({ request, response }: HttpContextContract) { - const newDatasetSchema = schema.create({ - // first step - language: schema.string({ trim: true }, [ - rules.regex(/^[a-zA-Z0-9-_]+$/), //Must be alphanumeric with hyphens or underscores - ]), - licenses: schema.array([rules.minLength(1)]).members(schema.number()), // define at least one license for the new dataset - rights: schema.string([rules.equalTo('true')]), - // second step - type: schema.string({ trim: true }, [rules.minLength(3), rules.maxLength(255)]), - creating_corporation: schema.string({ trim: true }, [rules.minLength(3), rules.maxLength(255)]), - titles: schema.array([rules.minLength(1)]).members( - schema.object().members({ - value: schema.string({ trim: true }, [rules.minLength(3), rules.maxLength(255)]), - type: schema.enum(Object.values(TitleTypes)), - language: schema.string({ trim: true }, [ - rules.minLength(2), - rules.maxLength(255), - rules.translatedLanguage('/language', 'type'), - ]), - }), - ), - descriptions: schema.array([rules.minLength(1)]).members( - schema.object().members({ - value: schema.string({ trim: true }, [rules.minLength(3), rules.maxLength(255)]), - type: schema.enum(Object.values(DescriptionTypes)), - language: schema.string({ trim: true }, [ - rules.minLength(2), - rules.maxLength(255), - rules.translatedLanguage('/language', 'type'), - ]), - }), - ), - authors: schema.array([rules.minLength(1)]).members(schema.object().members({ email: schema.string({ trim: true }) })), - contributors: schema.array.optional().members( - schema.object().members({ - email: schema.string({ trim: true }), - pivot_contributor_type: schema.enum(Object.keys(ContributorTypes)), - }), - ), - // third step - project_id: schema.number.optional(), - embargo_date: schema.date.optional({ format: 'yyyy-MM-dd' }, [rules.after(10, 'days')]), - coverage: schema.object().members({ - x_min: schema.number(), - x_max: schema.number(), - y_min: schema.number(), - y_max: schema.number(), - elevation_absolut: schema.number.optional(), - elevation_min: schema.number.optional([rules.requiredIfExists('elevation_max')]), - elevation_max: schema.number.optional([rules.requiredIfExists('elevation_min')]), - depth_absolut: schema.number.optional(), - depth_min: schema.number.optional([rules.requiredIfExists('depth_max')]), - depth_max: schema.number.optional([rules.requiredIfExists('depth_min')]), - }), - references: schema.array.optional([rules.uniqueArray('value')]).members( - schema.object().members({ - value: schema.string({ trim: true }, [rules.minLength(3), rules.maxLength(255)]), - type: schema.enum(Object.values(ReferenceIdentifierTypes)), - relation: schema.enum(Object.values(RelationTypes)), - label: schema.string({ trim: true }, [rules.minLength(2), rules.maxLength(255)]), - }), - ), - subjects: schema.array([rules.minLength(3), rules.uniqueArray('value')]).members( - schema.object().members({ - value: schema.string({ trim: true }, [ - rules.minLength(3), - rules.maxLength(255), - // rules.unique({ table: 'dataset_subjects', column: 'value' }), - ]), - // type: schema.enum(Object.values(TitleTypes)), - language: schema.string({ trim: true }, [rules.minLength(2), rules.maxLength(255)]), - }), - ), - }); - - try { - // Step 2 - Validate request body against the schema - await request.validate({ schema: newDatasetSchema, messages: this.messages }); - // console.log({ payload }); - } catch (error) { - // Step 3 - Handle errors - // return response.badRequest(error.messages); - throw error; - } - return response.redirect().back(); - } - - public async store({ auth, request, response, session }: HttpContextContract) { - // node ace make:validator CreateDataset + // await request.validate({ schema: newDatasetSchema, messages: this.messages }); try { // Step 2 - Validate request body against the schema // await request.validate({ schema: newDatasetSchema, messages: this.messages }); - await request.validate(CreateDatasetValidator); + const validator = vine.compile(newDatasetSchema); + await request.validateUsing(validator, { messagesProvider: new SimpleMessagesProvider(this.messages) }); + } catch (error) { + // Step 3 - Handle errors + throw error; + } + return response.redirect().back(); + } + + public async secondStep({ request, response }: HttpContext) { + const newDatasetSchema = vine.object({ + // first step + language: vine + .string() + .trim() + .regex(/^[a-zA-Z0-9]+$/), + licenses: vine.array(vine.number()).minLength(1), // define at least one license for the new dataset + rights: vine.string().in(['true']), + // second step + type: vine.string().trim().minLength(3).maxLength(255), + creating_corporation: vine.string().trim().minLength(3).maxLength(255), + titles: vine + .array( + vine.object({ + value: vine.string().trim().minLength(3).maxLength(255), + type: vine.enum(Object.values(TitleTypes)), + language: vine + .string() + .trim() + .minLength(2) + .maxLength(255) + .translatedLanguage({ mainLanguageField: 'language', typeField: 'type' }), + }), + ) + // .minLength(2) + .arrayContainsTypes({ typeA: 'main', typeB: 'translated' }), + descriptions: vine + .array( + vine.object({ + value: vine.string().trim().minLength(3).maxLength(2500), + type: vine.enum(Object.values(DescriptionTypes)), + language: vine + .string() + .trim() + .minLength(2) + .maxLength(255) + .translatedLanguage({ mainLanguageField: 'language', typeField: 'type' }), + }), + ) + // .minLength(1), + .arrayContainsTypes({ typeA: 'abstract', typeB: 'translated' }), + authors: vine + .array( + vine.object({ + email: vine + .string() + .trim() + .maxLength(255) + .email() + .normalizeEmail() + .isUniquePerson({ table: 'persons', column: 'email', idField: 'id' }), + first_name: vine.string().trim().minLength(3).maxLength(255), + last_name: vine.string().trim().minLength(3).maxLength(255), + }), + ) + .minLength(1) + .distinct('email'), + contributors: vine + .array( + vine.object({ + email: vine + .string() + .trim() + .maxLength(255) + .email() + .normalizeEmail() + .isUniquePerson({ table: 'persons', column: 'email', idField: 'id' }), + first_name: vine.string().trim().minLength(3).maxLength(255), + last_name: vine.string().trim().minLength(3).maxLength(255), + pivot_contributor_type: vine.enum(Object.keys(ContributorTypes)), + }), + ) + .distinct('email') + .optional(), + project_id: vine.number().optional(), + }); + + try { + // Step 2 - Validate request body against the schema + // await request.validate({ schema: newDatasetSchema, messages: this.messages }); + const validator = vine.compile(newDatasetSchema); + await request.validateUsing(validator, { messagesProvider: new SimpleMessagesProvider(this.messages) }); + } catch (error) { + // Step 3 - Handle errors + // return response.badRequest(error.messages); + throw error; + } + return response.redirect().back(); + } + + public async thirdStep({ request, response }: HttpContext) { + const newDatasetSchema = vine.object({ + // first step + language: vine + .string() + .trim() + .regex(/^[a-zA-Z0-9]+$/), + licenses: vine.array(vine.number()).minLength(1), // define at least one license for the new dataset + rights: vine.string().in(['true']), + // second step + type: vine.string().trim().minLength(3).maxLength(255), + creating_corporation: vine.string().trim().minLength(3).maxLength(255), + titles: vine + .array( + vine.object({ + value: vine.string().trim().minLength(3).maxLength(255), + type: vine.enum(Object.values(TitleTypes)), + language: vine + .string() + .trim() + .minLength(2) + .maxLength(255) + .translatedLanguage({ mainLanguageField: 'language', typeField: 'type' }), + }), + ) + // .minLength(2) + .arrayContainsTypes({ typeA: 'main', typeB: 'translated' }), + descriptions: vine + .array( + vine.object({ + value: vine.string().trim().minLength(3).maxLength(2500), + type: vine.enum(Object.values(DescriptionTypes)), + language: vine + .string() + .trim() + .minLength(2) + .maxLength(255) + .translatedLanguage({ mainLanguageField: 'language', typeField: 'type' }), + }), + ) + // .minLength(1), + .arrayContainsTypes({ typeA: 'abstract', typeB: 'translated' }), + authors: vine + .array( + vine.object({ + email: vine + .string() + .trim() + .maxLength(255) + .email() + .normalizeEmail() + .isUniquePerson({ table: 'persons', column: 'email', idField: 'id' }), + first_name: vine.string().trim().minLength(3).maxLength(255), + last_name: vine.string().trim().minLength(3).maxLength(255), + }), + ) + .minLength(1) + .distinct('email'), + contributors: vine + .array( + vine.object({ + email: vine + .string() + .trim() + .maxLength(255) + .email() + .normalizeEmail() + .isUniquePerson({ table: 'persons', column: 'email', idField: 'id' }), + first_name: vine.string().trim().minLength(3).maxLength(255), + last_name: vine.string().trim().minLength(3).maxLength(255), + pivot_contributor_type: vine.enum(Object.keys(ContributorTypes)), + }), + ) + .distinct('email') + .optional(), + // third step + project_id: vine.number().optional(), + // embargo_date: schema.date.optional({ format: 'yyyy-MM-dd' }, [rules.after(10, 'days')]), + embargo_date: vine + .date({ + formats: ['YYYY-MM-DD'], + }) + .afterOrEqual((_field) => { + return dayjs().add(10, 'day').format('YYYY-MM-DD'); + }) + .optional(), + coverage: vine.object({ + x_min: vine.number(), + x_max: vine.number(), + y_min: vine.number(), + y_max: vine.number(), + elevation_absolut: vine.number().positive().optional(), + elevation_min: vine.number().positive().optional().requiredIfExists('elevation_max'), + elevation_max: vine.number().positive().optional().requiredIfExists('elevation_min'), + // type: vine.enum(Object.values(DescriptionTypes)), + depth_absolut: vine.number().negative().optional(), + depth_min: vine.number().negative().optional().requiredIfExists('depth_max'), + depth_max: vine.number().negative().optional().requiredIfExists('depth_min'), + time_abolute: vine.date({ formats: { utc: true } }).optional(), + time_min: vine + .date({ formats: { utc: true } }) + .beforeField('time_max') + .optional() + .requiredIfExists('time_max'), + time_max: vine + .date({ formats: { utc: true } }) + .afterField('time_min') + .optional() + .requiredIfExists('time_min'), + }), + references: vine + .array( + vine.object({ + // value: vine.string().trim().minLength(3).maxLength(255), + value: vine.string().trim().minLength(3).maxLength(255).validateReference({ typeField: 'type' }), + type: vine.enum(Object.values(ReferenceIdentifierTypes)), + relation: vine.enum(Object.values(RelationTypes)), + label: vine.string().trim().minLength(2).maxLength(255), + }), + ) + .optional(), + subjects: vine + .array( + vine.object({ + value: vine.string().trim().minLength(3).maxLength(255), + // pivot_contributor_type: vine.enum(Object.keys(ContributorTypes)), + language: vine.string().trim().minLength(2).maxLength(255), + }), + ) + .minLength(3) + .distinct('value') + .optional(), + }); + + try { + // Step 3 - Validate request body against the schema + // await request.validate({ schema: newDatasetSchema, messages: this.messages }); + const validator = vine.compile(newDatasetSchema); + await request.validateUsing(validator, { messagesProvider: new SimpleMessagesProvider(this.messages) }); // console.log({ payload }); } catch (error) { // Step 3 - Handle errors // return response.badRequest(error.messages); throw error; } + return response.redirect().back(); + } + + public async store({ auth, request, response, session }: HttpContext) { + // At the top of the store() method, declare an array to hold temporary file paths + const uploadedTmpFiles: string[] = []; + // Aggregated limit example (adjust as needed) + const multipartConfig = getConfigFor('multipart'); + const aggregatedLimit = multipartConfig.limit ? parseBytesSize(multipartConfig.limit) : 100 * 1024 * 1024; + // const aggregatedLimit = 200 * 1024 * 1024; + let totalUploadedSize = 0; + + // // Helper function to format bytes as human-readable text + // function formatBytes(bytes: number): string { + // if (bytes === 0) return '0 Bytes'; + // const k = 1024; + // const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB']; + // const i = Math.floor(Math.log(bytes) / Math.log(k)); + // return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i]; + // } + // const enabledExtensions = await this.getEnabledExtensions(); + const multipart: Multipart = request.multipart; + + multipart.onFile('files', { deferValidations: true }, async (part) => { + // Attach an individual file size accumulator if needed + let fileUploadedSize = 0; + + // Simply accumulate the size in on('data') without performing the expensive check per chunk + part.on('data', (chunk) => { + // reporter(chunk); + // Increase counters using the chunk length + fileUploadedSize += chunk.length; + }); + + // After the file is completely read, update the global counter and check aggregated limit + part.on('end', () => { + totalUploadedSize += fileUploadedSize; + part.file.size = fileUploadedSize; + // Record the temporary file path + if (part.file.tmpPath) { + uploadedTmpFiles.push(part.file.tmpPath); + } + + if (totalUploadedSize > aggregatedLimit) { + // Clean up all temporary files if aggregate limit is exceeded + uploadedTmpFiles.forEach((tmpPath) => { + try { + fs.unlinkSync(tmpPath); + } catch (cleanupError) { + console.error('Error cleaning up temporary file:', cleanupError); + } + }); + const error = new errors.E_VALIDATION_ERROR({ + 'upload error': `Aggregated upload limit of ${formatBytes(aggregatedLimit)} exceeded. The total size of files being uploaded would exceed the limit.`, + }); + request.multipart.abort(error); + } + }); + + part.on('error', (error) => { + // fileUploadError = error; + request.multipart.abort(error); + }); + + // await pipeline(part, createWriteStream(filePath)); + // return { filePath }; + // Process file with error handling + try { + // Extract extension from the client file name, e.g. "Tethys 5 - Ampflwang_dataset.zip" + const ext = path.extname(part.file.clientName).replace('.', ''); + // Attach the extracted extension to the file object for later use + part.file.extname = ext; + + // part.file.sortOrder = part.file.sortOrder; + + const tmpPath = getTmpPath(multipartConfig); + (part.file as any).tmpPath = tmpPath; + + const writeStream = createWriteStream(tmpPath); + await pipeline(part, writeStream); + } catch (error) { + request.multipart.abort(new errors.E_VALIDATION_ERROR({ 'upload error': error.message })); + } + }); + + try { + await multipart.process(); + // // Instead of letting an error abort the controller, check if any error occurred + } catch (error) { + // This is where you'd expect to catch any errors. + session.flash('errors', error.messages); + return response.redirect().back(); + } let trx: TransactionClientContract | null = null; try { - trx = await Database.transaction(); + await request.validateUsing(createDatasetValidator); + trx = await db.transaction(); const user = (await User.find(auth.user?.id)) as User; await this.createDatasetAndAssociations(user, request, trx); @@ -327,6 +522,14 @@ export default class DatasetController { await trx.commit(); console.log('Dataset and related models created successfully'); } catch (error) { + // Clean up temporary files if validation or later steps fail + uploadedTmpFiles.forEach((tmpPath) => { + try { + fs.unlinkSync(tmpPath); + } catch (cleanupError) { + console.error('Error cleaning up temporary file:', cleanupError); + } + }); if (trx !== null) { await trx.rollback(); } @@ -336,17 +539,22 @@ export default class DatasetController { } session.flash('message', 'Dataset has been created successfully'); - // return response.redirect().toRoute('user.index'); - return response.redirect().back(); + return response.redirect().toRoute('dataset.list'); + // return response.redirect().back(); } - - private async createDatasetAndAssociations(user: User, request: HttpContextContract['request'], trx: TransactionClientContract) { + private async createDatasetAndAssociations( + user: User, + request: HttpContext['request'], + trx: TransactionClientContract, + // uploadedFiles: Array, + ) { // Create a new instance of the Dataset model: const dataset = new Dataset(); dataset.type = request.input('type'); dataset.creating_corporation = request.input('creating_corporation'); dataset.language = request.input('language'); dataset.embargo_date = request.input('embargo_date'); + dataset.project_id = request.input('project_id'); //await dataset.related('user').associate(user); // speichert schon ab // Dataset.$getRelation('user').boot(); // Dataset.$getRelation('user').setRelated(dataset, user); @@ -355,7 +563,7 @@ export default class DatasetController { //store licenses: const licenses: number[] = request.input('licenses', []); - dataset.useTransaction(trx).related('licenses').sync(licenses); + await dataset.useTransaction(trx).related('licenses').sync(licenses); // save authors and contributors await this.savePersons(dataset, request.input('authors', []), 'author', trx); @@ -404,7 +612,7 @@ export default class DatasetController { } // save collection - const collection: Collection | null = await Collection.query().where('id', 21).first(); + const collection: Collection | null = await Collection.query().where('id', 594).first(); collection && (await dataset.useTransaction(trx).related('collections').attach([collection.id])); // save coverage @@ -421,7 +629,7 @@ export default class DatasetController { } // save data files - const uploadedFiles = request.files('files'); + const uploadedFiles: MultipartFile[] = request.files('files'); for (const [index, file] of uploadedFiles.entries()) { try { await this.scanFileForViruses(file.tmpPath); //, 'gitea.lan', 3310); @@ -433,34 +641,55 @@ export default class DatasetController { // clientName: 'Gehaltsschema.png' // extname: 'png' // fieldName: 'file' - const fileName = `file-${cuid()}.${file.extname}`; + // const fileName = `file-${this.generateRandomString(32)}.${file.extname}`; + const fileName = this.generateFilename(file.extname as string); const mimeType = file.headers['content-type'] || 'application/octet-stream'; // Fallback to a default MIME type const datasetFolder = `files/${dataset.id}`; + const datasetFullPath = path.join(`${datasetFolder}`, fileName); // const size = file.size; - await file.moveToDisk( - datasetFolder, - { - name: fileName, - overwrite: true, // overwrite in case of conflict - }, - 'local', - ); + // await file.move(drive.makePath(datasetFolder), { + // name: fileName, + // overwrite: true, // overwrite in case of conflict + // }); + await file.moveToDisk(datasetFullPath, 'local', { + name: fileName, + overwrite: true, // overwrite in case of conflict + disk: 'local', + }); + // save file metadata into db const newFile = new File(); newFile.pathName = `${datasetFolder}/${fileName}`; newFile.fileSize = file.size; newFile.mimeType = mimeType; newFile.label = file.clientName; - newFile.sortOrder = index; + newFile.sortOrder = index + 1; newFile.visibleInFrontdoor = true; newFile.visibleInOai = true; // let path = coverImage.filePath; await dataset.useTransaction(trx).related('files').save(newFile); - // await newFile.createHashValues(); + await newFile.createHashValues(trx); } } - private async scanFileForViruses(filePath, host?: string, port?: number): Promise { + private generateRandomString(length: number): string { + return crypto + .randomBytes(Math.ceil(length / 2)) + .toString('hex') + .slice(0, length); + } + + private generateFilename(extension: string): string { + const randomString1 = this.generateRandomString(8); + const randomString2 = this.generateRandomString(4); + const randomString3 = this.generateRandomString(4); + const randomString4 = this.generateRandomString(4); + const randomString5 = this.generateRandomString(12); + + return `file-${randomString1}-${randomString2}-${randomString3}-${randomString4}-${randomString5}.${extension}`; + } + + private async scanFileForViruses(filePath: string | undefined, host?: string, port?: number): Promise { // const clamscan = await (new ClamScan().init()); const opts: ClamScan.Options = { removeInfected: true, // If true, removes infected files @@ -484,13 +713,15 @@ export default class DatasetController { const { file, isInfected, viruses } = await clamscan.isInfected(filePath); if (isInfected) { console.log(`${file} is infected with ${viruses}!`); - reject(new ValidationException(true, { 'upload error': `File ${file} is infected!` })); + // reject(new ValidationException(true, { 'upload error': `File ${file} is infected!` })); + reject(new errors.E_VALIDATION_ERROR({ 'upload error': `File ${file} is infected!` })); } else { resolve(); } } catch (error) { // If there's an error scanning the file, throw a validation exception - reject(new ValidationException(true, { 'upload error': `${error.message}` })); + // reject(new ValidationException(true, { 'upload error': `${error.message}` })); + reject(new errors.E_VALIDATION_ERROR({ 'upload error': `${error.message}!` })); } }); } @@ -521,7 +752,7 @@ export default class DatasetController { // Helper function to extract pivot attributes from a person object private extractPivotAttributes(person: any) { - const pivotAttributes = {}; + const pivotAttributes: Dictionary = {}; for (const key in person) { if (key.startsWith('pivot_')) { // pivotAttributes[key] = person[key]; @@ -532,24 +763,27 @@ export default class DatasetController { return pivotAttributes; } - public messages: CustomMessages = { - 'minLength': '{{ field }} must be at least {{ options.minLength }} characters long', - 'maxLength': '{{ field }} must be less then {{ options.maxLength }} characters long', + public messages = { + 'minLength': '{{ field }} must be at least {{ min }} characters long', + 'maxLength': '{{ field }} must be less then {{ max }} characters long', 'required': '{{ field }} is required', 'unique': '{{ field }} must be unique, and this value is already taken', // 'confirmed': '{{ field }} is not correct', - 'licenses.minLength': 'at least {{ options.minLength }} permission must be defined', + 'licenses.array.minLength': 'at least {{ min }} licence must be defined', 'licenses.*.number': 'Define roles as valid numbers', - 'rights.equalTo': 'you must agree to continue', + 'rights.in': 'you must agree to continue', - 'titles.0.value.minLength': 'Main Title must be at least {{ options.minLength }} characters long', + // 'titles.array.minLength': 'Main Title is required', + 'titles.0.value.minLength': 'Main Title must be at least {{ min }} characters long', + 'titles.0.value.maxLength': 'Main Title must be less than {{ max }} characters long', 'titles.0.value.required': 'Main Title is required', 'titles.*.value.required': 'Additional title is required, if defined', 'titles.*.type.required': 'Additional title type is required', 'titles.*.language.required': 'Additional title language is required', 'titles.*.language.translatedLanguage': 'The language of the translated title must be different from the language of the dataset', - 'descriptions.0.value.minLength': 'Main Abstract must be at least {{ options.minLength }} characters long', + 'descriptions.0.value.minLength': 'Main Abstract must be at least {{ min }} characters long', + 'descriptions.0.value.maxLength': 'Main Abstract must be less than {{ max }} characters long', 'descriptions.0.value.required': 'Main Abstract is required', 'descriptions.*.value.required': 'Additional description is required, if defined', 'descriptions.*.type.required': 'Additional description type is required', @@ -557,47 +791,35 @@ export default class DatasetController { 'descriptions.*.language.translatedLanguage': 'The language of the translated description must be different from the language of the dataset', - 'authors.minLength': 'at least {{ options.minLength }} author must be defined', + 'authors.array.minLength': 'at least {{ min }} author must be defined', + 'authors.array.distinct': 'The {{ field }} array must have unique values based on the {{ fields }} attribute.', + 'authors.*.email.isUnique': 'the email of the new creator already exists in the database', 'contributors.*.pivot_contributor_type.required': 'contributor type is required, if defined', + 'contributors.distinct': 'The {{ field }} array must have unique values based on the {{ fields }} attribute.', 'after': `{{ field }} must be older than ${dayjs().add(10, 'day')}`, - 'subjects.minLength': 'at least {{ options.minLength }} keywords must be defined', - 'subjects.uniqueArray': 'The {{ options.array }} array must have unique values based on the {{ options.field }} attribute.', + 'subjects.array.minLength': 'at least {{ min }} keywords must be defined', 'subjects.*.value.required': 'keyword value is required', - 'subjects.*.value.minLength': 'keyword value must be at least {{ options.minLength }} characters long', + 'subjects.*.value.minLength': 'keyword value must be at least {{ min }} characters long', 'subjects.*.type.required': 'keyword type is required', 'subjects.*.language.required': 'language of keyword is required', + 'subjects.distinct': 'The {{ field }} array must have unique values based on the {{ fields }} attribute.', 'references.*.value.required': 'Additional reference value is required, if defined', 'references.*.type.required': 'Additional reference identifier type is required', 'references.*.relation.required': 'Additional reference relation type is required', 'references.*.label.required': 'Additional reference label is required', - 'files.minLength': 'At least {{ options.minLength }} file upload is required.', + 'files.array.minLength': 'At least {{ min }} file upload is required.', 'files.*.size': 'file size is to big', - 'files.extnames': 'file extension is not supported', + 'files.*.extnames': 'file extension is not supported', + + 'embargo_date.date.afterOrEqual': `Embargo date must be on or after ${dayjs().add(10, 'day').format('DD.MM.YYYY')}`, }; - private async getDatasetXmlDomNode(dataset: Dataset) { - // dataset.fetchValues(); - const xmlModel = new XmlModel(dataset); - // xmlModel.setModel(dataset); - xmlModel.excludeEmptyFields(); - xmlModel.caching = true; - // const cache = dataset.xmlCache ? dataset.xmlCache : null; - // dataset.load('xmlCache'); - if (dataset.xmlCache) { - xmlModel.xmlCache = dataset.xmlCache; - } - - // return cache.getDomDocument(); - const domDocument: XMLBuilder | null = await xmlModel.getDomDocument(); - return domDocument; - } - // public async release({ params, view }) { - public async release({ request, inertia, response }: HttpContextContract) { + public async release({ request, inertia, response }: HttpContext) { const id = request.param('id'); const dataset = await Dataset.query() @@ -624,7 +846,7 @@ export default class DatasetController { }); } - public async releaseUpdate({ request, response }: HttpContextContract) { + public async releaseUpdate({ request, response }: HttpContext) { const id = request.param('id'); const dataset = await Dataset.query().preload('files').where('id', id).firstOrFail(); @@ -650,13 +872,18 @@ export default class DatasetController { const preferredReviewerEmail = request.input('preferred_reviewer_email'); if (preferation === 'yes_preferation') { - const newSchema = schema.create({ - preferred_reviewer: schema.string({ trim: true }, [rules.minLength(3), rules.maxLength(255)]), - preferred_reviewer_email: schema.string([rules.email()]), + const newSchema = vine.object({ + preferred_reviewer: vine.string().alphaNumeric().trim().minLength(3).maxLength(255), + preferred_reviewer_email: vine.string().maxLength(255).email().normalizeEmail(), }); try { - await request.validate({ schema: newSchema }); + // await request.validate({ + // schema: newSchema, + // // reporter: validator.reporters.vanilla, + // }); + const validator = vine.compile(newSchema); + await request.validateUsing(validator); } catch (error) { // return response.badRequest(error.messages); throw error; @@ -694,34 +921,48 @@ export default class DatasetController { } if (await dataset.merge(input).save()) { - return response.toRoute('dataset.list').flash('message', 'You have released your dataset!'); + return response.toRoute('dataset.list').flash('You have released your dataset!', 'message'); } // throw new GeneralException(trans('exceptions.publish.release.update_error')); } - public async edit({ params, inertia }) { - const datasetQuery = Dataset.query().where('id', params.id); - datasetQuery.preload('titles').preload('descriptions').preload('coverage'); - const dataset = await datasetQuery.firstOrFail(); + public async edit({ request, inertia, response, auth }: HttpContext) { + const id = request.param('id'); + const datasetQuery = Dataset.query().where('id', id); + datasetQuery + .preload('titles', (query) => query.orderBy('id', 'asc')) + .preload('descriptions', (query) => query.orderBy('id', 'asc')) + .preload('coverage') + .preload('licenses') + .preload('authors', (query) => query.orderBy('pivot_sort_order', 'asc')) + .preload('contributors', (query) => query.orderBy('pivot_sort_order', 'asc')) + // .preload('subjects') + .preload('subjects', (builder) => { + builder.orderBy('id', 'asc').withCount('datasets'); + }) + .preload('references') + .preload('files', (query) => { + query.orderBy('sort_order', 'asc'); // Sort by sort_order column + }); - // await dataset.loadMany([ - // 'licenses', - // 'authors', - // 'contributors', - // 'titles', - // 'abstracts', - // 'files', - // 'coverage', - // 'subjects', - // 'references', - // ]); + const dataset = await datasetQuery.firstOrFail(); + const validStates = ['inprogress', 'rejected_editor']; + if (!validStates.includes(dataset.server_state)) { + // session.flash('errors', 'Invalid server state!'); + return response + .flash( + `Invalid server state. Dataset with id ${id} cannot be edited. Datset has server state ${dataset.server_state}.`, + 'warning', + ) + .toRoute('dataset.list'); + } const titleTypes = Object.entries(TitleTypes) - // .filter(([value]) => value !== 'Main') + .filter(([value]) => value !== 'Main') .map(([key, value]) => ({ value: key, label: value })); const descriptionTypes = Object.entries(DescriptionTypes) - // .filter(([value]) => value !== 'Abstract') + .filter(([value]) => value !== 'Abstract') .map(([key, value]) => ({ value: key, label: value })); const languages = await Language.query().where('active', true).pluck('part1', 'part1'); @@ -741,42 +982,20 @@ export default class DatasetController { const currentYear = currentDate.getFullYear(); const years = Array.from({ length: currentYear - 1990 + 1 }, (_, index) => 1990 + index); - // const licenses = await License.query() - // .select('id', 'name_long', 'link_licence') - // .orderBy('sort_order') - // .fetch(); - const licenses = await License.query().select('id', 'name_long', 'link_licence').orderBy('sort_order'); - + const licenses = await License.query().select('id', 'name_long').where('active', 'true').pluck('name_long', 'id'); + // const userHasRoles = user.roles; + // const datasetHasLicenses = await dataset.related('licenses').query().pluck('id'); // const checkeds = dataset.licenses.first().id; - const keywordTypes = { - uncontrolled: 'uncontrolled', - swd: 'swd', - }; - - const referenceTypes = ['DOI', 'Handle', 'ISBN', 'ISSN', 'URL', 'URN']; - - const relationTypes = [ - 'IsSupplementTo', - 'IsSupplementedBy', - 'IsContinuedBy', - 'Continues', - 'IsNewVersionOf', - 'IsPartOf', - 'HasPart', - 'Compiles', - 'IsVariantFormOf', - ]; - - const doctypes = { - analysisdata: { label: 'Analysis', value: 'analysisdata' }, - measurementdata: { label: 'Measurements', value: 'measurementdata' }, - monitoring: 'Monitoring', - remotesensing: 'Remote Sensing', - gis: 'GIS', - models: 'Models', - mixedtype: 'Mixed Type', - }; + // const doctypes = { + // analysisdata: { label: 'Analysis', value: 'analysisdata' }, + // measurementdata: { label: 'Measurements', value: 'measurementdata' }, + // monitoring: 'Monitoring', + // remotesensing: 'Remote Sensing', + // gis: 'GIS', + // models: 'Models', + // mixedtype: 'Mixed Type', + // }; return inertia.render('Submitter/Dataset/Edit', { dataset, @@ -788,25 +1007,407 @@ export default class DatasetController { // messages, projects, licenses, + // datasetHasLicenses: Object.keys(datasetHasLicenses).map((key) => datasetHasLicenses[key]), //convert object to array with license ids // checkeds, years, // languages, - keywordTypes, - referenceTypes, - relationTypes, - doctypes, + subjectTypes: SubjectTypes, + referenceIdentifierTypes: Object.entries(ReferenceIdentifierTypes).map(([key, value]) => ({ value: key, label: value })), + relationTypes: Object.entries(RelationTypes).map(([key, value]) => ({ value: key, label: value })), + doctypes: DatasetTypes, + can: { + edit: await auth.user?.can(['dataset-edit']), + delete: await auth.user?.can(['dataset-delete']), + }, }); } - public async delete({ request, inertia, response, session }) { + public async update({ request, response, session }: HttpContext) { + // Get the dataset id from the route parameter + const datasetId = request.param('id'); + // Retrieve the dataset and load its existing files + const dataset = await Dataset.findOrFail(datasetId); + await dataset.load('files'); + // Accumulate the size of the already related files + // const preExistingFileSize = dataset.files.reduce((acc, file) => acc + file.fileSize, 0); + let preExistingFileSize = 0; + for (const file of dataset.files) { + preExistingFileSize += Number(file.fileSize); + } + + const uploadedTmpFiles: string[] = []; + // Only process multipart if the request has a multipart content type + const contentType = request.request.headers['content-type'] || ''; + if (contentType.includes('multipart/form-data')) { + const multipart: Multipart = request.multipart; + // Aggregated limit example (adjust as needed) + const multipartConfig = getConfigFor('multipart'); + const aggregatedLimit = multipartConfig.limit ? parseBytesSize(multipartConfig.limit) : 100 * 1024 * 1024; + // Initialize totalUploadedSize with the size of existing files + let totalUploadedSize = preExistingFileSize; + + multipart.onFile('files', { deferValidations: true }, async (part) => { + let fileUploadedSize = 0; + + part.on('data', (chunk) => { + fileUploadedSize += chunk.length; + }); + + part.on('end', () => { + totalUploadedSize += fileUploadedSize; + part.file.size = fileUploadedSize; + if (part.file.tmpPath) { + uploadedTmpFiles.push(part.file.tmpPath); + } + if (totalUploadedSize > aggregatedLimit) { + uploadedTmpFiles.forEach((tmpPath) => { + try { + fs.unlinkSync(tmpPath); + } catch (cleanupError) { + console.error('Error cleaning up temporary file:', cleanupError); + } + }); + const error = new errors.E_VALIDATION_ERROR({ + 'upload error': `Aggregated upload limit of ${formatBytes(aggregatedLimit)} exceeded. The total size of files being uploaded would exceed the limit.`, + }); + request.multipart.abort(error); + } + }); + + part.on('error', (error) => { + request.multipart.abort(error); + }); + + try { + const fileNameWithoutParams = part.file.clientName.split('?')[0]; + const ext = path.extname(fileNameWithoutParams).replace('.', ''); + part.file.extname = ext; + const tmpPath = getTmpPath(multipartConfig); + (part.file as any).tmpPath = tmpPath; + const writeStream = createWriteStream(tmpPath); + await pipeline(part, writeStream); + } catch (error) { + request.multipart.abort(new errors.E_VALIDATION_ERROR({ 'upload error': error.message })); + } + }); + + try { + await multipart.process(); + } catch (error) { + session.flash('errors', error.messages); + return response.redirect().back(); + } + } + + const id = request.param('id'); + let trx: TransactionClientContract | null = null; + try { + await request.validateUsing(updateDatasetValidator); + trx = await db.transaction(); + // const user = (await User.find(auth.user?.id)) as User; + // await this.createDatasetAndAssociations(user, request, trx); + const dataset = await Dataset.findOrFail(id); + + // save the licenses + const licenses: number[] = request.input('licenses', []); + // await dataset.useTransaction(trx).related('licenses').sync(licenses); + await dataset.useTransaction(trx).related('licenses').sync(licenses); + + // save authors and contributors + await dataset.useTransaction(trx).related('authors').sync([]); + await dataset.useTransaction(trx).related('contributors').sync([]); + await this.savePersons(dataset, request.input('authors', []), 'author', trx); + await this.savePersons(dataset, request.input('contributors', []), 'contributor', trx); + + //save the titles: + const titles = request.input('titles', []); + // const savedTitles:Array = []; + for (const titleData of titles) { + if (titleData.id) { + const title = await Title.findOrFail(titleData.id); + title.value = titleData.value; + title.language = titleData.language; + title.type = titleData.type; + if (title.$isDirty) { + await title.useTransaction(trx).save(); + // await dataset.useTransaction(trx).related('titles').save(title); + // savedTitles.push(title); + } + } else { + const title = new Title(); + title.fill(titleData); + // savedTitles.push(title); + await dataset.useTransaction(trx).related('titles').save(title); + } + } + + // save the abstracts + const descriptions = request.input('descriptions', []); + // const savedTitles:Array<Title> = []; + for (const descriptionData of descriptions) { + if (descriptionData.id) { + const description = await Description.findOrFail(descriptionData.id); + description.value = descriptionData.value; + description.language = descriptionData.language; + description.type = descriptionData.type; + if (description.$isDirty) { + await description.useTransaction(trx).save(); + // await dataset.useTransaction(trx).related('titles').save(title); + // savedTitles.push(title); + } + } else { + const description = new Description(); + description.fill(descriptionData); + // savedTitles.push(title); + await dataset.useTransaction(trx).related('descriptions').save(description); + } + } + + // Process all subjects/keywords from the request + const subjects = request.input('subjects'); + for (const subjectData of subjects) { + // Case 1: Subject already exists in the database (has an ID) + if (subjectData.id) { + // Retrieve the existing subject + const existingSubject = await Subject.findOrFail(subjectData.id); + + // Update subject properties from the request data + existingSubject.value = subjectData.value; + existingSubject.type = subjectData.type; + existingSubject.external_key = subjectData.external_key; + + // Only save if there are actual changes + if (existingSubject.$isDirty) { + await existingSubject.save(); + } + + // Note: The relationship between dataset and subject is already established, + // so we don't need to attach it again + } + // Case 2: New subject being added (no ID) + else { + // Check if a subject with the same value and type already exists in the database + const subject = await Subject.firstOrNew({ value: subjectData.value, type: subjectData.type }, subjectData); + + if (subject.$isNew === true) { + // If it's a completely new subject, create and associate it with the dataset + await dataset.useTransaction(trx).related('subjects').save(subject); + } else { + // If the subject already exists, just create the relationship + await dataset.useTransaction(trx).related('subjects').attach([subject.id]); + } + } + } + + const subjectsToDelete = request.input('subjectsToDelete', []); + for (const subjectData of subjectsToDelete) { + if (subjectData.id) { + // const subject = await Subject.findOrFail(subjectData.id); + const subject = await Subject.query() + .where('id', subjectData.id) + .preload('datasets', (builder) => { + builder.orderBy('id', 'asc'); + }) + .withCount('datasets') + .firstOrFail(); + + // Check if the subject is used by multiple datasets + if (subject.$extras.datasets_count > 1) { + // If used by multiple datasets, just detach it from the current dataset + await dataset.useTransaction(trx).related('subjects').detach([subject.id]); + } else { + // If only used by this dataset, delete the subject completely + + await dataset.useTransaction(trx).related('subjects').detach([subject.id]); + await subject.useTransaction(trx).delete(); + } + } + } + + // Process references + const references = request.input('references', []); + // First, get existing references to determine which ones to update vs. create + const existingReferences = await dataset.related('references').query(); + const existingReferencesMap: Map<number, DatasetReference> = new Map(existingReferences.map((ref) => [ref.id, ref])); + + for (const referenceData of references) { + if (existingReferencesMap.has(referenceData.id) && referenceData.id) { + // Update existing reference + const reference = existingReferencesMap.get(referenceData.id); + if (reference) { + reference.merge(referenceData); + if (reference.$isDirty) { + await reference.useTransaction(trx).save(); + } + } + } else { + // Create new reference + const dataReference = new DatasetReference(); + dataReference.fill(referenceData); + await dataset.useTransaction(trx).related('references').save(dataReference); + } + } + + // Handle references to delete if provided + const referencesToDelete = request.input('referencesToDelete', []); + for (const referenceData of referencesToDelete) { + if (referenceData.id) { + const reference = await DatasetReference.findOrFail(referenceData.id); + await reference.useTransaction(trx).delete(); + } + } + + // save coverage + const coverageData = request.input('coverage'); + if (coverageData) { + if (coverageData.id) { + const coverage = await Coverage.findOrFail(coverageData.id); + coverage.merge(coverageData); + if (coverage.$isDirty) { + await coverage.useTransaction(trx).save(); + } + } + } + + // Save already existing files + const files = request.input('fileInputs', []); + for (const fileData of files) { + if (fileData.id) { + const file = await File.findOrFail(fileData.id); + file.label = fileData.label; + file.sortOrder = fileData.sort_order; + if (file.$isDirty) { + await file.useTransaction(trx).save(); + } + } + } + + // handle new uploaded files: + const uploadedFiles: MultipartFile[] = request.files('files'); + if (Array.isArray(uploadedFiles) && uploadedFiles.length > 0) { + for (const [index, file] of uploadedFiles.entries()) { + try { + await this.scanFileForViruses(file.tmpPath); //, 'gitea.lan', 3310); + // await this.scanFileForViruses("/tmp/testfile.txt"); + } catch (error) { + // If the file is infected or there's an error scanning the file, throw a validation exception + throw error; + } + + // move to disk: + const fileName = this.generateFilename(file.extname as string); + const datasetFolder = `files/${dataset.id}`; // 'files/307' + const datasetFullPath = path.join(`${datasetFolder}`, fileName); + // await file.moveToDisk(datasetFolder, { name: fileName, overwrite: true }, 'local'); + // await file.move(drive.makePath(datasetFolder), { + // name: fileName, + // overwrite: true, // overwrite in case of conflict + // }); + await file.moveToDisk(datasetFullPath, 'local', { + name: fileName, + overwrite: true, // overwrite in case of conflict + disk: 'local', + }); + + //save to db: + const { clientFileName, sortOrder } = this.extractVariableNameAndSortOrder(file.clientName); + const mimeType = file.headers['content-type'] || 'application/octet-stream'; // Fallback to a default MIME type + const newFile = await dataset + .useTransaction(trx) + .related('files') + .create({ + pathName: `${datasetFolder}/${fileName}`, + fileSize: file.size, + mimeType, + label: clientFileName, + sortOrder: sortOrder || index, + visibleInFrontdoor: true, + visibleInOai: true, + }); + + // save many related HashValue Instances to the file: + await newFile.createHashValues(trx); + } + } + + const filesToDelete = request.input('filesToDelete', []); + for (const fileData of filesToDelete) { + if (fileData.id) { + const file = await File.findOrFail(fileData.id); + await file.useTransaction(trx).delete(); + } + } + + // save collection + // const collection: Collection | null = await Collection.query().where('id', 21).first(); + // collection && (await dataset.useTransaction(trx).related('collections').attach([collection.id])); + + // // Save coverage + // if (data.coverage && !this.containsOnlyNull(data.coverage)) { + // const formCoverage = request.input('coverage'); + // const coverage = await dataset.related('coverage').updateOrCreate({ dataset_id: dataset.id }, formCoverage); + // } else if (data.coverage && this.containsOnlyNull(data.coverage) && !dataset.coverage) { + // await dataset.coverage().delete(); + // } + + const input = request.only(['project_id', 'embargo_date', 'language', 'type', 'creating_corporation']); + // dataset.type = request.input('type'); + dataset.merge(input); + // let test: boolean = dataset.$isDirty; + await dataset.useTransaction(trx).save(); + + await trx.commit(); + console.log('Dataset has been updated successfully'); + + session.flash('message', 'Dataset has been updated successfully'); + // return response.redirect().toRoute('user.index'); + return response.redirect().toRoute('dataset.edit', [dataset.id]); + } catch (error) { + // Clean up temporary files if validation or later steps fail + uploadedTmpFiles.forEach((tmpPath) => { + try { + fs.unlinkSync(tmpPath); + } catch (cleanupError) { + console.error('Error cleaning up temporary file:', cleanupError); + } + }); + if (trx !== null) { + await trx.rollback(); + } + console.error('Failed to update dataset and related models:', error); + // throw new ValidationException(true, { 'upload error': `failed to create dataset and related models. ${error}` }); + throw error; + } + } + + private extractVariableNameAndSortOrder(inputString: string): { clientFileName: string; sortOrder?: number } { + const regex = /^([^?]+)(?:\?([^=]+)=([^&]+))?/; + const match = inputString.match(regex); + + if (match) { + const clientFileName = match[1]; + + const param = match[2]; + let sortOrder; + if (param && param.toLowerCase() === 'sortorder') { + sortOrder = parseInt(match[3], 10); + } + + return { clientFileName, sortOrder }; + } else { + return { clientFileName: '', sortOrder: undefined }; // Or handle as needed for no match + } + } + + public async delete({ request, inertia, response, session }: HttpContext) { const id = request.param('id'); try { const dataset = await Dataset.query() .preload('user', (builder) => { builder.select('id', 'login'); }) - .preload('files') .where('id', id) + .preload('files') .firstOrFail(); const validStates = ['inprogress', 'rejected_editor']; if (!validStates.includes(dataset.server_state)) { @@ -832,7 +1433,7 @@ export default class DatasetController { } } - public async deleteUpdate({ params, session, response }) { + public async deleteUpdate({ params, session, response }: HttpContext) { try { const dataset = await Dataset.query().where('id', params.id).preload('files').firstOrFail(); @@ -840,36 +1441,123 @@ export default class DatasetController { if (validStates.includes(dataset.server_state)) { if (dataset.files && dataset.files.length > 0) { for (const file of dataset.files) { - if (file.pathName) { - // delete file from filesystem - await Drive.delete(file.pathName); - } + // overwritten delete method also delets file on filespace and db object + await file.delete(); } } - // delete dataset wirh relation from db + const datasetFolder = `files/${params.id}`; + // const folderExists = await drive.use('local').exists(datasetFolder); + // if (folderExists) { + // const dirListing = drive.list(datasetFolder); + // const folderContents = await dirListing.toArray(); + // if (folderContents.length === 0) { + // await drive.delete(datasetFolder); + // } + await drive.use('local').deleteAll(datasetFolder); + // delete dataset wirh relation in db await dataset.delete(); session.flash({ message: 'You have deleted 1 dataset!' }); return response.redirect().toRoute('dataset.list'); - } else { - session.flash({ - warning: `You cannot delete this dataset! The status of this dataset is "${dataset.server_state}"!`, - }); - return response.redirect().back(); + // } else { + // // session.flash({ + // // warning: `You cannot delete this dataset! Invalid server_state: "${dataset.server_state}"!`, + // // }); + // return response + // .flash({ warning: `You cannot delete this dataset! Dataset folder "${datasetFolder}" doesn't exist!` }) + // .redirect() + // .back(); + // } } } catch (error) { - if (error instanceof ValidationException) { + if (error instanceof errors.E_VALIDATION_ERROR) { // Validation exception handling throw error; } else if (error instanceof Exception) { // General exception handling - return response - .flash({ errors: { error: error.message } }) - .redirect() - .back(); + session.flash({ error: error.message }); + return response.redirect().back(); } else { session.flash({ error: 'An error occurred while deleting the dataset.' }); return response.redirect().back(); } } } + + public async categorize({ inertia, request, response }: HttpContext) { + const id = request.param('id'); + // Preload dataset and its "collections" relation + const dataset = await Dataset.query().where('id', id).preload('collections').firstOrFail(); + const validStates = ['inprogress', 'rejected_editor']; + if (!validStates.includes(dataset.server_state)) { + // session.flash('errors', 'Invalid server state!'); + return response + .flash( + 'warning', + `Invalid server state. Dataset with id ${id} cannot be edited. Datset has server state ${dataset.server_state}.`, + ) + .redirect() + .toRoute('dataset.list'); + } + + const collectionRoles = await CollectionRole.query() + .whereIn('name', ['ddc', 'ccs']) + .preload('collections', (coll: Collection) => { + // preloa only top level collection with noparent_id + coll.whereNull('parent_id').orderBy('number', 'asc'); + }) + .exec(); + + return inertia.render('Submitter/Dataset/Category', { + collectionRoles: collectionRoles, + dataset: dataset, + relatedCollections: dataset.collections, + }); + } + + public async categorizeUpdate({ request, response, session }: HttpContext) { + // Get the dataset id from the route parameter + const id = request.param('id'); + const dataset = await Dataset.query().preload('files').where('id', id).firstOrFail(); + + const validStates = ['inprogress', 'rejected_editor']; + if (!validStates.includes(dataset.server_state)) { + return response + .flash( + 'warning', + `Invalid server state. Dataset with id ${id} cannot be categorized. Dataset has server state ${dataset.server_state}.`, + ) + .redirect() + .toRoute('dataset.list'); + } + + let trx: TransactionClientContract | null = null; + try { + trx = await db.transaction(); + // const user = (await User.find(auth.user?.id)) as User; + // await this.createDatasetAndAssociations(user, request, trx); + + // Retrieve the selected collections from the request. + // This should be an array of collection ids. + const collections: number[] = request.input('collections', []); + + // Synchronize the dataset collections using the transaction. + await dataset.useTransaction(trx).related('collections').sync(collections); + + // Commit the transaction.await trx.commit() + await trx.commit(); + + // Redirect with a success flash message. + // return response.flash('success', 'Dataset collections updated successfully!').redirect().toRoute('dataset.list'); + + session.flash('message', 'Dataset collections updated successfully!'); + return response.redirect().toRoute('dataset.list'); + } catch (error) { + if (trx !== null) { + await trx.rollback(); + } + console.error('Failed tocatgorize dataset collections:', error); + // throw new ValidationException(true, { 'upload error': `failed to create dataset and related models. ${error}` }); + throw error; + } + } } diff --git a/app/Controllers/Http/Submitter/PersonController.ts b/app/Controllers/Http/Submitter/PersonController.ts index 3a67fea..3ac4aec 100644 --- a/app/Controllers/Http/Submitter/PersonController.ts +++ b/app/Controllers/Http/Submitter/PersonController.ts @@ -1,4 +1,4 @@ -import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; +import type { HttpContext } from '@adonisjs/core/http'; // import User from 'App/Models/User'; // import Dataset from 'App/Models/Dataset'; // import License from 'App/Models/License'; @@ -10,12 +10,11 @@ import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; // import Collection from 'App/Models/Collection'; // import { schema, CustomMessages, rules } from '@ioc:Adonis/Core/Validator'; // import dayjs from 'dayjs'; -import Person from 'App/Models/Person'; - -import type { ModelQueryBuilderContract } from '@ioc:Adonis/Lucid/Orm'; +import Person from '#models/person'; +import { ModelQueryBuilderContract } from "@adonisjs/lucid/types/model"; export default class PersonController { - public async index({ auth, request, inertia }: HttpContextContract) { + public async index({ auth, request, inertia }: HttpContext) { // const user = (await User.find(auth.user?.id)) as User; const page = request.input('page', 1); let persons: ModelQueryBuilderContract<typeof Person, Person> = Person.query(); diff --git a/app/Exceptions/Handler.ts b/app/Exceptions/Handler.ts deleted file mode 100644 index bacdbb1..0000000 --- a/app/Exceptions/Handler.ts +++ /dev/null @@ -1,61 +0,0 @@ -/* -|-------------------------------------------------------------------------- -| Http Exception Handler -|-------------------------------------------------------------------------- -| -| AdonisJs will forward all exceptions occurred during an HTTP request to -| the following class. You can learn more about exception handling by -| reading docs. -| -| The exception handler extends a base `HttpExceptionHandler` which is not -| mandatory, however it can do lot of heavy lifting to handle the errors -| properly. -| -*/ - -import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; -import Logger from '@ioc:Adonis/Core/Logger'; -import HttpExceptionHandler from '@ioc:Adonis/Core/HttpExceptionHandler'; - -export default class ExceptionHandler extends HttpExceptionHandler { - protected statusPages = { - '401,403': 'errors/unauthorized', - '404': 'errors/not-found', - '500..599': 'errors/server-error', - }; - - constructor() { - super(Logger); - } - - public async handle(error: any, ctx: HttpContextContract) { - const { response, request, inertia } = ctx; - - /** - * Handle failed authentication attempt - */ - // if (['E_INVALID_AUTH_PASSWORD', 'E_INVALID_AUTH_UID'].includes(error.code)) { - // session.flash('errors', { login: error.message }); - // return response.redirect('/login'); - // } - // if ([401].includes(error.status)) { - // session.flash('errors', { login: error.message }); - // return response.redirect('/dashboard'); - // } - - // https://github.com/inertiajs/inertia-laravel/issues/56 - if (request.header('X-Inertia') && [500, 503, 404, 403, 401].includes(response.getStatus())) { - return inertia.render('Error', { - status: response.getStatus(), - message: error.message, - }); - // ->toResponse($request) - // ->setStatusCode($response->status()); - } - - /** - * Forward rest of the exceptions to the parent class - */ - return super.handle(error, ctx); - } -} diff --git a/app/FlashResponse.ts b/app/FlashResponse.ts deleted file mode 100644 index 139aa0f..0000000 --- a/app/FlashResponse.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { Response } from '@adonisjs/http-server/build/src/Response'; -import { ServerResponse, IncomingMessage } from 'http'; -import { RouterContract } from '@ioc:Adonis/Core/Route'; -import { EncryptionContract } from '@ioc:Adonis/Core/Encryption'; -import { ResponseConfig, ResponseContract } from '@ioc:Adonis/Core/Response'; - -class FlashResponse extends Response implements ResponseContract { - protected static macros = {}; - protected static getters = {}; - constructor( - public request: IncomingMessage, - public response: ServerResponse, - flashEncryption: EncryptionContract, - flashConfig: ResponseConfig, - flashRouter: RouterContract, - ) { - super(request, response, flashEncryption, flashConfig, flashRouter); - } - public nonce: string; - - public flash(key: string, message: any): this { - // Store the flash message in the session - this.ctx?.session.flash(key, message); - return this; - } - - public toRoute(route: string): this { - // Redirect to the specified route - super.redirect().toRoute(route); - return this; - } -} - -export default FlashResponse; diff --git a/app/Library/Doi/DoiClient.ts b/app/Library/Doi/DoiClient.ts new file mode 100644 index 0000000..86151e7 --- /dev/null +++ b/app/Library/Doi/DoiClient.ts @@ -0,0 +1,93 @@ +// import { Client } from 'guzzle'; +// import { Log } from '@adonisjs/core/build/standalone'; +// import { DoiInterface } from './interfaces/DoiInterface'; +import DoiClientContract from '#app/Library/Doi/DoiClientContract'; +import DoiClientException from '#app/exceptions/DoiClientException'; +import { StatusCodes } from 'http-status-codes'; +import logger from '@adonisjs/core/services/logger'; +import { AxiosResponse } from 'axios'; +import { default as axios } from 'axios'; + +export class DoiClient implements DoiClientContract { + public username: string; + public password: string; + public serviceUrl: string; + + constructor() { + // const datacite_environment = process.env.DATACITE_ENVIRONMENT || 'debug'; + this.username = process.env.DATACITE_USERNAME || ''; + this.password = process.env.DATACITE_PASSWORD || ''; + this.serviceUrl = process.env.DATACITE_SERVICE_URL || ''; + // this.prefix = process.env.DATACITE_PREFIX || ''; + // this.base_domain = process.env.BASE_DOMAIN || ''; + + if (this.username === '' || this.password === '' || this.serviceUrl === '') { + const message = 'issing configuration settings to properly initialize DOI client'; + logger.error(message); + throw new DoiClientException(StatusCodes.BAD_REQUEST, message); + } + } + + /** + * Creates a DOI with the given identifier + * + * @param doiValue The desired DOI identifier e.g. '10.5072/tethys.999', + * @param xmlMeta + * @param landingPageUrl e.g. https://www.tethys.at/dataset/1 + * + * @return Promise<AxiosResponse<any>> The http response in the form of a axios response + */ + public async registerDoi(doiValue: string, xmlMeta: string, landingPageUrl: string): Promise<AxiosResponse<any>> { + //step 1: register metadata via xml upload + // state draft + // let response; + // let url = `${this.serviceUrl}/metadata/${doiValue}`; //https://mds.test.datacite.org/metadata/10.21388/tethys.213 + const auth = { + username: this.username, + password: this.password, + }; + let headers = { + 'Content-Type': 'application/xml;charset=UTF-8', + }; + try { + const metadataResponse = await axios.put(`${this.serviceUrl}/metadata/${doiValue}`, xmlMeta, { auth, headers }); + + // Response Codes + // 201 Created: operation successful + // 401 Unauthorised: no login + // 403 Forbidden: login problem, quota exceeded + // 415 Wrong Content Type : Not including content type in the header. + // 422 Unprocessable Entity : invalid XML + // let test = metadataResponse.data; // 'OK (10.21388/TETHYS.213)' + if (metadataResponse.status !== 201) { + const message = `Unexpected DataCite MDS response code ${metadataResponse.status}`; + logger.error(message); + throw new DoiClientException(metadataResponse.status, message); + } + + const doiResponse = await axios.put(`${this.serviceUrl}/doi/${doiValue}`, `doi=${doiValue}\nurl=${landingPageUrl}`, { + auth, + headers, + }); + + // Response Codes + // 201 Created: operation successful + // 400 Bad Request: request body must be exactly two lines: DOI and URL; wrong domain, wrong prefix; + // 401 Unauthorised: no login + // 403 Forbidden: login problem, quota exceeded + // 412 Precondition failed: metadata must be uploaded first. + if (doiResponse.status !== 201) { + const message = `Unexpected DataCite MDS response code ${doiResponse.status}`; + logger.error(message); + throw new DoiClientException(doiResponse.status, message); + } + + return doiResponse; + } catch (error) { + // const message = `request for registering DOI failed with ${error.message}`; + // Handle the error, log it, or rethrow as needed + logger.error(error.message); + throw new DoiClientException(error.response.status, error.response.data); + } + } +} diff --git a/app/Library/Doi/DoiClientContract.ts b/app/Library/Doi/DoiClientContract.ts new file mode 100644 index 0000000..a2729fb --- /dev/null +++ b/app/Library/Doi/DoiClientContract.ts @@ -0,0 +1,13 @@ +// import ResumptionToken from './ResumptionToken'; +import { AxiosResponse } from 'axios'; + +export default interface DoiClientContract { + username: string; + password: string; + serviceUrl: string; + // prefix: string; + // base_domain: string; + registerDoi(doiValue: string, xmlMeta: string, landingPageUrl: string): Promise<AxiosResponse<any>>; + // get(key: string): Promise<ResumptionToken | null>; + // set(token: ResumptionToken): Promise<string>; +} \ No newline at end of file diff --git a/app/Library/Oai/ResumptionToken.ts b/app/Library/Oai/ResumptionToken.ts new file mode 100644 index 0000000..56bbea4 --- /dev/null +++ b/app/Library/Oai/ResumptionToken.ts @@ -0,0 +1,60 @@ +export default class ResumptionToken { + private _documentIds: number[] = []; + private _metadataPrefix = ''; + private _resumptionId = ''; + private _startPosition = 0; + private _totalIds = 0; + private _queryParams: Record<string, any> = {}; + + get key(): string { + return this.metadataPrefix + this.startPosition + this.totalIds; + } + + get documentIds(): number[] { + return this._documentIds; + } + + set documentIds(idsToStore: number | number[]) { + this._documentIds = Array.isArray(idsToStore) ? idsToStore : [idsToStore]; + } + + get metadataPrefix(): string { + return this._metadataPrefix; + } + + set metadataPrefix(value: string) { + this._metadataPrefix = value; + } + + get resumptionId(): string { + return this._resumptionId; + } + + set resumptionId(resumptionId: string) { + this._resumptionId = resumptionId; + } + + get startPosition(): number { + return this._startPosition; + } + + set startPosition(startPosition: number) { + this._startPosition = startPosition; + } + + get totalIds(): number { + return this._totalIds; + } + + set totalIds(totalIds: number) { + this._totalIds = totalIds; + } + + get queryParams(): Record<string, any> { + return this._queryParams; + } + + set queryParams(params: Record<string, any>) { + this._queryParams = params; + } +} diff --git a/app/Library/Oai/TokenWorkerContract.ts b/app/Library/Oai/TokenWorkerContract.ts new file mode 100644 index 0000000..2491817 --- /dev/null +++ b/app/Library/Oai/TokenWorkerContract.ts @@ -0,0 +1,11 @@ +import ResumptionToken from './ResumptionToken.js'; + +export default abstract class TokenWorkerContract { + abstract ttl: number; + abstract isConnected: boolean; + abstract connect(): void; + abstract close(): void; + abstract get(key: string): Promise<ResumptionToken | null>; + abstract set(token: ResumptionToken, browserFingerprint: string): Promise<string>; +} + diff --git a/app/Library/Oai/TokenWorkerSerice.ts b/app/Library/Oai/TokenWorkerSerice.ts new file mode 100644 index 0000000..9cb9ccc --- /dev/null +++ b/app/Library/Oai/TokenWorkerSerice.ts @@ -0,0 +1,145 @@ +import ResumptionToken from './ResumptionToken.js'; +import { createClient, RedisClientType } from 'redis'; +import InternalServerErrorException from '#app/exceptions/InternalServerException'; +import { sprintf } from 'sprintf-js'; +import dayjs from 'dayjs'; +import TokenWorkerContract from './TokenWorkerContract.js'; + +export default class TokenWorkerService implements TokenWorkerContract { + protected filePrefix = 'rs_'; + protected fileExtension = 'txt'; + + private cache: RedisClientType; + public ttl: number; + private url: string; + private connected = false; + + constructor(ttl: number) { + this.ttl = ttl; // time to live + this.url = process.env.REDIS_URL || 'redis://127.0.0.1:6379'; + } + + public async connect() { + this.cache = createClient({ url: this.url }); + this.cache.on('error', (err) => { + this.connected = false; + console.log('[Redis] Redis Client Error: ', err); + }); + this.cache.on('connect', () => { + this.connected = true; + }); + await this.cache.connect(); + } + + public get isConnected(): boolean { + return this.connected; + } + + public async has(key: string): Promise<boolean> { + const result = await this.cache.get(key); + return result !== undefined && result !== null; + } + + /** + * Simplified set method that stores the token using a browser fingerprint key. + * If the token for that fingerprint already exists and its documentIds match the new token, + * then the fingerprint key is simply returned. + */ + public async set(token: ResumptionToken, browserFingerprint: string): Promise<string> { + // Generate a 15-digit unique number string based on the fingerprint + const uniqueNumberKey = this.createUniqueNumberFromFingerprint(browserFingerprint, token.documentIds, token.totalIds); + // Optionally, you could prefix it if desired, e.g. 'rs_' + uniqueNumberKey + const fingerprintKey = uniqueNumberKey; + + // const fingerprintKey = `rs_fp_${browserFingerprint}`; + const existingTokenString = await this.cache.get(fingerprintKey); + + if (existingTokenString) { + const existingToken = this.parseToken(existingTokenString); + if (this.arraysAreEqual(existingToken.documentIds, token.documentIds)) { + return fingerprintKey; + } + } + + const serialToken = JSON.stringify(token); + await this.cache.setEx(fingerprintKey, this.ttl, serialToken); + return fingerprintKey; + } + + // Updated helper method to generate a unique key based on fingerprint and documentIds + private createUniqueNumberFromFingerprint(browserFingerprint: string, documentIds: number[], totalIds: number): string { + // Combine the fingerprint, document IDs and totalIds to produce the input string + const combined = browserFingerprint + ':' + documentIds.join('-') + ':' + totalIds; + // Simple hash algorithm + let hash = 0; + for (let i = 0; i < combined.length; i++) { + hash = (hash << 5) - hash + combined.charCodeAt(i); + hash |= 0; // Convert to 32-bit integer + } + // Ensure positive number and limit it to at most 15 digits + const positiveHash = Math.abs(hash) % 1000000000000000; + // Pad with trailing zeros to ensure a 15-digit string + return positiveHash.toString().padEnd(15, '0'); + } + + // Add a helper function to compare two arrays of numbers with identical order + private arraysAreEqual(arr1: number[], arr2: number[]): boolean { + if (arr1.length !== arr2.length) { + return false; + } + return arr1.every((num, index) => num === arr2[index]); + } + + // public async set(token: ResumptionToken): Promise<string> { + // const uniqueName = await this.generateUniqueName(); + + // const serialToken = JSON.stringify(token); + // await this.cache.setEx(uniqueName, this.ttl, serialToken); + // return uniqueName; + // } + + private async generateUniqueName(): Promise<string> { + let fc = 0; + const uniqueId = dayjs().unix().toString(); + let uniqueName: string; + let cacheKeyExists: boolean; + do { + // format values + // %s - String + // %d - Signed decimal number (negative, zero or positive) + // [0-9] (Specifies the minimum width held of to the variable value) + uniqueName = sprintf('%s%05d', uniqueId, fc++); + cacheKeyExists = await this.has(uniqueName); + } while (cacheKeyExists); + return uniqueName; + } + + public async get(key: string): Promise<ResumptionToken | null> { + if (!this.cache) { + throw new InternalServerErrorException('Dataset is not available for OAI export!'); + } + + const result = await this.cache.get(key); + return result ? this.parseToken(result) : null; + } + + private parseToken(result: string): ResumptionToken { + const rToken: ResumptionToken = new ResumptionToken(); + const parsed = JSON.parse(result); + Object.assign(rToken, parsed); + return rToken; + } + + public del(key: string) { + this.cache.del(key); + } + + public flush() { + this.cache.flushAll(); + } + + public async close() { + await this.cache.disconnect(); + this.connected = false; + } +} diff --git a/app/Library/Strategy.ts b/app/Library/Strategy.ts index e069b2d..ac99d70 100644 --- a/app/Library/Strategy.ts +++ b/app/Library/Strategy.ts @@ -1,8 +1,8 @@ -import { XMLBuilder } from 'xmlbuilder2/lib/interfaces'; +import { XMLBuilder } from 'xmlbuilder2/lib/interfaces.js'; import { create } from 'xmlbuilder2'; -import Dataset from 'App/Models/Dataset'; -import Field from './Field'; -import BaseModel from 'App/Models/BaseModel'; +import Dataset from '#models/dataset'; +import Field from './Field.js'; +import BaseModel from '#models/base_model'; import { DateTime } from 'luxon'; export default class Strategy { @@ -10,7 +10,7 @@ export default class Strategy { private config; private xml: XMLBuilder; - constructor(config) { + constructor(config: any) { this.version = 1.0; this.config = config; } @@ -45,11 +45,11 @@ export default class Strategy { for (const fieldname of fieldsDiff) { const field = model.getField(fieldname); - this.mapField(field, modelNode); + this.mapField(field as Field, modelNode); } } - private mapField(field, modelNode: XMLBuilder) { + private mapField(field: Field, modelNode: XMLBuilder) { const modelClass = field.getValueModelClass(); let fieldValues = field.getValue(); @@ -107,10 +107,10 @@ export default class Strategy { childNode.att('Timezone', zoneName); } - private mapModelAttributes(myObject, childNode: XMLBuilder) { + private mapModelAttributes(myObject: any, childNode: XMLBuilder) { Object.keys(myObject).forEach((prop) => { let value = myObject[prop]; - console.log(`${prop}: ${value}`); + // console.log(`${prop}: ${value}`); if (value != null) { if (value instanceof DateTime) { value = value.toFormat('yyyy-MM-dd HH:mm:ss').trim(); @@ -161,7 +161,7 @@ export default class Strategy { return fieldValues?.toString().trim(); } - private createModelNode(model) { + private createModelNode(model: Dataset) { const className = 'Rdr_' + model.constructor.name.split('\\').pop(); //Rdr_Dataset // return dom.createElement(className); return this.xml.root().ele(className); diff --git a/app/Library/Utils/Index.ts b/app/Library/Utils/Index.ts new file mode 100644 index 0000000..9bc21f7 --- /dev/null +++ b/app/Library/Utils/Index.ts @@ -0,0 +1,197 @@ +import Dataset from '#models/dataset'; +import { Client } from '@opensearch-project/opensearch'; +import { create } from 'xmlbuilder2'; +import SaxonJS from 'saxon-js'; +import XmlModel from '#app/Library/XmlModel'; +import { XMLBuilder } from 'xmlbuilder2/lib/interfaces.js'; +import logger from '@adonisjs/core/services/logger'; +import { readFileSync } from 'fs'; +import { DateTime } from 'luxon'; +// import Config from '@ioc:Adonis/Core/Config'; +import { getDomain } from '#app/utils/utility-functions'; + +// const opensearchNode = process.env.OPENSEARCH_HOST || 'localhost'; +// const client = new Client({ node: `http://${opensearchNode}` }); // replace with your OpenSearch endpoint +interface XslTParameter { + [key: string]: any; +} +export default { + // opensearchNode: process.env.OPENSEARCH_HOST || 'localhost', + client: new Client({ node: `http://${process.env.OPENSEARCH_HOST || 'localhost'}` }), // replace with your OpenSearch endpoint + + async getDoiRegisterString(dataset: Dataset): Promise<string | undefined> { + try { + const proc = readFileSync('public/assets2/doi_datacite.sef.json'); + const xsltParameter: XslTParameter = {}; + let xml = create({ version: '1.0', encoding: 'UTF-8', standalone: true }, '<root></root>'); + const datasetNode = xml.root().ele('Dataset'); + await createXmlRecord(dataset, datasetNode); + const xmlString = xml.end({ prettyPrint: false }); + + // set timestamp + const date = DateTime.now(); + const unixTimestamp = date.toUnixInteger(); + xsltParameter['unixTimestamp'] = unixTimestamp; + + // set prefix + let prefix = ''; + // let base_domain = ''; + // const datacite_environment = process.env.DATACITE_ENVIRONMENT || 'debug'; + // if (datacite_environment === 'debug') { + // prefix = process.env.DATACITE_TEST_PREFIX || ''; + // base_domain = process.env.TEST_BASE_DOMAIN || ''; + // } else if (datacite_environment === 'production') { + // prefix = process.env.DATACITE_PREFIX || ''; + // base_domain = process.env.BASE_DOMAIN || ''; + // } + prefix = process.env.DATACITE_PREFIX || ''; + xsltParameter['prefix'] = prefix; + + const repIdentifier = 'tethys'; + xsltParameter['repIdentifier'] = repIdentifier; + + let xmlOutput; // = xmlString; + try { + const result = await SaxonJS.transform({ + // stylesheetFileName: `${config.TMP_BASE_DIR}/data-quality/rules/iati.sef.json`, + stylesheetText: proc, + destination: 'serialized', + // sourceFileName: sourceFile, + sourceText: xmlString, + stylesheetParams: xsltParameter, + // logLevel: 10, + }); + xmlOutput = result.principalResult; + } catch (error) { + logger.error('An error occurred while creating the user', error.message); + } + + return xmlOutput; + } catch (error) { + logger.error(`An error occurred while indexing datsaet with publish_id ${dataset.publish_id}.`); + } + }, + + async indexDocument(dataset: Dataset, index_name: string): Promise<void> { + try { + const proc = readFileSync('public/assets2/solr.sef.json'); + const doc: string = await this.getTransformedString(dataset, proc); + + let document = JSON.parse(doc); + await this.client.index({ + id: dataset.publish_id?.toString(), + index: index_name, + body: document, + refresh: true, + }); + logger.info(`dataset with publish_id ${dataset.publish_id} successfully indexed`); + } catch (error) { + logger.error(`An error occurred while indexing datsaet with publish_id ${dataset.publish_id}.`); + } + }, + + async getTransformedString(dataset: Dataset, proc: Buffer): Promise<string> { + let xml = create({ version: '1.0', encoding: 'UTF-8', standalone: true }, '<root></root>'); + const datasetNode = xml.root().ele('Dataset'); + await createXmlRecord(dataset, datasetNode); + const xmlString = xml.end({ prettyPrint: false }); + + try { + const result = await SaxonJS.transform({ + stylesheetText: proc, + destination: 'serialized', + sourceText: xmlString, + }); + return result.principalResult; + } catch (error) { + logger.error(`An error occurred while creating the user, error: ${error.message},`); + return ''; + } + }, +}; +/** + * Return the default global focus trap stack + * + * @return {import('focus-trap').FocusTrap[]} + */ + +// export const indexDocument = async (dataset: Dataset, index_name: string, proc: Buffer): Promise<void> => { +// try { +// const doc = await getJsonString(dataset, proc); + +// let document = JSON.parse(doc); +// await client.index({ +// id: dataset.publish_id?.toString(), +// index: index_name, +// body: document, +// refresh: true, +// }); +// Logger.info(`dataset with publish_id ${dataset.publish_id} successfully indexed`); +// } catch (error) { +// Logger.error(`An error occurred while indexing datsaet with publish_id ${dataset.publish_id}.`); +// } +// }; + +// const getJsonString = async (dataset, proc): Promise<string> => { +// let xml = create({ version: '1.0', encoding: 'UTF-8', standalone: true }, '<root></root>'); +// const datasetNode = xml.root().ele('Dataset'); +// await createXmlRecord(dataset, datasetNode); +// const xmlString = xml.end({ prettyPrint: false }); + +// try { +// const result = await transform({ +// stylesheetText: proc, +// destination: 'serialized', +// sourceText: xmlString, +// }); +// return result.principalResult; +// } catch (error) { +// Logger.error(`An error occurred while creating the user, error: ${error.message},`); +// return ''; +// } +// }; + +const createXmlRecord = async (dataset: Dataset, datasetNode: XMLBuilder): Promise<void> => { + const domNode = await getDatasetXmlDomNode(dataset); + if (domNode) { + // add frontdoor url and data-type + dataset.publish_id && addLandingPageAttribute(domNode, dataset.publish_id.toString()); + addSpecInformation(domNode, 'data-type:' + dataset.type); + if (dataset.collections) { + for (const coll of dataset.collections) { + const collRole = coll.collectionRole; + addSpecInformation(domNode, collRole.oai_name + ':' + coll.number); + } + } + + datasetNode.import(domNode); + } +}; + +const getDatasetXmlDomNode = async (dataset: Dataset): Promise<XMLBuilder | null> => { + const xmlModel = new XmlModel(dataset); + // xmlModel.setModel(dataset); + xmlModel.excludeEmptyFields(); + xmlModel.caching = true; + // const cache = dataset.xmlCache ? dataset.xmlCache : null; + // dataset.load('xmlCache'); + await dataset.load('xmlCache'); + if (dataset.xmlCache) { + xmlModel.xmlCache = dataset.xmlCache; + } + + // return cache.getDomDocument(); + const domDocument: XMLBuilder | null = await xmlModel.getDomDocument(); + return domDocument; +}; + +const addLandingPageAttribute = (domNode: XMLBuilder, dataid: string) => { + const baseDomain = process.env.OAI_BASE_DOMAIN || 'localhost'; + const url = 'https://' + getDomain(baseDomain) + '/dataset/' + dataid; + // add attribute du dataset xml element + domNode.att('landingpage', url); +}; + +const addSpecInformation= (domNode: XMLBuilder, information: string) => { + domNode.ele('SetSpec').att('Value', information); +}; \ No newline at end of file diff --git a/app/Library/XmlModel.ts b/app/Library/XmlModel.ts index 54feb2d..6f76474 100644 --- a/app/Library/XmlModel.ts +++ b/app/Library/XmlModel.ts @@ -1,8 +1,9 @@ -import DocumentXmlCache from 'App/Models/DocumentXmlCache'; -import { XMLBuilder } from 'xmlbuilder2/lib/interfaces'; -import Dataset from 'App/Models/Dataset'; -import Strategy from './Strategy'; +import DocumentXmlCache from '#models/DocumentXmlCache'; +import { XMLBuilder } from 'xmlbuilder2/lib/interfaces.js'; +import Dataset from '#models/dataset'; +import Strategy from './Strategy.js'; import { DateTime } from 'luxon'; +import { builder } from 'xmlbuilder2'; /** * This is the description of the interface @@ -84,10 +85,21 @@ export default class XmlModel { this.cache = this.cache || new DocumentXmlCache(); this.cache.document_id = dataset.id; this.cache.xml_version = 1; // (int)$this->strategy->getVersion(); - // this.cache.server_date_modified = dataset.server_date_modified.toFormat("yyyy-MM-dd HH:mm:ss"); + this.cache.server_date_modified = dataset.server_date_modified.toFormat('yyyy-MM-dd HH:mm:ss'); this.cache.xml_data = domDocument.end(); await this.cache.save(); } + const node = domDocument.find( + (n) => { + const test = n.node.nodeName == 'Rdr_Dataset'; + return test; + }, + false, + true, + )?.node; + if (node != undefined) { + domDocument = builder({ version: '1.0', encoding: 'UTF-8', standalone: true }, node); + } } return domDocument; } diff --git a/app/Middleware/Auth.ts b/app/Middleware/Auth.ts deleted file mode 100644 index f80edd6..0000000 --- a/app/Middleware/Auth.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { AuthenticationException } from '@adonisjs/auth/build/standalone'; -import type { GuardsList } from '@ioc:Adonis/Addons/Auth'; -import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; - -/** - * Auth middleware is meant to restrict un-authenticated access to a given route - * or a group of routes. - * - * You must register this middleware inside `start/kernel.ts` file under the list - * of named middleware. - */ -export default class AuthMiddleware { - /** - * The URL to redirect to when request is Unauthorized - */ - protected redirectTo = '/app/login'; - - /** - * Authenticates the current HTTP request against a custom set of defined - * guards. - * - * The authentication loop stops as soon as the user is authenticated using any - * of the mentioned guards and that guard will be used by the rest of the code - * during the current request. - */ - protected async authenticate(auth: HttpContextContract['auth'], guards: (keyof GuardsList)[]) { - /** - * Hold reference to the guard last attempted within the for loop. We pass - * the reference of the guard to the "AuthenticationException", so that - * it can decide the correct response behavior based upon the guard - * driver - */ - let guardLastAttempted: string | undefined; - - for (let guard of guards) { - guardLastAttempted = guard; - - if (await auth.use(guard).check()) { - /** - * Instruct auth to use the given guard as the default guard for - * the rest of the request, since the user authenticated - * succeeded here - */ - auth.defaultGuard = guard; - return true; - } - } - - /** - * Unable to authenticate using any guard - */ - throw new AuthenticationException('Unauthorized access', 'E_UNAUTHORIZED_ACCESS', guardLastAttempted, this.redirectTo); - } - - /** - * Handle request - */ - public async handle({ auth }: HttpContextContract, next: () => Promise<void>, customGuards: (keyof GuardsList)[]) { - /** - * Uses the user defined guards or the default guard mentioned in - * the config file - */ - const guards = customGuards.length ? customGuards : [auth.name]; - await this.authenticate(auth, guards); - await next(); - } -} diff --git a/app/Models/File.ts b/app/Models/File.ts deleted file mode 100644 index 45104c2..0000000 --- a/app/Models/File.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { DateTime } from 'luxon'; -import { - column, - hasMany, - HasMany, - belongsTo, - BelongsTo, - // manyToMany, - // ManyToMany, - SnakeCaseNamingStrategy, -} from '@ioc:Adonis/Lucid/Orm'; -import HashValue from './HashValue'; -import Dataset from './Dataset'; -import BaseModel from './BaseModel'; - -export default class File extends BaseModel { - public static namingStrategy = new SnakeCaseNamingStrategy(); - public static primaryKey = 'id'; - public static table = 'document_files'; - public static selfAssignPrimaryKey = false; - - @column({ - isPrimary: true, - }) - public id: number; - - @column({}) - public document_id: number; - - @column({}) - public pathName: string; - - @column() - public label: string; - - @column() - public comment: string; - - @column() - public mimeType: string; - - @column() - public language: string; - - @column() - public fileSize: number; - - @column() - public visibleInOai: boolean; - - @column() - public visibleInFrontdoor: boolean; - - @column() - public sortOrder: number; - - @column.dateTime({ autoCreate: true }) - public createdAt: DateTime; - - @column.dateTime({ autoCreate: true, autoUpdate: true }) - public updatedAt: DateTime; - - // public function dataset() - // { - // return $this->belongsTo(Dataset::class, 'document_id', 'id'); - // } - @belongsTo(() => Dataset, { - foreignKey: 'document_id', - }) - public dataset: BelongsTo<typeof Dataset>; - - @hasMany(() => HashValue, { - foreignKey: 'file_id', - }) - public hashvalues: HasMany<typeof HashValue>; -} diff --git a/app/Models/User.ts b/app/Models/User.ts deleted file mode 100644 index 02f249b..0000000 --- a/app/Models/User.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { DateTime } from 'luxon'; -import { column, beforeSave, manyToMany, ManyToMany, hasMany, HasMany } from '@ioc:Adonis/Lucid/Orm'; -import Hash from '@ioc:Adonis/Core/Hash'; -import Role from './Role'; -import Database from '@ioc:Adonis/Lucid/Database'; -import Config from '@ioc:Adonis/Core/Config'; -import Dataset from './Dataset'; -import BaseModel from './BaseModel'; - -// export default interface IUser { -// id: number; -// login: string; -// email: string; -// // password: string; -// // createdAt: DateTime; -// // updatedAt: DateTime; -// // async (user): Promise<void>; -// } - -const permissionTable = Config.get('rolePermission.permission_table', 'permissions'); -const rolePermissionTable = Config.get('rolePermission.role_permission_table', 'role_has_permissions'); - -const roleTable = Config.get('rolePermission.role_table', 'roles'); -const userRoleTable = Config.get('rolePermission.user_role_table', 'link_accounts_roles'); - -export default class User extends BaseModel { - public static table = 'accounts'; - - @column({ isPrimary: true }) - public id: number; - - @column() - public login: string; - - @column() - public email: string; - - @column({ serializeAs: null }) - public password: string; - - @column.dateTime({ autoCreate: true }) - public createdAt: DateTime; - - @column.dateTime({ autoCreate: true, autoUpdate: true }) - public updatedAt: DateTime; - - @beforeSave() - public static async hashPassword(user) { - if (user.$dirty.password) { - user.password = await Hash.make(user.password); - } - } - - @manyToMany(() => Role, { - pivotForeignKey: 'account_id', - pivotRelatedForeignKey: 'role_id', - pivotTable: 'link_accounts_roles', - }) - public roles: ManyToMany<typeof Role>; - - @hasMany(() => Dataset, { - foreignKey: 'account_id', - }) - public datasets: HasMany<typeof Dataset>; - - // https://github.com/adonisjs/core/discussions/1872#discussioncomment-132289 - public async getRoles(this: User): Promise<string[]> { - const test = await this.related('roles').query(); - return test.map((role) => role.name); - } - - public async can(permissionNames: Array<string>): Promise<boolean> { - // const permissions = await this.getPermissions() - // return Acl.check(expression, operand => _.includes(permissions, operand)) - const hasPermission = await this.checkHasPermissions(this, permissionNames); - return hasPermission; - } - - private async checkHasPermissions(user: User, permissionNames: Array<string>): Promise<boolean> { - let permissionPlaceHolder = '('; - let placeholders = new Array(permissionNames.length).fill('?'); - permissionPlaceHolder += placeholders.join(','); - permissionPlaceHolder += ')'; - - let { - rows: { - 0: { permissioncount }, - }, - } = await Database.rawQuery( - 'SELECT count("p"."name") as permissionCount FROM ' + - roleTable + - ' r INNER JOIN ' + - userRoleTable + - ' ur ON ur.role_id=r.id AND "ur"."account_id"=? ' + - ' INNER JOIN ' + - rolePermissionTable + - ' rp ON rp.role_id=r.id ' + - ' INNER JOIN ' + - permissionTable + - ' p ON rp.permission_id=p.id AND "p"."name" in ' + - permissionPlaceHolder + - ' LIMIT 1', - [user.id, ...permissionNames], - ); - - return permissioncount > 0; - } -} - -// export default User; diff --git a/app/Models/utils.ts b/app/Models/utils.ts deleted file mode 100644 index a706dc5..0000000 --- a/app/Models/utils.ts +++ /dev/null @@ -1,19 +0,0 @@ -import Database, { - // DatabaseQueryBuilderContract, - QueryClientContract, - TransactionClientContract, -} from '@ioc:Adonis/Lucid/Database'; -import Config from '@ioc:Adonis/Core/Config'; - -export function getUserRoles(userId: number, trx?: TransactionClientContract): Promise<Array<string>> { - const { userRole } = Config.get('acl.joinTables'); - return ((trx || Database) as QueryClientContract | TransactionClientContract) - .query() - .from('roles') - .distinct('roles.slug') - .leftJoin(userRole, `${userRole}.role_id`, 'roles.id') - .where(`${userRole}.user_id`, userId) - .then((res) => { - return res.map((r) => r.slug); - }); -} diff --git a/app/Validators/AuthValidator.ts b/app/Validators/AuthValidator.ts deleted file mode 100644 index 290f8c4..0000000 --- a/app/Validators/AuthValidator.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { schema, CustomMessages, rules } from '@ioc:Adonis/Core/Validator'; -import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; - -export default class AuthValidator { - constructor(protected ctx: HttpContextContract) {} - - /* - * Define schema to validate the "shape", "type", "formatting" and "integrity" of data. - * - * For example: - * 1. The username must be of data type string. But then also, it should - * not contain special characters or numbers. - * ``` - * schema.string({}, [ rules.alpha() ]) - * ``` - * - * 2. The email must be of data type string, formatted as a valid - * email. But also, not used by any other user. - * ``` - * schema.string({}, [ - * rules.email(), - * rules.unique({ table: 'users', column: 'email' }), - * ]) - * ``` - */ - public schema = schema.create({ - email: schema.string({ trim: true }, [ - rules.email(), - // rules.unique({ table: 'accounts', column: 'email' }) - ]), - password: schema.string({}, [rules.minLength(6)]), - }); - - /** - * Custom messages for validation failures. You can make use of dot notation `(.)` - * for targeting nested fields and array expressions `(*)` for targeting all - * children of an array. For example: - * - * { - * 'profile.username.required': 'Username is required', - * 'scores.*.number': 'Define scores as valid numbers' - * } - * - */ - public messages: CustomMessages = {}; -} diff --git a/app/Validators/CreateDatasetValidator.ts b/app/Validators/CreateDatasetValidator.ts deleted file mode 100644 index bdaaa9b..0000000 --- a/app/Validators/CreateDatasetValidator.ts +++ /dev/null @@ -1,178 +0,0 @@ -import { schema, CustomMessages, rules } from '@ioc:Adonis/Core/Validator'; -import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; -import dayjs from 'dayjs'; -import { TitleTypes, DescriptionTypes, RelationTypes, ReferenceIdentifierTypes, ContributorTypes } from 'Contracts/enums'; - -export default class CreateDatasetValidator { - constructor(protected ctx: HttpContextContract) {} - - /* - * Define schema to validate the "shape", "type", "formatting" and "integrity" of data. - * - * For example: - * 1. The username must be of data type string. But then also, it should - * not contain special characters or numbers. - * ``` - * schema.string({}, [ rules.alpha() ]) - * ``` - * - * 2. The email must be of data type string, formatted as a valid - * email. But also, not used by any other user. - * ``` - * schema.string({}, [ - * rules.email(), - * rules.unique({ table: 'users', column: 'email' }), - * ]) - * ``` - */ - public schema = schema.create({ - // first step - language: schema.string({ trim: true }, [ - rules.regex(/^[a-zA-Z0-9-_]+$/), //Must be alphanumeric with hyphens or underscores - ]), - licenses: schema.array([rules.minLength(1)]).members(schema.number()), // define at least one license for the new dataset - rights: schema.string([rules.equalTo('true')]), - // second step - type: schema.string({ trim: true }, [rules.minLength(3), rules.maxLength(255)]), - creating_corporation: schema.string({ trim: true }, [rules.minLength(3), rules.maxLength(255)]), - titles: schema.array([rules.minLength(1)]).members( - schema.object().members({ - value: schema.string({ trim: true }, [rules.minLength(3), rules.maxLength(255)]), - type: schema.enum(Object.values(TitleTypes)), - language: schema.string({ trim: true }, [ - rules.minLength(2), - rules.maxLength(255), - rules.translatedLanguage('/language', 'type'), - ]), - }), - ), - descriptions: schema.array([rules.minLength(1)]).members( - schema.object().members({ - value: schema.string({ trim: true }, [rules.minLength(3), rules.maxLength(255)]), - type: schema.enum(Object.values(DescriptionTypes)), - language: schema.string({ trim: true }, [ - rules.minLength(2), - rules.maxLength(255), - rules.translatedLanguage('/language', 'type'), - ]), - }), - ), - authors: schema.array([rules.minLength(1)]).members(schema.object().members({ email: schema.string({ trim: true }) })), - contributors: schema.array.optional().members( - schema.object().members({ - email: schema.string({ trim: true }), - pivot_contributor_type: schema.enum(Object.keys(ContributorTypes)), - }), - ), - // third step - project_id: schema.number.optional(), - embargo_date: schema.date.optional({ format: 'yyyy-MM-dd' }, [rules.after(10, 'days')]), - coverage: schema.object().members({ - x_min: schema.number(), - x_max: schema.number(), - y_min: schema.number(), - y_max: schema.number(), - elevation_absolut: schema.number.optional(), - elevation_min: schema.number.optional([rules.requiredIfExists('elevation_max')]), - elevation_max: schema.number.optional([rules.requiredIfExists('elevation_min')]), - depth_absolut: schema.number.optional(), - depth_min: schema.number.optional([rules.requiredIfExists('depth_max')]), - depth_max: schema.number.optional([rules.requiredIfExists('depth_min')]), - }), - references: schema.array.optional([rules.uniqueArray('value')]).members( - schema.object().members({ - value: schema.string({ trim: true }, [rules.minLength(3), rules.maxLength(255)]), - type: schema.enum(Object.values(ReferenceIdentifierTypes)), - relation: schema.enum(Object.values(RelationTypes)), - label: schema.string({ trim: true }, [rules.minLength(2), rules.maxLength(255)]), - }), - ), - subjects: schema.array([rules.minLength(3), rules.uniqueArray('value')]).members( - schema.object().members({ - value: schema.string({ trim: true }, [ - rules.minLength(3), - rules.maxLength(255), - // rules.unique({ table: 'dataset_subjects', column: 'value' }), - ]), - // type: schema.enum(Object.values(TitleTypes)), - language: schema.string({ trim: true }, [rules.minLength(2), rules.maxLength(255)]), - }), - ), - // file: schema.file({ - // size: '100mb', - // extnames: ['jpg', 'gif', 'png'], - // }), - files: schema.array([rules.minLength(1)]).members( - schema.file({ - size: '100mb', - extnames: ['jpg', 'gif', 'png', 'tif', 'pdf'], - }), - ), - // upload: schema.object().members({ - // label: schema.string({ trim: true }, [rules.maxLength(255)]), - - // // label: schema.string({ trim: true }, [ - // // // rules.minLength(3), - // // // rules.maxLength(255), - // // ]), - // }), - }); - - /** - * Custom messages for validation failures. You can make use of dot notation `(.)` - * for targeting nested fields and array expressions `(*)` for targeting all - * children of an array. For example: - * - * { - * 'profile.username.required': 'Username is required', - * 'scores.*.number': 'Define scores as valid numbers' - * } - * - */ - public messages: CustomMessages = { - 'minLength': '{{ field }} must be at least {{ options.minLength }} characters long', - 'maxLength': '{{ field }} must be less then {{ options.maxLength }} characters long', - 'required': '{{ field }} is required', - 'unique': '{{ field }} must be unique, and this value is already taken', - // 'confirmed': '{{ field }} is not correct', - 'licenses.minLength': 'at least {{ options.minLength }} permission must be defined', - 'licenses.*.number': 'Define roles as valid numbers', - 'rights.equalTo': 'you must agree to continue', - - 'titles.0.value.minLength': 'Main Title must be at least {{ options.minLength }} characters long', - 'titles.0.value.required': 'Main Title is required', - 'titles.*.value.required': 'Additional title is required, if defined', - 'titles.*.type.required': 'Additional title type is required', - 'titles.*.language.required': 'Additional title language is required', - 'titles.*.language.translatedLanguage': 'The language of the translated title must be different from the language of the dataset', - - 'descriptions.0.value.minLength': 'Main Abstract must be at least {{ options.minLength }} characters long', - 'descriptions.0.value.required': 'Main Abstract is required', - 'descriptions.*.value.required': 'Additional description is required, if defined', - 'descriptions.*.type.required': 'Additional description type is required', - 'descriptions.*.language.required': 'Additional description language is required', - 'descriptions.*.language.translatedLanguage': - 'The language of the translated description must be different from the language of the dataset', - - 'authors.minLength': 'at least {{ options.minLength }} author must be defined', - 'contributors.*.pivot_contributor_type.required': 'contributor type is required, if defined', - - 'after': `{{ field }} must be older than ${dayjs().add(10, 'day')}`, - - 'subjects.minLength': 'at least {{ options.minLength }} keywords must be defined', - 'subjects.uniqueArray': 'The {{ options.array }} array must have unique values based on the {{ options.field }} attribute.', - 'subjects.*.value.required': 'keyword value is required', - 'subjects.*.value.minLength': 'keyword value must be at least {{ options.minLength }} characters long', - 'subjects.*.type.required': 'keyword type is required', - 'subjects.*.language.required': 'language of keyword is required', - - 'references.*.value.required': 'Additional reference value is required, if defined', - 'references.*.type.required': 'Additional reference identifier type is required', - 'references.*.relation.required': 'Additional reference relation type is required', - 'references.*.label.required': 'Additional reference label is required', - - 'files.minLength': 'At least {{ options.minLength }} file upload is required.', - 'files.*.size': 'file size is to big', - 'files.extnames': 'file extension is not supported', - }; -} diff --git a/app/Validators/CreateRoleValidator.ts b/app/Validators/CreateRoleValidator.ts deleted file mode 100644 index 9ae4576..0000000 --- a/app/Validators/CreateRoleValidator.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { schema, CustomMessages, rules } from '@ioc:Adonis/Core/Validator'; -import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; - -export default class CreateRoleValidator { - constructor(protected ctx: HttpContextContract) {} - - /* - * Define schema to validate the "shape", "type", "formatting" and "integrity" of data. - * - * For example: - * 1. The username must be of data type string. But then also, it should - * not contain special characters or numbers. - * ``` - * schema.string({}, [ rules.alpha() ]) - * ``` - * - * 2. The email must be of data type string, formatted as a valid - * email. But also, not used by any other user. - * ``` - * schema.string({}, [ - * rules.email(), - * rules.unique({ table: 'users', column: 'email' }), - * ]) - * ``` - */ - public schema = schema.create({ - name: schema.string({ trim: true }, [ - rules.minLength(3), - rules.maxLength(255), - rules.unique({ table: 'roles', column: 'name' }), - rules.regex(/^[a-zA-Z0-9-_]+$/), //Must be alphanumeric with hyphens or underscores - ]), - display_name: schema.string.optional({ trim: true }, [ - rules.minLength(3), - rules.maxLength(255), - rules.unique({ table: 'roles', column: 'name' }), - rules.regex(/^[a-zA-Z0-9-_]+$/), //Must be alphanumeric with hyphens or underscores - ]), - description: schema.string.optional({}, [rules.minLength(3), rules.maxLength(255)]), - permissions: schema.array([rules.minLength(1)]).members(schema.number()), // define at least one role for the new role - }); - - // emails: schema - // .array([rules.minLength(1)]) - // .members( - // schema.object().members({ email: schema.string({}, [rules.email()]) }) - // ), - - /** - * Custom messages for validation failures. You can make use of dot notation `(.)` - * for targeting nested fields and array expressions `(*)` for targeting all - * children of an array. For example: - * - * { - * 'profile.username.required': 'Username is required', - * 'scores.*.number': 'Define scores as valid numbers' - * } - * - */ - public messages: CustomMessages = { - 'minLength': '{{ field }} must be at least {{ options.minLength }} characters long', - 'maxLength': '{{ field }} must be less then {{ options.maxLength }} characters long', - 'required': '{{ field }} is required', - 'unique': '{{ field }} must be unique, and this value is already taken', - 'confirmed': '{{ field }} is not correct', - 'permissions.minLength': 'at least {{ options.minLength }} permission must be defined', - 'permissions.*.number': 'Define roles as valid numbers', - }; -} diff --git a/app/Validators/CreateUserValidator.ts b/app/Validators/CreateUserValidator.ts deleted file mode 100644 index c871649..0000000 --- a/app/Validators/CreateUserValidator.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { schema, CustomMessages, rules } from '@ioc:Adonis/Core/Validator'; -import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; - -export default class CreateUserValidator { - constructor(protected ctx: HttpContextContract) {} - - /* - * Define schema to validate the "shape", "type", "formatting" and "integrity" of data. - * - * For example: - * 1. The username must be of data type string. But then also, it should - * not contain special characters or numbers. - * ``` - * schema.string({}, [ rules.alpha() ]) - * ``` - * - * 2. The email must be of data type string, formatted as a valid - * email. But also, not used by any other user. - * ``` - * schema.string({}, [ - * rules.email(), - * rules.unique({ table: 'users', column: 'email' }), - * ]) - * ``` - */ - public schema = schema.create({ - login: schema.string({ trim: true }, [ - rules.minLength(3), - rules.maxLength(50), - rules.unique({ table: 'accounts', column: 'login' }), - rules.regex(/^[a-zA-Z0-9-_]+$/), //Must be alphanumeric with hyphens or underscores - ]), - email: schema.string({}, [rules.email(), rules.unique({ table: 'accounts', column: 'email' })]), - password: schema.string([rules.confirmed(), rules.minLength(6)]), - roles: schema.array([rules.minLength(1)]).members(schema.number()), // define at least one role for the new user - }); - - // emails: schema - // .array([rules.minLength(1)]) - // .members( - // schema.object().members({ email: schema.string({}, [rules.email()]) }) - // ), - - /** - * Custom messages for validation failures. You can make use of dot notation `(.)` - * for targeting nested fields and array expressions `(*)` for targeting all - * children of an array. For example: - * - * { - * 'profile.username.required': 'Username is required', - * 'scores.*.number': 'Define scores as valid numbers' - * } - * - */ - public messages: CustomMessages = { - 'minLength': '{{ field }} must be at least {{ options.minLength }} characters long', - 'maxLength': '{{ field }} must be less then {{ options.maxLength }} characters long', - 'required': '{{ field }} is required', - 'unique': '{{ field }} must be unique, and this value is already taken', - 'confirmed': '{{ field }} is not correct', - 'roles.minLength': 'at least {{ options.minLength }} role must be defined', - 'roles.*.number': 'Define roles as valid numbers', - }; -} diff --git a/app/Validators/UpdateRoleValidator.ts b/app/Validators/UpdateRoleValidator.ts deleted file mode 100644 index e656d30..0000000 --- a/app/Validators/UpdateRoleValidator.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { schema, CustomMessages, rules } from '@ioc:Adonis/Core/Validator'; -import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; -// import { Request } from '@adonisjs/core/build/standalone'; - -export default class UpdateRoleValidator { - protected ctx: HttpContextContract; - public schema; - - constructor(ctx: HttpContextContract) { - this.ctx = ctx; - this.schema = this.createSchema(); - } - - // public get schema() { - // return this._schema; - // } - - private createSchema() { - return schema.create({ - name: schema.string({ trim: true }, [ - rules.minLength(3), - rules.maxLength(50), - rules.unique({ - table: 'roles', - column: 'name', - whereNot: { id: this.ctx?.params.id }, - }), - rules.regex(/^[a-zA-Z0-9-_]+$/), - //Must be alphanumeric with hyphens or underscores - ]), - description: schema.string.optional({}, [rules.minLength(3), rules.maxLength(255)]), - permissions: schema.array([rules.minLength(1)]).members(schema.number()), // define at least one permission for the new role - }); - } - - /* - * Define schema to validate the "shape", "type", "formatting" and "integrity" of data. - * - * For example: - * 1. The username must be of data type string. But then also, it should - * not contain special characters or numbers. - * ``` - * schema.string({}, [ rules.alpha() ]) - * ``` - * - * 2. The email must be of data type string, formatted as a valid - * email. But also, not used by any other user. - * ``` - * schema.string({}, [ - * rules.email(), - * rules.unique({ table: 'users', column: 'email' }), - * ]) - * ``` - */ - - // public refs = schema.refs({ - // id: this.ctx.params.id - // }) - - // public schema = schema.create({ - // login: schema.string({ trim: true }, [ - // rules.minLength(3), - // rules.maxLength(50), - // rules.unique({ - // table: 'accounts', - // column: 'login', - // // whereNot: { id: this.refs.id } - // whereNot: { id: this.ctx?.params.id }, - // }), - // // rules.regex(/^[a-zA-Z0-9-_]+$/), - // //Must be alphanumeric with hyphens or underscores - // ]), - // email: schema.string({}, [rules.email(), rules.unique({ table: 'accounts', column: 'email' })]), - // password: schema.string.optional([rules.confirmed(), rules.minLength(6)]), - // roles: schema.array([rules.minLength(1)]).members(schema.number()), // define at least one role for the new user - // }); - - /** - * Custom messages for validation failures. You can make use of dot notation `(.)` - * for targeting nested fields and array expressions `(*)` for targeting all - * children of an array. For example: - * - * { - * 'profile.username.required': 'Username is required', - * 'scores.*.number': 'Define scores as valid numbers' - * } - * - */ - public messages: CustomMessages = { - 'minLength': '{{ field }} must be at least {{ options.minLength }} characters long', - 'maxLength': '{{ field }} must be less then {{ options.maxLength }} characters long', - 'required': '{{ field }} is required', - 'unique': '{{ field }} must be unique, and this value is already taken', - 'permissions.minLength': 'at least {{ options.minLength }} permission must be defined', - 'permissions.*.number': 'Define permissions as valid numbers', - }; -} diff --git a/app/Validators/UpdateUserValidator.ts b/app/Validators/UpdateUserValidator.ts deleted file mode 100644 index ab6222a..0000000 --- a/app/Validators/UpdateUserValidator.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { schema, CustomMessages, rules } from '@ioc:Adonis/Core/Validator'; -import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; -// import { Request } from '@adonisjs/core/build/standalone'; - -export default class UpdateUserValidator { - protected ctx: HttpContextContract; - public schema; - - constructor(ctx: HttpContextContract) { - this.ctx = ctx; - this.schema = this.createSchema(); - } - - // public get schema() { - // return this._schema; - // } - - private createSchema() { - return schema.create({ - login: schema.string({ trim: true }, [ - rules.minLength(3), - rules.maxLength(50), - rules.unique({ - table: 'accounts', - column: 'login', - // whereNot: { id: this.refs.id } - whereNot: { id: this.ctx?.params.id }, - }), - // rules.regex(/^[a-zA-Z0-9-_]+$/), - //Must be alphanumeric with hyphens or underscores - ]), - email: schema.string({}, [ - rules.email(), - rules.unique({ table: 'accounts', column: 'email', whereNot: { id: this.ctx?.params.id } }), - ]), - password: schema.string.optional([rules.confirmed(), rules.minLength(6)]), - roles: schema.array.optional([rules.minLength(1)]).members(schema.number()), // define at least one role for the new user - }); - } - - /* - * Define schema to validate the "shape", "type", "formatting" and "integrity" of data. - * - * For example: - * 1. The username must be of data type string. But then also, it should - * not contain special characters or numbers. - * ``` - * schema.string({}, [ rules.alpha() ]) - * ``` - * - * 2. The email must be of data type string, formatted as a valid - * email. But also, not used by any other user. - * ``` - * schema.string({}, [ - * rules.email(), - * rules.unique({ table: 'users', column: 'email' }), - * ]) - * ``` - */ - - // public refs = schema.refs({ - // id: this.ctx.params.id - // }) - - // public schema = schema.create({ - // login: schema.string({ trim: true }, [ - // rules.minLength(3), - // rules.maxLength(50), - // rules.unique({ - // table: 'accounts', - // column: 'login', - // // whereNot: { id: this.refs.id } - // whereNot: { id: this.ctx?.params.id }, - // }), - // // rules.regex(/^[a-zA-Z0-9-_]+$/), - // //Must be alphanumeric with hyphens or underscores - // ]), - // email: schema.string({}, [rules.email(), rules.unique({ table: 'accounts', column: 'email' })]), - // password: schema.string.optional([rules.confirmed(), rules.minLength(6)]), - // roles: schema.array([rules.minLength(1)]).members(schema.number()), // define at least one role for the new user - // }); - - /** - * Custom messages for validation failures. You can make use of dot notation `(.)` - * for targeting nested fields and array expressions `(*)` for targeting all - * children of an array. For example: - * - * { - * 'profile.username.required': 'Username is required', - * 'scores.*.number': 'Define scores as valid numbers' - * } - * - */ - public messages: CustomMessages = { - 'minLength': '{{ field }} must be at least {{ options.minLength }} characters long', - 'maxLength': '{{ field }} must be less then {{ options.maxLength }} characters long', - 'required': '{{ field }} is required', - 'unique': '{{ field }} must be unique, and this value is already taken', - 'confirmed': '{{ field }} is not correct', - 'roles.minLength': 'at least {{ options.minLength }} role must be defined', - 'roles.*.number': 'Define roles as valid numbers', - }; -} diff --git a/app/exceptions/DoiClientException.ts b/app/exceptions/DoiClientException.ts new file mode 100644 index 0000000..98bb611 --- /dev/null +++ b/app/exceptions/DoiClientException.ts @@ -0,0 +1,12 @@ +class DoiClientException extends Error { + public status: number; + public message: string; + + constructor(status: number, message: string) { + super(message); + this.status = status; + this.message = message; + } +} + +export default DoiClientException; \ No newline at end of file diff --git a/app/Exceptions/HttpException.ts b/app/exceptions/HttpException.ts similarity index 100% rename from app/Exceptions/HttpException.ts rename to app/exceptions/HttpException.ts diff --git a/app/Exceptions/InternalServerException.ts b/app/exceptions/InternalServerException.ts similarity index 86% rename from app/Exceptions/InternalServerException.ts rename to app/exceptions/InternalServerException.ts index a1c5bfb..ce58ddf 100644 --- a/app/Exceptions/InternalServerException.ts +++ b/app/exceptions/InternalServerException.ts @@ -1,5 +1,5 @@ import { StatusCodes } from 'http-status-codes'; -import HTTPException from './HttpException'; +import HTTPException from './HttpException.js'; class InternalServerErrorException extends HTTPException { constructor(message?: string) { diff --git a/app/Exceptions/InvalidCredentialException.ts b/app/exceptions/InvalidCredentialException.ts similarity index 80% rename from app/Exceptions/InvalidCredentialException.ts rename to app/exceptions/InvalidCredentialException.ts index b2b9b5a..b2cc340 100644 --- a/app/Exceptions/InvalidCredentialException.ts +++ b/app/exceptions/InvalidCredentialException.ts @@ -1,4 +1,5 @@ -import { Exception } from '@adonisjs/core/build/standalone'; +import { Exception } from "@adonisjs/core/exceptions"; +import { HttpContext } from "@adonisjs/core/http"; /* |-------------------------------------------------------------------------- @@ -23,21 +24,21 @@ export default class InvalidCredentialException extends Exception { * Unable to find user */ public static invalidUid() { - const error = new this('User not found', 400, 'E_INVALID_AUTH_UID'); + const error = new this('User not found', {status: 400, code: 'E_INVALID_AUTH_UID'}); return error; } /** * Invalid user password */ public static invalidPassword() { - const error = new this('Password mis-match', 400, 'E_INVALID_AUTH_PASSWORD'); + const error = new this('Password mis-match', {status: 400, code: 'E_INVALID_AUTH_PASSWORD'}); return error; } /** * Flash error message and redirect the user back */ - private respondWithRedirect(error, ctx) { + private respondWithRedirect(error: any, ctx: HttpContext) { // if (!ctx.session) { // return ctx.response.status(this.status).send(this.responseText); // } @@ -59,7 +60,7 @@ export default class InvalidCredentialException extends Exception { * Handle this exception by itself */ - public handle(error, ctx) { + public handle(error: any, ctx: HttpContext) { // return response.status(403).view.render("errors/unauthorized", { // error: error, // }); diff --git a/app/Exceptions/OaiErrorCodes.ts b/app/exceptions/OaiErrorCodes.ts similarity index 100% rename from app/Exceptions/OaiErrorCodes.ts rename to app/exceptions/OaiErrorCodes.ts diff --git a/app/Exceptions/OaiModelException.ts b/app/exceptions/OaiModelException.ts similarity index 97% rename from app/Exceptions/OaiModelException.ts rename to app/exceptions/OaiModelException.ts index b5f7ba2..7a24213 100644 --- a/app/Exceptions/OaiModelException.ts +++ b/app/exceptions/OaiModelException.ts @@ -1,6 +1,6 @@ import { StatusCodes } from 'http-status-codes'; // import HTTPException from './HttpException'; -import { OaiErrorCodes } from './OaiErrorCodes'; +import { OaiErrorCodes } from './OaiErrorCodes.js'; export class ErrorCode { public static readonly Unauthenticated = 'Unauthenticated'; diff --git a/app/exceptions/db_handler.ts b/app/exceptions/db_handler.ts new file mode 100644 index 0000000..868fec9 --- /dev/null +++ b/app/exceptions/db_handler.ts @@ -0,0 +1,43 @@ +// import { Exception } from '@adonisjs/core/exceptions' +import { HttpContext, ExceptionHandler } from '@adonisjs/core/http'; + +export default class DbHandlerException extends ExceptionHandler { + // constructor() { + // super(Logger) + // } + + async handle(error: any, ctx: HttpContext) { + // Check for AggregateError type + if (error.type === 'AggregateError' && error.aggregateErrors) { + const dbErrors = error.aggregateErrors.some((err: any) => err.code === 'ECONNREFUSED' && err.port === 5432); + + if (dbErrors) { + return ctx.response.status(503).json({ + status: 'error', + message: 'PostgreSQL database connection failed. Please ensure the database service is running.', + details: { + code: error.code, + type: error.type, + ports: error.aggregateErrors.map((err: any) => ({ + port: err.port, + address: err.address, + })), + }, + }); + } + } + + // Handle simple ECONNREFUSED errors + if (error.code === 'ECONNREFUSED') { + return ctx.response.status(503).json({ + status: 'error', + message: 'Database connection failed. Please ensure PostgreSQL is running.', + code: error.code, + }); + } + + return super.handle(error, ctx); + } + + static status = 500; +} diff --git a/app/exceptions/handler.ts b/app/exceptions/handler.ts new file mode 100644 index 0000000..a460c3d --- /dev/null +++ b/app/exceptions/handler.ts @@ -0,0 +1,214 @@ +/* +|-------------------------------------------------------------------------- +| Http Exception Handler +|-------------------------------------------------------------------------- +| +| AdonisJs will forward all exceptions occurred during an HTTP request to +| the following class. You can learn more about exception handling by +| reading docs. +| +| The exception handler extends a base `HttpExceptionHandler` which is not +| mandatory, however it can do lot of heavy lifting to handle the errors +| properly. +| +*/ +import app from '@adonisjs/core/services/app'; +import { HttpContext, ExceptionHandler } from '@adonisjs/core/http'; +// import logger from '@adonisjs/core/services/logger'; +import type { StatusPageRange, StatusPageRenderer } from '@adonisjs/core/types/http'; + +export default class HttpExceptionHandler extends ExceptionHandler { + /** + * In debug mode, the exception handler will display verbose errors + * with pretty printed stack traces. + */ + protected debug = !app.inProduction; + + /** + * Status pages are used to display a custom HTML pages for certain error + * codes. You might want to enable them in production only, but feel + * free to enable them in development as well. + */ + protected renderStatusPages = true; //app.inProduction; + + /** + * Status pages is a collection of error code range and a callback + * to return the HTML contents to send as a response. + */ + // protected statusPages: Record<StatusPageRange, StatusPageRenderer> = { + // '401..403': (error, { view }) => { + // return view.render('./errors/unauthorized', { error }); + // }, + // '404': (error, { view }) => { + // return view.render('./errors/not-found', { error }); + // }, + // '500..599': (error, { view }) => { + // return view.render('./errors/server-error', { error }); + // }, + // }; + + protected statusPages: Record<StatusPageRange, StatusPageRenderer> = { + '404': (error, { inertia }) => { + return inertia.render('Errors/ServerError', { + error: error.message, + code: error.status, + }); + }, + '401..403': async (error, { inertia }) => { + // session.flash('errors', error.message); + return inertia.render('Errors/ServerError', { + error: error.message, + code: error.status, + }); + }, + // '500': (error, { inertia }) => { + // return inertia.render('Errors/postgres_error', { + // status: 'error', + // message: 'PostgreSQL database connection failed. Please ensure the database service is running.', + // details: { + // code: error.code, + // type: error.status, + // ports: error.errors.map((err: any) => ({ + // port: err.port, + // address: err.address, + // })), + // }, + // }); + // }, + '500..599': (error, { inertia }) => { + if (error.code === 'ECONNREFUSED') { + const dbErrors = error.errors.some((err: any) => err.code === 'ECONNREFUSED' && err.port === 5432); + + if (dbErrors) { + return inertia.render('Errors/postgres_error', { + status: 'error', + message: 'PostgreSQL database connection failed. Please ensure the database service is running.', + details: { + code: error.code, + type: error.status, + ports: error.errors.map((err: any) => ({ + port: err.port, + address: err.address, + })), + }, + }); + } + } else { + return inertia.render('Errors/ServerError', { + error: error.message, + code: error.status, + }); + } + }, + }; + + // constructor() { + // super(logger); + // } + + public async handle(error: any, ctx: HttpContext) { + const { response, request, session, inertia } = ctx; + + /** + * Handle failed authentication attempt + */ + // if (['E_INVALID_AUTH_PASSWORD', 'E_INVALID_AUTH_UID'].includes(error.code)) { + // session.flash('errors', { login: error.message }); + // return response.redirect('/login'); + // } + // if ([401].includes(error.status)) { + // session.flash('errors', { login: error.message }); + // return response.redirect('/dashboard'); + // } + + // Handle Axios errors + if (error.code === 'ECONNREFUSED') { + const dbErrors = error.errors.some((err: any) => err.code === 'ECONNREFUSED' && err.port === 5432); + + if (dbErrors) { + // return ctx.response.status(503).json({ + // status: 'error', + // message: 'PostgreSQL database connection failed. Please ensure the database service is running.', + // details: { + // code: error.code, + // type: error.status, + // ports: error.errors.map((err: any) => ({ + // port: err.port, + // address: err.address, + // })), + // }, + // }); + // return inertia.render('Errors/postgres_error', { + // status: 'error', + // message: 'PostgreSQL database connection failed. Please ensure the database service is running.', + // details: { + // code: error.code, + // type: error.status, + // ports: error.errors.map((err: any) => ({ + // port: err.port, + // address: err.address, + // })), + // }, + // }); + } + } + + // Handle simple ECONNREFUSED errors + // if (error.code === 'ECONNREFUSED') { + // return ctx.response.status(503).json({ + // status: 'error', + // message: 'Database connection failed. Please ensure PostgreSQL is running.', + // code: error.code, + // }); + // } + + // https://github.com/inertiajs/inertia-laravel/issues/56 + // let test = response.getStatus(); //200 + // let header = request.header('X-Inertia'); // true + // if (request.header('X-Inertia') && [500, 503, 404, 403, 401, 200].includes(response.getStatus())) { + if (request.header('X-Inertia') && [422].includes(error.status)) { + // session.flash('errors', error.messages.errors); + session.flash('errors', error.messages); + return response.redirect().back(); + // return inertia.render('errors/server_error', { + // return inertia.render('errors/server_error', { + // // status: response.getStatus(), + // error: error, + // }); + // ->toResponse($request) + // ->setStatusCode($response->status()); + } + + // Handle simple ECONNREFUSED errors + // if (error.code === 'ECONNREFUSED') { + // return ctx.response.status(503).json({ + // status: 'error', + // message: 'Database connection failed. Please ensure PostgreSQL is running.', + // code: error.code, + // }); + // } + // Dynamically change the error templates based on the absence of X-Inertia header + // if (!ctx.request.header('X-Inertia')) { + // this.statusPages = { + // '401..403': (error, { inertia }) => inertia.render('Errors/ServerError', { error: error.message, code: error.status }), + // '404': (error, { inertia }) => inertia.render('Errors/ServerError', { error: error.message, code: error.status }), + // '500..599': (error, { inertia }) => inertia.render('Errors/ServerError', { error: error.message, code: error.status }), + // }; + // } + + /** + * Forward rest of the exceptions to the parent class + */ + return super.handle(error, ctx); + } + + /** + * The method is used to report error to the logging service or + * the a third party error monitoring service. + * + * @note You should not attempt to send a response from this method. + */ + async report(error: unknown, ctx: HttpContext) { + return super.report(error, ctx); + } +} diff --git a/app/Middleware/Is.ts b/app/middleware/Is.ts similarity index 74% rename from app/Middleware/Is.ts rename to app/middleware/Is.ts index 64c4d98..99e6a41 100644 --- a/app/Middleware/Is.ts +++ b/app/middleware/Is.ts @@ -1,11 +1,12 @@ -import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; -import Config from '@ioc:Adonis/Core/Config'; -import Database from '@ioc:Adonis/Lucid/Database'; -import User from 'App/Models/User'; +import { HttpContext } from '@adonisjs/core/http'; +// import Config from '@ioc:Adonis/Core/Config'; +import config from '@adonisjs/core/services/config' +import db from '@adonisjs/lucid/services/db'; +import User from '#models/user'; // import { Exception } from '@adonisjs/core/build/standalone' -const roleTable = Config.get('rolePermission.role_table', 'roles'); -const userRoleTable = Config.get('rolePermission.user_role_table', 'user_roles'); +const roleTable = config.get('rolePermission.role_table', 'roles'); +const userRoleTable = config.get('rolePermission.user_role_table', 'user_roles'); /** * Role authentication to check if user has any of the specified roles @@ -16,7 +17,7 @@ export default class Is { /** * Handle request */ - public async handle({ auth, response }: HttpContextContract, next: () => Promise<void>, roleNames: string[]) { + public async handle({ auth, response }: HttpContext, next: () => Promise<void>, roleNames: string[]) { /** * Check if user is logged-in or not. */ @@ -33,7 +34,8 @@ export default class Is { // 401, // "E_INVALID_AUTH_UID"); } - await next(); + // await next(); + return next() } private async checkHasRoles(user: User, roleNames: Array<string>): Promise<boolean> { @@ -46,7 +48,7 @@ export default class Is { 0: { 0: { roleCount }, }, - } = await Database.rawQuery( + } = await db.rawQuery( 'SELECT count(`ur`.`id`) as roleCount FROM ' + userRoleTable + ' ur INNER JOIN ' + diff --git a/app/middleware/auth_middleware.ts b/app/middleware/auth_middleware.ts new file mode 100644 index 0000000..09ef6a2 --- /dev/null +++ b/app/middleware/auth_middleware.ts @@ -0,0 +1,25 @@ +import type { HttpContext } from '@adonisjs/core/http' +import type { NextFn } from '@adonisjs/core/types/http' +import type { Authenticators } from '@adonisjs/auth/types' + +/** + * Auth middleware is used authenticate HTTP requests and deny + * access to unauthenticated users. + */ +export default class AuthMiddleware { + /** + * The URL to redirect to, when authentication fails + */ + redirectTo = '/app/login' + + async handle( + ctx: HttpContext, + next: NextFn, + options: { + guards?: (keyof Authenticators)[] + } = {} + ) { + await ctx.auth.authenticateUsing(options.guards, { loginRoute: this.redirectTo }) + return next() + } +} \ No newline at end of file diff --git a/app/Middleware/Can.ts b/app/middleware/can_middleware.ts similarity index 78% rename from app/Middleware/Can.ts rename to app/middleware/can_middleware.ts index 22c2f80..e42e288 100644 --- a/app/Middleware/Can.ts +++ b/app/middleware/can_middleware.ts @@ -1,13 +1,14 @@ -import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; -import Config from '@ioc:Adonis/Core/Config'; -import Database from '@ioc:Adonis/Lucid/Database'; -import User from 'App/Models/User'; -import { Exception } from '@adonisjs/core/build/standalone'; +import { HttpContext } from '@adonisjs/core/http'; +// import Config from '@ioc:Adonis/Core/Config'; +import config from '@adonisjs/core/services/config'; +import db from '@adonisjs/lucid/services/db'; +import User from '#models/user'; +import { Exception } from '@adonisjs/core/exceptions'; -const permissionTable = Config.get('rolePermission.permission_table', 'permissions'); -const rolePermissionTable = Config.get('rolePermission.role_permission_table', 'role_has_permissions'); -const roleTable = Config.get('rolePermission.role_table', 'roles'); -const userRoleTable = Config.get('rolePermission.user_role_table', 'link_accounts_roles'); +const permissionTable = config.get('rolePermission.permission_table', 'permissions'); +const rolePermissionTable = config.get('rolePermission.role_permission_table', 'role_has_permissions'); +const roleTable = config.get('rolePermission.role_table', 'roles'); +const userRoleTable = config.get('rolePermission.user_role_table', 'link_accounts_roles'); /** * Permission authentication to check if user has any of the specified permissions @@ -18,7 +19,7 @@ export default class Can { /** * Handle request */ - public async handle({ auth, response }: HttpContextContract, next: () => Promise<void>, permissionNames: string[]) { + public async handle({ auth, response }: HttpContext, next: () => Promise<void>, permissionNames: string[]) { /** * Check if user is logged-in */ @@ -31,9 +32,10 @@ export default class Can { // return response.unauthorized({ // error: `Doesn't have required role(s): ${permissionNames.join(',')}`, // }); - throw new Exception(`Doesn't have required permission(s): ${permissionNames.join(',')}`, 401); + throw new Exception(`Doesn't have required permission(s): ${permissionNames.join(',')}`, { status: 401 }); } - await next(); + // await next(); + return next(); } private async checkHasPermissions(user: User, permissionNames: Array<string>): Promise<boolean> { @@ -66,7 +68,7 @@ export default class Can { rows: { 0: { permissioncount }, }, - } = await Database.rawQuery( + } = await db.rawQuery( 'SELECT count("p"."name") as permissionCount FROM ' + roleTable + ' r INNER JOIN ' + diff --git a/app/middleware/container_bindings_middleware.ts b/app/middleware/container_bindings_middleware.ts new file mode 100644 index 0000000..4dd0c6f --- /dev/null +++ b/app/middleware/container_bindings_middleware.ts @@ -0,0 +1,19 @@ +import { Logger } from '@adonisjs/core/logger'; +import { HttpContext } from '@adonisjs/core/http'; +import { NextFn } from '@adonisjs/core/types/http'; + +/** + * The container bindings middleware binds classes to their request + * specific value using the container resolver. + * + * - We bind "HttpContext" class to the "ctx" object + * - And bind "Logger" class to the "ctx.logger" object + */ +export default class ContainerBindingsMiddleware { + handle(ctx: HttpContext, next: NextFn) { + ctx.containerResolver.bindValue(HttpContext, ctx); + ctx.containerResolver.bindValue(Logger, ctx.logger); + + return next(); + } +} diff --git a/app/middleware/guest_middleware.ts b/app/middleware/guest_middleware.ts new file mode 100644 index 0000000..be6345d --- /dev/null +++ b/app/middleware/guest_middleware.ts @@ -0,0 +1,27 @@ +import type { HttpContext } from '@adonisjs/core/http'; +import type { NextFn } from '@adonisjs/core/types/http'; +import type { Authenticators } from '@adonisjs/auth/types'; + +/** + * Guest middleware is used to deny access to routes that should + * be accessed by unauthenticated users. + * + * For example, the login page should not be accessible if the user + * is already logged-in + */ +export default class GuestMiddleware { + /** + * The URL to redirect to when user is logged-in + */ + redirectTo = '/'; + + async handle(ctx: HttpContext, next: NextFn, options: { guards?: (keyof Authenticators)[] } = {}) { + for (let guard of options.guards || [ctx.auth.defaultGuard]) { + if (await ctx.auth.use(guard).check()) { + return ctx.response.redirect(this.redirectTo, true); + } + } + + return next(); + } +} diff --git a/app/middleware/normalize_newlines_middleware.ts b/app/middleware/normalize_newlines_middleware.ts new file mode 100644 index 0000000..767ad44 --- /dev/null +++ b/app/middleware/normalize_newlines_middleware.ts @@ -0,0 +1,43 @@ +/* +* This middleware class normalizes newlines in the request input data by replacing +* all occurrences of '\r\n' with '\n' recursively for strings, arrays, and objects. +*/ +import type { HttpContext } from '@adonisjs/core/http'; +import type { NextFn } from '@adonisjs/core/types/http'; + +export default class NormalizeNewlinesMiddleware { + async handle(ctx: HttpContext, next: NextFn) { + // Function to recursively normalize newlines + const normalizeNewlines = (input: any): any => { + if (typeof input === 'string') { + return input.replace(/\r\n/g, '\n'); + } else if (Array.isArray(input)) { + return input.map((item) => normalizeNewlines(item)); + } else if (typeof input === 'object' && input !== null) { + for (const key in input) { + input[key] = normalizeNewlines(input[key]); + } + return input; + } + return input; + }; + /** + * Middleware logic goes here (before the next call) + */ + // console.log(ctx) + // Get all request input + const input = ctx.request.all(); + + // Normalize newlines in text inputs + const normalizedInput = normalizeNewlines(input); + + // Replace request input with normalized data + ctx.request.updateBody(normalizedInput); + + /** + * Call next method in the pipeline and return its output + */ + const output = await next(); + return output; + } +} diff --git a/app/Middleware/Role.ts b/app/middleware/role_middleware.ts similarity index 74% rename from app/Middleware/Role.ts rename to app/middleware/role_middleware.ts index 7527ce4..20d2dba 100644 --- a/app/Middleware/Role.ts +++ b/app/middleware/role_middleware.ts @@ -1,23 +1,25 @@ -import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; -import Database from '@ioc:Adonis/Lucid/Database'; -import Config from '@ioc:Adonis/Core/Config'; -import User from 'app/Models/User'; -import { Exception } from '@adonisjs/core/build/standalone'; +import type { HttpContext } from '@adonisjs/core/http'; +import db from '@adonisjs/lucid/services/db'; +import config from '@adonisjs/core/services/config'; +import User from '#models/user'; +import { Exception } from '@adonisjs/core/exceptions'; -const roleTable = Config.get('rolePermission.role_table', 'roles'); -const userRoleTable = Config.get('rolePermission.user_role_table', 'link_accounts_roles'); +// const roleTable = Config.get('rolePermission.role_table', 'roles'); +const roleTable = config.get('rolePermission.role_table', 'roles'); +// const userRoleTable = Config.get('rolePermission.user_role_table', 'link_accounts_roles'); +const userRoleTable = config.get('rolePermission.user_role_table', 'user_roles'); // node ace make:middleware role export default class Role { // .middleware(['auth', 'role:admin,moderator']) - public async handle({ auth, response }: HttpContextContract, next: () => Promise<void>, userRoles: string[]) { + public async handle({ auth, response }: HttpContext, next: () => Promise<void>, userRoles: string[]) { // Check if user is logged-in or not. // let expression = ""; // if (Array.isArray(args)) { // expression = args.join(" || "); // } - let user = await auth.user; + let user = auth.user as User; if (!user) { return response.unauthorized({ error: 'Must be logged in' }); } @@ -28,7 +30,7 @@ export default class Role { // error: `Doesn't have required role(s): ${userRoles.join(',')}`, // // error: `Doesn't have required role(s)`, // }); - throw new Exception(`Doesn't have required role(s): ${userRoles.join(',')}`, 401); + throw new Exception(`Doesn't have required role(s): ${userRoles.join(',')}`, { status: 401 }); } // code for middleware goes here. ABOVE THE NEXT CALL @@ -62,7 +64,7 @@ export default class Role { rows: { 0: { rolecount }, }, - } = await Database.rawQuery( + } = await db.rawQuery( 'SELECT count("r"."id") as roleCount FROM ' + roleTable + ' r INNER JOIN ' + diff --git a/app/Middleware/SilentAuth.ts b/app/middleware/silent_auth.ts similarity index 76% rename from app/Middleware/SilentAuth.ts rename to app/middleware/silent_auth.ts index 4b3d16f..e88d1ff 100644 --- a/app/Middleware/SilentAuth.ts +++ b/app/middleware/silent_auth.ts @@ -1,4 +1,4 @@ -import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; +import type { HttpContext } from '@adonisjs/core/http'; /** * Silent auth middleware can be used as a global middleware to silent check @@ -10,7 +10,7 @@ export default class SilentAuthMiddleware { /** * Handle request */ - public async handle({ auth }: HttpContextContract, next: () => Promise<void>) { + public async handle({ auth }: HttpContext, next: () => Promise<void>) { /** * Check if user is logged-in or not. If yes, then `ctx.auth.user` will be * set to the instance of the currently logged in user. diff --git a/app/middleware/stardust_middleware.ts b/app/middleware/stardust_middleware.ts new file mode 100644 index 0000000..aa2dc11 --- /dev/null +++ b/app/middleware/stardust_middleware.ts @@ -0,0 +1,47 @@ +import type { HttpContext } from '@adonisjs/core/http'; +import type { NextFn } from '@adonisjs/core/types/http'; + + +declare global { + function myFunction(): boolean; + var myVariable: number; + + interface StardustData { + pathname?: string; + namedRoutes?: Record<string, string>; + } + var stardust: StardustData; +} + +declare global {} +export default class StardustMiddleware { + async handle(ctx: HttpContext, next: NextFn): Promise<void> { + /** + * Middleware logic goes here (before the next call) + */ + + // Check if the request is an API request + if (!ctx.request.url().startsWith('/api')) { + // Middleware logic for non-API requests + const { pathname } = new URL(ctx.request.completeUrl()); // '/', '/app/login' + globalThis.myFunction = () => { + return true; + }; + globalThis.myVariable = 1; + + globalThis.stardust = { + ...globalThis.stardust, + pathname, + }; + + /** + * Call next method in the pipeline and return its output + */ + await next(); + } else { + // Skip middleware for API requests + await next(); + } + } +} + diff --git a/app/Models/DocumentXmlCache.ts b/app/models/DocumentXmlCache.ts similarity index 90% rename from app/Models/DocumentXmlCache.ts rename to app/models/DocumentXmlCache.ts index 4f20770..ed7315e 100644 --- a/app/Models/DocumentXmlCache.ts +++ b/app/models/DocumentXmlCache.ts @@ -1,10 +1,10 @@ -import { column, BaseModel, SnakeCaseNamingStrategy, belongsTo, BelongsTo } from '@ioc:Adonis/Lucid/Orm'; -import Dataset from './Dataset'; +import { column, BaseModel, SnakeCaseNamingStrategy, belongsTo } from '@adonisjs/lucid/orm'; +import Dataset from './dataset.js'; import { builder, create } from 'xmlbuilder2'; -import { XMLBuilder } from 'xmlbuilder2/lib/interfaces'; -import Database from '@ioc:Adonis/Lucid/Database'; -import dayjs from 'dayjs'; +import { XMLBuilder } from 'xmlbuilder2/lib/interfaces.js'; +import db from '@adonisjs/lucid/services/db'; import { DateTime } from 'luxon'; +import type { BelongsTo } from "@adonisjs/lucid/types/relations"; export default class DocumentXmlCache extends BaseModel { public static namingStrategy = new SnakeCaseNamingStrategy(); @@ -87,7 +87,7 @@ export default class DocumentXmlCache extends BaseModel { // Assuming 'DocumentXmlCache' has a table with a 'server_date_modified' column in your database public static async hasValidEntry(datasetId: number, datasetServerDateModified: DateTime): Promise<boolean> { const serverDateModifiedString: string = datasetServerDateModified.toFormat('yyyy-MM-dd HH:mm:ss'); // Convert DateTime to ISO string - const query = Database.from(this.table) + const query = db.from(this.table) .where('document_id', datasetId) .where('server_date_modified', '>=', serverDateModifiedString) // Check if server_date_modified is newer or equal .first(); diff --git a/app/models/appconfig.ts b/app/models/appconfig.ts new file mode 100644 index 0000000..302256f --- /dev/null +++ b/app/models/appconfig.ts @@ -0,0 +1,33 @@ +import BaseModel from './base_model.js'; +import { column } from '@adonisjs/lucid/orm'; + +export default class AppConfig extends BaseModel { + public static table = 'appconfigs'; // Specify the table name if it differs from the model name + + @column({ isPrimary: true }) + public id: number; + + @column() + public appid: string; + + @column() + public configkey: string; + + @column() + public configvalue: string | null; + + @column() + public type: number; + + @column() + public lazy: number; + + // async function setConfig(key: string, value: string) { + // await this.updateOrCreate({ key }, { value }) + // } + + // async function getConfig(key: string) { + // const config = await this.findBy('key', key) + // return config ? config.value : null + // } +} diff --git a/app/models/backup_code.ts b/app/models/backup_code.ts new file mode 100644 index 0000000..20c77b0 --- /dev/null +++ b/app/models/backup_code.ts @@ -0,0 +1,51 @@ +import BaseModel from './base_model.js'; +import { column, SnakeCaseNamingStrategy, belongsTo } from '@adonisjs/lucid/orm'; +import User from './user.js'; +import type { BelongsTo } from '@adonisjs/lucid/types/relations'; +import db from '@adonisjs/lucid/services/db'; +import hash from '@adonisjs/core/services/hash'; + +export default class BackupCode extends BaseModel { + public static table = 'backupcodes'; + public static namingStrategy = new SnakeCaseNamingStrategy(); + + @column({ + isPrimary: true, + }) + public id: number; + + @column({}) + public user_id: number; + + @column({ + // serializeAs: null, + // consume: (value: string) => (value ? JSON.parse(encryption.decrypt(value) ?? '{}') : null), + // prepare: (value: string) => encryption.encrypt(JSON.stringify(value)), + }) + public code: string; + + @column({}) + public used: boolean; + + @belongsTo(() => User, { + foreignKey: 'user_id', + }) + public user: BelongsTo<typeof User>; + + // public static async getBackupCodes(user: User): Promise<BackupCode[]> { + // return await db.from(this.table).select('id', 'user_id', 'code', 'used').where('user_id', user.id); + // } + + public static async deleteCodes(user: User): Promise<void> { + await db.from(this.table).where('user_id', user.id).delete(); + } + + public static async deleteCodesByUserId(uid: string): Promise<void> { + await db.from(this.table).where('user_id', uid).delete(); + } + + // Method to verify password + public async verifyCode(plainCode: string) { + return await hash.verify(this.code, plainCode); + } +} diff --git a/app/Models/BaseModel.ts b/app/models/base_model.ts similarity index 94% rename from app/Models/BaseModel.ts rename to app/models/base_model.ts index 5954db6..87319d4 100644 --- a/app/Models/BaseModel.ts +++ b/app/models/base_model.ts @@ -1,4 +1,5 @@ -import { BaseModel as LucidBaseModel } from '@ioc:Adonis/Lucid/Orm'; +// import { BaseModel as LucidBaseModel } from '@adonisjs/lucid/orm'; +import { BaseModel as LucidBaseModel } from '@adonisjs/lucid/orm'; // import { ManyToManyQueryClient } from '@ioc:Adonis/Lucid/Orm'; // export class CustomManyToManyQueryClient extends ManyToManyQueryClient { @@ -13,7 +14,6 @@ import { BaseModel as LucidBaseModel } from '@ioc:Adonis/Lucid/Orm'; // } // } - /** * Helper to find if value is a valid Object or * not @@ -22,7 +22,7 @@ export function isObject(value: any): boolean { return value !== null && typeof value === 'object' && !Array.isArray(value); } -export default class BaseModel extends LucidBaseModel { +export default class BaseModel extends LucidBaseModel { /** * When `fill` method is called, then we may have a situation where it * removed the values which exists in `original` and hence the dirty @@ -30,6 +30,9 @@ export default class BaseModel extends LucidBaseModel { */ // private fillInvoked: boolean = false; + // [key: string]: any; + + public static fillable: string[] = []; public fill(attributes: any, allowExtraProperties: boolean = false): this { @@ -48,7 +51,7 @@ export default class BaseModel extends LucidBaseModel { // this.fillInvoked = true; return this; } - + /** * Merge bulk attributes with existing attributes. * @@ -117,9 +120,10 @@ export default class BaseModel extends LucidBaseModel { return this; } - } + + // export class DatasetRelatedBaseModel extends LucidBaseModel { // public dataset: BelongsTo<typeof Dataset>; // } diff --git a/app/Models/Collection.ts b/app/models/collection.ts similarity index 65% rename from app/Models/Collection.ts rename to app/models/collection.ts index f15b74a..fcac2b9 100644 --- a/app/Models/Collection.ts +++ b/app/models/collection.ts @@ -1,6 +1,9 @@ -import { column, SnakeCaseNamingStrategy, manyToMany, ManyToMany } from '@ioc:Adonis/Lucid/Orm'; -import Dataset from './Dataset'; -import BaseModel from './BaseModel'; +import { column, SnakeCaseNamingStrategy, manyToMany, belongsTo } from '@adonisjs/lucid/orm'; +import Dataset from './dataset.js'; +import BaseModel from './base_model.js'; +import CollectionRole from './collection_role.js'; +import type { ManyToMany } from "@adonisjs/lucid/types/relations"; +import type { BelongsTo } from "@adonisjs/lucid/types/relations"; export default class Collection extends BaseModel { public static namingStrategy = new SnakeCaseNamingStrategy(); @@ -43,4 +46,9 @@ export default class Collection extends BaseModel { pivotTable: 'link_documents_collections', }) public datasets: ManyToMany<typeof Dataset>; + + @belongsTo(() => CollectionRole, { + foreignKey: 'role_id', + }) + public collectionRole: BelongsTo<typeof CollectionRole>; } diff --git a/app/models/collection_role.ts b/app/models/collection_role.ts new file mode 100644 index 0000000..5d33ef1 --- /dev/null +++ b/app/models/collection_role.ts @@ -0,0 +1,39 @@ +import { column, SnakeCaseNamingStrategy, hasMany } from '@adonisjs/lucid/orm'; +import BaseModel from './base_model.js'; +import Collection from './collection.js'; +import type { HasMany } from "@adonisjs/lucid/types/relations"; + +export default class CollectionRole extends BaseModel { + public static namingStrategy = new SnakeCaseNamingStrategy(); + public static primaryKey = 'id'; + public static table = 'collections_roles'; + public static fillable: string[] = ['name', 'oai_name', 'visible']; + + @column({ + isPrimary: true, + }) + public id: number; + + @column({}) + public name: string; + + @column({}) + public oai_name?: string; + + @column({}) + public position: number; + + @column({}) + public visible: boolean; + + @column({}) + public visible_frontdoor: boolean; + + @column({}) + public visible_oai: boolean; + + @hasMany(() => Collection, { + foreignKey: 'role_id', + }) + public collections: HasMany<typeof Collection>; +} diff --git a/app/Models/Coverage.ts b/app/models/coverage.ts similarity index 88% rename from app/Models/Coverage.ts rename to app/models/coverage.ts index 9644ec8..06c5beb 100644 --- a/app/Models/Coverage.ts +++ b/app/models/coverage.ts @@ -1,7 +1,8 @@ -import { column, SnakeCaseNamingStrategy, belongsTo, BelongsTo } from '@ioc:Adonis/Lucid/Orm'; +import { column, SnakeCaseNamingStrategy, belongsTo } from '@adonisjs/lucid/orm'; import { DateTime } from 'luxon'; -import Dataset from './Dataset'; -import BaseModel from './BaseModel'; +import Dataset from './dataset.js'; +import BaseModel from './base_model.js'; +import type { BelongsTo } from "@adonisjs/lucid/types/relations"; export default class Coverage extends BaseModel { public static namingStrategy = new SnakeCaseNamingStrategy(); diff --git a/app/Models/Dataset.ts b/app/models/dataset.ts similarity index 62% rename from app/Models/Dataset.ts rename to app/models/dataset.ts index 85f7e7c..1233a28 100644 --- a/app/Models/Dataset.ts +++ b/app/models/dataset.ts @@ -2,31 +2,31 @@ import { column, SnakeCaseNamingStrategy, manyToMany, - ManyToMany, belongsTo, - BelongsTo, hasMany, - HasMany, computed, - hasOne, - HasOne, -} from '@ioc:Adonis/Lucid/Orm'; + hasOne +} from '@adonisjs/lucid/orm'; import { DateTime } from 'luxon'; import dayjs from 'dayjs'; -import Person from './Person'; -import User from './User'; -import Title from './Title'; -import Description from './Description'; -import License from './License'; -import Subject from './Subject'; -import File from './File'; -import Coverage from './Coverage'; -import DatasetReference from './DatasetReference'; -import Collection from './Collection'; -import DatasetIdentifier from './DatasetIdentifier'; -import Project from './Project'; -import DocumentXmlCache from './DocumentXmlCache'; -import DatasetExtension from 'App/Models/Traits/DatasetExtension'; // Adjust the import path +import Person from './person.js'; +import User from './user.js'; +import Title from './title.js'; +import Description from './description.js'; +import License from './license.js'; +import Subject from './subject.js'; +import File from './file.js'; +import Coverage from './coverage.js'; +import DatasetReference from './dataset_reference.js'; +import Collection from './collection.js'; +import DatasetIdentifier from './dataset_identifier.js'; +import Project from './project.js'; +import DocumentXmlCache from './DocumentXmlCache.js'; +import DatasetExtension from '#models/traits/dataset_extension'; +import type { ManyToMany } from "@adonisjs/lucid/types/relations"; +import type { BelongsTo } from "@adonisjs/lucid/types/relations"; +import type { HasMany } from "@adonisjs/lucid/types/relations"; +import type { HasOne } from "@adonisjs/lucid/types/relations"; export default class Dataset extends DatasetExtension { public static namingStrategy = new SnakeCaseNamingStrategy(); @@ -46,7 +46,12 @@ export default class Dataset extends DatasetExtension { @column({ columnName: 'creating_corporation' }) public creating_corporation: string; - @column.dateTime({ columnName: 'embargo_date' }) + @column.dateTime({ + columnName: 'embargo_date', + serialize: (value: Date | null) => { + return value ? dayjs(value).format('YYYY-MM-DD') : value; + }, + }) public embargo_date: DateTime; @column({}) @@ -55,7 +60,7 @@ export default class Dataset extends DatasetExtension { @column({}) public language: string; - @column({}) + @column({columnName: 'publish_id'}) public publish_id: number | null = null; @column({}) @@ -95,7 +100,14 @@ export default class Dataset extends DatasetExtension { }) public created_at: DateTime; - @column.dateTime({ autoCreate: true, autoUpdate: true, columnName: 'server_date_modified' }) + @column.dateTime({ + serialize: (value: Date | null) => { + return value ? dayjs(value).format('MMMM D YYYY HH:mm a') : value; + }, + autoCreate: true, + autoUpdate: true, + columnName: 'server_date_modified', + }) public server_date_modified: DateTime; @manyToMany(() => Person, { @@ -188,6 +200,24 @@ export default class Dataset extends DatasetExtension { return mainTitle ? mainTitle.value : null; } + @computed({ + serializeAs: 'main_abstract', + }) + public get mainAbstract() { + // return `${this.firstName} ${this.lastName}`; + const mainTitle = this.descriptions?.find((desc) => desc.type === 'Abstract'); + return mainTitle ? mainTitle.value : null; + } + + @computed({ + serializeAs: 'doi_identifier', + }) + public get doiIdentifier() { + // return `${this.firstName} ${this.lastName}`; + const identifier: DatasetIdentifier = this.identifier; + return identifier ? identifier.value : null; + } + @manyToMany(() => Person, { pivotForeignKey: 'document_id', pivotRelatedForeignKey: 'person_id', @@ -203,7 +233,7 @@ export default class Dataset extends DatasetExtension { pivotForeignKey: 'document_id', pivotRelatedForeignKey: 'person_id', pivotTable: 'link_documents_persons', - pivotColumns: ['role', 'sort_order', 'allow_email_contact'], + pivotColumns: ['role', 'sort_order', 'allow_email_contact', 'contributor_type'], onQuery(query) { query.wherePivot('role', 'contributor'); }, @@ -214,4 +244,44 @@ export default class Dataset extends DatasetExtension { foreignKey: 'document_id', }) public xmlCache: HasOne<typeof DocumentXmlCache>; + + /** + * Get the account that the dataset belongs to + */ + @belongsTo(() => User, { + foreignKey: 'editor_id', + }) + public editor: BelongsTo<typeof User>; + + @belongsTo(() => User, { + foreignKey: 'reviewer_id', + }) + public reviewer: BelongsTo<typeof User>; + + static async earliestPublicationDate(): Promise<Dataset | null> { + const serverState = 'published'; + + const model = await this.query().where('server_state', serverState).orderBy('server_date_published', 'asc').first(); + + return model || null; + } + + static async getMax (column: string) { + let dataset = await this.query().max(column + ' as max_publish_id').firstOrFail(); + return dataset.$extras.max_publish_id; + } + + @computed({ + serializeAs: 'remaining_time', + }) + public get remainingTime() { + const dateFuture = this.server_date_modified.plus({ days: 14 }); + if (this.server_state === 'approved') { + const now = DateTime.now(); + let duration = dateFuture.diff(now, ['days', 'hours', 'months']).toObject(); + return duration.days; + } else { + return 0; + } + } } diff --git a/app/Models/DatasetIdentifier.ts b/app/models/dataset_identifier.ts similarity index 67% rename from app/Models/DatasetIdentifier.ts rename to app/models/dataset_identifier.ts index cd4b2d1..2753746 100644 --- a/app/Models/DatasetIdentifier.ts +++ b/app/models/dataset_identifier.ts @@ -1,7 +1,8 @@ -import { column, SnakeCaseNamingStrategy, belongsTo, BelongsTo } from '@ioc:Adonis/Lucid/Orm'; +import { column, SnakeCaseNamingStrategy, belongsTo } from '@adonisjs/lucid/orm'; import { DateTime } from 'luxon'; -import Dataset from './Dataset'; -import BaseModel from './BaseModel'; +import Dataset from './dataset.js'; +import BaseModel from './base_model.js'; +import type { BelongsTo } from "@adonisjs/lucid/types/relations"; export default class DatasetIdentifier extends BaseModel { public static namingStrategy = new SnakeCaseNamingStrategy(); @@ -20,6 +21,9 @@ export default class DatasetIdentifier extends BaseModel { @column({}) public type: string; + @column({}) + public status: string; + @column({}) public value: string; @@ -38,4 +42,9 @@ export default class DatasetIdentifier extends BaseModel { foreignKey: 'dataset_id', }) public dataset: BelongsTo<typeof Dataset>; + + // // Specify the relationships to touch when this model is updated + // public static get touches() { + // return ['dataset']; + // } } diff --git a/app/Models/DatasetReference.ts b/app/models/dataset_reference.ts similarity index 85% rename from app/Models/DatasetReference.ts rename to app/models/dataset_reference.ts index f4e1c3f..1855cd4 100644 --- a/app/Models/DatasetReference.ts +++ b/app/models/dataset_reference.ts @@ -1,7 +1,8 @@ -import { column, SnakeCaseNamingStrategy, belongsTo, BelongsTo } from '@ioc:Adonis/Lucid/Orm'; +import { column, SnakeCaseNamingStrategy, belongsTo } from '@adonisjs/lucid/orm'; import { DateTime } from 'luxon'; -import Dataset from './Dataset'; -import BaseModel from './BaseModel'; +import Dataset from './dataset.js'; +import BaseModel from './base_model.js'; +import type { BelongsTo } from "@adonisjs/lucid/types/relations"; export default class DatasetReference extends BaseModel { public static namingStrategy = new SnakeCaseNamingStrategy(); diff --git a/app/Models/Description.ts b/app/models/description.ts similarity index 68% rename from app/Models/Description.ts rename to app/models/description.ts index a5d53b6..a674886 100644 --- a/app/Models/Description.ts +++ b/app/models/description.ts @@ -1,6 +1,7 @@ -import { column, belongsTo, BelongsTo } from '@ioc:Adonis/Lucid/Orm'; -import Dataset from './Dataset'; -import BaseModel from './BaseModel'; +import { column, belongsTo } from '@adonisjs/lucid/orm'; +import Dataset from './dataset.js'; +import BaseModel from './base_model.js'; +import type { BelongsTo } from "@adonisjs/lucid/types/relations"; export default class Description extends BaseModel { public static primaryKey = 'id'; @@ -9,6 +10,11 @@ export default class Description extends BaseModel { public static timestamps = false; public static fillable: string[] = ['value', 'type', 'language']; + @column({ + isPrimary: true, + }) + public id: number; + @column({}) public document_id: number; diff --git a/app/models/file.ts b/app/models/file.ts new file mode 100644 index 0000000..3d9145f --- /dev/null +++ b/app/models/file.ts @@ -0,0 +1,185 @@ +import { DateTime } from 'luxon'; +import { column, hasMany, belongsTo, SnakeCaseNamingStrategy, computed } from '@adonisjs/lucid/orm'; +import HashValue from './hash_value.js'; +import Dataset from './dataset.js'; +import BaseModel from './base_model.js'; +import * as fs from 'fs'; +import crypto from 'crypto'; +// import Drive from '@ioc:Adonis/Core/Drive'; +// import Drive from '@adonisjs/drive'; +// import drive from '#services/drive'; +import drive from '@adonisjs/drive/services/main'; + +import type { HasMany } from "@adonisjs/lucid/types/relations"; +import type { BelongsTo } from "@adonisjs/lucid/types/relations"; +// import { TransactionClientContract } from "@adonisjs/lucid/database"; +import { TransactionClientContract } from '@adonisjs/lucid/types/database'; + + + + + +export default class File extends BaseModel { + // private readonly _data: Uint8Array; + // private readonly _type: string; + // private readonly _size: number; + + public static namingStrategy = new SnakeCaseNamingStrategy(); + public static primaryKey = 'id'; + public static table = 'document_files'; + public static selfAssignPrimaryKey = false; + + @column({ + isPrimary: true, + }) + public id: number; + + @column({}) + public document_id: number; + + @column({}) + public pathName: string; + + @column() + public label: string; + + @column() + public comment: string; + + @column() + public mimeType: string; + + @column() + public language: string; + + @column() + public fileSize: number; + + @column() + public visibleInOai: boolean; + + @column() + public visibleInFrontdoor: boolean; + + @column() + public sortOrder: number; + + @column.dateTime({ autoCreate: true }) + public createdAt: DateTime; + + @column.dateTime({ autoCreate: true, autoUpdate: true }) + public updatedAt: DateTime; + + // public function dataset() + // { + // return $this->belongsTo(Dataset::class, 'document_id', 'id'); + // } + @belongsTo(() => Dataset, { + foreignKey: 'document_id', + }) + public dataset: BelongsTo<typeof Dataset>; + + @hasMany(() => HashValue, { + foreignKey: 'file_id', + }) + public hashvalues: HasMany<typeof HashValue>; + + @computed({ + serializeAs: 'filePath', + }) + public get filePath() { + // return `/storage/app/public/${this.pathName}`; + return `/storage/app/data/${this.pathName}`; + // const mainTitle = this.titles?.find((title) => title.type === 'Main'); + // return mainTitle ? mainTitle.value : null; + } + + @computed({ + serializeAs: 'size', + }) + public get size() { + return this.fileSize; + } + + @computed({ + serializeAs: 'type', + }) + public get type() { + return this.mimeType; + } + + @computed({ + serializeAs: 'name', + }) + get name(): string { + return this.label; + } + + @computed({ + serializeAs: 'lastModified', + }) + get lastModified(): number { + return this.updatedAt.toUnixInteger(); //.toFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); + } + + readonly webkitRelativePath: string = ''; + + // @computed({ + // serializeAs: 'fileData', + // }) + // public get fileData(): string { + // try { + // const fileContent: Buffer = fs.readFileSync(this.filePath); + // // Create a Blob from the file content + // // const blob = new Blob([fileContent], { type: this.type }); // Adjust + // // let fileSrc = URL.createObjectURL(blob); + // // return fileSrc; + + // // create a JSON string that contains the data in the property "blob" + // const json = JSON.stringify({ blob: fileContent.toString('base64') }); + // return json; + // } catch (err) { + // // console.error(`Error reading file: ${err}`); + // return ''; + // } + // } + + public async createHashValues(trx?: TransactionClientContract) { + const hashtypes: string[] = ['md5', 'sha512']; + + for (const type of hashtypes) { + const hash = new HashValue(); + hash.type = type; + const hashString = await this._checksumFile(this.filePath, type); // Assuming getRealHash is a method in the same model + hash.value = hashString; + + // https://github.com/adonisjs/core/discussions/1872#discussioncomment-132289 + const file: File = this; + if (trx) { + await file.useTransaction(trx).related('hashvalues').save(hash); // Save the hash value to the database + } else { + await file.related('hashvalues').save(hash); // Save the hash value to the database + } + } + } + + public async delete() { + if (this.pathName) { + // Delete file from additional storage + await drive.use('local').delete(this.pathName); + } + + // Call the original delete method of the BaseModel to remove the record from the database + await super.delete(); + } + + private async _checksumFile(path: string, hashName = 'md5'): Promise<string> { + return new Promise((resolve, reject) => { + const hash = crypto.createHash(hashName); + const stream = fs.createReadStream(path); + stream.on('error', (err) => reject(err)); + stream.on('data', (chunk) => hash.update(chunk)); + stream.on('end', () => resolve(hash.digest('hex'))); + }); + } +} diff --git a/app/Models/HashValue.ts b/app/models/hash_value.ts similarity index 66% rename from app/Models/HashValue.ts rename to app/models/hash_value.ts index 7d86acb..2efab1b 100644 --- a/app/Models/HashValue.ts +++ b/app/models/hash_value.ts @@ -1,9 +1,10 @@ -import { column, BaseModel, belongsTo, BelongsTo, SnakeCaseNamingStrategy } from '@ioc:Adonis/Lucid/Orm'; -import File from './File'; +import { column, BaseModel, belongsTo, SnakeCaseNamingStrategy } from '@adonisjs/lucid/orm'; +import File from './file.js'; +import type { BelongsTo } from "@adonisjs/lucid/types/relations"; export default class HashValue extends BaseModel { public static namingStrategy = new SnakeCaseNamingStrategy(); - public static primaryKey = 'file_id, type'; + // public static primaryKey = 'file_id,type'; public static table = 'file_hashvalues'; // static get primaryKey () { @@ -20,10 +21,10 @@ export default class HashValue extends BaseModel { // public id: number; // Foreign key is still on the same model - @column({}) + @column({ isPrimary: true }) public file_id: number; - @column({}) + @column({ isPrimary: true }) public type: string; @column() diff --git a/app/Models/Language.ts b/app/models/language.ts similarity index 85% rename from app/Models/Language.ts rename to app/models/language.ts index 456442d..3543b20 100644 --- a/app/Models/Language.ts +++ b/app/models/language.ts @@ -1,5 +1,5 @@ -import { column, SnakeCaseNamingStrategy } from '@ioc:Adonis/Lucid/Orm'; -import BaseModel from './BaseModel'; +import { column, SnakeCaseNamingStrategy } from '@adonisjs/lucid/orm'; +import BaseModel from './base_model.js'; // import { DateTime } from 'luxon'; export default class Language extends BaseModel { diff --git a/app/Models/License.ts b/app/models/license.ts similarity index 90% rename from app/Models/License.ts rename to app/models/license.ts index 8bcb38e..32d3e84 100644 --- a/app/Models/License.ts +++ b/app/models/license.ts @@ -1,5 +1,5 @@ -import { column, SnakeCaseNamingStrategy } from '@ioc:Adonis/Lucid/Orm'; -import BaseModel from './BaseModel'; +import { column, SnakeCaseNamingStrategy } from '@adonisjs/lucid/orm'; +import BaseModel from './base_model.js'; export default class License extends BaseModel { public static namingStrategy = new SnakeCaseNamingStrategy(); diff --git a/app/models/mime_type.ts b/app/models/mime_type.ts new file mode 100644 index 0000000..cf62678 --- /dev/null +++ b/app/models/mime_type.ts @@ -0,0 +1,45 @@ +import { column, SnakeCaseNamingStrategy } from '@adonisjs/lucid/orm'; +import BaseModel from './base_model.js'; +import { DateTime } from 'luxon'; + +export default class MimeType extends BaseModel { + public static namingStrategy = new SnakeCaseNamingStrategy(); + public static primaryKey = 'id'; + public static table = 'mime_types'; + public static fillable: string[] = ['name', 'file_extension', 'enabled']; + + @column({ + isPrimary: true, + }) + public id: number; + + @column({}) + public name: string; + + // 1 : n file_extensions are separated by '|' in the database + @column({}) + public file_extension: string; + + // 1 : n alternate_mimetype are separated by '|' in the database + @column({}) + public alternate_mimetype: string; + + @column({}) + public enabled: boolean; + + @column.dateTime({ + autoCreate: true, + }) + public created_at: DateTime; + + @column.dateTime({ + autoCreate: true, + autoUpdate: true, + }) + public updated_at: DateTime; + + // @hasMany(() => Collection, { + // foreignKey: 'role_id', + // }) + // public collections: HasMany<typeof Collection>; +} diff --git a/app/Models/Permission.ts b/app/models/permission.ts similarity index 65% rename from app/Models/Permission.ts rename to app/models/permission.ts index 7b84855..3be3f46 100644 --- a/app/Models/Permission.ts +++ b/app/models/permission.ts @@ -1,8 +1,9 @@ -import { column, manyToMany, ManyToMany, SnakeCaseNamingStrategy, beforeUpdate, beforeCreate } from '@ioc:Adonis/Lucid/Orm'; +import { column, manyToMany, SnakeCaseNamingStrategy } from '@adonisjs/lucid/orm'; import { DateTime } from 'luxon'; import dayjs from 'dayjs'; -import Role from 'App/Models/Role'; -import BaseModel from './BaseModel'; +import Role from '#models/role'; +import BaseModel from './base_model.js'; +import type { ManyToMany } from "@adonisjs/lucid/types/relations"; export default class Permission extends BaseModel { public static namingStrategy = new SnakeCaseNamingStrategy(); @@ -44,12 +45,12 @@ export default class Permission extends BaseModel { }) public updated_at: DateTime; - @beforeCreate() - @beforeUpdate() - public static async resetDate(role) { - role.created_at = this.formatDateTime(role.created_at); - role.updated_at = this.formatDateTime(role.updated_at); - } + // @beforeCreate() + // @beforeUpdate() + // public static async resetDate(role) { + // role.created_at = this.formatDateTime(role.created_at); + // role.updated_at = this.formatDateTime(role.updated_at); + // } // public static boot() { // super.boot() @@ -64,22 +65,22 @@ export default class Permission extends BaseModel { // }) // } - private static formatDateTime(datetime) { - let value = new Date(datetime); - return datetime - ? value.getFullYear() + - '-' + - (value.getMonth() + 1) + - '-' + - value.getDate() + - ' ' + - value.getHours() + - ':' + - value.getMinutes() + - ':' + - value.getSeconds() - : datetime; - } + // private static formatDateTime(datetime) { + // let value = new Date(datetime); + // return datetime + // ? value.getFullYear() + + // '-' + + // (value.getMonth() + 1) + + // '-' + + // value.getDate() + + // ' ' + + // value.getHours() + + // ':' + + // value.getMinutes() + + // ':' + + // value.getSeconds() + // : datetime; + // } // @belongsTo(() => Role) // public role: BelongsTo<typeof Role>; diff --git a/app/Models/Person.ts b/app/models/person.ts similarity index 65% rename from app/Models/Person.ts rename to app/models/person.ts index 8b15d85..cdc612d 100644 --- a/app/Models/Person.ts +++ b/app/models/person.ts @@ -1,8 +1,9 @@ -import { column, SnakeCaseNamingStrategy, computed, manyToMany, ManyToMany } from '@ioc:Adonis/Lucid/Orm'; +import { column, SnakeCaseNamingStrategy, computed, manyToMany } from '@adonisjs/lucid/orm'; import { DateTime } from 'luxon'; import dayjs from 'dayjs'; -import Dataset from './Dataset'; -import BaseModel from './BaseModel'; +import Dataset from './dataset.js'; +import BaseModel from './base_model.js'; +import type { ManyToMany } from '@adonisjs/lucid/types/relations'; export default class Person extends BaseModel { public static namingStrategy = new SnakeCaseNamingStrategy(); @@ -50,7 +51,7 @@ export default class Person extends BaseModel { serializeAs: 'name', }) public get fullName() { - return `${this.firstName} ${this.lastName}`; + return [this.firstName, this.lastName].filter(Boolean).join(' '); } // @computed() @@ -63,10 +64,28 @@ export default class Person extends BaseModel { // return '2023-03-21 08:45:00'; // } - @computed() + @computed({ + serializeAs: 'dataset_count', + }) public get datasetCount() { const stock = this.$extras.datasets_count; //my pivot column name was "stock" - return stock; + return Number(stock); + } + + @computed() + public get pivot_contributor_type() { + const contributor_type = this.$extras.pivot_contributor_type; //my pivot column name was "stock" + return contributor_type; + } + + @computed({ serializeAs: 'allow_email_contact' }) + public get allowEmailContact() { + // If the datasets relation is missing or empty, return false instead of null. + if (!this.datasets || this.datasets.length === 0) { + return false; + } + // Otherwise return the pivot attribute from the first related dataset. + return this.datasets[0].$extras?.pivot_allow_email_contact; } @manyToMany(() => Dataset, { diff --git a/app/Models/Project.ts b/app/models/project.ts similarity index 85% rename from app/Models/Project.ts rename to app/models/project.ts index 482dc24..6438a4a 100644 --- a/app/Models/Project.ts +++ b/app/models/project.ts @@ -1,6 +1,6 @@ -import { column, SnakeCaseNamingStrategy } from '@ioc:Adonis/Lucid/Orm'; +import { column, SnakeCaseNamingStrategy } from '@adonisjs/lucid/orm'; import { DateTime } from 'luxon'; -import BaseModel from './BaseModel'; +import BaseModel from './base_model.js'; export default class Project extends BaseModel { public static namingStrategy = new SnakeCaseNamingStrategy(); diff --git a/app/Models/Role.ts b/app/models/role.ts similarity index 87% rename from app/Models/Role.ts rename to app/models/role.ts index b9251b6..31598a1 100644 --- a/app/Models/Role.ts +++ b/app/models/role.ts @@ -1,10 +1,11 @@ -import { column, SnakeCaseNamingStrategy, manyToMany, ManyToMany, beforeCreate, beforeUpdate } from '@ioc:Adonis/Lucid/Orm'; -import BaseModel from './BaseModel'; +import { column, SnakeCaseNamingStrategy, manyToMany, beforeCreate, beforeUpdate } from '@adonisjs/lucid/orm'; +import BaseModel from './base_model.js'; import { DateTime } from 'luxon'; // import moment from 'moment'; import dayjs from 'dayjs'; -import User from './User'; -import Permission from 'App/Models/Permission'; +import User from './user.js'; +import Permission from '#models/permission'; +import type { ManyToMany } from "@adonisjs/lucid/types/relations"; export default class Role extends BaseModel { public static namingStrategy = new SnakeCaseNamingStrategy(); @@ -46,7 +47,7 @@ export default class Role extends BaseModel { @beforeCreate() @beforeUpdate() - public static async resetDate(role) { + public static async resetDate(role: Role) { role.created_at = this.formatDateTime(role.created_at); role.updated_at = this.formatDateTime(role.updated_at); } @@ -64,7 +65,7 @@ export default class Role extends BaseModel { // }); // } - private static formatDateTime(datetime) { + private static formatDateTime(datetime: any) { let value = new Date(datetime); return datetime ? value.getFullYear() + diff --git a/app/Models/Subject.ts b/app/models/subject.ts similarity index 51% rename from app/Models/Subject.ts rename to app/models/subject.ts index e3cec00..900eebb 100644 --- a/app/Models/Subject.ts +++ b/app/models/subject.ts @@ -1,9 +1,10 @@ -import { column, SnakeCaseNamingStrategy, manyToMany, ManyToMany, beforeCreate, beforeUpdate } from '@ioc:Adonis/Lucid/Orm'; -import BaseModel from './BaseModel'; +import { column, SnakeCaseNamingStrategy, manyToMany, computed} from '@adonisjs/lucid/orm'; +import BaseModel from './base_model.js'; import { DateTime } from 'luxon'; import dayjs from 'dayjs'; -import Dataset from './Dataset'; +import Dataset from './dataset.js'; +import type { ManyToMany } from "@adonisjs/lucid/types/relations"; export default class Subject extends BaseModel { public static namingStrategy = new SnakeCaseNamingStrategy(); @@ -44,28 +45,33 @@ export default class Subject extends BaseModel { }) public updated_at: DateTime; - @beforeCreate() - @beforeUpdate() - public static async resetDate(role) { - role.created_at = this.formatDateTime(role.created_at); - role.updated_at = this.formatDateTime(role.updated_at); - } + // @beforeCreate() + // @beforeUpdate() + // public static async resetDate(role) { + // role.created_at = this.formatDateTime(role.created_at); + // role.updated_at = this.formatDateTime(role.updated_at); + // } - private static formatDateTime(datetime) { - let value = new Date(datetime); - return datetime - ? value.getFullYear() + - '-' + - (value.getMonth() + 1) + - '-' + - value.getDate() + - ' ' + - value.getHours() + - ':' + - value.getMinutes() + - ':' + - value.getSeconds() - : datetime; + // private static formatDateTime(datetime) { + // let value = new Date(datetime); + // return datetime + // ? value.getFullYear() + + // '-' + + // (value.getMonth() + 1) + + // '-' + + // value.getDate() + + // ' ' + + // value.getHours() + + // ':' + + // value.getMinutes() + + // ':' + + // value.getSeconds() + // : datetime; + // } + @computed() + public get dataset_count() : number{ + const count = this.$extras.datasets_count; //my pivot column name was "stock" + return count; } @manyToMany(() => Dataset, { diff --git a/app/Models/Title.ts b/app/models/title.ts similarity index 70% rename from app/Models/Title.ts rename to app/models/title.ts index 2eaa2d6..fdb525e 100644 --- a/app/Models/Title.ts +++ b/app/models/title.ts @@ -1,6 +1,8 @@ -import { column, belongsTo, BelongsTo } from '@ioc:Adonis/Lucid/Orm'; -import Dataset from './Dataset'; -import BaseModel from './BaseModel'; +import { column, belongsTo } from '@adonisjs/lucid/orm'; +import Dataset from './dataset.js'; +import BaseModel from './base_model.js'; +import type { BelongsTo } from "@adonisjs/lucid/types/relations"; + // import { DatasetRelatedBaseModel } from './BaseModel'; export default class Title extends BaseModel { @@ -10,6 +12,11 @@ export default class Title extends BaseModel { public static timestamps = false; public static fillable: string[] = ['value', 'type', 'language']; + @column({ + isPrimary: true, + }) + public id: number; + @column({}) public document_id: number; diff --git a/app/models/totp_secret.ts b/app/models/totp_secret.ts new file mode 100644 index 0000000..6e3c277 --- /dev/null +++ b/app/models/totp_secret.ts @@ -0,0 +1,65 @@ +import { column, BaseModel, SnakeCaseNamingStrategy, belongsTo } from '@adonisjs/lucid/orm'; +import User from './user.js'; +import { DateTime } from 'luxon'; +import dayjs from 'dayjs'; +// import Encryption from '@ioc:Adonis/Core/Encryption'; +import encryption from '@adonisjs/core/services/encryption'; +import type { BelongsTo } from "@adonisjs/lucid/types/relations"; + +export default class TotpSecret extends BaseModel { + public static namingStrategy = new SnakeCaseNamingStrategy(); + public static table = 'totp_secrets'; + // public static fillable: string[] = ['value', 'label', 'type', 'relation']; + + @column({ + isPrimary: true, + }) + public id: number; + + @column({}) + public user_id: number; + + // @column() + // public twoFactorSecret: string; + @column({ + serializeAs: null, + consume: (value: string) => (value ? JSON.parse(encryption.decrypt(value) ?? '{}') : null), + prepare: (value: string) => encryption.encrypt(JSON.stringify(value)), + }) + public twoFactorSecret?: string | null; + + // serializeAs: null removes the model properties from the serialized output. + @column({ + serializeAs: null, + consume: (value: string) => (value ? JSON.parse(encryption.decrypt(value) ?? '[]') : []), + prepare: (value: string[]) => encryption.encrypt(JSON.stringify(value)), + }) + public twoFactorRecoveryCodes?: string[] | null; + + @column({}) + public state: number; + + @column.dateTime({ + serialize: (value: Date | null) => { + // return value ? moment(value).format('MMMM Do YYYY, HH:mm:ss') : value; + return value ? dayjs(value).format('MMMM D YYYY HH:mm a') : value; + }, + autoCreate: true, + }) + public created_at: DateTime; + + @column.dateTime({ + serialize: (value: Date | null) => { + return value ? dayjs(value).format('MMMM D YYYY HH:mm a') : value; + }, + autoCreate: true, + autoUpdate: true, + }) + public updated_at: DateTime; + + @belongsTo(() => User, { + foreignKey: 'user_id', + }) + public user: BelongsTo<typeof User>; + +} diff --git a/app/Models/Traits/DatasetExtension.ts b/app/models/traits/dataset_extension.ts similarity index 93% rename from app/Models/Traits/DatasetExtension.ts rename to app/models/traits/dataset_extension.ts index 926f14c..69fc197 100644 --- a/app/Models/Traits/DatasetExtension.ts +++ b/app/models/traits/dataset_extension.ts @@ -1,15 +1,15 @@ -import Title from 'App/Models/Title'; -import Description from 'App/Models/Description'; -import License from 'App/Models/License'; -import Person from 'App/Models/Person'; -import DatasetReference from 'App/Models/DatasetReference'; -import DatasetIdentifier from 'App/Models/DatasetIdentifier'; -import Subject from 'App/Models/Subject'; -import File from 'App/Models/File'; -import Coverage from 'App/Models/Coverage'; -import Collection from 'App/Models/Collection'; -import { BaseModel as LucidBaseModel } from '@ioc:Adonis/Lucid/Orm'; -import Field from 'App/Library/Field'; +import Title from '#models/title'; +import Description from '#models/description'; +import License from '#models/license'; +import Person from '#models/person'; +import DatasetReference from '#models/dataset_reference'; +import DatasetIdentifier from '#models/dataset_identifier'; +import Subject from '#models/subject'; +import File from '#models/file'; +import Coverage from '#models/coverage'; +import Collection from '#models/collection'; +import { BaseModel as LucidBaseModel } from '@adonisjs/lucid/orm'; +import Field from '#app/Library/Field'; import { DateTime } from 'luxon'; // @StaticImplements<LucidModel>() @@ -30,13 +30,13 @@ export type DatasetRelatedModel = | typeof DatasetIdentifier | typeof File; - export default abstract class DatasetExtension extends LucidBaseModel { - public abstract id; + public abstract id: number; public externalFields: Record<string, any> = this.getExternalFields(); // which fields shoud#t be published protected internalFields: Record<string, any> = {}; protected fields: Record<string, any> = {}; + // [key: string]: any; private getExternalFields(): Record<string, any> { // External fields definition @@ -83,7 +83,7 @@ export default abstract class DatasetExtension extends LucidBaseModel { sort_order: 'sort_order', allow_email_contact: 'allow_email_contact', }, - relation: 'persons', + relation: 'contributors', fetch: 'eager', }, Reference: { @@ -160,7 +160,7 @@ export default abstract class DatasetExtension extends LucidBaseModel { // // Initialize available date fields and set up date validator // // if the particular field is present - let dateFields = new Array<string>('EmbargoDate', 'CreatedAt', 'ServerDatePublished', 'ServerDateDeleted'); + let dateFields = new Array<string>('EmbargoDate', 'CreatedAt', 'ServerDateModified', 'ServerDatePublished', 'ServerDateDeleted'); dateFields.forEach((fieldname) => { let dateField = this.getField(fieldname); dateField instanceof Field && dateField.setValueModelClass(DateTime.now()); @@ -323,7 +323,7 @@ export default abstract class DatasetExtension extends LucidBaseModel { private convertColumnToFieldname(columnName: string): string { return columnName .split(/[-_]/) - .map((word) => (word.charAt(0).toUpperCase() + word.slice(1))) + .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) .join(''); } } diff --git a/app/models/types.ts b/app/models/types.ts new file mode 100644 index 0000000..1fda1e1 --- /dev/null +++ b/app/models/types.ts @@ -0,0 +1,57 @@ +/** + * Qs module config + */ +type QueryStringConfig = { + depth?: number + allowPrototypes?: boolean + plainObjects?: boolean + parameterLimit?: number + arrayLimit?: number + ignoreQueryPrefix?: boolean + delimiter?: RegExp | string + allowDots?: boolean + charset?: 'utf-8' | 'iso-8859-1' | undefined + charsetSentinel?: boolean + interpretNumericEntities?: boolean + parseArrays?: boolean + comma?: boolean + } +/** + * Base config used by all types + */ +type BodyParserBaseConfig = { + encoding: string + limit: string | number + types: string[] + } + + /** + * Body parser config for parsing JSON requests + */ + export type BodyParserJSONConfig = BodyParserBaseConfig & { + strict: boolean + convertEmptyStringsToNull: boolean + } + + /** + * Parser config for parsing form data + */ + export type BodyParserFormConfig = BodyParserBaseConfig & { + queryString: QueryStringConfig + convertEmptyStringsToNull: boolean + } + + /** + * Parser config for parsing raw body (untouched) + */ + export type BodyParserRawConfig = BodyParserBaseConfig +/** + * Body parser config for all supported form types + */ +export type BodyParserConfig = { + allowedMethods: string[] + json: BodyParserJSONConfig + form: BodyParserFormConfig + raw: BodyParserRawConfig + multipart: BodyParserMultipartConfig + } \ No newline at end of file diff --git a/app/models/user.ts b/app/models/user.ts new file mode 100644 index 0000000..5dbaab4 --- /dev/null +++ b/app/models/user.ts @@ -0,0 +1,204 @@ +import { DateTime } from 'luxon'; +import { withAuthFinder } from '@adonisjs/auth/mixins/lucid'; +import { column, manyToMany, hasMany, SnakeCaseNamingStrategy, computed, beforeFetch, beforeFind } from '@adonisjs/lucid/orm'; +import hash from '@adonisjs/core/services/hash'; +import Role from './role.js'; +import db from '@adonisjs/lucid/services/db'; +import config from '@adonisjs/core/services/config'; +import Dataset from './dataset.js'; +import BaseModel from './base_model.js'; +// import Encryption from '@ioc:Adonis/Core/Encryption'; +import encryption from '@adonisjs/core/services/encryption'; +import { TotpState } from '#contracts/enums'; +import type { ManyToMany } from '@adonisjs/lucid/types/relations'; +import type { HasMany } from '@adonisjs/lucid/types/relations'; +import { compose } from '@adonisjs/core/helpers'; +import BackupCode from './backup_code.js'; + +const AuthFinder = withAuthFinder(() => hash.use('laravel'), { + uids: ['email'], + passwordColumnName: 'password', +}); + +// import TotpSecret from './TotpSecret'; + +// export default interface IUser { +// id: number; +// login: string; +// email: string; +// // password: string; +// // createdAt: DateTime; +// // updatedAt: DateTime; +// // async (user): Promise<void>; +// } + +// const permissionTable = config.get('rolePermission.permission_table', 'permissions'); +// const rolePermissionTable = config.get('rolePermission.role_permission_table', 'role_has_permissions'); + +// const roleTable = config.get('rolePermission.role_table', 'roles'); +// const userRoleTable = config.get('rolePermission.user_role_table', 'link_accounts_roles'); + +export default class User extends compose(BaseModel, AuthFinder) { + // export default class User extends BaseModel { + public static namingStrategy = new SnakeCaseNamingStrategy(); + public static table = 'accounts'; + + @column({ isPrimary: true }) + public id: number; + + @column() + public login: string; + + @column() + public firstName: string; + + @column() + public lastName: string; + + @column() + public email: string; + + @column({ serializeAs: null }) + public password: string; + + @column.dateTime({ autoCreate: true }) + public createdAt: DateTime; + + @column.dateTime({ autoCreate: true, autoUpdate: true }) + public updatedAt: DateTime; + + // serializeAs: null removes the model properties from the serialized output. + @column({ + serializeAs: null, + consume: (value: string) => (value ? JSON.parse(encryption.decrypt(value) ?? '{}') : null), + prepare: (value: string) => encryption.encrypt(JSON.stringify(value)), + }) + public twoFactorSecret?: string | null; + + // serializeAs: null removes the model properties from the serialized output. + @column({ + serializeAs: null, + consume: (value: string) => (value ? JSON.parse(encryption.decrypt(value) ?? '[]') : []), + prepare: (value: string[]) => encryption.encrypt(JSON.stringify(value)), + }) + public twoFactorRecoveryCodes?: string[] | null; + + @column({}) + public state: number; + + @column({}) + public avatar: string; + + // @hasOne(() => TotpSecret, { + // foreignKey: 'user_id', + // }) + // public totp_secret: HasOne<typeof TotpSecret>; + + // @beforeSave() + // public static async hashPassword(user: User) { + // if (user.$dirty.password) { + // user.password = await hash.use('laravel').make(user.password); + // } + // } + + public get isTwoFactorEnabled(): boolean { + return Boolean(this?.twoFactorSecret && this.state == TotpState.STATE_ENABLED); + // return Boolean(this.totp_secret?.twoFactorSecret); + } + + + @manyToMany(() => Role, { + pivotForeignKey: 'account_id', + pivotRelatedForeignKey: 'role_id', + pivotTable: 'link_accounts_roles', + }) + public roles: ManyToMany<typeof Role>; + + @hasMany(() => Dataset, { + foreignKey: 'account_id', + }) + public datasets: HasMany<typeof Dataset>; + + @hasMany(() => BackupCode, { + foreignKey: 'user_id', + }) + public backupcodes: HasMany<typeof BackupCode>; + + @computed({ + serializeAs: 'is_admin', + }) + public get isAdmin(): boolean { + const roles = this.roles; + const isAdmin = roles?.map((role: Role) => role.name).includes('administrator'); + return isAdmin; + } + + // public toJSON() { + // return { + // ...super.toJSON(), + // roles: [] + // }; + // } + @beforeFind() + @beforeFetch() + public static preloadRoles(user: User) { + user.preload('roles') + } + + public async getBackupCodes(this: User): Promise<BackupCode[]> { + const test = await this.related('backupcodes').query(); + // return test.map((role) => role.code); + return test; + } + + // https://github.com/adonisjs/core/discussions/1872#discussioncomment-132289 + public async getRoles(this: User): Promise<string[]> { + const test = await this.related('roles').query(); + return test.map((role) => role.name); + } + + public async can(permissionNames: Array<string>): Promise<boolean> { + // const permissions = await this.getPermissions() + // return Acl.check(expression, operand => _.includes(permissions, operand)) + const hasPermission = await this.checkHasPermissions(this, permissionNames); + return hasPermission; + } + + private async checkHasPermissions(user: User, permissionNames: Array<string>): Promise<boolean> { + const permissionTable = config.get('rolePermission.permission_table', 'permissions'); + const rolePermissionTable = config.get('rolePermission.role_permission_table', 'role_has_permissions'); + + const roleTable = config.get('rolePermission.role_table', 'roles'); + const userRoleTable = config.get('rolePermission.user_role_table', 'link_accounts_roles'); + + let permissionPlaceHolder = '('; + let placeholders = new Array(permissionNames.length).fill('?'); + permissionPlaceHolder += placeholders.join(','); + permissionPlaceHolder += ')'; + + let { + rows: { + 0: { permissioncount }, + }, + } = await db.rawQuery( + 'SELECT count("p"."name") as permissionCount FROM ' + + roleTable + + ' r INNER JOIN ' + + userRoleTable + + ' ur ON ur.role_id=r.id AND "ur"."account_id"=? ' + + ' INNER JOIN ' + + rolePermissionTable + + ' rp ON rp.role_id=r.id ' + + ' INNER JOIN ' + + permissionTable + + ' p ON rp.permission_id=p.id AND "p"."name" in ' + + permissionPlaceHolder + + ' LIMIT 1', + [user.id, ...permissionNames], + ); + + return permissioncount > 0; + } +} + +// export default User; diff --git a/app/Models/UserRole.ts b/app/models/user_role.ts similarity index 87% rename from app/Models/UserRole.ts rename to app/models/user_role.ts index 3b3de94..8696713 100644 --- a/app/Models/UserRole.ts +++ b/app/models/user_role.ts @@ -1,8 +1,10 @@ -import { column, BaseModel, belongsTo, BelongsTo, SnakeCaseNamingStrategy } from '@ioc:Adonis/Lucid/Orm'; +import { column, BaseModel, belongsTo, SnakeCaseNamingStrategy } from '@adonisjs/lucid/orm'; -import User from 'App/Models/User'; -import Role from 'App/Models/Role'; +import User from '#models/user'; +import Role from '#models/role'; import { DateTime } from 'luxon'; +import type { BelongsTo } from "@adonisjs/lucid/types/relations"; + // import moment from 'moment' export default class UserRole extends BaseModel { @@ -49,7 +51,7 @@ export default class UserRole extends BaseModel { }); } - private static formatDateTime(datetime) { + private static formatDateTime(datetime: any) { let value = new Date(datetime); return datetime ? value.getFullYear() + diff --git a/app/services/TwoFactorAuthProvider.ts b/app/services/TwoFactorAuthProvider.ts new file mode 100644 index 0000000..7061c05 --- /dev/null +++ b/app/services/TwoFactorAuthProvider.ts @@ -0,0 +1,128 @@ +// import Config from '@ioc:Adonis/Core/Config'; +// import config from '@adonisjs/core/services/config' +import env from '#start/env'; +import User from '#models/user'; +import { generateSecret, verifyToken } from 'node-2fa/dist/index.js'; +// import cryptoRandomString from 'crypto-random-string'; +import QRCode from 'qrcode'; +import crypto from 'crypto'; +import { TotpState } from '#contracts/enums'; + +// npm install node-2fa --save +// npm install crypto-random-string --save +// import { cryptoRandomStringAsync } from 'crypto-random-string/index'; +// npm install qrcode --save +// npm i --save-dev @types/qrcode + +class TwoFactorAuthProvider { + private issuer: string = env.get('APP_NAME') || 'TethysCloud'; + + /** + * generateSecret will generate a user-specific 32-character secret. + * We’re providing the name of the app and the user’s email as parameters for the function. + * This secret key will be used to verify whether the token provided by the user during authentication is valid or not. + * + * Return the default global focus trap stack * + * @param {User} user user for the secrect + * @return {string} + */ + public generateSecret(user: User) { + const secret = generateSecret({ + name: this.issuer, + account: user.email, + }); + return secret.secret; + } + + /** + * We also generated recovery codes which can be used in case we’re unable to retrieve tokens from 2FA applications. + * We assign the user a list of recovery codes and each code can be used only once during the authentication process. + * The recovery codes are random strings generated using the cryptoRandomString library. + * + * Return recovery codes + * @return {string[]} + */ + public generateRecoveryCodes(): string[] { + const recoveryCodeLimit: number = 8; + const codes: string[] = []; + for (let i = 0; i < recoveryCodeLimit; i++) { + const recoveryCode: string = `${this.secureRandomString()}-${this.secureRandomString()}`; + codes.push(recoveryCode); + } + return codes; + } + + private secureRandomString() { + // return await cryptoRandomString.async({ length: 10, type: 'hex' }); + return this.generateRandomString(10, 'hex'); + } + + private generateRandomString(length: number, type: 'hex' | 'base64' | 'numeric' = 'hex'): string { + const byteLength = Math.ceil(length * 0.5); // For hex encoding, each byte generates 2 characters + const randomBytes = crypto.randomBytes(byteLength); + + switch (type) { + case 'hex': + return randomBytes.toString('hex').slice(0, length); + case 'base64': + return randomBytes.toString('base64').slice(0, length); + case 'numeric': + return randomBytes + .toString('hex') + .replace(/[a-fA-F]/g, '') // Remove non-numeric characters + .slice(0, length); + default: + throw new Error('Invalid type specified'); + } + } + + // public async generateQrCode(user: User) : Promise<{svg: string; url: string; secret: string; }> { + // const issuer = encodeURIComponent(this.issuer); // 'TethysCloud' + // // const userName = encodeURIComponent(user.email); // 'rrqx9472%40tethys.at' + // const label = `${this.issuer}:${user.email}`; + + // const algorithm = encodeURIComponent("SHA256"); + // const query = `?secret=${user.twoFactorSecret}&issuer=${issuer}&algorithm=${algorithm}&digits=6`; // '?secret=FEYCLOSO627CB7SMLX6QQ7BP75L7SJ54&issuer=TethysCloud' + // const url = `otpauth://totp/${label}${query}`; // 'otpauth://totp/rrqx9472%40tethys.at?secret=FEYCLOSO627CB7SMLX6QQ7BP75L7SJ54&issuer=TethysCloud' + // const svg = await QRCode.toDataURL(url); + // const secret = user.twoFactorSecret as string; + // return { svg, url, secret }; + // } + + public async generateQrCode(user: User, twoFactorSecret?: string): Promise<{ svg: string; url: string; secret: string }> { + const issuer = encodeURIComponent(this.issuer); // 'TethysCloud' + // const userName = encodeURIComponent(user.email); // 'rrqx9472%40tethys.at' + const label = `${this.issuer}:${user.email}`; + + // const algorithm = encodeURIComponent('SHA256'); + const secret = twoFactorSecret ? twoFactorSecret : (user.twoFactorSecret as string); + const query = `?secret=${secret}&issuer=${issuer}&digits=6`; // '?secret=FEYCLOSO627CB7SMLX6QQ7BP75L7SJ54&issuer=TethysCloud' + + const url = `otpauth://totp/${label}${query}`; // 'otpauth://totp/rrqx9472%40tethys.at?secret=FEYCLOSO627CB7SMLX6QQ7BP75L7SJ54&issuer=TethysCloud' + const svg = await QRCode.toDataURL(url); + + return { svg, url, secret }; + } + + public async enable(user: User, token: string): Promise<boolean> { + const isValid = verifyToken(user.twoFactorSecret as string, token, 1); + if (!isValid) { + return false; + } + user.state = TotpState.STATE_ENABLED; + if (await user.save()) { + return true; + } + return false; + } + + public async validate(user: User, token: string): Promise<boolean> { + const isValid = verifyToken(user.twoFactorSecret as string, token, 1); + if (isValid) { + return true; + } + return false; + } +} + +export default new TwoFactorAuthProvider(); diff --git a/app/services/backup_code_storage.ts b/app/services/backup_code_storage.ts new file mode 100644 index 0000000..4529055 --- /dev/null +++ b/app/services/backup_code_storage.ts @@ -0,0 +1,136 @@ +import User from '#models/user'; +import BackupCode from '#models/backup_code'; +import hash from '@adonisjs/core/services/hash'; + +export interface ISecureRandom { + CHAR_UPPER: string; + CHAR_LOWER: string; + CHAR_DIGITS: string; + CHAR_SYMBOLS: string; + CHAR_ALPHANUMERIC: string; + CHAR_HUMAN_READABLE: string; + + /** + * Generate a random string of specified length. + * @param int $length The length of the generated string + * @param string $characters An optional list of characters to use if no character list is + * specified all valid base64 characters are used. + * @return string + * @since 8.0.0 + */ + generate(length: number, characters?: string): string; +} + +export class SecureRandom implements ISecureRandom { + CHAR_UPPER: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + CHAR_LOWER: string = 'abcdefghijklmnopqrstuvwxyz'; + CHAR_DIGITS: string = '0123456789'; + CHAR_SYMBOLS: string = '!"#$%&\\\'()*+,-./:;<=>?@[]^_`{|}~'; + CHAR_ALPHANUMERIC: string = this.CHAR_UPPER + this.CHAR_LOWER + this.CHAR_DIGITS; + CHAR_HUMAN_READABLE: string = 'abcdefgijkmnopqrstwxyzABCDEFGHJKLMNPQRSTWXYZ23456789'; + + public generate(length: number, characters: string = this.CHAR_ALPHANUMERIC): string { + if (length <= 0) { + throw new Error('Invalid length specified: ' + length + ' must be bigger than 0'); + } + const maxCharIndex: number = characters.length - 1; + let randomString: string = ''; + while (length > 0) { + const randomNumber: number = Math.floor(Math.random() * (maxCharIndex + 1)); + randomString += characters[randomNumber]; + length--; + } + return randomString; + } +} + +class BackupCodeStorage { + private static CODE_LENGTH: number = 16; + // private mapper: BackupCodeMapper; + // private hasher: IHasher; + private random: ISecureRandom; + // private eventDispatcher: IEventDispatcher; + + // constructor(mapper: BackupCodeMapper, random: ISecureRandom, hasher: IHasher, eventDispatcher: IEventDispatcher) { + // this.mapper = mapper; + // this.hasher = hasher; + // this.random = random; + // this.eventDispatcher = eventDispatcher; + // } + constructor(random: ISecureRandom) { + // this.mapper = mapper; + // this.hasher = hasher; + this.random = random; + // this.eventDispatcher = eventDispatcher; + } + + public async createCodes(user: User, number: number = 10): Promise<string[]> { + let results: string[] = []; + // this.mapper.deleteCodes(user); + await BackupCode.deleteCodes(user); + // user.twoFactorRecoveryCodes = [""]; + + // const uid = user.getUID(); + for (let i = 1; i <= Math.min(number, 20); i++) { + const code = this.random.generate(BackupCodeStorage.CODE_LENGTH, this.random.CHAR_HUMAN_READABLE); + // const code = crypto + // .randomBytes(Math.ceil(BackupCodeStorage.CODE_LENGTH / 2)) + // .toString('hex') + // .slice(0, BackupCodeStorage.CODE_LENGTH); + const dbCode = new BackupCode(); + // dbCode.setUserId(uid); + + // dbCode.setCode(this.hasher.hash(code)); + dbCode.code = await hash.make(code); + // dbCode.setUsed(0); + dbCode.used = false; + // this.mapper.insert(dbCode); + // await dbCode.save(); + await dbCode.related('user').associate(user); // speichert schon ab + results.push(code); + } + // this.eventDispatcher.dispatchTyped(new CodesGenerated(user)); + return results; + } + + public async hasBackupCodes(user: User): Promise<boolean> { + const codes = await user.getBackupCodes(); + return codes.length > 0; + } + + public async getBackupCodesState(user: User) { + // const codes = this.mapper.getBackupCodes(user); + // const codes = await user.related('backupcodes').query().exec(); + const codes: BackupCode[] = await user.getBackupCodes(); + const total = codes.length; + let used: number = 0; + codes.forEach((code) => { + if (code.used === true) { + used++; + } + }); + return { + enabled: total > 0, + total: total, + used: used, + }; + } + + // public validateCode(user: User, code: string): boolean { + // const dbCodes = await user.getBackupCodes(); + // for (const dbCode of dbCodes) { + // if (parseInt(dbCode.getUsed()) === 0 && this.hasher.verify(code, dbCode.getCode())) { + // dbCode.setUsed(1); + // this.mapper.update(dbCode); + // return true; + // } + // } + // return false; + // } + + // public deleteCodes(user: User): void { + // this.mapper.deleteCodes(user); + // } +} + +export default BackupCodeStorage; diff --git a/app/services/drive.ts b/app/services/drive.ts new file mode 100644 index 0000000..0aa58b2 --- /dev/null +++ b/app/services/drive.ts @@ -0,0 +1,13 @@ +// import app from './app.js'; +import DriveManager from "#providers/drive/src/drive_manager"; +import app from "@adonisjs/core/services/app"; + +let drive: DriveManager; +/** + * Returns a singleton instance of the router class from + * the container + */ +await app.booted(async () => { + drive = await app.container.make(DriveManager); +}); +export { drive as default }; \ No newline at end of file diff --git a/app/utils/utility-functions.ts b/app/utils/utility-functions.ts new file mode 100644 index 0000000..a281f59 --- /dev/null +++ b/app/utils/utility-functions.ts @@ -0,0 +1,124 @@ +import { join, isAbsolute } from 'node:path'; +import type { BodyParserConfig } from '#models/types'; +import { createId } from '@paralleldrive/cuid2'; +import { tmpdir } from 'node:os'; +import config from '@adonisjs/core/services/config'; +import Dataset from '#models/dataset'; +import { TransactionClientContract } from '@adonisjs/lucid/types/database'; +import Person from '#models/person'; + +interface Dictionary { + [index: string]: string; +} + +export function sum(a: number, b: number): number { + return a + b; +} + +export function getDomain(host: string): string { + // $myhost = strtolower(trim($host)); + let myHost: string = host.trim().toLocaleLowerCase(); + // $count = substr_count($myhost, '.'); + const count: number = myHost.split(',').length - 1; + + if (count == 2) { + const words = myHost.split('.'); + if (words[1].length > 3) { + myHost = myHost.split('.', 2)[1]; + } + } else if (count > 2) { + myHost = getDomain(myHost.split('.', 2)[1]); + } + myHost = myHost.replace(new RegExp(/^.*:\/\//i, 'g'), ''); + return myHost; +} + +export function preg_match(regex: RegExp, str: string) { + const result: boolean = regex.test(str); + return result; +} + +/** + * Returns the tmp path for storing the files temporarly + */ +export function getTmpPath(config: BodyParserConfig['multipart']): string { + if (typeof config.tmpFileName === 'function') { + const tmpPath = config.tmpFileName(); + return isAbsolute(tmpPath) ? tmpPath : join(tmpdir(), tmpPath); + } + + return join(tmpdir(), createId()); +} +/** + * Returns config for a given type + */ +export function getConfigFor<K extends keyof BodyParserConfig>(type: K): BodyParserConfig[K] { + const bodyParserConfig: BodyParserConfig = config.get('bodyparser'); + const configType = bodyParserConfig[type]; + return configType; +} + +export function parseBytesSize(size: string): number { + const units: Record<string, number> = { + kb: 1024, + mb: 1024 * 1024, + gb: 1024 * 1024 * 1024, + tb: 1024 * 1024 * 1024 * 1024, + }; + + const match = size.match(/^(\d+)(kb|mb|gb|tb)$/i); // Regex to match size format + + if (!match) { + throw new Error('Invalid size format'); + } + + const [, value, unit] = match; + return parseInt(value) * units[unit.toLowerCase()]; +} + +// Helper function to format bytes as human-readable text + +export function formatBytes(bytes: number): string { + if (bytes === 0) return '0 Bytes'; + const k = 1024; + const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB']; + const i = Math.floor(Math.log(bytes) / Math.log(k)); + return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i]; +} + +export async function savePersons(dataset: Dataset, persons: any[], role: string, trx: TransactionClientContract) { + for (const [key, person] of persons.entries()) { + const pivotData = { + role: role, + sort_order: key + 1, + allow_email_contact: false, + ...extractPivotAttributes(person), // Merge pivot attributes here + }; + + if (person.id !== undefined) { + await dataset + .useTransaction(trx) + .related('persons') + .attach({ + [person.id]: pivotData, + }); + } else { + const dataPerson = new Person(); + dataPerson.fill(person); + await dataset.useTransaction(trx).related('persons').save(dataPerson, false, pivotData); + } + } +} + +// Helper function to extract pivot attributes from a person object +function extractPivotAttributes(person: any) { + const pivotAttributes: Dictionary = {}; + for (const key in person) { + if (key.startsWith('pivot_')) { + // pivotAttributes[key] = person[key]; + const cleanKey = key.replace('pivot_', ''); // Remove 'pivot_' prefix + pivotAttributes[cleanKey] = person[key]; + } + } + return pivotAttributes; +} diff --git a/app/validators/auth.ts b/app/validators/auth.ts new file mode 100644 index 0000000..9eb9313 --- /dev/null +++ b/app/validators/auth.ts @@ -0,0 +1,20 @@ +import vine from '@vinejs/vine'; + +// public schema = schema.create({ +// email: schema.string({ trim: true }, [ +// rules.email(), +// // rules.unique({ table: 'accounts', column: 'email' }) +// ]), +// password: schema.string({}, [rules.minLength(6)]), +// }); + +/** + * Validates the role's creation action + * node ace make:validator role + */ +export const authValidator = vine.compile( + vine.object({ + email: vine.string().maxLength(255).email().normalizeEmail(), + password: vine.string().trim().minLength(6), + }), +); diff --git a/app/validators/dataset.ts b/app/validators/dataset.ts new file mode 100644 index 0000000..5417463 --- /dev/null +++ b/app/validators/dataset.ts @@ -0,0 +1,505 @@ +import vine, { SimpleMessagesProvider } from '@vinejs/vine'; +import { TitleTypes, DescriptionTypes, ContributorTypes, ReferenceIdentifierTypes, RelationTypes } from '#contracts/enums'; +import dayjs from 'dayjs'; + +// import MimeType from '#models/mime_type'; + +// const enabledExtensions = await MimeType.query().select('file_extension').where('enabled', true).exec(); +// const extensions = enabledExtensions +// .map((extension) => { +// return extension.file_extension.split('|'); +// }) +// .flat(); + +/** + * Validates the dataset's creation action + * node ace make:validator dataset + */ +export const createDatasetValidator = vine.compile( + vine.object({ + // first step + language: vine + .string() + .trim() + .regex(/^[a-zA-Z0-9]+$/), + licenses: vine.array(vine.number()).minLength(1), // define at least one license for the new dataset + rights: vine.string().in(['true']), + // second step + type: vine.string().trim().minLength(3).maxLength(255), + creating_corporation: vine.string().trim().minLength(3).maxLength(255), + titles: vine + .array( + vine.object({ + value: vine.string().trim().minLength(3).maxLength(255), + type: vine.enum(Object.values(TitleTypes)), + language: vine + .string() + .trim() + .minLength(2) + .maxLength(255) + .translatedLanguage({ mainLanguageField: 'language', typeField: 'type' }), + }), + ) + // .minLength(2) + .arrayContainsTypes({ typeA: 'main', typeB: 'translated' }), + descriptions: vine + .array( + vine.object({ + value: vine.string().trim().minLength(3).maxLength(2500), + type: vine.enum(Object.values(DescriptionTypes)), + language: vine + .string() + .trim() + .minLength(2) + .maxLength(255) + .translatedLanguage({ mainLanguageField: 'language', typeField: 'type' }), + }), + ) + // .minLength(1), + .arrayContainsTypes({ typeA: 'abstract', typeB: 'translated' }), + authors: vine + .array( + vine.object({ + email: vine + .string() + .trim() + .maxLength(255) + .email() + .normalizeEmail() + .isUniquePerson({ table: 'persons', column: 'email', idField: 'id' }), + first_name: vine.string().trim().minLength(3).maxLength(255), + last_name: vine.string().trim().minLength(3).maxLength(255), + }), + ) + .minLength(1) + .distinct('email'), + contributors: vine + .array( + vine.object({ + email: vine + .string() + .trim() + .maxLength(255) + .email() + .normalizeEmail() + .isUniquePerson({ table: 'persons', column: 'email', idField: 'id' }), + first_name: vine.string().trim().minLength(3).maxLength(255), + last_name: vine.string().trim().minLength(3).maxLength(255), + pivot_contributor_type: vine.enum(Object.keys(ContributorTypes)), + }), + ) + .distinct('email') + .optional(), + // third step + project_id: vine.number().optional(), + // embargo_date: schema.date.optional({ format: 'yyyy-MM-dd' }, [rules.after(10, 'days')]), + embargo_date: vine + .date({ + formats: ['YYYY-MM-DD'], + }) + .afterOrEqual((_field) => { + return dayjs().add(10, 'day').format('YYYY-MM-DD'); + }) + .optional(), + coverage: vine.object({ + x_min: vine.number(), + x_max: vine.number(), + y_min: vine.number(), + y_max: vine.number(), + elevation_absolut: vine.number().positive().optional(), + elevation_min: vine.number().positive().optional().requiredIfExists('elevation_max'), + elevation_max: vine.number().positive().optional().requiredIfExists('elevation_min'), + // type: vine.enum(Object.values(DescriptionTypes)), + depth_absolut: vine.number().negative().optional(), + depth_min: vine.number().negative().optional().requiredIfExists('depth_max'), + depth_max: vine.number().negative().optional().requiredIfExists('depth_min'), + time_abolute: vine.date({ formats: { utc: true } }).optional(), + time_min: vine + .date({ formats: { utc: true } }) + .beforeField('time_max') + .optional() + .requiredIfExists('time_max'), + time_max: vine + .date({ formats: { utc: true } }) + .afterField('time_min') + .optional() + .requiredIfExists('time_min'), + }), + references: vine + .array( + vine.object({ + value: vine.string().trim().minLength(3).maxLength(255).validateReference({ typeField: 'type' }), + type: vine.enum(Object.values(ReferenceIdentifierTypes)), + relation: vine.enum(Object.values(RelationTypes)), + label: vine.string().trim().minLength(2).maxLength(255), + }), + ) + .optional(), + subjects: vine + .array( + vine.object({ + value: vine.string().trim().minLength(3).maxLength(255), + // pivot_contributor_type: vine.enum(Object.keys(ContributorTypes)), + language: vine.string().trim().minLength(2).maxLength(255), + }), + ) + .minLength(3) + .distinct('value'), + // last step + files: vine + .array( + vine + .myfile({ + size: '512mb', + //extnames: extensions, + }) + .allowedMimetypeExtensions() + .filenameLength({ clientNameSizeLimit: 100 }) + .fileScan({ removeInfected: true }), + ) + .minLength(1), + }),); + +/** + * Validates the dataset's update action + */ +export const updateDatasetValidator = vine.compile( + vine.object({ + // first step + language: vine + .string() + .trim() + .regex(/^[a-zA-Z0-9]+$/), + licenses: vine.array(vine.number()).minLength(1), // define at least one license for the new dataset + rights: vine.string().in(['true']), + // second step + type: vine.string().trim().minLength(3).maxLength(255), + creating_corporation: vine.string().trim().minLength(3).maxLength(255), + titles: vine + .array( + vine.object({ + value: vine.string().trim().minLength(3).maxLength(255), + type: vine.enum(Object.values(TitleTypes)), + language: vine + .string() + .trim() + .minLength(2) + .maxLength(255) + .translatedLanguage({ mainLanguageField: 'language', typeField: 'type' }), + }), + ) + // .minLength(2) + .arrayContainsTypes({ typeA: 'main', typeB: 'translated' }), + descriptions: vine + .array( + vine.object({ + value: vine.string().trim().minLength(3).maxLength(2500), + type: vine.enum(Object.values(DescriptionTypes)), + language: vine + .string() + .trim() + .minLength(2) + .maxLength(255) + .translatedLanguage({ mainLanguageField: 'language', typeField: 'type' }), + }), + ) + .arrayContainsTypes({ typeA: 'abstract', typeB: 'translated' }), + authors: vine + .array( + vine.object({ + email: vine + .string() + .trim() + .maxLength(255) + .email() + .normalizeEmail() + .isUniquePerson({ table: 'persons', column: 'email', idField: 'id' }), + first_name: vine.string().trim().minLength(3).maxLength(255), + last_name: vine.string().trim().minLength(3).maxLength(255), + }), + ) + .minLength(1) + .distinct('email'), + contributors: vine + .array( + vine.object({ + email: vine + .string() + .trim() + .maxLength(255) + .email() + .normalizeEmail() + .isUniquePerson({ table: 'persons', column: 'email', idField: 'id' }), + first_name: vine.string().trim().minLength(3).maxLength(255), + last_name: vine.string().trim().minLength(3).maxLength(255), + pivot_contributor_type: vine.enum(Object.keys(ContributorTypes)), + }), + ) + .distinct('email') + .optional(), + // third step + project_id: vine.number().optional(), + // embargo_date: schema.date.optional({ format: 'yyyy-MM-dd' }, [rules.after(10, 'days')]), + embargo_date: vine + .date({ + formats: ['YYYY-MM-DD'], + }) + .afterOrEqual((_field) => { + return dayjs().add(10, 'day').format('YYYY-MM-DD'); + }) + .optional(), + coverage: vine.object({ + x_min: vine.number(), + x_max: vine.number(), + y_min: vine.number(), + y_max: vine.number(), + elevation_absolut: vine.number().positive().optional(), + elevation_min: vine.number().positive().optional().requiredIfExists('elevation_max'), + elevation_max: vine.number().positive().optional().requiredIfExists('elevation_min'), + // type: vine.enum(Object.values(DescriptionTypes)), + depth_absolut: vine.number().negative().optional(), + depth_min: vine.number().negative().optional().requiredIfExists('depth_max'), + depth_max: vine.number().negative().optional().requiredIfExists('depth_min'), + time_abolute: vine.date({ formats: { utc: true } }).optional(), + time_min: vine + .date({ formats: { utc: true } }) + .beforeField('time_max') + .optional() + .requiredIfExists('time_max'), + time_max: vine + .date({ formats: { utc: true } }) + .afterField('time_min') + .optional() + .requiredIfExists('time_min'), + }), + references: vine + .array( + vine.object({ + value: vine.string().trim().minLength(3).maxLength(255).validateReference({ typeField: 'type' }), + type: vine.enum(Object.values(ReferenceIdentifierTypes)), + relation: vine.enum(Object.values(RelationTypes)), + label: vine.string().trim().minLength(2).maxLength(255), + }), + ) + .optional(), + subjects: vine + .array( + vine.object({ + value: vine.string().trim().minLength(3).maxLength(255), + // pivot_contributor_type: vine.enum(Object.keys(ContributorTypes)), + language: vine.string().trim().minLength(2).maxLength(255), + }), + ) + .minLength(3) + .distinct('value'), + // last step + files: vine + .array( + vine + .myfile({ + size: '512mb', + //extnames: extensions, + }) + .allowedMimetypeExtensions() + .filenameLength({ clientNameSizeLimit: 100 }) + .fileScan({ removeInfected: true }), + ) + .dependentArrayMinLength({ dependentArray: 'fileInputs', min: 1 }), + fileInputs: vine.array( + vine.object({ + label: vine.string().trim().maxLength(100), + //extnames: extensions, + }), + ), + }), +); + +export const updateEditorDatasetValidator = vine.compile( + vine.object({ + // first step + language: vine + .string() + .trim() + .regex(/^[a-zA-Z0-9]+$/), + licenses: vine.array(vine.number()).minLength(1), // define at least one license for the new dataset + rights: vine.string().in(['true']), + // second step + type: vine.string().trim().minLength(3).maxLength(255), + creating_corporation: vine.string().trim().minLength(3).maxLength(255), + titles: vine + .array( + vine.object({ + value: vine.string().trim().minLength(3).maxLength(255), + type: vine.enum(Object.values(TitleTypes)), + language: vine + .string() + .trim() + .minLength(2) + .maxLength(255) + .translatedLanguage({ mainLanguageField: 'language', typeField: 'type' }), + }), + ) + // .minLength(2) + .arrayContainsTypes({ typeA: 'main', typeB: 'translated' }), + descriptions: vine + .array( + vine.object({ + value: vine.string().trim().minLength(3).maxLength(2500), + type: vine.enum(Object.values(DescriptionTypes)), + language: vine + .string() + .trim() + .minLength(2) + .maxLength(255) + .translatedLanguage({ mainLanguageField: 'language', typeField: 'type' }), + }), + ) + .arrayContainsTypes({ typeA: 'abstract', typeB: 'translated' }), + authors: vine + .array( + vine.object({ + email: vine + .string() + .trim() + .maxLength(255) + .email() + .normalizeEmail() + .isUniquePerson({ table: 'persons', column: 'email', idField: 'id' }), + first_name: vine.string().trim().minLength(3).maxLength(255), + last_name: vine.string().trim().minLength(3).maxLength(255), + }), + ) + .minLength(1) + .distinct('email'), + contributors: vine + .array( + vine.object({ + email: vine + .string() + .trim() + .maxLength(255) + .email() + .normalizeEmail() + .isUniquePerson({ table: 'persons', column: 'email', idField: 'id' }), + first_name: vine.string().trim().minLength(3).maxLength(255), + last_name: vine.string().trim().minLength(3).maxLength(255), + pivot_contributor_type: vine.enum(Object.keys(ContributorTypes)), + }), + ) + .distinct('email') + .optional(), + // third step + project_id: vine.number().optional(), + // embargo_date: schema.date.optional({ format: 'yyyy-MM-dd' }, [rules.after(10, 'days')]), + embargo_date: vine + .date({ + formats: ['YYYY-MM-DD'], + }) + .afterOrEqual((_field) => { + return dayjs().add(10, 'day').format('YYYY-MM-DD'); + }) + .optional(), + coverage: vine.object({ + x_min: vine.number(), + x_max: vine.number(), + y_min: vine.number(), + y_max: vine.number(), + elevation_absolut: vine.number().positive().optional(), + elevation_min: vine.number().positive().optional().requiredIfExists('elevation_max'), + elevation_max: vine.number().positive().optional().requiredIfExists('elevation_min'), + // type: vine.enum(Object.values(DescriptionTypes)), + depth_absolut: vine.number().negative().optional(), + depth_min: vine.number().negative().optional().requiredIfExists('depth_max'), + depth_max: vine.number().negative().optional().requiredIfExists('depth_min'), + time_abolute: vine.date({ formats: { utc: true } }).optional(), + time_min: vine + .date({ formats: { utc: true } }) + .beforeField('time_max') + .optional() + .requiredIfExists('time_max'), + time_max: vine + .date({ formats: { utc: true } }) + .afterField('time_min') + .optional() + .requiredIfExists('time_min'), + }), + references: vine + .array( + vine.object({ + value: vine.string().trim().minLength(3).maxLength(255).validateReference({ typeField: 'type' }), + type: vine.enum(Object.values(ReferenceIdentifierTypes)), + relation: vine.enum(Object.values(RelationTypes)), + label: vine.string().trim().minLength(2).maxLength(255), + }), + ) + .optional(), + subjects: vine + .array( + vine.object({ + value: vine.string().trim().minLength(3).maxLength(255), + // pivot_contributor_type: vine.enum(Object.keys(ContributorTypes)), + language: vine.string().trim().minLength(2).maxLength(255), + }), + ) + .minLength(3) + .distinct('value'), + }), +); + +let messagesProvider = new SimpleMessagesProvider({ + 'minLength': '{{ field }} must be at least {{ min }} characters long', + 'maxLength': '{{ field }} must be less then {{ max }} characters long', + 'required': '{{ field }} is required', + 'unique': '{{ field }} must be unique, and this value is already taken', + // 'confirmed': '{{ field }} is not correct', + 'licenses.minLength': 'at least {{ min }} permission must be defined', + 'licenses.*.number': 'Define roles as valid numbers', + 'rights.in': 'you must agree to continue', + + 'titles.0.value.minLength': 'Main Title must be at least {{ min }} characters long', + 'titles.0.value.maxLength': 'Main Title must be less than {{ max }} characters long', + 'titles.0.value.required': 'Main Title is required', + 'titles.*.value.required': 'Additional title is required, if defined', + 'titles.*.type.required': 'Additional title type is required', + 'titles.*.language.required': 'Additional title language is required', + 'titles.*.language.translatedLanguage': 'The language of the translated title must be different from the language of the dataset', + + 'descriptions.0.value.minLength': 'Main Abstract must be at least {{ min }} characters long', + 'descriptions.0.value.maxLength': 'Main Abstract must be less than {{ max }} characters long', + 'descriptions.0.value.required': 'Main Abstract is required', + 'descriptions.*.value.required': 'Additional description is required, if defined', + 'descriptions.*.type.required': 'Additional description type is required', + 'descriptions.*.language.required': 'Additional description language is required', + 'descriptions.*.language.translatedLanguage': + 'The language of the translated description must be different from the language of the dataset', + + 'authors.array.minLength': 'at least {{ min }} author must be defined', + 'authors.distinct': 'The {{ field }} array must have unique values based on the {{ fields }} attribute.', + 'authors.*.email.isUnique': 'the email of the new creator already exists in the database', + 'contributors.*.pivot_contributor_type.required': 'contributor type is required, if defined', + 'contributors.distinct': 'The {{ field }} array must have unique values based on the {{ fields }} attribute.', + + 'after': `{{ field }} must be older than ${dayjs().add(10, 'day')}`, + + 'subjects.array.minLength': 'at least {{ min }} keywords must be defined', + 'subjects.*.value.required': 'keyword value is required', + 'subjects.*.value.minLength': 'keyword value must be at least {{ min }} characters long', + 'subjects.*.type.required': 'keyword type is required', + 'subjects.*.language.required': 'language of keyword is required', + 'subjects.distinct': 'The {{ field }} array must have unique values based on the {{ fields }} attribute.', + + 'references.*.value.required': 'Additional reference value is required, if defined', + 'references.*.type.required': 'Additional reference identifier type is required', + 'references.*.relation.required': 'Additional reference relation type is required', + 'references.*.label.required': 'Additional reference label is required', + + 'files.array.minLength': 'At least {{ min }} file upload is required.', + 'files.*.size': 'file size is to big', + 'files.*.extnames': 'file extension is not supported', + 'embargo_date.date.afterOrEqual': `Embargo date must be on or after ${dayjs().add(10, 'day').format('DD.MM.YYYY')}`, +}); + +createDatasetValidator.messagesProvider = messagesProvider; +updateDatasetValidator.messagesProvider = messagesProvider; +updateEditorDatasetValidator.messagesProvider = messagesProvider; +// export default createDatasetValidator; diff --git a/app/validators/role.ts b/app/validators/role.ts new file mode 100644 index 0000000..61e8ecd --- /dev/null +++ b/app/validators/role.ts @@ -0,0 +1,64 @@ +import vine, { SimpleMessagesProvider } from '@vinejs/vine'; + +/** + * Validates the role's creation action + * node ace make:validator role + */ +export const createRoleValidator = vine.compile( + vine.object({ + name: vine + .string() + .isUnique({ table: 'roles', column: 'name' }) + .trim() + .minLength(3) + .maxLength(255) + .regex(/^[a-zA-Z0-9]+$/), //Must be alphanumeric with hyphens or underscores + display_name: vine + .string() + .isUnique({ table: 'roles', column: 'display_name' }) + .trim() + .minLength(3) + .maxLength(255) + .regex(/^[a-zA-Z0-9]+$/), + description: vine.string().trim().escape().minLength(3).maxLength(255).optional(), + permissions: vine.array(vine.number()).minLength(1), // define at least one permission for the new role + }), +); + +export const updateRoleValidator = vine.withMetaData<{ roleId: number }>().compile( + vine.object({ + name: vine + .string() + // .unique(async (db, value, field) => { + // const result = await db.from('roles').select('id').whereNot('id', field.meta.roleId).where('name', value).first(); + // return result.length ? false : true; + // }) + .isUnique({ + table: 'roles', + column: 'name', + whereNot: (field) => field.meta.roleId, + }) + .trim() + .minLength(3) + .maxLength(255), + + description: vine.string().trim().escape().minLength(3).maxLength(255).optional(), + permissions: vine.array(vine.number()).minLength(1), // define at least one permission for the new role + }), +); + +let messagesProvider = new SimpleMessagesProvider({ + // Applicable for all fields + 'required': 'The {{ field }} field is required', + 'unique': '{{ field }} must be unique, and this value is already taken', + 'string': 'The value of {{ field }} field must be a string', + 'email': 'The value is not a valid email address', + + // 'contacts.0.email.required': 'The primary email of the contact is required', + // 'contacts.*.email.required': 'Contact email is required', + 'permissions.minLength': 'at least {{min }} permission must be defined', + 'permissions.*.number': 'Define permissions as valid numbers', +}); + +createRoleValidator.messagesProvider = messagesProvider; +updateRoleValidator.messagesProvider = messagesProvider; diff --git a/app/validators/user.ts b/app/validators/user.ts new file mode 100644 index 0000000..b7bbd70 --- /dev/null +++ b/app/validators/user.ts @@ -0,0 +1,64 @@ +import vine, { SimpleMessagesProvider } from '@vinejs/vine'; + +/** + * Validates the role's creation action + * node ace make:validator user + */ +export const createUserValidator = vine.compile( + vine.object({ + login: vine + .string() + .trim() + .minLength(3) + .maxLength(20) + .isUnique({ table: 'accounts', column: 'login' }) + .regex(/^[a-zA-Z0-9]+$/), //Must be alphanumeric with hyphens or underscores + first_name: vine.string().trim().minLength(3).maxLength(255), + last_name: vine.string().trim().minLength(3).maxLength(255), + email: vine.string().maxLength(255).email().normalizeEmail().isUnique({ table: 'accounts', column: 'email' }), + new_password: vine.string().confirmed({ confirmationField: 'password_confirmation' }).trim().minLength(3).maxLength(60), + roles: vine.array(vine.number()).minLength(1), // define at least one role for the new user + }), +); + +/** + * Validates the role's update action + * node ace make:validator user + */ +export const updateUserValidator = vine.withMetaData<{ objId: number }>().compile( + vine.object({ + login: vine + .string() + .trim() + .minLength(3) + .maxLength(20) + .isUnique({ table: 'accounts', column: 'login', whereNot: (field) => field.meta.objId }), + // .regex(/^[a-zA-Z0-9]+$/), //Must be alphanumeric with hyphens or underscores + first_name: vine.string().trim().minLength(3).maxLength(255), + last_name: vine.string().trim().minLength(3).maxLength(255), + email: vine + .string() + .maxLength(255) + .email() + .normalizeEmail() + .isUnique({ table: 'accounts', column: 'email', whereNot: (field) => field.meta.objId }), + new_password: vine.string().confirmed({ confirmationField: 'password_confirmation' }).trim().minLength(3).maxLength(60).optional(), + roles: vine.array(vine.number()).minLength(1), // define at least one role for the new user + }), +); + +let messagesProvider = new SimpleMessagesProvider({ + // Applicable for all fields + 'required': 'The {{ field }} field is required', + 'unique': '{{ field }} must be unique, and this value is already taken', + 'string': 'The value of {{ field }} field must be a string', + 'email': 'The value is not a valid email address', + 'minLength': '{{ field }} must be at least {{ min }} characters long', + 'maxLength': '{{ field }} must be less then {{ max }} characters long', + 'confirmed': 'Oops! The confirmation of {{ field }} is not correct. Please double-check and ensure they match.', + 'roles.minLength': 'at least {{ min }} role must be defined', + 'roles.*.number': 'Define roles as valid numbers', +}); + +createUserValidator.messagesProvider = messagesProvider; +updateUserValidator.messagesProvider = messagesProvider; diff --git a/app/validators/vanilla_error_reporter.ts b/app/validators/vanilla_error_reporter.ts new file mode 100644 index 0000000..75bd4ff --- /dev/null +++ b/app/validators/vanilla_error_reporter.ts @@ -0,0 +1,203 @@ +// import { ValidationError } from '../errors/validation_error.js'; +import { errors } from '@vinejs/vine'; +import type { ErrorReporterContract, FieldContext } from '@vinejs/vine/types'; +import string from '@poppinss/utils/string'; + +/** + * Shape of the Vanilla error node + */ +export type VanillaErrorNode = { + [field: string]: string[]; +}; +export interface MessagesBagContract { + get(pointer: string, rule: string, message: string, arrayExpressionPointer?: string, args?: any): string; +} +/** + * Message bag exposes the API to pull the most appropriate message for a + * given validation failure. + */ +export class MessagesBag implements MessagesBagContract { + messages: Message; + wildCardCallback; + constructor(messages: string[]) { + this.messages = messages; + this.wildCardCallback = typeof this.messages['*'] === 'function' ? this.messages['*'] : undefined; + } + /** + * Transform message by replace placeholders with runtime values + */ + transform(message: any, rule: string, pointer: string, args: any) { + /** + * No interpolation required + */ + if (!message.includes('{{')) { + return message; + } + return string.interpolate(message, { rule, field: pointer, options: args || {} }); + } + /** + * Returns the most appropriate message for the validation failure. + */ + get(pointer: string, rule: string, message: string, arrayExpressionPointer: string, args: any) { + let validationMessage = this.messages[`${pointer}.${rule}`]; + /** + * Fetch message for the array expression pointer if it exists + */ + if (!validationMessage && arrayExpressionPointer) { + validationMessage = this.messages[`${arrayExpressionPointer}.${rule}`]; + } + /** + * Fallback to the message for the rule + */ + if (!validationMessage) { + validationMessage = this.messages[rule]; + } + /** + * Transform and return message. The wildcard callback is invoked when custom message + * is not defined + */ + return validationMessage + ? this.transform(validationMessage, rule, pointer, args) + : this.wildCardCallback + ? this.wildCardCallback(pointer, rule, arrayExpressionPointer, args) + : message; + } +} +/** + * Shape of the error message collected by the SimpleErrorReporter + */ +type SimpleError = { + message: string; + field: string; + rule: string; + index?: number; + meta?: Record<string, any>; +}; +export interface Message { + [key: string]: any; +} +/** + * Simple error reporter collects error messages as an array of object. + * Each object has following properties. + * + * - message: string + * - field: string + * - rule: string + * - index?: number (in case of an array member) + * - args?: Record<string, any> + */ +export class VanillaErrorReporter implements ErrorReporterContract { + // private messages; + // private bail; + /** + * Boolean to know one or more errors have been reported + */ + hasErrors: boolean = false; + /** + * Collection of errors + */ + // errors: SimpleError[] = []; + errors: Message = {}; + /** + * Report an error. + */ + + // constructor(messages: MessagesBagContract) { + // this.messages = messages; + // } + + report(message: string, rule: string, field: FieldContext, meta?: Record<string, any> | undefined): void { + // const error: SimpleError = { + // message, + // rule, + // field: field.getFieldPath() + // }; + // if (meta) { + // error.meta = meta; + // } + // if (field.isArrayMember) { + // error.index = field.name as number; + // } + // this.errors.push(error); + this.hasErrors = true; + // if (this.errors[field.getFieldPath()]) { + // this.errors[field.getFieldPath()]?.push(message); + // } else { + // this.errors[field.getFieldPath()] = [message]; + // } + const error: SimpleError = { + message, + rule, + field: field.getFieldPath(), // ?field.wildCardPath.split('.')[0] : field.getFieldPath(), + }; + // field: 'titles.0.value' + // message: 'Main Title is required' + // rule: 'required' "required" + + if (meta) { + error.meta = meta; + } + // if (field.isArrayMember) { + // error.index = field.name; + // } + this.hasErrors = true; + + // var test = field.getFieldPath(); + + // this.errors.push(error); + // if (this.errors[error.field]) { + // this.errors[error.field]?.push(message); + // } + if (field.isArrayMember) { + // Check if the field has wildCardPath and if the error field already exists + if (this.errors[error.field]) { + // Do nothing, as we don't want to push further messages + } else { + // If the error field already exists, push the message + if (this.errors[error.field]) { + this.errors[error.field].push(message); + } else { + this.errors[error.field] = [message]; + } + } + } else { + if (this.errors[error.field]) { + this.errors[error.field]?.push(message); + } else { + this.errors[error.field] = [message]; + } + } + + // } else { + // // normal field + // this.errors[field.field] = [message]; + // } + + /** + * Collecting errors as per the JSONAPI spec + */ + // this.errors.push({ + // code: rule, + // detail: message, + // source: { + // pointer: field.wildCardPath, + // }, + // ...(meta ? { meta } : {}), + // }); + + // let pointer: string = field.wildCardPath as string; //'display_name' + // // if (field.isArrayMember) { + // // this.errors[pointer] = field.name; + // // } + // this.errors[pointer] = this.errors[pointer] || []; + // // this.errors[pointer].push(message); + // this.errors[pointer].push(this.messages.get(pointer, rule, message, arrayExpressionPointer, args)); + } + /** + * Returns an instance of the validation error + */ + createError() { + return new errors.E_VALIDATION_ERROR(this.errors); + } +} +export {}; diff --git a/bin/console.ts b/bin/console.ts new file mode 100644 index 0000000..a2c411d --- /dev/null +++ b/bin/console.ts @@ -0,0 +1,47 @@ +/* +|-------------------------------------------------------------------------- +| Ace entry point +|-------------------------------------------------------------------------- +| +| The "console.ts" file is the entrypoint for booting the AdonisJS +| command-line framework and executing commands. +| +| Commands do not boot the application, unless the currently running command +| has "options.startApp" flag set to true. +| +*/ + +import 'reflect-metadata'; +import { Ignitor, prettyPrintError } from '@adonisjs/core'; + +/** + * URL to the application root. AdonisJS need it to resolve + * paths to file and directories for scaffolding commands + */ +const APP_ROOT = new URL('../', import.meta.url); + +/** + * The importer is used to import files in context of the + * application. + */ +const IMPORTER = (filePath: string) => { + if (filePath.startsWith('./') || filePath.startsWith('../')) { + return import(new URL(filePath, APP_ROOT).href); + } + return import(filePath); +}; + +new Ignitor(APP_ROOT, { importer: IMPORTER }) + .tap((app) => { + app.booting(async () => { + await import('#start/env'); + }); + app.listen('SIGTERM', () => app.terminate()); + app.listenIf(app.managedByPm2, 'SIGINT', () => app.terminate()); + }) + .ace() + .handle(process.argv.splice(2)) + .catch((error) => { + process.exitCode = 1; + prettyPrintError(error); + }); diff --git a/bin/server.ts b/bin/server.ts new file mode 100644 index 0000000..75788cd --- /dev/null +++ b/bin/server.ts @@ -0,0 +1,45 @@ +/* +|-------------------------------------------------------------------------- +| HTTP server entrypoint +|-------------------------------------------------------------------------- +| +| The "server.ts" file is the entrypoint for starting the AdonisJS HTTP +| server. Either you can run this file directly or use the "serve" +| command to run this file and monitor file changes +| +*/ + +import 'reflect-metadata'; +import { Ignitor, prettyPrintError } from '@adonisjs/core'; + +/** + * URL to the application root. AdonisJS need it to resolve + * paths to file and directories for scaffolding commands + */ +const APP_ROOT = new URL('../', import.meta.url); + +/** + * The importer is used to import files in context of the + * application. + */ +const IMPORTER = (filePath: string) => { + if (filePath.startsWith('./') || filePath.startsWith('../')) { + return import(new URL(filePath, APP_ROOT).href); + } + return import(filePath); +}; + +new Ignitor(APP_ROOT, { importer: IMPORTER }) + .tap((app) => { + app.booting(async () => { + await import('#start/env'); + }); + app.listen('SIGTERM', () => app.terminate()); + app.listenIf(app.managedByPm2, 'SIGINT', () => app.terminate()); + }) + .httpServer() + .start() + .catch((error) => { + process.exitCode = 1; + prettyPrintError(error); + }); diff --git a/bin/test.ts b/bin/test.ts new file mode 100644 index 0000000..f4047a2 --- /dev/null +++ b/bin/test.ts @@ -0,0 +1,62 @@ +/* +|-------------------------------------------------------------------------- +| Test runner entrypoint +|-------------------------------------------------------------------------- +| +| The "test.ts" file is the entrypoint for running tests using Japa. +| +| Either you can run this file directly or use the "test" +| command to run this file and monitor file changes. +| +*/ + +process.env.NODE_ENV = 'test'; + +import 'reflect-metadata'; +import { Ignitor, prettyPrintError } from '@adonisjs/core'; +import { configure, processCLIArgs, run } from '@japa/runner'; + +/** + * URL to the application root. AdonisJS need it to resolve + * paths to file and directories for scaffolding commands + */ +const APP_ROOT = new URL('../', import.meta.url); + +/** + * The importer is used to import files in context of the + * application. + */ +const IMPORTER = (filePath: string) => { + if (filePath.startsWith('./') || filePath.startsWith('../')) { + return import(new URL(filePath, APP_ROOT).href); + } + return import(filePath); +}; + +new Ignitor(APP_ROOT, { importer: IMPORTER }) + .tap((app) => { + app.booting(async () => { + await import('#start/env'); + }); + app.listen('SIGTERM', () => app.terminate()); + app.listenIf(app.managedByPm2, 'SIGINT', () => app.terminate()); + }) + .testRunner() + .configure(async (app) => { + const { runnerHooks, ...config } = await import('../tests/bootstrap.js'); + + processCLIArgs(process.argv.splice(2)); + configure({ + ...app.rcFile.tests, + ...config, + ...{ + setup: runnerHooks.setup, + teardown: runnerHooks.teardown.concat([() => app.terminate()]), + }, + }); + }) + .run(() => run()) + .catch((error) => { + process.exitCode = 1; + prettyPrintError(error); + }); diff --git a/commands/ValidateChecksum.ts b/commands/ValidateChecksum.ts deleted file mode 100644 index ce25b83..0000000 --- a/commands/ValidateChecksum.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { BaseCommand } from '@adonisjs/core/build/standalone'; -import crypto from 'crypto'; -import fs from 'fs'; -// import Config from '@ioc:Adonis/Core/Config'; -import Logger from '@ioc:Adonis/Core/Logger'; - -export default class ValidateChecksum extends BaseCommand { - /** - * Command name is used to run the command - */ - public static commandName = 'validate:checksum'; - - /** - * Command description is displayed in the "help" output - */ - public static description = ''; - - public static settings = { - /** - * Set the following value to true, if you want to load the application - * before running the command. Don't forget to call `node ace generate:manifest` - * afterwards. - */ - loadApp: true, - - /** - * Set the following value to true, if you want this command to keep running until - * you manually decide to exit the process. Don't forget to call - * `node ace generate:manifest` afterwards. - */ - stayAlive: false, - }; - - public async run() { - // this.logger.info('Hello world!') - const { default: File } = await import('App/Models/File'); - // const { default: HashValue } = await (await (import ('App/Models/HashValue'))); - - // query all files from database: - const files = await File.query().preload('hashvalues'); - - // const logLevel = Config.get('app.logger.level', 'info'); - // console.log(this.logger.) - - for (var file of files) { - let hashValue = await file.related('hashvalues').query().pluck('value', 'type'); - - const filePath = '/storage/app/public/' + file.pathName; - let calculatedMd5FileHash; - try { - calculatedMd5FileHash = await this.checksumFile(filePath, 'md5'); - } catch (exception) { - // this.logger.error(exception.message); - Logger.error(exception.message); - continue; - } - - if (hashValue['md5'] === calculatedMd5FileHash) { - Logger.info(`File id ${file.id}: stored md5 checksum: ${calculatedMd5FileHash}, control md5 checksum: ${hashValue['md5']}`); - } else { - Logger.error( - `File id ${file.id}: stored md5 checksum: ${calculatedMd5FileHash}, control md5 checksum: ${hashValue['md5']}`, - ); - } - } - } - - private async checksumFile(path, hashName = 'md5'): Promise<string> { - return new Promise((resolve, reject) => { - const hash = crypto.createHash(hashName); - const stream = fs.createReadStream(path); - stream.on('error', (err) => reject(err)); - stream.on('data', (chunk) => hash.update(chunk)); - stream.on('end', () => resolve(hash.digest('hex'))); - }); - } -} diff --git a/commands/index.ts b/commands/index.ts deleted file mode 100644 index 5d84628..0000000 --- a/commands/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { listDirectoryFiles } from '@adonisjs/core/build/standalone'; -import Application from '@ioc:Adonis/Core/Application'; - -/* -|-------------------------------------------------------------------------- -| Exporting an array of commands -|-------------------------------------------------------------------------- -| -| Instead of manually exporting each file from this directory, we use the -| helper `listDirectoryFiles` to recursively collect and export an array -| of filenames. -| -| Couple of things to note: -| -| 1. The file path must be relative from the project root and not this directory. -| 2. We must ignore this file to avoid getting into an infinite loop -| -*/ -export default listDirectoryFiles(__dirname, Application.appRoot, ['./commands/index']); diff --git a/commands/index_datasets.ts b/commands/index_datasets.ts new file mode 100644 index 0000000..ee76268 --- /dev/null +++ b/commands/index_datasets.ts @@ -0,0 +1,139 @@ +// podman exec -it tethys_backend_1 node ace validate:checksum +// sudo crontab -u www-data -e +// */5 * * * * podman exec -u www-data tethys_backend_1 node ace validate:checksum +import { XMLBuilder } from 'xmlbuilder2/lib/interfaces.js'; +import { create } from 'xmlbuilder2'; +import Dataset from '#models/dataset'; +import XmlModel from '#app/Library/XmlModel'; +import { readFileSync } from 'fs'; +import SaxonJS from 'saxon-js'; +import { Client } from '@opensearch-project/opensearch'; +import { getDomain } from '#app/utils/utility-functions'; +import { BaseCommand, flags } from '@adonisjs/core/ace'; +import { CommandOptions } from '@adonisjs/core/types/ace'; +import env from '#start/env'; +// import db from '@adonisjs/lucid/services/db'; +// import { default as Dataset } from '#models/dataset'; +import logger from '@adonisjs/core/services/logger'; + + +const opensearchNode = env.get('OPENSEARCH_HOST', 'localhost'); +const client = new Client({ node: `${opensearchNode}` }); // replace with your OpenSearch endpoint + +export default class IndexDatasets extends BaseCommand { + static commandName = 'index:datasets'; + static description = 'Index datasets based on publish_id'; + + public static needsApplication = true; + + @flags.number({ alias: 'p' }) + public publish_id: number; + + public static options: CommandOptions = { + startApp: true, + staysAlive: false, + }; + + + async run() { + logger.debug('Hello world!'); + // const { default: Dataset } = await import('#models/dataset'); + // const datasets = await Dataset.query().where('server_state', 'published').exec(); //this.getDatasets(); + const datasets = await this.getDatasets(); + const proc = readFileSync('public/assets2/solr.sef.json'); + const index_name = 'tethys-records'; + + for (var dataset of datasets) { + // Logger.info(`File publish_id ${dataset.publish_id}`); + // const jsonString = await this.getJsonString(dataset, proc); + // console.log(jsonString); + await this.indexDocument(dataset, index_name, proc); + } + } + + private async getDatasets(): Promise<any[]> { + // const { default: Dataset } = await import('#models/dataset'); + // const Dataset = (await import('#models/dataset')).default + // const Dataset = ( + // await this.app.container.make('#models/dataset') + // ).default; + // const query: ModelQueryBuilder<Dataset, any> = db.from(Dataset); + const query = Dataset.query().preload('xmlCache').where('server_state', 'published'); + if (this.publish_id) { + query.where('publish_id', this.publish_id); + } + return await query.exec(); + } + + private async indexDocument(dataset: Dataset, index_name: string, proc: Buffer): Promise<void> { + try { + const doc = await this.getJsonString(dataset, proc); + + let document = JSON.parse(doc); + await client.index({ + id: dataset.publish_id?.toString(), + index: index_name, + body: document, + refresh: true, + }); + logger.info(`dataset with publish_id ${dataset.publish_id} successfully indexed`); + } catch (error) { + logger.error(`An error occurred while indexing dataset with publish_id ${dataset.publish_id}.`); + } + } + + private async getJsonString(dataset: Dataset, proc: Buffer) { + let xml = create({ version: '1.0', encoding: 'UTF-8', standalone: true }, '<root></root>'); + const datasetNode = xml.root().ele('Dataset'); + await this.createXmlRecord(dataset, datasetNode); + const xmlString = xml.end({ prettyPrint: false }); + + try { + const result = await SaxonJS.transform({ + stylesheetText: proc, + destination: 'serialized', + sourceText: xmlString, + }); + return result.principalResult; + } catch (error) { + logger.error(`An error occurred while creating the user, error: ${error.message},`); + return ''; + } + } + + private async createXmlRecord(dataset: Dataset, datasetNode: XMLBuilder): Promise<void> { + const domNode = await this.getDatasetXmlDomNode(dataset); + if (domNode) { + dataset.publish_id && this.addLandingPageAttribute(domNode, dataset.publish_id.toString()); + this.addSpecInformation(domNode, 'data-type:' + dataset.type); + datasetNode.import(domNode); + } + } + + private async getDatasetXmlDomNode(dataset: Dataset): Promise<XMLBuilder | null> { + const xmlModel = new XmlModel(dataset); + // xmlModel.setModel(dataset); + xmlModel.excludeEmptyFields(); + xmlModel.caching = true; + // const cache = dataset.xmlCache ? dataset.xmlCache : null; + // dataset.load('xmlCache'); + if (dataset.xmlCache) { + xmlModel.xmlCache = dataset.xmlCache; + } + + // return cache.getDomDocument(); + const domDocument: XMLBuilder | null = await xmlModel.getDomDocument(); + return domDocument; + } + + private addSpecInformation(domNode: XMLBuilder, information: string) { + domNode.ele('SetSpec').att('Value', information); + } + + private addLandingPageAttribute(domNode: XMLBuilder, dataid: string) { + const baseDomain = process.env.OAI_BASE_DOMAIN || 'localhost'; + const url = 'https://' + getDomain(baseDomain) + '/dataset/' + dataid; + // add attribute du dataset xml element + domNode.att('landingpage', url); + } +} diff --git a/commands/index_test.ts b/commands/index_test.ts new file mode 100644 index 0000000..2c84d9d --- /dev/null +++ b/commands/index_test.ts @@ -0,0 +1,13 @@ +import { BaseCommand } from '@adonisjs/core/ace'; +import type { CommandOptions } from '@adonisjs/core/types/ace'; + +export default class IndexTest extends BaseCommand { + static commandName = 'index:test'; + static description = ''; + + static options: CommandOptions = {}; + + async run() { + this.logger.info('Hello world from "IndexTest"'); + } +} diff --git a/commands/validate_checksum.ts b/commands/validate_checksum.ts new file mode 100644 index 0000000..a11b38b --- /dev/null +++ b/commands/validate_checksum.ts @@ -0,0 +1,120 @@ +import crypto from 'crypto'; +import fs from 'fs/promises'; // Use fs/promises for async file operations +import logger from '@adonisjs/core/services/logger'; +import { BaseCommand } from '@adonisjs/core/ace'; +import { CommandOptions } from '@adonisjs/core/types/ace'; +import dayjs from 'dayjs'; +import TethysFile from '#models/file'; +import AppConfig from '#models/appconfig'; +// import db from '@adonisjs/lucid/services/db'; // Import the DB service + +export default class ValidateChecksum extends BaseCommand { + /** + * Command name used to run the command + */ + public static commandName = 'validate:checksum'; + + /** + * Command description displayed in the "help" output + */ + public static description = ''; + + public static options: CommandOptions = { + startApp: true, + staysAlive: false, + }; + + private chunkSize = 100; // Set chunk size for pagination + + public async run() { + let page = 1; // Start with the first page + let hasMoreFiles = true; // Flag to check if there are more files to process + + // Loop to process files in chunks + while (hasMoreFiles) { + // Query a chunk of published files from the database with pagination + const files = await TethysFile.query() + .whereHas('dataset', (dQuery) => { + dQuery.where('server_state', 'published'); // Only get published datasets + }) + .orderBy('document_id', 'asc') // Order by document ID + .preload('hashvalues') // Preload hash values + .forPage(page, this.chunkSize); // Get files for the current page + + // Check if there are no more files to process + if (files.length === 0) { + hasMoreFiles = false; // No more files, exit the loop + break; + } + + // Process the current chunk of files + await this.processChunk(files); + + // Move to the next page + page += 1; // Increment page number + } + + // Write the current timestamp into the database + const timestamp = dayjs().unix(); // Get Unix timestamp + + // Update the timestamp in the appconfigs table + // await db.from('appconfigs') + // .where('appid', 'backgroundjob') + // .where('configkey', 'lastjob') + // .update({ configvalue: timestamp }); + + await AppConfig.updateOrCreate({ appid: 'backgroundjob', configkey: 'lastjob' }, { configvalue: timestamp }); + + // Log the updated timestamp + logger.info(`Updated last job timestamp to: ${timestamp}`); + logger.info(`Cron job executed at: ${dayjs.unix(timestamp).format('YYYY-MM-DD HH:mm:ss')}`); + } + + private async processChunk(filesArray: TethysFile[]) { + // Process all files in parallel using Promise.all + await Promise.all( + filesArray.map((file) => this.fetchData(file)), // Fetch data for each file + ); + } + + private async fetchData(file: TethysFile): Promise<void> { + // Create a hashValues object to store hash values + const hashValues = file.hashvalues.reduce( + (acc, h) => { + acc[h.type] = h.value; // Map hash type to its value + return acc; + }, + {} as { [key: string]: string }, + ); + + // Construct the file path + const filePath = '/storage/app/data/' + file.pathName; + + try { + // Calculate the MD5 checksum of the file + const calculatedMd5FileHash = await this.checksumFile(filePath, 'md5'); + + // Compare the calculated hash with the stored hash + if (hashValues['md5'] === calculatedMd5FileHash) { + logger.info( + `File id ${file.id} OK: stored md5 checksum: ${calculatedMd5FileHash}, same control md5 checksum: ${hashValues['md5']}`, + ); + } else { + // Log an error if checksums do not match + logger.error( + `File id ${file.id}: stored md5 checksum: ${calculatedMd5FileHash}, control md5 checksum: ${hashValues['md5']}`, + ); + } + } catch (error) { + // Log any error encountered during processing + logger.error(`File id ${file.id} error: ${error.message}`); + } + } + + private async checksumFile(path: string, hashName = 'md5'): Promise<string> { + const hash = crypto.createHash(hashName); // Create a hash object + const data = await fs.readFile(path); // Read file asynchronously + hash.update(data); // Update hash with file data + return hash.digest('hex'); // Return the hash in hexadecimal format + } +} diff --git a/config/app.ts b/config/app.ts index 013b0a5..c0e7b2b 100644 --- a/config/app.ts +++ b/config/app.ts @@ -6,13 +6,14 @@ */ import proxyAddr from 'proxy-addr'; -import Env from '@ioc:Adonis/Core/Env'; -import Application from '@ioc:Adonis/Core/Application'; -import type { ServerConfig } from '@ioc:Adonis/Core/Server'; -import type { LoggerConfig } from '@ioc:Adonis/Core/Logger'; -import type { ProfilerConfig } from '@ioc:Adonis/Core/Profiler'; -import type { ValidatorConfig } from '@ioc:Adonis/Core/Validator'; -import type { AssetsManagerConfig } from '@ioc:Adonis/Core/AssetsManager'; +import env from '#start/env'; +// import app from '@adonisjs/core/services/app'; +// import type { ProfilerConfig } from '@ioc:Adonis/Core/Profiler'; +// import type { AssetsManagerConfig } from '@ioc:Adonis/Core/AssetsManager'; +// import { ServerConfig } from "@adonisjs/core/services/server"; +// import { LoggerConfig } from "@adonisjs/core/types/logger"; +// import { ValidatorConfig } from "@adonisjs/validator/types"; +import { defineConfig } from '@adonisjs/core/http'; /* |-------------------------------------------------------------------------- @@ -27,7 +28,7 @@ import type { AssetsManagerConfig } from '@ioc:Adonis/Core/AssetsManager'; | be decrypted. | */ -export const appKey: string = Env.get('APP_KEY'); +export const appKey: string = env.get('APP_KEY'); /* |-------------------------------------------------------------------------- @@ -38,71 +39,72 @@ export const appKey: string = Env.get('APP_KEY'); | the config properties to make keep server secure. | */ -export const http: ServerConfig = { +export const http = defineConfig({ /* - |-------------------------------------------------------------------------- - | Allow method spoofing - |-------------------------------------------------------------------------- - | - | Method spoofing enables defining custom HTTP methods using a query string - | `_method`. This is usually required when you are making traditional - | form requests and wants to use HTTP verbs like `PUT`, `DELETE` and - | so on. - | - */ +|-------------------------------------------------------------------------- +| Allow method spoofing +|-------------------------------------------------------------------------- +| +| Method spoofing enables defining custom HTTP methods using a query string +| `_method`. This is usually required when you are making traditional +| form requests and wants to use HTTP verbs like `PUT`, `DELETE` and +| so on. +| +*/ allowMethodSpoofing: false, /* - |-------------------------------------------------------------------------- - | Subdomain offset - |-------------------------------------------------------------------------- - */ +|-------------------------------------------------------------------------- +| Subdomain offset +|-------------------------------------------------------------------------- +*/ subdomainOffset: 2, /* - |-------------------------------------------------------------------------- - | Request Ids - |-------------------------------------------------------------------------- - | - | Setting this value to `true` will generate a unique request id for each - | HTTP request and set it as `x-request-id` header. - | - */ +|-------------------------------------------------------------------------- +| Request Ids +|-------------------------------------------------------------------------- +| +| Setting this value to `true` will generate a unique request id for each +| HTTP request and set it as `x-request-id` header. +| +*/ generateRequestId: false, /* - |-------------------------------------------------------------------------- - | Trusting proxy servers - |-------------------------------------------------------------------------- - | - | Define the proxy servers that AdonisJs must trust for reading `X-Forwarded` - | headers. - | - */ - trustProxy: proxyAddr.compile('loopback'), +|-------------------------------------------------------------------------- +| Trusting proxy servers +|-------------------------------------------------------------------------- +| +| Define the proxy servers that AdonisJs must trust for reading `X-Forwarded` +| headers. +| +*/ + // trustProxy: proxyAddr.compile('loopback'), + trustProxy: proxyAddr.compile(['127.0.0.1', '::1/128']), /* - |-------------------------------------------------------------------------- - | Generating Etag - |-------------------------------------------------------------------------- - | - | Whether or not to generate an etag for every response. - | - */ +|-------------------------------------------------------------------------- +| Generating Etag +|-------------------------------------------------------------------------- +| +| Whether or not to generate an etag for every response. +| +*/ etag: false, /* - |-------------------------------------------------------------------------- - | JSONP Callback - |-------------------------------------------------------------------------- - */ +|-------------------------------------------------------------------------- +| JSONP Callback +|-------------------------------------------------------------------------- +*/ jsonpCallbackName: 'callback', /* - |-------------------------------------------------------------------------- - | Cookie settings - |-------------------------------------------------------------------------- - */ +|-------------------------------------------------------------------------- +| Cookie settings +|-------------------------------------------------------------------------- +*/ cookie: { domain: '', path: '/', @@ -111,103 +113,46 @@ export const http: ServerConfig = { secure: false, sameSite: false, }, -}; - -/* -|-------------------------------------------------------------------------- -| Logger -|-------------------------------------------------------------------------- -*/ -export const logger: LoggerConfig = { - /* - |-------------------------------------------------------------------------- - | Application name - |-------------------------------------------------------------------------- - | - | The name of the application you want to add to the log. It is recommended - | to always have app name in every log line. - | - | The `APP_NAME` environment variable is automatically set by AdonisJS by - | reading the `name` property from the `package.json` file. - | - */ - name: Env.get('APP_NAME'), - - /* - |-------------------------------------------------------------------------- - | Toggle logger - |-------------------------------------------------------------------------- - | - | Enable or disable logger application wide - | - */ - enabled: true, - - /* - |-------------------------------------------------------------------------- - | Logging level - |-------------------------------------------------------------------------- - | - | The level from which you want the logger to flush logs. It is recommended - | to make use of the environment variable, so that you can define log levels - | at deployment level and not code level. - | - */ - level: Env.get('LOG_LEVEL', 'info'), - redact: { - paths: ['password', '*.password'], - }, - - /* - |-------------------------------------------------------------------------- - | Pretty print - |-------------------------------------------------------------------------- - | - | It is highly advised NOT to use `prettyPrint` in production, since it - | can have huge impact on performance. - | - */ - prettyPrint: Env.get('NODE_ENV') === 'development', -}; +}); /* |-------------------------------------------------------------------------- | Profiler |-------------------------------------------------------------------------- */ -export const profiler: ProfilerConfig = { - /* - |-------------------------------------------------------------------------- - | Toggle profiler - |-------------------------------------------------------------------------- - | - | Enable or disable profiler - | - */ - enabled: true, +// export const profiler: ProfilerConfig = { +// /* +// |-------------------------------------------------------------------------- +// | Toggle profiler +// |-------------------------------------------------------------------------- +// | +// | Enable or disable profiler +// | +// */ +// enabled: true, - /* - |-------------------------------------------------------------------------- - | Blacklist actions/row labels - |-------------------------------------------------------------------------- - | - | Define an array of actions or row labels that you want to disable from - | getting profiled. - | - */ - blacklist: [], +// /* +// |-------------------------------------------------------------------------- +// | Blacklist actions/row labels +// |-------------------------------------------------------------------------- +// | +// | Define an array of actions or row labels that you want to disable from +// | getting profiled. +// | +// */ +// blacklist: [], - /* - |-------------------------------------------------------------------------- - | Whitelist actions/row labels - |-------------------------------------------------------------------------- - | - | Define an array of actions or row labels that you want to whitelist for - | the profiler. When whitelist is defined, then `blacklist` is ignored. - | - */ - whitelist: [], -}; +// /* +// |-------------------------------------------------------------------------- +// | Whitelist actions/row labels +// |-------------------------------------------------------------------------- +// | +// | Define an array of actions or row labels that you want to whitelist for +// | the profiler. When whitelist is defined, then `blacklist` is ignored. +// | +// */ +// whitelist: [], +// }; /* |-------------------------------------------------------------------------- @@ -218,7 +163,7 @@ export const profiler: ProfilerConfig = { | to the default config https://git.io/JT0WE | */ -export const validator: ValidatorConfig = {}; +export const validator = {}; /* |-------------------------------------------------------------------------- @@ -228,52 +173,52 @@ export const validator: ValidatorConfig = {}; | Configure the asset manager you are using to compile the frontend assets | */ -export const assets: AssetsManagerConfig = { - /* - |-------------------------------------------------------------------------- - | Driver - |-------------------------------------------------------------------------- - | - | Currently we only support webpack encore and may introduce more drivers - | in the future - | - */ - driver: Env.get('ASSETS_DRIVER'), +// export const assets: AssetsManagerConfig = { +// /* +// |-------------------------------------------------------------------------- +// | Driver +// |-------------------------------------------------------------------------- +// | +// | Currently we only support webpack encore and may introduce more drivers +// | in the future +// | +// */ +// driver: env.get('ASSETS_DRIVER'), - /* - |-------------------------------------------------------------------------- - | Public path - |-------------------------------------------------------------------------- - | - | Directory to search for the "manifest.json" and the "entrypoints.json" - | files - | - */ - publicPath: Application.publicPath('assets'), +// /* +// |-------------------------------------------------------------------------- +// | Public path +// |-------------------------------------------------------------------------- +// | +// | Directory to search for the "manifest.json" and the "entrypoints.json" +// | files +// | +// */ +// publicPath: app.publicPath('assets'), - /* - |-------------------------------------------------------------------------- - | Script tag - |-------------------------------------------------------------------------- - | - | Define attributes for the entryPointScripts tags - | - */ - script: { - attributes: { - defer: true, - }, - }, +// /* +// |-------------------------------------------------------------------------- +// | Script tag +// |-------------------------------------------------------------------------- +// | +// | Define attributes for the entryPointScripts tags +// | +// */ +// script: { +// attributes: { +// defer: true, +// }, +// }, - /* - |-------------------------------------------------------------------------- - | Style tag - |-------------------------------------------------------------------------- - | - | Define attributes for the entryPointStyles tags - | - */ - style: { - attributes: {}, - }, -}; +// /* +// |-------------------------------------------------------------------------- +// | Style tag +// |-------------------------------------------------------------------------- +// | +// | Define attributes for the entryPointStyles tags +// | +// */ +// style: { +// attributes: {}, +// }, +// }; diff --git a/config/auth.ts b/config/auth.ts index d14400c..cf98f6e 100644 --- a/config/auth.ts +++ b/config/auth.ts @@ -1,86 +1,89 @@ -/** - * Config source: https://git.io/JY0mp - * - * Feel free to let us know via PR, if you find something broken in this config - * file. - */ +import { defineConfig } from '@adonisjs/auth'; +import { Authenticators } from '@adonisjs/auth/types'; +import { sessionGuard, sessionUserProvider } from '@adonisjs/auth/session'; +// import User from '#models/user'; +// import { SessionLucidUserProviderOptions } from '@adonisjs/auth/types/session'; +import { Authenticator } from '@adonisjs/auth'; +import { GuardFactory } from '@adonisjs/auth/types'; -import type { AuthConfig } from '@ioc:Adonis/Addons/Auth'; +// export declare function sessionUserProvider<Model extends LucidAuthenticatable>(config: SessionLucidUserProviderOptions<Model>): SessionLucidUserProvider<Model>; -/* -|-------------------------------------------------------------------------- -| Authentication Mapping -|-------------------------------------------------------------------------- -| -| List of available authentication mapping. You must first define them -| inside the `contracts/auth.ts` file before mentioning them here. -| -*/ -const authConfig: AuthConfig = { - guard: 'web', +const authConfig = defineConfig({ + default: 'web', guards: { - /* - |-------------------------------------------------------------------------- - | Web Guard - |-------------------------------------------------------------------------- - | - | Web guard uses classic old school sessions for authenticating users. - | If you are building a standard web application, it is recommended to - | use web guard with session driver - | - */ - web: { - driver: 'session', - - provider: { - /* - |-------------------------------------------------------------------------- - | Driver - |-------------------------------------------------------------------------- - | - | Name of the driver - | - */ - driver: 'lucid', - - /* - |-------------------------------------------------------------------------- - | Identifier key - |-------------------------------------------------------------------------- - | - | The identifier key is the unique key on the model. In most cases specifying - | the primary key is the right choice. - | - */ - identifierKey: 'id', - - /* - |-------------------------------------------------------------------------- - | Uids - |-------------------------------------------------------------------------- - | - | Uids are used to search a user against one of the mentioned columns. During - | login, the auth module will search the user mentioned value against one - | of the mentioned columns to find their user record. - | - */ - uids: ['email'], - - /* - |-------------------------------------------------------------------------- - | Model - |-------------------------------------------------------------------------- - | - | The model to use for fetching or finding users. The model is imported - | lazily since the config files are read way earlier in the lifecycle - | of booting the app and the models may not be in a usable state at - | that time. - | - */ - model: () => import('App/Models/User'), - }, - }, + web: sessionGuard({ + useRememberMeTokens: false, + provider: sessionUserProvider({ + model: () => import('#models/user'), + }), + }), }, -}; +}); export default authConfig; + +/** + * Inferring types from the configured auth + * guards. + */ +declare module '@adonisjs/auth/types' { + // export type InferAuthenticators< + // Config extends ConfigProvider<{ + // default: unknown; + // guards: unknown; + // }>, + // > = Awaited<ReturnType<Config['resolver']>>['guards']; + // interface ProvidersList { + // /* + // |-------------------------------------------------------------------------- + // | User Provider + // |-------------------------------------------------------------------------- + // | + // | The following provider uses Lucid models as a driver for fetching user + // | details from the database for authentication. + // | + // | You can create multiple providers using the same underlying driver with + // | different Lucid models. + // | + // */ + // // user: { + // // implementation: SessionLucidUserProvider<typeof User>; + // // config: LucidProviderConfig<typeof User>; + // // }; + // user: { + // implementation: SessionLucidUserProvider<typeof User>; + // config: SessionLucidUserProviderOptions<typeof User>; + // }; + // } + + interface Authenticators extends InferAuthenticators<typeof authConfig> {} + + // const PROVIDER_REAL_USER: unique symbol; + // export type SessionGuardUser<RealUser> = { + // getId(): string | number | BigInt; + // getOriginal(): RealUser; + // }; + + // export interface SessionUserProviderContract<User> { + // [PROVIDER_REAL_USER]: User; + // /** + // * Create a user object that acts as an adapter between + // * the guard and real user value. + // */ + // createUserForGuard(user: User): Promise<SessionGuardUser<User>>; + // /** + // * Find a user by their id. + // */ + // findById(identifier: string | number | BigInt): Promise<SessionGuardUser<User> | null>; + // } +} + +// declare module '@adonisjs/core/types' { +// interface EventsList extends InferAuthEvents<Authenticators> {} +// } + +declare module '@adonisjs/core/http' { + interface HttpContext { + auth: Authenticator<Authenticators extends Record<string, GuardFactory> ? Authenticators : never>; + } +} diff --git a/config/bodyparser.ts b/config/bodyparser.ts index ccef450..b7c7d35 100644 --- a/config/bodyparser.ts +++ b/config/bodyparser.ts @@ -5,29 +5,31 @@ * file. */ -import type { BodyParserConfig } from '@ioc:Adonis/Core/BodyParser'; +// import type { BodyParserConfig } from '@adonisjs/core/bodyparser'; +import env from '#start/env'; +import { defineConfig } from '@adonisjs/core/bodyparser'; -const bodyParserConfig: BodyParserConfig = { +const bodyParserConfig = defineConfig({ /* - |-------------------------------------------------------------------------- - | White listed methods - |-------------------------------------------------------------------------- - | - | HTTP methods for which body parsing must be performed. It is a good practice - | to avoid body parsing for `GET` requests. - | - */ - whitelistedMethods: ['POST', 'PUT', 'PATCH', 'DELETE'], +|-------------------------------------------------------------------------- +| White listed methods +|-------------------------------------------------------------------------- +| +| HTTP methods for which body parsing must be performed. It is a good practice +| to avoid body parsing for `GET` requests. +| +*/ +allowedMethods: ['POST', 'PUT', 'PATCH', 'DELETE'], /* - |-------------------------------------------------------------------------- - | JSON parser settings - |-------------------------------------------------------------------------- - | - | The settings for the JSON parser. The types defines the request content - | types which gets processed by the JSON parser. - | - */ +|-------------------------------------------------------------------------- +| JSON parser settings +|-------------------------------------------------------------------------- +| +| The settings for the JSON parser. The types defines the request content +| types which gets processed by the JSON parser. +| +*/ json: { encoding: 'utf-8', limit: '1mb', @@ -36,165 +38,166 @@ const bodyParserConfig: BodyParserConfig = { }, /* - |-------------------------------------------------------------------------- - | Form parser settings - |-------------------------------------------------------------------------- - | - | The settings for the `application/x-www-form-urlencoded` parser. The types - | defines the request content types which gets processed by the form parser. - | - */ +|-------------------------------------------------------------------------- +| Form parser settings +|-------------------------------------------------------------------------- +| +| The settings for the `application/x-www-form-urlencoded` parser. The types +| defines the request content types which gets processed by the form parser. +| +*/ form: { encoding: 'utf-8', limit: '1mb', queryString: {}, /* - |-------------------------------------------------------------------------- - | Convert empty strings to null - |-------------------------------------------------------------------------- - | - | Convert empty form fields to null. HTML forms results in field string - | value when the field is left blank. This option normalizes all the blank - | field values to "null" - | - */ +|-------------------------------------------------------------------------- +| Convert empty strings to null +|-------------------------------------------------------------------------- +| +| Convert empty form fields to null. HTML forms results in field string +| value when the field is left blank. This option normalizes all the blank +| field values to "null" +| +*/ convertEmptyStringsToNull: true, types: ['application/x-www-form-urlencoded'], }, /* - |-------------------------------------------------------------------------- - | Raw body parser settings - |-------------------------------------------------------------------------- - | - | Raw body just reads the request body stream as a plain text, which you - | can process by hand. This must be used when request body type is not - | supported by the body parser. - | - */ +|-------------------------------------------------------------------------- +| Raw body parser settings +|-------------------------------------------------------------------------- +| +| Raw body just reads the request body stream as a plain text, which you +| can process by hand. This must be used when request body type is not +| supported by the body parser. +| +*/ raw: { encoding: 'utf-8', limit: '1mb', - queryString: {}, + // queryString: {}, types: ['text/*'], }, /* - |-------------------------------------------------------------------------- - | Multipart parser settings - |-------------------------------------------------------------------------- - | - | The settings for the `multipart/form-data` parser. The types defines the - | request content types which gets processed by the form parser. - | - */ +|-------------------------------------------------------------------------- +| Multipart parser settings +|-------------------------------------------------------------------------- +| +| The settings for the `multipart/form-data` parser. The types defines the +| request content types which gets processed by the form parser. +| +*/ multipart: { /* - |-------------------------------------------------------------------------- - | Auto process - |-------------------------------------------------------------------------- - | - | The auto process option will process uploaded files and writes them to - | the `tmp` folder. You can turn it off and then manually use the stream - | to pipe stream to a different destination. - | - | It is recommended to keep `autoProcess=true`. Unless you are processing bigger - | file sizes. - | - */ +|-------------------------------------------------------------------------- +| Auto process +|-------------------------------------------------------------------------- +| +| The auto process option will process uploaded files and writes them to +| the `tmp` folder. You can turn it off and then manually use the stream +| to pipe stream to a different destination. +| +| It is recommended to keep `autoProcess=true`. Unless you are processing bigger +| file sizes. +| +*/ autoProcess: true, /* - |-------------------------------------------------------------------------- - | Files to be processed manually - |-------------------------------------------------------------------------- - | - | You can turn off `autoProcess` for certain routes by defining - | routes inside the following array. - | - | NOTE: Make sure the route pattern starts with a leading slash. - | - | Correct - | ```js - | /projects/:id/file - | ``` - | - | Incorrect - | ```js - | projects/:id/file - | ``` - */ - processManually: [], +|-------------------------------------------------------------------------- +| Files to be processed manually +|-------------------------------------------------------------------------- +| +| You can turn off `autoProcess` for certain routes by defining +| routes inside the following array. +| +| NOTE: Make sure the route pattern starts with a leading slash. +| +| Correct +| ```js +| /projects/:id/file +| ``` +| +| Incorrect +| ```js +| projects/:id/file +| ``` +*/ + processManually: ['/submitter/dataset/submit', '/submitter/dataset/:id/update'], /* - |-------------------------------------------------------------------------- - | Temporary file name - |-------------------------------------------------------------------------- - | - | When auto processing is on. We will use this method to compute the temporary - | file name. AdonisJs will compute a unique `tmpPath` for you automatically, - | However, you can also define your own custom method. - | - */ +|-------------------------------------------------------------------------- +| Temporary file name +|-------------------------------------------------------------------------- +| +| When auto processing is on. We will use this method to compute the temporary +| file name. AdonisJs will compute a unique `tmpPath` for you automatically, +| However, you can also define your own custom method. +| +*/ // tmpFileName () { // }, /* - |-------------------------------------------------------------------------- - | Encoding - |-------------------------------------------------------------------------- - | - | Request body encoding - | - */ +|-------------------------------------------------------------------------- +| Encoding +|-------------------------------------------------------------------------- +| +| Request body encoding +| +*/ encoding: 'utf-8', /* - |-------------------------------------------------------------------------- - | Convert empty strings to null - |-------------------------------------------------------------------------- - | - | Convert empty form fields to null. HTML forms results in field string - | value when the field is left blank. This option normalizes all the blank - | field values to "null" - | - */ +|-------------------------------------------------------------------------- +| Convert empty strings to null +|-------------------------------------------------------------------------- +| +| Convert empty form fields to null. HTML forms results in field string +| value when the field is left blank. This option normalizes all the blank +| field values to "null" +| +*/ convertEmptyStringsToNull: true, /* - |-------------------------------------------------------------------------- - | Max Fields - |-------------------------------------------------------------------------- - | - | The maximum number of fields allowed in the request body. The field includes - | text inputs and files both. - | - */ +|-------------------------------------------------------------------------- +| Max Fields +|-------------------------------------------------------------------------- +| +| The maximum number of fields allowed in the request body. The field includes +| text inputs and files both. +| +*/ maxFields: 1000, /* - |-------------------------------------------------------------------------- - | Request body limit - |-------------------------------------------------------------------------- - | - | The total limit to the multipart body. This includes all request files - | and fields data. - | - */ - limit: '20mb', +|-------------------------------------------------------------------------- +| Request body limit +|-------------------------------------------------------------------------- +| +| The total limit to the multipart body. This includes all request files +| and fields data. +| +*/ + limit: '513mb', + //limit: env.get('UPLOAD_LIMIT', '513mb'), /* - |-------------------------------------------------------------------------- - | Types - |-------------------------------------------------------------------------- - | - | The types that will be considered and parsed as multipart body. - | - */ +|-------------------------------------------------------------------------- +| Types +|-------------------------------------------------------------------------- +| +| The types that will be considered and parsed as multipart body. +| +*/ types: ['multipart/form-data'], }, -}; +}); export default bodyParserConfig; diff --git a/config/cors.ts b/config/cors.ts index d9b72d5..9ead2aa 100644 --- a/config/cors.ts +++ b/config/cors.ts @@ -1,127 +1,120 @@ -/** - * Config source: https://git.io/JfefC - * - * Feel free to let us know via PR, if you find something broken in this config - * file. - */ +import { defineConfig } from "@adonisjs/cors"; -import type { CorsConfig } from '@ioc:Adonis/Core/Cors'; +const corsConfig = defineConfig({ + /* +|-------------------------------------------------------------------------- +| Enabled +|-------------------------------------------------------------------------- +| +| A boolean to enable or disable CORS integration from your AdonisJs +| application. +| +| Setting the value to `true` will enable the CORS for all HTTP request. However, +| you can define a function to enable/disable it on per request basis as well. +| +*/ + enabled: false, -const corsConfig: CorsConfig = { - /* - |-------------------------------------------------------------------------- - | Enabled - |-------------------------------------------------------------------------- - | - | A boolean to enable or disable CORS integration from your AdonisJs - | application. - | - | Setting the value to `true` will enable the CORS for all HTTP request. However, - | you can define a function to enable/disable it on per request basis as well. - | - */ - enabled: false, + // You can also use a function that return true or false. + // enabled: (request) => request.url().startsWith('/api') - // You can also use a function that return true or false. - // enabled: (request) => request.url().startsWith('/api') + /* +|-------------------------------------------------------------------------- +| Origin +|-------------------------------------------------------------------------- +| +| Set a list of origins to be allowed for `Access-Control-Allow-Origin`. +| The value can be one of the following: +| +| https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin +| +| Boolean (true) - Allow current request origin. +| Boolean (false) - Disallow all. +| String - Comma separated list of allowed origins. +| Array - An array of allowed origins. +| String (*) - A wildcard (*) to allow all request origins. +| Function - Receives the current origin string and should return +| one of the above values. +| +*/ + origin: true, - /* - |-------------------------------------------------------------------------- - | Origin - |-------------------------------------------------------------------------- - | - | Set a list of origins to be allowed for `Access-Control-Allow-Origin`. - | The value can be one of the following: - | - | https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin - | - | Boolean (true) - Allow current request origin. - | Boolean (false) - Disallow all. - | String - Comma separated list of allowed origins. - | Array - An array of allowed origins. - | String (*) - A wildcard (*) to allow all request origins. - | Function - Receives the current origin string and should return - | one of the above values. - | - */ - origin: true, + /* +|-------------------------------------------------------------------------- +| Methods +|-------------------------------------------------------------------------- +| +| An array of allowed HTTP methods for CORS. The `Access-Control-Request-Method` +| is checked against the following list. +| +| Following is the list of default methods. Feel free to add more. +*/ + methods: ['GET', 'HEAD', 'POST', 'PUT', 'DELETE'], - /* - |-------------------------------------------------------------------------- - | Methods - |-------------------------------------------------------------------------- - | - | An array of allowed HTTP methods for CORS. The `Access-Control-Request-Method` - | is checked against the following list. - | - | Following is the list of default methods. Feel free to add more. - */ - methods: ['GET', 'HEAD', 'POST', 'PUT', 'DELETE'], + /* +|-------------------------------------------------------------------------- +| Headers +|-------------------------------------------------------------------------- +| +| List of headers to be allowed for `Access-Control-Allow-Headers` header. +| The value can be one of the following: +| +| https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Request-Headers +| +| Boolean(true) - Allow all headers mentioned in `Access-Control-Request-Headers`. +| Boolean(false) - Disallow all headers. +| String - Comma separated list of allowed headers. +| Array - An array of allowed headers. +| Function - Receives the current header and should return one of the above values. +| +*/ + headers: true, - /* - |-------------------------------------------------------------------------- - | Headers - |-------------------------------------------------------------------------- - | - | List of headers to be allowed for `Access-Control-Allow-Headers` header. - | The value can be one of the following: - | - | https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Request-Headers - | - | Boolean(true) - Allow all headers mentioned in `Access-Control-Request-Headers`. - | Boolean(false) - Disallow all headers. - | String - Comma separated list of allowed headers. - | Array - An array of allowed headers. - | Function - Receives the current header and should return one of the above values. - | - */ - headers: true, + /* +|-------------------------------------------------------------------------- +| Expose Headers +|-------------------------------------------------------------------------- +| +| A list of headers to be exposed by setting `Access-Control-Expose-Headers`. +| header. By default following 6 simple response headers are exposed. +| +| Cache-Control +| Content-Language +| Content-Type +| Expires +| Last-Modified +| Pragma +| +| In order to add more headers, simply define them inside the following array. +| +| https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers +| +*/ + exposeHeaders: ['cache-control', 'content-language', 'content-type', 'expires', 'last-modified', 'pragma'], - /* - |-------------------------------------------------------------------------- - | Expose Headers - |-------------------------------------------------------------------------- - | - | A list of headers to be exposed by setting `Access-Control-Expose-Headers`. - | header. By default following 6 simple response headers are exposed. - | - | Cache-Control - | Content-Language - | Content-Type - | Expires - | Last-Modified - | Pragma - | - | In order to add more headers, simply define them inside the following array. - | - | https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers - | - */ - exposeHeaders: ['cache-control', 'content-language', 'content-type', 'expires', 'last-modified', 'pragma'], + /* +|-------------------------------------------------------------------------- +| Credentials +|-------------------------------------------------------------------------- +| +| Toggle `Access-Control-Allow-Credentials` header. If value is set to `true`, +| then header will be set, otherwise not. +| +| https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials +| +*/ + credentials: true, - /* - |-------------------------------------------------------------------------- - | Credentials - |-------------------------------------------------------------------------- - | - | Toggle `Access-Control-Allow-Credentials` header. If value is set to `true`, - | then header will be set, otherwise not. - | - | https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials - | - */ - credentials: true, - - /* - |-------------------------------------------------------------------------- - | MaxAge - |-------------------------------------------------------------------------- - | - | Define `Access-Control-Max-Age` header in seconds. - | https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age - | - */ - maxAge: 90, -}; + /* +|-------------------------------------------------------------------------- +| MaxAge +|-------------------------------------------------------------------------- +| +| Define `Access-Control-Max-Age` header in seconds. +| https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age +| +*/ + maxAge: 90, +}); export default corsConfig; diff --git a/config/database.ts b/config/database.ts index 0952a45..1c0fbdc 100644 --- a/config/database.ts +++ b/config/database.ts @@ -5,53 +5,53 @@ * file. */ -import Env from '@ioc:Adonis/Core/Env'; -import { DatabaseConfig } from '@ioc:Adonis/Lucid/Database'; +import env from '#start/env'; +// import { DatabaseConfig } from "@adonisjs/lucid/database"; +import { defineConfig } from "@adonisjs/lucid"; -const databaseConfig: DatabaseConfig = { +const databaseConfig = defineConfig({ + /* +|-------------------------------------------------------------------------- +| Connection +|-------------------------------------------------------------------------- +| +| The primary connection for making database queries across the application +| You can use any key from the `connections` object defined in this same +| file. +| +*/ + connection: env.get('DB_CONNECTION'), + + connections: { /* - |-------------------------------------------------------------------------- - | Connection - |-------------------------------------------------------------------------- - | - | The primary connection for making database queries across the application - | You can use any key from the `connections` object defined in this same - | file. - | - */ - connection: Env.get('DB_CONNECTION'), - - connections: { - /* - |-------------------------------------------------------------------------- - | PostgreSQL config - |-------------------------------------------------------------------------- - | - | Configuration for PostgreSQL database. Make sure to install the driver - | from npm when using this connection - | - | npm i pg - | - */ - pg: { - client: 'pg', - connection: { - host: Env.get('PG_HOST'), - port: Env.get('PG_PORT'), - user: Env.get('PG_USER'), - password: Env.get('PG_PASSWORD', ''), - database: Env.get('PG_DB_NAME'), - }, - searchPath: ['gba', 'public'], - migrations: { - naturalSort: true, - }, - healthCheck: false, - debug: false, - pool: { min: 1, max: 100 }, - - }, +|-------------------------------------------------------------------------- +| PostgreSQL config +|-------------------------------------------------------------------------- +| +| Configuration for PostgreSQL database. Make sure to install the driver +| from npm when using this connection +| +| npm i pg +| +*/ + pg: { + client: 'pg', + connection: { + host: env.get('PG_HOST'), + port: env.get('PG_PORT'), + user: env.get('PG_USER'), + password: env.get('PG_PASSWORD', ''), + database: env.get('PG_DB_NAME'), + }, + searchPath: ['gba', 'public'], + migrations: { + naturalSort: true, + }, + // healthCheck: false, + debug: false, + pool: { min: 1, max: 100 }, }, -}; + }, +}); export default databaseConfig; diff --git a/config/drive.ts b/config/drive.ts index dab53d5..cfb91f9 100644 --- a/config/drive.ts +++ b/config/drive.ts @@ -1,150 +1,45 @@ -/** - * Config source: https://git.io/JBt3o - * - * Feel free to let us know via PR, if you find something broken in this config - * file. - */ +// import env from '#start/env' +// import app from '@adonisjs/core/services/app' +import { defineConfig, services } from '@adonisjs/drive' -import Env from '@ioc:Adonis/Core/Env'; -import { driveConfig } from '@adonisjs/core/build/config'; -// import Application from '@ioc:Adonis/Core/Application'; +const driveConfig = defineConfig({ + + default: 'public', + -/* -|-------------------------------------------------------------------------- -| Drive Config -|-------------------------------------------------------------------------- -| -| The `DriveConfig` relies on the `DisksList` interface which is -| defined inside the `contracts` directory. -| -*/ -export default driveConfig({ - /* - |-------------------------------------------------------------------------- - | Default disk - |-------------------------------------------------------------------------- - | - | The default disk to use for managing file uploads. The value is driven by - | the `DRIVE_DISK` environment variable. - | - */ - disk: Env.get('DRIVE_DISK', 'local'), - - disks: { - /* - |-------------------------------------------------------------------------- - | Local - |-------------------------------------------------------------------------- - | - | Uses the local file system to manage files. Make sure to turn off serving - | files when not using this disk. - | - */ - local: { - driver: 'local', - visibility: 'public', - - /* - |-------------------------------------------------------------------------- - | Storage root - Local driver only - |-------------------------------------------------------------------------- - | - | Define an absolute path to the storage directory from where to read the - | files. - | - */ - // root: Application.tmpPath('uploads'), - root: '/storage/app/public', - - /* - |-------------------------------------------------------------------------- - | Serve files - Local driver only - |-------------------------------------------------------------------------- - | - | When this is set to true, AdonisJS will configure a files server to serve - | files from the disk root. This is done to mimic the behavior of cloud - | storage services that has inbuilt capabilities to serve files. - | - */ - serveFiles: true, - - /* - |-------------------------------------------------------------------------- - | Base path - Local driver only - |-------------------------------------------------------------------------- - | - | Base path is always required when "serveFiles = true". Also make sure - | the `basePath` is unique across all the disks using "local" driver and - | you are not registering routes with this prefix. - | - */ - basePath: '/uploads', - }, - - /* - |-------------------------------------------------------------------------- - | S3 Driver - |-------------------------------------------------------------------------- - | - | Uses the S3 cloud storage to manage files. Make sure to install the s3 - | drive separately when using it. - | - |************************************************************************** - | npm i @adonisjs/drive-s3 - |************************************************************************** - | - */ - // s3: { - // driver: 's3', - // visibility: 'public', - // key: Env.get('S3_KEY'), - // secret: Env.get('S3_SECRET'), - // region: Env.get('S3_REGION'), - // bucket: Env.get('S3_BUCKET'), - // endpoint: Env.get('S3_ENDPOINT'), - // - // // For minio to work - // // forcePathStyle: true, - // }, - - /* - |-------------------------------------------------------------------------- - | GCS Driver - |-------------------------------------------------------------------------- - | - | Uses the Google cloud storage to manage files. Make sure to install the GCS - | drive separately when using it. - | - |************************************************************************** - | npm i @adonisjs/drive-gcs - |************************************************************************** - | - */ - // gcs: { - // driver: 'gcs', - // visibility: 'public', - // keyFilename: Env.get('GCS_KEY_FILENAME'), - // bucket: Env.get('GCS_BUCKET'), - - /* - |-------------------------------------------------------------------------- - | Uniform ACL - Google cloud storage only - |-------------------------------------------------------------------------- - | - | When using the Uniform ACL on the bucket, the "visibility" option is - | ignored. Since, the files ACL is managed by the google bucket policies - | directly. - | - |************************************************************************** - | Learn more: https://cloud.google.com/storage/docs/uniform-bucket-level-access - |************************************************************************** - | - | The following option just informs drive whether your bucket is using uniform - | ACL or not. The actual setting needs to be toggled within the Google cloud - | console. - | - */ - // usingUniformAcl: false, - // }, + services: { + + /** + * Persist files on the local filesystem + */ + public: services.fs({ + location: '/storage/app/public/', + serveFiles: true, + routeBasePath: '/public', + visibility: 'public', + }), + local: services.fs({ + location: '/storage/app/data/', + serveFiles: true, + routeBasePath: '/data', + visibility: 'public', + }), + + + /** + * Persist files on Digital Ocean spaces + */ + // spaces: services.s3({ + // credentials: { + // accessKeyId: env.get('SPACES_KEY'), + // secretAccessKey: env.get('SPACES_SECRET'), + // }, + // region: env.get('SPACES_REGION'), + // bucket: env.get('SPACES_BUCKET'), + // endpoint: env.get('SPACES_ENDPOINT'), + // visibility: 'public', + // }), }, -}); + }) + + export default driveConfig \ No newline at end of file diff --git a/config/drive_self.ts b/config/drive_self.ts new file mode 100644 index 0000000..f1c8152 --- /dev/null +++ b/config/drive_self.ts @@ -0,0 +1,233 @@ +/** + * Config source: https://git.io/JBt3o + * + * Feel free to let us know via PR, if you find something broken in this config + * file. + */ +import { defineConfig } from '#providers/drive/src/types/define_config'; +import env from '#start/env'; +// import { driveConfig } from '@adonisjs/core/build/config'; +// import { driveConfig } from "@adonisjs/drive/build/config.js"; +// import Application from '@ioc:Adonis/Core/Application'; + +/* +|-------------------------------------------------------------------------- +| Drive Config +|-------------------------------------------------------------------------- +| +| The `DriveConfig` relies on the `DisksList` interface which is +| defined inside the `contracts` directory. +| +*/ +export default defineConfig({ + /* + |-------------------------------------------------------------------------- + | Default disk + |-------------------------------------------------------------------------- + | + | The default disk to use for managing file uploads. The value is driven by + | the `DRIVE_DISK` environment variable. + | + */ + disk: env.get('DRIVE_DISK', 'local'), + + disks: { + /* + |-------------------------------------------------------------------------- + | Local + |-------------------------------------------------------------------------- + | + | Uses the local file system to manage files. Make sure to turn off serving + | files when not using this disk. + | + */ + local: { + driver: 'local', + visibility: 'public', + + /* + |-------------------------------------------------------------------------- + | Storage root - Local driver only + |-------------------------------------------------------------------------- + | + | Define an absolute path to the storage directory from where to read the + | files. + | + */ + // root: Application.tmpPath('uploads'), + root: '/storage/app/data', + + /* + |-------------------------------------------------------------------------- + | Serve files - Local driver only + |-------------------------------------------------------------------------- + | + | When this is set to true, AdonisJS will configure a files server to serve + | files from the disk root. This is done to mimic the behavior of cloud + | storage services that has inbuilt capabilities to serve files. + | + */ + serveFiles: true, + + /* + |-------------------------------------------------------------------------- + | Base path - Local driver only + |-------------------------------------------------------------------------- + | + | Base path is always required when "serveFiles = true". Also make sure + | the `basePath` is unique across all the disks using "local" driver and + | you are not registering routes with this prefix. + | + */ + basePath: '/files', + }, + + local: { + driver: 'local', + visibility: 'public', + + /* + |-------------------------------------------------------------------------- + | Storage root - Local driver only + |-------------------------------------------------------------------------- + | + | Define an absolute path to the storage directory from where to read the + | files. + | + */ + // root: Application.tmpPath('uploads'), + root: '/storage/app/data', + + /* + |-------------------------------------------------------------------------- + | Serve files - Local driver only + |-------------------------------------------------------------------------- + | + | When this is set to true, AdonisJS will configure a files server to serve + | files from the disk root. This is done to mimic the behavior of cloud + | storage services that has inbuilt capabilities to serve files. + | + */ + serveFiles: true, + + /* + |-------------------------------------------------------------------------- + | Base path - Local driver only + |-------------------------------------------------------------------------- + | + | Base path is always required when "serveFiles = true". Also make sure + | the `basePath` is unique across all the disks using "local" driver and + | you are not registering routes with this prefix. + | + */ + basePath: '/files', + }, + + fs: { + driver: 'local', + visibility: 'public', + + /* + |-------------------------------------------------------------------------- + | Storage root - Local driver only + |-------------------------------------------------------------------------- + | + | Define an absolute path to the storage directory from where to read the + | files. + | + */ + // root: Application.tmpPath('uploads'), + root: '/storage/app/public', + + /* + |-------------------------------------------------------------------------- + | Serve files - Local driver only + |-------------------------------------------------------------------------- + | + | When this is set to true, AdonisJS will configure a files server to serve + | files from the disk root. This is done to mimic the behavior of cloud + | storage services that has inbuilt capabilities to serve files. + | + */ + serveFiles: true, + + /* + |-------------------------------------------------------------------------- + | Base path - Local driver only + |-------------------------------------------------------------------------- + | + | Base path is always required when "serveFiles = true". Also make sure + | the `basePath` is unique across all the disks using "local" driver and + | you are not registering routes with this prefix. + | + */ + basePath: '/public', + }, + + /* + |-------------------------------------------------------------------------- + | S3 Driver + |-------------------------------------------------------------------------- + | + | Uses the S3 cloud storage to manage files. Make sure to install the s3 + | drive separately when using it. + | + |************************************************************************** + | npm i @adonisjs/drive-s3 + |************************************************************************** + | + */ + // s3: { + // driver: 's3', + // visibility: 'public', + // key: Env.get('S3_KEY'), + // secret: Env.get('S3_SECRET'), + // region: Env.get('S3_REGION'), + // bucket: Env.get('S3_BUCKET'), + // endpoint: Env.get('S3_ENDPOINT'), + // + // // For minio to work + // // forcePathStyle: true, + // }, + + /* + |-------------------------------------------------------------------------- + | GCS Driver + |-------------------------------------------------------------------------- + | + | Uses the Google cloud storage to manage files. Make sure to install the GCS + | drive separately when using it. + | + |************************************************************************** + | npm i @adonisjs/drive-gcs + |************************************************************************** + | + */ + // gcs: { + // driver: 'gcs', + // visibility: 'public', + // keyFilename: Env.get('GCS_KEY_FILENAME'), + // bucket: Env.get('GCS_BUCKET'), + + /* + |-------------------------------------------------------------------------- + | Uniform ACL - Google cloud storage only + |-------------------------------------------------------------------------- + | + | When using the Uniform ACL on the bucket, the "visibility" option is + | ignored. Since, the files ACL is managed by the google bucket policies + | directly. + | + |************************************************************************** + | Learn more: https://cloud.google.com/storage/docs/uniform-bucket-level-access + |************************************************************************** + | + | The following option just informs drive whether your bucket is using uniform + | ACL or not. The actual setting needs to be toggled within the Google cloud + | console. + | + */ + // usingUniformAcl: false, + // }, + }, +}); diff --git a/config/hash.ts b/config/hash.ts index 26e6505..2acec11 100644 --- a/config/hash.ts +++ b/config/hash.ts @@ -5,9 +5,9 @@ * file. */ -import Env from '@ioc:Adonis/Core/Env'; -import { hashConfig } from '@adonisjs/core/build/config'; - +import env from '#start/env'; +import { defineConfig, drivers } from '@adonisjs/core/hash'; +import { laravelDriver } from '../providers/HashDriver/index.js'; /* |-------------------------------------------------------------------------- | Hash Config @@ -17,80 +17,87 @@ import { hashConfig } from '@adonisjs/core/build/config'; | defined inside `contracts` directory. | */ -export default hashConfig({ +const hashConfig = defineConfig({ /* - |-------------------------------------------------------------------------- - | Default hasher - |-------------------------------------------------------------------------- - | - | By default we make use of the argon hasher to hash values. However, feel - | free to change the default value - | - */ - default: Env.get('HASH_DRIVER', 'scrypt'), +|-------------------------------------------------------------------------- +| Default hasher +|-------------------------------------------------------------------------- +| +| By default we make use of the argon hasher to hash values. However, feel +| free to change the default value +| +*/ + default: env.get('HASH_DRIVER', 'scrypt'), list: { /* - |-------------------------------------------------------------------------- - | scrypt - |-------------------------------------------------------------------------- - | - | Scrypt mapping uses the Node.js inbuilt crypto module for creating - | hashes. - | - | We are using the default configuration recommended within the Node.js - | documentation. - | https://nodejs.org/api/crypto.html#cryptoscryptpassword-salt-keylen-options-callback - | - */ - scrypt: { - driver: 'scrypt', +|-------------------------------------------------------------------------- +| scrypt +|-------------------------------------------------------------------------- +| +| Scrypt mapping uses the Node.js inbuilt crypto module for creating +| hashes. +| +| We are using the default configuration recommended within the Node.js +| documentation. +| https://nodejs.org/api/crypto.html#cryptoscryptpassword-salt-keylen-options-callback +| +*/ + scrypt: drivers.scrypt({ cost: 16384, blockSize: 8, parallelization: 1, saltSize: 16, keyLength: 64, maxMemory: 32 * 1024 * 1024, - }, + }), /* - |-------------------------------------------------------------------------- - | Argon - |-------------------------------------------------------------------------- - | - | Argon mapping uses the `argon2` driver to hash values. - | - | Make sure you install the underlying dependency for this driver to work. - | https://www.npmjs.com/package/phc-argon2. - | - | npm install phc-argon2 - | - */ - argon: { - driver: 'argon2', +|-------------------------------------------------------------------------- +| Argon +|-------------------------------------------------------------------------- +| +| Argon mapping uses the `argon2` driver to hash values. +| +| Make sure you install the underlying dependency for this driver to work. +| https://www.npmjs.com/package/phc-argon2. +| +| npm install phc-argon2 +| +*/ + argon: drivers.argon2({ variant: 'id', iterations: 3, memory: 4096, parallelism: 1, saltSize: 16, - }, + }), /* - |-------------------------------------------------------------------------- - | Bcrypt - |-------------------------------------------------------------------------- - | - | Bcrypt mapping uses the `bcrypt` driver to hash values. - | - | Make sure you install the underlying dependency for this driver to work. - | https://www.npmjs.com/package/phc-bcrypt. - | - | npm install phc-bcrypt - | - */ - bcrypt: { - driver: 'bcrypt', +|-------------------------------------------------------------------------- +| Bcrypt +|-------------------------------------------------------------------------- +| +| Bcrypt mapping uses the `bcrypt` driver to hash values. +| +| Make sure you install the underlying dependency for this driver to work. +| https://www.npmjs.com/package/phc-bcrypt. +| +| npm install phc-bcrypt +| +*/ + bcrypt: drivers.bcrypt({ rounds: 10, - }, + }), + + laravel: laravelDriver({ + rounds: 10, + }), }, }); + +export default hashConfig; + +declare module '@adonisjs/core/types' { + export interface HashersList extends InferHashers<typeof hashConfig> {} +} diff --git a/config/inertia.ts b/config/inertia.ts index 0c91f81..f203ddd 100644 --- a/config/inertia.ts +++ b/config/inertia.ts @@ -1,20 +1,76 @@ -/** - * Feel free to let me know via PR, - * if you find something broken in this config file. - */ +import { defineConfig } from '@adonisjs/inertia'; +import type { HttpContext } from '@adonisjs/core/http'; +import type { InferSharedProps } from '@adonisjs/inertia/types' -import { InertiaConfig } from '@ioc:EidelLev/Inertia'; +const inertiaConfig = defineConfig({ + /** + * Path to the Edge view that will be used as the root view for Inertia responses + */ + rootView: 'app', -/* -|-------------------------------------------------------------------------- -| Inertia-AdonisJS config -|-------------------------------------------------------------------------- -| -*/ + /** + * Data that should be shared with all rendered pages + */ + sharedData: { + //This will be available in all views + appName: 'Tethys Cloud', -export const inertia: InertiaConfig = { - view: 'app', - // ssr: { - // enabled: false, - // }, -}; + errors: (ctx) => ctx.session?.flashMessages.get('errors'), + + user_id: (ctx) => { + return ctx.session?.flashMessages.get('user_id'); + }, + + flash: (ctx) => { + return { + message: ctx.session?.flashMessages.get('message'), + warning: ctx.session?.flashMessages.get('warning'), + error: ctx.session?.flashMessages.get('error'), + }; + }, + + // params: ({ params }) => params, + authUser: async ({ auth }: HttpContext) => { + if (auth?.user) { + await auth.user.load('roles'); + return auth.user; + // { + // 'id': auth.user.id, + // 'login': auth.user.login, + // }; + } else { + return null; + } + }, + }, + + /** + * Options for the server-side rendering + */ + ssr: { + enabled: false, + entrypoint: 'inertia/app/ssr.ts', + }, +}); + +export default inertiaConfig + +declare module '@adonisjs/inertia/types' { + export interface SharedProps extends InferSharedProps<typeof inertiaConfig> {} + } + +// import { InertiaConfig } from '@ioc:EidelLev/Inertia'; + +// /* +// |-------------------------------------------------------------------------- +// | Inertia-AdonisJS config +// |-------------------------------------------------------------------------- +// | +// */ + +// export const inertia: InertiaConfig = { +// view: 'app', +// // ssr: { +// // enabled: false, +// // }, +// }; diff --git a/config/logger.ts b/config/logger.ts new file mode 100644 index 0000000..1bc1bc8 --- /dev/null +++ b/config/logger.ts @@ -0,0 +1,35 @@ +import env from '#start/env' +import app from '@adonisjs/core/services/app' +import { defineConfig, targets } from '@adonisjs/core/logger' + +const loggerConfig = defineConfig({ + default: 'app', + + /** + * The loggers object can be used to define multiple loggers. + * By default, we configure only one logger (named "app"). + */ + loggers: { + app: { + enabled: true, + name: env.get('APP_NAME'), + level: env.get('LOG_LEVEL', 'info'), + transport: { + targets: targets() + .pushIf(!app.inProduction, targets.pretty()) + .pushIf(app.inProduction, targets.file({ destination: 1 })) + .toArray(), + }, + }, + }, +}) + +export default loggerConfig + +/** + * Inferring types for the list of loggers you have configured + * in your application. + */ +declare module '@adonisjs/core/types' { + export interface LoggersList extends InferLoggers<typeof loggerConfig> {} +} \ No newline at end of file diff --git a/config/mail.ts b/config/mail.ts new file mode 100644 index 0000000..8016c29 --- /dev/null +++ b/config/mail.ts @@ -0,0 +1,75 @@ +import env from '#start/env'; +import { defineConfig, transports } from '@adonisjs/mail'; + +const mailConfig = defineConfig({ + default: 'smtp', + from: 'tethys@geosphere.at', + /** + * The mailers object can be used to configure multiple mailers + * each using a different transport or same transport with different + * options. + */ + mailers: { + + smtp: transports.smtp({ + // socketTimeout: 5000,// Overall timeout (5 seconds) + host: env.get('SMTP_HOST', ''), + port: env.get('SMTP_PORT'), + secure: false, + // ignoreTLS: true, + requireTLS: false, + + /** + * Uncomment the auth block if your SMTP + * server needs authentication + */ + /* auth: { + type: 'login', + user: env.get('SMTP_USERNAME'), + pass: env.get('SMTP_PASSWORD'), + }, */ + }), + + // resend: transports.resend({ + // key: env.get('RESEND_API_KEY'), + // baseUrl: 'https://api.resend.com', + // }), + }, +}); + +export default mailConfig; + +declare module '@adonisjs/mail/types' { + export interface MailersList extends InferMailers<typeof mailConfig> {} +} + +// const mailConfig = defineConfig({ +// default: 'smtp', + +// /** +// * The mailers object can be used to configure multiple mailers +// * each using a different transport or same transport with different +// * options. +// */ +// mailers: { +// smtp: transports.smtp({ +// host: env.get('SMTP_HOST', ''), +// port: env.get('SMTP_PORT'), +// /** +// * Uncomment the auth block if your SMTP +// * server needs authentication +// */ +// /* auth: { +// type: 'login', +// user: env.get('SMTP_USERNAME'), +// pass: env.get('SMTP_PASSWORD'), +// }, */ +// }), + +// resend: transports.resend({ +// key: env.get('RESEND_API_KEY'), +// baseUrl: 'https://api.resend.com', +// }), + +// }, +// }) diff --git a/config/oai.ts b/config/oai.ts new file mode 100644 index 0000000..22574bf --- /dev/null +++ b/config/oai.ts @@ -0,0 +1,18 @@ +import env from '#start/env'; + +interface OaiConfig { + max: { listidentifiers: number; listrecords: number }; + workspacePath: string; + redis: { ttl: number }; +} +const config: OaiConfig = { + max: { + listidentifiers: env.get('OAI_LIST_SIZE', 100), + listrecords: env.get('OAI_LIST_SIZE', 100), + }, + workspacePath: 'workspace', + redis: { + ttl: 86400, //sec 1 day + }, +}; +export default config; diff --git a/config/redis.ts b/config/redis.ts new file mode 100644 index 0000000..d933221 --- /dev/null +++ b/config/redis.ts @@ -0,0 +1,36 @@ +import env from '#start/env' +import { defineConfig } from '@adonisjs/redis' +import { InferConnections } from '@adonisjs/redis/types' + +const redisConfig = defineConfig({ + connection: 'main', + + connections: { + /* + |-------------------------------------------------------------------------- + | The default connection + |-------------------------------------------------------------------------- + | + | The main connection you want to use to execute redis commands. The same + | connection will be used by the session provider, if you rely on the + | redis driver. + | + */ + main: { + host: env.get('REDIS_HOST'), + port: env.get('REDIS_PORT'), + password: env.get('REDIS_PASSWORD', ''), + db: 0, + keyPrefix: '', + retryStrategy(times) { + return times > 10 ? null : times * 50 + }, + }, + }, +}) + +export default redisConfig + +declare module '@adonisjs/redis/types' { + export interface RedisConnections extends InferConnections<typeof redisConfig> {} +} \ No newline at end of file diff --git a/config/session.ts b/config/session.ts index ccf2219..baa0adf 100644 --- a/config/session.ts +++ b/config/session.ts @@ -5,112 +5,123 @@ * file. */ -import Env from '@ioc:Adonis/Core/Env'; -import Application from '@ioc:Adonis/Core/Application'; -import { sessionConfig } from '@adonisjs/session/build/config'; +import env from '#start/env'; +// import app from '@adonisjs/core/services/app'; +import { defineConfig, stores } from '@adonisjs/session'; -export default sessionConfig({ +const sessionConfig = defineConfig({ /* - |-------------------------------------------------------------------------- - | Enable/Disable sessions - |-------------------------------------------------------------------------- - | - | Setting the following property to "false" will disable the session for the - | entire application - | - */ +|-------------------------------------------------------------------------- +| Enable/Disable sessions +|-------------------------------------------------------------------------- +| +| Setting the following property to "false" will disable the session for the +| entire application +| +*/ enabled: true, /* - |-------------------------------------------------------------------------- - | Driver - |-------------------------------------------------------------------------- - | - | The session driver to use. You can choose between one of the following - | drivers. - | - | - cookie (Uses signed cookies to store session values) - | - file (Uses filesystem to store session values) - | - redis (Uses redis. Make sure to install "@adonisjs/redis" as well) - | - | Note: Switching drivers will make existing sessions invalid. - | - */ - driver: Env.get('SESSION_DRIVER'), +|-------------------------------------------------------------------------- +| Driver +|-------------------------------------------------------------------------- +| +| The session driver to use. You can choose between one of the following +| drivers. +| +| - cookie (Uses signed cookies to store session values) +| - file (Uses filesystem to store session values) +| - redis (Uses redis. Make sure to install "@adonisjs/redis" as well) +| +| Note: Switching drivers will make existing sessions invalid. +| +*/ + // driver: env.get('SESSION_DRIVER'), /* - |-------------------------------------------------------------------------- - | Cookie name - |-------------------------------------------------------------------------- - | - | The name of the cookie that will hold the session id. - | - */ +|-------------------------------------------------------------------------- +| Cookie name +|-------------------------------------------------------------------------- +| +| The name of the cookie that will hold the session id. +| +*/ cookieName: 'adonis-session', /* - |-------------------------------------------------------------------------- - | Clear session when browser closes - |-------------------------------------------------------------------------- - | - | Whether or not you want to destroy the session when browser closes. Setting - | this value to `true` will ignore the `age`. - | - */ +|-------------------------------------------------------------------------- +| Clear session when browser closes +|-------------------------------------------------------------------------- +| +| Whether or not you want to destroy the session when browser closes. Setting +| this value to `true` will ignore the `age`. +| +*/ clearWithBrowser: false, /* - |-------------------------------------------------------------------------- - | Session age - |-------------------------------------------------------------------------- - | - | The duration for which session stays active after no activity. A new HTTP - | request to the server is considered as activity. - | - | The value can be a number in milliseconds or a string that must be valid - | as per https://npmjs.org/package/ms package. - | - | Example: `2 days`, `2.5 hrs`, `1y`, `5s` and so on. - | - */ +|-------------------------------------------------------------------------- +| Session age +|-------------------------------------------------------------------------- +| +| The duration for which session stays active after no activity. A new HTTP +| request to the server is considered as activity. +| +| The value can be a number in milliseconds or a string that must be valid +| as per https://npmjs.org/package/ms package. +| +| Example: `2 days`, `2.5 hrs`, `1y`, `5s` and so on. +| +*/ age: '2h', /* - |-------------------------------------------------------------------------- - | Cookie values - |-------------------------------------------------------------------------- - | - | The cookie settings are used to setup the session id cookie and also the - | driver will use the same values. - | - */ +|-------------------------------------------------------------------------- +| Cookie values +|-------------------------------------------------------------------------- +| +| The cookie settings are used to setup the session id cookie and also the +| driver will use the same values. +| +*/ cookie: { path: '/', httpOnly: true, + secure: false, //app.inProduction, sameSite: false, }, + /** + * The store to use. Make sure to validate the environment + * variable in order to infer the store name without any + * errors. + */ + store: env.get('SESSION_DRIVER'), /* - |-------------------------------------------------------------------------- - | Configuration for the file driver - |-------------------------------------------------------------------------- - | - | The file driver needs absolute path to the directory in which sessions - | must be stored. - | - */ - file: { - location: Application.tmpPath('sessions'), - }, +|-------------------------------------------------------------------------- +| Configuration for the file driver +|-------------------------------------------------------------------------- +| +| The file driver needs absolute path to the directory in which sessions +| must be stored. +| +*/ + // file: { + // location: app.tmpPath('sessions'), + // }, /* - |-------------------------------------------------------------------------- - | Redis driver - |-------------------------------------------------------------------------- - | - | The redis connection you want session driver to use. The same connection - | must be defined inside `config/redis.ts` file as well. - | - */ - redisConnection: 'local', +|-------------------------------------------------------------------------- +| Redis driver +|-------------------------------------------------------------------------- +| +| The redis connection you want session driver to use. The same connection +| must be defined inside `config/redis.ts` file as well. +| +*/ + // redisConnection: 'local', + stores: { + cookie: stores.cookie(), + }, }); +export default sessionConfig; diff --git a/config/shield.ts b/config/shield.ts index 0b977c4..d3aa290 100644 --- a/config/shield.ts +++ b/config/shield.ts @@ -1,237 +1,51 @@ -/** - * Config source: https://git.io/Jvwvt - * - * Feel free to let us know via PR, if you find something broken in this config - * file. - */ +import { defineConfig } from '@adonisjs/shield' -// import Env from '@ioc:Adonis/Core/Env' -import { ShieldConfig } from '@ioc:Adonis/Addons/Shield'; - -/* -|-------------------------------------------------------------------------- -| Content Security Policy -|-------------------------------------------------------------------------- -| -| Content security policy filters out the origins not allowed to execute -| and load resources like scripts, styles and fonts. There are wide -| variety of options to choose from. -*/ -export const csp: ShieldConfig['csp'] = { - /* - |-------------------------------------------------------------------------- - | Enable/disable CSP - |-------------------------------------------------------------------------- - | - | The CSP rules are disabled by default for seamless onboarding. - | - */ +const shieldConfig = defineConfig({ + /** + * Configure CSP policies for your app. Refer documentation + * to learn more + */ + csp: { enabled: false, - - /* - |-------------------------------------------------------------------------- - | Directives - |-------------------------------------------------------------------------- - | - | All directives are defined in camelCase and here is the list of - | available directives and their possible values. - | - | https://content-security-policy.com - | - | @example - | directives: { - | defaultSrc: ["'self'", '@nonce', 'cdnjs.cloudflare.com'] - | } - | - */ directives: {}, - - /* - |-------------------------------------------------------------------------- - | Report only - |-------------------------------------------------------------------------- - | - | Setting `reportOnly=true` will not block the scripts from running and - | instead report them to a URL. - | - */ reportOnly: false, -}; + }, -/* -|-------------------------------------------------------------------------- -| CSRF Protection -|-------------------------------------------------------------------------- -| -| CSRF Protection adds another layer of security by making sure, actionable -| routes does have a valid token to execute an action. -| -*/ -export const csrf: ShieldConfig['csrf'] = { - /* - |-------------------------------------------------------------------------- - | Enable/Disable CSRF - |-------------------------------------------------------------------------- - */ + /** + * Configure CSRF protection options. Refer documentation + * to learn more + */ + csrf: { enabled: true, - - /* - |-------------------------------------------------------------------------- - | Routes to Ignore - |-------------------------------------------------------------------------- - | - | Define an array of route patterns that you want to ignore from CSRF - | validation. Make sure the route patterns are started with a leading - | slash. Example: - | - | `/foo/bar` - | - | Also you can define a function that is evaluated on every HTTP Request. - | ``` - | exceptRoutes: ({ request }) => request.url().includes('/api') - | ``` - | - */ exceptRoutes: [], - - /* - |-------------------------------------------------------------------------- - | Enable Sharing Token Via Cookie - |-------------------------------------------------------------------------- - | - | When the following flag is enabled, AdonisJS will drop `XSRF-TOKEN` - | cookie that frontend frameworks can read and return back as a - | `X-XSRF-TOKEN` header. - | - | The cookie has `httpOnly` flag set to false, so it is little insecure and - | can be turned off when you are not using a frontend framework making - | AJAX requests. - | - */ enableXsrfCookie: true, - - /* - |-------------------------------------------------------------------------- - | Methods to Validate - |-------------------------------------------------------------------------- - | - | Define an array of HTTP methods to be validated for a valid CSRF token. - | - */ methods: ['POST', 'PUT', 'PATCH', 'DELETE'], -}; + }, -/* -|-------------------------------------------------------------------------- -| DNS Prefetching -|-------------------------------------------------------------------------- -| -| DNS prefetching allows browsers to proactively perform domain name -| resolution in background. -| -| Learn more at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control -| -*/ -export const dnsPrefetch: ShieldConfig['dnsPrefetch'] = { - /* - |-------------------------------------------------------------------------- - | Enable/disable this feature - |-------------------------------------------------------------------------- - */ - enabled: true, - - /* - |-------------------------------------------------------------------------- - | Allow or Dis-Allow Explicitly - |-------------------------------------------------------------------------- - | - | The `enabled` boolean does not set `X-DNS-Prefetch-Control` header. However - | the `allow` boolean controls the value of `X-DNS-Prefetch-Control` header. - | - | - When `allow = true`, then `X-DNS-Prefetch-Control = 'on'` - | - When `allow = false`, then `X-DNS-Prefetch-Control = 'off'` - | - */ - allow: true, -}; - -/* -|-------------------------------------------------------------------------- -| Iframe Options -|-------------------------------------------------------------------------- -| -| xFrame defines whether or not your website can be embedded inside an -| iframe. Choose from one of the following options. -| -| - DENY -| - SAMEORIGIN -| - ALLOW-FROM http://example.com -| -| Learn more at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options -*/ -export const xFrame: ShieldConfig['xFrame'] = { + /** + * Control how your website should be embedded inside + * iFrames + */ + xFrame: { enabled: true, action: 'DENY', -}; + }, -/* -|-------------------------------------------------------------------------- -| Http Strict Transport Security -|-------------------------------------------------------------------------- -| -| A security to ensure that a browser always makes a connection over -| HTTPS. -| -| Learn more at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security -| -*/ -export const hsts: ShieldConfig['hsts'] = { + /** + * Force browser to always use HTTPS + */ + hsts: { enabled: true, - /* - |-------------------------------------------------------------------------- - | Max Age - |-------------------------------------------------------------------------- - | - | Control, how long the browser should remember that a site is only to be - | accessed using HTTPS. - | - */ maxAge: '180 days', + }, - /* - |-------------------------------------------------------------------------- - | Include Subdomains - |-------------------------------------------------------------------------- - | - | Apply rules on the subdomains as well. - | - */ - includeSubDomains: true, - - /* - |-------------------------------------------------------------------------- - | Preloading - |-------------------------------------------------------------------------- - | - | Google maintains a service to register your domain and it will preload - | the HSTS policy. Learn more https://hstspreload.org/ - | - */ - preload: false, -}; - -/* -|-------------------------------------------------------------------------- -| No Sniff -|-------------------------------------------------------------------------- -| -| Browsers have a habit of sniffing content-type of a response. Which means -| files with .txt extension containing Javascript code will be executed as -| Javascript. You can disable this behavior by setting nosniff to false. -| -| Learn more at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options -| -*/ -export const contentTypeSniffing: ShieldConfig['contentTypeSniffing'] = { + /** + * Disable browsers from sniffing the content type of a + * response and always rely on the "content-type" header. + */ + contentTypeSniffing: { enabled: true, -}; + }, +}) + +export default shieldConfig diff --git a/config/static.ts b/config/static.ts index ab2f3eb..8d2878c 100644 --- a/config/static.ts +++ b/config/static.ts @@ -1,89 +1,17 @@ +import { defineConfig } from '@adonisjs/static' + /** - * Config source: https://git.io/Jfefl + * Configuration options to tweak the static files middleware. + * The complete set of options are documented on the + * official documentation website. * - * Feel free to let us know via PR, if you find something broken in this config - * file. + * https://docs.adonisjs.com/guides/static-assets */ +const staticServerConfig = defineConfig({ + enabled: true, + etag: true, + lastModified: true, + dotFiles: 'ignore', +}) -import { AssetsConfig } from '@ioc:Adonis/Core/Static'; - -const staticConfig: AssetsConfig = { - /* - |-------------------------------------------------------------------------- - | Enabled - |-------------------------------------------------------------------------- - | - | A boolean to enable or disable serving static files. The static files - | are served from the `public` directory inside the application root. - | However, you can override the default path inside `.adonisrc.json` - | file. - | - | - */ - enabled: true, - - /* - |-------------------------------------------------------------------------- - | Handling Dot Files - |-------------------------------------------------------------------------- - | - | Decide how you want the static assets server to handle the `dotfiles`. - | By default, we ignore them as if they don't exists. However, you - | can choose between one of the following options. - | - | - ignore: Behave as if the file doesn't exists. Results in 404. - | - deny: Deny access to the file. Results in 403. - | - allow: Serve the file contents - | - */ - dotFiles: 'ignore', - - /* - |-------------------------------------------------------------------------- - | Generating Etag - |-------------------------------------------------------------------------- - | - | Handle whether or not to generate etags for the files. Etag allows browser - | to utilize the cache when file hasn't been changed. - | - */ - etag: true, - - /* - |-------------------------------------------------------------------------- - | Set Last Modified - |-------------------------------------------------------------------------- - | - | Whether or not to set the `Last-Modified` header in the response. Uses - | the file system's last modified value. - | - */ - lastModified: true, - - /* - |-------------------------------------------------------------------------- - | Max age - |-------------------------------------------------------------------------- - | - | Set the value for the max-age directive. Set a higher value in production - | if you fingerprint your assets. - | - | Learn more: https://docs.adonisjs.com/guides/deployment#serving-static-assets - | - */ - maxAge: 0, - - /* - |-------------------------------------------------------------------------- - | Immutable - |-------------------------------------------------------------------------- - | - | Set the immutable directive. Set it to `true` if the assets are generated - | with a fingerprint. In others words the file name changes when the file - | contents change. - | - */ - immutable: false, -}; - -export default staticConfig; +export default staticServerConfig \ No newline at end of file diff --git a/config/vite.ts b/config/vite.ts new file mode 100644 index 0000000..4969e53 --- /dev/null +++ b/config/vite.ts @@ -0,0 +1,32 @@ +import { defineConfig } from '@adonisjs/vite'; + +const viteBackendConfig = defineConfig({ + /** + * The output of vite will be written inside this + * directory. The path should be relative from + * the application root. + */ + buildDirectory: 'public/assets', + + /** + * The path to the manifest file generated by the + * "vite build" command. + */ + manifestFile: 'public/assets/.vite/manifest.json', + + /** + * Feel free to change the value of the "assetsUrl" to + * point to a CDN in production. + */ + assetsUrl: '/assets', + + /** + * Add defer attribute to scripts for better performance. + */ + scriptAttributes: { + defer: true, + }, + +}); + +export default viteBackendConfig; diff --git a/contracts/auth.ts b/contracts/auth.ts deleted file mode 100644 index ddc2c5b..0000000 --- a/contracts/auth.ts +++ /dev/null @@ -1,73 +0,0 @@ -/** - * Contract source: https://git.io/JOdz5 - * - * Feel free to let us know via PR, if you find something broken in this - * file. - */ - -import User from 'App/Models/User'; - -declare module '@ioc:Adonis/Addons/Auth' { - /* - |-------------------------------------------------------------------------- - | Providers - |-------------------------------------------------------------------------- - | - | The providers are used to fetch users. The Auth module comes pre-bundled - | with two providers that are `Lucid` and `Database`. Both uses database - | to fetch user details. - | - | You can also create and register your own custom providers. - | - */ - interface ProvidersList { - /* - |-------------------------------------------------------------------------- - | User Provider - |-------------------------------------------------------------------------- - | - | The following provider uses Lucid models as a driver for fetching user - | details from the database for authentication. - | - | You can create multiple providers using the same underlying driver with - | different Lucid models. - | - */ - user: { - implementation: LucidProviderContract<typeof User>; - config: LucidProviderConfig<typeof User>; - }; - } - - /* - |-------------------------------------------------------------------------- - | Guards - |-------------------------------------------------------------------------- - | - | The guards are used for authenticating users using different drivers. - | The auth module comes with 3 different guards. - | - | - SessionGuardContract - | - BasicAuthGuardContract - | - OATGuardContract ( Opaque access token ) - | - | Every guard needs a provider for looking up users from the database. - | - */ - interface GuardsList { - /* - |-------------------------------------------------------------------------- - | Web Guard - |-------------------------------------------------------------------------- - | - | The web guard uses sessions for maintaining user login state. It uses - | the `user` provider for fetching user details. - | - */ - web: { - implementation: SessionGuardContract<'user', 'web'>; - config: SessionGuardConfig<'user'>; - client: SessionClientContract<'user'>; - }; - } -} diff --git a/contracts/drive.ts b/contracts/drive.ts deleted file mode 100644 index 6028ba1..0000000 --- a/contracts/drive.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Contract source: https://git.io/JBt3I - * - * Feel free to let us know via PR, if you find something broken in this contract - * file. - */ - -import type { InferDisksFromConfig } from '@adonisjs/core/build/config'; -import type driveConfig from '../config/drive'; - -declare module '@ioc:Adonis/Core/Drive' { - interface DisksList extends InferDisksFromConfig<typeof driveConfig> {} -} diff --git a/contracts/enums.ts b/contracts/enums.ts index ee905c8..5772570 100644 --- a/contracts/enums.ts +++ b/contracts/enums.ts @@ -21,6 +21,7 @@ export enum ServerStates { rejected_reviewer = 'rejected_reviewer', rejected_editor = 'rejected_editor', reviewed = 'reviewed', + rejected_to_reviewer = 'rejected_to_reviewer', } // for table dataset_titles @@ -111,3 +112,9 @@ export enum IdentifierTypes { url = 'url', urn = 'urn', } + +export enum TotpState { + STATE_DISABLED = 0, + STATE_CREATED = 1, + STATE_ENABLED = 2, +} diff --git a/contracts/env.ts b/contracts/env.ts deleted file mode 100644 index ab200cc..0000000 --- a/contracts/env.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Contract source: https://git.io/JTm6U - * - * Feel free to let us know via PR, if you find something broken in this contract - * file. - */ - -declare module '@ioc:Adonis/Core/Env' { - /* - |-------------------------------------------------------------------------- - | Getting types for validated environment variables - |-------------------------------------------------------------------------- - | - | The `default` export from the "../env.ts" file exports types for the - | validated environment variables. Here we merge them with the `EnvTypes` - | interface so that you can enjoy intellisense when using the "Env" - | module. - | - */ - - type CustomTypes = typeof import('../env').default; - interface EnvTypes extends CustomTypes {} -} diff --git a/contracts/events.ts b/contracts/events.ts deleted file mode 100644 index 523d9e0..0000000 --- a/contracts/events.ts +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Contract source: https://git.io/JfefG - * - * Feel free to let us know via PR, if you find something broken in this contract - * file. - */ - -declare module '@ioc:Adonis/Core/Event' { - /* - |-------------------------------------------------------------------------- - | Define typed events - |-------------------------------------------------------------------------- - | - | You can define types for events inside the following interface and - | AdonisJS will make sure that all listeners and emit calls adheres - | to the defined types. - | - | For example: - | - | interface EventsList { - | 'new:user': UserModel - | } - | - | Now calling `Event.emit('new:user')` will statically ensure that passed value is - | an instance of the the UserModel only. - | - */ - interface EventsList { - // - } -} diff --git a/contracts/hash.ts b/contracts/hash.ts deleted file mode 100644 index f70acda..0000000 --- a/contracts/hash.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Contract source: https://git.io/Jfefs - * - * Feel free to let us know via PR, if you find something broken in this contract - * file. - */ - -import type { InferListFromConfig } from '@adonisjs/core/build/config'; -import type hashConfig from '../config/hash'; - -declare module '@ioc:Adonis/Core/Hash' { - interface HashersList extends InferListFromConfig<typeof hashConfig> {} -} diff --git a/contracts/orm.ts b/contracts/orm.ts deleted file mode 100644 index 0d0fcb0..0000000 --- a/contracts/orm.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare module '@ioc:Adonis/Lucid/Orm' { - interface ModelQueryBuilderContract<Model extends LucidModel, Result = InstanceType<Model>> { - pluck(value: string, id?: string): Promise<Object>; - } -} diff --git a/contracts/response.ts b/contracts/response.ts deleted file mode 100644 index d8eb1a7..0000000 --- a/contracts/response.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare module '@ioc:Adonis/Core/Response' { - interface ResponseContract { - flash(key: string, message: any): this; - - toRoute(route: string): this; - } -} diff --git a/contracts/tests.ts b/contracts/tests.ts deleted file mode 100644 index fe5b88a..0000000 --- a/contracts/tests.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Contract source: https://bit.ly/3DP1ypf - * - * Feel free to let us know via PR, if you find something broken in this contract - * file. - */ - -import '@japa/runner'; - -declare module '@japa/runner' { - interface TestContext { - // Extend context - } - - interface Test<TestData> { - // Extend test - } -} diff --git a/contracts/validator.ts b/contracts/validator.ts deleted file mode 100644 index 459ab8c..0000000 --- a/contracts/validator.ts +++ /dev/null @@ -1,6 +0,0 @@ -declare module '@ioc:Adonis/Core/Validator' { - interface Rules { - translatedLanguage(mainLanguageField: string, typeField: string): Rule; - uniqueArray(field: string): Rule; - } -} diff --git a/database/factories/create_collections_data_ccs.sql b/database/factories/create_collections_data_ccs.sql new file mode 100644 index 0000000..e6b14df --- /dev/null +++ b/database/factories/create_collections_data_ccs.sql @@ -0,0 +1,1472 @@ +-- ACM Computing Classification System (CCS) — a widely used system for classifying academic literature in computer science and related disciplines. +/* The main classes are: see number at db +A. General Literature +B. Hardware +C. Computer Systems Organization +D. Software +E. Data +F. Theory of Computation +G. Mathematics of Computing +H. Information Systems +I. Computing Methodologies +J. Computer Applications +K. Computing Milieux + +These classes help in organizing research papers, indexing databases, and guiding publication categorization +*/ +INSERT INTO collections (id, role_id, number, name, oai_subset, left_id, right_id, parent_id, visible, visible_publish) VALUES +(1030,3,'A.','General Literature','A.',2,17,NULL,1,1), +(1031,3,'B.','Hardware','B.',18,379,NULL,1,1), +(1032,3,'C.','Computer Systems Organization','C.',380,567,NULL,1,1), +(1033,3,'D.','Software','D.',568,1035,NULL,1,1), +(1034,3,'E.','Data','E.',1036,1101,NULL,1,1), +(1035,3,'F.','Theory of Computation','F.',1102,1291,NULL,1,1), +(1036,3,'G.','Mathematics of Computing','G.',1292,1587,NULL,1,1), +(1037,3,'H.','Information Systems','H.',1588,1919,NULL,1,1), +(1038,3,'I.','Computing Methodologies','I.',1920,2537,NULL,1,1), +(1039,3,'J.','Computer Applications','J.',2538,2637,NULL,1,1), +(1040,3,'K.','Computing Milieux','K.',2638,2911,NULL,1,1), +(1041,3,'A.0','GENERAL','A.0',3,10,1030,1,1), +(1042,3,'A.1','INTRODUCTORY AND SURVEY','A.1',11,12,1030,1,1), +(1043,3,'A.2','REFERENCE (e.g., dictionaries, encyclopedias, glossaries)','A.2',13,14,1030,1,1), +(1044,3,'A.m','MISCELLANEOUS','A.m',15,16,1030,1,1), +(1045,3,'B.0','GENERAL','B.0',19,20,1031,1,1), +(1046,3,'B.1','CONTROL STRUCTURES AND MICROPROGRAMMING (D.3.2)','B.1',21,76,1031,1,1), +(1047,3,'B.2','ARITHMETIC AND LOGIC STRUCTURES','B.2',77,114,1031,1,1), +(1048,3,'B.3','MEMORY STRUCTURES','B.3',115,164,1031,1,1), +(1049,3,'B.4','INPUT/OUTPUT AND DATA COMMUNICATIONS','B.4',165,226,1031,1,1), +(1050,3,'B.5','REGISTER-TRANSFER-LEVEL IMPLEMENTATION','B.5',227,268,1031,1,1), +(1051,3,'B.6','LOGIC DESIGN','B.6',269,316,1031,1,1), +(1052,3,'B.7','INTEGRATED CIRCUITS','B.7',317,364,1031,1,1), +(1053,3,'B.8','PERFORMANCE AND RELIABILITY (C.4) (NEW)','B.8',365,374,1031,1,1), +(1054,3,'B.m','MISCELLANEOUS','B.m',375,378,1031,1,1), +(1055,3,'C.0','GENERAL','C.0',381,382,1032,1,1), +(1056,3,'C.1','PROCESSOR ARCHITECTURES','C.1',383,450,1032,1,1), +(1057,3,'C.2','COMPUTER-COMMUNICATION NETWORKS','C.2',451,534,1032,1,1), +(1058,3,'C.3','SPECIAL-PURPOSE AND APPLICATION-BASED SYSTEMS (J.7)','C.3',535,536,1032,1,1), +(1059,3,'C.4','PERFORMANCE OF SYSTEMS','C.4',537,538,1032,1,1), +(1060,3,'C.5','COMPUTER SYSTEM IMPLEMENTATION','C.5',539,564,1032,1,1), +(1061,3,'C.m','MISCELLANEOUS','C.m',565,566,1032,1,1), +(1062,3,'D.0','GENERAL','D.0',569,570,1033,1,1), +(1063,3,'D.1','PROGRAMMING TECHNIQUES (E)','D.1',571,594,1033,1,1), +(1064,3,'D.2','SOFTWARE ENGINEERING (K.6.3)','D.2',595,796,1033,1,1), +(1065,3,'D.3','PROGRAMMING LANGUAGES','D.3',797,900,1033,1,1), +(1066,3,'D.4','OPERATING SYSTEMS (C)','D.4',901,1030,1033,1,1), +(1067,3,'D.m','MISCELLANEOUS','D.m',1031,1034,1033,1,1), +(1068,3,'E.0','GENERAL','E.0',1037,1038,1034,1,1), +(1069,3,'E.1','DATA STRUCTURES','E.1',1039,1054,1034,1,1), +(1070,3,'E.2','DATA STORAGE REPRESENTATIONS','E.2',1055,1068,1034,1,1), +(1071,3,'E.3','DATA ENCRYPTION','E.3',1069,1078,1034,1,1), +(1072,3,'E.4','CODING AND INFORMATION THEORY (H.1.1)','E.4',1079,1088,1034,1,1), +(1073,3,'E.5','FILES (D.4.3, F.2.2, H.2)','E.5',1089,1098,1034,1,1), +(1074,3,'E.m','MISCELLANEOUS','E.m',1099,1100,1034,1,1), +(1075,3,'F.0','GENERAL','F.0',1103,1104,1035,1,1), +(1076,3,'F.1','COMPUTATION BY ABSTRACT DEVICES','F.1',1105,1152,1035,1,1), +(1077,3,'F.2','ANALYSIS OF ALGORITHMS AND PROBLEM COMPLEXITY (B.6-7, F.1.3)','F.2',1153,1188,1035,1,1), +(1078,3,'F.3','LOGICS AND MEANINGS OF PROGRAMS','F.3',1189,1234,1035,1,1), +(1079,3,'F.4','MATHEMATICAL LOGIC AND FORMAL LANGUAGES','F.4',1235,1288,1035,1,1), +(1080,3,'F.m','MISCELLANEOUS','F.m',1289,1290,1035,1,1), +(1081,3,'G.0','GENERAL','G.0',1293,1294,1036,1,1), +(1082,3,'G.1','NUMERICAL ANALYSIS','G.1',1295,1490,1036,1,1), +(1083,3,'G.2','DISCRETE MATHEMATICS','G.2',1491,1524,1036,1,1), +(1084,3,'G.3','PROBABILITY AND STATISTICS','G.3',1525,1562,1036,1,1), +(1085,3,'G.4','MATHEMATICAL SOFTWARE','G.4',1563,1582,1036,1,1), +(1086,3,'G.m','MISCELLANEOUS','G.m',1583,1586,1036,1,1), +(1087,3,'H.0','GENERAL','H.0',1589,1590,1037,1,1), +(1088,3,'H.1','MODELS AND PRINCIPLES','H.1',1591,1612,1037,1,1), +(1089,3,'H.2','DATABASE MANAGEMENT (E.5)','H.2',1613,1700,1037,1,1), +(1090,3,'H.3','INFORMATION STORAGE AND RETRIEVAL','H.3',1701,1778,1037,1,1), +(1091,3,'H.4','INFORMATION SYSTEMS APPLICATIONS','H.4',1779,1818,1037,1,1), +(1092,3,'H.5','INFORMATION INTERFACES AND PRESENTATION (e.g., HCI) (I.7)','H.5',1819,1916,1037,1,1), +(1093,3,'H.m','MISCELLANEOUS','H.m',1917,1918,1037,1,1), +(1094,3,'I.0','GENERAL','I.0',1921,1922,1038,1,1), +(1095,3,'I.1','SYMBOLIC AND ALGEBRAIC MANIPULATION (REVISED)','I.1',1923,1956,1038,1,1), +(1096,3,'I.2','ARTIFICIAL INTELLIGENCE','I.2',1957,2132,1038,1,1), +(1097,3,'I.3','COMPUTER GRAPHICS','I.3',2133,2252,1038,1,1), +(1098,3,'I.4','IMAGE PROCESSING AND COMPUTER VISION (REVISED)','I.4',2253,2382,1038,1,1), +(1099,3,'I.5','PATTERN RECOGNITION','I.5',2383,2432,1038,1,1), +(1100,3,'I.6','SIMULATION AND MODELING (G.3)','I.6',2433,2482,1038,1,1), +(1101,3,'I.7','DOCUMENT AND TEXT PROCESSING (H.4-5) (REVISED)','I.7',2483,2534,1038,1,1), +(1102,3,'I.m','MISCELLANEOUS','I.m',2535,2536,1038,1,1), +(1103,3,'J.0','GENERAL','J.0',2539,2540,1039,1,1), +(1104,3,'J.1','ADMINISTRATIVE DATA PROCESSING','J.1',2541,2558,1039,1,1), +(1105,3,'J.2','PHYSICAL SCIENCES AND ENGINEERING','J.2',2559,2578,1039,1,1), +(1106,3,'J.3','LIFE AND MEDICAL SCIENCES','J.3',2579,2586,1039,1,1), +(1107,3,'J.4','SOCIAL AND BEHAVIORAL SCIENCES','J.4',2587,2594,1039,1,1), +(1108,3,'J.5','ARTS AND HUMANITIES','J.5',2595,2612,1039,1,1), +(1109,3,'J.6','COMPUTER-AIDED ENGINEERING','J.6',2613,2618,1039,1,1), +(1110,3,'J.7','COMPUTERS IN OTHER SYSTEMS (C.3)','J.7',2619,2634,1039,1,1), +(1111,3,'J.m','MISCELLANEOUS','J.m',2635,2636,1039,1,1), +(1112,3,'K.0','GENERAL','K.0',2639,2640,1040,1,1), +(1113,3,'K.1','THE COMPUTER INDUSTRY','K.1',2641,2650,1040,1,1), +(1114,3,'K.2','HISTORY OF COMPUTING','K.2',2651,2662,1040,1,1), +(1115,3,'K.3','COMPUTERS AND EDUCATION','K.3',2663,2696,1040,1,1), +(1116,3,'K.4','COMPUTERS AND SOCIETY','K.4',2697,2756,1040,1,1), +(1117,3,'K.5','LEGAL ASPECTS OF COMPUTING','K.5',2757,2786,1040,1,1), +(1118,3,'K.6','MANAGEMENT OF COMPUTING AND INFORMATION SYSTEMS','K.6',2787,2856,1040,1,1), +(1119,3,'K.7','THE COMPUTING PROFESSION','K.7',2857,2880,1040,1,1), +(1120,3,'K.8','PERSONAL COMPUTING','K.8',2881,2908,1040,1,1), +(1121,3,'K.m','MISCELLANEOUS','K.m',2909,2910,1040,1,1), +(1122,3,NULL,'Biographies/autobiographies',NULL,4,5,1041,1,1), +(1123,3,NULL,'Conference proceedings',NULL,6,7,1041,1,1), +(1124,3,NULL,'General literary works (e.g., fiction, plays)',NULL,8,9,1041,1,1), +(1125,3,'B.1.0','General','B.1.0',22,23,1046,1,1), +(1126,3,'B.1.1','Control Design Styles','B.1.1',24,31,1046,1,1), +(1127,3,NULL,'Hardwired control**',NULL,25,26,1126,1,1), +(1128,3,NULL,'Microprogrammed logic arrays**',NULL,27,28,1126,1,1), +(1129,3,NULL,'Writable control store**',NULL,29,30,1126,1,1), +(1130,3,'B.1.2','Control Structure Performance Analysis and Design Aids','B.1.2',32,39,1046,1,1), +(1131,3,NULL,'Automatic synthesis**',NULL,33,34,1130,1,1), +(1132,3,NULL,'Formal models**',NULL,35,36,1130,1,1), +(1133,3,NULL,'Simulation**',NULL,37,38,1130,1,1), +(1134,3,'B.1.3','Control Structure Reliability, Testing, and Fault-Tolerance** (B.8)','B.1.3',40,49,1046,1,1), +(1135,3,NULL,'Diagnostics**',NULL,41,42,1134,1,1), +(1136,3,NULL,'Error-checking**',NULL,43,44,1134,1,1), +(1137,3,NULL,'Redundant design**',NULL,45,46,1134,1,1), +(1138,3,NULL,'Test generation**',NULL,47,48,1134,1,1), +(1139,3,'B.1.4','Microprogram Design Aids (D.2.2, D.2.4, D.3.2, D.3.4)','B.1.4',50,61,1046,1,1), +(1140,3,NULL,'Firmware engineering**',NULL,51,52,1139,1,1), +(1141,3,NULL,'Languages and compilers',NULL,53,54,1139,1,1), +(1142,3,NULL,'Machine-independent microcode generation**',NULL,55,56,1139,1,1), +(1143,3,NULL,'Optimization',NULL,57,58,1139,1,1), +(1144,3,NULL,'Verification**',NULL,59,60,1139,1,1), +(1145,3,'B.1.5','Microcode Applications','B.1.5',62,73,1046,1,1), +(1146,3,NULL,'Direct data manipulation**',NULL,63,64,1145,1,1), +(1147,3,NULL,'Firmware support of operating systems/instruction sets**',NULL,65,66,1145,1,1), +(1148,3,NULL,'Instruction set interpretation',NULL,67,68,1145,1,1), +(1149,3,NULL,'Peripheral control**',NULL,69,70,1145,1,1), +(1150,3,NULL,'Special-purpose**',NULL,71,72,1145,1,1), +(1151,3,'B.1.m','Miscellaneous','B.1.m',74,75,1046,1,1), +(1152,3,'B.2.0','General','B.2.0',78,79,1047,1,1), +(1153,3,'B.2.1','Design Styles (C.1.1-2)','B.2.1',80,87,1047,1,1), +(1154,3,NULL,'Calculator**',NULL,81,82,1153,1,1), +(1155,3,NULL,'Parallel',NULL,83,84,1153,1,1), +(1156,3,NULL,'Pipeline',NULL,85,86,1153,1,1), +(1157,3,'B.2.2','Performance Analysis and Design Aids** (B.8)','B.2.2',88,95,1047,1,1), +(1158,3,NULL,'Simulation**',NULL,89,90,1157,1,1), +(1159,3,NULL,'Verification**',NULL,91,92,1157,1,1), +(1160,3,NULL,'Worst-case analysis**',NULL,93,94,1157,1,1), +(1161,3,'B.2.3','Reliability, Testing, and Fault-Tolerance** (B.8)','B.2.3',96,105,1047,1,1), +(1162,3,NULL,'Diagnostics**',NULL,97,98,1161,1,1), +(1163,3,NULL,'Error-checking**',NULL,99,100,1161,1,1), +(1164,3,NULL,'Redundant design**',NULL,101,102,1161,1,1), +(1165,3,NULL,'Test generation**',NULL,103,104,1161,1,1), +(1166,3,'B.2.4','High-Speed Arithmetic (NEW)','B.2.4',106,111,1047,1,1), +(1167,3,NULL,'Algorithms (NEW)',NULL,107,108,1166,1,1), +(1168,3,NULL,'Cost/performance (NEW)',NULL,109,110,1166,1,1), +(1169,3,'B.2.m','Miscellaneous','B.2.m',112,113,1047,1,1), +(1170,3,'B.3.0','General','B.3.0',116,117,1048,1,1), +(1171,3,'B.3.1','Semiconductor Memories (NEW) (B.7.1)','B.3.1',118,125,1048,1,1), +(1172,3,NULL,'Dynamic memory (DRAM) (NEW)',NULL,119,120,1171,1,1), +(1173,3,NULL,'Read-only memory (ROM) (NEW)',NULL,121,122,1171,1,1), +(1174,3,NULL,'Static memory (SRAM) (NEW)',NULL,123,124,1171,1,1), +(1175,3,'B.3.2','Design Styles (D.4.2)','B.3.2',126,143,1048,1,1), +(1176,3,NULL,'Associative memories',NULL,127,128,1175,1,1), +(1177,3,NULL,'Cache memories',NULL,129,130,1175,1,1), +(1178,3,NULL,'Interleaved memories**',NULL,131,132,1175,1,1), +(1179,3,NULL,'Mass storage (e.g., magnetic, optical, RAID) (REVISED)',NULL,133,134,1175,1,1), +(1180,3,NULL,'Primary memory',NULL,135,136,1175,1,1), +(1181,3,NULL,'Sequential-access memory**',NULL,137,138,1175,1,1), +(1182,3,NULL,'Shared memory',NULL,139,140,1175,1,1), +(1183,3,NULL,'Virtual memory',NULL,141,142,1175,1,1), +(1184,3,'B.3.3','Performance Analysis and Design Aids** (B.8, C.4)','B.3.3',144,151,1048,1,1), +(1185,3,NULL,'Formal models**',NULL,145,146,1184,1,1), +(1186,3,NULL,'Simulation**',NULL,147,148,1184,1,1), +(1187,3,NULL,'Worst-case analysis**',NULL,149,150,1184,1,1), +(1188,3,'B.3.4','Reliability, Testing, and Fault-Tolerance** (B.8)','B.3.4',152,161,1048,1,1), +(1189,3,NULL,'Diagnostics**',NULL,153,154,1188,1,1), +(1190,3,NULL,'Error-checking**',NULL,155,156,1188,1,1), +(1191,3,NULL,'Redundant design**',NULL,157,158,1188,1,1), +(1192,3,NULL,'Test generation**',NULL,159,160,1188,1,1), +(1193,3,'B.3.m','Miscellaneous','B.3.m',162,163,1048,1,1), +(1194,3,'B.4.0','General','B.4.0',166,167,1049,1,1), +(1195,3,'B.4.1','Data Communications Devices','B.4.1',168,175,1049,1,1), +(1196,3,NULL,'Processors**',NULL,169,170,1195,1,1), +(1197,3,NULL,'Receivers (e.g., voice, data, image)**',NULL,171,172,1195,1,1), +(1198,3,NULL,'Transmitters**',NULL,173,174,1195,1,1), +(1199,3,'B.4.2','Input/Output Devices','B.4.2',176,185,1049,1,1), +(1200,3,NULL,'Channels and controllers',NULL,177,178,1199,1,1), +(1201,3,NULL,'Data terminals and printers',NULL,179,180,1199,1,1), +(1202,3,NULL,'Image display',NULL,181,182,1199,1,1), +(1203,3,NULL,'Voice',NULL,183,184,1199,1,1), +(1204,3,'B.4.3','Interconnections (Subsystems)','B.4.3',186,199,1049,1,1), +(1205,3,NULL,'Asynchronous/synchronous operation',NULL,187,188,1204,1,1), +(1206,3,NULL,'Fiber optics',NULL,189,190,1204,1,1), +(1207,3,NULL,'Interfaces',NULL,191,192,1204,1,1), +(1208,3,NULL,'Parallel I/O (NEW)',NULL,193,194,1204,1,1), +(1209,3,NULL,'Physical structures (e.g., backplanes, cables, chip carriers)**',NULL,195,196,1204,1,1), +(1210,3,NULL,'Topology (e.g., bus, point-to-point)',NULL,197,198,1204,1,1), +(1211,3,'B.4.4','Performance Analysis and Design Aids** (B.8)','B.4.4',200,209,1049,1,1), +(1212,3,NULL,'Formal models**',NULL,201,202,1211,1,1), +(1213,3,NULL,'Simulation**',NULL,203,204,1211,1,1), +(1214,3,NULL,'Verification**',NULL,205,206,1211,1,1), +(1215,3,NULL,'Worst-case analysis**',NULL,207,208,1211,1,1), +(1216,3,'B.4.5','Reliability, Testing, and Fault-Tolerance** (B.8)','B.4.5',210,223,1049,1,1), +(1217,3,NULL,'Built-in tests**',NULL,211,212,1216,1,1), +(1218,3,NULL,'Diagnostics**',NULL,213,214,1216,1,1), +(1219,3,NULL,'Error-checking**',NULL,215,216,1216,1,1), +(1220,3,NULL,'Hardware reliability**',NULL,217,218,1216,1,1), +(1221,3,NULL,'Redundant design**',NULL,219,220,1216,1,1), +(1222,3,NULL,'Test generation**',NULL,221,222,1216,1,1), +(1223,3,'B.4.m','Miscellaneous','B.4.m',224,225,1049,1,1), +(1224,3,'B.5.0','General','B.5.0',228,229,1050,1,1), +(1225,3,'B.5.1','Design','B.5.1',230,241,1050,1,1), +(1226,3,NULL,'Arithmetic and logic units',NULL,231,232,1225,1,1), +(1227,3,NULL,'Control design',NULL,233,234,1225,1,1), +(1228,3,NULL,'Data-path design',NULL,235,236,1225,1,1), +(1229,3,NULL,'Memory design',NULL,237,238,1225,1,1), +(1230,3,NULL,'Styles (e.g., parallel, pipeline, special-purpose)',NULL,239,240,1225,1,1), +(1231,3,'B.5.2','Design Aids','B.5.2',242,253,1050,1,1), +(1232,3,NULL,'Automatic synthesis',NULL,243,244,1231,1,1), +(1233,3,NULL,'Hardware description languages',NULL,245,246,1231,1,1), +(1234,3,NULL,'Optimization',NULL,247,248,1231,1,1), +(1235,3,NULL,'Simulation',NULL,249,250,1231,1,1), +(1236,3,NULL,'Verification',NULL,251,252,1231,1,1), +(1237,3,'B.5.3','Reliability and Testing** (B.8)','B.5.3',254,265,1050,1,1), +(1238,3,NULL,'Built-in tests**',NULL,255,256,1237,1,1), +(1239,3,NULL,'Error-checking**',NULL,257,258,1237,1,1), +(1240,3,NULL,'Redundant design**',NULL,259,260,1237,1,1), +(1241,3,NULL,'Test generation**',NULL,261,262,1237,1,1), +(1242,3,NULL,'Testability**',NULL,263,264,1237,1,1), +(1243,3,'B.5.m','Miscellaneous','B.5.m',266,267,1050,1,1), +(1244,3,'B.6.0','General','B.6.0',270,271,1051,1,1), +(1245,3,'B.6.1','Design Styles','B.6.1',272,287,1051,1,1), +(1246,3,NULL,'Cellular arrays and automata',NULL,273,274,1245,1,1), +(1247,3,NULL,'Combinational logic',NULL,275,276,1245,1,1), +(1248,3,NULL,'Logic arrays',NULL,277,278,1245,1,1), +(1249,3,NULL,'Memory control and access**',NULL,279,280,1245,1,1), +(1250,3,NULL,'Memory used as logic**',NULL,281,282,1245,1,1), +(1251,3,NULL,'Parallel circuits',NULL,283,284,1245,1,1), +(1252,3,NULL,'Sequential circuits',NULL,285,286,1245,1,1), +(1253,3,'B.6.2','Reliability and Testing** (B.8)','B.6.2',288,299,1051,1,1), +(1254,3,NULL,'Built-in tests**',NULL,289,290,1253,1,1), +(1255,3,NULL,'Error-checking**',NULL,291,292,1253,1,1), +(1256,3,NULL,'Redundant design**',NULL,293,294,1253,1,1), +(1257,3,NULL,'Test generation**',NULL,295,296,1253,1,1), +(1258,3,NULL,'Testability**',NULL,297,298,1253,1,1), +(1259,3,'B.6.3','Design Aids','B.6.3',300,313,1051,1,1), +(1260,3,NULL,'Automatic synthesis',NULL,301,302,1259,1,1), +(1261,3,NULL,'Hardware description languages',NULL,303,304,1259,1,1), +(1262,3,NULL,'Optimization',NULL,305,306,1259,1,1), +(1263,3,NULL,'Simulation',NULL,307,308,1259,1,1), +(1264,3,NULL,'Switching theory',NULL,309,310,1259,1,1), +(1265,3,NULL,'Verification',NULL,311,312,1259,1,1), +(1266,3,'B.6.m','Miscellaneous','B.6.m',314,315,1051,1,1), +(1267,3,'B.7.0','General','B.7.0',318,319,1052,1,1), +(1268,3,'B.7.1','Types and Design Styles','B.7.1',320,337,1052,1,1), +(1269,3,NULL,'Advanced technologies',NULL,321,322,1268,1,1), +(1270,3,NULL,'Algorithms implemented in hardware',NULL,323,324,1268,1,1), +(1271,3,NULL,'Gate arrays',NULL,325,326,1268,1,1), +(1272,3,NULL,'Input/output circuits',NULL,327,328,1268,1,1), +(1273,3,NULL,'Memory technologies',NULL,329,330,1268,1,1), +(1274,3,NULL,'Microprocessors and microcomputers',NULL,331,332,1268,1,1), +(1275,3,NULL,'Standard cells**',NULL,333,334,1268,1,1), +(1276,3,NULL,'VLSI (very large scale integration)',NULL,335,336,1268,1,1), +(1277,3,'B.7.2','Design Aids','B.7.2',338,349,1052,1,1), +(1278,3,NULL,'Graphics',NULL,339,340,1277,1,1), +(1279,3,NULL,'Layout',NULL,341,342,1277,1,1), +(1280,3,NULL,'Placement and routing',NULL,343,344,1277,1,1), +(1281,3,NULL,'Simulation',NULL,345,346,1277,1,1), +(1282,3,NULL,'Verification',NULL,347,348,1277,1,1), +(1283,3,'B.7.3','Reliability and Testing** (B.8)','B.7.3',350,361,1052,1,1), +(1284,3,NULL,'Built-in tests**',NULL,351,352,1283,1,1), +(1285,3,NULL,'Error-checking**',NULL,353,354,1283,1,1), +(1286,3,NULL,'Redundant design**',NULL,355,356,1283,1,1), +(1287,3,NULL,'Test generation**',NULL,357,358,1283,1,1), +(1288,3,NULL,'Testability**',NULL,359,360,1283,1,1), +(1289,3,'B.7.m','Miscellaneous','B.7.m',362,363,1052,1,1), +(1290,3,'B.8.0','General (NEW)','B.8.0',366,367,1053,1,1), +(1291,3,'B.8.1','Reliability, Testing, and Fault-Tolerance (NEW)','B.8.1',368,369,1053,1,1), +(1292,3,'B.8.2','Performance Analysis and Design Aids (NEW)','B.8.2',370,371,1053,1,1), +(1293,3,'B.8.m','Miscellaneous (NEW)','B.8.m',372,373,1053,1,1), +(1294,3,NULL,'Design management',NULL,376,377,1054,1,1), +(1295,3,'C.1.0','General','C.1.0',384,385,1056,1,1), +(1296,3,'C.1.1','Single Data Stream Architectures','C.1.1',386,397,1056,1,1), +(1297,3,NULL,'Multiple-instruction-stream, single-data-stream processors (MISD)**',NULL,387,388,1296,1,1), +(1298,3,NULL,'Pipeline processors**',NULL,389,390,1296,1,1), +(1299,3,NULL,'RISC/CISC, VLIW architectures (NEW)',NULL,391,392,1296,1,1), +(1300,3,NULL,'Single-instruction-stream, single-data-stream processors (SISD)**',NULL,393,394,1296,1,1), +(1301,3,NULL,'Von Neumann architectures**',NULL,395,396,1296,1,1), +(1302,3,'C.1.2','Multiple Data Stream Architectures (Multiprocessors)','C.1.2',398,415,1056,1,1), +(1303,3,NULL,'Array and vector processors',NULL,399,400,1302,1,1), +(1304,3,NULL,'Associative processors',NULL,401,402,1302,1,1), +(1305,3,NULL,'Connection machines',NULL,403,404,1302,1,1), +(1306,3,NULL,'Interconnection architectures (e.g., common bus, multiport memory, crossbar switch)',NULL,405,406,1302,1,1), +(1307,3,NULL,'Multiple-instruction-stream, multiple-data-stream processors (MIMD)',NULL,407,408,1302,1,1), +(1308,3,NULL,'Parallel processors**',NULL,409,410,1302,1,1), +(1309,3,NULL,'Pipeline processors**',NULL,411,412,1302,1,1), +(1310,3,NULL,'Single-instruction-stream, multiple-data-stream processors (SIMD)',NULL,413,414,1302,1,1), +(1311,3,'C.1.3','Other Architecture Styles','C.1.3',416,437,1056,1,1), +(1312,3,NULL,'Adaptable architectures',NULL,417,418,1311,1,1), +(1313,3,NULL,'Analog computers (NEW)',NULL,419,420,1311,1,1), +(1314,3,NULL,'Capability architectures**',NULL,421,422,1311,1,1), +(1315,3,NULL,'Cellular architecture (e.g., mobile) (REVISED)',NULL,423,424,1311,1,1), +(1316,3,NULL,'Data-flow architectures',NULL,425,426,1311,1,1), +(1317,3,NULL,'Heterogeneous (hybrid) systems (NEW)',NULL,427,428,1311,1,1), +(1318,3,NULL,'High-level language architectures**',NULL,429,430,1311,1,1), +(1319,3,NULL,'Neural nets',NULL,431,432,1311,1,1), +(1320,3,NULL,'Pipeline processors (NEW)',NULL,433,434,1311,1,1), +(1321,3,NULL,'Stack-oriented processors**',NULL,435,436,1311,1,1), +(1322,3,'C.1.4','Parallel Architectures (NEW)','C.1.4',438,443,1056,1,1), +(1323,3,NULL,'Distributed architectures (NEW)',NULL,439,440,1322,1,1), +(1324,3,NULL,'Mobile processors (NEW)',NULL,441,442,1322,1,1), +(1325,3,'C.1.m','Miscellaneous','C.1.m',444,449,1056,1,1), +(1326,3,NULL,'Analog computers**',NULL,445,446,1325,1,1), +(1327,3,NULL,'Hybrid systems**',NULL,447,448,1325,1,1), +(1328,3,'C.2.0','General','C.2.0',452,459,1057,1,1), +(1329,3,NULL,'Data communications',NULL,453,454,1328,1,1), +(1330,3,NULL,'Open Systems Interconnection reference model (OSI)',NULL,455,456,1328,1,1), +(1331,3,NULL,'Security and protection (e.g., firewalls) (REVISED)',NULL,457,458,1328,1,1), +(1332,3,'C.2.1','Network Architecture and Design','C.2.1',460,483,1057,1,1), +(1333,3,NULL,'Asynchronous Transfer Mode (ATM) (NEW)',NULL,461,462,1332,1,1), +(1334,3,NULL,'Centralized networks**',NULL,463,464,1332,1,1), +(1335,3,NULL,'Circuit-switching networks',NULL,465,466,1332,1,1), +(1336,3,NULL,'Distributed networks',NULL,467,468,1332,1,1), +(1337,3,NULL,'Frame relay networks (NEW)',NULL,469,470,1332,1,1), +(1338,3,NULL,'ISDN (Integrated Services Digital Network)',NULL,471,472,1332,1,1), +(1339,3,NULL,'Network communications',NULL,473,474,1332,1,1), +(1340,3,NULL,'Network topology',NULL,475,476,1332,1,1), +(1341,3,NULL,'Packet-switching networks (REVISED)',NULL,477,478,1332,1,1), +(1342,3,NULL,'Store and forward networks',NULL,479,480,1332,1,1), +(1343,3,NULL,'Wireless communication (NEW)',NULL,481,482,1332,1,1), +(1344,3,'C.2.2','Network Protocols','C.2.2',484,493,1057,1,1), +(1345,3,NULL,'Applications (SMTP, FTP, etc.) (NEW)',NULL,485,486,1344,1,1), +(1346,3,NULL,'Protocol architecture (OSI model) (REVISED)',NULL,487,488,1344,1,1), +(1347,3,NULL,'Protocol verification',NULL,489,490,1344,1,1), +(1348,3,NULL,'Routing protocols (NEW)',NULL,491,492,1344,1,1), +(1349,3,'C.2.3','Network Operations','C.2.3',494,501,1057,1,1), +(1350,3,NULL,'Network management',NULL,495,496,1349,1,1), +(1351,3,NULL,'Network monitoring',NULL,497,498,1349,1,1), +(1352,3,NULL,'Public networks',NULL,499,500,1349,1,1), +(1353,3,'C.2.4','Distributed Systems','C.2.4',502,511,1057,1,1), +(1354,3,NULL,'Client/server (NEW)',NULL,503,504,1353,1,1), +(1355,3,NULL,'Distributed applications',NULL,505,506,1353,1,1), +(1356,3,NULL,'Distributed databases',NULL,507,508,1353,1,1), +(1357,3,NULL,'Network operating systems',NULL,509,510,1353,1,1), +(1358,3,'C.2.5','Local and Wide-Area Networks (REVISED)','C.2.5',512,525,1057,1,1), +(1359,3,NULL,'Access schemes',NULL,513,514,1358,1,1), +(1360,3,NULL,'Buses',NULL,515,516,1358,1,1), +(1361,3,NULL,'Ethernet (e.g., CSMA/CD) (NEW)',NULL,517,518,1358,1,1), +(1362,3,NULL,'High-speed (e.g., FDDI, fiber channel, ATM) (NEW)',NULL,519,520,1358,1,1), +(1363,3,NULL,'Internet (e.g., TCP/IP) (NEW)',NULL,521,522,1358,1,1), +(1364,3,NULL,'Token rings (REVISED)',NULL,523,524,1358,1,1), +(1365,3,'C.2.6','Internetworking (C.2.2) (NEW)','C.2.6',526,531,1057,1,1), +(1366,3,NULL,'Routers (NEW)',NULL,527,528,1365,1,1), +(1367,3,NULL,'Standards (e.g., TCP/IP) (NEW)',NULL,529,530,1365,1,1), +(1368,3,'C.2.m','Miscellaneous','C.2.m',532,533,1057,1,1), +(1369,3,'C.5.0','General','C.5.0',540,541,1060,1,1), +(1370,3,'C.5.1','Large and Medium Mainframe Computers','C.5.1',542,545,1060,1,1), +(1371,3,NULL,'Super (very large) computers',NULL,543,544,1370,1,1), +(1372,3,'C.5.2','Minicomputers**','C.5.2',546,547,1060,1,1), +(1373,3,'C.5.3','Microcomputers','C.5.3',548,557,1060,1,1), +(1374,3,NULL,'Microprocessors',NULL,549,550,1373,1,1), +(1375,3,NULL,'Personal computers',NULL,551,552,1373,1,1), +(1376,3,NULL,'Portable devices (e.g., laptops, personal digital assistants) (NEW)',NULL,553,554,1373,1,1), +(1377,3,NULL,'Workstations',NULL,555,556,1373,1,1), +(1378,3,'C.5.4','VLSI Systems','C.5.4',558,559,1060,1,1), +(1379,3,'C.5.5','Servers (NEW)','C.5.5',560,561,1060,1,1), +(1380,3,'C.5.m','Miscellaneous','C.5.m',562,563,1060,1,1), +(1381,3,'D.1.0','General','D.1.0',572,573,1063,1,1), +(1382,3,'D.1.1','Applicative (Functional) Programming','D.1.1',574,575,1063,1,1), +(1383,3,'D.1.2','Automatic Programming (I.2.2)','D.1.2',576,577,1063,1,1), +(1384,3,'D.1.3','Concurrent Programming','D.1.3',578,583,1063,1,1), +(1385,3,NULL,'Distributed programming',NULL,579,580,1384,1,1), +(1386,3,NULL,'Parallel programming',NULL,581,582,1384,1,1), +(1387,3,'D.1.4','Sequential Programming','D.1.4',584,585,1063,1,1), +(1388,3,'D.1.5','Object-oriented Programming','D.1.5',586,587,1063,1,1), +(1389,3,'D.1.6','Logic Programming','D.1.6',588,589,1063,1,1), +(1390,3,'D.1.7','Visual Programming','D.1.7',590,591,1063,1,1), +(1391,3,'D.1.m','Miscellaneous','D.1.m',592,593,1063,1,1), +(1392,3,'D.2.0','General (K.5.1)','D.2.0',596,601,1064,1,1), +(1393,3,NULL,'Protection mechanisms',NULL,597,598,1392,1,1), +(1394,3,NULL,'Standards',NULL,599,600,1392,1,1), +(1395,3,'D.2.1','Requirements/Specifications (D.3.1)','D.2.1',602,611,1064,1,1), +(1396,3,NULL,'Elicitation methods (e.g., rapid prototyping, interviews, JAD) (NEW)',NULL,603,604,1395,1,1), +(1397,3,NULL,'Languages',NULL,605,606,1395,1,1), +(1398,3,NULL,'Methodologies (e.g., object-oriented, structured) (REVISED)',NULL,607,608,1395,1,1), +(1399,3,NULL,'Tools',NULL,609,610,1395,1,1), +(1400,3,'D.2.2','Design Tools and Techniques (REVISED)','D.2.2',612,639,1064,1,1), +(1401,3,NULL,'Computer-aided software engineering (CASE)',NULL,613,614,1400,1,1), +(1402,3,NULL,'Decision tables',NULL,615,616,1400,1,1), +(1403,3,NULL,'Evolutionary prototyping (NEW)',NULL,617,618,1400,1,1), +(1404,3,NULL,'Flow charts',NULL,619,620,1400,1,1), +(1405,3,NULL,'Modules and interfaces',NULL,621,622,1400,1,1), +(1406,3,NULL,'Object-oriented design methods (NEW)',NULL,623,624,1400,1,1), +(1407,3,NULL,'Petri nets',NULL,625,626,1400,1,1), +(1408,3,NULL,'Programmer workbench**',NULL,627,628,1400,1,1), +(1409,3,NULL,'Software libraries',NULL,629,630,1400,1,1), +(1410,3,NULL,'State diagrams (NEW)',NULL,631,632,1400,1,1), +(1411,3,NULL,'Structured programming**',NULL,633,634,1400,1,1), +(1412,3,NULL,'Top-down programming**',NULL,635,636,1400,1,1), +(1413,3,NULL,'User interfaces',NULL,637,638,1400,1,1), +(1414,3,'D.2.3','Coding Tools and Techniques (REVISED)','D.2.3',640,655,1064,1,1), +(1415,3,NULL,'Object-oriented programming (NEW)',NULL,641,642,1414,1,1), +(1416,3,NULL,'Pretty printers',NULL,643,644,1414,1,1), +(1417,3,NULL,'Program editors',NULL,645,646,1414,1,1), +(1418,3,NULL,'Reentrant code**',NULL,647,648,1414,1,1), +(1419,3,NULL,'Standards',NULL,649,650,1414,1,1), +(1420,3,NULL,'Structured programming (NEW)',NULL,651,652,1414,1,1), +(1421,3,NULL,'Top-down programming (NEW)',NULL,653,654,1414,1,1), +(1422,3,'D.2.4','Software/Program Verification (F.3.1) (REVISED)','D.2.4',656,675,1064,1,1), +(1423,3,NULL,'Assertion checkers',NULL,657,658,1422,1,1), +(1424,3,NULL,'Class invariants (NEW)',NULL,659,660,1422,1,1), +(1425,3,NULL,'Correctness proofs',NULL,661,662,1422,1,1), +(1426,3,NULL,'Formal methods (NEW)',NULL,663,664,1422,1,1), +(1427,3,NULL,'Model checking (NEW)',NULL,665,666,1422,1,1), +(1428,3,NULL,'Programming by contract (NEW)',NULL,667,668,1422,1,1), +(1429,3,NULL,'Reliability',NULL,669,670,1422,1,1), +(1430,3,NULL,'Statistical methods (NEW)',NULL,671,672,1422,1,1), +(1431,3,NULL,'Validation',NULL,673,674,1422,1,1), +(1432,3,'D.2.5','Testing and Debugging','D.2.5',676,697,1064,1,1), +(1433,3,NULL,'Code inspections and walk-throughs',NULL,677,678,1432,1,1), +(1434,3,NULL,'Debugging aids',NULL,679,680,1432,1,1), +(1435,3,NULL,'Diagnostics',NULL,681,682,1432,1,1), +(1436,3,NULL,'Distributed debugging (NEW)',NULL,683,684,1432,1,1), +(1437,3,NULL,'Dumps**',NULL,685,686,1432,1,1), +(1438,3,NULL,'Error handling and recovery',NULL,687,688,1432,1,1), +(1439,3,NULL,'Monitors',NULL,689,690,1432,1,1), +(1440,3,NULL,'Symbolic execution',NULL,691,692,1432,1,1), +(1441,3,NULL,'Testing tools (e.g., data generators, coverage testing) (REVISED)',NULL,693,694,1432,1,1), +(1442,3,NULL,'Tracing',NULL,695,696,1432,1,1), +(1443,3,'D.2.6','Programming Environments','D.2.6',698,707,1064,1,1), +(1444,3,NULL,'Graphical environments (NEW)',NULL,699,700,1443,1,1), +(1445,3,NULL,'Integrated environments (NEW)',NULL,701,702,1443,1,1), +(1446,3,NULL,'Interactive environments (REVISED)',NULL,703,704,1443,1,1), +(1447,3,NULL,'Programmer workbench (NEW)',NULL,705,706,1443,1,1), +(1448,3,'D.2.7','Distribution, Maintenance, and Enhancement (REVISED)','D.2.7',708,723,1064,1,1), +(1449,3,NULL,'Corrections**',NULL,709,710,1448,1,1), +(1450,3,NULL,'Documentation',NULL,711,712,1448,1,1), +(1451,3,NULL,'Enhancement**',NULL,713,714,1448,1,1), +(1452,3,NULL,'Extensibility**',NULL,715,716,1448,1,1), +(1453,3,NULL,'Portability',NULL,717,718,1448,1,1), +(1454,3,NULL,'Restructuring, reverse engineering, and reengineering (REVISED)',NULL,719,720,1448,1,1), +(1455,3,NULL,'Version control',NULL,721,722,1448,1,1), +(1456,3,'D.2.8','Metrics (D.4.8)','D.2.8',724,735,1064,1,1), +(1457,3,NULL,'Complexity measures',NULL,725,726,1456,1,1), +(1458,3,NULL,'Performance measures',NULL,727,728,1456,1,1), +(1459,3,NULL,'Process metrics (NEW)',NULL,729,730,1456,1,1), +(1460,3,NULL,'Product metrics (NEW)',NULL,731,732,1456,1,1), +(1461,3,NULL,'Software science**',NULL,733,734,1456,1,1), +(1462,3,'D.2.9','Management (K.6.3, K.6.4)','D.2.9',736,755,1064,1,1), +(1463,3,NULL,'Copyrights**',NULL,737,738,1462,1,1), +(1464,3,NULL,'Cost estimation',NULL,739,740,1462,1,1), +(1465,3,NULL,'Life cycle',NULL,741,742,1462,1,1), +(1466,3,NULL,'Productivity',NULL,743,744,1462,1,1), +(1467,3,NULL,'Programming teams',NULL,745,746,1462,1,1), +(1468,3,NULL,'Software configuration management',NULL,747,748,1462,1,1), +(1469,3,NULL,'Software process models (e.g., CMM, ISO, PSP) (NEW)',NULL,749,750,1462,1,1), +(1470,3,NULL,'Software quality assurance (SQA)',NULL,751,752,1462,1,1), +(1471,3,NULL,'Time estimation',NULL,753,754,1462,1,1), +(1472,3,'D.2.10','Design** (D.2.2)','D.2.10',756,761,1064,1,1), +(1473,3,NULL,'Methodologies**',NULL,757,758,1472,1,1), +(1474,3,NULL,'Representation**',NULL,759,760,1472,1,1), +(1475,3,'D.2.11','Software Architectures (NEW)','D.2.11',762,773,1064,1,1), +(1476,3,NULL,'Data abstraction (NEW)',NULL,763,764,1475,1,1), +(1477,3,NULL,'Domain-specific architectures (NEW)',NULL,765,766,1475,1,1), +(1478,3,NULL,'Information hiding (NEW)',NULL,767,768,1475,1,1), +(1479,3,NULL,'Languages (e.g., description, interconnection, definition) (NEW)',NULL,769,770,1475,1,1), +(1480,3,NULL,'Patterns (e.g., client/server, pipeline, blackboard) (NEW)',NULL,771,772,1475,1,1), +(1481,3,'D.2.12','Interoperability (NEW)','D.2.12',774,781,1064,1,1), +(1482,3,NULL,'Data mapping (NEW)',NULL,775,776,1481,1,1), +(1483,3,NULL,'Distributed objects (NEW)',NULL,777,778,1481,1,1), +(1484,3,NULL,'Interface definition languages (NEW)',NULL,779,780,1481,1,1), +(1485,3,'D.2.13','Reusable Software (NEW)','D.2.13',782,789,1064,1,1), +(1486,3,NULL,'Domain engineering (NEW)',NULL,783,784,1485,1,1), +(1487,3,NULL,'Reusable libraries (NEW)',NULL,785,786,1485,1,1), +(1488,3,NULL,'Reuse models (NEW)',NULL,787,788,1485,1,1), +(1489,3,'D.2.m','Miscellaneous','D.2.m',790,795,1064,1,1), +(1490,3,NULL,'Rapid prototyping**',NULL,791,792,1489,1,1), +(1491,3,NULL,'Reusable software**',NULL,793,794,1489,1,1), +(1492,3,'D.3.0','General','D.3.0',798,801,1065,1,1), +(1493,3,NULL,'Standards',NULL,799,800,1492,1,1), +(1494,3,'D.3.1','Formal Definitions and Theory (D.2.1, F.3.1-2, F.4.2-3)','D.3.1',802,807,1065,1,1), +(1495,3,NULL,'Semantics',NULL,803,804,1494,1,1), +(1496,3,NULL,'Syntax',NULL,805,806,1494,1,1), +(1497,3,'D.3.2','Language Classifications','D.3.2',808,837,1065,1,1), +(1498,3,NULL,'Applicative (functional) languages (REVISED)',NULL,809,810,1497,1,1), +(1499,3,NULL,'Concurrent, distributed, and parallel languages',NULL,811,812,1497,1,1), +(1500,3,NULL,'Constraint and logic languages (NEW)',NULL,813,814,1497,1,1), +(1501,3,NULL,'Data-flow languages',NULL,815,816,1497,1,1), +(1502,3,NULL,'Design languages',NULL,817,818,1497,1,1), +(1503,3,NULL,'Extensible languages',NULL,819,820,1497,1,1), +(1504,3,NULL,'Macro and assembly languages',NULL,821,822,1497,1,1), +(1505,3,NULL,'Microprogramming languages**',NULL,823,824,1497,1,1), +(1506,3,NULL,'Multiparadigm languages (NEW)',NULL,825,826,1497,1,1), +(1507,3,NULL,'Nondeterministic languages**',NULL,827,828,1497,1,1), +(1508,3,NULL,'Nonprocedural languages**',NULL,829,830,1497,1,1), +(1509,3,NULL,'Object-oriented languages',NULL,831,832,1497,1,1), +(1510,3,NULL,'Specialized application languages',NULL,833,834,1497,1,1), +(1511,3,NULL,'Very high-level languages',NULL,835,836,1497,1,1), +(1512,3,'D.3.3','Language Constructs and Features (E.2)','D.3.3',838,871,1065,1,1), +(1513,3,NULL,'Abstract data types',NULL,839,840,1512,1,1), +(1514,3,NULL,'Classes and objects (NEW)',NULL,841,842,1512,1,1), +(1515,3,NULL,'Concurrent programming structures',NULL,843,844,1512,1,1), +(1516,3,NULL,'Constraints (NEW)',NULL,845,846,1512,1,1), +(1517,3,NULL,'Control structures',NULL,847,848,1512,1,1), +(1518,3,NULL,'Coroutines',NULL,849,850,1512,1,1), +(1519,3,NULL,'Data types and structures',NULL,851,852,1512,1,1), +(1520,3,NULL,'Dynamic storage management',NULL,853,854,1512,1,1), +(1521,3,NULL,'Frameworks (NEW)',NULL,855,856,1512,1,1), +(1522,3,NULL,'Inheritance (NEW)',NULL,857,858,1512,1,1), +(1523,3,NULL,'Input/output',NULL,859,860,1512,1,1), +(1524,3,NULL,'Modules, packages',NULL,861,862,1512,1,1), +(1525,3,NULL,'Patterns (NEW)',NULL,863,864,1512,1,1), +(1526,3,NULL,'Polymorphism (NEW)',NULL,865,866,1512,1,1), +(1527,3,NULL,'Procedures, functions, and subroutines',NULL,867,868,1512,1,1), +(1528,3,NULL,'Recursion',NULL,869,870,1512,1,1), +(1529,3,'D.3.4','Processors','D.3.4',872,897,1065,1,1), +(1530,3,NULL,'Code generation',NULL,873,874,1529,1,1), +(1531,3,NULL,'Compilers',NULL,875,876,1529,1,1), +(1532,3,NULL,'Debuggers (NEW)',NULL,877,878,1529,1,1), +(1533,3,NULL,'Incremental compilers (NEW)',NULL,879,880,1529,1,1), +(1534,3,NULL,'Interpreters',NULL,881,882,1529,1,1), +(1535,3,NULL,'Memory management (garbage collection) (NEW)',NULL,883,884,1529,1,1), +(1536,3,NULL,'Optimization',NULL,885,886,1529,1,1), +(1537,3,NULL,'Parsing',NULL,887,888,1529,1,1), +(1538,3,NULL,'Preprocessors',NULL,889,890,1529,1,1), +(1539,3,NULL,'Retargetable compilers (NEW)',NULL,891,892,1529,1,1), +(1540,3,NULL,'Run-time environments',NULL,893,894,1529,1,1), +(1541,3,NULL,'Translator writing systems and compiler generators',NULL,895,896,1529,1,1), +(1542,3,'D.3.m','Miscellaneous','D.3.m',898,899,1065,1,1), +(1543,3,'D.4.0','General','D.4.0',902,903,1066,1,1), +(1544,3,'D.4.1','Process Management','D.4.1',904,919,1066,1,1), +(1545,3,NULL,'Concurrency',NULL,905,906,1544,1,1), +(1546,3,NULL,'Deadlocks',NULL,907,908,1544,1,1), +(1547,3,NULL,'Multiprocessing/multiprogramming/multitasking (REVISED)',NULL,909,910,1544,1,1), +(1548,3,NULL,'Mutual exclusion',NULL,911,912,1544,1,1), +(1549,3,NULL,'Scheduling',NULL,913,914,1544,1,1), +(1550,3,NULL,'Synchronization',NULL,915,916,1544,1,1), +(1551,3,NULL,'Threads (NEW)',NULL,917,918,1544,1,1), +(1552,3,'D.4.2','Storage Management','D.4.2',920,939,1066,1,1), +(1553,3,NULL,'Allocation/deallocation strategies',NULL,921,922,1552,1,1), +(1554,3,NULL,'Distributed memories',NULL,923,924,1552,1,1), +(1555,3,NULL,'Garbage collection (NEW)',NULL,925,926,1552,1,1), +(1556,3,NULL,'Main memory',NULL,927,928,1552,1,1), +(1557,3,NULL,'Secondary storage',NULL,929,930,1552,1,1), +(1558,3,NULL,'Segmentation**',NULL,931,932,1552,1,1), +(1559,3,NULL,'Storage hierarchies',NULL,933,934,1552,1,1), +(1560,3,NULL,'Swapping**',NULL,935,936,1552,1,1), +(1561,3,NULL,'Virtual memory',NULL,937,938,1552,1,1), +(1562,3,'D.4.3','File Systems Management (E.5)','D.4.3',940,951,1066,1,1), +(1563,3,NULL,'Access methods',NULL,941,942,1562,1,1), +(1564,3,NULL,'Directory structures',NULL,943,944,1562,1,1), +(1565,3,NULL,'Distributed file systems',NULL,945,946,1562,1,1), +(1566,3,NULL,'File organization',NULL,947,948,1562,1,1), +(1567,3,NULL,'Maintenance**',NULL,949,950,1562,1,1), +(1568,3,'D.4.4','Communications Management (C.2)','D.4.4',952,963,1066,1,1), +(1569,3,NULL,'Buffering',NULL,953,954,1568,1,1), +(1570,3,NULL,'Input/output',NULL,955,956,1568,1,1), +(1571,3,NULL,'Message sending',NULL,957,958,1568,1,1), +(1572,3,NULL,'Network communication',NULL,959,960,1568,1,1), +(1573,3,NULL,'Terminal management**',NULL,961,962,1568,1,1), +(1574,3,'D.4.5','Reliability','D.4.5',964,973,1066,1,1), +(1575,3,NULL,'Backup procedures',NULL,965,966,1574,1,1), +(1576,3,NULL,'Checkpoint/restart',NULL,967,968,1574,1,1), +(1577,3,NULL,'Fault-tolerance',NULL,969,970,1574,1,1), +(1578,3,NULL,'Verification',NULL,971,972,1574,1,1), +(1579,3,'D.4.6','Security and Protection (K.6.5)','D.4.6',974,989,1066,1,1), +(1580,3,NULL,'Access controls',NULL,975,976,1579,1,1), +(1581,3,NULL,'Authentication',NULL,977,978,1579,1,1), +(1582,3,NULL,'Cryptographic controls',NULL,979,980,1579,1,1), +(1583,3,NULL,'Information flow controls',NULL,981,982,1579,1,1), +(1584,3,NULL,'Invasive software (e.g., viruses, worms, Trojan horses)',NULL,983,984,1579,1,1), +(1585,3,NULL,'Security kernels**',NULL,985,986,1579,1,1), +(1586,3,NULL,'Verification**',NULL,987,988,1579,1,1), +(1587,3,'D.4.7','Organization and Design','D.4.7',990,1001,1066,1,1), +(1588,3,NULL,'Batch processing systems**',NULL,991,992,1587,1,1), +(1589,3,NULL,'Distributed systems',NULL,993,994,1587,1,1), +(1590,3,NULL,'Hierarchical design**',NULL,995,996,1587,1,1), +(1591,3,NULL,'Interactive systems',NULL,997,998,1587,1,1), +(1592,3,NULL,'Real-time systems and embedded systems',NULL,999,1000,1587,1,1), +(1593,3,'D.4.8','Performance (C.4, D.2.8, I.6)','D.4.8',1002,1017,1066,1,1), +(1594,3,NULL,'Measurements',NULL,1003,1004,1593,1,1), +(1595,3,NULL,'Modeling and prediction',NULL,1005,1006,1593,1,1), +(1596,3,NULL,'Monitors',NULL,1007,1008,1593,1,1), +(1597,3,NULL,'Operational analysis',NULL,1009,1010,1593,1,1), +(1598,3,NULL,'Queueing theory',NULL,1011,1012,1593,1,1), +(1599,3,NULL,'Simulation',NULL,1013,1014,1593,1,1), +(1600,3,NULL,'Stochastic analysis',NULL,1015,1016,1593,1,1), +(1601,3,'D.4.9','Systems Programs and Utilities','D.4.9',1018,1027,1066,1,1), +(1602,3,NULL,'Command and control languages',NULL,1019,1020,1601,1,1), +(1603,3,NULL,'Linkers**',NULL,1021,1022,1601,1,1), +(1604,3,NULL,'Loaders**',NULL,1023,1024,1601,1,1), +(1605,3,NULL,'Window managers',NULL,1025,1026,1601,1,1), +(1606,3,'D.4.m','Miscellaneous','D.4.m',1028,1029,1066,1,1), +(1607,3,NULL,'Software psychology**',NULL,1032,1033,1067,1,1), +(1608,3,NULL,'Arrays',NULL,1040,1041,1069,1,1), +(1609,3,NULL,'Distributed data structures (NEW)',NULL,1042,1043,1069,1,1), +(1610,3,NULL,'Graphs and networks (REVISED)',NULL,1044,1045,1069,1,1), +(1611,3,NULL,'Lists, stacks, and queues (REVISED)',NULL,1046,1047,1069,1,1), +(1612,3,NULL,'Records (NEW)',NULL,1048,1049,1069,1,1), +(1613,3,NULL,'Tables**',NULL,1050,1051,1069,1,1), +(1614,3,NULL,'Trees',NULL,1052,1053,1069,1,1), +(1615,3,NULL,'Composite structures**',NULL,1056,1057,1070,1,1), +(1616,3,NULL,'Contiguous representations**',NULL,1058,1059,1070,1,1), +(1617,3,NULL,'Hash-table representations',NULL,1060,1061,1070,1,1), +(1618,3,NULL,'Linked representations',NULL,1062,1063,1070,1,1), +(1619,3,NULL,'Object representation (NEW)',NULL,1064,1065,1070,1,1), +(1620,3,NULL,'Primitive data items**',NULL,1066,1067,1070,1,1), +(1621,3,NULL,'Code breaking (NEW)',NULL,1070,1071,1071,1,1), +(1622,3,NULL,'Data encryption standard (DES)**',NULL,1072,1073,1071,1,1), +(1623,3,NULL,'Public key cryptosystems',NULL,1074,1075,1071,1,1), +(1624,3,NULL,'Standards (e.g., DES, PGP, RSA) (NEW)',NULL,1076,1077,1071,1,1), +(1625,3,NULL,'Data compaction and compression',NULL,1080,1081,1072,1,1), +(1626,3,NULL,'Error control codes',NULL,1082,1083,1072,1,1), +(1627,3,NULL,'Formal models of communication',NULL,1084,1085,1072,1,1), +(1628,3,NULL,'Nonsecret encoding schemes**',NULL,1086,1087,1072,1,1), +(1629,3,NULL,'Backup/recovery',NULL,1090,1091,1073,1,1), +(1630,3,NULL,'Optimization**',NULL,1092,1093,1073,1,1), +(1631,3,NULL,'Organization/structure',NULL,1094,1095,1073,1,1), +(1632,3,NULL,'Sorting/searching',NULL,1096,1097,1073,1,1), +(1633,3,'F.1.0','General','F.1.0',1106,1107,1076,1,1), +(1634,3,'F.1.1','Models of Computation (F.4.1)','F.1.1',1108,1121,1076,1,1), +(1635,3,NULL,'Automata (e.g., finite, push-down, resource-bounded)',NULL,1109,1110,1634,1,1), +(1636,3,NULL,'Bounded-action devices (e.g., Turing machines, random access machines)',NULL,1111,1112,1634,1,1), +(1637,3,NULL,'Computability theory',NULL,1113,1114,1634,1,1), +(1638,3,NULL,'Relations between models',NULL,1115,1116,1634,1,1), +(1639,3,NULL,'Self-modifying machines (e.g., neural networks)',NULL,1117,1118,1634,1,1), +(1640,3,NULL,'Unbounded-action devices (e.g., cellular automata, circuits, networks of machines)',NULL,1119,1120,1634,1,1), +(1641,3,'F.1.2','Modes of Computation','F.1.2',1122,1137,1076,1,1), +(1642,3,NULL,'Alternation and nondeterminism',NULL,1123,1124,1641,1,1), +(1643,3,NULL,'Interactive and reactive computation (REVISED)',NULL,1125,1126,1641,1,1), +(1644,3,NULL,'Online computation',NULL,1127,1128,1641,1,1), +(1645,3,NULL,'Parallelism and concurrency',NULL,1129,1130,1641,1,1), +(1646,3,NULL,'Probabilistic computation',NULL,1131,1132,1641,1,1), +(1647,3,NULL,'Relations among modes**',NULL,1133,1134,1641,1,1), +(1648,3,NULL,'Relativized computation',NULL,1135,1136,1641,1,1), +(1649,3,'F.1.3','Complexity Measures and Classes (F.2) (REVISED)','F.1.3',1138,1149,1076,1,1), +(1650,3,NULL,'Complexity hierarchies',NULL,1139,1140,1649,1,1), +(1651,3,NULL,'Machine-independent complexity**',NULL,1141,1142,1649,1,1), +(1652,3,NULL,'Reducibility and completeness',NULL,1143,1144,1649,1,1), +(1653,3,NULL,'Relations among complexity classes',NULL,1145,1146,1649,1,1), +(1654,3,NULL,'Relations among complexity measures',NULL,1147,1148,1649,1,1), +(1655,3,'F.1.m','Miscellaneous','F.1.m',1150,1151,1076,1,1), +(1656,3,'F.2.0','General','F.2.0',1154,1155,1077,1,1), +(1657,3,'F.2.1','Numerical Algorithms and Problems (G.1, G.4, I.1)','F.2.1',1156,1167,1077,1,1), +(1658,3,NULL,'Computation of transforms (e.g., fast Fourier transform)',NULL,1157,1158,1657,1,1), +(1659,3,NULL,'Computations in finite fields',NULL,1159,1160,1657,1,1), +(1660,3,NULL,'Computations on matrices',NULL,1161,1162,1657,1,1), +(1661,3,NULL,'Computations on polynomials',NULL,1163,1164,1657,1,1), +(1662,3,NULL,'Number-theoretic computations (e.g., factoring, primality testing)',NULL,1165,1166,1657,1,1), +(1663,3,'F.2.2','Nonnumerical Algorithms and Problems (E.2-5, G.2, H.2-3)','F.2.2',1168,1183,1077,1,1), +(1664,3,NULL,'Complexity of proof procedures',NULL,1169,1170,1663,1,1), +(1665,3,NULL,'Computations on discrete structures',NULL,1171,1172,1663,1,1), +(1666,3,NULL,'Geometrical problems and computations',NULL,1173,1174,1663,1,1), +(1667,3,NULL,'Pattern matching',NULL,1175,1176,1663,1,1), +(1668,3,NULL,'Routing and layout',NULL,1177,1178,1663,1,1), +(1669,3,NULL,'Sequencing and scheduling',NULL,1179,1180,1663,1,1), +(1670,3,NULL,'Sorting and searching',NULL,1181,1182,1663,1,1), +(1671,3,'F.2.3','Tradeoffs between Complexity Measures (F.1.3)','F.2.3',1184,1185,1077,1,1), +(1672,3,'F.2.m','Miscellaneous','F.2.m',1186,1187,1077,1,1), +(1673,3,'F.3.0','General','F.3.0',1190,1191,1078,1,1), +(1674,3,'F.3.1','Specifying and Verifying and Reasoning about Programs (D.2.1, D.2.4, D.3.1, E.1)','F.3.1',1192,1205,1078,1,1), +(1675,3,NULL,'Assertions',NULL,1193,1194,1674,1,1), +(1676,3,NULL,'Invariants',NULL,1195,1196,1674,1,1), +(1677,3,NULL,'Logics of programs',NULL,1197,1198,1674,1,1), +(1678,3,NULL,'Mechanical verification',NULL,1199,1200,1674,1,1), +(1679,3,NULL,'Pre- and post-conditions',NULL,1201,1202,1674,1,1), +(1680,3,NULL,'Specification techniques',NULL,1203,1204,1674,1,1), +(1681,3,'F.3.2','Semantics of Programming Languages (D.3.1)','F.3.2',1206,1219,1078,1,1), +(1682,3,NULL,'Algebraic approaches to semantics',NULL,1207,1208,1681,1,1), +(1683,3,NULL,'Denotational semantics',NULL,1209,1210,1681,1,1), +(1684,3,NULL,'Operational semantics',NULL,1211,1212,1681,1,1), +(1685,3,NULL,'Partial evaluation (NEW)',NULL,1213,1214,1681,1,1), +(1686,3,NULL,'Process models (NEW)',NULL,1215,1216,1681,1,1), +(1687,3,NULL,'Program analysis (NEW)',NULL,1217,1218,1681,1,1), +(1688,3,'F.3.3','Studies of Program Constructs (D.3.2-3)','F.3.3',1220,1231,1078,1,1), +(1689,3,NULL,'Control primitives',NULL,1221,1222,1688,1,1), +(1690,3,NULL,'Functional constructs',NULL,1223,1224,1688,1,1), +(1691,3,NULL,'Object-oriented constructs (NEW)',NULL,1225,1226,1688,1,1), +(1692,3,NULL,'Program and recursion schemes',NULL,1227,1228,1688,1,1), +(1693,3,NULL,'Type structure',NULL,1229,1230,1688,1,1), +(1694,3,'F.3.m','Miscellaneous','F.3.m',1232,1233,1078,1,1), +(1695,3,'F.4.0','General','F.4.0',1236,1237,1079,1,1), +(1696,3,'F.4.1','Mathematical Logic (F.1.1, I.2.2-4)','F.4.1',1238,1261,1079,1,1), +(1697,3,NULL,'Computability theory',NULL,1239,1240,1696,1,1), +(1698,3,NULL,'Computational logic',NULL,1241,1242,1696,1,1), +(1699,3,NULL,'Lambda calculus and related systems',NULL,1243,1244,1696,1,1), +(1700,3,NULL,'Logic and constraint programming (REVISED)',NULL,1245,1246,1696,1,1), +(1701,3,NULL,'Mechanical theorem proving',NULL,1247,1248,1696,1,1), +(1702,3,NULL,'Modal logic (NEW)',NULL,1249,1250,1696,1,1), +(1703,3,NULL,'Model theory',NULL,1251,1252,1696,1,1), +(1704,3,NULL,'Proof theory',NULL,1253,1254,1696,1,1), +(1705,3,NULL,'Recursive function theory',NULL,1255,1256,1696,1,1), +(1706,3,NULL,'Set theory (NEW)',NULL,1257,1258,1696,1,1), +(1707,3,NULL,'Temporal logic (NEW)',NULL,1259,1260,1696,1,1), +(1708,3,'F.4.2','Grammars and Other Rewriting Systems (D.3.1)','F.4.2',1262,1273,1079,1,1), +(1709,3,NULL,'Decision problems',NULL,1263,1264,1708,1,1), +(1710,3,NULL,'Grammar types (e.g., context-free, context-sensitive)',NULL,1265,1266,1708,1,1), +(1711,3,NULL,'Parallel rewriting systems (e.g., developmental systems, L-systems)',NULL,1267,1268,1708,1,1), +(1712,3,NULL,'Parsing',NULL,1269,1270,1708,1,1), +(1713,3,NULL,'Thue systems',NULL,1271,1272,1708,1,1), +(1714,3,'F.4.3','Formal Languages (D.3.1)','F.4.3',1274,1285,1079,1,1), +(1715,3,NULL,'Algebraic language theory',NULL,1275,1276,1714,1,1), +(1716,3,NULL,'Classes defined by grammars or automata (e.g., context-free languages, regular sets, recursive sets)',NULL,1277,1278,1714,1,1), +(1717,3,NULL,'Classes defined by resource-bounded automata**',NULL,1279,1280,1714,1,1), +(1718,3,NULL,'Decision problems',NULL,1281,1282,1714,1,1), +(1719,3,NULL,'Operations on languages',NULL,1283,1284,1714,1,1), +(1720,3,'F.4.m','Miscellaneous','F.4.m',1286,1287,1079,1,1), +(1721,3,'G.1.0','General','G.1.0',1296,1313,1082,1,1), +(1722,3,NULL,'Computer arithmetic',NULL,1297,1298,1721,1,1), +(1723,3,NULL,'Conditioning (and ill-conditioning) (REVISED)',NULL,1299,1300,1721,1,1), +(1724,3,NULL,'Error analysis',NULL,1301,1302,1721,1,1), +(1725,3,NULL,'Interval arithmetic (NEW)',NULL,1303,1304,1721,1,1), +(1726,3,NULL,'Multiple precision arithmetic (NEW)',NULL,1305,1306,1721,1,1), +(1727,3,NULL,'Numerical algorithms',NULL,1307,1308,1721,1,1), +(1728,3,NULL,'Parallel algorithms',NULL,1309,1310,1721,1,1), +(1729,3,NULL,'Stability (and instability)',NULL,1311,1312,1721,1,1), +(1730,3,'G.1.1','Interpolation (I.3.5, I.3.7)','G.1.1',1314,1325,1082,1,1), +(1731,3,NULL,'Difference formulas**',NULL,1315,1316,1730,1,1), +(1732,3,NULL,'Extrapolation',NULL,1317,1318,1730,1,1), +(1733,3,NULL,'Interpolation formulas',NULL,1319,1320,1730,1,1), +(1734,3,NULL,'Smoothing',NULL,1321,1322,1730,1,1), +(1735,3,NULL,'Spline and piecewise polynomial interpolation',NULL,1323,1324,1730,1,1), +(1736,3,'G.1.2','Approximation','G.1.2',1326,1351,1082,1,1), +(1737,3,NULL,'Approximation of surfaces and contours (NEW)',NULL,1327,1328,1736,1,1), +(1738,3,NULL,'Chebyshev approximation and theory',NULL,1329,1330,1736,1,1), +(1739,3,NULL,'Elementary function approximation',NULL,1331,1332,1736,1,1), +(1740,3,NULL,'Fast Fourier transforms (FFT) (NEW)',NULL,1333,1334,1736,1,1), +(1741,3,NULL,'Least squares approximation',NULL,1335,1336,1736,1,1), +(1742,3,NULL,'Linear approximation',NULL,1337,1338,1736,1,1), +(1743,3,NULL,'Minimax approximation and algorithms',NULL,1339,1340,1736,1,1), +(1744,3,NULL,'Nonlinear approximation',NULL,1341,1342,1736,1,1), +(1745,3,NULL,'Rational approximation',NULL,1343,1344,1736,1,1), +(1746,3,NULL,'Special function approximations (NEW)',NULL,1345,1346,1736,1,1), +(1747,3,NULL,'Spline and piecewise polynomial approximation',NULL,1347,1348,1736,1,1), +(1748,3,NULL,'Wavelets and fractals (NEW)',NULL,1349,1350,1736,1,1), +(1749,3,'G.1.3','Numerical Linear Algebra','G.1.3',1352,1371,1082,1,1), +(1750,3,NULL,'Conditioning',NULL,1353,1354,1749,1,1), +(1751,3,NULL,'Determinants**',NULL,1355,1356,1749,1,1), +(1752,3,NULL,'Eigenvalues and eigenvectors (direct and iterative methods) (REVISED)',NULL,1357,1358,1749,1,1), +(1753,3,NULL,'Error analysis',NULL,1359,1360,1749,1,1), +(1754,3,NULL,'Linear systems (direct and iterative methods)',NULL,1361,1362,1749,1,1), +(1755,3,NULL,'Matrix inversion',NULL,1363,1364,1749,1,1), +(1756,3,NULL,'Pseudoinverses**',NULL,1365,1366,1749,1,1), +(1757,3,NULL,'Singular value decomposition (NEW)',NULL,1367,1368,1749,1,1), +(1758,3,NULL,'Sparse, structured, and very large systems (direct and iterative methods) (REVISED)',NULL,1369,1370,1749,1,1), +(1759,3,'G.1.4','Quadrature and Numerical Differentiation (F.2.1)','G.1.4',1372,1389,1082,1,1), +(1760,3,NULL,'Adaptive and iterative quadrature (REVISED)',NULL,1373,1374,1759,1,1), +(1761,3,NULL,'Automatic differentiation (NEW)',NULL,1375,1376,1759,1,1), +(1762,3,NULL,'Equal interval integration**',NULL,1377,1378,1759,1,1), +(1763,3,NULL,'Error analysis',NULL,1379,1380,1759,1,1), +(1764,3,NULL,'Finite difference methods',NULL,1381,1382,1759,1,1), +(1765,3,NULL,'Gaussian quadrature',NULL,1383,1384,1759,1,1), +(1766,3,NULL,'Iterative methods',NULL,1385,1386,1759,1,1), +(1767,3,NULL,'Multidimensional (multiple) quadrature (REVISED)',NULL,1387,1388,1759,1,1), +(1768,3,'G.1.5','Roots of Nonlinear Equations','G.1.5',1390,1403,1082,1,1), +(1769,3,NULL,'Continuation (homotopy) methods (NEW)',NULL,1391,1392,1768,1,1), +(1770,3,NULL,'Convergence',NULL,1393,1394,1768,1,1), +(1771,3,NULL,'Error analysis',NULL,1395,1396,1768,1,1), +(1772,3,NULL,'Iterative methods',NULL,1397,1398,1768,1,1), +(1773,3,NULL,'Polynomials, methods for',NULL,1399,1400,1768,1,1), +(1774,3,NULL,'Systems of equations',NULL,1401,1402,1768,1,1), +(1775,3,'G.1.6','Optimization','G.1.6',1404,1429,1082,1,1), +(1776,3,NULL,'Constrained optimization',NULL,1405,1406,1775,1,1), +(1777,3,NULL,'Convex programming (NEW)',NULL,1407,1408,1775,1,1), +(1778,3,NULL,'Global optimization (NEW)',NULL,1409,1410,1775,1,1), +(1779,3,NULL,'Gradient methods',NULL,1411,1412,1775,1,1), +(1780,3,NULL,'Integer programming',NULL,1413,1414,1775,1,1), +(1781,3,NULL,'Least squares methods',NULL,1415,1416,1775,1,1), +(1782,3,NULL,'Linear programming',NULL,1417,1418,1775,1,1), +(1783,3,NULL,'Nonlinear programming',NULL,1419,1420,1775,1,1), +(1784,3,NULL,'Quadratic programming methods (NEW)',NULL,1421,1422,1775,1,1), +(1785,3,NULL,'Simulated annealing (NEW)',NULL,1423,1424,1775,1,1), +(1786,3,NULL,'Stochastic programming (NEW)',NULL,1425,1426,1775,1,1), +(1787,3,NULL,'Unconstrained optimization (NEW)',NULL,1427,1428,1775,1,1), +(1788,3,'G.1.7','Ordinary Differential Equations','G.1.7',1430,1451,1082,1,1), +(1789,3,NULL,'Boundary value problems',NULL,1431,1432,1788,1,1), +(1790,3,NULL,'Chaotic systems (NEW)',NULL,1433,1434,1788,1,1), +(1791,3,NULL,'Convergence and stability',NULL,1435,1436,1788,1,1), +(1792,3,NULL,'Differential-algebraic equations (NEW)',NULL,1437,1438,1788,1,1), +(1793,3,NULL,'Error analysis',NULL,1439,1440,1788,1,1), +(1794,3,NULL,'Finite difference methods (NEW)',NULL,1441,1442,1788,1,1), +(1795,3,NULL,'Initial value problems',NULL,1443,1444,1788,1,1), +(1796,3,NULL,'Multistep and multivalue methods (REVISED)',NULL,1445,1446,1788,1,1), +(1797,3,NULL,'One-step (single step) methods (REVISED)',NULL,1447,1448,1788,1,1), +(1798,3,NULL,'Stiff equations',NULL,1449,1450,1788,1,1), +(1799,3,'G.1.8','Partial Differential Equations','G.1.8',1452,1477,1082,1,1), +(1800,3,NULL,'Domain decomposition methods (NEW)',NULL,1453,1454,1799,1,1), +(1801,3,NULL,'Elliptic equations',NULL,1455,1456,1799,1,1), +(1802,3,NULL,'Finite difference methods (REVISED)',NULL,1457,1458,1799,1,1), +(1803,3,NULL,'Finite element methods',NULL,1459,1460,1799,1,1), +(1804,3,NULL,'Finite volume methods (NEW)',NULL,1461,1462,1799,1,1), +(1805,3,NULL,'Hyperbolic equations',NULL,1463,1464,1799,1,1), +(1806,3,NULL,'Inverse problems (NEW)',NULL,1465,1466,1799,1,1), +(1807,3,NULL,'Iterative solution techniques (NEW)',NULL,1467,1468,1799,1,1), +(1808,3,NULL,'Method of lines',NULL,1469,1470,1799,1,1), +(1809,3,NULL,'Multigrid and multilevel methods (NEW)',NULL,1471,1472,1799,1,1), +(1810,3,NULL,'Parabolic equations',NULL,1473,1474,1799,1,1), +(1811,3,NULL,'Spectral methods (NEW)',NULL,1475,1476,1799,1,1), +(1812,3,'G.1.9','Integral Equations','G.1.9',1478,1487,1082,1,1), +(1813,3,NULL,'Delay equations (NEW)',NULL,1479,1480,1812,1,1), +(1814,3,NULL,'Fredholm equations',NULL,1481,1482,1812,1,1), +(1815,3,NULL,'Integro-differential equations',NULL,1483,1484,1812,1,1), +(1816,3,NULL,'Volterra equations',NULL,1485,1486,1812,1,1), +(1817,3,'G.1.m','Miscellaneous','G.1.m',1488,1489,1082,1,1), +(1818,3,'G.2.0','General','G.2.0',1492,1493,1083,1,1), +(1819,3,'G.2.1','Combinatorics (F.2.2)','G.2.1',1494,1505,1083,1,1), +(1820,3,NULL,'Combinatorial algorithms',NULL,1495,1496,1819,1,1), +(1821,3,NULL,'Counting problems',NULL,1497,1498,1819,1,1), +(1822,3,NULL,'Generating functions',NULL,1499,1500,1819,1,1), +(1823,3,NULL,'Permutations and combinations',NULL,1501,1502,1819,1,1), +(1824,3,NULL,'Recurrences and difference equations',NULL,1503,1504,1819,1,1), +(1825,3,'G.2.2','Graph Theory (F.2.2)','G.2.2',1506,1519,1083,1,1), +(1826,3,NULL,'Graph algorithms',NULL,1507,1508,1825,1,1), +(1827,3,NULL,'Graph labeling (NEW)',NULL,1509,1510,1825,1,1), +(1828,3,NULL,'Hypergraphs (NEW)',NULL,1511,1512,1825,1,1), +(1829,3,NULL,'Network problems',NULL,1513,1514,1825,1,1), +(1830,3,NULL,'Path and circuit problems',NULL,1515,1516,1825,1,1), +(1831,3,NULL,'Trees',NULL,1517,1518,1825,1,1), +(1832,3,'G.2.3','Applications (NEW)','G.2.3',1520,1521,1083,1,1), +(1833,3,'G.2.m','Miscellaneous','G.2.m',1522,1523,1083,1,1), +(1834,3,NULL,'Contingency table analysis (NEW)',NULL,1526,1527,1084,1,1), +(1835,3,NULL,'Correlation and regression analysis (NEW)',NULL,1528,1529,1084,1,1), +(1836,3,NULL,'Distribution functions (NEW)',NULL,1530,1531,1084,1,1), +(1837,3,NULL,'Experimental design (NEW)',NULL,1532,1533,1084,1,1), +(1838,3,NULL,'Markov processes (NEW)',NULL,1534,1535,1084,1,1), +(1839,3,NULL,'Multivariate statistics (NEW)',NULL,1536,1537,1084,1,1), +(1840,3,NULL,'Nonparametric statistics (NEW)',NULL,1538,1539,1084,1,1), +(1841,3,NULL,'Probabilistic algorithms (including Monte Carlo)',NULL,1540,1541,1084,1,1), +(1842,3,NULL,'Queueing theory (NEW)',NULL,1542,1543,1084,1,1), +(1843,3,NULL,'Random number generation',NULL,1544,1545,1084,1,1), +(1844,3,NULL,'Reliability and life testing (NEW)',NULL,1546,1547,1084,1,1), +(1845,3,NULL,'Renewal theory (NEW)',NULL,1548,1549,1084,1,1), +(1846,3,NULL,'Robust regression (NEW)',NULL,1550,1551,1084,1,1), +(1847,3,NULL,'Statistical computing',NULL,1552,1553,1084,1,1), +(1848,3,NULL,'Statistical software',NULL,1554,1555,1084,1,1), +(1849,3,NULL,'Stochastic processes (NEW)',NULL,1556,1557,1084,1,1), +(1850,3,NULL,'Survival analysis (NEW)',NULL,1558,1559,1084,1,1), +(1851,3,NULL,'Time series analysis (NEW)',NULL,1560,1561,1084,1,1), +(1852,3,NULL,'Algorithm design and analysis (REVISED)',NULL,1564,1565,1085,1,1), +(1853,3,NULL,'Certification and testing',NULL,1566,1567,1085,1,1), +(1854,3,NULL,'Documentation (NEW)',NULL,1568,1569,1085,1,1), +(1855,3,NULL,'Efficiency',NULL,1570,1571,1085,1,1), +(1856,3,NULL,'Parallel and vector implementations (NEW)',NULL,1572,1573,1085,1,1), +(1857,3,NULL,'Portability**',NULL,1574,1575,1085,1,1), +(1858,3,NULL,'Reliability and robustness',NULL,1576,1577,1085,1,1), +(1859,3,NULL,'User interfaces (NEW)',NULL,1578,1579,1085,1,1), +(1860,3,NULL,'Verification**',NULL,1580,1581,1085,1,1), +(1861,3,NULL,'Queueing theory**',NULL,1584,1585,1086,1,1), +(1862,3,'H.1.0','General','H.1.0',1592,1593,1088,1,1), +(1863,3,'H.1.1','Systems and Information Theory (E.4)','H.1.1',1594,1601,1088,1,1), +(1864,3,NULL,'General systems theory',NULL,1595,1596,1863,1,1), +(1865,3,NULL,'Information theory',NULL,1597,1598,1863,1,1), +(1866,3,NULL,'Value of information',NULL,1599,1600,1863,1,1), +(1867,3,'H.1.2','User/Machine Systems','H.1.2',1602,1609,1088,1,1), +(1868,3,NULL,'Human factors',NULL,1603,1604,1867,1,1), +(1869,3,NULL,'Human information processing',NULL,1605,1606,1867,1,1), +(1870,3,NULL,'Software psychology (NEW)',NULL,1607,1608,1867,1,1), +(1871,3,'H.1.m','Miscellaneous','H.1.m',1610,1611,1088,1,1), +(1872,3,'H.2.0','General','H.2.0',1614,1617,1089,1,1), +(1873,3,NULL,'Security, integrity, and protection**',NULL,1615,1616,1872,1,1), +(1874,3,'H.2.1','Logical Design','H.2.1',1618,1625,1089,1,1), +(1875,3,NULL,'Data models',NULL,1619,1620,1874,1,1), +(1876,3,NULL,'Normal forms',NULL,1621,1622,1874,1,1), +(1877,3,NULL,'Schema and subschema',NULL,1623,1624,1874,1,1), +(1878,3,'H.2.2','Physical Design','H.2.2',1626,1633,1089,1,1), +(1879,3,NULL,'Access methods',NULL,1627,1628,1878,1,1), +(1880,3,NULL,'Deadlock avoidance',NULL,1629,1630,1878,1,1), +(1881,3,NULL,'Recovery and restart',NULL,1631,1632,1878,1,1), +(1882,3,'H.2.3','Languages (D.3.2)','H.2.3',1634,1645,1089,1,1), +(1883,3,NULL,'Data description languages (DDL)',NULL,1635,1636,1882,1,1), +(1884,3,NULL,'Data manipulation languages (DML)',NULL,1637,1638,1882,1,1), +(1885,3,NULL,'Database (persistent) programming languages',NULL,1639,1640,1882,1,1), +(1886,3,NULL,'Query languages',NULL,1641,1642,1882,1,1), +(1887,3,NULL,'Report writers',NULL,1643,1644,1882,1,1), +(1888,3,'H.2.4','Systems','H.2.4',1646,1667,1089,1,1), +(1889,3,NULL,'Concurrency',NULL,1647,1648,1888,1,1), +(1890,3,NULL,'Distributed databases (REVISED)',NULL,1649,1650,1888,1,1), +(1891,3,NULL,'Multimedia databases (NEW)',NULL,1651,1652,1888,1,1), +(1892,3,NULL,'Object-oriented databases (NEW)',NULL,1653,1654,1888,1,1), +(1893,3,NULL,'Parallel databases (NEW)',NULL,1655,1656,1888,1,1), +(1894,3,NULL,'Query processing',NULL,1657,1658,1888,1,1), +(1895,3,NULL,'Relational databases (NEW)',NULL,1659,1660,1888,1,1), +(1896,3,NULL,'Rule-based databases (NEW)',NULL,1661,1662,1888,1,1), +(1897,3,NULL,'Textual databases (NEW)',NULL,1663,1664,1888,1,1), +(1898,3,NULL,'Transaction processing',NULL,1665,1666,1888,1,1), +(1899,3,'H.2.5','Heterogeneous Databases','H.2.5',1668,1673,1089,1,1), +(1900,3,NULL,'Data translation**',NULL,1669,1670,1899,1,1), +(1901,3,NULL,'Program translation**',NULL,1671,1672,1899,1,1), +(1902,3,'H.2.6','Database Machines','H.2.6',1674,1675,1089,1,1), +(1903,3,'H.2.7','Database Administration','H.2.7',1676,1685,1089,1,1), +(1904,3,NULL,'Data dictionary/directory',NULL,1677,1678,1903,1,1), +(1905,3,NULL,'Data warehouse and repository (NEW)',NULL,1679,1680,1903,1,1), +(1906,3,NULL,'Logging and recovery',NULL,1681,1682,1903,1,1), +(1907,3,NULL,'Security, integrity, and protection (NEW)',NULL,1683,1684,1903,1,1), +(1908,3,'H.2.8','Database Applications','H.2.8',1686,1697,1089,1,1), +(1909,3,NULL,'Data mining (NEW)',NULL,1687,1688,1908,1,1), +(1910,3,NULL,'Image databases (NEW)',NULL,1689,1690,1908,1,1), +(1911,3,NULL,'Scientific databases (NEW)',NULL,1691,1692,1908,1,1), +(1912,3,NULL,'Spatial databases and GIS (NEW)',NULL,1693,1694,1908,1,1), +(1913,3,NULL,'Statistical databases (NEW)',NULL,1695,1696,1908,1,1), +(1914,3,'H.2.m','Miscellaneous','H.2.m',1698,1699,1089,1,1), +(1915,3,'H.3.0','General','H.3.0',1702,1703,1090,1,1), +(1916,3,'H.3.1','Content Analysis and Indexing','H.3.1',1704,1715,1090,1,1), +(1917,3,NULL,'Abstracting methods',NULL,1705,1706,1916,1,1), +(1918,3,NULL,'Dictionaries',NULL,1707,1708,1916,1,1), +(1919,3,NULL,'Indexing methods',NULL,1709,1710,1916,1,1), +(1920,3,NULL,'Linguistic processing',NULL,1711,1712,1916,1,1), +(1921,3,NULL,'Thesauruses',NULL,1713,1714,1916,1,1), +(1922,3,'H.3.2','Information Storage','H.3.2',1716,1721,1090,1,1), +(1923,3,NULL,'File organization',NULL,1717,1718,1922,1,1), +(1924,3,NULL,'Record classification**',NULL,1719,1720,1922,1,1), +(1925,3,'H.3.3','Information Search and Retrieval','H.3.3',1722,1737,1090,1,1), +(1926,3,NULL,'Clustering',NULL,1723,1724,1925,1,1), +(1927,3,NULL,'Information filtering (NEW)',NULL,1725,1726,1925,1,1), +(1928,3,NULL,'Query formulation',NULL,1727,1728,1925,1,1), +(1929,3,NULL,'Relevance feedback (NEW)',NULL,1729,1730,1925,1,1), +(1930,3,NULL,'Retrieval models',NULL,1731,1732,1925,1,1), +(1931,3,NULL,'Search process',NULL,1733,1734,1925,1,1), +(1932,3,NULL,'Selection process',NULL,1735,1736,1925,1,1), +(1933,3,'H.3.4','Systems and Software','H.3.4',1738,1751,1090,1,1), +(1934,3,NULL,'Current awareness systems (selective dissemination of information--SDI)**',NULL,1739,1740,1933,1,1), +(1935,3,NULL,'Distributed systems (NEW)',NULL,1741,1742,1933,1,1), +(1936,3,NULL,'Information networks',NULL,1743,1744,1933,1,1), +(1937,3,NULL,'Performance evaluation (efficiency and effectiveness) (NEW)',NULL,1745,1746,1933,1,1), +(1938,3,NULL,'Question-answering (fact retrieval) systems**',NULL,1747,1748,1933,1,1), +(1939,3,NULL,'User profiles and alert services (NEW)',NULL,1749,1750,1933,1,1), +(1940,3,'H.3.5','Online Information Services','H.3.5',1752,1759,1090,1,1), +(1941,3,NULL,'Commercial services (NEW)',NULL,1753,1754,1940,1,1), +(1942,3,NULL,'Data sharing (REVISED)',NULL,1755,1756,1940,1,1), +(1943,3,NULL,'Web-based services (NEW)',NULL,1757,1758,1940,1,1), +(1944,3,'H.3.6','Library Automation','H.3.6',1760,1763,1090,1,1), +(1945,3,NULL,'Large text archives',NULL,1761,1762,1944,1,1), +(1946,3,'H.3.7','Digital Libraries (NEW)','H.3.7',1764,1775,1090,1,1), +(1947,3,NULL,'Collection (NEW)',NULL,1765,1766,1946,1,1), +(1948,3,NULL,'Dissemination (NEW)',NULL,1767,1768,1946,1,1), +(1949,3,NULL,'Standards (NEW)',NULL,1769,1770,1946,1,1), +(1950,3,NULL,'Systems issues (NEW)',NULL,1771,1772,1946,1,1), +(1951,3,NULL,'User issues (NEW)',NULL,1773,1774,1946,1,1), +(1952,3,'H.3.m','Miscellaneous','H.3.m',1776,1777,1090,1,1), +(1953,3,'H.4.0','General','H.4.0',1780,1781,1091,1,1), +(1954,3,'H.4.1','Office Automation (I.7)','H.4.1',1782,1797,1091,1,1), +(1955,3,NULL,'Desktop publishing (NEW)',NULL,1783,1784,1954,1,1), +(1956,3,NULL,'Equipment**',NULL,1785,1786,1954,1,1), +(1957,3,NULL,'Groupware (NEW)',NULL,1787,1788,1954,1,1), +(1958,3,NULL,'Spreadsheets',NULL,1789,1790,1954,1,1), +(1959,3,NULL,'Time management (e.g., calendars, schedules)',NULL,1791,1792,1954,1,1), +(1960,3,NULL,'Word processing',NULL,1793,1794,1954,1,1), +(1961,3,NULL,'Workflow management (NEW)',NULL,1795,1796,1954,1,1), +(1962,3,'H.4.2','Types of Systems','H.4.2',1798,1803,1091,1,1), +(1963,3,NULL,'Decision support (e.g., MIS)',NULL,1799,1800,1962,1,1), +(1964,3,NULL,'Logistics',NULL,1801,1802,1962,1,1), +(1965,3,'H.4.3','Communications Applications','H.4.3',1804,1815,1091,1,1), +(1966,3,NULL,'Bulletin boards',NULL,1805,1806,1965,1,1), +(1967,3,NULL,'Computer conferencing, teleconferencing, and videoconferencing (REVISED)',NULL,1807,1808,1965,1,1), +(1968,3,NULL,'Electronic mail',NULL,1809,1810,1965,1,1), +(1969,3,NULL,'Information browsers (NEW)',NULL,1811,1812,1965,1,1), +(1970,3,NULL,'Videotex',NULL,1813,1814,1965,1,1), +(1971,3,'H.4.m','Miscellaneous','H.4.m',1816,1817,1091,1,1), +(1972,3,'H.5.0','General','H.5.0',1820,1821,1092,1,1), +(1973,3,'H.5.1','Multimedia Information Systems','H.5.1',1822,1835,1092,1,1), +(1974,3,NULL,'Animations',NULL,1823,1824,1973,1,1), +(1975,3,NULL,'Artificial, augmented, and virtual realities (REVISED)',NULL,1825,1826,1973,1,1), +(1976,3,NULL,'Audio input/output',NULL,1827,1828,1973,1,1), +(1977,3,NULL,'Evaluation/methodology',NULL,1829,1830,1973,1,1), +(1978,3,NULL,'Hypertext navigation and maps**',NULL,1831,1832,1973,1,1), +(1979,3,NULL,'Video (e.g., tape, disk, DVI)',NULL,1833,1834,1973,1,1), +(1980,3,'H.5.2','User Interfaces (D.2.2, H.1.2, I.3.6)','H.5.2',1836,1875,1092,1,1), +(1981,3,NULL,'Auditory (non-speech) feedback (NEW)',NULL,1837,1838,1980,1,1), +(1982,3,NULL,'Benchmarking (NEW)',NULL,1839,1840,1980,1,1), +(1983,3,NULL,'Ergonomics',NULL,1841,1842,1980,1,1), +(1984,3,NULL,'Evaluation/methodology',NULL,1843,1844,1980,1,1), +(1985,3,NULL,'Graphical user interfaces (GUI) (NEW)',NULL,1845,1846,1980,1,1), +(1986,3,NULL,'Haptic I/O (NEW)',NULL,1847,1848,1980,1,1), +(1987,3,NULL,'Input devices and strategies (e.g., mouse, touchscreen)',NULL,1849,1850,1980,1,1), +(1988,3,NULL,'Interaction styles (e.g., commands, menus, forms, direct manipulation)',NULL,1851,1852,1980,1,1), +(1989,3,NULL,'Natural language (NEW)',NULL,1853,1854,1980,1,1), +(1990,3,NULL,'Prototyping (NEW)',NULL,1855,1856,1980,1,1), +(1991,3,NULL,'Screen design (e.g., text, graphics, color)',NULL,1857,1858,1980,1,1), +(1992,3,NULL,'Standardization (NEW)',NULL,1859,1860,1980,1,1), +(1993,3,NULL,'Style guides (NEW)',NULL,1861,1862,1980,1,1), +(1994,3,NULL,'Theory and methods',NULL,1863,1864,1980,1,1), +(1995,3,NULL,'Training, help, and documentation',NULL,1865,1866,1980,1,1), +(1996,3,NULL,'User-centered design (NEW)',NULL,1867,1868,1980,1,1), +(1997,3,NULL,'User interface management systems (UIMS)',NULL,1869,1870,1980,1,1), +(1998,3,NULL,'Voice I/O (NEW)',NULL,1871,1872,1980,1,1), +(1999,3,NULL,'Windowing systems',NULL,1873,1874,1980,1,1), +(2000,3,'H.5.3','Group and Organization Interfaces','H.5.3',1876,1893,1092,1,1), +(2001,3,NULL,'Asynchronous interaction',NULL,1877,1878,2000,1,1), +(2002,3,NULL,'Collaborative computing (NEW)',NULL,1879,1880,2000,1,1), +(2003,3,NULL,'Computer-supported cooperative work (NEW)',NULL,1881,1882,2000,1,1), +(2004,3,NULL,'Evaluation/methodology',NULL,1883,1884,2000,1,1), +(2005,3,NULL,'Organizational design',NULL,1885,1886,2000,1,1), +(2006,3,NULL,'Synchronous interaction',NULL,1887,1888,2000,1,1), +(2007,3,NULL,'Theory and models',NULL,1889,1890,2000,1,1), +(2008,3,NULL,'Web-based interaction (NEW)',NULL,1891,1892,2000,1,1), +(2009,3,'H.5.4','Hypertext/Hypermedia (I.7, J.7) (NEW)','H.5.4',1894,1903,1092,1,1), +(2010,3,NULL,'Architectures (NEW)',NULL,1895,1896,2009,1,1), +(2011,3,NULL,'Navigation (NEW)',NULL,1897,1898,2009,1,1), +(2012,3,NULL,'Theory (NEW)',NULL,1899,1900,2009,1,1), +(2013,3,NULL,'User issues (NEW)',NULL,1901,1902,2009,1,1), +(2014,3,'H.5.5','Sound and Music Computing (J.5) (NEW)','H.5.5',1904,1913,1092,1,1), +(2015,3,NULL,'Methodologies and techniques (NEW)',NULL,1905,1906,2014,1,1), +(2016,3,NULL,'Modeling (NEW)',NULL,1907,1908,2014,1,1), +(2017,3,NULL,'Signal analysis, synthesis, and processing (NEW)',NULL,1909,1910,2014,1,1), +(2018,3,NULL,'Systems (NEW)',NULL,1911,1912,2014,1,1), +(2019,3,'H.5.m','Miscellaneous (NEW)','H.5.m',1914,1915,1092,1,1), +(2020,3,'I.1.0','General','I.1.0',1924,1925,1095,1,1), +(2021,3,'I.1.1','Expressions and Their Representation (E.1-2)','I.1.1',1926,1931,1095,1,1), +(2022,3,NULL,'Representations (general and polynomial)',NULL,1927,1928,2021,1,1), +(2023,3,NULL,'Simplification of expressions',NULL,1929,1930,2021,1,1), +(2024,3,'I.1.2','Algorithms (F.2.1-2)','I.1.2',1932,1939,1095,1,1), +(2025,3,NULL,'Algebraic algorithms',NULL,1933,1934,2024,1,1), +(2026,3,NULL,'Analysis of algorithms',NULL,1935,1936,2024,1,1), +(2027,3,NULL,'Nonalgebraic algorithms',NULL,1937,1938,2024,1,1), +(2028,3,'I.1.3','Languages and Systems (D.3.2-3, F.2.2)','I.1.3',1940,1951,1095,1,1), +(2029,3,NULL,'Evaluation strategies',NULL,1941,1942,2028,1,1), +(2030,3,NULL,'Nonprocedural languages**',NULL,1943,1944,2028,1,1), +(2031,3,NULL,'Special-purpose algebraic systems',NULL,1945,1946,2028,1,1), +(2032,3,NULL,'Special-purpose hardware**',NULL,1947,1948,2028,1,1), +(2033,3,NULL,'Substitution mechanisms**',NULL,1949,1950,2028,1,1), +(2034,3,'I.1.4','Applications','I.1.4',1952,1953,1095,1,1), +(2035,3,'I.1.m','Miscellaneous','I.1.m',1954,1955,1095,1,1), +(2036,3,'I.2.0','General','I.2.0',1958,1963,1096,1,1), +(2037,3,NULL,'Cognitive simulation',NULL,1959,1960,2036,1,1), +(2038,3,NULL,'Philosophical foundations',NULL,1961,1962,2036,1,1), +(2039,3,'I.2.1','Applications and Expert Systems (H.4, J)','I.2.1',1964,1979,1096,1,1), +(2040,3,NULL,'Cartography',NULL,1965,1966,2039,1,1), +(2041,3,NULL,'Games',NULL,1967,1968,2039,1,1), +(2042,3,NULL,'Industrial automation',NULL,1969,1970,2039,1,1), +(2043,3,NULL,'Law',NULL,1971,1972,2039,1,1), +(2044,3,NULL,'Medicine and science',NULL,1973,1974,2039,1,1), +(2045,3,NULL,'Natural language interfaces',NULL,1975,1976,2039,1,1), +(2046,3,NULL,'Office automation',NULL,1977,1978,2039,1,1), +(2047,3,'I.2.2','Automatic Programming (D.1.2, F.3.1, F.4.1)','I.2.2',1980,1991,1096,1,1), +(2048,3,NULL,'Automatic analysis of algorithms',NULL,1981,1982,2047,1,1), +(2049,3,NULL,'Program modification',NULL,1983,1984,2047,1,1), +(2050,3,NULL,'Program synthesis',NULL,1985,1986,2047,1,1), +(2051,3,NULL,'Program transformation',NULL,1987,1988,2047,1,1), +(2052,3,NULL,'Program verification',NULL,1989,1990,2047,1,1), +(2053,3,'I.2.3','Deduction and Theorem Proving (F.4.1)','I.2.3',1992,2009,1096,1,1), +(2054,3,NULL,'Answer/reason extraction',NULL,1993,1994,2053,1,1), +(2055,3,NULL,'Deduction (e.g., natural, rule-based)',NULL,1995,1996,2053,1,1), +(2056,3,NULL,'Inference engines (NEW)',NULL,1997,1998,2053,1,1), +(2057,3,NULL,'Logic programming',NULL,1999,2000,2053,1,1), +(2058,3,NULL,'Mathematical induction',NULL,2001,2002,2053,1,1), +(2059,3,NULL,'Metatheory**',NULL,2003,2004,2053,1,1), +(2060,3,NULL,'Nonmonotonic reasoning and belief revision',NULL,2005,2006,2053,1,1), +(2061,3,NULL,'Resolution',NULL,2007,2008,2053,1,1), +(2062,3,'I.2.4','Knowledge Representation Formalisms and Methods (F.4.1)','I.2.4',2010,2027,1096,1,1), +(2063,3,NULL,'Frames and scripts',NULL,2011,2012,2062,1,1), +(2064,3,NULL,'Modal logic (NEW)',NULL,2013,2014,2062,1,1), +(2065,3,NULL,'Predicate logic',NULL,2015,2016,2062,1,1), +(2066,3,NULL,'Relation systems',NULL,2017,2018,2062,1,1), +(2067,3,NULL,'Representation languages',NULL,2019,2020,2062,1,1), +(2068,3,NULL,'Representations (procedural and rule-based)',NULL,2021,2022,2062,1,1), +(2069,3,NULL,'Semantic networks',NULL,2023,2024,2062,1,1), +(2070,3,NULL,'Temporal logic (NEW)',NULL,2025,2026,2062,1,1), +(2071,3,'I.2.5','Programming Languages and Software (D.3.2)','I.2.5',2028,2031,1096,1,1), +(2072,3,NULL,'Expert system tools and techniques',NULL,2029,2030,2071,1,1), +(2073,3,'I.2.6','Learning (K.3.2)','I.2.6',2032,2047,1096,1,1), +(2074,3,NULL,'Analogies',NULL,2033,2034,2073,1,1), +(2075,3,NULL,'Concept learning',NULL,2035,2036,2073,1,1), +(2076,3,NULL,'Connectionism and neural nets',NULL,2037,2038,2073,1,1), +(2077,3,NULL,'Induction',NULL,2039,2040,2073,1,1), +(2078,3,NULL,'Knowledge acquisition',NULL,2041,2042,2073,1,1), +(2079,3,NULL,'Language acquisition',NULL,2043,2044,2073,1,1), +(2080,3,NULL,'Parameter learning',NULL,2045,2046,2073,1,1), +(2081,3,'I.2.7','Natural Language Processing','I.2.7',2048,2063,1096,1,1), +(2082,3,NULL,'Discourse',NULL,2049,2050,2081,1,1), +(2083,3,NULL,'Language generation',NULL,2051,2052,2081,1,1), +(2084,3,NULL,'Language models',NULL,2053,2054,2081,1,1), +(2085,3,NULL,'Language parsing and understanding',NULL,2055,2056,2081,1,1), +(2086,3,NULL,'Machine translation',NULL,2057,2058,2081,1,1), +(2087,3,NULL,'Speech recognition and synthesis',NULL,2059,2060,2081,1,1), +(2088,3,NULL,'Text analysis',NULL,2061,2062,2081,1,1), +(2089,3,'I.2.8','Problem Solving, Control Methods, and Search (F.2.2)','I.2.8',2064,2079,1096,1,1), +(2090,3,NULL,'Backtracking',NULL,2065,2066,2089,1,1), +(2091,3,NULL,'Control theory (NEW)',NULL,2067,2068,2089,1,1), +(2092,3,NULL,'Dynamic programming',NULL,2069,2070,2089,1,1), +(2093,3,NULL,'Graph and tree search strategies',NULL,2071,2072,2089,1,1), +(2094,3,NULL,'Heuristic methods',NULL,2073,2074,2089,1,1), +(2095,3,NULL,'Plan execution, formation, and generation',NULL,2075,2076,2089,1,1), +(2096,3,NULL,'Scheduling (NEW)',NULL,2077,2078,2089,1,1), +(2097,3,'I.2.9','Robotics','I.2.9',2080,2097,1096,1,1), +(2098,3,NULL,'Autonomous vehicles (NEW)',NULL,2081,2082,2097,1,1), +(2099,3,NULL,'Commercial robots and applications (NEW)',NULL,2083,2084,2097,1,1), +(2100,3,NULL,'Kinematics and dynamics (NEW)',NULL,2085,2086,2097,1,1), +(2101,3,NULL,'Manipulators',NULL,2087,2088,2097,1,1), +(2102,3,NULL,'Operator interfaces (NEW)',NULL,2089,2090,2097,1,1), +(2103,3,NULL,'Propelling mechanisms',NULL,2091,2092,2097,1,1), +(2104,3,NULL,'Sensors',NULL,2093,2094,2097,1,1), +(2105,3,NULL,'Workcell organization and planning (NEW)',NULL,2095,2096,2097,1,1), +(2106,3,'I.2.10','Vision and Scene Understanding (I.4.8, I.5)','I.2.10',2098,2119,1096,1,1), +(2107,3,NULL,'3D/stereo scene analysis (NEW)',NULL,2099,2100,2106,1,1), +(2108,3,NULL,'Architecture and control structures**',NULL,2101,2102,2106,1,1), +(2109,3,NULL,'Intensity, color, photometry, and thresholding',NULL,2103,2104,2106,1,1), +(2110,3,NULL,'Modeling and recovery of physical attributes',NULL,2105,2106,2106,1,1), +(2111,3,NULL,'Motion',NULL,2107,2108,2106,1,1), +(2112,3,NULL,'Perceptual reasoning',NULL,2109,2110,2106,1,1), +(2113,3,NULL,'Representations, data structures, and transforms',NULL,2111,2112,2106,1,1), +(2114,3,NULL,'Shape',NULL,2113,2114,2106,1,1), +(2115,3,NULL,'Texture',NULL,2115,2116,2106,1,1), +(2116,3,NULL,'Video analysis (NEW)',NULL,2117,2118,2106,1,1), +(2117,3,'I.2.11','Distributed Artificial Intelligence','I.2.11',2120,2129,1096,1,1), +(2118,3,NULL,'Coherence and coordination',NULL,2121,2122,2117,1,1), +(2119,3,NULL,'Intelligent agents (NEW)',NULL,2123,2124,2117,1,1), +(2120,3,NULL,'Languages and structures',NULL,2125,2126,2117,1,1), +(2121,3,NULL,'Multiagent systems (NEW)',NULL,2127,2128,2117,1,1), +(2122,3,'I.2.m','Miscellaneous','I.2.m',2130,2131,1096,1,1), +(2123,3,'I.3.0','General','I.3.0',2134,2135,1097,1,1), +(2124,3,'I.3.1','Hardware Architecture (B.4.2)','I.3.1',2136,2153,1097,1,1), +(2125,3,NULL,'Graphics processors',NULL,2137,2138,2124,1,1), +(2126,3,NULL,'Hardcopy devices**',NULL,2139,2140,2124,1,1), +(2127,3,NULL,'Input devices',NULL,2141,2142,2124,1,1), +(2128,3,NULL,'Parallel processing',NULL,2143,2144,2124,1,1), +(2129,3,NULL,'Raster display devices',NULL,2145,2146,2124,1,1), +(2130,3,NULL,'Storage devices**',NULL,2147,2148,2124,1,1), +(2131,3,NULL,'Three-dimensional displays**',NULL,2149,2150,2124,1,1), +(2132,3,NULL,'Vector display devices**',NULL,2151,2152,2124,1,1), +(2133,3,'I.3.2','Graphics Systems (C.2.1, C.2.4, C.3)','I.3.2',2154,2161,1097,1,1), +(2134,3,NULL,'Distributed/network graphics',NULL,2155,2156,2133,1,1), +(2135,3,NULL,'Remote systems**',NULL,2157,2158,2133,1,1), +(2136,3,NULL,'Stand-alone systems**',NULL,2159,2160,2133,1,1), +(2137,3,'I.3.3','Picture/Image Generation','I.3.3',2162,2175,1097,1,1), +(2138,3,NULL,'Antialiasing**',NULL,2163,2164,2137,1,1), +(2139,3,NULL,'Bitmap and framebuffer operations',NULL,2165,2166,2137,1,1), +(2140,3,NULL,'Digitizing and scanning',NULL,2167,2168,2137,1,1), +(2141,3,NULL,'Display algorithms',NULL,2169,2170,2137,1,1), +(2142,3,NULL,'Line and curve generation',NULL,2171,2172,2137,1,1), +(2143,3,NULL,'Viewing algorithms',NULL,2173,2174,2137,1,1), +(2144,3,'I.3.4','Graphics Utilities','I.3.4',2176,2195,1097,1,1), +(2145,3,NULL,'Application packages',NULL,2177,2178,2144,1,1), +(2146,3,NULL,'Device drivers**',NULL,2179,2180,2144,1,1), +(2147,3,NULL,'Graphics editors',NULL,2181,2182,2144,1,1), +(2148,3,NULL,'Graphics packages',NULL,2183,2184,2144,1,1), +(2149,3,NULL,'Meta files**',NULL,2185,2186,2144,1,1), +(2150,3,NULL,'Paint systems',NULL,2187,2188,2144,1,1), +(2151,3,NULL,'Picture description languages**',NULL,2189,2190,2144,1,1), +(2152,3,NULL,'Software support',NULL,2191,2192,2144,1,1), +(2153,3,NULL,'Virtual device interfaces',NULL,2193,2194,2144,1,1), +(2154,3,'I.3.5','Computational Geometry and Object Modeling','I.3.5',2196,2215,1097,1,1), +(2155,3,NULL,'Boundary representations',NULL,2197,2198,2154,1,1), +(2156,3,NULL,'Constructive solid geometry (CSG)**',NULL,2199,2200,2154,1,1), +(2157,3,NULL,'Curve, surface, solid, and object representations',NULL,2201,2202,2154,1,1), +(2158,3,NULL,'Geometric algorithms, languages, and systems',NULL,2203,2204,2154,1,1), +(2159,3,NULL,'Hierarchy and geometric transformations',NULL,2205,2206,2154,1,1), +(2160,3,NULL,'Modeling packages',NULL,2207,2208,2154,1,1), +(2161,3,NULL,'Object hierarchies',NULL,2209,2210,2154,1,1), +(2162,3,NULL,'Physically based modeling',NULL,2211,2212,2154,1,1), +(2163,3,NULL,'Splines',NULL,2213,2214,2154,1,1), +(2164,3,'I.3.6','Methodology and Techniques','I.3.6',2216,2229,1097,1,1), +(2165,3,NULL,'Device independence**',NULL,2217,2218,2164,1,1), +(2166,3,NULL,'Ergonomics',NULL,2219,2220,2164,1,1), +(2167,3,NULL,'Graphics data structures and data types',NULL,2221,2222,2164,1,1), +(2168,3,NULL,'Interaction techniques',NULL,2223,2224,2164,1,1), +(2169,3,NULL,'Languages',NULL,2225,2226,2164,1,1), +(2170,3,NULL,'Standards',NULL,2227,2228,2164,1,1), +(2171,3,'I.3.7','Three-Dimensional Graphics and Realism','I.3.7',2230,2247,1097,1,1), +(2172,3,NULL,'Animation',NULL,2231,2232,2171,1,1), +(2173,3,NULL,'Color, shading, shadowing, and texture',NULL,2233,2234,2171,1,1), +(2174,3,NULL,'Fractals',NULL,2235,2236,2171,1,1), +(2175,3,NULL,'Hidden line/surface removal',NULL,2237,2238,2171,1,1), +(2176,3,NULL,'Radiosity',NULL,2239,2240,2171,1,1), +(2177,3,NULL,'Raytracing',NULL,2241,2242,2171,1,1), +(2178,3,NULL,'Virtual reality',NULL,2243,2244,2171,1,1), +(2179,3,NULL,'Visible line/surface algorithms',NULL,2245,2246,2171,1,1), +(2180,3,'I.3.8','Applications','I.3.8',2248,2249,1097,1,1), +(2181,3,'I.3.m','Miscellaneous','I.3.m',2250,2251,1097,1,1), +(2182,3,'I.4.0','General','I.4.0',2254,2259,1098,1,1), +(2183,3,NULL,'Image displays',NULL,2255,2256,2182,1,1), +(2184,3,NULL,'Image processing software',NULL,2257,2258,2182,1,1), +(2185,3,'I.4.1','Digitization and Image Capture (REVISED)','I.4.1',2260,2275,1098,1,1), +(2186,3,NULL,'Camera calibration (NEW)',NULL,2261,2262,2185,1,1), +(2187,3,NULL,'Imaging geometry (NEW)',NULL,2263,2264,2185,1,1), +(2188,3,NULL,'Quantization',NULL,2265,2266,2185,1,1), +(2189,3,NULL,'Radiometry (NEW)',NULL,2267,2268,2185,1,1), +(2190,3,NULL,'Reflectance (NEW)',NULL,2269,2270,2185,1,1), +(2191,3,NULL,'Sampling',NULL,2271,2272,2185,1,1), +(2192,3,NULL,'Scanning',NULL,2273,2274,2185,1,1), +(2193,3,'I.4.2','Compression (Coding) (E.4)','I.4.2',2276,2281,1098,1,1), +(2194,3,NULL,'Approximate methods',NULL,2277,2278,2193,1,1), +(2195,3,NULL,'Exact coding**',NULL,2279,2280,2193,1,1), +(2196,3,'I.4.3','Enhancement','I.4.3',2282,2295,1098,1,1), +(2197,3,NULL,'Filtering',NULL,2283,2284,2196,1,1), +(2198,3,NULL,'Geometric correction',NULL,2285,2286,2196,1,1), +(2199,3,NULL,'Grayscale manipulation',NULL,2287,2288,2196,1,1), +(2200,3,NULL,'Registration',NULL,2289,2290,2196,1,1), +(2201,3,NULL,'Sharpening and deblurring**',NULL,2291,2292,2196,1,1), +(2202,3,NULL,'Smoothing',NULL,2293,2294,2196,1,1), +(2203,3,'I.4.4','Restoration','I.4.4',2296,2305,1098,1,1), +(2204,3,NULL,'Inverse filtering**',NULL,2297,2298,2203,1,1), +(2205,3,NULL,'Kalman filtering',NULL,2299,2300,2203,1,1), +(2206,3,NULL,'Pseudoinverse restoration**',NULL,2301,2302,2203,1,1), +(2207,3,NULL,'Wiener filtering**',NULL,2303,2304,2203,1,1), +(2208,3,'I.4.5','Reconstruction','I.4.5',2306,2313,1098,1,1), +(2209,3,NULL,'Series expansion methods',NULL,2307,2308,2208,1,1), +(2210,3,NULL,'Summation methods**',NULL,2309,2310,2208,1,1), +(2211,3,NULL,'Transform methods',NULL,2311,2312,2208,1,1), +(2212,3,'I.4.6','Segmentation','I.4.6',2314,2323,1098,1,1), +(2213,3,NULL,'Edge and feature detection',NULL,2315,2316,2212,1,1), +(2214,3,NULL,'Pixel classification',NULL,2317,2318,2212,1,1), +(2215,3,NULL,'Region growing, partitioning',NULL,2319,2320,2212,1,1), +(2216,3,NULL,'Relaxation (NEW)',NULL,2321,2322,2212,1,1), +(2217,3,'I.4.7','Feature Measurement','I.4.7',2324,2337,1098,1,1), +(2218,3,NULL,'Feature representation (NEW)',NULL,2325,2326,2217,1,1), +(2219,3,NULL,'Invariants',NULL,2327,2328,2217,1,1), +(2220,3,NULL,'Moments',NULL,2329,2330,2217,1,1), +(2221,3,NULL,'Projections',NULL,2331,2332,2217,1,1), +(2222,3,NULL,'Size and shape',NULL,2333,2334,2217,1,1), +(2223,3,NULL,'Texture',NULL,2335,2336,2217,1,1), +(2224,3,'I.4.8','Scene Analysis','I.4.8',2338,2365,1098,1,1), +(2225,3,NULL,'Color (NEW)',NULL,2339,2340,2224,1,1), +(2226,3,NULL,'Depth cues',NULL,2341,2342,2224,1,1), +(2227,3,NULL,'Motion (NEW)',NULL,2343,2344,2224,1,1), +(2228,3,NULL,'Object recognition (NEW)',NULL,2345,2346,2224,1,1), +(2229,3,NULL,'Photometry',NULL,2347,2348,2224,1,1), +(2230,3,NULL,'Range data',NULL,2349,2350,2224,1,1), +(2231,3,NULL,'Sensor fusion',NULL,2351,2352,2224,1,1), +(2232,3,NULL,'Shading (NEW)',NULL,2353,2354,2224,1,1), +(2233,3,NULL,'Shape (NEW)',NULL,2355,2356,2224,1,1), +(2234,3,NULL,'Stereo',NULL,2357,2358,2224,1,1), +(2235,3,NULL,'Surface fitting (NEW)',NULL,2359,2360,2224,1,1), +(2236,3,NULL,'Time-varying imagery',NULL,2361,2362,2224,1,1), +(2237,3,NULL,'Tracking (NEW)',NULL,2363,2364,2224,1,1), +(2238,3,'I.4.9','Applications','I.4.9',2366,2367,1098,1,1), +(2239,3,'I.4.10','Image Representation','I.4.10',2368,2379,1098,1,1), +(2240,3,NULL,'Hierarchical',NULL,2369,2370,2239,1,1), +(2241,3,NULL,'Morphological',NULL,2371,2372,2239,1,1), +(2242,3,NULL,'Multidimensional',NULL,2373,2374,2239,1,1), +(2243,3,NULL,'Statistical',NULL,2375,2376,2239,1,1), +(2244,3,NULL,'Volumetric',NULL,2377,2378,2239,1,1), +(2245,3,'I.4.m','Miscellaneous','I.4.m',2380,2381,1098,1,1), +(2246,3,'I.5.0','General','I.5.0',2384,2385,1099,1,1), +(2247,3,'I.5.1','Models','I.5.1',2386,2399,1099,1,1), +(2248,3,NULL,'Deterministic**',NULL,2387,2388,2247,1,1), +(2249,3,NULL,'Fuzzy set',NULL,2389,2390,2247,1,1), +(2250,3,NULL,'Geometric',NULL,2391,2392,2247,1,1), +(2251,3,NULL,'Neural nets',NULL,2393,2394,2247,1,1), +(2252,3,NULL,'Statistical',NULL,2395,2396,2247,1,1), +(2253,3,NULL,'Structural',NULL,2397,2398,2247,1,1), +(2254,3,'I.5.2','Design Methodology','I.5.2',2400,2407,1099,1,1), +(2255,3,NULL,'Classifier design and evaluation',NULL,2401,2402,2254,1,1), +(2256,3,NULL,'Feature evaluation and selection',NULL,2403,2404,2254,1,1), +(2257,3,NULL,'Pattern analysis',NULL,2405,2406,2254,1,1), +(2258,3,'I.5.3','Clustering','I.5.3',2408,2413,1099,1,1), +(2259,3,NULL,'Algorithms',NULL,2409,2410,2258,1,1), +(2260,3,NULL,'Similarity measures',NULL,2411,2412,2258,1,1), +(2261,3,'I.5.4','Applications','I.5.4',2414,2423,1099,1,1), +(2262,3,NULL,'Computer vision',NULL,2415,2416,2261,1,1), +(2263,3,NULL,'Signal processing',NULL,2417,2418,2261,1,1), +(2264,3,NULL,'Text processing',NULL,2419,2420,2261,1,1), +(2265,3,NULL,'Waveform analysis',NULL,2421,2422,2261,1,1), +(2266,3,'I.5.5','Implementation (C.3)','I.5.5',2424,2429,1099,1,1), +(2267,3,NULL,'Interactive systems',NULL,2425,2426,2266,1,1), +(2268,3,NULL,'Special architectures',NULL,2427,2428,2266,1,1), +(2269,3,'I.5.m','Miscellaneous','I.5.m',2430,2431,1099,1,1), +(2270,3,'I.6.0','General','I.6.0',2434,2435,1100,1,1), +(2271,3,'I.6.1','Simulation Theory','I.6.1',2436,2443,1100,1,1), +(2272,3,NULL,'Model classification',NULL,2437,2438,2271,1,1), +(2273,3,NULL,'Systems theory',NULL,2439,2440,2271,1,1), +(2274,3,NULL,'Types of simulation (continuous and discrete)*',NULL,2441,2442,2271,1,1), +(2275,3,'I.6.2','Simulation Languages','I.6.2',2444,2445,1100,1,1), +(2276,3,'I.6.3','Applications','I.6.3',2446,2447,1100,1,1), +(2277,3,'I.6.4','Model Validation and Analysis','I.6.4',2448,2449,1100,1,1), +(2278,3,'I.6.5','Model Development','I.6.5',2450,2453,1100,1,1), +(2279,3,NULL,'Modeling methodologies',NULL,2451,2452,2278,1,1), +(2280,3,'I.6.6','Simulation Output Analysis','I.6.6',2454,2455,1100,1,1), +(2281,3,'I.6.7','Simulation Support Systems','I.6.7',2456,2459,1100,1,1), +(2282,3,NULL,'Environments',NULL,2457,2458,2281,1,1), +(2283,3,'I.6.8','Types of Simulation','I.6.8',2460,2479,1100,1,1), +(2284,3,NULL,'Animation',NULL,2461,2462,2283,1,1), +(2285,3,NULL,'Combined',NULL,2463,2464,2283,1,1), +(2286,3,NULL,'Continuous',NULL,2465,2466,2283,1,1), +(2287,3,NULL,'Discrete event',NULL,2467,2468,2283,1,1), +(2288,3,NULL,'Distributed',NULL,2469,2470,2283,1,1), +(2289,3,NULL,'Gaming',NULL,2471,2472,2283,1,1), +(2290,3,NULL,'Monte Carlo',NULL,2473,2474,2283,1,1), +(2291,3,NULL,'Parallel',NULL,2475,2476,2283,1,1), +(2292,3,NULL,'Visual',NULL,2477,2478,2283,1,1), +(2293,3,'I.6.m','Miscellaneous','I.6.m',2480,2481,1100,1,1), +(2294,3,'I.7.0','General','I.7.0',2484,2485,1101,1,1), +(2295,3,'I.7.1','Document and Text Editing (REVISED)','I.7.1',2486,2495,1101,1,1), +(2296,3,NULL,'Document management (NEW)',NULL,2487,2488,2295,1,1), +(2297,3,NULL,'Languages**',NULL,2489,2490,2295,1,1), +(2298,3,NULL,'Spelling**',NULL,2491,2492,2295,1,1), +(2299,3,NULL,'Version control (NEW)',NULL,2493,2494,2295,1,1), +(2300,3,'I.7.2','Document Preparation','I.7.2',2496,2517,1101,1,1), +(2301,3,NULL,'Desktop publishing',NULL,2497,2498,2300,1,1), +(2302,3,NULL,'Format and notation',NULL,2499,2500,2300,1,1), +(2303,3,NULL,'Hypertext/hypermedia',NULL,2501,2502,2300,1,1), +(2304,3,NULL,'Index generation (NEW)',NULL,2503,2504,2300,1,1), +(2305,3,NULL,'Languages and systems',NULL,2505,2506,2300,1,1), +(2306,3,NULL,'Markup languages (NEW)',NULL,2507,2508,2300,1,1), +(2307,3,NULL,'Multi/mixed media',NULL,2509,2510,2300,1,1), +(2308,3,NULL,'Photocomposition/typesetting',NULL,2511,2512,2300,1,1), +(2309,3,NULL,'Scripting languages (NEW)',NULL,2513,2514,2300,1,1), +(2310,3,NULL,'Standards',NULL,2515,2516,2300,1,1), +(2311,3,'I.7.3','Index Generation**','I.7.3',2518,2519,1101,1,1), +(2312,3,'I.7.4','Electronic Publishing (H.5.4, J.7) (NEW)','I.7.4',2520,2521,1101,1,1), +(2313,3,'I.7.5','Document Capture (I.4.1) (NEW)','I.7.5',2522,2531,1101,1,1), +(2314,3,NULL,'Document analysis (NEW)',NULL,2523,2524,2313,1,1), +(2315,3,NULL,'Graphics recognition and interpretation (NEW)',NULL,2525,2526,2313,1,1), +(2316,3,NULL,'Optical character recognition (OCR) (NEW)',NULL,2527,2528,2313,1,1), +(2317,3,NULL,'Scanning (NEW)',NULL,2529,2530,2313,1,1), +(2318,3,'I.7.m','Miscellaneous','I.7.m',2532,2533,1101,1,1), +(2319,3,NULL,'Business',NULL,2542,2543,1104,1,1), +(2320,3,NULL,'Education',NULL,2544,2545,1104,1,1), +(2321,3,NULL,'Financial (e.g., EFTS)',NULL,2546,2547,1104,1,1), +(2322,3,NULL,'Government',NULL,2548,2549,1104,1,1), +(2323,3,NULL,'Law',NULL,2550,2551,1104,1,1), +(2324,3,NULL,'Manufacturing',NULL,2552,2553,1104,1,1), +(2325,3,NULL,'Marketing',NULL,2554,2555,1104,1,1), +(2326,3,NULL,'Military',NULL,2556,2557,1104,1,1), +(2327,3,NULL,'Aerospace',NULL,2560,2561,1105,1,1), +(2328,3,NULL,'Archaeology (NEW)',NULL,2562,2563,1105,1,1), +(2329,3,NULL,'Astronomy',NULL,2564,2565,1105,1,1), +(2330,3,NULL,'Chemistry',NULL,2566,2567,1105,1,1), +(2331,3,NULL,'Earth and atmospheric sciences',NULL,2568,2569,1105,1,1), +(2332,3,NULL,'Electronics',NULL,2570,2571,1105,1,1), +(2333,3,NULL,'Engineering',NULL,2572,2573,1105,1,1), +(2334,3,NULL,'Mathematics and statistics',NULL,2574,2575,1105,1,1), +(2335,3,NULL,'Physics',NULL,2576,2577,1105,1,1), +(2336,3,NULL,'Biology and genetics (REVISED)',NULL,2580,2581,1106,1,1), +(2337,3,NULL,'Health',NULL,2582,2583,1106,1,1), +(2338,3,NULL,'Medical information systems',NULL,2584,2585,1106,1,1), +(2339,3,NULL,'Economics',NULL,2588,2589,1107,1,1), +(2340,3,NULL,'Psychology',NULL,2590,2591,1107,1,1), +(2341,3,NULL,'Sociology',NULL,2592,2593,1107,1,1), +(2342,3,NULL,'Architecture (NEW)',NULL,2596,2597,1108,1,1), +(2343,3,NULL,'Arts, fine and performing**',NULL,2598,2599,1108,1,1), +(2344,3,NULL,'Fine arts (NEW)',NULL,2600,2601,1108,1,1), +(2345,3,NULL,'Language translation',NULL,2602,2603,1108,1,1), +(2346,3,NULL,'Linguistics',NULL,2604,2605,1108,1,1), +(2347,3,NULL,'Literature',NULL,2606,2607,1108,1,1), +(2348,3,NULL,'Music**',NULL,2608,2609,1108,1,1), +(2349,3,NULL,'Performing arts (e.g., dance, music) (NEW)',NULL,2610,2611,1108,1,1), +(2350,3,NULL,'Computer-aided design (CAD)',NULL,2614,2615,1109,1,1), +(2351,3,NULL,'Computer-aided manufacturing (CAM)',NULL,2616,2617,1109,1,1), +(2352,3,NULL,'Command and control',NULL,2620,2621,1110,1,1), +(2353,3,NULL,'Consumer products',NULL,2622,2623,1110,1,1), +(2354,3,NULL,'Industrial control',NULL,2624,2625,1110,1,1), +(2355,3,NULL,'Military',NULL,2626,2627,1110,1,1), +(2356,3,NULL,'Process control',NULL,2628,2629,1110,1,1), +(2357,3,NULL,'Publishing',NULL,2630,2631,1110,1,1), +(2358,3,NULL,'Real time',NULL,2632,2633,1110,1,1), +(2359,3,NULL,'Markets',NULL,2642,2643,1113,1,1), +(2360,3,NULL,'Standards',NULL,2644,2645,1113,1,1), +(2361,3,NULL,'Statistics',NULL,2646,2647,1113,1,1), +(2362,3,NULL,'Suppliers',NULL,2648,2649,1113,1,1), +(2363,3,NULL,'Hardware',NULL,2652,2653,1114,1,1), +(2364,3,NULL,'People',NULL,2654,2655,1114,1,1), +(2365,3,NULL,'Software',NULL,2656,2657,1114,1,1), +(2366,3,NULL,'Systems',NULL,2658,2659,1114,1,1), +(2367,3,NULL,'Theory',NULL,2660,2661,1114,1,1), +(2368,3,'K.3.0','General','K.3.0',2664,2665,1115,1,1), +(2369,3,'K.3.1','Computer Uses in Education','K.3.1',2666,2675,1115,1,1), +(2370,3,NULL,'Collaborative learning (NEW)',NULL,2667,2668,2369,1,1), +(2371,3,NULL,'Computer-assisted instruction (CAI)',NULL,2669,2670,2369,1,1), +(2372,3,NULL,'Computer-managed instruction (CMI)',NULL,2671,2672,2369,1,1), +(2373,3,NULL,'Distance learning (NEW)',NULL,2673,2674,2369,1,1), +(2374,3,'K.3.2','Computer and Information Science Education','K.3.2',2676,2689,1115,1,1), +(2375,3,NULL,'Accreditation (NEW)',NULL,2677,2678,2374,1,1), +(2376,3,NULL,'Computer science education',NULL,2679,2680,2374,1,1), +(2377,3,NULL,'Curriculum',NULL,2681,2682,2374,1,1), +(2378,3,NULL,'Information systems education',NULL,2683,2684,2374,1,1), +(2379,3,NULL,'Literacy (NEW)',NULL,2685,2686,2374,1,1), +(2380,3,NULL,'Self-assessment',NULL,2687,2688,2374,1,1), +(2381,3,'K.3.m','Miscellaneous','K.3.m',2690,2695,1115,1,1), +(2382,3,NULL,'Accreditation**',NULL,2691,2692,2381,1,1), +(2383,3,NULL,'Computer literacy**',NULL,2693,2694,2381,1,1), +(2384,3,'K.4.0','General','K.4.0',2698,2699,1116,1,1), +(2385,3,'K.4.1','Public Policy Issues','K.4.1',2700,2719,1116,1,1), +(2386,3,NULL,'Abuse and crime involving computers (NEW)',NULL,2701,2702,2385,1,1), +(2387,3,NULL,'Computer-related health issues (NEW)',NULL,2703,2704,2385,1,1), +(2388,3,NULL,'Ethics (NEW)',NULL,2705,2706,2385,1,1), +(2389,3,NULL,'Human safety',NULL,2707,2708,2385,1,1), +(2390,3,NULL,'Intellectual property rights (NEW)',NULL,2709,2710,2385,1,1), +(2391,3,NULL,'Privacy',NULL,2711,2712,2385,1,1), +(2392,3,NULL,'Regulation',NULL,2713,2714,2385,1,1), +(2393,3,NULL,'Transborder data flow',NULL,2715,2716,2385,1,1), +(2394,3,NULL,'Use/abuse of power (NEW)',NULL,2717,2718,2385,1,1), +(2395,3,'K.4.2','Social Issues','K.4.2',2720,2729,1116,1,1), +(2396,3,NULL,'Abuse and crime involving computers**',NULL,2721,2722,2395,1,1), +(2397,3,NULL,'Assistive technologies for persons with disabilities (NEW)',NULL,2723,2724,2395,1,1), +(2398,3,NULL,'Employment',NULL,2725,2726,2395,1,1), +(2399,3,NULL,'Handicapped persons/special needs**',NULL,2727,2728,2395,1,1), +(2400,3,'K.4.3','Organizational Impacts','K.4.3',2730,2739,1116,1,1), +(2401,3,NULL,'Automation (NEW)',NULL,2731,2732,2400,1,1), +(2402,3,NULL,'Computer-supported collaborative work (NEW)',NULL,2733,2734,2400,1,1), +(2403,3,NULL,'Employment (NEW)',NULL,2735,2736,2400,1,1), +(2404,3,NULL,'Reengineering (NEW)',NULL,2737,2738,2400,1,1), +(2405,3,'K.4.4','Electronic Commerce (J.1) (NEW)','K.4.4',2740,2753,1116,1,1), +(2406,3,NULL,'Cybercash, digital cash (NEW)',NULL,2741,2742,2405,1,1), +(2407,3,NULL,'Distributed commercial transactions (NEW)',NULL,2743,2744,2405,1,1), +(2408,3,NULL,'Electronic data interchange (EDI) (NEW)',NULL,2745,2746,2405,1,1), +(2409,3,NULL,'Intellectual property (NEW)',NULL,2747,2748,2405,1,1), +(2410,3,NULL,'Payment schemes (NEW)',NULL,2749,2750,2405,1,1), +(2411,3,NULL,'Security (NEW)',NULL,2751,2752,2405,1,1), +(2412,3,'K.4.m','Miscellaneous','K.4.m',2754,2755,1116,1,1), +(2413,3,'K.5.0','General','K.5.0',2758,2759,1117,1,1), +(2414,3,'K.5.1','Hardware/Software Protection (REVISED)','K.5.1',2760,2771,1117,1,1), +(2415,3,NULL,'Copyrights',NULL,2761,2762,2414,1,1), +(2416,3,NULL,'Licensing (NEW)',NULL,2763,2764,2414,1,1), +(2417,3,NULL,'Patents',NULL,2765,2766,2414,1,1), +(2418,3,NULL,'Proprietary rights',NULL,2767,2768,2414,1,1), +(2419,3,NULL,'Trade secrets**',NULL,2769,2770,2414,1,1), +(2420,3,'K.5.2','Governmental Issues','K.5.2',2772,2779,1117,1,1), +(2421,3,NULL,'Censorship (NEW)',NULL,2773,2774,2420,1,1), +(2422,3,NULL,'Regulation',NULL,2775,2776,2420,1,1), +(2423,3,NULL,'Taxation',NULL,2777,2778,2420,1,1), +(2424,3,'K.5.m','Miscellaneous','K.5.m',2780,2785,1117,1,1), +(2425,3,NULL,'Contracts**',NULL,2781,2782,2424,1,1), +(2426,3,NULL,'Hardware patents**',NULL,2783,2784,2424,1,1), +(2427,3,'K.6.0','General','K.6.0',2788,2791,1118,1,1), +(2428,3,NULL,'Economics',NULL,2789,2790,2427,1,1), +(2429,3,'K.6.1','Project and People Management','K.6.1',2792,2807,1118,1,1), +(2430,3,NULL,'Life cycle',NULL,2793,2794,2429,1,1), +(2431,3,NULL,'Management techniques (e.g., PERT/CPM)',NULL,2795,2796,2429,1,1), +(2432,3,NULL,'Staffing',NULL,2797,2798,2429,1,1), +(2433,3,NULL,'Strategic information systems planning (NEW)',NULL,2799,2800,2429,1,1), +(2434,3,NULL,'Systems analysis and design',NULL,2801,2802,2429,1,1), +(2435,3,NULL,'Systems development',NULL,2803,2804,2429,1,1), +(2436,3,NULL,'Training',NULL,2805,2806,2429,1,1), +(2437,3,'K.6.2','Installation Management','K.6.2',2808,2819,1118,1,1), +(2438,3,NULL,'Benchmarks',NULL,2809,2810,2437,1,1), +(2439,3,NULL,'Computer selection',NULL,2811,2812,2437,1,1), +(2440,3,NULL,'Computing equipment management',NULL,2813,2814,2437,1,1), +(2441,3,NULL,'Performance and usage measurement',NULL,2815,2816,2437,1,1), +(2442,3,NULL,'Pricing and resource allocation',NULL,2817,2818,2437,1,1), +(2443,3,'K.6.3','Software Management (D.2.9)','K.6.3',2820,2829,1118,1,1), +(2444,3,NULL,'Software development',NULL,2821,2822,2443,1,1), +(2445,3,NULL,'Software maintenance',NULL,2823,2824,2443,1,1), +(2446,3,NULL,'Software process (NEW)',NULL,2825,2826,2443,1,1), +(2447,3,NULL,'Software selection',NULL,2827,2828,2443,1,1), +(2448,3,'K.6.4','System Management','K.6.4',2830,2837,1118,1,1), +(2449,3,NULL,'Centralization/decentralization',NULL,2831,2832,2448,1,1), +(2450,3,NULL,'Management audit',NULL,2833,2834,2448,1,1), +(2451,3,NULL,'Quality assurance',NULL,2835,2836,2448,1,1), +(2452,3,'K.6.5','Security and Protection (D.4.6, K.4.2)','K.6.5',2838,2849,1118,1,1), +(2453,3,NULL,'Authentication',NULL,2839,2840,2452,1,1), +(2454,3,NULL,'Insurance**',NULL,2841,2842,2452,1,1), +(2455,3,NULL,'Invasive software (e.g., viruses, worms, Trojan horses)',NULL,2843,2844,2452,1,1), +(2456,3,NULL,'Physical security**',NULL,2845,2846,2452,1,1), +(2457,3,NULL,'Unauthorized access (e.g., hacking, phreaking) (NEW)',NULL,2847,2848,2452,1,1), +(2458,3,'K.6.m','Miscellaneous','K.6.m',2850,2855,1118,1,1), +(2459,3,NULL,'Insurance*',NULL,2851,2852,2458,1,1), +(2460,3,NULL,'Security*',NULL,2853,2854,2458,1,1), +(2461,3,'K.7.0','General','K.7.0',2858,2859,1119,1,1), +(2462,3,'K.7.1','Occupations','K.7.1',2860,2861,1119,1,1), +(2463,3,'K.7.2','Organizations','K.7.2',2862,2863,1119,1,1), +(2464,3,'K.7.3','Testing, Certification, and Licensing','K.7.3',2864,2865,1119,1,1), +(2465,3,'K.7.4','Professional Ethics (K.4) (NEW)','K.7.4',2866,2873,1119,1,1), +(2466,3,NULL,'Codes of ethics (NEW)',NULL,2867,2868,2465,1,1), +(2467,3,NULL,'Codes of good practice (NEW)',NULL,2869,2870,2465,1,1), +(2468,3,NULL,'Ethical dilemmas (NEW)',NULL,2871,2872,2465,1,1), +(2469,3,'K.7.m','Miscellaneous','K.7.m',2874,2879,1119,1,1), +(2470,3,NULL,'Codes of good practice**',NULL,2875,2876,2469,1,1), +(2471,3,NULL,'Ethics**',NULL,2877,2878,2469,1,1), +(2472,3,NULL,'Games*',NULL,2882,2883,1120,1,1), +(2473,3,'K.8.0','General','K.8.0',2884,2887,1120,1,1), +(2474,3,NULL,'Games',NULL,2885,2886,2473,1,1), +(2475,3,'K.8.1','Application Packages','K.8.1',2888,2901,1120,1,1), +(2476,3,NULL,'Data communications',NULL,2889,2890,2475,1,1), +(2477,3,NULL,'Database processing',NULL,2891,2892,2475,1,1), +(2478,3,NULL,'Freeware/shareware (NEW)',NULL,2893,2894,2475,1,1), +(2479,3,NULL,'Graphics',NULL,2895,2896,2475,1,1), +(2480,3,NULL,'Spreadsheets',NULL,2897,2898,2475,1,1), +(2481,3,NULL,'Word processing',NULL,2899,2900,2475,1,1), +(2482,3,'K.8.2','Hardware','K.8.2',2902,2903,1120,1,1), +(2483,3,'K.8.3','Management/Maintenance','K.8.3',2904,2905,1120,1,1), +(2484,3,'K.8.m','Miscellaneous (NEW)','K.8.m',2906,2907,1120,1,1); \ No newline at end of file diff --git a/database/factories/create_collections_data_ddc.sql b/database/factories/create_collections_data_ddc.sql new file mode 100644 index 0000000..38e789c --- /dev/null +++ b/database/factories/create_collections_data_ddc.sql @@ -0,0 +1,1044 @@ +-- Dewey classification +/* The ten main classes are: see number at db below +0 Computer science, information & general works +1 Philosophy & psychology +2 Religion +3 Social sciences +4 Language +5 Science +6 Technology +7 Arts & recreation +8 Literature +9 History & geography +*/ + +INSERT INTO collections (id, role_id, number, name, oai_subset, left_id, right_id, parent_id, visible, visible_publish) VALUES +(3,2,'0','Informatik, Informationswissenschaft, allgemeine Werke','0',2,189,NULL,1,1), +(4,2,'1','Philosophie und Psychologie','1',190,389,NULL,1,1), +(5,2,'2','Religion','2',390,589,NULL,1,1), +(6,2,'3','Sozialwissenschaften','3',590,791,NULL,1,1), +(7,2,'4','Sprache','4',792,983,NULL,1,1), +(8,2,'5','Naturwissenschaften und Mathematik','5',984,1191,NULL,1,1), +(9,2,'6','Technik, Medizin, angewandte Wissenschaften','6',1192,1399,NULL,1,1), +(10,2,'7','Künste und Unterhaltung','7',1400,1613,NULL,1,1), +(11,2,'8','Literatur','8',1614,1833,NULL,1,1), +(12,2,'9','Geschichte und Geografie','9',1834,2053,NULL,1,1), +(13,2,'00','Informatik, Wissen, Systeme','00',3,18,3,1,1), +(14,2,'01','Bibliografien','01',19,38,3,1,1), +(15,2,'02','Bibliotheks- und Informationswissenschaften','02',39,56,3,1,1), +(16,2,'03','Enzyklopädien, Faktenbücher','03',57,78,3,1,1), +(17,2,'05','Zeitschriften, fortlaufende Sammelwerke','05',79,100,3,1,1), +(18,2,'06','Verbände, Organisationen, Museen','06',101,122,3,1,1), +(19,2,'07','Publizistische Medien, Journalismus, Verlagswesen','07',123,144,3,1,1), +(20,2,'08','Allgemeine Sammelwerke, Zitatensammlungen','08',145,166,3,1,1), +(21,2,'09','Handschriften, seltene Bücher','09',167,188,3,1,1), +(22,2,'10','Philosophie','10',191,210,4,1,1), +(23,2,'11','Metaphysik','11',211,230,4,0,1), +(24,2,'12','Epistemologie','12',231,250,4,0,1), +(25,2,'13','Parapsychologie, Okkultismus','13',251,266,4,1,1), +(26,2,'14','Philosophische Schulen','14',267,288,4,0,1), +(27,2,'15','Psychologie','15',289,304,4,1,1), +(28,2,'16','Logik','16',305,322,4,0,1), +(29,2,'17','Ethik','17',323,344,4,0,1), +(30,2,'18','Antike, mittelalterliche und östliche Philosophie','18',345,366,4,0,1), +(31,2,'19','Neuzeitliche westliche Philosophie','19',367,388,4,0,1), +(32,2,'20','Religion','20',391,412,5,1,1), +(33,2,'21','Religionsphilosophie, Religionstheorie','21',413,428,5,0,1), +(34,2,'22','Bibel','22',429,450,5,1,1), +(35,2,'23','Christentum, Christliche Theologie','23',451,470,5,1,1), +(36,2,'24','Christliche Erfahrung, christliches Leben','24',471,488,5,0,1), +(37,2,'25','Christliche Pastoraltheologie, Ordensgemeinschaften','25',489,504,5,0,1), +(38,2,'26','Kirchenorganisation, Sozialarbeit, Religionsausübung','26',505,526,5,0,1), +(39,2,'27','Geschichte des Christentums','27',527,548,5,0,1), +(40,2,'28','Christliche Konfessionen','28',549,568,5,0,1), +(41,2,'29','Andere Religionen','29',569,588,5,1,1), +(42,2,'30','Sozialwissenschaften, Soziologie','30',591,608,6,1,1), +(43,2,'31','Statistiken','31',609,624,6,1,1), +(44,2,'32','Politikwissenschaft','32',625,644,6,1,1), +(45,2,'33','Wirtschaft','33',645,666,6,1,1), +(46,2,'34','Recht','34',667,688,6,1,1), +(47,2,'35','Öffentliche Verwaltung, Militärwissenschaft','35',689,710,6,1,1), +(48,2,'36','Soziale Probleme, Sozialdienste','36',711,732,6,1,1), +(49,2,'37','Bildung und Erziehung','37',733,750,6,1,1), +(50,2,'38','Handel, Kommunikation, Verkehr','38',751,772,6,1,1), +(51,2,'39','Bräuche, Etikette, Folklore','39',773,790,6,1,1), +(52,2,'40','Sprache','40',793,814,7,1,1), +(53,2,'41','Linguistik','41',815,834,7,0,1), +(54,2,'42','Englisch, Altenglisch','42',835,852,7,1,1), +(55,2,'43','Deutsch, germanische Sprachen allgemein','43',853,870,7,1,1), +(56,2,'44','Französisch, romanische Sprachen allgemein','44',871,888,7,1,1), +(57,2,'45','Italienisch, Rumänisch, Rätoromanisch','45',889,906,7,1,1), +(58,2,'46','Spanisch, Portugiesisch','46',907,924,7,1,1), +(59,2,'47','Latein, italische Sprachen','47',925,942,7,1,1), +(60,2,'48','Griechisch','48',943,960,7,1,1), +(61,2,'49','Andere Sprachen','49',961,982,7,1,1), +(62,2,'50','Naturwissenschaften','50',985,1004,8,1,1), +(63,2,'51','Mathematik','51',1005,1024,8,1,1), +(64,2,'52','Astronomie','52',1025,1044,8,1,1), +(65,2,'53','Physik','53',1045,1066,8,1,1), +(66,2,'54','Chemie','54',1067,1084,8,1,1), +(67,2,'55','Geowissenschaften, Geologie','55',1085,1106,8,1,1), +(68,2,'56','Fossilien, Paläontologie','56',1107,1128,8,1,1), +(69,2,'57','Biowissenschaften, Biologie','57',1129,1148,8,1,1), +(70,2,'58','Pflanzen (Botanik)','58',1149,1168,8,1,1), +(71,2,'59','Tiere (Zoologie)','59',1169,1190,8,1,1), +(72,2,'60','Technik','60',1193,1214,9,1,1), +(73,2,'61','Medizin und Gesundheit','61',1215,1234,9,1,1), +(74,2,'62','Ingenieurwissenschaften','62',1235,1254,9,1,1), +(75,2,'63','Landwirtschaft','63',1255,1276,9,1,1), +(76,2,'64','Hauswirtschaft und Familie','64',1277,1298,9,1,1), +(77,2,'65','Management, Öffentlichkeitsarbeit','65',1299,1314,9,1,1), +(78,2,'66','Chemische Verfahrenstechnik','66',1315,1336,9,1,1), +(79,2,'67','Industrielle Fertigung','67',1337,1358,9,1,1), +(80,2,'68','Industrielle Fertigung für einzelne Verwendungszwecke','68',1359,1378,9,0,1), +(81,2,'69','Hausbau, Bauhandwerk','69',1379,1398,9,1,1), +(82,2,'70','Künste','70',1401,1422,10,1,1), +(83,2,'71','Landschaftsgestaltung, Raumplanung','71',1423,1444,10,1,1), +(84,2,'72','Architektur','72',1445,1466,10,1,1), +(85,2,'73','Bildhauerkunst, Keramik, Metallkunst','73',1467,1488,10,1,1), +(86,2,'74','Zeichnung, angewandte Kunst','74',1489,1510,10,1,1), +(87,2,'75','Malerei','75',1511,1530,10,1,1), +(88,2,'76','Grafik','76',1531,1548,10,1,1), +(89,2,'77','Fotografie, Computerkunst','77',1549,1568,10,1,1), +(90,2,'78','Musik','78',1569,1590,10,1,1), +(91,2,'79','Sport, Spiele, Unterhaltung','79',1591,1612,10,1,1), +(92,2,'80','Literatur, Rhetorik, Literaturwissenschaft','80',1615,1634,11,1,1), +(93,2,'81','Amerikanische Literatur in Englisch','81',1635,1656,11,1,1), +(94,2,'82','Englische, altenglische Literaturen','82',1657,1678,11,1,1), +(95,2,'83','Deutsche und verwandte Literaturen','83',1679,1700,11,1,1), +(96,2,'84','Französische und verwandte Literaturen','84',1701,1722,11,1,1), +(97,2,'85','Italienische, rumänische, rätoromanische Literaturen','85',1723,1744,11,1,1), +(98,2,'86','Spanische, portugiesische Literaturen','86',1745,1766,11,1,1), +(99,2,'87','Lateinische, italische Literaturen','87',1767,1788,11,1,1), +(100,2,'88','Griechische Literaturen','88',1789,1810,11,1,1), +(101,2,'89','Andere Literaturen','89',1811,1832,11,1,1), +(102,2,'90','Geschichte','90',1835,1856,12,1,1), +(103,2,'91','Geografie, Reisen','91',1857,1880,12,1,1), +(104,2,'92','Biografie, Genealogie','92',1881,1902,12,1,1), +(105,2,'93','Geschichte des Altertums (bis ca. 499), Archäologie','93',1903,1924,12,1,1), +(106,2,'94','Geschichte Europas','94',1925,1946,12,1,1), +(107,2,'95','Geschichte Asiens','95',1947,1968,12,1,1), +(108,2,'96','Geschichte Afrikas','96',1969,1990,12,1,1), +(109,2,'97','Geschichte Nordamerikas','97',1991,2012,12,1,1), +(110,2,'98','Geschichte Südamerikas','98',2013,2034,12,1,1), +(111,2,'99','Geschichte anderer Gebiete','99',2035,2052,12,1,1), +(112,2,'000','Informatik, Informationswissenschaft, allgemeine Werke','000',4,5,13,1,1), +(113,2,'001','Wissen','001',6,7,13,0,1), +(114,2,'002','Das Buch','002',8,9,13,0,1), +(115,2,'003','Systeme','003',10,11,13,0,1), +(116,2,'004','Datenverarbeitung, Informatik','004',12,13,13,1,1), +(117,2,'005','Computerprogrammierung, Programme, Daten','005',14,15,13,0,1), +(118,2,'006','Spezielle Computerverfahren','006',16,17,13,0,1), +(119,2,'010','Bibliografie','010',20,21,14,0,1), +(120,2,'011','Bibliografien','011',22,23,14,0,1), +(121,2,'012','Bibliografien von Einzelpersonen','012',24,25,14,0,1), +(122,2,'014','Bibliografien anonymer und pseudonymer Werke','014',26,27,14,0,1), +(123,2,'015','Bibliografien von Werken aus einzelnen Orten','015',28,29,14,0,1), +(124,2,'016','Bibliografien von Werken über einzelne Themen','016',30,31,14,0,1), +(125,2,'017','Allgemeine Sachkataloge','017',32,33,14,0,1), +(126,2,'018','Kataloge nach Autor, Erscheinungsjahr usw.','018',34,35,14,0,1), +(127,2,'019','Kreuzkataloge','019',36,37,14,0,1), +(128,2,'020','Bibliotheks- und Informationswissenschaften','020',40,41,15,0,1), +(129,2,'021','Beziehungen zwischen Bibliotheken','021',42,43,15,0,1), +(130,2,'022','Verwaltung von Bibliotheksgebäuden','022',44,45,15,0,1), +(131,2,'023','Personalmanagement','023',46,47,15,0,1), +(132,2,'025','Bibliothekarische Tätigkeiten','025',48,49,15,0,1), +(133,2,'026','Spezialbibliotheken','026',50,51,15,0,1), +(134,2,'027','Allgemeinbibliotheken','027',52,53,15,0,1), +(135,2,'028','Lesen und Nutzung anderer Informationsmedien','028',54,55,15,0,1), +(136,2,'030','Allgemeinenzyklopädien','030',58,59,16,0,1), +(137,2,'031','Enzyklopädien in amerikanischem Englisch','031',60,61,16,0,1), +(138,2,'032','Enzyklopädien in Englisch','032',62,63,16,0,1), +(139,2,'033','Enzyklopädien in Deutsch und Niederländisch','033',64,65,16,0,1), +(140,2,'034','Enzyklopädien in Französisch, Okzitanisch und Katalanisch','034',66,67,16,0,1), +(141,2,'035','Enzyklopädien in Italienisch, Rumänisch und Rätoromanisch','035',68,69,16,0,1), +(142,2,'036','Enzyklopädien in Spanisch und Portugiesisch','036',70,71,16,0,1), +(143,2,'037','Enzyklopädien in slawischen Sprachen','037',72,73,16,0,1), +(144,2,'038','Enzyklopädien in skandinavischen Sprachen','038',74,75,16,0,1), +(145,2,'039','Enzyklopädien in anderen Sprachen','039',76,77,16,0,1), +(146,2,'050','Zeitschriften, allgemeine fortlaufende Sammelwerke','050',80,81,17,0,1), +(147,2,'051','Fortlaufende Sammelwerke in amerikanischem Englisch','051',82,83,17,0,1), +(148,2,'052','Fortlaufende Sammelwerke in Englisch','052',84,85,17,0,1), +(149,2,'053','Fortlaufende Sammelwerke in Deutsch und Niederländisch','053',86,87,17,0,1), +(150,2,'054','Fortlaufende Sammelwerke in Französisch, Okzitanisch und Katalanisch','054',88,89,17,0,1), +(151,2,'055','Fortlaufende Sammelwerke in Italienisch, Rumänisch und Rätoromanisch','055',90,91,17,0,1), +(152,2,'056','Fortlaufende Sammelwerke in Spanisch und Portugiesisch','056',92,93,17,0,1), +(153,2,'057','Fortlaufende Sammelwerke in slawischen Sprachen','057',94,95,17,0,1), +(154,2,'058','Fortlaufende Sammelwerke in skandinavischen Sprachen','058',96,97,17,0,1), +(155,2,'059','Fortlaufende Sammelwerke in anderen Sprachen','059',98,99,17,0,1), +(156,2,'060','Allgemeine Organisationen, Museumswissenschaft','060',102,103,18,0,1), +(157,2,'061','Allgemeine Organisationen in Nordamerika','061',104,105,18,0,1), +(158,2,'062','Allgemeine Organisationen auf den Britischen Inseln, in England','062',106,107,18,0,1), +(159,2,'063','Allgemeine Organisationen in Mitteleuropa, in Deutschland','063',108,109,18,0,1), +(160,2,'064','Allgemeine Organisationen in Frankreich und Monaco','064',110,111,18,0,1), +(161,2,'065','Allgemeine Organisationen in Italien und auf benachbarten Inseln','065',112,113,18,0,1), +(162,2,'066','Allgemeine Organisationen auf der Iberischen Halbinsel und benachbarten Inseln','066',114,115,18,0,1), +(163,2,'067','Allgemeine Organisationen in Osteuropa, in Russland','067',116,117,18,0,1), +(164,2,'068','Allgemeine Organisationen in anderen geografischen Gebieten','068',118,119,18,0,1), +(165,2,'069','Museumswissenschaft','069',120,121,18,0,1), +(166,2,'070','Publizistische Medien, Journalismus, Verlagswesen','070',124,125,19,0,1), +(167,2,'071','Journalismus und Zeitungen in Nordamerika','071',126,127,19,0,1), +(168,2,'072','Journalismus und Zeitungen auf den Britischen Inseln, in England','072',128,129,19,0,1), +(169,2,'073','Journalismus und Zeitungen in Mitteleuropa, in Deutschland','073',130,131,19,0,1), +(170,2,'074','Journalismus und Zeitungen in Frankreich und Monaco','074',132,133,19,0,1), +(171,2,'075','Journalismus und Zeitungen in Italien und auf benachbarten Inseln','075',134,135,19,0,1), +(172,2,'076','Journalismus und Zeitungen auf der Iberischen Halbinsel und benachbarten Inseln','076',136,137,19,0,1), +(173,2,'077','Journalismus und Zeitungen in Osteuropa, in Russland','077',138,139,19,0,1), +(174,2,'078','Journalismus und Zeitungen in Skandinavien','078',140,141,19,0,1), +(175,2,'079','Journalismus und Zeitungen in anderen geografischen Gebieten','079',142,143,19,0,1), +(176,2,'080','Allgemeine Sammelwerke, Zitatensammlungen','080',146,147,20,0,1), +(177,2,'081','Sammelwerke in amerikanischem Englisch','081',148,149,20,0,1), +(178,2,'082','Sammelwerke in Englisch','082',150,151,20,0,1), +(179,2,'083','Sammelwerke in Deutsch und Niederländisch','083',152,153,20,0,1), +(180,2,'084','Sammelwerke in Französisch, Okzitanisch und Katalanisch','084',154,155,20,0,1), +(181,2,'085','Sammelwerke in Italienisch, Rumänisch und Rätoromanisch','085',156,157,20,0,1), +(182,2,'086','Sammelwerke in Spanisch und Portugiesisch','086',158,159,20,0,1), +(183,2,'087','Sammelwerke in slawischen Sprachen','087',160,161,20,0,1), +(184,2,'088','Sammelwerke in skandinavischen Sprachen','088',162,163,20,0,1), +(185,2,'089','Sammelwerke in anderen Sprachen','089',164,165,20,0,1), +(186,2,'090','Handschriften, seltene Bücher','090',168,169,21,0,1), +(187,2,'091','Handschriften','091',170,171,21,0,1), +(188,2,'092','Blockbücher','092',172,173,21,0,1), +(189,2,'093','Inkunabeln','093',174,175,21,0,1), +(190,2,'094','Gedruckte Bücher','094',176,177,21,0,1), +(191,2,'095','Bücher mit besonderem Einband','095',178,179,21,0,1), +(192,2,'096','Bücher mit besonderen Illustrationen','096',180,181,21,0,1), +(193,2,'097','Bücher aus besonderem Besitz oder besonderer Herkunft','097',182,183,21,0,1), +(194,2,'098','Verbotene Werke, Fälschungen, Scherzdrucke','098',184,185,21,0,1), +(195,2,'099','Bücher mit besonderem Format','099',186,187,21,0,1), +(196,2,'100','Philosophie und Psychologie','100',192,193,22,0,1), +(197,2,'101','Theorie der Philosophie','101',194,195,22,0,1), +(198,2,'102','Verschiedenes','102',196,197,22,0,1), +(199,2,'103','Wörterbücher, Enzyklopädien','103',198,199,22,0,1), +(200,2,'105','Fortlaufende Sammelwerke','105',200,201,22,0,1), +(201,2,'106','Organisationen, Management','106',202,203,22,0,1), +(202,2,'107','Ausbildung, Forschung, verwandte Themen','107',204,205,22,0,1), +(203,2,'108','Behandlung nach Personengruppen','108',206,207,22,0,1), +(204,2,'109','Histor. Behandlung, Behandlung mehrerer Einzelpersonen','109',208,209,22,0,1), +(205,2,'110','Metaphysik','110',212,213,23,1,1), +(206,2,'111','Ontologie','111',214,215,23,1,1), +(207,2,'113','Kosmologie','113',216,217,23,1,1), +(208,2,'114','Raum','114',218,219,23,1,1), +(209,2,'115','Zeit','115',220,221,23,1,1), +(210,2,'116','Veränderung','116',222,223,23,1,1), +(211,2,'117','Struktur','117',224,225,23,1,1), +(212,2,'118','Kraft und Energie','118',226,227,23,1,1), +(213,2,'119','Zahl und Quantität','119',228,229,23,1,1), +(214,2,'120','Epistemologie, Kausalität, Menschheit','120',232,233,24,1,1), +(215,2,'121','Epistemologie','121',234,235,24,1,1), +(216,2,'122','Kausalität','122',236,237,24,1,1), +(217,2,'123','Determinismus, Indeterminismus','123',238,239,24,1,1), +(218,2,'124','Teleologie','124',240,241,24,1,1), +(219,2,'126','Das Selbst','126',242,243,24,1,1), +(220,2,'127','Das Unbewusste, das Unterbewusste','127',244,245,24,1,1), +(221,2,'128','Menschheit','128',246,247,24,1,1), +(222,2,'129','Ursprung und Schicksal individueller Seelen','129',248,249,24,1,1), +(223,2,'130','Parapsychologie und Okkultismus','130',252,253,25,0,1), +(224,2,'131','Parapsychologische und okkulte Techniken','131',254,255,25,0,1), +(225,2,'133','Einzelne Themen der Parapsychologie und des Okkultismus','133',256,257,25,0,1), +(226,2,'135','Träume, Mysterien','135',258,259,25,0,1), +(227,2,'137','Divinatorische Graphologie','137',260,261,25,0,1), +(228,2,'138','Physiognomie','138',262,263,25,0,1), +(229,2,'139','Phrenologie','139',264,265,25,0,1), +(230,2,'140','Einzelne philosophische Schulen','140',268,269,26,1,1), +(231,2,'141','Idealismus und verwandte Systeme','141',270,271,26,1,1), +(232,2,'142','Kritizismus','142',272,273,26,1,1), +(233,2,'143','Bergsonismus, Intuitionismus','143',274,275,26,1,1), +(234,2,'144','Humanismus und verwandte Systeme','144',276,277,26,1,1), +(235,2,'145','Sensualismus','145',278,279,26,1,1), +(236,2,'146','Naturalismus und verwandte Systeme','146',280,281,26,1,1), +(237,2,'147','Pantheismus und verwandte Systeme','147',282,283,26,1,1), +(238,2,'148','Eklektizismus, Liberalismus, Traditionalismus','148',284,285,26,1,1), +(239,2,'149','Andere philosophische Systeme','149',286,287,26,1,1), +(240,2,'150','Psychologie','150',290,291,27,0,1), +(241,2,'152','Sinneswahrnehmung, Bewegung, Emotionen, Triebe','152',292,293,27,0,1), +(242,2,'153','Kognitive Prozesse, Intelligenz','153',294,295,27,0,1), +(243,2,'154','Unterbewusste und bewusstseinsveränderte Zustände','154',296,297,27,0,1), +(244,2,'155','Differentielle Psychologie, Entwicklungspsychologie','155',298,299,27,0,1), +(245,2,'156','Vergleichende Psychologie','156',300,301,27,0,1), +(246,2,'158','Angewandte Psychologie','158',302,303,27,0,1), +(247,2,'160','Logik','160',306,307,28,1,1), +(248,2,'161','Induktion','161',308,309,28,1,1), +(249,2,'162','Deduktion','162',310,311,28,1,1), +(250,2,'165','Fehlschlüsse, Fehlerquellen','165',312,313,28,1,1), +(251,2,'166','Syllogismen','166',314,315,28,1,1), +(252,2,'167','Hypothesen','167',316,317,28,1,1), +(253,2,'168','Argument, Überzeugungung','168',318,319,28,1,1), +(254,2,'169','Analogie','169',320,321,28,1,1), +(255,2,'170','Ethik','170',324,325,29,1,1), +(256,2,'171','Ethische Systeme','171',326,327,29,1,1), +(257,2,'172','Politische Ethik','172',328,329,29,1,1), +(258,2,'173','Familienethik','173',330,331,29,1,1), +(259,2,'174','Berufsethik','174',332,333,29,1,1), +(260,2,'175','Ethik von Freizeit und Erholung','175',334,335,29,1,1), +(261,2,'176','Sexual- und Reproduktionsethik','176',336,337,29,1,1), +(262,2,'177','Ethik sozialer Beziehungen','177',338,339,29,1,1), +(263,2,'178','Konsumethik','178',340,341,29,1,1), +(264,2,'179','Andere ethische Normen','179',342,343,29,1,1), +(265,2,'180','Antike, mittelalterliche und östliche Philosophie','180',346,347,30,1,1), +(266,2,'181','Östliche Philosophie','181',348,349,30,1,1), +(267,2,'182','Vorsokratische griechische Philosophien','182',350,351,30,1,1), +(268,2,'183','Sokratische und verwandte Philosophien','183',352,353,30,1,1), +(269,2,'184','Platonische Philosophie','184',354,355,30,1,1), +(270,2,'185','Aristotelische Philosophie','185',356,357,30,1,1), +(271,2,'186','Skeptische und neuplatonische Philosophien','186',358,359,30,1,1), +(272,2,'187','Epikureische Philosophie','187',360,361,30,1,1), +(273,2,'188','Stoische Philosophie','188',362,363,30,1,1), +(274,2,'189','Mittelalterliche westliche Philosophie','189',364,365,30,1,1), +(275,2,'190','Neuzeitliche westliche Philosophie','190',368,369,31,1,1), +(276,2,'191','Philosophie in den USA und Kanada','191',370,371,31,1,1), +(277,2,'192','Philosophie auf den Britischen Inseln','192',372,373,31,1,1), +(278,2,'193','Philosophie in Deutschland und Österreich','193',374,375,31,1,1), +(279,2,'194','Philosophie in Frankreich','194',376,377,31,1,1), +(280,2,'195','Philosophie in Italien','195',378,379,31,1,1), +(281,2,'196','Philosophie in Spanien und Portugal','196',380,381,31,1,1), +(282,2,'197','Philosophie in Russland und der früheren Sowjetunion','197',382,383,31,1,1), +(283,2,'198','Philosophie in Skandinavien','198',384,385,31,1,1), +(284,2,'199','Philosophie in anderen geografischen Gebieten','199',386,387,31,1,1), +(285,2,'200','Religion','200',392,393,32,0,1), +(286,2,'201','Religiöse Mythologie, Soziallehre','201',394,395,32,0,1), +(287,2,'202','Lehren','202',396,397,32,0,1), +(288,2,'203','Gottesdienst und andere Formen der öffentlichen Religionsausübung','203',398,399,32,0,1), +(289,2,'204','Religiöse Erfahrung, religiöses Leben, religiöse Praxis','204',400,401,32,0,1), +(290,2,'205','Religiöse Ethik','205',402,403,32,0,1), +(291,2,'206','Religiöse Führer und Organisation','206',404,405,32,0,1), +(292,2,'207','Mission, religiöse Erziehung','207',406,407,32,0,1), +(293,2,'208','Quellen','208',408,409,32,0,1), +(294,2,'209','Sekten, Reformbewegungen','209',410,411,32,0,1), +(295,2,'210','Religionsphilosophie, Religionstheorie','210',414,415,33,1,1), +(296,2,'211','Gottesvorstellungen','211',416,417,33,1,1), +(297,2,'212','Gottesfrage, Gotteserkenntnis, Eigenschaften Gottes','212',418,419,33,1,1), +(298,2,'213','Schöpfung','213',420,421,33,1,1), +(299,2,'214','Theodizee','214',422,423,33,1,1), +(300,2,'215','Naturwissenschaft und Religion','215',424,425,33,1,1), +(301,2,'218','Der Mensch','218',426,427,33,1,1), +(302,2,'220','Bibel','220',430,431,34,0,1), +(303,2,'221','Altes Testament (Tenach)','221',432,433,34,0,1), +(304,2,'222','Geschichtsbücher des Alten Testaments','222',434,435,34,0,1), +(305,2,'223','Poetische Bücher des Alten Testaments','223',436,437,34,0,1), +(306,2,'224','Prophetische Bücher des Alten Testaments','224',438,439,34,0,1), +(307,2,'225','Neues Testament','225',440,441,34,0,1), +(308,2,'226','Evangelien, Apostelgeschichte','226',442,443,34,0,1), +(309,2,'227','Briefe','227',444,445,34,0,1), +(310,2,'228','Johannes-Apokalypse (Offenbarung des Johannes)','228',446,447,34,0,1), +(311,2,'229','Apokryphen, Pseudepigraphen','229',448,449,34,0,1), +(312,2,'230','Christentum, Christliche Theologie','230',452,453,35,0,1), +(313,2,'231','Gott','231',454,455,35,0,1), +(314,2,'232','Jesus Christus und seine Familie','232',456,457,35,0,1), +(315,2,'233','Der Mensch','233',458,459,35,0,1), +(316,2,'234','Erlösung, Gnade','234',460,461,35,0,1), +(317,2,'235','Geistliche Wesen','235',462,463,35,0,1), +(318,2,'236','Eschatologie','236',464,465,35,0,1), +(319,2,'238','Glaubensbekenntnisse, Katechismen','238',466,467,35,0,1), +(320,2,'239','Apologetik, Polemik','239',468,469,35,0,1), +(321,2,'240','Christliche Ethik, spirituelle Theologie','240',472,473,36,1,1), +(322,2,'241','Christliche Ethik','241',474,475,36,1,1), +(323,2,'242','Erbauungsliteratur','242',476,477,36,1,1), +(324,2,'243','Evangelistisches Schrifttum für Einzelpersonen','243',478,479,36,1,1), +(325,2,'246','Kunst im Christentum','246',480,481,36,1,1), +(326,2,'247','Kirchenausstattung, liturgisches Gerät','247',482,483,36,1,1), +(327,2,'248','Christliche Erfahrung, christliche Praxis, christliches Leben','248',484,485,36,1,1), +(328,2,'249','Christliches Leben in der Familie','249',486,487,36,1,1), +(329,2,'250','Christliche Orden und Ortskirchen','250',490,491,37,1,1), +(330,2,'251','Homiletik','251',492,493,37,1,1), +(331,2,'252','Predigttexte','252',494,495,37,1,1), +(332,2,'253','Pastoraltheologie','253',496,497,37,1,1), +(333,2,'254','Gemeindeverwaltung','254',498,499,37,1,1), +(334,2,'255','Religiöse Kongregationen und Orden','255',500,501,37,1,1), +(335,2,'259','Familienseelsorge, Kategorialseelsorge','259',502,503,37,1,1), +(336,2,'260','Soziallehre, Ekklesiologie','260',506,507,38,1,1), +(337,2,'261','Soziallehre','261',508,509,38,1,1), +(338,2,'262','Ekklesiologie','262',510,511,38,1,1), +(339,2,'263','Heilige Tage, Zeiten und Orte','263',512,513,38,1,1), +(340,2,'264','Öffentliche Religionsausübung','264',514,515,38,1,1), +(341,2,'265','Sakramente, andere Riten und Handlungen','265',516,517,38,1,1), +(342,2,'266','Mission','266',518,519,38,1,1), +(343,2,'267','Religiöse Verbände','267',520,521,38,1,1), +(344,2,'268','Religiöse Erziehung','268',522,523,38,1,1), +(345,2,'269','Geistliche Erneuerung','269',524,525,38,1,1), +(346,2,'270','Geschichte des Christentums, Kirchengeschichte','270',528,529,39,1,1), +(347,2,'271','Religiöse Orden in der Kirchengeschichte','271',530,531,39,1,1), +(348,2,'272','Verfolgung in der Kirchengeschichte','272',532,533,39,1,1), +(349,2,'273','Dogmatische Kontroversen, Häresie','273',534,535,39,1,1), +(350,2,'274','Geschichte des Christentums in Europa','274',536,537,39,1,1), +(351,2,'275','Geschichte des Christentums in Asien','275',538,539,39,1,1), +(352,2,'276','Geschichte des Christentums in Afrika','276',540,541,39,1,1), +(353,2,'277','Geschichte des Christentums in Nordamerika','277',542,543,39,1,1), +(354,2,'278','Geschichte des Christentums in Südamerika','278',544,545,39,1,1), +(355,2,'279','Geschichte des Christentums in anderen Gebieten','279',546,547,39,1,1), +(356,2,'280','Christliche Konfessionen und Sekten','280',550,551,40,1,1), +(357,2,'281','Alte Kirche, Ostkirchen','281',552,553,40,1,1), +(358,2,'282','Römisch-Katholische Kirche','282',554,555,40,1,1), +(359,2,'283','Anglikanische Kirchen','283',556,557,40,1,1), +(360,2,'284','Protestanten kontinentaleuropäischen Ursprungs','284',558,559,40,1,1), +(361,2,'285','Presbyterianer, Reformierte, Kongregationalisten','285',560,561,40,1,1), +(362,2,'286','Baptisten, Disciples of Christ, Adventisten','286',562,563,40,1,1), +(363,2,'287','Methodisten und verwandte Kirchen','287',564,565,40,1,1), +(364,2,'289','Andere Konfessionen und Sekten','289',566,567,40,1,1), +(365,2,'290','Andere Religionen','290',570,571,41,0,1), +(366,2,'292','Griechische und römische Religion','292',572,573,41,0,1), +(367,2,'293','Germanische Religion','293',574,575,41,0,1), +(368,2,'294','Religionen indischen Ursprungs','294',576,577,41,0,1), +(369,2,'295','Parsismus','295',578,579,41,0,1), +(370,2,'296','Judentum','296',580,581,41,0,1), +(371,2,'297','Islam, Babismus, Bahaismus','297',582,583,41,0,1), +(372,2,'298','(Optionale Notation)','298',584,585,41,0,1), +(373,2,'299','An anderer Stelle nicht vorgesehene Religionen','299',586,587,41,0,1), +(374,2,'300','Sozialwissenschaften','300',592,593,42,0,1), +(375,2,'301','Soziologie, Anthropologie','301',594,595,42,0,1), +(376,2,'302','Soziale Interaktion','302',596,597,42,0,1), +(377,2,'303','Gesellschaftliche Prozesse','303',598,599,42,0,1), +(378,2,'304','Das Sozialverhalten beeinflussende Faktoren','304',600,601,42,0,1), +(379,2,'305','Soziale Gruppen','305',602,603,42,0,1), +(380,2,'306','Kultur und Institutionen','306',604,605,42,0,1), +(381,2,'307','Gemeinschaften','307',606,607,42,0,1), +(382,2,'310','Sammlungen allgemeiner Statistiken','310',610,611,43,0,1), +(383,2,'314','Allgemeine Statistiken zu Europa','314',612,613,43,0,1), +(384,2,'315','Allgemeine Statistiken zu Asien','315',614,615,43,0,1), +(385,2,'316','Allgemeine Statistiken zu Afrika','316',616,617,43,0,1), +(386,2,'317','Allgemeine Statistiken zu Nordamerika','317',618,619,43,0,1), +(387,2,'318','Allgemeine Statistiken zu Südamerika','318',620,621,43,0,1), +(388,2,'319','Allgemeine Statistiken zu anderen Gebieten','319',622,623,43,0,1), +(389,2,'320','Politikwissenschaft','320',626,627,44,0,1), +(390,2,'321','Staatsformen und Regierungssysteme','321',628,629,44,0,1), +(391,2,'322','Beziehungen des Staats zu organisierten Gruppen','322',630,631,44,0,1), +(392,2,'323','Grundrechte und politische Rechte','323',632,633,44,0,1), +(393,2,'324','Der politische Prozess','324',634,635,44,0,1), +(394,2,'325','Internationale Migration, Kolonisation','325',636,637,44,0,1), +(395,2,'326','Sklaverei und Sklavenbefreiung','326',638,639,44,0,1), +(396,2,'327','Internationale Beziehungen','327',640,641,44,0,1), +(397,2,'328','Der Gesetzgebungsprozess','328',642,643,44,0,1), +(398,2,'330','Wirtschaft','330',646,647,45,0,1), +(399,2,'331','Arbeitsökonomie','331',648,649,45,0,1), +(400,2,'332','Finanzwirtschaft','332',650,651,45,0,1), +(401,2,'333','Boden- und Energiewirtschaft','333',652,653,45,0,1), +(402,2,'334','Genossenschaften','334',654,655,45,0,1), +(403,2,'335','Sozialismus und verwandte Systeme','335',656,657,45,0,1), +(404,2,'336','Öffentliche Finanzen','336',658,659,45,0,1), +(405,2,'337','Weltwirtschaft','337',660,661,45,0,1), +(406,2,'338','Produktion','338',662,663,45,0,1), +(407,2,'339','Makroökonomie und verwandte Themen','339',664,665,45,0,1), +(408,2,'340','Recht','340',668,669,46,0,1), +(409,2,'341','Völkerrecht','341',670,671,46,0,1), +(410,2,'342','Verfassungs- und Verwaltungsrecht','342',672,673,46,0,1), +(411,2,'343','Wehrrecht, Steuerrecht, Wirtschaftsrecht','343',674,675,46,0,1), +(412,2,'344','Arbeitsrecht, Sozialrecht, Bildungsrecht, Kulturrecht','344',676,677,46,0,1), +(413,2,'345','Strafrecht','345',678,679,46,0,1), +(414,2,'346','Privatrecht','346',680,681,46,0,1), +(415,2,'347','Zivilprozessrecht, Zivilgerichte','347',682,683,46,0,1), +(416,2,'348','Gesetze, Verordnungen, Rechtsfälle','348',684,685,46,0,1), +(417,2,'349','Recht einzelner Gebietskörperschaften und Gebiete','349',686,687,46,0,1), +(418,2,'350','Öffentliche Verwaltung, Militärwissenschaft','350',690,691,47,1,1), +(419,2,'351','Öffentliche Verwaltung','351',692,693,47,0,1), +(420,2,'352','Allgemeines zur öffentlichen Verwaltung','352',694,695,47,0,1), +(421,2,'353','Einzelne Bereiche der öffentlichen Verwaltung','353',696,697,47,0,1), +(422,2,'354','Verwaltung von Wirtschaft und Umwelt','354',698,699,47,0,1), +(423,2,'355','Militärwissenschaft','355',700,701,47,1,1), +(424,2,'356','Infanterie und Kampfführung','356',702,703,47,0,1), +(425,2,'357','Kavalleriestreitkräfte und Kampfführung','357',704,705,47,0,1), +(426,2,'358','Luftstreitkräfte und andere spezialisierte Streitkräfte','358',706,707,47,0,1), +(427,2,'359','Seestreitkräfte und Kampfführung','359',708,709,47,0,1), +(428,2,'360','Soziale Probleme und Sozialdienste, Verbände','360',712,713,48,0,1), +(429,2,'361','Soziale Probleme und Sozialhilfe im Allgemeinen','361',714,715,48,0,1), +(430,2,'362','Probleme und Dienste der Sozialhilfe','362',716,717,48,0,1), +(431,2,'363','Andere soziale Probleme und Sozialdienste','363',718,719,48,0,1), +(432,2,'364','Kriminologie','364',720,721,48,0,1), +(433,2,'365','Justizvollzugsanstalten und verwandte Einrichtungen','365',722,723,48,0,1), +(434,2,'366','Verbände','366',724,725,48,0,1), +(435,2,'367','Allgemeine Klubs','367',726,727,48,0,1), +(436,2,'368','Versicherungen','368',728,729,48,0,1), +(437,2,'369','Verschiedene Arten von Verbänden','369',730,731,48,0,1), +(438,2,'370','Bildung und Erziehung','370',734,735,49,0,1), +(439,2,'371','Schulen, schulische Tätigkeiten, Sonderpädagogik','371',736,737,49,0,1), +(440,2,'372','Primar- und Elementarbildung','372',738,739,49,0,1), +(441,2,'373','Sekundarbildung','373',740,741,49,0,1), +(442,2,'374','Erwachsenenbildung','374',742,743,49,0,1), +(443,2,'375','Curricula','375',744,745,49,0,1), +(444,2,'378','Hochschulbildung','378',746,747,49,0,1), +(445,2,'379','Bildungspolitik','379',748,749,49,0,1), +(446,2,'380','Handel, Kommunikation, Verkehr','380',752,753,50,0,1), +(447,2,'381','Handel','381',754,755,50,0,1), +(448,2,'382','Internationaler Handel','382',756,757,50,0,1), +(449,2,'383','Postverkehr','383',758,759,50,0,1), +(450,2,'384','Kommunikation, Telekommunikation','384',760,761,50,0,1), +(451,2,'385','Schienenverkehr','385',762,763,50,0,1), +(452,2,'386','Binnenschifffahrt, Fährverkehr','386',764,765,50,0,1), +(453,2,'387','Schifffahrt, Luft-, Weltraumverkehr','387',766,767,50,0,1), +(454,2,'388','Verkehr, Landverkehr','388',768,769,50,0,1), +(455,2,'389','Metrologie, Normung','389',770,771,50,0,1), +(456,2,'390','Bräuche, Etikette, Folklore','390',774,775,51,0,1), +(457,2,'391','Kleidung, äußeres Erscheinungsbild','391',776,777,51,0,1), +(458,2,'392','Bräuche im Lebenslauf und im häuslichen Leben','392',778,779,51,0,1), +(459,2,'393','Sterbe- und Bestattungsriten','393',780,781,51,0,1), +(460,2,'394','Allgemeine Bräuche','394',782,783,51,0,1), +(461,2,'395','Etikette (Manieren)','395',784,785,51,0,1), +(462,2,'398','Folklore','398',786,787,51,0,1), +(463,2,'399','Bräuche des Krieges und der Diplomatie','399',788,789,51,0,1), +(464,2,'400','Sprache','400',794,795,52,0,1), +(465,2,'401','Sprachphilosophie, Sprachtheorie','401',796,797,52,0,1), +(466,2,'402','Verschiedenes','402',798,799,52,0,1), +(467,2,'403','Wörterbücher, Enzyklopädien','403',800,801,52,0,1), +(468,2,'404','Spezielle Themen','404',802,803,52,0,1), +(469,2,'405','Fortlaufende Sammelwerke','405',804,805,52,0,1), +(470,2,'406','Organisationen, Management','406',806,807,52,0,1), +(471,2,'407','Ausbildung, Forschung, verwandte Themen','407',808,809,52,0,1), +(472,2,'408','Behandlung nach Personengruppen','408',810,811,52,0,1), +(473,2,'409','Geografische, personenbezogene Behandlung','409',812,813,52,0,1), +(474,2,'410','Linguistik','410',816,817,53,1,1), +(475,2,'411','Schriftsysteme','411',818,819,53,1,1), +(476,2,'412','Etymologie','412',820,821,53,1,1), +(477,2,'413','Wörterbücher','413',822,823,53,1,1), +(478,2,'414','Phonologie, Phonetik','414',824,825,53,1,1), +(479,2,'415','Grammatik','415',826,827,53,1,1), +(480,2,'417','Dialektologie, historische Linguistik','417',828,829,53,1,1), +(481,2,'418','Standardsprache, Angewandte Linguistik','418',830,831,53,1,1), +(482,2,'419','Gebärdensprachen','419',832,833,53,1,1), +(483,2,'420','Englisch, Altenglisch','420',836,837,54,0,1), +(484,2,'421','Schriftsystem und Phonologie des Englischen','421',838,839,54,0,1), +(485,2,'422','Etymologie des Englischen','422',840,841,54,0,1), +(486,2,'423','Englische Wörterbücher','423',842,843,54,0,1), +(487,2,'425','Englische Grammatik','425',844,845,54,0,1), +(488,2,'427','Varianten des Englischen, Mittelenglisch','427',846,847,54,0,1), +(489,2,'428','Gebrauch des Standard-Englisch','428',848,849,54,0,1), +(490,2,'429','Altenglisch (Angelsächsisch)','429',850,851,54,0,1), +(491,2,'430','Germanische Sprachen, Deutsch','430',854,855,55,1,1), +(492,2,'431','Schriftsysteme und Phonologie des Deutschen','431',856,857,55,0,1), +(493,2,'432','Etymologie des Deutschen','432',858,859,55,0,1), +(494,2,'433','Deutsche Wörterbücher','433',860,861,55,0,1), +(495,2,'435','Deutsche Grammatik','435',862,863,55,0,1), +(496,2,'437','Varianten des Deutschen','437',864,865,55,0,1), +(497,2,'438','Gebrauch des Standard-Deutsch','438',866,867,55,0,1), +(498,2,'439','Andere germanische Sprachen','439',868,869,55,1,1), +(499,2,'440','Romanische Sprachen, Französisch','440',872,873,56,0,1), +(500,2,'441','Schriftsysteme und Phonologie des Französischen','441',874,875,56,0,1), +(501,2,'442','Etymologie des Französischen','442',876,877,56,0,1), +(502,2,'443','Französische Wörterbücher','443',878,879,56,0,1), +(503,2,'445','Französische Grammatik','445',880,881,56,0,1), +(504,2,'447','Varianten des Französischen','447',882,883,56,0,1), +(505,2,'448','Gebrauch des Standard-Französisch','448',884,885,56,0,1), +(506,2,'449','Okzitanisch, Katalanisch','449',886,887,56,0,1), +(507,2,'450','Italienisch, Rumänisch, Rätoromanisch','450',890,891,57,0,1), +(508,2,'451','Schriftsysteme und Phonologie des Italienischen','451',892,893,57,0,1), +(509,2,'452','Etymologie des Italienischen','452',894,895,57,0,1), +(510,2,'453','Italienische Wörterbücher','453',896,897,57,0,1), +(511,2,'455','Italienische Grammatik','455',898,899,57,0,1), +(512,2,'457','Varianten des Italienischen','457',900,901,57,0,1), +(513,2,'458','Gebrauch des Standard-Italienisch','458',902,903,57,0,1), +(514,2,'459','Rumänisch, Rätoromanisch','459',904,905,57,0,1), +(515,2,'460','Spanisch, Portugiesisch','460',908,909,58,0,1), +(516,2,'461','Schriftsysteme und Phonologie des Spanischen','461',910,911,58,0,1), +(517,2,'462','Etymologie des Spanischen','462',912,913,58,0,1), +(518,2,'463','Spanische Wörterbücher','463',914,915,58,0,1), +(519,2,'465','Spanische Grammatik','465',916,917,58,0,1), +(520,2,'467','Varianten des Spanischen','467',918,919,58,0,1), +(521,2,'468','Gebrauch des Standard-Spanisch','468',920,921,58,0,1), +(522,2,'469','Portugiesisch','469',922,923,58,0,1), +(523,2,'470','Italische Sprachen, Latein','470',926,927,59,0,1), +(524,2,'471','Schriftsysteme und Phonologie des klassischen Latein','471',928,929,59,0,1), +(525,2,'472','Etymologie des klassischen Latein','472',930,931,59,0,1), +(526,2,'473','Wörterbücher des klassischen Latein','473',932,933,59,0,1), +(527,2,'475','Grammatik des klassischen Latein','475',934,935,59,0,1), +(528,2,'477','Altlatein, Mittellatein, Neulatein, Kirchenlatein, Vulgärlatein','477',936,937,59,0,1), +(529,2,'478','Gebrauch des klassischen Latein','478',938,939,59,0,1), +(530,2,'479','Andere italische Sprachen','479',940,941,59,0,1), +(531,2,'480','Hellenische Sprachen, klassisches Griechisch','480',944,945,60,0,1), +(532,2,'481','Schriftsysteme und Phonologie des klassischen Griechisch','481',946,947,60,0,1), +(533,2,'482','Etymologie des klassischen Griechisch','482',948,949,60,0,1), +(534,2,'483','Wörterbücher des klassischen Griechisch','483',950,951,60,0,1), +(535,2,'485','Grammatik des klassischen Griechisch','485',952,953,60,0,1), +(536,2,'487','Vorklassisches Griechisch, Mittelgriechisch','487',954,955,60,0,1), +(537,2,'488','Gebrauch des klassischen Griechisch','488',956,957,60,0,1), +(538,2,'489','Andere hellenische Sprachen, Neugriechisch','489',958,959,60,0,1), +(539,2,'490','Andere Sprachen','490',962,963,61,0,1), +(540,2,'491','Ostindoeuropäische und keltische Sprachen','491',964,965,61,0,1), +(541,2,'492','Afroasiatische Sprachen, semitische Sprachen','492',966,967,61,0,1), +(542,2,'493','Nichtsemitische afroasiatische Sprachen','493',968,969,61,0,1), +(543,2,'494','Altaische, uralische, paläosibirische, drawidische Sprachen','494',970,971,61,0,1), +(544,2,'495','Ost- und südostasiatische Sprachen','495',972,973,61,0,1), +(545,2,'496','Afrikanische Sprachen','496',974,975,61,0,1), +(546,2,'497','Nordamerikanische Indianersprachen','497',976,977,61,0,1), +(547,2,'498','Südamerikanische Indianersprachen','498',978,979,61,0,1), +(548,2,'499','Austronesische und andere Sprachen','499',980,981,61,0,1), +(549,2,'500','Naturwissenschaften und Mathematik','500',986,987,62,0,1), +(550,2,'501','Philosophie, Theorie','501',988,989,62,0,1), +(551,2,'502','Verschiedenes','502',990,991,62,0,1), +(552,2,'503','Wörterbücher, Enzyklopädien','503',992,993,62,0,1), +(553,2,'505','Fortlaufende Sammelwerke','505',994,995,62,0,1), +(554,2,'506','Organisationen, Management','506',996,997,62,0,1), +(555,2,'507','Ausbildung, Forschung, verwandte Themen','507',998,999,62,0,1), +(556,2,'508','Naturgeschichte','508',1000,1001,62,0,1), +(557,2,'509','Histor., geogr., personenbezogene Behandlung','509',1002,1003,62,0,1), +(558,2,'510','Mathematik','510',1006,1007,63,0,1), +(559,2,'511','Allgemeine mathematische Prinzipien','511',1008,1009,63,0,1), +(560,2,'512','Algebra','512',1010,1011,63,0,1), +(561,2,'513','Arithmetik','513',1012,1013,63,0,1), +(562,2,'514','Topologie','514',1014,1015,63,0,1), +(563,2,'515','Analysis','515',1016,1017,63,0,1), +(564,2,'516','Geometrie','516',1018,1019,63,0,1), +(565,2,'518','Numerische Analysis','518',1020,1021,63,0,1), +(566,2,'519','Wahrscheinlichkeiten, angewandte Mathematik','519',1022,1023,63,0,1), +(567,2,'520','Astronomie und zugeordnete Wissenschaften','520',1026,1027,64,0,1), +(568,2,'521','Himmelsmechanik','521',1028,1029,64,0,1), +(569,2,'522','Techniken, Ausstattung, Materialien','522',1030,1031,64,0,1), +(570,2,'523','Einzelne Himmelskörper und Himmelsphänomene','523',1032,1033,64,0,1), +(571,2,'525','Erde (Astronomische Geografie)','525',1034,1035,64,0,1), +(572,2,'526','Mathematische Geografie','526',1036,1037,64,0,1), +(573,2,'527','Astronavigation','527',1038,1039,64,0,1), +(574,2,'528','Ephemeriden','528',1040,1041,64,0,1), +(575,2,'529','Chronologie','529',1042,1043,64,0,1), +(576,2,'530','Physik','530',1046,1047,65,0,1), +(577,2,'531','Klassische Mechanik, Festkörpermechanik','531',1048,1049,65,0,1), +(578,2,'532','Mechanik der Fluide, Mechanik der Flüssigkeiten','532',1050,1051,65,0,1), +(579,2,'533','Gasmechanik','533',1052,1053,65,0,1), +(580,2,'534','Schall und verwandte Schwingungen','534',1054,1055,65,0,1), +(581,2,'535','Licht, Infrarot- und Ultraviolettphänomene','535',1056,1057,65,0,1), +(582,2,'536','Wärme','536',1058,1059,65,0,1), +(583,2,'537','Elektrizität, Elektronik','537',1060,1061,65,0,1), +(584,2,'538','Magnetismus','538',1062,1063,65,0,1), +(585,2,'539','Moderne Physik','539',1064,1065,65,0,1), +(586,2,'540','Chemie und zugeordnete Wissenschaften','540',1068,1069,66,0,1), +(587,2,'541','Physikalische Chemie','541',1070,1071,66,0,1), +(588,2,'542','Techniken, Ausstattung, Materialien','542',1072,1073,66,0,1), +(589,2,'543','Analytische Chemie','543',1074,1075,66,0,1), +(590,2,'546','Anorganische Chemie','546',1076,1077,66,0,1), +(591,2,'547','Organische Chemie','547',1078,1079,66,0,1), +(592,2,'548','Kristallografie','548',1080,1081,66,0,1), +(593,2,'549','Mineralogie','549',1082,1083,66,0,1), +(594,2,'550','Geowissenschaften','550',1086,1087,67,0,1), +(595,2,'551','Geologie, Hydrologie, Meteorologie','551',1088,1089,67,0,1), +(596,2,'552','Petrologie','552',1090,1091,67,0,1), +(597,2,'553','Lagerstättenkunde','553',1092,1093,67,0,1), +(598,2,'554','Geowissenschaften Europas','554',1094,1095,67,0,1), +(599,2,'555','Geowissenschaften Asiens','555',1096,1097,67,0,1), +(600,2,'556','Geowissenschaften Afrikas','556',1098,1099,67,0,1), +(601,2,'557','Geowissenschaften Nordamerikas','557',1100,1101,67,0,1), +(602,2,'558','Geowissenschaften Südamerikas','558',1102,1103,67,0,1), +(603,2,'559','Geowissenschaften anderer Gebiete','559',1104,1105,67,0,1), +(604,2,'560','Paläontologie, Paläozoologie','560',1108,1109,68,0,1), +(605,2,'561','Paläobotanik, fossile Mikroorganismen','561',1110,1111,68,0,1), +(606,2,'562','Fossile Evertebrata (Wirbellose)','562',1112,1113,68,0,1), +(607,2,'563','Fossile Wirbellose des Meeres und der Meeresküste','563',1114,1115,68,0,1), +(608,2,'564','Fossile Mollusca (Weichtiere), Tentaculata (Kranzfühler)','564',1116,1117,68,0,1), +(609,2,'565','Fossile Arthropoden (Gliederfüßer)','565',1118,1119,68,0,1), +(610,2,'566','Fossile Chordata (Chordatiere)','566',1120,1121,68,0,1), +(611,2,'567','Fossile wechselwarme Wirbeltiere, fossile Pisces (Fische)','567',1122,1123,68,0,1), +(612,2,'568','Fossile Aves (Vögel)','568',1124,1125,68,0,1), +(613,2,'569','Fossile Mammalia (Säugetiere)','569',1126,1127,68,0,1), +(614,2,'570','Biowissenschaften, Biologie','570',1130,1131,69,0,1), +(615,2,'571','Physiologie und verwandte Themen','571',1132,1133,69,0,1), +(616,2,'572','Biochemie','572',1134,1135,69,0,1), +(617,2,'573','Einzelne physiologische Systeme bei Tieren','573',1136,1137,69,0,1), +(618,2,'575','Einzelne Teile von und physiologische Systeme bei Pflanzen','575',1138,1139,69,0,1), +(619,2,'576','Genetik und Evolution','576',1140,1141,69,0,1), +(620,2,'577','Ökologie','577',1142,1143,69,0,1), +(621,2,'578','Naturgeschichte von Organismen','578',1144,1145,69,0,1), +(622,2,'579','Mikroorganismen, Pilze, Algen','579',1146,1147,69,0,1), +(623,2,'580','Pflanzen (Botanik)','580',1150,1151,70,0,1), +(624,2,'581','Einzelne Themen in der Naturgeschichte','581',1152,1153,70,0,1), +(625,2,'582','Pflanzen mit spezifischen Merkmalen und Blüten','582',1154,1155,70,0,1), +(626,2,'583','Magnoliopsida (Zweikeimblättrige)','583',1156,1157,70,0,1), +(627,2,'584','Liliopsida (Einkeimblättrige)','584',1158,1159,70,0,1), +(628,2,'585','Gymnospermae (Nacktsamer), Coniferae (Nadelgehölze)','585',1160,1161,70,0,1), +(629,2,'586','Cryptogamia (Blütenlose Pflanzen)','586',1162,1163,70,0,1), +(630,2,'587','Pteridophyta (Farnpflanzen)','587',1164,1165,70,0,1), +(631,2,'588','Bryophyta (Moose)','588',1166,1167,70,0,1), +(632,2,'590','Tiere (Zoologie)','590',1170,1171,71,0,1), +(633,2,'591','Einzelne Themen in der Naturgeschichte','591',1172,1173,71,0,1), +(634,2,'592','Evertebrata (Wirbellose)','592',1174,1175,71,0,1), +(635,2,'593','Wirbellose des Meeres und der Meeresküste','593',1176,1177,71,0,1), +(636,2,'594','Mollusca (Weichtiere), Tentaculata (Kranzfühler)','594',1178,1179,71,0,1), +(637,2,'595','Arthropoden (Gliederfüßer)','595',1180,1181,71,0,1), +(638,2,'596','Chordata (Chordatiere)','596',1182,1183,71,0,1), +(639,2,'597','Wechselwarme Wirbeltiere, Pisces (Fische)','597',1184,1185,71,0,1), +(640,2,'598','Aves (Vögel)','598',1186,1187,71,0,1), +(641,2,'599','Mammalia (Säugetiere)','599',1188,1189,71,0,1), +(642,2,'600','Technik, Technologie','600',1194,1195,72,0,1), +(643,2,'601','Philosophie, Theorie','601',1196,1197,72,0,1), +(644,2,'602','Verschiedenes','602',1198,1199,72,0,1), +(645,2,'603','Wörterbücher, Enzyklopädien','603',1200,1201,72,0,1), +(646,2,'604','Spezielle Themen','604',1202,1203,72,0,1), +(647,2,'605','Fortlaufende Sammelwerke','605',1204,1205,72,0,1), +(648,2,'606','Organisationen','606',1206,1207,72,0,1), +(649,2,'607','Ausbildung, Forschung, verwandte Themen','607',1208,1209,72,0,1), +(650,2,'608','Erfindungen, Patente','608',1210,1211,72,0,1), +(651,2,'609','Histor., geogr., personenbezogene Behandlung','609',1212,1213,72,0,1), +(652,2,'610','Medizin und Gesundheit','610',1216,1217,73,0,1), +(653,2,'611','Menschliche Anatomie, Zytologie, Histologie','611',1218,1219,73,0,1), +(654,2,'612','Humanphysiologie','612',1220,1221,73,0,1), +(655,2,'613','Persönliche Gesundheit und Sicherheit','613',1222,1223,73,0,1), +(656,2,'614','Inzidenz und Prävention von Krankheiten','614',1224,1225,73,0,1), +(657,2,'615','Pharmakologie, Therapeutik','615',1226,1227,73,0,1), +(658,2,'616','Krankheiten','616',1228,1229,73,0,1), +(659,2,'617','Chirurgie und verwandte medizinische Fachrichtungen','617',1230,1231,73,0,1), +(660,2,'618','Gynäkologie, Geburtsmedizin, Pädiatrie, Geriatrie','618',1232,1233,73,0,1), +(661,2,'620','Ingenieurwissenschaften und zugeordnete Tätigkeiten','620',1236,1237,74,0,1), +(662,2,'621','Angewandte Physik','621',1238,1239,74,0,1), +(663,2,'622','Bergbau und verwandte Tätigkeiten','622',1240,1241,74,0,1), +(664,2,'623','Militär- und Schiffstechnik','623',1242,1243,74,0,1), +(665,2,'624','Ingenieurbau','624',1244,1245,74,0,1), +(666,2,'625','Eisenbahn- und Straßenbau','625',1246,1247,74,0,1), +(667,2,'627','Wasserbau','627',1248,1249,74,0,1), +(668,2,'628','Sanitär- und Kommunaltechnik, Umwelttechnik','628',1250,1251,74,0,1), +(669,2,'629','Andere Fachrichtungen der Ingenieurwissenschaften','629',1252,1253,74,0,1), +(670,2,'630','Landwirtschaft und verwandte Bereiche','630',1256,1257,75,0,1), +(671,2,'631','Techniken, Ausstattung, Materialien','631',1258,1259,75,0,1), +(672,2,'632','Schäden, Krankheiten, Schädlinge an Pflanzen','632',1260,1261,75,0,1), +(673,2,'633','Feld- und Plantagenfrüchte','633',1262,1263,75,0,1), +(674,2,'634','Obstanlagen, Früchte, Forstwirtschaft','634',1264,1265,75,0,1), +(675,2,'635','Gartenpflanzen (Gartenbau)','635',1266,1267,75,0,1), +(676,2,'636','Viehwirtschaft','636',1268,1269,75,0,1), +(677,2,'637','Milchverarbeitung und verwandte Produkte','637',1270,1271,75,0,1), +(678,2,'638','Insektenzucht','638',1272,1273,75,0,1), +(679,2,'639','Jagd, Fischfang, Naturschutz','639',1274,1275,75,0,1), +(680,2,'640','Hauswirtschaft und Familie','640',1278,1279,76,0,1), +(681,2,'641','Essen und Trinken','641',1280,1281,76,0,1), +(682,2,'642','Mahlzeiten, Tischkultur','642',1282,1283,76,0,1), +(683,2,'643','Wohnen, Haushaltsausstattung','643',1284,1285,76,0,1), +(684,2,'644','Gebäudeversorgung für Haushalte','644',1286,1287,76,0,1), +(685,2,'645','Einrichtungsgegenstände','645',1288,1289,76,0,1), +(686,2,'646','Nähen, Kleidung, persönliches Leben, Familienleben','646',1290,1291,76,0,1), +(687,2,'647','Großhaushaltsführung','647',1292,1293,76,0,1), +(688,2,'648','Haushaltsführung','648',1294,1295,76,0,1), +(689,2,'649','Kindererziehung, häusliche Betreuung','649',1296,1297,76,0,1), +(690,2,'650','Management und unterstützende Tätigkeiten','650',1300,1301,77,0,1), +(691,2,'651','Büroarbeit','651',1302,1303,77,0,1), +(692,2,'652','Techniken der schriftlichen Kommunikation','652',1304,1305,77,0,1), +(693,2,'653','Stenografie','653',1306,1307,77,0,1), +(694,2,'657','Rechnungslegung','657',1308,1309,77,0,1), +(695,2,'658','Allgemeines Management','658',1310,1311,77,0,1), +(696,2,'659','Werbung, Öffentlichkeitsarbeit','659',1312,1313,77,0,1), +(697,2,'660','Chemische Verfahrenstechnik','660',1316,1317,78,0,1), +(698,2,'661','Industriechemikalien','661',1318,1319,78,0,1), +(699,2,'662','Explosivstoffe, Brennstoffe und verwandte Produkte','662',1320,1321,78,0,1), +(700,2,'663','Getränketechnologie','663',1322,1323,78,0,1), +(701,2,'664','Lebensmitteltechnologie','664',1324,1325,78,0,1), +(702,2,'665','Industrielle Öle, Fette, Wachse, technische Gase','665',1326,1327,78,0,1), +(703,2,'666','Keramiktechnologie und zugeordnete Technologien','666',1328,1329,78,0,1), +(704,2,'667','Reinigungs-, Färbe-, Beschichtungstechniken','667',1330,1331,78,0,1), +(705,2,'668','Technik anderer organischer Produkte','668',1332,1333,78,0,1), +(706,2,'669','Metallurgie','669',1334,1335,78,0,1), +(707,2,'670','Industrielle Fertigung','670',1338,1339,79,0,1), +(708,2,'671','Metallverarbeitung und Rohprodukte aus Metall','671',1340,1341,79,0,1), +(709,2,'672','Eisen, Stahl, andere Eisenlegierungen','672',1342,1343,79,0,1), +(710,2,'673','Nichteisenmetalle','673',1344,1345,79,0,1), +(711,2,'674','Holzverarbeitung, Holzprodukte, Kork','674',1346,1347,79,0,1), +(712,2,'675','Leder- und Pelzverarbeitung','675',1348,1349,79,0,1), +(713,2,'676','Zellstoff und Papierherstellung','676',1350,1351,79,0,1), +(714,2,'677','Textilien','677',1352,1353,79,0,1), +(715,2,'678','Elastomere, Elastomerprodukte','678',1354,1355,79,0,1), +(716,2,'679','Andere Produkte aus einzelnen Werkstoffen','679',1356,1357,79,0,1), +(717,2,'680','Industrielle Fertigung für einzelne Verwendungszwecke','680',1360,1361,80,0,1), +(718,2,'681','Präzisionsinstrumente und andere Geräte','681',1362,1363,80,0,1), +(719,2,'682','Schmiedehandwerk','682',1364,1365,80,0,1), +(720,2,'683','Eisenwaren, Haushaltsgeräte','683',1366,1367,80,0,1), +(721,2,'684','Wohnungseinrichtung, Heimwerkstätten','684',1368,1369,80,0,1), +(722,2,'685','Leder- und Pelzwaren und verwandte Produkte','685',1370,1371,80,0,1), +(723,2,'686','Drucken und verwandte Tätigkeiten','686',1372,1373,80,0,1), +(724,2,'687','Kleidung, Accessoires','687',1374,1375,80,0,1), +(725,2,'688','Andere Endprodukte, Verpackungstechnik','688',1376,1377,80,0,1), +(726,2,'690','Hausbau, Bauhandwerk','690',1380,1381,81,0,1), +(727,2,'691','Baustoffe','691',1382,1383,81,0,1), +(728,2,'692','Bauhilfstechniken','692',1384,1385,81,0,1), +(729,2,'693','Einzelne Baustoffarten und Zwecke','693',1386,1387,81,0,1), +(730,2,'694','Holzbau, Zimmerhandwerk','694',1388,1389,81,0,1), +(731,2,'695','Dachdeckung','695',1390,1391,81,0,1), +(732,2,'696','Versorgungseinrichtungen','696',1392,1393,81,0,1), +(733,2,'697','Heizungs-, Lüftungs-, Klimatechnik','697',1394,1395,81,0,1), +(734,2,'698','Ausbau','698',1396,1397,81,0,1), +(735,2,'700','Künste, Bildende und angewandte Kunst','700',1402,1403,82,0,1), +(736,2,'701','Kunstphilosophie, Kunsttheorie der bildenden und angewandten Kunst','701',1404,1405,82,0,1), +(737,2,'702','Verschiedenes zur bildenden und angewandten Kunst','702',1406,1407,82,0,1), +(738,2,'703','Wörterbücher, Enzyklopädien zur bildenden und angewandten Kunst','703',1408,1409,82,0,1), +(739,2,'704','Spezielle Themen zur bildenden und angewandten Kunst','704',1410,1411,82,0,1), +(740,2,'705','Fortlaufende Sammelwerke zur bildenden und angewandten Kunst','705',1412,1413,82,0,1), +(741,2,'706','Organisationen, Management der bildenden und angewandten Kunst','706',1414,1415,82,0,1), +(742,2,'707','Ausbildung, Forschung, verwandte Themen zur bildenden und angewandten Kunst','707',1416,1417,82,0,1), +(743,2,'708','Galerien, Museen, Privatsammlungen zur bildenden und angewandten Kunst','708',1418,1419,82,0,1), +(744,2,'709','Histor., geogr., personenbezogene Behandlung der bildenden und angewandten Kunst','709',1420,1421,82,0,1), +(745,2,'710','Städtebau, Raumplanung, Landschaftsgestaltung','710',1424,1425,83,0,1), +(746,2,'711','Raumplanung','711',1426,1427,83,0,1), +(747,2,'712','Landschaftsgestaltung','712',1428,1429,83,0,1), +(748,2,'713','Landschaftsgestaltung von Verkehrswegen','713',1430,1431,83,0,1), +(749,2,'714','Wasser als Gestaltungselement','714',1432,1433,83,0,1), +(750,2,'715','Gehölze als Gestaltungselemente','715',1434,1435,83,0,1), +(751,2,'716','Krautige Pflanzen als Gestaltungselemente','716',1436,1437,83,0,1), +(752,2,'717','Andere Gestaltungselemente','717',1438,1439,83,0,1), +(753,2,'718','Landschaftsgestaltung von Friedhöfen','718',1440,1441,83,0,1), +(754,2,'719','Naturlandschaften','719',1442,1443,83,0,1), +(755,2,'720','Architektur','720',1446,1447,84,0,1), +(756,2,'721','Architektonische Struktur','721',1448,1449,84,0,1), +(757,2,'722','Architektur bis ca. 300','722',1450,1451,84,0,1), +(758,2,'723','Architektur von ca. 300 bis 1399','723',1452,1453,84,0,1), +(759,2,'724','Architektur ab 1400','724',1454,1455,84,0,1), +(760,2,'725','Öffentliche Bauwerke','725',1456,1457,84,0,1), +(761,2,'726','Gebäude für religiöse und verwandte Zwecke','726',1458,1459,84,0,1), +(762,2,'727','Gebäude für Lehr- und Forschungszwecke','727',1460,1461,84,0,1), +(763,2,'728','Wohnbauten und verwandte Gebäude','728',1462,1463,84,0,1), +(764,2,'729','Entwurf und Gestaltung, Innenarchitektur','729',1464,1465,84,0,1), +(765,2,'730','Plastische Künste, Bildhauerkunst','730',1468,1469,85,0,1), +(766,2,'731','Verfahren, Formen und Motive in der Bildhauerkunst','731',1470,1471,85,0,1), +(767,2,'732','Bildhauerei bis ca. 500','732',1472,1473,85,0,1), +(768,2,'733','Griechische, etruskische, römische Bildhauerkunst','733',1474,1475,85,0,1), +(769,2,'734','Bildhauerkunst von ca. 500 bis 1399','734',1476,1477,85,0,1), +(770,2,'735','Bildhauerkunst ab 1400','735',1478,1479,85,0,1), +(771,2,'736','Schnitzen, Schnitzereien','736',1480,1481,85,0,1), +(772,2,'737','Numismatik, Siegelkunde','737',1482,1483,85,0,1), +(773,2,'738','Keramikkunst','738',1484,1485,85,0,1), +(774,2,'739','Metallkunst','739',1486,1487,85,0,1), +(775,2,'740','Zeichnung, angewandte Kunst','740',1490,1491,86,1,1), +(776,2,'741','Zeichnung, Zeichnungen','741',1492,1493,86,0,1), +(777,2,'742','Perspektive','742',1496,1497,86,0,1), +(778,2,'743','Zeichnung und Zeichnungen nach Motiv','743',1498,1499,86,0,1), +(779,2,'745','Angewandte Kunst','745',1500,1501,86,0,1), +(780,2,'746','Textilkunst','746',1502,1503,86,0,1), +(781,2,'747','Innendekoration','747',1504,1505,86,0,1), +(782,2,'748','Glas','748',1506,1507,86,0,1), +(783,2,'749','Möbel, Möbelzubehör','749',1508,1509,86,0,1), +(784,2,'750','Malerei, Gemälde','750',1512,1513,87,0,1), +(785,2,'751','Techniken, Ausstattung, Materialien, Formen','751',1514,1515,87,0,1), +(786,2,'752','Farbe','752',1516,1517,87,0,1), +(787,2,'753','Symbolik, Allegorie, Mythologie, Legende','753',1518,1519,87,0,1), +(788,2,'754','Genremalerei','754',1520,1521,87,0,1), +(789,2,'755','Religion','755',1522,1523,87,0,1), +(790,2,'757','Menschliche Figuren','757',1524,1525,87,0,1), +(791,2,'758','Andere Motive','758',1526,1527,87,0,1), +(792,2,'759','Histor., geogr., personenbezogene Behandlung','759',1528,1529,87,0,1), +(793,2,'760','Grafik, Druckgrafik, Drucke','760',1532,1533,88,0,1), +(794,2,'761','Hochdruckverfahren (Blockdruck)','761',1534,1535,88,0,1), +(795,2,'763','Lithografische Druckverfahren','763',1536,1537,88,0,1), +(796,2,'764','Farblithografie, Serigrafie','764',1538,1539,88,0,1), +(797,2,'765','Metallgravur','765',1540,1541,88,0,1), +(798,2,'766','Mezzotinto, Aquatinta und verwandte Techniken','766',1542,1543,88,0,1), +(799,2,'767','Radierung, Kaltnadelarbeit','767',1544,1545,88,0,1), +(800,2,'769','Drucke','769',1546,1547,88,0,1), +(801,2,'770','Fotografie, Fotografien, Computerkunst','770',1550,1551,89,0,1), +(802,2,'771','Techniken, Ausstattung, Materialien','771',1552,1553,89,0,1), +(803,2,'772','Entwicklungsverfahren mit Metallsalzen','772',1554,1555,89,0,1), +(804,2,'773','Pigmentdruckverfahren','773',1556,1557,89,0,1), +(805,2,'774','Holografie','774',1558,1559,89,0,1), +(806,2,'775','Digitale Fotografie','775',1560,1561,89,0,1), +(807,2,'776','Computerkunst (Digitale Kunst)','776',1562,1563,89,0,1), +(808,2,'778','Bereiche und Arten der Fotografie','778',1564,1565,89,0,1), +(809,2,'779','Fotografien','779',1566,1567,89,0,1), +(810,2,'780','Musik','780',1570,1571,90,0,1), +(811,2,'781','Allgemeine Prinzipien, musikalische Formen','781',1572,1573,90,0,1), +(812,2,'782','Vokalmusik','782',1574,1575,90,0,1), +(813,2,'783','Musik für Einzelstimmen, die Stimme','783',1576,1577,90,0,1), +(814,2,'784','Instrumente, Instrumentalensembles','784',1578,1579,90,0,1), +(815,2,'785','Ensembles mit einem Instrument pro Stimme','785',1580,1581,90,0,1), +(816,2,'786','Tasteninstrumente, andere Instrumente','786',1582,1583,90,0,1), +(817,2,'787','Saiteninstrumente','787',1584,1585,90,0,1), +(818,2,'788','Blasinstrumente','788',1586,1587,90,0,1), +(819,2,'789','(Optionale Notation)','789',1588,1589,90,0,1), +(820,2,'790','Freizeitgestaltung, darstellende Künste, Sport','790',1592,1593,91,1,1), +(821,2,'791','Öffentliche Darbietungen, Film, Rundfunk','791',1594,1595,91,1,1), +(822,2,'792','Bühnenkunst','792',1596,1597,91,1,1), +(823,2,'793','Spiele und Freizeitaktivitäten für drinnen','793',1598,1599,91,1,1), +(824,2,'794','Unterhaltungsspiele für drinnen','794',1600,1601,91,0,1), +(825,2,'795','Glücksspiele','795',1602,1603,91,0,1), +(826,2,'796','Sportarten, Sportspiele','796',1604,1605,91,1,1), +(827,2,'797','Wasser- und Luftsport','797',1606,1607,91,0,1), +(828,2,'798','Pferdesport, Tierrennen','798',1608,1609,91,0,1), +(829,2,'799','Fischfang, Jagd, Schießen','799',1610,1611,91,0,1), +(830,2,'800','Literatur und Rhetorik','800',1616,1617,92,0,1), +(831,2,'801','Literaturtheorie','801',1618,1619,92,0,1), +(832,2,'802','Verschiedenes','802',1620,1621,92,0,1), +(833,2,'803','Wörterbücher, Enzyklopädien','803',1622,1623,92,0,1), +(834,2,'805','Fortlaufende Sammelwerke','805',1624,1625,92,0,1), +(835,2,'806','Organisationen, Management','806',1626,1627,92,0,1), +(836,2,'807','Ausbildung, Forschung, verwandte Themen','807',1628,1629,92,0,1), +(837,2,'808','Rhetorik, Sammlungen von Literatur','808',1630,1631,92,0,1), +(838,2,'809','Geschichte, Darstellung, Literaturwissenschaft und –k ritik','809',1632,1633,92,0,1), +(839,2,'810','Amerikanische Literatur in in Englisch','810',1636,1637,93,0,1), +(840,2,'811','Amerikanische Versdichtung','811',1638,1639,93,0,1), +(841,2,'812','Amerikanische Dramen','812',1640,1641,93,0,1), +(842,2,'813','Amerikanische Erzählprosa','813',1642,1643,93,0,1), +(843,2,'814','Amerikanische Essays','814',1644,1645,93,0,1), +(844,2,'815','Amerikanische Reden','815',1646,1647,93,0,1), +(845,2,'816','Amerikanische Briefe','816',1648,1649,93,0,1), +(846,2,'817','Amerikanischer Humor, amerikanische Satire','817',1650,1651,93,0,1), +(847,2,'818','Amerikanische vermischte Schriften','818',1652,1653,93,0,1), +(848,2,'819','(Optionale Notation)','819',1654,1655,93,0,1), +(849,2,'820','Englische, altenglische Literaturen','820',1658,1659,94,0,1), +(850,2,'821','Englische Versdichtung','821',1660,1661,94,0,1), +(851,2,'822','Englische Dramen','822',1662,1663,94,0,1), +(852,2,'823','Englische Erzählprosa','823',1664,1665,94,0,1), +(853,2,'824','Englische Essays','824',1666,1667,94,0,1), +(854,2,'825','Englische Reden','825',1668,1669,94,0,1), +(855,2,'826','Englische Briefe','826',1670,1671,94,0,1), +(856,2,'827','Englischer Humor, englische Satire','827',1672,1673,94,0,1), +(857,2,'828','Englische vermischte Schriften','828',1674,1675,94,0,1), +(858,2,'829','Altenglische (Angelsächsische) Literatur','829',1676,1677,94,0,1), +(859,2,'830','Literaturen germanischer Sprachen, Deutsche Literatur','830',1680,1681,95,1,1), +(860,2,'831','Deutsche Versdichtung','831',1682,1683,95,0,1), +(861,2,'832','Deutsche Dramen','832',1684,1685,95,0,1), +(862,2,'833','Deutsche Erzählprosa','833',1686,1687,95,0,1), +(863,2,'834','Deutsche Essays','834',1688,1689,95,0,1), +(864,2,'835','Deutsche Reden','835',1690,1691,95,0,1), +(865,2,'836','Deutsche Briefe','836',1692,1693,95,0,1), +(866,2,'837','Deutscher Humor, deutsche Satire','837',1694,1695,95,0,1), +(867,2,'838','Deutsche vermischte Schriften','838',1696,1697,95,0,1), +(868,2,'839','Andere germanische Literaturen','839',1698,1699,95,1,1), +(869,2,'840','Literaturen romanischer Sprachen, Französische Literatur','840',1702,1703,96,0,1), +(870,2,'841','Französische Versdichtung','841',1704,1705,96,0,1), +(871,2,'842','Französische Dramen','842',1706,1707,96,0,1), +(872,2,'843','Französische Erzählprosa','843',1708,1709,96,0,1), +(873,2,'844','Französische Essays','844',1710,1711,96,0,1), +(874,2,'845','Französische Reden','845',1712,1713,96,0,1), +(875,2,'846','Französische Briefe','846',1714,1715,96,0,1), +(876,2,'847','Französischer Humor, französische Satire','847',1716,1717,96,0,1), +(877,2,'848','Französische vermischte Schriften','848',1718,1719,96,0,1), +(878,2,'849','Okzitanische, katalanische Literaturen','849',1720,1721,96,0,1), +(879,2,'850','Italienische, rumänische, rätoromanische Literaturen','850',1724,1725,97,0,1), +(880,2,'851','Italienische Versdichtung','851',1726,1727,97,0,1), +(881,2,'852','Italienische Dramen','852',1728,1729,97,0,1), +(882,2,'853','Italienische Erzählprosa','853',1730,1731,97,0,1), +(883,2,'854','Italienische Essays','854',1732,1733,97,0,1), +(884,2,'855','Italienische Reden','855',1734,1735,97,0,1), +(885,2,'856','Italienische Briefe','856',1736,1737,97,0,1), +(886,2,'857','Italienischer Humor, italienische Satire','857',1738,1739,97,0,1), +(887,2,'858','Italienische vermischte Schriften','858',1740,1741,97,0,1), +(888,2,'859','Rumänische, rätoromanische Literaturen','859',1742,1743,97,0,1), +(889,2,'860','Spanische, portugiesische Literaturen','860',1746,1747,98,0,1), +(890,2,'861','Spanische Versdichtung','861',1748,1749,98,0,1), +(891,2,'862','Spanische Dramen','862',1750,1751,98,0,1), +(892,2,'863','Spanische Erzählprosa','863',1752,1753,98,0,1), +(893,2,'864','Spanische Essays','864',1754,1755,98,0,1), +(894,2,'865','Spanische Reden','865',1756,1757,98,0,1), +(895,2,'866','Spanische Briefe','866',1758,1759,98,0,1), +(896,2,'867','Spanischer Humor, spanische Satire','867',1760,1761,98,0,1), +(897,2,'868','Spanische vermischte Schriften','868',1762,1763,98,0,1), +(898,2,'869','Portugiesische Literatur','869',1764,1765,98,0,1), +(899,2,'870','Italische Literaturen, Lateinische Literatur','870',1768,1769,99,0,1), +(900,2,'871','Lateinische Versdichtung','871',1770,1771,99,0,1), +(901,2,'872','Lateinische dramatische Versdichtung, Dramen','872',1772,1773,99,0,1), +(902,2,'873','Lateinische erzählende Versdichtung, Erzählprosa','873',1774,1775,99,0,1), +(903,2,'874','Lateinische lyrische Versdichtung','874',1776,1777,99,0,1), +(904,2,'875','Lateinische Reden','875',1778,1779,99,0,1), +(905,2,'876','Lateinische Briefe','876',1780,1781,99,0,1), +(906,2,'877','Lateinischer Humor, lateinische Satire','877',1782,1783,99,0,1), +(907,2,'878','Lateinische vermischte Schriften','878',1784,1785,99,0,1), +(908,2,'879','Literaturen anderer italischer Sprachen','879',1786,1787,99,0,1), +(909,2,'880','Hellenische Literaturen, Klassische griechische Literatur','880',1790,1791,100,0,1), +(910,2,'881','Klassische griechische Versdichtung','881',1792,1793,100,0,1), +(911,2,'882','Klassische griechische dramatische Versdichtung, Dramen','882',1794,1795,100,0,1), +(912,2,'883','Klassische griechische erzählende Versdichtung, Erzählprosa','883',1796,1797,100,0,1), +(913,2,'884','Klassische griechische lyrische Versdichtung','884',1798,1799,100,0,1), +(914,2,'885','Klassische griechische Reden','885',1800,1801,100,0,1), +(915,2,'886','Klassische griechische Briefe','886',1802,1803,100,0,1), +(916,2,'887','Humor und Satire in klassischem Griechisch','887',1804,1805,100,0,1), +(917,2,'888','Klassische griechische vermischte Schriften','888',1806,1807,100,0,1), +(918,2,'889','Neugriechische Literatur','889',1808,1809,100,0,1), +(919,2,'890','Literaturen anderer Sprachen','890',1812,1813,101,0,1), +(920,2,'891','Ostindoeuropäische, keltische Literaturen','891',1814,1815,101,0,1), +(921,2,'892','Afroasiatische Literaturen, Semitische Literaturen','892',1816,1817,101,0,1), +(922,2,'893','Nichtsemitische afroasiatische Literaturen','893',1818,1819,101,0,1), +(923,2,'894','Altaische, uralische, paläosibirische, drawidische Literaturen','894',1820,1821,101,0,1), +(924,2,'895','Ost- und südostasiatische Literaturen','895',1822,1823,101,0,1), +(925,2,'896','Afrikanische Literaturen','896',1824,1825,101,0,1), +(926,2,'897','Literaturen nordamerikanischer Indianersprachen','897',1826,1827,101,0,1), +(927,2,'898','Literaturen südamerikanischer Indianersprachen','898',1828,1829,101,0,1), +(928,2,'899','Austronesische und andere Literaturen','899',1830,1831,101,0,1), +(929,2,'900','Geschichte und Geografie','900',1836,1837,102,0,1), +(930,2,'901','Geschichtsphilosophie, Geschichtstheorie','901',1838,1839,102,0,1), +(931,2,'902','Verschiedenes','902',1840,1841,102,0,1), +(932,2,'903','Wörterbücher, Enzyklopädien','903',1842,1843,102,0,1), +(933,2,'904','Allgemeine Darstellungen von Ereignissen','904',1844,1845,102,0,1), +(934,2,'905','Fortlaufende Sammelwerke','905',1846,1847,102,0,1), +(935,2,'906','Organisationen, Management','906',1848,1849,102,0,1), +(936,2,'907','Ausbildung, Forschung, verwandte Themen','907',1850,1851,102,0,1), +(937,2,'908','Behandlung nach Personengruppen','908',1852,1853,102,0,1), +(938,2,'909','Weltgeschichte','909',1854,1855,102,0,1), +(939,2,'910','Geografie, Reisen','910',1858,1859,103,1,1), +(940,2,'911','Historische Geografie','911',1860,1861,103,0,1), +(941,2,'912','Atlanten, Karten, Grafiken, Pläne','912',1862,1863,103,0,1), +(942,2,'913','Geografie der und Reisen in der Alten Welt','913',1864,1865,103,0,1), +(943,2,'914','Geografie Europas und Reisen in Europa','914',1866,1867,103,0,1), +(944,2,'915','Geografie Asiens und Reisen in Asien','915',1870,1871,103,0,1), +(945,2,'916','Geografie Afrikas und Reisen in Afrika','916',1872,1873,103,0,1), +(946,2,'917','Geografie Nordamerikas und Reisen in Nordamerika','917',1874,1875,103,0,1), +(947,2,'918','Geografie Südamerikas und Reisen in Südamerika','918',1876,1877,103,0,1), +(948,2,'919','Geografie anderer Gebiete und Reisen in anderen Gebieten','919',1878,1879,103,0,1), +(949,2,'920','Biografien, Genealogie, Insignien','920',1882,1883,104,0,1), +(950,2,'921','(Optionale Notation)','921',1884,1885,104,0,1), +(951,2,'922','(Optionale Notation)','922',1886,1887,104,0,1), +(952,2,'923','(Optionale Notation)','923',1888,1889,104,0,1), +(953,2,'924','(Optionale Notation)','924',1890,1891,104,0,1), +(954,2,'925','(Optionale Notation)','925',1892,1893,104,0,1), +(955,2,'926','(Optionale Notation)','926',1894,1895,104,0,1), +(956,2,'927','(Optionale Notation)','927',1896,1897,104,0,1), +(957,2,'928','(Optionale Notation)','928',1898,1899,104,0,1), +(958,2,'929','Genealogie, Namenkunde, Insignien','929',1900,1901,104,0,1), +(959,2,'930','Geschichte des Altertums bis ca. 499, Archäologie','930',1904,1905,105,0,1), +(960,2,'931','Geschichte Chinas bis 420','931',1906,1907,105,0,1), +(961,2,'932','Geschichte Ägyptens bis 640','932',1908,1909,105,0,1), +(962,2,'933','Geschichte Palästinas bis 70','933',1910,1911,105,0,1), +(963,2,'934','Geschichte Indiens bis 647','934',1912,1913,105,0,1), +(964,2,'935','Geschichte Mesopotamiens und der iranischen Hochebene bis 637','935',1914,1915,105,0,1), +(965,2,'936','Geschichte Europas nördlich und westlich von Italien bis ca. 499','936',1916,1917,105,0,1), +(966,2,'937','Geschichte Italiens und benachbarter Gebiete bis 476','937',1918,1919,105,0,1), +(967,2,'938','Geschichte Griechenlands bis 323','938',1920,1921,105,0,1), +(968,2,'939','Geschichte anderer Teile der Welt bis ca. 640','939',1922,1923,105,0,1), +(969,2,'940','Geschichte Europas','940',1926,1927,106,1,1), +(970,2,'941','Geschichte der Britischen Inseln','941',1928,1929,106,0,1), +(971,2,'942','Geschichte Englands und Wales','942',1930,1931,106,0,1), +(972,2,'943','Geschichte Mitteleuropas, Deutschlands','943',1932,1933,106,1,1), +(973,2,'944','Geschichte Frankreichs und Monacos','944',1934,1935,106,0,1), +(974,2,'945','Geschichte der italienische Halbinsel und benachbarter Inseln','945',1936,1937,106,0,1), +(975,2,'946','Geschichte der iberischen Halbinsel und benachbarter Inseln','946',1938,1939,106,0,1), +(976,2,'947','Geschichte Osteuropas, Russlands','947',1940,1941,106,0,1), +(977,2,'948','Geschichte Skandinaviens','948',1942,1943,106,0,1), +(978,2,'949','Geschichte anderer Teile Europas','949',1944,1945,106,0,1), +(979,2,'950','Geschichte Asiens, des Fernen Ostens','950',1948,1949,107,0,1), +(980,2,'951','Geschichte Chinas und benachbarter Gebiete','951',1950,1951,107,0,1), +(981,2,'952','Geschichte Japans','952',1952,1953,107,0,1), +(982,2,'953','Geschichte der arabischen Halbinsel und benachbarter Gebiete','953',1954,1955,107,0,1), +(983,2,'954','Geschichte Südasiens, Indiens','954',1956,1957,107,0,1), +(984,2,'955','Geschichte Irans','955',1958,1959,107,0,1), +(985,2,'956','Geschichte des Nahen Ostens (Mittleren Ostens)','956',1960,1961,107,0,1), +(986,2,'957','Geschichte Sibiriens (der Asiatischen Russlands)','957',1962,1963,107,0,1), +(987,2,'958','Geschichte Zentralasiens','958',1964,1965,107,0,1), +(988,2,'959','Geschichte Südostasiens','959',1966,1967,107,0,1), +(989,2,'960','Geschichte Afrikas','960',1970,1971,108,0,1), +(990,2,'961','Geschichte Tunesiens und Libyens','961',1972,1973,108,0,1), +(991,2,'962','Geschichte Ägyptens und Sudans','962',1974,1975,108,0,1), +(992,2,'963','Geschichte Äthiopiens und Eritreas','963',1976,1977,108,0,1), +(993,2,'964','Geschichte der nordwestafrikanischen Küste und vorgelagerter Inseln','964',1978,1979,108,0,1), +(994,2,'965','Geschichte Algeriens','965',1980,1981,108,0,1), +(995,2,'966','Geschichte Westafrikas und vorgelagerter Inseln','966',1982,1983,108,0,1), +(996,2,'967','Geschichte Zentralafrikas und vorgelagerter Inseln','967',1984,1985,108,0,1), +(997,2,'968','Geschichte Südafrikas, der Republik Südafrika','968',1986,1987,108,0,1), +(998,2,'969','Geschichte der Inseln im südlichen Indischen Ozean','969',1988,1989,108,0,1), +(999,2,'970','Geschichte Nordamerikas','970',1992,1993,109,0,1), +(1000,2,'971','Geschichte Kanadas','971',1994,1995,109,0,1), +(1001,2,'972','Geschichte Mittelamerikas, Mexikos','972',1996,1997,109,0,1), +(1002,2,'973','Geschichte der USA','973',1998,1999,109,0,1), +(1003,2,'974','Geschichte der nordöstlichen Staaten der USA','974',2000,2001,109,0,1), +(1004,2,'975','Geschichte der südöstlichen Staaten der USA','975',2002,2003,109,0,1), +(1005,2,'976','Geschichte der südlichen zentralen Staaten der USA','976',2004,2005,109,0,1), +(1006,2,'977','Geschichte der nördlichen zentralen Staaten der USA','977',2006,2007,109,0,1), +(1007,2,'978','Geschichte der westlichen Staaten der USA','978',2008,2009,109,0,1), +(1008,2,'979','Geschichte der Staaten des Großen Beckens und der pazifischen Gebirgsketten','979',2010,2011,109,0,1), +(1009,2,'980','Geschichte Südamerikas','980',2014,2015,110,0,1), +(1010,2,'981','Geschichte Brasiliens','981',2016,2017,110,0,1), +(1011,2,'982','Geschichte Argentiniens','982',2018,2019,110,0,1), +(1012,2,'983','Geschichte Chiles','983',2020,2021,110,0,1), +(1013,2,'984','Geschichte Boliviens','984',2022,2023,110,0,1), +(1014,2,'985','Geschichte Perus','985',2024,2025,110,0,1), +(1015,2,'986','Geschichte Kolumbiens und Ecuadors','986',2026,2027,110,0,1), +(1016,2,'987','Geschichte Venezuelas','987',2028,2029,110,0,1), +(1017,2,'988','Geschichte Guayanas','988',2030,2031,110,0,1), +(1018,2,'989','Geschichte Paraguays und Uruguays','989',2032,2033,110,0,1), +(1019,2,'990','Geschichte anderer Gebiete','990',2036,2037,111,0,1), +(1020,2,'993','Geschichte Neuseelands','993',2038,2039,111,0,1), +(1021,2,'994','Geschichte Australiens','994',2040,2041,111,0,1), +(1022,2,'995','Geschichte Melanesiens, Neuguineas','995',2042,2043,111,0,1), +(1023,2,'996','Geschichte anderer Teile des Pazifischen Ozeans, Polynesiens','996',2044,2045,111,0,1), +(1024,2,'997','Geschichte der atlantischen Inseln','997',2046,2047,111,0,1), +(1025,2,'998','Geschichte der arktischen Inseln und der Antarktis','998',2048,2049,111,0,1), +(1026,2,'999','Geschichte der außerirdischen Welten','999',2050,2051,111,0,1), +(1027,2,'741.5','Comics, Cartoons, Karikaturen','741.5',1494,1495,86,1,1), +(1028,2,'914.3','Landeskunde Deutschlands','914.3',1868,1869,103,1,1); + + + diff --git a/database/migrations/acl_1_roles.ts b/database/migrations/acl_1_roles.ts index 0ca4f2c..a156e82 100644 --- a/database/migrations/acl_1_roles.ts +++ b/database/migrations/acl_1_roles.ts @@ -1,4 +1,4 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class Roles extends BaseSchema { protected tableName = 'roles'; diff --git a/database/migrations/acl_2_permissions.ts b/database/migrations/acl_2_permissions.ts index 78a1651..344034d 100644 --- a/database/migrations/acl_2_permissions.ts +++ b/database/migrations/acl_2_permissions.ts @@ -1,4 +1,4 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class Permissions extends BaseSchema { protected tableName = 'permissions'; diff --git a/database/migrations/acl_3_role_has_permissions.ts b/database/migrations/acl_3_role_has_permissions.ts index 1529b4b..6a3713f 100644 --- a/database/migrations/acl_3_role_has_permissions.ts +++ b/database/migrations/acl_3_role_has_permissions.ts @@ -1,4 +1,4 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class RoleHasPermissions extends BaseSchema { // protected tableName = Config.get('rolePermission.role_permission_table', 'role_permissions') diff --git a/database/migrations/acl_4_accounts.ts b/database/migrations/acl_4_accounts.ts index a963f97..1237635 100644 --- a/database/migrations/acl_4_accounts.ts +++ b/database/migrations/acl_4_accounts.ts @@ -1,4 +1,4 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class Accounts extends BaseSchema { protected tableName = 'accounts'; @@ -14,6 +14,11 @@ export default class Accounts extends BaseSchema { table.string('remember_token'); table.timestamp('created_at'); table.timestamp('updated_at'); + table.text("two_factor_secret").nullable(); + table.text("two_factor_recovery_codes").nullable(); + table.smallint('state').nullable(); + table.bigint('last_counter').nullable(); + table.string('avatar').nullable(); }); } @@ -35,4 +40,53 @@ export default class Accounts extends BaseSchema { // updated_at timestamp(0) without time zone, // CONSTRAINT accounts_pkey PRIMARY KEY (id), // CONSTRAINT accounts_email_unique UNIQUE (email) +// two_factor_secret text COLLATE pg_catalog."default", +// two_factor_recovery_codes text COLLATE pg_catalog."default", +// state smallint, +// last_counter bigint, +// avatar character varying(255), // ) + +// ALTER TABLE gba.accounts +// ADD COLUMN two_factor_secret text COLLATE pg_catalog."default", +// ADD COLUMN two_factor_recovery_codes text COLLATE pg_catalog."default", +// ADD COLUMN state smallint, +// ADD COLUMN last_counter bigint; + + + + +// CREATE TABLE IF NOT EXISTS gba.totp_secrets +// ( +// id integer NOT NULL, +// user_id integer NOT NULL, +// state smallint, +// last_counter bigint, +// two_factor_secret text COLLATE pg_catalog."default", +// two_factor_recovery_codes text COLLATE pg_catalog."default", +// created_at timestamp(0) without time zone, +// updated_at timestamp(0) without time zone, +// CONSTRAINT totp_secrets_pkey PRIMARY KEY (id), +// CONSTRAINT totp_secrets_user_id_foreign FOREIGN KEY (user_id) +// REFERENCES gba.accounts (id) MATCH SIMPLE +// ON UPDATE CASCADE +// ON DELETE CASCADE +// ); + +// CREATE SEQUENCE IF NOT EXISTS gba.totp_secrets_id_seq +// INCREMENT 1 +// START 1 +// MINVALUE 1 +// MAXVALUE 2147483647 +// CACHE 1 +// OWNED BY gba.totp_secrets.id; + +// ALTER SEQUENCE gba.totp_secrets_id_seq +// OWNER TO tethys_admin; + +// GRANT ALL ON SEQUENCE gba.totp_secrets_id_seq TO tethys_admin; + +// ALTER TABLE gba.totp_secrets ALTER COLUMN id SET DEFAULT nextval('gba.totp_secrets_id_seq'); + + +// ALTER TABLE "accounts" ADD COLUMN "avatar" VARCHAR(255) NULL diff --git a/database/migrations/acl_5_link_accounts_roles.ts b/database/migrations/acl_5_link_accounts_roles.ts index 28e5ebc..217b9b3 100644 --- a/database/migrations/acl_5_link_accounts_roles.ts +++ b/database/migrations/acl_5_link_accounts_roles.ts @@ -1,4 +1,4 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class LinkAccountsRoles extends BaseSchema { // protected tableName = Config.get('rolePermission.user_role_table', 'user_roles') diff --git a/database/migrations/config_1_appconfigs_table.ts b/database/migrations/config_1_appconfigs_table.ts new file mode 100644 index 0000000..2b11056 --- /dev/null +++ b/database/migrations/config_1_appconfigs_table.ts @@ -0,0 +1,22 @@ +// node ace make:migration appconfig +import { BaseSchema } from '@adonisjs/lucid/schema'; + +export default class extends BaseSchema { + protected tableName = 'appconfigs'; + + async up() { + this.schema.createTable(this.tableName, (table) => { + table.increments('id'); + table.string('appid', 32).notNullable(); + table.string('configkey', 64).notNullable(); + table.text('configvalue'); + table.bigInteger('type'); + table.smallint('lazy'); + table.unique(['appid', 'configkey']) // Unique constraint on the combination + }); + } + + async down() { + this.schema.dropTable(this.tableName); + } +} diff --git a/database/migrations/config_2_backupcodes_table.ts b/database/migrations/config_2_backupcodes_table.ts new file mode 100644 index 0000000..bd2c70c --- /dev/null +++ b/database/migrations/config_2_backupcodes_table.ts @@ -0,0 +1,55 @@ +// node ace make:migration backupcodes +import { BaseSchema } from '@adonisjs/lucid/schema'; + +export default class extends BaseSchema { + protected tableName = 'backupcodes'; + + async up() { + this.schema.createTable(this.tableName, (table) => { + table.increments('id'); + + table.integer('user_id').unsigned(); + table.string('code', 64).notNullable(); + table.boolean('used').defaultTo(false); + + table.foreign('user_id').references('id').inTable('accounts').onUpdate('CASCADE').onDelete('CASCADE'); + + table.index('user_id', 'backupcodes_uid'); + }); + } + + async down() { + this.schema.dropTable(this.tableName); + } +} + +// CREATE SEQUENCE IF NOT EXISTS gba.backupcodes_id_seq +// INCREMENT 1 +// START 1 +// MINVALUE 1 +// MAXVALUE 2147483647 +// CACHE 1; + +// ALTER SEQUENCE gba.backupcodes_id_seq +// OWNER TO tethys_admin; + +// GRANT ALL ON SEQUENCE gba.backupcodes_id_seq TO tethys_admin; + +// GRANT USAGE ON SEQUENCE gba.backupcodes_id_seq TO tethys_app; + +// CREATE TABLE IF NOT EXISTS gba.backupcodes +// ( +// id integer NOT NULL DEFAULT nextval('gba.backupcodes_id_seq'::regclass), +// user_id integer, +// code character varying(64) NOT NULL, +// used boolean NOT NULL DEFAULT false, +// CONSTRAINT backupcodes_user_id_foreign FOREIGN KEY (user_id) +// REFERENCES gba.accounts (id) MATCH SIMPLE +// ON UPDATE CASCADE +// ON DELETE CASCADE, +// CONSTRAINT backupcodes_pkey PRIMARY KEY (id) +// ) + +// CREATE INDEX IF NOT EXISTS backupcodes_uid +// ON gba.backupcodes USING btree +// (user_id ASC); diff --git a/database/migrations/dataset_10_link_documents_persons.ts b/database/migrations/dataset_10_link_documents_persons.ts index 5be02e4..d5b6f59 100644 --- a/database/migrations/dataset_10_link_documents_persons.ts +++ b/database/migrations/dataset_10_link_documents_persons.ts @@ -1,5 +1,5 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; -import { PersonRoles, ContributorTypes } from 'Contracts/enums'; +import { PersonRoles, ContributorTypes } from '#contracts/enums'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class LinkDocumentsPersons extends BaseSchema { protected tableName = 'link_documents_persons'; diff --git a/database/migrations/dataset_11_subjects.ts b/database/migrations/dataset_11_subjects.ts index 0495fb0..445f427 100644 --- a/database/migrations/dataset_11_subjects.ts +++ b/database/migrations/dataset_11_subjects.ts @@ -1,5 +1,5 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; -import { SubjectTypes } from 'Contracts/enums'; +import { SubjectTypes } from '#contracts/enums'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class DatasetSubjects extends BaseSchema { protected tableName = 'dataset_subjects'; diff --git a/database/migrations/dataset_12_link_dataset_subjects.ts b/database/migrations/dataset_12_link_dataset_subjects.ts index bc43963..cc12a9a 100644 --- a/database/migrations/dataset_12_link_dataset_subjects.ts +++ b/database/migrations/dataset_12_link_dataset_subjects.ts @@ -1,4 +1,4 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class LinkDatasetSubjects extends BaseSchema { protected tableName = 'link_dataset_subjects'; diff --git a/database/migrations/dataset_1_projects.ts b/database/migrations/dataset_1_projects.ts index 425755f..02e9133 100644 --- a/database/migrations/dataset_1_projects.ts +++ b/database/migrations/dataset_1_projects.ts @@ -1,4 +1,4 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class Projects extends BaseSchema { protected tableName = 'projects'; diff --git a/database/migrations/dataset_2_documents.ts b/database/migrations/dataset_2_documents.ts index ab16ab3..6629689 100644 --- a/database/migrations/dataset_2_documents.ts +++ b/database/migrations/dataset_2_documents.ts @@ -1,5 +1,5 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; -import { DatasetTypes, ServerStates } from 'Contracts/enums'; +import { DatasetTypes, ServerStates } from '#contracts/enums'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class Documents extends BaseSchema { protected tableName = 'documents'; @@ -86,3 +86,22 @@ export default class Documents extends BaseSchema { // 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 documents DROP CONSTRAINT documents_server_state_check; + +// ALTER TABLE documents +// ADD CONSTRAINT documents_server_state_check CHECK ( +// server_state::text = ANY (ARRAY[ +// 'deleted', +// 'inprogress', +// 'published', +// 'released', +// 'editor_accepted', +// 'approved', +// 'rejected_reviewer', +// 'rejected_editor', +// 'reviewed', +// 'rejected_to_reviewer' -- new value added +// ]::text[]) +// ); \ No newline at end of file diff --git a/database/migrations/dataset_3_abstracts.ts b/database/migrations/dataset_3_abstracts.ts index 1a23bfe..7298bbf 100644 --- a/database/migrations/dataset_3_abstracts.ts +++ b/database/migrations/dataset_3_abstracts.ts @@ -1,5 +1,5 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; -import { DescriptionTypes } from 'Contracts/enums'; +import { DescriptionTypes } from '#contracts/enums'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class DatasetTitles extends BaseSchema { protected tableName = 'dataset_abstracts'; diff --git a/database/migrations/dataset_4_titles.ts b/database/migrations/dataset_4_titles.ts index 93814f5..a8d33f8 100644 --- a/database/migrations/dataset_4_titles.ts +++ b/database/migrations/dataset_4_titles.ts @@ -1,5 +1,5 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; -import { TitleTypes } from 'Contracts/enums'; +import { TitleTypes } from '#contracts/enums'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class DatasetTitles extends BaseSchema { protected tableName = 'dataset_titles'; diff --git a/database/migrations/dataset_6_collection_roles.ts b/database/migrations/dataset_6_collection_roles.ts index 4774fde..1491d9a 100644 --- a/database/migrations/dataset_6_collection_roles.ts +++ b/database/migrations/dataset_6_collection_roles.ts @@ -1,4 +1,4 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class CollectionsRoles extends BaseSchema { protected tableName = 'collections_roles'; @@ -32,3 +32,21 @@ export default class CollectionsRoles extends BaseSchema { // visible_oai boolean NOT NULL DEFAULT true, // CONSTRAINT collections_roles_pkey PRIMARY KEY (id) // ) + +// change to normal intzeger: +// ALTER TABLE collections_roles ALTER COLUMN id DROP DEFAULT; +// DROP SEQUENCE IF EXISTS collections_roles_id_seq; + +// -- Step 1: Temporarily change one ID to a value not currently used +// UPDATE collections_roles SET id = 99 WHERE name = 'ccs'; + +// -- Step 2: Change 'ddc' ID to 2 (the old 'ccs' ID) +// UPDATE collections_roles SET id = 2 WHERE name = 'ddc'; + +// -- Step 3: Change the temporary ID (99) to 3 (the old 'ddc' ID) +// UPDATE collections_roles SET id = 3 WHERE name = 'ccs'; + +// UPDATE collections_roles SET id = 99 WHERE name = 'bk'; +// UPDATE collections_roles SET id = 1 WHERE name = 'institutes'; +// UPDATE collections_roles SET id = 4 WHERE name = 'pacs'; +// UPDATE collections_roles SET id = 7 WHERE name = 'bk'; \ No newline at end of file diff --git a/database/migrations/dataset_7_collections.ts b/database/migrations/dataset_7_collections.ts index e3cf5d0..b942111 100644 --- a/database/migrations/dataset_7_collections.ts +++ b/database/migrations/dataset_7_collections.ts @@ -1,11 +1,11 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; +import { BaseSchema } from "@adonisjs/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.increments('id');//.defaultTo("nextval('collections_id_seq')"); table.integer('role_id').unsigned(); table .foreign('role_id', 'collections_role_id_foreign') @@ -25,6 +25,8 @@ export default class Collections extends BaseSchema { .onUpdate('CASCADE'); table.boolean('visible').notNullable().defaultTo(true); table.boolean('visible_publish').notNullable().defaultTo(true); + table.integer('left_id').unsigned(); + table.integer('right_id').unsigned(); }); } @@ -54,3 +56,31 @@ export default class Collections extends BaseSchema { // ON UPDATE CASCADE // ON DELETE CASCADE // ) + + +// change to normal intzeger: +// ALTER TABLE collections ALTER COLUMN id DROP DEFAULT; +// DROP SEQUENCE IF EXISTS collections_id_seq; + + +// ALTER TABLE collections +// ADD COLUMN left_id INTEGER; +// COMMENT ON COLUMN collections.left_id IS 'comment'; +// ALTER TABLE collections +// ADD COLUMN right_id INTEGER; +// COMMENT ON COLUMN collections.right_id IS 'comment'; + +// -- Step 1: Drop the existing default +// ALTER TABLE collections +// ALTER COLUMN visible DROP DEFAULT, +// ALTER COLUMN visible_publish DROP DEFAULT; + +// -- Step 2: Change column types with proper casting +// ALTER TABLE collections +// ALTER COLUMN visible TYPE smallint USING CASE WHEN visible THEN 1 ELSE 0 END, +// ALTER COLUMN visible_publish TYPE smallint USING CASE WHEN visible_publish THEN 1 ELSE 0 END; + +// -- Step 3: Set new defaults as smallint +// ALTER TABLE collections +// ALTER COLUMN visible SET DEFAULT 1, +// ALTER COLUMN visible_publish SET DEFAULT 1; \ No newline at end of file diff --git a/database/migrations/dataset_8_link_documents_collections.ts b/database/migrations/dataset_8_link_documents_collections.ts index 4190c36..1eecb4e 100644 --- a/database/migrations/dataset_8_link_documents_collections.ts +++ b/database/migrations/dataset_8_link_documents_collections.ts @@ -1,4 +1,4 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class LinkDocumentsCollections extends BaseSchema { protected tableName = 'link_documents_collections'; diff --git a/database/migrations/dataset_9_persons.ts b/database/migrations/dataset_9_persons.ts index 82689bd..1b7821f 100644 --- a/database/migrations/dataset_9_persons.ts +++ b/database/migrations/dataset_9_persons.ts @@ -1,5 +1,5 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; -import { PersonNameTypes } from 'Contracts/enums'; +import { PersonNameTypes } from '#contracts/enums'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class Persons extends BaseSchema { protected tableName = 'persons'; diff --git a/database/migrations/files_1_document_files.ts b/database/migrations/files_1_document_files.ts index 044d214..64088de 100644 --- a/database/migrations/files_1_document_files.ts +++ b/database/migrations/files_1_document_files.ts @@ -1,4 +1,4 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class DocumentFiles extends BaseSchema { protected tableName = 'document_files'; diff --git a/database/migrations/files_2_file_hashvalues.ts b/database/migrations/files_2_file_hashvalues.ts index b0823bc..3cfe15c 100644 --- a/database/migrations/files_2_file_hashvalues.ts +++ b/database/migrations/files_2_file_hashvalues.ts @@ -1,4 +1,4 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class FileHashvalues extends BaseSchema { protected tableName = 'file_hashvalues'; diff --git a/database/migrations/files_3_document_licences.ts b/database/migrations/files_3_document_licences.ts index 2aa6089..cc9d727 100644 --- a/database/migrations/files_3_document_licences.ts +++ b/database/migrations/files_3_document_licences.ts @@ -1,4 +1,4 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class DocumentLicences extends BaseSchema { protected tableName = 'document_licences'; diff --git a/database/migrations/files_4_link_documents_licences.ts b/database/migrations/files_4_link_documents_licences.ts index 23fbd45..a14eaab 100644 --- a/database/migrations/files_4_link_documents_licences.ts +++ b/database/migrations/files_4_link_documents_licences.ts @@ -1,4 +1,4 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class LinkDocumentsLicences extends BaseSchema { protected tableName = 'link_documents_licences'; diff --git a/database/migrations/lookup_1_mime_types.ts b/database/migrations/lookup_1_mime_types.ts index d08b0ae..03d5f94 100644 --- a/database/migrations/lookup_1_mime_types.ts +++ b/database/migrations/lookup_1_mime_types.ts @@ -1,4 +1,4 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class MimeTypes extends BaseSchema { protected tableName = 'mime_types'; diff --git a/database/migrations/lookup_2_languages.ts b/database/migrations/lookup_2_languages.ts index fadfe61..504253b 100644 --- a/database/migrations/lookup_2_languages.ts +++ b/database/migrations/lookup_2_languages.ts @@ -1,4 +1,4 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class Languages extends BaseSchema { protected tableName = 'languages'; diff --git a/database/migrations/lookup_3_document_xml_cache.ts b/database/migrations/lookup_3_document_xml_cache.ts index a9086bb..3ba3e0a 100644 --- a/database/migrations/lookup_3_document_xml_cache.ts +++ b/database/migrations/lookup_3_document_xml_cache.ts @@ -1,4 +1,4 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class DocumentXmlCache extends BaseSchema { protected tableName = 'document_xml_cache'; diff --git a/database/migrations/references_1_document_references.ts b/database/migrations/references_1_document_references.ts index 54674a5..0b93f71 100644 --- a/database/migrations/references_1_document_references.ts +++ b/database/migrations/references_1_document_references.ts @@ -1,5 +1,5 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; -import { RelationTypes, ReferenceIdentifierTypes } from 'Contracts/enums'; +import { RelationTypes, ReferenceIdentifierTypes } from '#contracts/enums'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class DocumentReferences extends BaseSchema { protected tableName = 'document_references'; diff --git a/database/migrations/references_2_document_identifiers.ts b/database/migrations/references_2_document_identifiers.ts index a9850ad..099f8ec 100644 --- a/database/migrations/references_2_document_identifiers.ts +++ b/database/migrations/references_2_document_identifiers.ts @@ -1,5 +1,5 @@ -import BaseSchema from '@ioc:Adonis/Lucid/Schema'; -import { IdentifierTypes } from 'Contracts/enums'; +import { IdentifierTypes } from '#contracts/enums'; +import { BaseSchema } from "@adonisjs/lucid/schema"; export default class DocumentIdentifiers extends BaseSchema { protected tableName = 'document_identifiers'; diff --git a/database/migrations/update_1_to_mime_types.ts b/database/migrations/update_1_to_mime_types.ts new file mode 100644 index 0000000..f09210c --- /dev/null +++ b/database/migrations/update_1_to_mime_types.ts @@ -0,0 +1,18 @@ +import { BaseSchema } from "@adonisjs/lucid/schema"; + +export default class AddAlternateMimetypeToMimeTypes extends BaseSchema { + protected tableName = 'mime_types'; + + public async up () { + this.schema.alterTable(this.tableName, (table) => { + table.string('alternate_mimetype').nullable(); + }); + } + + public async down () { + this.schema.alterTable(this.tableName, (table) => { + table.dropColumn('alternate_mimetype'); + }); + } +} +// ALTER TABLE "mime_types" ADD COLUMN "alternate_mimetype" VARCHAR(255) NULL \ No newline at end of file diff --git a/index.d.ts b/index.d.ts index 1a8e357..f6767a1 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,5 +1,191 @@ +// import { transform } from 'typescript'; + declare module '*.vue' { import type { DefineComponent } from 'vue'; const component: DefineComponent<{}, {}, any>; export default component; } + +interface DeserializeResult { + id: string; + version?: number; + params?: { [key: string]: string | number }; + salt?: Buffer; + hash?: Buffer; +} +declare module '@phc/format' { + /** + * Hashes a password. + * @param password The password to hash. + * @param options Hashing options. + * @returns A Promise that resolves to the hashed password. + */ + export function hash(password: string, options?: object): Promise<string>; + + /** + * Verifies a password against a hashed password. + * @param password The password to verify. + * @param hashedPassword The hashed password to compare against. + * @returns A Promise that resolves to true if the password matches the hashed password, false otherwise. + */ + export function verify(password: string, hashedPassword: string): Promise<boolean>; + + /** + * Generates a PHC string using the data provided. + * @param {Object} opts Object that holds the data needed to generate the PHC + * string. + * @param {string} opts.id Symbolic name for the function. + * @param {Number} [opts.version] The version of the function. + * @param {Object} [opts.params] Parameters of the function. + * @param {Buffer} [opts.salt] The salt as a binary buffer. + * @param {Buffer} [opts.hash] The hash as a binary buffer. + * @return {string} The hash string adhering to the PHC format. + */ + export function serialize(opts): string; + + /** + * Parses data from a PHC string. + * @param {string} phcstr A PHC string to parse. + * @return {DeserializeResult} The object containing the data parsed from the PHC string. + */ + export function deserialize(phcstr: string): DeserializeResult; +} + +declare module 'saxon-js' { + /** + * Exactly one of stylesheetLocation, stylesheetFileName, stylesheetText, or stylesheetInternal must be supplied. + * Exactly one of sourceLocation, sourceFileName, sourceNode, or sourceText can be supplied. + */ + export interface ITransformOptions { + /** + * A URI that can be used to locate the compiled stylesheet (a SEF file in JSON format). + */ + stylesheetLocation?: string; + + /** + * A file name that can be used to locate the compiled stylesheet (a JSON document). + * Available in Node.js only. The filename, if relative, is resolved against the + * current working directory. + */ + stylesheetFileName?: string; + + /** + * The JSON text content of the compiled stylesheet. + */ + stylesheetText?: Buffer; + + /** + * This may be set to the JavaScript object that results from JSON-parsing of the SEF file. + */ + stylesheetInternal?: object; + + /** + * The static base URI of the stylesheet, as an absolute base URI. + * Used, for example, by functions such as doc() or resolve-uri(). + */ + stylesheetBaseURI?: string; + + /** + * Either "json" or "xml": used with sourceLocation, sourceFileName, or sourceText + * to indicate whether the source is JSON or XML. Defaults to "xml". + */ + sourceType?: string; + + /** + * URI that can be used to locate the XML or JSON document. + */ + sourceLocation?: string; + + /** + * File name of the XML or JSON document. Available in Node.js only. + * The filename, if relative, is resolved against the current working directory. + */ + sourceFileName?: string; + + /** + * The principal input as a DOM Node. This will normally be a Document or + * DocumentFragment node, but any node is acceptable. (If it is not a + * Document or DocumentFragment, then it will not match any match="/" + * template rule.) + */ + sourceNode?: Node; + + /** + * Lexical XML or JSON supplying the source document. + */ + sourceText?: string; + + /** + * Absolute base URI for the source. The base URI of the source is automatically + * set when supplied using sourceLocation or sourceFileName. This option can be + * used to set the base URI for source supplied using sourceNode or sourceText, + * as required. + */ + sourceBaseURI?: string; + + /** + * Determines what happens to the principal result tree from the transformation. + * The default value is "application". + */ + destination?: + | 'replaceBody' + | 'appendToBody' + | 'prependToBody' + | 'raw' + | 'document' + | 'application' + | 'file' + | 'stdout' + | 'serialized'; + + /** + * The meanings of the values are described under SaxonJS.XPath.evaluate(). + */ + resultForm?: 'default' | 'array' | 'iterator' | 'xdm'; + + /** + * Supplies additional serialization properties to be used when the principal + * transformation result is serialized (if no serialization takes place, this + * property is ignored). An example might be {method: "xml", indent: false}. + */ + outputProperties?: object; + + /** + * Applicable to Node.js only (in the browser, the HTML page always acts as the + * master document). The master document is accessible within the transformation + * using the extension function ixsl:page(). It can be updated in-situ by invoking + * xsl:result-document with an appropriate method, or by using the extension + * instructons ixsl:set-attribute or ixsl:remove-attribute. + */ + masterDocument?: Node; + + /** + * The Base Output URI for the transformation. Used to resolve relative URIs + * appearing in the href attribute of xsl:result-document. In the browser, the + * base output URI is always the URI of the HTML page (any other value is ignored). + * In Node.js, the default is the URI of the principal output file for the + * transformation; or failing that, the URI of the document supplied as + * masterDocument. + */ + baseOutputURI?: string; + + stylesheetParams?: XslTParameter; + } + interface XslTParameter { + [key: string]: any; + } + export interface ITransformOutput { + principalResult: any; + resultDocuments: object; + stylesheetInternal: object; + masterDocument: Node; + } + + export function transform(options: ITransformOptions): Promise<ITransformOutput> | ITransformOutput; +} + +declare global { + interface File { + sort_order?: number; + } + } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 701fe34..6b10877 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17578 +1,14814 @@ { - "name": "myapp", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "myapp", - "version": "1.0.0", - "dependencies": { - "@adonisjs/auth": "^8.2.3", - "@adonisjs/core": "^5.9.0", - "@adonisjs/lucid": "^18.3.0", - "@adonisjs/repl": "^3.1.11", - "@adonisjs/session": "^6.4.0", - "@adonisjs/shield": "^7.1.0", - "@adonisjs/view": "^6.1.5", - "@eidellev/adonis-stardust": "^3.0.0", - "@eidellev/inertia-adonisjs": "^8.0.0", - "@fontsource/archivo-black": "^5.0.1", - "@fontsource/inter": "^5.0.1", - "@inertiajs/inertia": "^0.11.1", - "@inertiajs/vue3": "^1.0.0", - "bcryptjs": "^2.4.3", - "clamscan": "^2.1.2", - "crypto": "^1.0.1", - "dayjs": "^1.11.7", - "http-status-codes": "^2.2.0", - "leaflet": "^1.9.3", - "luxon": "^3.2.1", - "notiwind": "^2.0.0", - "pg": "^8.9.0", - "proxy-addr": "^2.0.7", - "reflect-metadata": "^0.1.13", - "saxon-js": "^2.5.0", - "source-map-support": "^0.5.21", - "vuedraggable": "^4.1.0", - "xmlbuilder2": "^3.1.1" - }, - "devDependencies": { - "@adonisjs/assembler": "^5.7.0", - "@babel/core": "^7.20.12", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-decorators": "^7.20.13", - "@babel/plugin-transform-runtime": "^7.19.6", - "@babel/preset-env": "^7.20.2", - "@babel/preset-typescript": "^7.18.6", - "@japa/preset-adonis": "^1.0.16", - "@japa/runner": "^2.0.8", - "@mdi/js": "^7.1.96", - "@symfony/webpack-encore": "^4.2.0", - "@tailwindcss/forms": "^0.5.2", - "@types/clamscan": "^2.0.4", - "@types/leaflet": "^1.9.3", - "@types/node": "^20.1.1", - "@types/proxy-addr": "^2.0.0", - "@types/source-map-support": "^0.5.6", - "@vue/tsconfig": "^0.4.0", - "adonis-preset-ts": "^2.1.0", - "autoprefixer": "^10.4.13", - "babel-preset-typescript-vue3": "^2.0.17", - "chart.js": "^4.2.0", - "eslint": "^8.32.0", - "eslint-config-prettier": "^9.0.0", - "eslint-plugin-adonis": "^2.1.1", - "eslint-plugin-prettier": "^5.0.0-alpha.2", - "naive-ui": "^2.34.3", - "numeral": "^2.0.6", - "pinia": "^2.0.30", - "pino-pretty": "^10.0.0", - "postcss-loader": "^7.0.2", - "prettier": "^3.0.0", - "supertest": "^6.3.3", - "tailwindcss": "^3.2.4", - "ts-loader": "^9.4.2", - "typescript": "^5.1.3", - "vue": "^3.2.47", - "vue-facing-decorator": "^3.0.0", - "vue-loader": "^17.0.1", - "xslt3": "^2.5.0", - "youch": "^3.2.0", - "youch-terminal": "^2.1.4" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@adonisjs/ace": { - "version": "11.3.1", - "resolved": "https://registry.npmjs.org/@adonisjs/ace/-/ace-11.3.1.tgz", - "integrity": "sha512-Ho3+Lk/16OSjX3CfhxsoLUTlcVG4sDlXUwHx+Zry/RLft5M6plT5ln0WkZvL7tqtb1uCZgP5YiMrMtDjSRzZLA==", - "dependencies": { - "@poppinss/cliui": "^3.0.2", - "@poppinss/prompts": "^2.0.2", - "@poppinss/utils": "^4.0.4", - "fs-extra": "^10.1.0", - "getopts": "^2.3.0", - "leven": "^3.1.0", - "mustache": "^4.2.0", - "slash": "^3.0.0", - "term-size": "^2.2.1" - }, - "peerDependencies": { - "@adonisjs/application": "^5.0.0" - } - }, - "node_modules/@adonisjs/ace/node_modules/@poppinss/utils": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", - "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", - "dependencies": { - "@poppinss/file-generator": "^1.0.2", - "@types/bytes": "^3.1.1", - "@types/he": "^1.1.2", - "bytes": "^3.1.2", - "change-case": "^4.1.2", - "cuid": "^2.1.8", - "flattie": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "he": "^1.2.0", - "kind-of": "^6.0.3", - "lodash": "^4.17.21", - "ms": "^2.1.3", - "pluralize": "^8.0.0", - "require-all": "^3.0.0", - "resolve-from": "^5.0.0", - "slugify": "^1.6.5", - "truncatise": "0.0.8" - } - }, - "node_modules/@adonisjs/application": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@adonisjs/application/-/application-5.3.0.tgz", - "integrity": "sha512-AruZZXMgOdmmRxJEHUbXoqhgRavPfhkeIR2nQtGyxbn0PCNjqlGraq8ypuLINY1J+wNuH2tt0xCS98EDeMdTOQ==", - "dependencies": { - "@adonisjs/config": "^3.0.9", - "@adonisjs/env": "^3.0.9", - "@adonisjs/fold": "^8.2.0", - "@adonisjs/logger": "^4.1.5", - "@adonisjs/profiler": "^6.0.9", - "@poppinss/utils": "^5.0.0", - "semver": "^7.3.8" - } - }, - "node_modules/@adonisjs/assembler": { - "version": "5.9.5", - "resolved": "https://registry.npmjs.org/@adonisjs/assembler/-/assembler-5.9.5.tgz", - "integrity": "sha512-wCtQRZ4KoIZkzi+ux5NrDUDNASRomytRZ7AZBdw8Hi3LlEOeac4T8+47y7gXwJFKH2nnGoiIwnXGIgJyolXEfQ==", - "dev": true, - "dependencies": { - "@adonisjs/application": "^5.2.5", - "@adonisjs/env": "^3.0.9", - "@adonisjs/ioc-transformer": "^2.3.4", - "@adonisjs/require-ts": "^2.0.13", - "@adonisjs/sink": "^5.4.2", - "@poppinss/chokidar-ts": "^3.3.5", - "@poppinss/cliui": "^3.0.5", - "@poppinss/utils": "^5.0.0", - "cpy": "^8.1.2", - "emittery": "^0.13.1", - "execa": "^5.1.1", - "fs-extra": "^10.1.0", - "get-port": "^5.1.1", - "glob-parent": "^6.0.2", - "has-yarn": "^2.1.0", - "picomatch": "^2.3.1", - "slash": "^3.0.0" - }, - "peerDependencies": { - "@adonisjs/core": "^5.1.0" - } - }, - "node_modules/@adonisjs/auth": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@adonisjs/auth/-/auth-8.2.3.tgz", - "integrity": "sha512-js9e8AHEsNC/8MGvho6MgL+uXr8SlhTg9MJJDWQBBiqsKkT7+H7NMP/pLbuSzYaaf40t2u/OXfq6wXuIC5ZYvw==", - "dependencies": { - "@poppinss/hooks": "^5.0.3", - "@poppinss/utils": "^5.0.0", - "luxon": "^3.0.4" - }, - "peerDependencies": { - "@adonisjs/core": "^5.7.1", - "@adonisjs/i18n": "^1.5.0", - "@adonisjs/lucid": "^18.0.0", - "@adonisjs/redis": "^7.2.0", - "@adonisjs/session": "^6.2.0" - }, - "peerDependenciesMeta": { - "@adonisjs/i18n": { - "optional": true - }, - "@adonisjs/lucid": { - "optional": true - }, - "@adonisjs/redis": { - "optional": true - }, - "@adonisjs/session": { - "optional": true - } - } - }, - "node_modules/@adonisjs/bodyparser": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@adonisjs/bodyparser/-/bodyparser-8.1.9.tgz", - "integrity": "sha512-enVETPmoBJhg+CP6AVlG/GSwllpW/5y22wjFpEhYZl0YOXnE7i+wsp2VeGfMtQzl4+snTuAPEfwCtG+I/s6jqQ==", - "dependencies": { - "@poppinss/co-body": "^1.1.3", - "@poppinss/multiparty": "^2.0.1", - "@poppinss/utils": "^5.0.0", - "bytes": "^3.1.2", - "file-type": "^16.5.4", - "fs-extra": "^10.1.0", - "media-typer": "^1.1.0", - "slash": "^3.0.0" - }, - "peerDependencies": { - "@adonisjs/application": "^5.0.0", - "@adonisjs/drive": "^2.0.0", - "@adonisjs/http-server": "^5.0.0" - } - }, - "node_modules/@adonisjs/config": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@adonisjs/config/-/config-3.0.9.tgz", - "integrity": "sha512-f+wzrc+0HLvhJyYGEMV2QTHtyJ8sI3PKvH9h/baW/iF8UO3KF+llHH0Cf3/M5dYnpdz9rnmj0VtdTaIDfxrgGg==", - "dependencies": { - "@poppinss/utils": "^5.0.0" - } - }, - "node_modules/@adonisjs/core": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@adonisjs/core/-/core-5.9.0.tgz", - "integrity": "sha512-32zG9EW0t0Ck0cMzlwD0+z3GJG7k/gZz6P0+h+s8N1N7fHxGixrKs7W7lT3OcIvk0NsuIw1tUPAU7fAWytHEqA==", - "dependencies": { - "@adonisjs/ace": "^11.3.1", - "@adonisjs/application": "^5.3.0", - "@adonisjs/bodyparser": "^8.1.7", - "@adonisjs/drive": "^2.3.0", - "@adonisjs/encryption": "^4.0.8", - "@adonisjs/events": "^7.2.1", - "@adonisjs/hash": "^7.2.2", - "@adonisjs/http-server": "^5.12.0", - "@adonisjs/validator": "^12.4.1", - "@poppinss/cliui": "^3.0.5", - "@poppinss/manager": "^5.0.2", - "@poppinss/utils": "^5.0.0", - "fs-extra": "^10.1.0", - "macroable": "^7.0.2", - "memfs": "^3.4.12", - "serve-static": "^1.15.0", - "stringify-attributes": "^2.0.0" - } - }, - "node_modules/@adonisjs/drive": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@adonisjs/drive/-/drive-2.3.0.tgz", - "integrity": "sha512-3V1kBe2qB/860KcS+dDonv8Xya2YDBdR7291pQgObJeTbV50Vy8RhwdOwtU7ybRfN2kh/svdC4238JGpbQOR9w==", - "dependencies": { - "@poppinss/manager": "^5.0.2", - "@poppinss/utils": "^5.0.0", - "@types/fs-extra": "^9.0.13", - "etag": "^1.8.1", - "fs-extra": "^10.1.0", - "memfs": "^3.4.7" - }, - "peerDependencies": { - "@adonisjs/application": "^5.0.0", - "@adonisjs/http-server": "^5.0.0" - } - }, - "node_modules/@adonisjs/encryption": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@adonisjs/encryption/-/encryption-4.0.8.tgz", - "integrity": "sha512-zMWbIESPHXafsbiLJyON/hlRYwrTIA3PuTil7xC8W4ngC36PgWe86Ra0x0t961u1We/LaSGkT8Vn93DymqB3aA==", - "dependencies": { - "@poppinss/utils": "^4.0.3" - }, - "peerDependencies": { - "@adonisjs/application": "^5.0.0" - } - }, - "node_modules/@adonisjs/encryption/node_modules/@poppinss/utils": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", - "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", - "dependencies": { - "@poppinss/file-generator": "^1.0.2", - "@types/bytes": "^3.1.1", - "@types/he": "^1.1.2", - "bytes": "^3.1.2", - "change-case": "^4.1.2", - "cuid": "^2.1.8", - "flattie": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "he": "^1.2.0", - "kind-of": "^6.0.3", - "lodash": "^4.17.21", - "ms": "^2.1.3", - "pluralize": "^8.0.0", - "require-all": "^3.0.0", - "resolve-from": "^5.0.0", - "slugify": "^1.6.5", - "truncatise": "0.0.8" - } - }, - "node_modules/@adonisjs/env": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@adonisjs/env/-/env-3.0.9.tgz", - "integrity": "sha512-9lxGmOQuF4FpUQ6NIwL/YQumaXG+2Wt8jQlQptplSUTasy6DHSEp7/SYvtC2RD9vxwn4gsptNCo+f8YRiqUvwQ==", - "dependencies": { - "@poppinss/utils": "^4.0.2", - "dotenv": "^16.0.0", - "validator": "^13.7.0" - } - }, - "node_modules/@adonisjs/env/node_modules/@poppinss/utils": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", - "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", - "dependencies": { - "@poppinss/file-generator": "^1.0.2", - "@types/bytes": "^3.1.1", - "@types/he": "^1.1.2", - "bytes": "^3.1.2", - "change-case": "^4.1.2", - "cuid": "^2.1.8", - "flattie": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "he": "^1.2.0", - "kind-of": "^6.0.3", - "lodash": "^4.17.21", - "ms": "^2.1.3", - "pluralize": "^8.0.0", - "require-all": "^3.0.0", - "resolve-from": "^5.0.0", - "slugify": "^1.6.5", - "truncatise": "0.0.8" - } - }, - "node_modules/@adonisjs/events": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/@adonisjs/events/-/events-7.2.1.tgz", - "integrity": "sha512-N+ewQ19pvdWVIRGBeio1GqlMRJpHpZ+ZHCjhObI+bqoCh5nBApumW0JYe4blyMnUbUAtA9Aq1m1QbGaE7pRMcw==", - "dependencies": { - "emittery": "^0.10.0" - }, - "peerDependencies": { - "@adonisjs/application": "^5.0.0" - } - }, - "node_modules/@adonisjs/events/node_modules/emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/@adonisjs/fold": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@adonisjs/fold/-/fold-8.2.0.tgz", - "integrity": "sha512-Uoo2HPp4SShIkGOF3+p3gT09W3j0zpkK+fOpPyYPTqYm7CWAunklTlowqX45b6CAVb5DCcORDUB8ia4D1ijeKg==", - "dependencies": { - "@poppinss/utils": "^4.0.4" - } - }, - "node_modules/@adonisjs/fold/node_modules/@poppinss/utils": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", - "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", - "dependencies": { - "@poppinss/file-generator": "^1.0.2", - "@types/bytes": "^3.1.1", - "@types/he": "^1.1.2", - "bytes": "^3.1.2", - "change-case": "^4.1.2", - "cuid": "^2.1.8", - "flattie": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "he": "^1.2.0", - "kind-of": "^6.0.3", - "lodash": "^4.17.21", - "ms": "^2.1.3", - "pluralize": "^8.0.0", - "require-all": "^3.0.0", - "resolve-from": "^5.0.0", - "slugify": "^1.6.5", - "truncatise": "0.0.8" - } - }, - "node_modules/@adonisjs/hash": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@adonisjs/hash/-/hash-7.2.2.tgz", - "integrity": "sha512-qJxFX8jNH+5+jxckIIvz2y9pMt59ueT50a4B5kUe/68g5iC7UdwKmMos+tj5Pnm5hRFfwKXbtIQBGd+Bb87+2Q==", - "dependencies": { - "@phc/format": "^1.0.0", - "@poppinss/manager": "^5.0.2", - "@poppinss/utils": "^5.0.0" - }, - "peerDependencies": { - "@adonisjs/application": "^5.0.0" - } - }, - "node_modules/@adonisjs/http-server": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@adonisjs/http-server/-/http-server-5.12.0.tgz", - "integrity": "sha512-+9cw/DRlLO2NSoHsccmMe3pFf6c0/8INds2yf73ZAZOmzUROb9DQaXHocJ/iwHX9EVxtDuKWDc5z0jI1SYdqEA==", - "dependencies": { - "@poppinss/matchit": "^3.1.2", - "@poppinss/utils": "^5.0.0", - "accepts": "^1.3.8", - "co-compose": "^7.0.2", - "content-disposition": "^0.5.4", - "cookie": "^0.5.0", - "destroy": "^1.2.0", - "encodeurl": "^1.0.2", - "etag": "^1.8.1", - "fresh": "^0.5.2", - "haye": "^3.0.0", - "macroable": "^7.0.2", - "mime-types": "^2.1.35", - "ms": "^2.1.3", - "on-finished": "^2.4.1", - "pluralize": "^8.0.0", - "proxy-addr": "^2.0.7", - "qs": "^6.11.0", - "tmp-cache": "^1.1.0", - "type-is": "^1.6.18", - "vary": "^1.1.2" - }, - "peerDependencies": { - "@adonisjs/application": "^5.0.0", - "@adonisjs/encryption": "^4.0.0" - } - }, - "node_modules/@adonisjs/ioc-transformer": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@adonisjs/ioc-transformer/-/ioc-transformer-2.3.4.tgz", - "integrity": "sha512-ik1C7f0Hbqenw6S1Ty06B4pznGfpUH5bL2fiCYgwq+jKPw8CKdsTQKvYudS6Tj68Nr6Mpqow4RNbvFV/OC0mZg==", - "dev": true - }, - "node_modules/@adonisjs/logger": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@adonisjs/logger/-/logger-4.1.5.tgz", - "integrity": "sha512-JMINhXp/6VW0y4e86luyM8vbBzV4Y5F4IzVklMObCu/SwiaCbp5bgx9Z6QOHiGVW8SFVlRF1KlwLq8pAifjTpQ==", - "dependencies": { - "@poppinss/utils": "^5.0.0", - "@types/pino": "^6.3.12", - "abstract-logging": "^2.0.1", - "pino": "^6.14.0" - } - }, - "node_modules/@adonisjs/lucid": { - "version": "18.4.2", - "resolved": "https://registry.npmjs.org/@adonisjs/lucid/-/lucid-18.4.2.tgz", - "integrity": "sha512-4k8GOat/YQtobNqwBIU8VAuY19p+V3ucBRoZ+iwxd/qy/KE1XupPzuMZVWYt1vyBboCrBmEYYmvC851tNqoP0A==", - "dependencies": { - "@faker-js/faker": "^8.0.1", - "@poppinss/hooks": "^5.0.3", - "@poppinss/utils": "^5.0.0", - "fast-deep-equal": "^3.1.3", - "igniculus": "^1.5.0", - "knex": "^2.4.2", - "knex-dynamic-connection": "^3.0.1", - "luxon": "^3.3.0", - "macroable": "^7.0.2", - "pretty-hrtime": "^1.0.3", - "qs": "^6.11.2", - "slash": "^3.0.0", - "tarn": "^3.0.2" - }, - "engines": { - "node": ">=14.15.4" - }, - "peerDependencies": { - "@adonisjs/core": "^5.1.0" - } - }, - "node_modules/@adonisjs/profiler": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/@adonisjs/profiler/-/profiler-6.0.9.tgz", - "integrity": "sha512-V1bJPPDTn05NzAKUEICnYtWi9fC8NownUToaqxVkWOUovYBO6ubt06qtH1Uv9zvUjB2PKHUn+ieDAOgyHle09A==", - "dependencies": { - "@poppinss/utils": "^4.0.3", - "jest-worker": "^27.5.1" - }, - "peerDependencies": { - "@adonisjs/logger": "^4.0.0" - } - }, - "node_modules/@adonisjs/profiler/node_modules/@poppinss/utils": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", - "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", - "dependencies": { - "@poppinss/file-generator": "^1.0.2", - "@types/bytes": "^3.1.1", - "@types/he": "^1.1.2", - "bytes": "^3.1.2", - "change-case": "^4.1.2", - "cuid": "^2.1.8", - "flattie": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "he": "^1.2.0", - "kind-of": "^6.0.3", - "lodash": "^4.17.21", - "ms": "^2.1.3", - "pluralize": "^8.0.0", - "require-all": "^3.0.0", - "resolve-from": "^5.0.0", - "slugify": "^1.6.5", - "truncatise": "0.0.8" - } - }, - "node_modules/@adonisjs/repl": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/@adonisjs/repl/-/repl-3.1.11.tgz", - "integrity": "sha512-t4xN+G+fa/XeZ+7qHnFbTk1bri/4RIGdFDk1cq2SeZI3nfu3E8Ma62uQVc8U3AAroN51plzXVcUoQ/Iw8q1P+Q==", - "dependencies": { - "@poppinss/colors": "^3.0.2", - "node-repl-await": "^0.1.2", - "parse-imports": "0.0.5", - "string-width": "^4.2.2" - }, - "peerDependencies": { - "@adonisjs/core": "^5.1.0" - } - }, - "node_modules/@adonisjs/require-ts": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@adonisjs/require-ts/-/require-ts-2.0.13.tgz", - "integrity": "sha512-PyDvrGzriU9dJC/ZkP+aT/+5jKCMTWIlc6KivU/uSGX9L9+PF213nzAATS1PKEWP1G0GcWsnyhQW8QgMwuFS3A==", - "dev": true, - "dependencies": { - "@poppinss/utils": "^5.0.0", - "debug": "^4.3.4", - "find-cache-dir": "^3.3.2", - "fs-extra": "^10.1.0", - "normalize-path": "^3.0.0", - "pirates": "^4.0.5", - "rev-hash": "^3.0.0", - "source-map-support": "^0.5.21" - } - }, - "node_modules/@adonisjs/session": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@adonisjs/session/-/session-6.4.0.tgz", - "integrity": "sha512-9yHS60lFpNBUX5/yB+0j+bXQDWqbaYJ1JelLCYtaKRa7B0NewvmPAmsNpHH8SrXE3XGaRyKOxrUGRcmSGg5mRA==", - "dependencies": { - "@poppinss/utils": "^4.0.4", - "fs-extra": "^10.1.0" - }, - "peerDependencies": { - "@adonisjs/core": "^5.8.0" - } - }, - "node_modules/@adonisjs/session/node_modules/@poppinss/utils": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", - "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", - "dependencies": { - "@poppinss/file-generator": "^1.0.2", - "@types/bytes": "^3.1.1", - "@types/he": "^1.1.2", - "bytes": "^3.1.2", - "change-case": "^4.1.2", - "cuid": "^2.1.8", - "flattie": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "he": "^1.2.0", - "kind-of": "^6.0.3", - "lodash": "^4.17.21", - "ms": "^2.1.3", - "pluralize": "^8.0.0", - "require-all": "^3.0.0", - "resolve-from": "^5.0.0", - "slugify": "^1.6.5", - "truncatise": "0.0.8" - } - }, - "node_modules/@adonisjs/shield": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@adonisjs/shield/-/shield-7.1.1.tgz", - "integrity": "sha512-y1YzXwravcS/A1yxcyfSD/UrRi2+H9v0ntX9NgVhLYvBF5eHuPzQKgv9sICVjmj2z7n94HzcTAio0Rc32EX51Q==", - "dependencies": { - "@poppinss/utils": "^4.0.4", - "csrf": "^3.1.0", - "helmet-csp": "^3.4.0" - }, - "peerDependencies": { - "@adonisjs/core": "^5.7.0", - "@adonisjs/session": "^6.2.0", - "@adonisjs/view": "^6.1.0" - }, - "peerDependenciesMeta": { - "@adonisjs/view": { - "optional": true - } - } - }, - "node_modules/@adonisjs/shield/node_modules/@poppinss/utils": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", - "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", - "dependencies": { - "@poppinss/file-generator": "^1.0.2", - "@types/bytes": "^3.1.1", - "@types/he": "^1.1.2", - "bytes": "^3.1.2", - "change-case": "^4.1.2", - "cuid": "^2.1.8", - "flattie": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "he": "^1.2.0", - "kind-of": "^6.0.3", - "lodash": "^4.17.21", - "ms": "^2.1.3", - "pluralize": "^8.0.0", - "require-all": "^3.0.0", - "resolve-from": "^5.0.0", - "slugify": "^1.6.5", - "truncatise": "0.0.8" - } - }, - "node_modules/@adonisjs/sink": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/@adonisjs/sink/-/sink-5.4.3.tgz", - "integrity": "sha512-wmAft/tjHQLtjbDjntaVu3/cmeP+3tXKDaMeWjVf6Dz+tXaM9XNg2EVVSV41F3JDF4W1u9ich9mC+4wvWJDy5g==", - "dev": true, - "dependencies": { - "@poppinss/cliui": "^3.0.5", - "@poppinss/prompts": "^2.0.2", - "@poppinss/utils": "^5.0.0", - "cp-file": "^9.1.0", - "fs-extra": "^10.1.0", - "marked": "^4.2.12", - "marked-terminal": "^5.1.1", - "mrm-core": "7.1.13", - "mustache": "^4.2.0", - "open": "^8.4.2" - }, - "peerDependencies": { - "@adonisjs/application": "^5.0.0" - } - }, - "node_modules/@adonisjs/validator": { - "version": "12.5.0", - "resolved": "https://registry.npmjs.org/@adonisjs/validator/-/validator-12.5.0.tgz", - "integrity": "sha512-88Lu+8OyS92A4mg0hE8AEjr8q9KmgZeR5obPGoAnCxBrptrsHHtKTQq242c+DbzuAWZzw5ZEX2dvv34PW/FmFw==", - "dependencies": { - "@poppinss/utils": "^5.0.0", - "@types/luxon": "^3.3.1", - "@types/validator": "^13.11.1", - "luxon": "^3.4.1", - "normalize-url": "^6.1.0", - "tmp-cache": "^1.1.0", - "validator": "^13.11.0" - }, - "peerDependencies": { - "@adonisjs/application": "^5.0.0", - "@adonisjs/bodyparser": "^8.0.0", - "@adonisjs/http-server": "^5.0.0" - } - }, - "node_modules/@adonisjs/view": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@adonisjs/view/-/view-6.2.0.tgz", - "integrity": "sha512-967f0fQ0QqdHIGh8qVdWoTHbfjB21gCh+SmCbuBWk1etpO0xTGgA2P1iDkBp/9Cd8BUTyhJX2TamKTsUP8FraA==", - "dependencies": { - "edge-error": "^2.0.8", - "edge-supercharged": "^3.1.1", - "edge.js": "^5.5.0" - }, - "peerDependencies": { - "@adonisjs/core": "^5.7.0" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.1.2.tgz", - "integrity": "sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==", - "dev": true, - "dependencies": { - "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.6", - "call-me-maybe": "^1.0.1", - "js-yaml": "^4.1.0" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/@apidevtools/json-schema-ref-parser/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@apidevtools/openapi-schemas": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", - "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@apidevtools/swagger-methods": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", - "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", - "dev": true - }, - "node_modules/@arr/every": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@arr/every/-/every-1.0.1.tgz", - "integrity": "sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz", - "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.0.tgz", - "integrity": "sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.0", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.0", - "@babel/types": "^7.23.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", - "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", - "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.1.tgz", - "integrity": "sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.0", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", - "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", - "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.0.tgz", - "integrity": "sha512-kYsT+f5ARWF6AdFmqoEEp+hpqxEB8vGmRWfw2aj78M2vTwS2uHW91EF58iFm1Z9U8Y/RrLu2XKJn46P9ca1b0w==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/plugin-syntax-decorators": "^7.22.10" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.22.10.tgz", - "integrity": "sha512-z1KTVemBjnz+kSEilAsI4lbkPOl5TvJH7YDSY1CTIzvLWJ+KHXp+mRe8VPmfnyvqOPqar1V2gid2PleKzRUstQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", - "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", - "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", - "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz", - "integrity": "sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", - "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", - "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz", - "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", - "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", - "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", - "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", - "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz", - "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", - "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", - "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", - "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", - "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", - "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", - "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", - "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", - "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", - "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", - "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", - "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz", - "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", - "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz", - "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", - "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", - "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", - "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", - "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", - "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", - "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", - "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz", - "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", - "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", - "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", - "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", - "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", - "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", - "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz", - "integrity": "sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.5", - "babel-plugin-polyfill-corejs3": "^0.8.3", - "babel-plugin-polyfill-regenerator": "^0.5.2", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", - "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", - "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", - "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", - "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", - "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz", - "integrity": "sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", - "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", - "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", - "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", - "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.20.tgz", - "integrity": "sha512-11MY04gGC4kSzlPHRfvVkNAZhUxOvm7DCJ37hPDnUENwe06npjIRAfInEMTGSb4LZK5ZgDFkv5hw0lGebHeTyg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.20", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.15", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.15", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.11", - "@babel/plugin-transform-classes": "^7.22.15", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.15", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.11", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.11", - "@babel/plugin-transform-for-of": "^7.22.15", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.11", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.15", - "@babel/plugin-transform-modules-systemjs": "^7.22.11", - "@babel/plugin-transform-modules-umd": "^7.22.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", - "@babel/plugin-transform-numeric-separator": "^7.22.11", - "@babel/plugin-transform-object-rest-spread": "^7.22.15", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.11", - "@babel/plugin-transform-optional-chaining": "^7.22.15", - "@babel/plugin-transform-parameters": "^7.22.15", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.10", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.10", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/types": "^7.22.19", - "babel-plugin-polyfill-corejs2": "^0.4.5", - "babel-plugin-polyfill-corejs3": "^0.8.3", - "babel-plugin-polyfill-regenerator": "^0.5.2", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.0.tgz", - "integrity": "sha512-6P6VVa/NM/VlAYj5s2Aq/gdVg8FSENCg3wlZ6Qau9AcPaoF5LbN1nyGlR9DTRIw9PpxI94e+ReydsJHcjwAweg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/plugin-transform-typescript": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "node_modules/@babel/runtime": { - "version": "7.23.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.1.tgz", - "integrity": "sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.0.tgz", - "integrity": "sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@css-render/plugin-bem": { - "version": "0.15.12", - "resolved": "https://registry.npmjs.org/@css-render/plugin-bem/-/plugin-bem-0.15.12.tgz", - "integrity": "sha512-Lq2jSOZn+wYQtsyaFj6QRz2EzAnd3iW5fZeHO1WSXQdVYwvwGX0ZiH3X2JQgtgYLT1yeGtrwrqJdNdMEUD2xTw==", - "dev": true, - "peerDependencies": { - "css-render": "~0.15.12" - } - }, - "node_modules/@css-render/vue3-ssr": { - "version": "0.15.12", - "resolved": "https://registry.npmjs.org/@css-render/vue3-ssr/-/vue3-ssr-0.15.12.tgz", - "integrity": "sha512-AQLGhhaE0F+rwybRCkKUdzBdTEM/5PZBYy+fSYe1T9z9+yxMuV/k7ZRqa4M69X+EI1W8pa4kc9Iq2VjQkZx4rg==", - "dev": true, - "peerDependencies": { - "vue": "^3.0.11" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@eidellev/adonis-stardust": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@eidellev/adonis-stardust/-/adonis-stardust-3.0.0.tgz", - "integrity": "sha512-JoVsFFSo8UeYbnkJq40Vu5+QiJdTa04aRWOCyYYXXq1GAvbf0aCmk4bQqlCPSU+qwiZ+co3y8i/49RYCtVJ3xg==", - "dependencies": { - "@poppinss/matchit": "^3.1.2" - }, - "peerDependencies": { - "@adonisjs/core": ">=5" - } - }, - "node_modules/@eidellev/inertia-adonisjs": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@eidellev/inertia-adonisjs/-/inertia-adonisjs-8.1.0.tgz", - "integrity": "sha512-/KF/eH9VRMd7IgdJ0t4OEgUsNHTCs74h2gxzHSP8d/T9HQm2jOh4cTUDinwJoy0+bcp4q4kvdnk/LpXMlRVuvg==", - "dependencies": { - "@types/md5": "^2.3.2", - "html-entities": "^2.3.3", - "md5": "^2.3.0", - "qs": "^6.11.2" - }, - "peerDependencies": { - "@adonisjs/core": ">=5" - } - }, - "node_modules/@emotion/hash": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", - "dev": true - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.2.tgz", - "integrity": "sha512-0MGxAVt1m/ZK+LTJp/j0qF7Hz97D9O/FH9Ms3ltnyIdDD57cbb1ACIQTkbHvNXtWDv5TPq7w5Kq56+cNukbo7g==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.22.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", - "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", - "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@faker-js/faker": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-8.1.0.tgz", - "integrity": "sha512-38DT60rumHfBYynif3lmtxMqMqmsOQIxQgEuPZxCk2yUYN0eqWpTACgxi0VpidvsJB8CRxCpvP7B3anK85FjtQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/fakerjs" - } - ], - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0", - "npm": ">=6.14.13" - } - }, - "node_modules/@fontsource/archivo-black": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@fontsource/archivo-black/-/archivo-black-5.0.12.tgz", - "integrity": "sha512-zHsdUkz1ax+OEGAJadV5Jglzd7qhCZevOGjWPeuYo8Oh1JhHwKPocPXYU32rVBRWu1rRuvHNYg82+1tYJYZXbA==" - }, - "node_modules/@fontsource/inter": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-5.0.8.tgz", - "integrity": "sha512-28knWH1BfOiRalfLs90U4sge5mpQ8ZH6FS0PTT+IZMKrZ7wNHDHRuKa1kQJg+uHcc6axBppnxll+HXM4c7zo/Q==" - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@inertiajs/core": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@inertiajs/core/-/core-1.0.11.tgz", - "integrity": "sha512-EFUvVsq8TvvIaUDrfbL/pvEBvu67gdBvV/cyepDZqCdAolld0N3AO+TZ7i7UtwKwLKw8eAFbixgbkicugojhGA==", - "dependencies": { - "axios": "^1.2.0", - "deepmerge": "^4.0.0", - "nprogress": "^0.2.0", - "qs": "^6.9.0" - } - }, - "node_modules/@inertiajs/core/node_modules/axios": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.0.tgz", - "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/@inertiajs/inertia": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/@inertiajs/inertia/-/inertia-0.11.1.tgz", - "integrity": "sha512-btmV53c54oW4Z9XF0YyTdIUnM7ue0ONy3/KJOz6J1C5CYIwimiKfDMpz8ZbGJuxS+SPdOlNsqj2ZhlHslpJRZg==", - "dependencies": { - "axios": "^0.21.1", - "deepmerge": "^4.0.0", - "qs": "^6.9.0" - } - }, - "node_modules/@inertiajs/vue3": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@inertiajs/vue3/-/vue3-1.0.11.tgz", - "integrity": "sha512-4lqOsXWXxbeqq5dXZhpNSFabNfxHItHjc005+dqd+cKbhZ5n+dr8n2IGSDBfMNcT7bJfDUyUS2XKdY5y1EnAuw==", - "dependencies": { - "@inertiajs/core": "1.0.11", - "lodash.clonedeep": "^4.5.0", - "lodash.isequal": "^4.5.0" - }, - "peerDependencies": { - "vue": "^3.0.0" - } - }, - "node_modules/@japa/api-client": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/@japa/api-client/-/api-client-1.4.4.tgz", - "integrity": "sha512-7YVDWMWDvUGRlAxOS2QmYTyfxsY+EC0fiVz/w7J4qIT2oYhl1TVfJ/R1WWRoLe/KuZr2yIUNlp7OdStVjESB5A==", - "dev": true, - "dependencies": { - "@poppinss/hooks": "^6.0.2-0", - "@types/superagent": "^4.1.16", - "cookie": "^0.5.0", - "macroable": "^7.0.2", - "set-cookie-parser": "^2.5.1", - "superagent": "^8.0.9" - }, - "peerDependencies": { - "@japa/runner": "^2.2.3" - } - }, - "node_modules/@japa/api-client/node_modules/@poppinss/hooks": { - "version": "6.0.2-0", - "resolved": "https://registry.npmjs.org/@poppinss/hooks/-/hooks-6.0.2-0.tgz", - "integrity": "sha512-mG0hnQlxgflvxyM6t/XO8z/FwotsYRXPhtLZ3cz3iyk4t8xaNtOihSANBcvqdkxZCtGBvotNIf/GnES9hvlfSQ==", - "dev": true - }, - "node_modules/@japa/assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@japa/assert/-/assert-1.4.1.tgz", - "integrity": "sha512-IyacnyaGzHqKTUbnOproPluHGWybt0ix0UsISAnjK62aTlDS4pOYPXkCDexk21/iReXNLtFgKM/RrDPDAUfrqA==", - "dev": true, - "dependencies": { - "@types/chai": "^4.3.4", - "api-contract-validator": "^2.2.8", - "chai": "^4.3.7", - "macroable": "^7.0.2" - }, - "peerDependencies": { - "@japa/runner": "^2.1.1" - } - }, - "node_modules/@japa/base-reporter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@japa/base-reporter/-/base-reporter-1.1.2.tgz", - "integrity": "sha512-6MYs/EsXjouFPNUQL3VGllryZ5enI5rqhvQbY2Dzh3Zmhu22DWw6v9d2pxucrFptDTtQ38MBPVL/BIeZAafmOw==", - "dev": true, - "dependencies": { - "@japa/errors-printer": "^2.1.0", - "@poppinss/cliui": "^3.0.5", - "ms": "^2.1.3" - } - }, - "node_modules/@japa/core": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@japa/core/-/core-7.3.3.tgz", - "integrity": "sha512-3mkWlzWVALZANFfMK6Q6xtYGM3mpzZeeGGUVQGDt2OOxvL8FDADVxHrRn9BFc1V4fVJO4jR/QH5utrb+RfCF5g==", - "dev": true, - "dependencies": { - "@poppinss/hooks": "^6.0.2-0", - "async-retry": "^1.3.3", - "emittery": "^0.13.1", - "macroable": "^7.0.2", - "time-span": "^4.0.0" - } - }, - "node_modules/@japa/core/node_modules/@poppinss/hooks": { - "version": "6.0.2-0", - "resolved": "https://registry.npmjs.org/@poppinss/hooks/-/hooks-6.0.2-0.tgz", - "integrity": "sha512-mG0hnQlxgflvxyM6t/XO8z/FwotsYRXPhtLZ3cz3iyk4t8xaNtOihSANBcvqdkxZCtGBvotNIf/GnES9hvlfSQ==", - "dev": true - }, - "node_modules/@japa/errors-printer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@japa/errors-printer/-/errors-printer-2.1.0.tgz", - "integrity": "sha512-iZUrB58e29jbRxb7lxocz5uHt9mQ1q7iojs8Gh1kIKmvaPx0KMqce77JDtqYzu2+95WjmppAvM6au1l1WYJmpw==", - "dev": true, - "dependencies": { - "@poppinss/cliui": "^3.0.5", - "jest-diff": "^29.4.1", - "youch": "^3.2.3", - "youch-terminal": "^2.2.0" - } - }, - "node_modules/@japa/preset-adonis": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@japa/preset-adonis/-/preset-adonis-1.2.0.tgz", - "integrity": "sha512-jcvQCN9U5WA4kdKDtYuV6DZMzrZomxho3MASS6yhnJsSqSW6jgFDNwhOgSzY7AyPgxmVAf3jZ6JKd7r2USctlA==", - "dev": true, - "dependencies": { - "@japa/api-client": "^1.4.2", - "@japa/assert": "^1.3.6", - "@japa/run-failed-tests": "^1.1.0", - "@japa/spec-reporter": "^1.3.0" - }, - "peerDependencies": { - "@adonisjs/core": "^5.0.0", - "@japa/runner": "^2.0.0" - } - }, - "node_modules/@japa/run-failed-tests": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@japa/run-failed-tests/-/run-failed-tests-1.1.1.tgz", - "integrity": "sha512-lMv1nAtKBpX7CH8K+HHRr2aaCTAJ9Q3i7DG12MmU2A/EDJFuP7e9ZASE8O0UTlk5Goc+DR6mzuFXG3R351J89w==", - "dev": true, - "dependencies": { - "@poppinss/cliui": "^3.0.5", - "find-cache-dir": "^3.3.2", - "fs-extra": "^11.1.0" - }, - "peerDependencies": { - "@japa/runner": "^2.2.3" - } - }, - "node_modules/@japa/run-failed-tests/node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@japa/runner": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@japa/runner/-/runner-2.5.1.tgz", - "integrity": "sha512-p1zjniMCiGxRnZkUs5WtZjTQhbXcnK0aM2Wu4Qc+w+MBpmOrw5J2zJuge0FweepTUR9CT3r2x65uw4qIshy8XQ==", - "dev": true, - "dependencies": { - "@japa/core": "^7.3.2", - "@japa/errors-printer": "^2.1.0", - "@poppinss/cliui": "^3.0.5", - "@poppinss/hooks": "^6.0.2-0", - "fast-glob": "^3.2.12", - "getopts": "^2.3.0", - "inclusion": "^1.0.1" - } - }, - "node_modules/@japa/runner/node_modules/@poppinss/hooks": { - "version": "6.0.2-0", - "resolved": "https://registry.npmjs.org/@poppinss/hooks/-/hooks-6.0.2-0.tgz", - "integrity": "sha512-mG0hnQlxgflvxyM6t/XO8z/FwotsYRXPhtLZ3cz3iyk4t8xaNtOihSANBcvqdkxZCtGBvotNIf/GnES9hvlfSQ==", - "dev": true - }, - "node_modules/@japa/spec-reporter": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@japa/spec-reporter/-/spec-reporter-1.3.3.tgz", - "integrity": "sha512-EOOjvQVmmWZDKxmO+f0v/BSNeKzKkeJSrNwEldkF40zZWdHX2J3Jb2MJowE5DgSOQCiG/OG2UFen0I+XLnPoxQ==", - "dev": true, - "dependencies": { - "@japa/base-reporter": "^1.1.1", - "@japa/errors-printer": "^2.1.0", - "@poppinss/cliui": "^3.0.5", - "ms": "^2.1.3" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "dev": true - }, - "node_modules/@juggle/resize-observer": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", - "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==", - "dev": true - }, - "node_modules/@kurkle/color": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", - "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==", - "dev": true - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", - "dev": true - }, - "node_modules/@mdi/js": { - "version": "7.2.96", - "resolved": "https://registry.npmjs.org/@mdi/js/-/js-7.2.96.tgz", - "integrity": "sha512-paR9M9ZT7rKbh2boksNUynuSZMHhqRYnEZOm/KrZTjQ4/FzyhjLHuvw/8XYzP+E7fS4+/Ms/82EN1pl/OFsiIA==", - "dev": true - }, - "node_modules/@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "dev": true, - "dependencies": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@mrmlnc/readdir-enhanced/node_modules/glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==", - "dev": true - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nuxt/friendly-errors-webpack-plugin": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@nuxt/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-2.5.2.tgz", - "integrity": "sha512-LLc+90lnxVbpKkMqk5z1EWpXoODhc6gRkqqXJCInJwF5xabHAE7biFvbULfvTRmtaTzAaP8IV4HQDLUgeAUTTw==", - "dev": true, - "dependencies": { - "chalk": "^2.3.2", - "consola": "^2.6.0", - "error-stack-parser": "^2.0.0", - "string-width": "^4.2.3" - }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" - }, - "peerDependencies": { - "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" - } - }, - "node_modules/@oozcitak/dom": { - "version": "1.15.10", - "resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-1.15.10.tgz", - "integrity": "sha512-0JT29/LaxVgRcGKvHmSrUTEvZ8BXvZhGl2LASRUgHqDTC1M5g1pLmVv56IYNyt3bG2CUjDkc67wnyZC14pbQrQ==", - "dependencies": { - "@oozcitak/infra": "1.0.8", - "@oozcitak/url": "1.0.4", - "@oozcitak/util": "8.3.8" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/@oozcitak/infra": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@oozcitak/infra/-/infra-1.0.8.tgz", - "integrity": "sha512-JRAUc9VR6IGHOL7OGF+yrvs0LO8SlqGnPAMqyzOuFZPSZSXI7Xf2O9+awQPSMXgIWGtgUf/dA6Hs6X6ySEaWTg==", - "dependencies": { - "@oozcitak/util": "8.3.8" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@oozcitak/url": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@oozcitak/url/-/url-1.0.4.tgz", - "integrity": "sha512-kDcD8y+y3FCSOvnBI6HJgl00viO/nGbQoCINmQ0h98OhnGITrWR3bOGfwYCthgcrV8AnTJz8MzslTQbC3SOAmw==", - "dependencies": { - "@oozcitak/infra": "1.0.8", - "@oozcitak/util": "8.3.8" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/@oozcitak/util": { - "version": "8.3.8", - "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-8.3.8.tgz", - "integrity": "sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ==", - "engines": { - "node": ">=8.0" - } - }, - "node_modules/@phc/format": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@phc/format/-/format-1.0.0.tgz", - "integrity": "sha512-m7X9U6BG2+J+R1lSOdCiITLLrxm+cWlNI3HUFA92oLO77ObGNzaKdh8pMLqdZcshtkKuV84olNNXDfMc4FezBQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/@pkgr/utils": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", - "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "fast-glob": "^3.3.0", - "is-glob": "^4.0.3", - "open": "^9.1.0", - "picocolors": "^1.0.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, - "node_modules/@pkgr/utils/node_modules/define-lazy-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@pkgr/utils/node_modules/open": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", - "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", - "dev": true, - "dependencies": { - "default-browser": "^4.0.0", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@poppinss/chokidar-ts": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@poppinss/chokidar-ts/-/chokidar-ts-3.3.5.tgz", - "integrity": "sha512-Ht//xB2ZPa16EDH/bmaWEBWunsBTnBYdnv3nKwXHrqNHDfcYX1DHcJmcNORRH9YLOOuVsTmqDcpiAdTn06LaHQ==", - "dev": true, - "dependencies": { - "builtin-modules": "^3.2.0", - "chokidar": "^3.5.3", - "debug": "^4.3.4", - "emittery": "^0.10.2", - "fs-extra": "^10.0.1", - "mem": "^8.1.1", - "picomatch": "^2.3.1" - } - }, - "node_modules/@poppinss/chokidar-ts/node_modules/emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/@poppinss/cliui": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@poppinss/cliui/-/cliui-3.0.5.tgz", - "integrity": "sha512-9TCwhJ6hQDAv7LWredEQL7eSA97kQ/i5Td80T7InV9z9rOXT8keywAM0pSvTUS01bwCeiZQVoT4r/G67DRiPJA==", - "dependencies": { - "@poppinss/colors": "^3.0.3", - "cli-boxes": "^3.0.0", - "cli-table3": "^0.6.3", - "color-support": "^1.1.3", - "log-update": "^4.0.0", - "pretty-hrtime": "^1.0.3", - "string-width": "^4.2.2" - } - }, - "node_modules/@poppinss/co-body": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@poppinss/co-body/-/co-body-1.2.0.tgz", - "integrity": "sha512-1aJ06XrtQ8gueo91+Vc7TTSeXECsW1pWDCKumtuGL+9xsjJvP6n567YuimwHuH99wFMIhyNW5U1g2C/4wjvXCQ==", - "dependencies": { - "@poppinss/utils": "^5.0.0", - "inflation": "^2.0.0", - "qs": "^6.11.0", - "raw-body": "^2.5.1", - "type-is": "^1.6.18" - } - }, - "node_modules/@poppinss/colors": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-3.0.3.tgz", - "integrity": "sha512-jiZcp91PvIs5s4Wz4gEVY9J2tqH6H1++mZmsrC3TmFam9gbVPUJPEubPM5j4BQYJre7bjs9nkIbYFcWMOFHIVQ==", - "dependencies": { - "color-support": "^1.1.3", - "kleur": "^4.1.5" - } - }, - "node_modules/@poppinss/file-generator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@poppinss/file-generator/-/file-generator-1.0.2.tgz", - "integrity": "sha512-rRob//4jLbUVbDSsNRihloKGgpyVsWdFQWUmONxX/gyv4koT1OlVoc3ccWgk7Y/sEa2cFxj3zrFs+wdT09iXWw==", - "dependencies": { - "bytes": "^3.1.2" - } - }, - "node_modules/@poppinss/hooks": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@poppinss/hooks/-/hooks-5.0.3.tgz", - "integrity": "sha512-M5a151VUl+RslVP5qwDW+u+0VmzKt5Nfplzdx2nrtXol3yVlLN3u2Jp6UADESid3DDI7IRHmFrA3sQusey3eUA==", - "peerDependencies": { - "@adonisjs/application": ">=4.0.0" - }, - "peerDependenciesMeta": { - "@adonisjs/application": { - "optional": true - } - } - }, - "node_modules/@poppinss/inspect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@poppinss/inspect/-/inspect-1.0.1.tgz", - "integrity": "sha512-kLeEaBSGhlleyYvKc7c9s3uE6xv7cwyulE0EgHf4jU/CL96h0yC4mkdw1wvC1l1PYYQozCGy46FwMBAAMOobCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/@poppinss/manager": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@poppinss/manager/-/manager-5.0.2.tgz", - "integrity": "sha512-c5F3EKztq/iw0J+BfNu5rSI5/ji+kjts4rJaC/VvIzpTWzbRorb7UR9J32T8cLtTwjNHbmxk3BAU402lvL2JFA==" - }, - "node_modules/@poppinss/matchit": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@poppinss/matchit/-/matchit-3.1.2.tgz", - "integrity": "sha512-Bx+jY+vmdQFmwYiHliiPjr+oVBaGnh79B1h1FSAm3jME1QylLFt8PPYC0ymO8Q5PzJj/KuE3jeTnZhRHOWqq8g==", - "dependencies": { - "@arr/every": "^1.0.0" - } - }, - "node_modules/@poppinss/multiparty": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@poppinss/multiparty/-/multiparty-2.0.1.tgz", - "integrity": "sha512-Pf3V9PFyZDIkDBBiAOT2hdmA+1l/+hverHbUnMzNzwtwgO50s2ZPt5KxUydVA0hceg9gryo5unQ0WUF1SO9tkQ==", - "dependencies": { - "http-errors": "^2.0.0", - "safe-buffer": "5.2.1", - "uid-safe": "2.1.5" - } - }, - "node_modules/@poppinss/prompts": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@poppinss/prompts/-/prompts-2.0.2.tgz", - "integrity": "sha512-jTrE8U5rnHTZNpBvPauFVDMQZZuEnfABbJUEXfq0uu8oGJnPaaA+y0bQbyqVf4yWqgRGldgrzAwNz739hIEnPQ==", - "dependencies": { - "@poppinss/colors": "^3.0.2", - "enquirer": "^2.3.6" - } - }, - "node_modules/@poppinss/utils": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-5.0.0.tgz", - "integrity": "sha512-SpJL5p4Nx3bRCpCf62KagZLUHLvJD+VDylGpXAeP2G5qb3s6SSOBlpaFmer4GxdyTqLIUt0PRCzF1TbpNU+qZw==", - "dependencies": { - "@poppinss/file-generator": "^1.0.2", - "@types/bytes": "^3.1.1", - "@types/he": "^1.1.2", - "bytes": "^3.1.2", - "change-case": "^4.1.2", - "cuid": "^2.1.8", - "flattie": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "he": "^1.2.0", - "kind-of": "^6.0.3", - "lodash": "^4.17.21", - "ms": "^2.1.3", - "pluralize": "^8.0.0", - "require-all": "^3.0.0", - "resolve-from": "^5.0.0", - "slugify": "^1.6.5", - "truncatise": "0.0.8" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "node_modules/@symfony/webpack-encore": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@symfony/webpack-encore/-/webpack-encore-4.4.0.tgz", - "integrity": "sha512-p3n2Z16sGV6odZ3ihIU+gupYc55KfrfCt62+Gppe8MUo6QuT5Bk2cXXjR4Hb89KvCRDHnjYEWVfnewRsfE8TRQ==", - "dev": true, - "dependencies": { - "@nuxt/friendly-errors-webpack-plugin": "^2.5.1", - "assets-webpack-plugin": "7.0.*", - "babel-loader": "^8.2.5", - "chalk": "^4.0.0", - "clean-webpack-plugin": "^4.0.0", - "css-loader": "^6.7.0", - "css-minimizer-webpack-plugin": "^5.0.0", - "fast-levenshtein": "^3.0.0", - "mini-css-extract-plugin": "^2.6.0", - "pkg-up": "^3.1.0", - "pretty-error": "^4.0.0", - "resolve-url-loader": "^5.0.0", - "semver": "^7.3.2", - "style-loader": "^3.3.0", - "sync-rpc": "^1.3.6", - "tapable": "^2.2.1", - "terser-webpack-plugin": "^5.3.0", - "tmp": "^0.2.1", - "webpack-dev-server": "^4.8.0", - "yargs-parser": "^21.0.0" - }, - "bin": { - "encore": "bin/encore.js" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.17.0", - "@babel/plugin-transform-react-jsx": "^7.12.11", - "@babel/preset-env": "^7.16.0", - "@babel/preset-react": "^7.0.0", - "@babel/preset-typescript": "^7.0.0", - "@symfony/stimulus-bridge": "^3.0.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", - "@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 || ^4.0.0", - "file-loader": "^6.0.0", - "fork-ts-checker-webpack-plugin": "^7.0.0", - "handlebars": "^4.7.7", - "handlebars-loader": "^1.7.0", - "less": "^4.0.0", - "less-loader": "^11.0.0", - "postcss": "^8.3.0", - "postcss-loader": "^7.0.0", - "sass": "^1.17.0", - "sass-loader": "^13.0.0", - "stylus": "^0.58.1", - "stylus-loader": "^7.0.0", - "ts-loader": "^9.0.0", - "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", - "webpack": "^5.72", - "webpack-cli": "^4.9.1 || ^5.0.1", - "webpack-notifier": "^1.15.0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": false - }, - "@babel/plugin-transform-react-jsx": { - "optional": true - }, - "@babel/preset-env": { - "optional": false - }, - "@babel/preset-react": { - "optional": true - }, - "@babel/preset-typescript": { - "optional": true - }, - "@symfony/stimulus-bridge": { - "optional": true - }, - "@vue/babel-helper-vue-jsx-merge-props": { - "optional": true - }, - "@vue/babel-preset-jsx": { - "optional": true - }, - "@vue/compiler-sfc": { - "optional": true - }, - "eslint": { - "optional": true - }, - "eslint-webpack-plugin": { - "optional": true - }, - "file-loader": { - "optional": true - }, - "fork-ts-checker-webpack-plugin": { - "optional": true - }, - "handlebars": { - "optional": true - }, - "handlebars-loader": { - "optional": true - }, - "less": { - "optional": true - }, - "less-loader": { - "optional": true - }, - "postcss": { - "optional": true - }, - "postcss-loader": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-loader": { - "optional": true - }, - "stylus": { - "optional": true - }, - "stylus-loader": { - "optional": true - }, - "ts-loader": { - "optional": true - }, - "typescript": { - "optional": true - }, - "vue": { - "optional": true - }, - "vue-loader": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - }, - "webpack": { - "optional": false - }, - "webpack-cli": { - "optional": false - }, - "webpack-notifier": { - "optional": true - } - } - }, - "node_modules/@symfony/webpack-encore/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@symfony/webpack-encore/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@symfony/webpack-encore/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@symfony/webpack-encore/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@symfony/webpack-encore/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@symfony/webpack-encore/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@tailwindcss/forms": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.6.tgz", - "integrity": "sha512-Fw+2BJ0tmAwK/w01tEFL5TiaJBX1NLT1/YbWgvm7ws3Qcn11kiXxzNTEQDMs5V3mQemhB56l3u0i9dwdzSQldA==", - "dev": true, - "dependencies": { - "mini-svg-data-uri": "^1.2.3" - }, - "peerDependencies": { - "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" - } - }, - "node_modules/@tokenizer/token": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.3", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.3.tgz", - "integrity": "sha512-oyl4jvAfTGX9Bt6Or4H9ni1Z447/tQuxnZsytsCaExKlmJiU8sFgnIBRzJUpKwB5eWn9HuBYlUlVA74q/yN0eQ==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.11.tgz", - "integrity": "sha512-isGhjmBtLIxdHBDl2xGwUzEM8AOyOvWsADWq7rqirdi/ZQoHnLWErHvsThcEzTX8juDRiZtzp2Qkv5bgNh6mAg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@types/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-92b6q7CSYBMVZDtMZh5PuKm3LjZwcU7s6H8e9sU20Z1tOrTuXN+Hz3VuP9E8axiQRaCoiEOMN1duqPCEIhamrQ==" - }, - "node_modules/@types/chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==", - "dev": true - }, - "node_modules/@types/clamscan": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/clamscan/-/clamscan-2.0.5.tgz", - "integrity": "sha512-bFqdscswqBia3yKEJZVVWELOVvWKHUR1dCmH4xshYwu0T9YSfZd35Q8Z9jYW0ygxqGlHjLXMb2/7C6CJITbDgg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "axios": "^0.24.0" - } - }, - "node_modules/@types/clamscan/node_modules/axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.14.4" - } - }, - "node_modules/@types/connect": { - "version": "3.4.36", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz", - "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.1.tgz", - "integrity": "sha512-iaQslNbARe8fctL5Lk+DsmgWOM83lM+7FzP0eQUJs1jd3kBE8NWqBTIT2S8SqQOJjxvt2eyIjpOuYeRXq2AdMw==", - "dev": true, - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/cookiejar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==", - "dev": true - }, - "node_modules/@types/eslint": { - "version": "8.44.3", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.3.tgz", - "integrity": "sha512-iM/WfkwAhwmPff3wZuPLYiHX18HI24jU8k1ZSH7P8FHwxTjZ2P6CoX2wnF43oprR+YXJM6UUxATkNvyv/JHd+g==", - "dev": true, - "peer": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.5.tgz", - "integrity": "sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA==", - "dev": true, - "peer": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.2.tgz", - "integrity": "sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==", - "dev": true, - "peer": true - }, - "node_modules/@types/express": { - "version": "4.17.18", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.18.tgz", - "integrity": "sha512-Sxv8BSLLgsBYmcnGdGjjEjqET2U+AKAdCRODmMiq02FgjwuV75Ut85DRpvFjyw/Mk0vgUOliGRU0UUmuuZHByQ==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.37", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.37.tgz", - "integrity": "sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/fs-extra": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/geojson": { - "version": "7946.0.11", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.11.tgz", - "integrity": "sha512-L7A0AINMXQpVwxHJ4jxD6/XjZ4NDufaRlUJHjNIFKYUFBH1SvOW+neaqb0VTRSLW5suSrSu19ObFEFnfNcr+qg==", - "dev": true - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/he": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/he/-/he-1.2.1.tgz", - "integrity": "sha512-CdNmJMcSqX1BiP3iSsWt+VgixndRIDGzWyaGpBnW3i5heATSk5bJu2j3buutsoBQNjyryqxaNpr8M7fRsGL15w==" - }, - "node_modules/@types/http-errors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.2.tgz", - "integrity": "sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg==", - "dev": true - }, - "node_modules/@types/http-proxy": { - "version": "1.17.12", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.12.tgz", - "integrity": "sha512-kQtujO08dVtQ2wXAuSFfk9ASy3sug4+ogFR8Kd8UgP8PEuc1/G/8yjYRmp//PcDNJEUKOza/MrQu15bouEUCiw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.13", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", - "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==", - "dev": true - }, - "node_modules/@types/katex": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.14.0.tgz", - "integrity": "sha512-+2FW2CcT0K3P+JMR8YG846bmDwplKUTsWgT2ENwdQ1UdVfRk3GQrh6Mi4sTopy30gI8Uau5CEqHTDZ6YvWIUPA==", - "dev": true - }, - "node_modules/@types/leaflet": { - "version": "1.9.6", - "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.6.tgz", - "integrity": "sha512-HakGTK5LBBWegNWsAmTlG55zN1zszYec7aG47/z6SzT90bW2vqjmbqk3YKAbrtveO+G7fSTKTYqVbIwAFnTrbg==", - "dev": true, - "dependencies": { - "@types/geojson": "*" - } - }, - "node_modules/@types/lodash": { - "version": "4.14.199", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz", - "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==", - "dev": true - }, - "node_modules/@types/lodash-es": { - "version": "4.17.9", - "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.9.tgz", - "integrity": "sha512-ZTcmhiI3NNU7dEvWLZJkzG6ao49zOIjEgIE0RgV7wbPxU0f2xT3VSAHw2gmst8swH6V0YkLRGp4qPlX/6I90MQ==", - "dev": true, - "dependencies": { - "@types/lodash": "*" - } - }, - "node_modules/@types/luxon": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.2.tgz", - "integrity": "sha512-l5cpE57br4BIjK+9BSkFBOsWtwv6J9bJpC7gdXIzZyI0vuKvNTk0wZZrkQxMGsUAuGW9+WMNWF2IJMD7br2yeQ==" - }, - "node_modules/@types/md5": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@types/md5/-/md5-2.3.2.tgz", - "integrity": "sha512-v+JFDu96+UYJ3/UWzB0mEglIS//MZXgRaJ4ubUPwOM0gvLc/kcQ3TWNYwENEK7/EcXGQVrW8h/XqednSjBd/Og==" - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.7.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.7.0.tgz", - "integrity": "sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg==" - }, - "node_modules/@types/pino": { - "version": "6.3.12", - "resolved": "https://registry.npmjs.org/@types/pino/-/pino-6.3.12.tgz", - "integrity": "sha512-dsLRTq8/4UtVSpJgl9aeqHvbh6pzdmjYD3C092SYgLD2TyoCqHpTJk6vp8DvCTGGc7iowZ2MoiYiVUUCcu7muw==", - "dependencies": { - "@types/node": "*", - "@types/pino-pretty": "*", - "@types/pino-std-serializers": "*", - "sonic-boom": "^2.1.0" - } - }, - "node_modules/@types/pino-pretty": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/pino-pretty/-/pino-pretty-5.0.0.tgz", - "integrity": "sha512-N1uzqSzioqz8R3AkDbSJwcfDWeI3YMPNapSQQhnB2ISU4NYgUIcAh+hYT5ygqBM+klX4htpEhXMmoJv3J7GrdA==", - "deprecated": "This is a stub types definition. pino-pretty provides its own type definitions, so you do not need this installed.", - "dependencies": { - "pino-pretty": "*" - } - }, - "node_modules/@types/pino-std-serializers": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", - "integrity": "sha512-gXfUZx2xIBbFYozGms53fT0nvkacx/+62c8iTxrEqH5PkIGAQvDbXg2774VWOycMPbqn5YJBQ3BMsg4Li3dWbg==", - "deprecated": "This is a stub types definition. pino-std-serializers provides its own type definitions, so you do not need this installed.", - "dependencies": { - "pino-std-serializers": "*" - } - }, - "node_modules/@types/proxy-addr": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/proxy-addr/-/proxy-addr-2.0.1.tgz", - "integrity": "sha512-fLqXRu+ihH+/V7AB12siUu84uloauJ7SdBMrHARcHQN/yYIa0d9uQSYxSWnMRF0892N2/CJzPVYP3ltgtkkgsQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/qs": { - "version": "6.9.8", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", - "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==", - "dev": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "dev": true - }, - "node_modules/@types/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==", - "dev": true - }, - "node_modules/@types/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.2.tgz", - "integrity": "sha512-aAG6yRf6r0wQ29bkS+x97BIs64ZLxeE/ARwyS6wrldMm3C1MdKwCcnnEwMC1slI8wuxJOpiUH9MioC0A0i+GJw==", - "dev": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-index": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.2.tgz", - "integrity": "sha512-asaEIoc6J+DbBKXtO7p2shWUpKacZOoMBEGBgPG91P8xhO53ohzHWGCs4ScZo5pQMf5ukQzVT9fhX1WzpHihig==", - "dev": true, - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.3.tgz", - "integrity": "sha512-yVRvFsEMrv7s0lGhzrggJjNOSmZCdgCjw9xWrPr/kNNLp6FaDfMC1KaYl3TSJ0c58bECwNBMoQrZJ8hA8E1eFg==", - "dev": true, - "dependencies": { - "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.34", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.34.tgz", - "integrity": "sha512-R+n7qBFnm/6jinlteC9DBL5dGiDGjWAvjo4viUanpnc/dG1y7uDoacXPIQ/PQEg1fI912SMHIa014ZjRpvDw4g==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/source-map-support": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/@types/source-map-support/-/source-map-support-0.5.8.tgz", - "integrity": "sha512-u5nwLcaENciDwebPwwZb2AM1LvdlgFQfqCKxWQxcgNsQhUQciGuUnJ2LjGFAkInY2APXQzIypiUSa9zB6Epddg==", - "dev": true, - "dependencies": { - "source-map": "^0.6.0" - } - }, - "node_modules/@types/superagent": { - "version": "4.1.19", - "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.19.tgz", - "integrity": "sha512-McM1mlc7PBZpCaw0fw/36uFqo0YeA6m8JqoyE4OfqXsZCIg0hPP2xdE6FM7r6fdprDZHlJwDpydUj1R++93hCA==", - "dev": true, - "dependencies": { - "@types/cookiejar": "*", - "@types/node": "*" - } - }, - "node_modules/@types/validator": { - "version": "13.11.1", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.1.tgz", - "integrity": "sha512-d/MUkJYdOeKycmm75Arql4M5+UuXmf4cHdHKsyw1GcvnNgL6s77UkgSgJ8TE/rI5PYsnwYq5jkcWBLuN/MpQ1A==" - }, - "node_modules/@types/ws": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.6.tgz", - "integrity": "sha512-8B5EO9jLVCy+B58PLHvLDuOD8DRVMgQzq8d55SjLCOn9kqGyqOvy27exVaTio1q1nX5zLu8/6N0n2ThSxOM6tg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "15.0.16", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.16.tgz", - "integrity": "sha512-2FeD5qezW3FvLpZ0JpfuaEWepgNLl9b2gQYiz/ce0NhoB1W/D+VZu98phITXkADYerfr/jb7JcDcVhITsc9bwg==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "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.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@vue/compiler-core": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", - "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", - "dependencies": { - "@babel/parser": "^7.21.3", - "@vue/shared": "3.3.4", - "estree-walker": "^2.0.2", - "source-map-js": "^1.0.2" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", - "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", - "dependencies": { - "@vue/compiler-core": "3.3.4", - "@vue/shared": "3.3.4" - } - }, - "node_modules/@vue/compiler-sfc": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", - "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", - "dependencies": { - "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.4", - "@vue/compiler-dom": "3.3.4", - "@vue/compiler-ssr": "3.3.4", - "@vue/reactivity-transform": "3.3.4", - "@vue/shared": "3.3.4", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.0", - "postcss": "^8.1.10", - "source-map-js": "^1.0.2" - } - }, - "node_modules/@vue/compiler-ssr": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", - "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", - "dependencies": { - "@vue/compiler-dom": "3.3.4", - "@vue/shared": "3.3.4" - } - }, - "node_modules/@vue/devtools-api": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", - "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==", - "dev": true - }, - "node_modules/@vue/reactivity": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", - "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", - "dependencies": { - "@vue/shared": "3.3.4" - } - }, - "node_modules/@vue/reactivity-transform": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", - "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", - "dependencies": { - "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.4", - "@vue/shared": "3.3.4", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.0" - } - }, - "node_modules/@vue/runtime-core": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", - "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", - "dependencies": { - "@vue/reactivity": "3.3.4", - "@vue/shared": "3.3.4" - } - }, - "node_modules/@vue/runtime-dom": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", - "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", - "dependencies": { - "@vue/runtime-core": "3.3.4", - "@vue/shared": "3.3.4", - "csstype": "^3.1.1" - } - }, - "node_modules/@vue/runtime-dom/node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" - }, - "node_modules/@vue/server-renderer": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", - "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", - "dependencies": { - "@vue/compiler-ssr": "3.3.4", - "@vue/shared": "3.3.4" - }, - "peerDependencies": { - "vue": "3.3.4" - } - }, - "node_modules/@vue/shared": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", - "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" - }, - "node_modules/@vue/tsconfig": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.4.0.tgz", - "integrity": "sha512-CPuIReonid9+zOG/CGTT05FXrPYATEqoDGNrEaqS4hwcw5BUNM2FguC0mOwJD4Jr16UpRVl9N0pY3P+srIbqmg==", - "dev": true - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true, - "peer": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true, - "peer": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "dev": true, - "peer": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true, - "peer": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dev": true, - "peer": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dev": true, - "peer": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true, - "peer": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webpack-cli/configtest": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", - "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - } - }, - "node_modules/@webpack-cli/info": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", - "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", - "dev": true, - "peer": true, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", - "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - }, - "peerDependenciesMeta": { - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true, - "peer": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true, - "peer": true - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/abstract-logging": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", - "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-class-fields": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/acorn-class-fields/-/acorn-class-fields-1.0.0.tgz", - "integrity": "sha512-l+1FokF34AeCXGBHkrXFmml9nOIRI+2yBnBpO5MaVAaTIJ96irWLtcCxX+7hAp6USHFCe+iyyBB4ZhxV807wmA==", - "dependencies": { - "acorn-private-class-elements": "^1.0.0" - }, - "engines": { - "node": ">=4.8.2" - }, - "peerDependencies": { - "acorn": "^6 || ^7 || ^8" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true, - "peer": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-private-class-elements": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/acorn-private-class-elements/-/acorn-private-class-elements-1.0.0.tgz", - "integrity": "sha512-zYNcZtxKgVCg1brS39BEou86mIao1EV7eeREG+6WMwKbuYTeivRRs6S2XdWnboRde6G9wKh2w+WBydEyJsJ6mg==", - "engines": { - "node": ">=4.8.2" - }, - "peerDependencies": { - "acorn": "^6.1.0 || ^7 || ^8" - } - }, - "node_modules/acorn-private-methods": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/acorn-private-methods/-/acorn-private-methods-1.0.0.tgz", - "integrity": "sha512-Jou2L3nfwfPpFdmmHObI3yUpVPM1bPohTUAZCyVDw5Efyn9LSS6E36neRLCRfIr8QjskAfdxRdABOrvP4c/gwQ==", - "dependencies": { - "acorn-private-class-elements": "^1.0.0" - }, - "engines": { - "node": ">=4.8.2" - }, - "peerDependencies": { - "acorn": "^6 || ^7 || ^8" - } - }, - "node_modules/acorn-static-class-features": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/acorn-static-class-features/-/acorn-static-class-features-1.0.0.tgz", - "integrity": "sha512-XZJECjbmMOKvMHiNzbiPXuXpLAJfN3dAKtfIYbk1eHiWdsutlek+gS7ND4B8yJ3oqvHo1NxfafnezVmq7NXK0A==", - "dependencies": { - "acorn-private-class-elements": "^1.0.0" - }, - "engines": { - "node": ">=4.8.2" - }, - "peerDependencies": { - "acorn": "^6.1.0 || ^7 || ^8" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/adonis-preset-ts": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/adonis-preset-ts/-/adonis-preset-ts-2.1.0.tgz", - "integrity": "sha512-cQH/NP250gOF9k3TTDhVsTOPSAvyH4MhKVZ4ryYiihA+vnP27sut1gVIrRas3Evl5d2wEgWVGI5DgdP/ZFSk0w==", - "dev": true - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", - "dev": true - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/api-contract-validator": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/api-contract-validator/-/api-contract-validator-2.2.8.tgz", - "integrity": "sha512-YM3rMcrIp8Thf/WWbVBXBGX793Mm3Phw2pn3VbJpiZkpeTCTtF10huKPrzQ2gSIaK5GjAhTRJMAOyf+rsS7MAw==", - "dev": true, - "dependencies": { - "api-schema-builder": "^2.0.10", - "chalk": "^3.0.0", - "columnify": "^1.5.4", - "jest-diff": "^25.5.0", - "jest-matcher-utils": "^25.5.0", - "lodash.flatten": "^4.4.0", - "lodash.get": "^4.4.2", - "lodash.set": "^4.3.2", - "uri-js": "^4.4.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/api-contract-validator/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/api-contract-validator/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/api-contract-validator/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/api-contract-validator/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/api-contract-validator/node_modules/diff-sequences": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", - "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", - "dev": true, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/api-contract-validator/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/api-contract-validator/node_modules/jest-diff": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", - "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", - "dev": true, - "dependencies": { - "chalk": "^3.0.0", - "diff-sequences": "^25.2.6", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/api-contract-validator/node_modules/jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/api-contract-validator/node_modules/pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "dev": true, - "dependencies": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/api-contract-validator/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "node_modules/api-contract-validator/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/api-schema-builder": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/api-schema-builder/-/api-schema-builder-2.0.11.tgz", - "integrity": "sha512-85zbwf8MtPWodhfnmQRW5YD/fuGR12FP+8TbcYai5wbRnoUmPYLftLSbp7NB6zQMPb61Gjz+ApPUSyTdcCos7g==", - "dev": true, - "dependencies": { - "ajv": "^6.12.6", - "clone-deep": "^4.0.1", - "decimal.js": "^10.3.1", - "js-yaml": "^3.14.1", - "json-schema-deref-sync": "^0.14.0", - "lodash.get": "^4.4.2", - "openapi-schema-validator": "^3.0.3", - "swagger-parser": "^10.0.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dev": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/as-table": { - "version": "1.0.55", - "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", - "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", - "dev": true, - "dependencies": { - "printable-characters": "^1.0.42" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/assets-webpack-plugin": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/assets-webpack-plugin/-/assets-webpack-plugin-7.0.0.tgz", - "integrity": "sha512-DMZ9r6HFxynWeONRMhSOFTvTrmit5dovdoUKdJgCG03M6CC7XiwNImPH+Ad1jaVrQ2n59e05lBhte52xPt4MSA==", - "dev": true, - "dependencies": { - "camelcase": "^6.0.0", - "escape-string-regexp": "^4.0.0", - "lodash": "^4.17.20" - }, - "engines": { - "node": ">=10.x.x" - }, - "peerDependencies": { - "webpack": ">=5.0.0" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/astring": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", - "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==", - "bin": { - "astring": "bin/astring" - } - }, - "node_modules/async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "dev": true, - "dependencies": { - "retry": "0.13.1" - } - }, - "node_modules/async-validator": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", - "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==", - "dev": true - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/atomic-sleep": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/babel-code-frame/node_modules/js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", - "dev": true - }, - "node_modules/babel-code-frame/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/babel-loader": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", - "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", - "dev": true, - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", - "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.2", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.4.tgz", - "integrity": "sha512-9l//BZZsPR+5XjyJMPtZSK4jv0BsTO1zDac2GC6ygx9WLGlcsnRd1Co0B2zT5fF5Ic6BZy+9m3HNZ3QcOeDKfg==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2", - "core-js-compat": "^3.32.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", - "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-preset-typescript-vue3": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/babel-preset-typescript-vue3/-/babel-preset-typescript-vue3-2.0.17.tgz", - "integrity": "sha512-6AdNf72Jd9OTap9ws12bAehn/GuuBSqUPN+nuOY7XCMckRcvPbO1G+yFvF+ahQsiMCk+gUZwTie1eoQMzeesog==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-transform-typescript": "^7.3.2", - "@babel/preset-typescript": "^7.3.3", - "@vue/compiler-sfc": "^3.0.5" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "dev": true - }, - "node_modules/bcryptjs": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", - "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" - }, - "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/body-parser/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/bonjour-service": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", - "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", - "dev": true, - "dependencies": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "node_modules/bplist-parser": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", - "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", - "dev": true, - "dependencies": { - "big-integer": "^1.6.44" - }, - "engines": { - "node": ">= 5.10.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.11", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.11.tgz", - "integrity": "sha512-xn1UXOKUz7DjdGlg9RrUr0GGiWzI97UQJnugHtH0OLDfJB7jMgoIkYvRIEO1l9EeEERVqeqLYOcFBW9ldjypbQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001538", - "electron-to-chromium": "^1.4.526", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "node_modules/buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" - }, - "node_modules/buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==" - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "dev": true - }, - "node_modules/bundle-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", - "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", - "dev": true, - "dependencies": { - "run-applescript": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-me-maybe": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", - "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", - "dev": true - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001539", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001539.tgz", - "integrity": "sha512-hfS5tE8bnNiNvEOEkm8HElUHroYwlqMMENEzELymy77+tJ6m+gA2krtHl5hxJaj71OlpC2cHZbdSMX1/YEqEkA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/capital-case": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/cardinal": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", - "dev": true, - "dependencies": { - "ansicolors": "~0.3.2", - "redeyed": "~2.1.0" - }, - "bin": { - "cdl": "bin/cdl.js" - } - }, - "node_modules/chai": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.8.tgz", - "integrity": "sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ==", - "dev": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/change-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", - "dependencies": { - "camel-case": "^4.1.2", - "capital-case": "^1.0.4", - "constant-case": "^3.0.4", - "dot-case": "^3.0.4", - "header-case": "^2.0.4", - "no-case": "^3.0.4", - "param-case": "^3.0.4", - "pascal-case": "^3.1.2", - "path-case": "^3.0.4", - "sentence-case": "^3.0.4", - "snake-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", - "engines": { - "node": "*" - } - }, - "node_modules/chart.js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.0.tgz", - "integrity": "sha512-vQEj6d+z0dcsKLlQvbKIMYFHd3t8W/7L2vfJIbYcfyPcRx92CsHqECpueN8qVGNlKyDcr5wBrYAYKnfu/9Q1hQ==", - "dev": true, - "dependencies": { - "@kurkle/color": "^0.3.0" - }, - "engines": { - "pnpm": ">=7" - } - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/clamscan": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clamscan/-/clamscan-2.1.2.tgz", - "integrity": "sha512-pcovgLHcrg3l/mI51Kuk0kN++07pSZdBTskISw0UFvsm8UXda8oNCm0eLeODxFg85Mz+k+TtSS9+XPlriJ8/Fg==", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/clean-webpack-plugin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", - "integrity": "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==", - "dev": true, - "dependencies": { - "del": "^4.1.1" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "webpack": ">=4.0.0 <6.0.0" - } - }, - "node_modules/cli-boxes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/co-compose": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/co-compose/-/co-compose-7.0.3.tgz", - "integrity": "sha512-ZHLSLzeBXe5yaEyIHo9T92uVrbsBRLMXlG0G4/pSm9f6148l4mJTr1cii8Jl9ce+mbLmW5XqHURPC7gZFJNeZA==" - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", - "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true - }, - "node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" - }, - "node_modules/columnify": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", - "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==", - "dev": true, - "dependencies": { - "strip-ansi": "^6.0.1", - "wcwidth": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "engines": { - "node": ">=14" - } - }, - "node_modules/comment-json": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-2.4.2.tgz", - "integrity": "sha512-T+iXox779qsqneMYx/x5BZyz4xjCeQRmuNVzz8tko7qZUs3MlzpA3RAs+O1XsgcKToNBMIvfVzafGOeiU7RggA==", - "dev": true, - "dependencies": { - "core-util-is": "^1.0.2", - "esprima": "^4.0.1", - "has-own-prop": "^2.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", - "dev": true - }, - "node_modules/constant-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case": "^2.0.2" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-hrtime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-3.0.0.tgz", - "integrity": "sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true - }, - "node_modules/cookiejar": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", - "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", - "dev": true - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-js-compat": { - "version": "3.32.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.2.tgz", - "integrity": "sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dev": true, - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/cosmiconfig/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/cosmiconfig/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/cosmiconfig/node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cp-file": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-9.1.0.tgz", - "integrity": "sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "nested-error-stacks": "^2.0.0", - "p-event": "^4.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cpy": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/cpy/-/cpy-8.1.2.tgz", - "integrity": "sha512-dmC4mUesv0OYH2kNFEidtf/skUwv4zePmGeepjyyJ0qTo5+8KhA1o99oIAwVVLzQMAeDJml74d6wPPKb6EZUTg==", - "dev": true, - "dependencies": { - "arrify": "^2.0.1", - "cp-file": "^7.0.0", - "globby": "^9.2.0", - "has-glob": "^1.0.0", - "junk": "^3.1.0", - "nested-error-stacks": "^2.1.0", - "p-all": "^2.1.0", - "p-filter": "^2.1.0", - "p-map": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cpy/node_modules/cp-file": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-7.0.0.tgz", - "integrity": "sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "nested-error-stacks": "^2.0.0", - "p-event": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", - "engines": { - "node": "*" - } - }, - "node_modules/crypto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/crypto/-/crypto-1.0.1.tgz", - "integrity": "sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==", - "deprecated": "This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in." - }, - "node_modules/csrf": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/csrf/-/csrf-3.1.0.tgz", - "integrity": "sha512-uTqEnCvWRk042asU6JtapDTcJeeailFy4ydOQS28bj1hcLnYRiqi8SsD2jS412AY1I/4qdOwWZun774iqywf9w==", - "dependencies": { - "rndm": "1.2.0", - "tsscmp": "1.0.6", - "uid-safe": "2.1.5" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/css-declaration-sorter": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", - "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-loader": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", - "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", - "dev": true, - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.21", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.3", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", - "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "cssnano": "^6.0.1", - "jest-worker": "^29.4.3", - "postcss": "^8.4.24", - "schema-utils": "^4.0.1", - "serialize-javascript": "^6.0.1" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "@swc/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "lightningcss": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/css-render": { - "version": "0.15.12", - "resolved": "https://registry.npmjs.org/css-render/-/css-render-0.15.12.tgz", - "integrity": "sha512-eWzS66patiGkTTik+ipO9qNGZ+uNuGyTmnz6/+EJIiFg8+3yZRpnMwgFo8YdXhQRsiePzehnusrxVvugNjXzbw==", - "dev": true, - "dependencies": { - "@emotion/hash": "~0.8.0", - "csstype": "~3.0.5" - } - }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.1.tgz", - "integrity": "sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==", - "dev": true, - "dependencies": { - "cssnano-preset-default": "^6.0.1", - "lilconfig": "^2.1.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-default": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.1.tgz", - "integrity": "sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==", - "dev": true, - "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^4.0.0", - "postcss-calc": "^9.0.0", - "postcss-colormin": "^6.0.0", - "postcss-convert-values": "^6.0.0", - "postcss-discard-comments": "^6.0.0", - "postcss-discard-duplicates": "^6.0.0", - "postcss-discard-empty": "^6.0.0", - "postcss-discard-overridden": "^6.0.0", - "postcss-merge-longhand": "^6.0.0", - "postcss-merge-rules": "^6.0.1", - "postcss-minify-font-values": "^6.0.0", - "postcss-minify-gradients": "^6.0.0", - "postcss-minify-params": "^6.0.0", - "postcss-minify-selectors": "^6.0.0", - "postcss-normalize-charset": "^6.0.0", - "postcss-normalize-display-values": "^6.0.0", - "postcss-normalize-positions": "^6.0.0", - "postcss-normalize-repeat-style": "^6.0.0", - "postcss-normalize-string": "^6.0.0", - "postcss-normalize-timing-functions": "^6.0.0", - "postcss-normalize-unicode": "^6.0.0", - "postcss-normalize-url": "^6.0.0", - "postcss-normalize-whitespace": "^6.0.0", - "postcss-ordered-values": "^6.0.0", - "postcss-reduce-initial": "^6.0.0", - "postcss-reduce-transforms": "^6.0.0", - "postcss-svgo": "^6.0.0", - "postcss-unique-selectors": "^6.0.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.0.tgz", - "integrity": "sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "dev": true, - "dependencies": { - "css-tree": "~2.2.0" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "dev": true - }, - "node_modules/csstype": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz", - "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==", - "dev": true - }, - "node_modules/cuid": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/cuid/-/cuid-2.1.8.tgz", - "integrity": "sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg==", - "deprecated": "Cuid and other k-sortable and non-cryptographic ids (Ulid, ObjectId, KSUID, all UUIDs) are all insecure. Use @paralleldrive/cuid2 instead." - }, - "node_modules/dag-map": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz", - "integrity": "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw==", - "dev": true - }, - "node_modules/data-uri-to-buffer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", - "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==", - "dev": true - }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/date-fns-tz": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-1.3.8.tgz", - "integrity": "sha512-qwNXUFtMHTTU6CFSFjoJ80W8Fzzp24LntbjFFBgL/faqds4e5mo9mftoRLgr3Vi1trISsg4awSpYVsOQCRnapQ==", - "dev": true, - "peerDependencies": { - "date-fns": ">=2.0.0" - } - }, - "node_modules/dateformat": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", - "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", - "engines": { - "node": "*" - } - }, - "node_modules/dayjs": { - "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true - }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-browser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", - "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", - "dev": true, - "dependencies": { - "bundle-name": "^3.0.0", - "default-browser-id": "^3.0.0", - "execa": "^7.1.1", - "titleize": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser-id": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", - "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", - "dev": true, - "dependencies": { - "bplist-parser": "^0.2.0", - "untildify": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser/node_modules/execa": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", - "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/default-browser/node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", - "dev": true, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/default-browser/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dev": true, - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/defaults/node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/del/node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", - "dev": true, - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/globby/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-indent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true - }, - "node_modules/dezalgo": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", - "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", - "dev": true, - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "dev": true, - "dependencies": { - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", - "dev": true - }, - "node_modules/dns-packet": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", - "dev": true, - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dotenv": { - "version": "16.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", - "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" - } - }, - "node_modules/edge-error": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/edge-error/-/edge-error-2.0.8.tgz", - "integrity": "sha512-ORKH7rn/LEfgo0qrgoMMwFPfestNFvTO+dRLDmS+zgulhd9BVXfv/p+V6K3OyEeu2L0ysYp/71uHB31GIDe68A==" - }, - "node_modules/edge-lexer": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/edge-lexer/-/edge-lexer-5.0.2.tgz", - "integrity": "sha512-MSpv6JRPD96eZl0uPo8gIvE9cPAXb1eNRfZKlQpFYJ2O8cNdZDpN8RvT2zpu4XqC63HWs/c938qc3dWN+GJhFw==", - "dependencies": { - "edge-error": "^3.0.0" - } - }, - "node_modules/edge-lexer/node_modules/edge-error": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/edge-error/-/edge-error-3.0.0.tgz", - "integrity": "sha512-TJE2A6KFqBMIe3EPyl/5V8veGYcMfpEtSNKfZkrSkQAyz3kh27etQ2erU6o0lkAFqDjjUl11YVzBIO2ij5/Zhw==" - }, - "node_modules/edge-parser": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/edge-parser/-/edge-parser-8.2.2.tgz", - "integrity": "sha512-48iOLaOD4PAxIU0jnLRNXUL8G6ktO79bA4adOGXzNHg2M+mHfudFI7QPdF6IO8gW0NC1N0TPvwLWK3FVkE9bLQ==", - "dependencies": { - "acorn": "^8.8.2", - "astring": "^1.8.4", - "edge-error": "^3.0.0", - "edge-lexer": "^5.0.2", - "js-stringify": "^1.0.2" - } - }, - "node_modules/edge-parser/node_modules/edge-error": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/edge-error/-/edge-error-3.0.0.tgz", - "integrity": "sha512-TJE2A6KFqBMIe3EPyl/5V8veGYcMfpEtSNKfZkrSkQAyz3kh27etQ2erU6o0lkAFqDjjUl11YVzBIO2ij5/Zhw==" - }, - "node_modules/edge-supercharged": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/edge-supercharged/-/edge-supercharged-3.1.1.tgz", - "integrity": "sha512-Pxgst3UeR+0PWuTIG2QHuFgFe73TMoVMphRsa/bOmIvOkQ87cD7+VxiS9ph2KbA4djJ2ChbdgtbNiIvju5yXEw==", - "dependencies": { - "@poppinss/utils": "^3.1.3", - "slash": "^3.0.0" - } - }, - "node_modules/edge-supercharged/node_modules/@poppinss/utils": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-3.3.1.tgz", - "integrity": "sha512-k4MFt+4JhOWJZ9D2xpEcG/mpZyXVXYT+dSOg83vHK1xhXl+7r0IYBXRKWX2+To7/90KJaWlwpcdCAalXE8Debg==", - "dependencies": { - "@types/bytes": "^3.1.1", - "@types/he": "^1.1.2", - "buffer-alloc": "^1.2.0", - "bytes": "^3.1.0", - "change-case": "^4.1.2", - "cuid": "^2.1.8", - "flattie": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "he": "^1.2.0", - "kind-of": "^6.0.3", - "lodash": "^4.17.21", - "ms": "^2.1.3", - "pluralize": "^8.0.0", - "require-all": "^3.0.0", - "resolve-from": "^5.0.0", - "slugify": "^1.6.1", - "truncatise": "0.0.8" - } - }, - "node_modules/edge.js": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/edge.js/-/edge.js-5.5.1.tgz", - "integrity": "sha512-lAhEdj1tW2VOJsP5X38wSHjjaXXwoteZ+8PDAJ50rAKzBxpw4QsdXK2jVzMFgRoTMUf7C+x+Tp51R9yxGTLO0w==", - "dependencies": { - "@poppinss/inspect": "^1.0.1", - "@poppinss/utils": "^5.0.0", - "edge-error": "^3.0.0", - "edge-lexer": "^5.0.2", - "edge-parser": "^8.2.1", - "js-stringify": "^1.0.2", - "macroable": "^7.0.1", - "stringify-attributes": "^2.0.0" - } - }, - "node_modules/edge.js/node_modules/edge-error": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/edge-error/-/edge-error-3.0.0.tgz", - "integrity": "sha512-TJE2A6KFqBMIe3EPyl/5V8veGYcMfpEtSNKfZkrSkQAyz3kh27etQ2erU6o0lkAFqDjjUl11YVzBIO2ij5/Zhw==" - }, - "node_modules/editorconfig": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", - "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", - "dev": true, - "dependencies": { - "commander": "^2.19.0", - "lru-cache": "^4.1.5", - "semver": "^5.6.0", - "sigmund": "^1.0.1" - }, - "bin": { - "editorconfig": "bin/editorconfig" - } - }, - "node_modules/editorconfig/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/editorconfig/node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/editorconfig/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/editorconfig/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", - "dev": true - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.529", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.529.tgz", - "integrity": "sha512-6uyPyXTo8lkv8SWAmjKFbG42U073TXlzD4R8rW3EzuznhFS2olCIAfjjQtV2dV2ar/vRF55KUd3zQYnCB0dd3A==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/envinfo": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz", - "integrity": "sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==", - "dev": true, - "peer": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/error-stack-parser": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", - "dev": true, - "dependencies": { - "stackframe": "^1.3.4" - } - }, - "node_modules/es-module-lexer": { - "version": "0.3.26", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.3.26.tgz", - "integrity": "sha512-Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA==" - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", - "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.50.0", - "@humanwhocodes/config-array": "^0.11.11", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", - "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-adonis": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-adonis/-/eslint-plugin-adonis-2.1.1.tgz", - "integrity": "sha512-iC3eZXofK4q+KOGypiquT74amCpeqW+5K5WZ7pezUvrXgmFkZMn7MSQjAg44KVzq6pQdXFuRNlnS+ijcwx0AMw==", - "dev": true, - "dependencies": { - "@typescript-eslint/eslint-plugin": "^5.37.0", - "@typescript-eslint/parser": "^5.37.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "eslint": "^8.0.0" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz", - "integrity": "sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.8.5" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/prettier" - }, - "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "prettier": ">=3.0.0" - }, - "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.22.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", - "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/esm": { - "version": "3.2.25", - "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", - "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/evtd": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/evtd/-/evtd-0.2.4.tgz", - "integrity": "sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw==", - "dev": true - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", - "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/express/node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-copy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.1.tgz", - "integrity": "sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA==" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", - "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", - "dev": true, - "dependencies": { - "fastest-levenshtein": "^1.0.7" - } - }, - "node_modules/fast-redact": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.3.0.tgz", - "integrity": "sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true, - "engines": { - "node": ">= 4.9.1" - } - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/file-type": { - "version": "16.5.4", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", - "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", - "dependencies": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.2.4", - "token-types": "^4.1.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/file-type?sponsor=1" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", - "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", - "dev": true, - "dependencies": { - "flatted": "^3.2.7", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flatstr": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", - "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" - }, - "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true - }, - "node_modules/flattie": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.0.tgz", - "integrity": "sha512-xU99gDEnciIwJdGcBmNHnzTJ/w5AT+VFJOu6sTB6WM8diOYNA3Sa+K1DiEBQ7XH4QikQq3iFW1U+jRVcotQnBw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/formidable": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", - "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", - "dev": true, - "dependencies": { - "dezalgo": "^1.0.4", - "hexoid": "^1.0.0", - "once": "^1.4.0", - "qs": "^6.11.0" - }, - "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.6.tgz", - "integrity": "sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", - "dev": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", - "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==" - }, - "node_modules/fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-source": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", - "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==", - "dev": true, - "dependencies": { - "data-uri-to-buffer": "^2.0.0", - "source-map": "^0.6.1" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/getopts": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz", - "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==" - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/globby/node_modules/@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globby/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/globby/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/globby/node_modules/fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "dev": true, - "dependencies": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/globby/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/globby/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/globby/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/globby/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/globby/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/globby/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/globby/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/globby/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/globby/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/globby/node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/globby/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-glob/-/has-glob-1.0.0.tgz", - "integrity": "sha512-D+8A457fBShSEI3tFCj65PAbT++5sKiFtdCdOam0gnfBgw9D277OERk+HM9qYJXmdVLZ/znez10SqHN0BBQ50g==", - "dev": true, - "dependencies": { - "is-glob": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-glob/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-own-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", - "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", - "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/hash-sum": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", - "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", - "dev": true - }, - "node_modules/haye": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/haye/-/haye-3.0.0.tgz", - "integrity": "sha512-yWxbPdeex78IR3x3X/DdqkZbVG4rP4UaRdUGmpClfnUh1C61mASt7Iav8vk2tXcTMSygBHDDfgoVqk68NJqzhQ==" - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "bin": { - "he": "bin/he" - } - }, - "node_modules/header-case": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", - "dependencies": { - "capital-case": "^1.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/helmet-csp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-3.4.0.tgz", - "integrity": "sha512-a+YgzWw6dajqhQfb6ktxil0FsQuWTKzrLSUfy55dxS8fuvl1jidTIMPZ2udN15mjjcpBPgTHNHGF5tyWKYyR8w==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/help-me": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/help-me/-/help-me-4.2.0.tgz", - "integrity": "sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA==", - "dependencies": { - "glob": "^8.0.0", - "readable-stream": "^3.6.0" - } - }, - "node_modules/help-me/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/help-me/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/help-me/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/help-me/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hexoid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", - "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/highlight.js": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.8.0.tgz", - "integrity": "sha512-MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg==", - "dev": true, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-entities": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", - "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ] - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "dev": true - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "dev": true - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "dev": true, - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/http-status-codes": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.3.0.tgz", - "integrity": "sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==" - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/igniculus": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/igniculus/-/igniculus-1.5.0.tgz", - "integrity": "sha512-vhj2J/cSzNg2G5tcK4Z1KZdeYmQa5keoxFULUYAxctK/zHJb1oraO7noCqnJxKe1b2eZdiiaSL1IHPOFAI8UYQ==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "peer": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inclusion": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/inclusion/-/inclusion-1.0.1.tgz", - "integrity": "sha512-TRicJXpIfJN+a47xxjs5nfy2V5l413e4aAtsLYRG+OsDM3A3uloBd/+fDmj23RVuIL9VQfwtb37iIc0rtMw9KA==", - "dev": true, - "dependencies": { - "parent-module": "^2.0.0" - } - }, - "node_modules/inclusion/node_modules/parent-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-2.0.0.tgz", - "integrity": "sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==", - "dev": true, - "dependencies": { - "callsites": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflation": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", - "integrity": "sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", - "dev": true, - "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-inside-container/node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-invalid-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", - "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==", - "dev": true, - "dependencies": { - "is-glob": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-invalid-path/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-invalid-path/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", - "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "dependencies": { - "is-path-inside": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-in-cwd/node_modules/is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "dependencies": { - "path-is-inside": "^1.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-valid-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", - "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==", - "dev": true, - "dependencies": { - "is-invalid-path": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-diff/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz", - "integrity": "sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==", - "dev": true, - "dependencies": { - "chalk": "^3.0.0", - "jest-diff": "^25.5.0", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-matcher-utils/node_modules/diff-sequences": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", - "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", - "dev": true, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/jest-diff": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", - "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", - "dev": true, - "dependencies": { - "chalk": "^3.0.0", - "diff-sequences": "^25.2.6", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/jest-matcher-utils/node_modules/jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/jest-matcher-utils/node_modules/pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "dev": true, - "dependencies": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/jest-matcher-utils/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util/node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/jest-util/node_modules/@types/yargs": { - "version": "17.0.25", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.25.tgz", - "integrity": "sha512-gy7iPgwnzNvxgAEi2bXOHWCVOG6f7xsprVJH4MjlAWeBmJ7vh/Y1kwMtUrs64ztf24zVIRCpr3n/z6gm9QIkgg==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jiti": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.20.0.tgz", - "integrity": "sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==", - "dev": true, - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/joycon": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", - "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/js-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", - "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-deref-sync": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/json-schema-deref-sync/-/json-schema-deref-sync-0.14.0.tgz", - "integrity": "sha512-yGR1xmhdiD6R0MSrwWcFxQzAj5b3i5Gb/mt5tvQKgFMMeNe0KZYNEN/jWr7G+xn39Azqgcvk4ZKMs8dQl8e4wA==", - "dev": true, - "dependencies": { - "clone": "^2.1.2", - "dag-map": "~1.0.0", - "is-valid-path": "^0.1.1", - "lodash": "^4.17.13", - "md5": "~2.2.0", - "memory-cache": "~0.2.0", - "traverse": "~0.6.6", - "valid-url": "~1.0.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/json-schema-deref-sync/node_modules/md5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", - "integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==", - "dev": true, - "dependencies": { - "charenc": "~0.0.1", - "crypt": "~0.0.1", - "is-buffer": "~1.1.1" - } - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/junk": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", - "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/keyv": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", - "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/knex": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/knex/-/knex-2.5.1.tgz", - "integrity": "sha512-z78DgGKUr4SE/6cm7ku+jHvFT0X97aERh/f0MUKAKgFnwCYBEW4TFBqtHWFYiJFid7fMrtpZ/gxJthvz5mEByA==", - "dependencies": { - "colorette": "2.0.19", - "commander": "^10.0.0", - "debug": "4.3.4", - "escalade": "^3.1.1", - "esm": "^3.2.25", - "get-package-type": "^0.1.0", - "getopts": "2.3.0", - "interpret": "^2.2.0", - "lodash": "^4.17.21", - "pg-connection-string": "2.6.1", - "rechoir": "^0.8.0", - "resolve-from": "^5.0.0", - "tarn": "^3.0.2", - "tildify": "2.0.0" - }, - "bin": { - "knex": "bin/cli.js" - }, - "engines": { - "node": ">=12" - }, - "peerDependenciesMeta": { - "better-sqlite3": { - "optional": true - }, - "mysql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "tedious": { - "optional": true - } - } - }, - "node_modules/knex-dynamic-connection": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/knex-dynamic-connection/-/knex-dynamic-connection-3.1.0.tgz", - "integrity": "sha512-owRQ9cHBtaBUfYBs/dyt1s/Y0PYwUE66apnfYpzzMTkN2tNlzC1s7owqDJleHOelhJERZgd4jd1BZgcdfXLEhQ==", - "dependencies": { - "debug": "^4.3.4", - "knex": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/launch-editor": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", - "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", - "dev": true, - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.7.3" - } - }, - "node_modules/leaflet": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", - "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==" - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/listify": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/listify/-/listify-1.0.3.tgz", - "integrity": "sha512-083swF7iH7bx8666zdzBColpgEuy46HjN3r1isD4zV6Ix7FuHfb/2/WVnl4CH8hjuoWeFF7P5KkKNXUnJCFEJg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==", - "dev": true - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true - }, - "node_modules/log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.0" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/luxon": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.3.tgz", - "integrity": "sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/macroable": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/macroable/-/macroable-7.0.2.tgz", - "integrity": "sha512-QS9p+Q20YBxpE0dJBnF6CPURP7p1GUsxnhTxTWH5nG3A1F5w8Rg3T4Xyh5UlrFSbHp88oOciVP/0agsNLhkHdQ==" - }, - "node_modules/magic-string": { - "version": "0.30.3", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.3.tgz", - "integrity": "sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "dependencies": { - "p-defer": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", - "dev": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "dev": true, - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/marked-terminal": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.2.0.tgz", - "integrity": "sha512-Piv6yNwAQXGFjZSaiNljyNFw7jKDdGrw70FSbtxEyldLsyeuV5ZHm/1wW++kWbrOF1VPnUgYOhB2oLL0ZpnekA==", - "dev": true, - "dependencies": { - "ansi-escapes": "^6.2.0", - "cardinal": "^2.1.1", - "chalk": "^5.2.0", - "cli-table3": "^0.6.3", - "node-emoji": "^1.11.0", - "supports-hyperlinks": "^2.3.0" - }, - "engines": { - "node": ">=14.13.1 || >=16.0.0" - }, - "peerDependencies": { - "marked": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" - } - }, - "node_modules/marked-terminal/node_modules/ansi-escapes": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz", - "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==", - "dev": true, - "dependencies": { - "type-fest": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/marked-terminal/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/marked-terminal/node_modules/type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/md5": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "dependencies": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" - } - }, - "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true - }, - "node_modules/media-typer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", - "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/mem": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz", - "integrity": "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==", - "dev": true, - "dependencies": { - "map-age-cleaner": "^0.1.3", - "mimic-fn": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/mem?sponsor=1" - } - }, - "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", - "dependencies": { - "fs-monkey": "^1.0.4" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/memory-cache": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/memory-cache/-/memory-cache-0.2.0.tgz", - "integrity": "sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==", - "dev": true - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", - "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", - "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", - "dev": true, - "dependencies": { - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/mini-svg-data-uri": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", - "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", - "dev": true, - "bin": { - "mini-svg-data-uri": "cli.js" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mrm-core": { - "version": "7.1.13", - "resolved": "https://registry.npmjs.org/mrm-core/-/mrm-core-7.1.13.tgz", - "integrity": "sha512-+AlsNuryLYw9HWqf+HBcNXULiwBEfcmb2VDccvYyg71x25bC8nJOn0YJA13x1PUUEF0aEbc5RTfqa6weMtRHaw==", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0", - "comment-json": "^2.2.0", - "detect-indent": "^6.0.0", - "editorconfig": "^0.15.3", - "find-up": "^4.1.0", - "fs-extra": "^8.1.0", - "kleur": "^3.0.3", - "listify": "^1.0.0", - "lodash": "^4.17.15", - "minimist": "^1.2.0", - "prop-ini": "^0.0.2", - "rc": "^1.2.8", - "readme-badger": "^0.3.0", - "semver": "^6.3.0", - "smpltmpl": "^1.0.2", - "split-lines": "^2.0.0", - "strip-bom": "^4.0.0", - "validate-npm-package-name": "^3.0.0", - "webpack-merge": "^4.2.2", - "yaml": "^2.0.0-1" - }, - "engines": { - "node": ">=10.13" - } - }, - "node_modules/mrm-core/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mrm-core/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/mrm-core/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/mrm-core/node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mrm-core/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mrm-core/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mrm-core/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mrm-core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/mrm-core/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "dev": true, - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", - "bin": { - "mustache": "bin/mustache" - } - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/naive-ui": { - "version": "2.34.4", - "resolved": "https://registry.npmjs.org/naive-ui/-/naive-ui-2.34.4.tgz", - "integrity": "sha512-aPG8PDfhSzIzn/jSC9y3Jb3Pe2wHJ7F0cFV1EWlbImSrZECeUmoc+fIcOSWbizoztkKfaUAeKwYdMl09MKkj1g==", - "dev": true, - "dependencies": { - "@css-render/plugin-bem": "^0.15.10", - "@css-render/vue3-ssr": "^0.15.10", - "@types/katex": "^0.14.0", - "@types/lodash": "^4.14.181", - "@types/lodash-es": "^4.17.6", - "async-validator": "^4.0.7", - "css-render": "^0.15.10", - "date-fns": "^2.28.0", - "date-fns-tz": "^1.3.3", - "evtd": "^0.2.4", - "highlight.js": "^11.5.0", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "seemly": "^0.3.6", - "treemate": "^0.3.11", - "vdirs": "^0.1.8", - "vooks": "^0.2.12", - "vueuc": "^0.4.51" - }, - "peerDependencies": { - "vue": "^3.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true, - "peer": true - }, - "node_modules/nested-error-stacks": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz", - "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==", - "dev": true - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", - "dev": true, - "dependencies": { - "lodash": "^4.17.21" - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "dev": true, - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true - }, - "node_modules/node-repl-await": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/node-repl-await/-/node-repl-await-0.1.2.tgz", - "integrity": "sha512-e03zlI31RjF6Ks9+/ju0gY55dZSm21XXMSzy85FGZtDxuAZCa/iQwzWoQjmZvaolQCrIjzs0e4shxZs1bxbpUg==", - "dependencies": { - "acorn": "^8.0.5", - "acorn-class-fields": "^1.0.0", - "acorn-private-methods": "^1.0.0", - "acorn-static-class-features": "^1.0.0", - "acorn-walk": "^8.0.2" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/notiwind": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/notiwind/-/notiwind-2.0.2.tgz", - "integrity": "sha512-wMCf+07E093d0Q78C5UHroT9GQHm4mIGerhg7dGLJ0GN6zONqKj8nTR3clkq/Y44On9k28/0DtDNwOX7FT5p/A==", - "dependencies": { - "mitt": "^3.0.1" - }, - "peerDependencies": { - "vue": "^3.3.4" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/numeral": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz", - "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", - "dev": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", - "dev": true, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "node_modules/on-exit-leak-free": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz", - "integrity": "sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==" - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/onetime/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dev": true, - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/openapi-schema-validator": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/openapi-schema-validator/-/openapi-schema-validator-3.0.3.tgz", - "integrity": "sha512-KKpeNEvAmpy6B2JCfyrM4yWjL6vggDCVbBoR8Yfkj0Jltc6PCW+dBbcg+1yrTCuDv80qBQJ6w0ejA71DlOFegA==", - "dev": true, - "dependencies": { - "ajv": "^6.5.2", - "lodash.merge": "^4.6.1", - "openapi-types": "1.3.4", - "swagger-schema-official": "2.0.0-bab6bed" - } - }, - "node_modules/openapi-types": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-1.3.4.tgz", - "integrity": "sha512-h8rADpW3k/wepLdERKF0VKMAPdoFYNQCLGPmc/f8sgQ2dxUy+7sY4WAX2XDUDjhKTjbJVbxxofLkzy7f1/tE4g==", - "dev": true - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/optionator/node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/p-all": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-all/-/p-all-2.1.0.tgz", - "integrity": "sha512-HbZxz5FONzz/z2gJfk6bFca0BCiSRF8jU3yCsWOen/vR6lZjfPOu/e7L3uFzTW1i0H8TlC3vqQstEJPQL4/uLA==", - "dev": true, - "dependencies": { - "p-map": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-all/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-event": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", - "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", - "dev": true, - "dependencies": { - "p-timeout": "^3.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", - "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", - "dev": true, - "dependencies": { - "p-map": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-filter/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "dev": true, - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dev": true, - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-imports": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-0.0.5.tgz", - "integrity": "sha512-yA6mDNotJmyAXcEdi2AjiHfI8Llk+/uv/jgBgvzFVP8iGaHC5L3rR6VQk/1qEE3SvLUsDQ2GdQMfPTi0qrmt8Q==", - "dependencies": { - "es-module-lexer": "0.3.26", - "slashes": "2.0.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", - "dev": true - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", - "dev": true - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true - }, - "node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-type/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/peek-readable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", - "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/pg": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", - "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", - "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.6.2", - "pg-pool": "^3.6.1", - "pg-protocol": "^1.6.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - }, - "engines": { - "node": ">= 8.0.0" - }, - "optionalDependencies": { - "pg-cloudflare": "^1.1.1" - }, - "peerDependencies": { - "pg-native": ">=3.0.1" - }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true - } - } - }, - "node_modules/pg-cloudflare": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", - "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", - "optional": true - }, - "node_modules/pg-connection-string": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.1.tgz", - "integrity": "sha512-w6ZzNu6oMmIzEAYVw+RLK0+nqHPt8K3ZnknKi+g48Ak2pr3dtljJW3o+D/n2zzCG07Zoe9VOX3aiKpj+BN0pjg==" - }, - "node_modules/pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pg-pool": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", - "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", - "peerDependencies": { - "pg": ">=8.0" - } - }, - "node_modules/pg-protocol": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", - "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" - }, - "node_modules/pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "dependencies": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pg/node_modules/pg-connection-string": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", - "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==" - }, - "node_modules/pgpass": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", - "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", - "dependencies": { - "split2": "^4.1.0" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pinia": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.1.6.tgz", - "integrity": "sha512-bIU6QuE5qZviMmct5XwCesXelb5VavdOWKWaB17ggk++NUwQWWbP5YnsONTk3b752QkW9sACiR81rorpeOMSvQ==", - "dev": true, - "dependencies": { - "@vue/devtools-api": "^6.5.0", - "vue-demi": ">=0.14.5" - }, - "funding": { - "url": "https://github.com/sponsors/posva" - }, - "peerDependencies": { - "@vue/composition-api": "^1.4.0", - "typescript": ">=4.4.4", - "vue": "^2.6.14 || ^3.3.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/pinia/node_modules/vue-demi": { - "version": "0.14.6", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", - "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", - "dev": true, - "hasInstallScript": true, - "bin": { - "vue-demi-fix": "bin/vue-demi-fix.js", - "vue-demi-switch": "bin/vue-demi-switch.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-rc.1", - "vue": "^3.0.0-0 || ^2.6.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pino": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-6.14.0.tgz", - "integrity": "sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg==", - "dependencies": { - "fast-redact": "^3.0.0", - "fast-safe-stringify": "^2.0.8", - "flatstr": "^1.0.12", - "pino-std-serializers": "^3.1.0", - "process-warning": "^1.0.0", - "quick-format-unescaped": "^4.0.3", - "sonic-boom": "^1.0.2" - }, - "bin": { - "pino": "bin.js" - } - }, - "node_modules/pino-abstract-transport": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.1.0.tgz", - "integrity": "sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==", - "dependencies": { - "readable-stream": "^4.0.0", - "split2": "^4.0.0" - } - }, - "node_modules/pino-pretty": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-10.2.0.tgz", - "integrity": "sha512-tRvpyEmGtc2D+Lr3FulIZ+R1baggQ4S3xD2Ar93KixFEDx6SEAUP3W5aYuEw1C73d6ROrNcB2IXLteW8itlwhA==", - "dependencies": { - "colorette": "^2.0.7", - "dateformat": "^4.6.3", - "fast-copy": "^3.0.0", - "fast-safe-stringify": "^2.1.1", - "help-me": "^4.0.1", - "joycon": "^3.1.1", - "minimist": "^1.2.6", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^1.0.0", - "pump": "^3.0.0", - "readable-stream": "^4.0.0", - "secure-json-parse": "^2.4.0", - "sonic-boom": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "bin": { - "pino-pretty": "bin.js" - } - }, - "node_modules/pino-pretty/node_modules/sonic-boom": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.3.0.tgz", - "integrity": "sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g==", - "dependencies": { - "atomic-sleep": "^1.0.0" - } - }, - "node_modules/pino-std-serializers": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", - "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==" - }, - "node_modules/pino/node_modules/pino-std-serializers": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", - "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" - }, - "node_modules/pino/node_modules/sonic-boom": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", - "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", - "dependencies": { - "atomic-sleep": "^1.0.0", - "flatstr": "^1.0.12" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "8.4.30", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.30.tgz", - "integrity": "sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-calc": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", - "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-colormin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.0.tgz", - "integrity": "sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-convert-values": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.0.tgz", - "integrity": "sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-comments": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.0.tgz", - "integrity": "sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.0.tgz", - "integrity": "sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-empty": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.0.tgz", - "integrity": "sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.0.tgz", - "integrity": "sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", - "dev": true, - "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" - }, - "engines": { - "node": ">= 14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-loader": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz", - "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==", - "dev": true, - "dependencies": { - "cosmiconfig": "^8.2.0", - "jiti": "^1.18.2", - "semver": "^7.3.8" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz", - "integrity": "sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^6.0.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-rules": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.1.tgz", - "integrity": "sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^4.0.0", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.0.tgz", - "integrity": "sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.0.tgz", - "integrity": "sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==", - "dev": true, - "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^4.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-params": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.0.tgz", - "integrity": "sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "cssnano-utils": "^4.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.0.tgz", - "integrity": "sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", - "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.11" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz", - "integrity": "sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.0.tgz", - "integrity": "sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.0.tgz", - "integrity": "sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.0.tgz", - "integrity": "sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-string": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.0.tgz", - "integrity": "sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.0.tgz", - "integrity": "sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.0.tgz", - "integrity": "sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-url": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.0.tgz", - "integrity": "sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.0.tgz", - "integrity": "sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-ordered-values": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.0.tgz", - "integrity": "sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==", - "dev": true, - "dependencies": { - "cssnano-utils": "^4.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.0.tgz", - "integrity": "sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.0.tgz", - "integrity": "sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.0.tgz", - "integrity": "sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^3.0.2" - }, - "engines": { - "node": "^14 || ^16 || >= 18" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.0.tgz", - "integrity": "sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-date": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "dependencies": { - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", - "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", - "dev": true, - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "dev": true, - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/printable-characters": { - "version": "1.0.42", - "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", - "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==", - "dev": true - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/process-warning": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", - "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" - }, - "node_modules/prop-ini": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/prop-ini/-/prop-ini-0.0.2.tgz", - "integrity": "sha512-qyU57WvAvZDbzmRy9xDbJGVwrGJhmA+rYnVjy4xtX4Ny9c7gzvpmf/j7A3oq9ChbPh15MZQKjPep2mNdnAhtig==", - "dev": true, - "dependencies": { - "extend": "^3.0.0" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-format-unescaped": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", - "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" - }, - "node_modules/random-bytes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", - "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-cache/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/readable-web-to-node-stream": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "dependencies": { - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/readable-web-to-node-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/readme-badger": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/readme-badger/-/readme-badger-0.3.0.tgz", - "integrity": "sha512-+sMOLSs1imZUISZ2Rhz7qqVd77QtpcAPbGeIraFdgJmijb04YtdlPjGNBvDChTNtLbeQ6JNGQy3pOgslWfaP3g==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", - "dependencies": { - "resolve": "^1.20.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/redeyed": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==", - "dev": true, - "dependencies": { - "esprima": "~4.0.0" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-parser": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", - "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", - "dev": true - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "dev": true, - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/require-all": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/require-all/-/require-all-3.0.0.tgz", - "integrity": "sha512-jPGN876lc5exWYrMcgZSd7U42P0PmVQzxnQB13fCSzmyGnqQWW4WUz5DosZ/qe24hz+5o9lSvW2epBNZ1xa6Fw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "peer": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true - }, - "node_modules/resolve-url-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", - "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", - "dev": true, - "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.14", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/resolve-url-loader/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rev-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rev-hash/-/rev-hash-3.0.0.tgz", - "integrity": "sha512-s+87HfEKAu95TaTxnbCobn0/BkbzR23LHSwVdYvr8mn5+PPjzy+hTWyh92b5oaLgig9TKPe5d6ZcubsVBtUrZg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/rndm": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz", - "integrity": "sha512-fJhQQI5tLrQvYIYFpOnFinzv9dwmR7hRnUz1XqP3OJ1jIweTNOd6aTO4jwQSgcBSFUB+/KHJxuGneime+FdzOw==" - }, - "node_modules/run-applescript": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", - "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", - "dev": true, - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/saxon-js": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/saxon-js/-/saxon-js-2.5.0.tgz", - "integrity": "sha512-bdUmnW//mNha5OFYGDA/rqh+4ZuHPtYUQor8yqnOIhFb0JxD+mauFuZbp2GpEwHnTEpFTQ8OcoVFLcDxu7SXAg==", - "dependencies": { - "axios": "^0.24.0" - } - }, - "node_modules/saxon-js/node_modules/axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", - "dependencies": { - "follow-redirects": "^1.14.4" - } - }, - "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/secure-json-parse": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", - "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==" - }, - "node_modules/seemly": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/seemly/-/seemly-0.3.6.tgz", - "integrity": "sha512-lEV5VB8BUKTo/AfktXJcy+JeXns26ylbMkIUco8CYREsQijuz4mrXres2Q+vMLdwkuLxJdIPQ8IlCIxLYm71Yw==", - "dev": true - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "dev": true - }, - "node_modules/selfsigned": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", - "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", - "dev": true, - "dependencies": { - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/sentence-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "dev": true, - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-cookie-parser": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", - "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", - "dev": true - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==", - "dev": true - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/slashes": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/slashes/-/slashes-2.0.2.tgz", - "integrity": "sha512-68p+QkFAQQRetIUzNXAdktNJr8AYLxJukjBegYQz8F7VATsBJG621UYtY/vS2j9jerxdJ1k6Tc25K4DXEw1d5w==" - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/slugify": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", - "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/smpltmpl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/smpltmpl/-/smpltmpl-1.0.2.tgz", - "integrity": "sha512-Hq23NNgeZigOzIiX1dkb6W3gFn2/XQj43KhPxu65IMieG/gIwf/lQb1IudjYv0c/5LwJeS/mPayYzyo+8WJMxQ==", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/sonic-boom": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz", - "integrity": "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==", - "dependencies": { - "atomic-sleep": "^1.0.0" - } - }, - "node_modules/sortablejs": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz", - "integrity": "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==" - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/spdy-transport/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/split-lines": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/split-lines/-/split-lines-2.1.0.tgz", - "integrity": "sha512-8dv+1zKgTpfTkOy8XZLFyWrfxO0NV/bj/3EaQ+hBrBxGv2DwiroljPjU8NlCr+59nLnsVm9WYT7lXKwe4TC6bw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "node_modules/stackframe": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", - "dev": true - }, - "node_modules/stacktracey": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", - "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", - "dev": true, - "dependencies": { - "as-table": "^1.0.36", - "get-source": "^2.0.12" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", - "dev": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stringify-attributes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stringify-attributes/-/stringify-attributes-2.0.0.tgz", - "integrity": "sha512-wrVfRV6sCCB6wr3gx8OgKsp/9dSWWbKr8ifLfOxEcd/BBoa8d5pAf4BZb/jQW1JZnoZImjvUdxdo3ikYHZmYiw==", - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strtok3": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", - "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", - "dependencies": { - "@tokenizer/token": "^0.3.0", - "peek-readable": "^4.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/style-loader": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz", - "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==", - "dev": true, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/stylehacks": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.0.tgz", - "integrity": "sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/sucrase": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", - "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/superagent": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", - "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", - "dev": true, - "dependencies": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.4", - "debug": "^4.3.4", - "fast-safe-stringify": "^2.1.1", - "form-data": "^4.0.0", - "formidable": "^2.1.2", - "methods": "^1.1.2", - "mime": "2.6.0", - "qs": "^6.11.0", - "semver": "^7.3.8" - }, - "engines": { - "node": ">=6.4.0 <13 || >=14" - } - }, - "node_modules/superagent/node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/supertest": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.3.tgz", - "integrity": "sha512-EMCG6G8gDu5qEqRQ3JjjPs6+FYT1a7Hv5ApHvtSghmOFJYtsU5S+pSb6Y2EUeCEY3CmEL3mmQ8YWlPOzQomabA==", - "dev": true, - "dependencies": { - "methods": "^1.1.2", - "superagent": "^8.0.5" - }, - "engines": { - "node": ">=6.4.0" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svgo": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.0.2.tgz", - "integrity": "sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==", - "dev": true, - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^5.1.0", - "css-tree": "^2.2.1", - "csso": "^5.0.5", - "picocolors": "^1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/svgo" - } - }, - "node_modules/svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/svgo/node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/svgo/node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/svgo/node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/svgo/node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dev": true, - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/svgo/node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/swagger-parser": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/swagger-parser/-/swagger-parser-10.0.3.tgz", - "integrity": "sha512-nF7oMeL4KypldrQhac8RyHerJeGPD1p2xDh900GPvc+Nk7nWP6jX2FcC7WmkinMoAmoO774+AFXcWsW8gMWEIg==", - "dev": true, - "dependencies": { - "@apidevtools/swagger-parser": "10.0.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/swagger-parser/node_modules/@apidevtools/swagger-parser": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.0.3.tgz", - "integrity": "sha512-sNiLY51vZOmSPFZA5TF35KZ2HbgYklQnTSDnkghamzLb3EkNtcQnrBQEj5AOCxHpTtXpqMCRM1CrmV2rG6nw4g==", - "dev": true, - "dependencies": { - "@apidevtools/json-schema-ref-parser": "^9.0.6", - "@apidevtools/openapi-schemas": "^2.0.4", - "@apidevtools/swagger-methods": "^3.0.2", - "@jsdevtools/ono": "^7.1.3", - "call-me-maybe": "^1.0.1", - "z-schema": "^5.0.1" - }, - "peerDependencies": { - "openapi-types": ">=7" - } - }, - "node_modules/swagger-parser/node_modules/openapi-types": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", - "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", - "dev": true, - "peer": true - }, - "node_modules/swagger-schema-official": { - "version": "2.0.0-bab6bed", - "resolved": "https://registry.npmjs.org/swagger-schema-official/-/swagger-schema-official-2.0.0-bab6bed.tgz", - "integrity": "sha512-rCC0NWGKr/IJhtRuPq/t37qvZHI/mH4I4sxflVM+qgVe5Z2uOCivzWaVbuioJaB61kvm5UvB7b49E+oBY0M8jA==", - "dev": true - }, - "node_modules/sync-rpc": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", - "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", - "dev": true, - "dependencies": { - "get-port": "^3.1.0" - } - }, - "node_modules/sync-rpc/node_modules/get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/synckit": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", - "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", - "dev": true, - "dependencies": { - "@pkgr/utils": "^2.3.1", - "tslib": "^2.5.0" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, - "node_modules/tailwindcss": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", - "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", - "dev": true, - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.12", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.18.2", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tarn": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz", - "integrity": "sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.20.0.tgz", - "integrity": "sha512-e56ETryaQDyebBwJIWYB2TT6f2EZ0fL0sW/JRXNMN26zZdKi2u/E/5my5lG6jNxym6qsrVXfFRmOdV42zlAgLQ==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "node_modules/tildify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", - "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/time-span": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/time-span/-/time-span-4.0.0.tgz", - "integrity": "sha512-MyqZCTGLDZ77u4k+jqg4UlrzPTPZ49NDlaekU6uuFaJLzPIN1woaRXCbGeqOfxwc3Y37ZROGAJ614Rdv7Olt+g==", - "dev": true, - "dependencies": { - "convert-hrtime": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/titleize": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", - "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/tmp-cache": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tmp-cache/-/tmp-cache-1.1.0.tgz", - "integrity": "sha512-j040fkL/x+XAZQ9K3bKGEPwgYhOZNBQLa3NXEADUiuno9C+3N2JJA4bVPDREixp604G3/vTXWA3DIPpA9lu1RQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/tmp/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/token-types": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", - "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", - "dependencies": { - "@tokenizer/token": "^0.3.0", - "ieee754": "^1.2.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/traverse": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz", - "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/treemate": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/treemate/-/treemate-0.3.11.tgz", - "integrity": "sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==", - "dev": true - }, - "node_modules/truncatise": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/truncatise/-/truncatise-0.0.8.tgz", - "integrity": "sha512-cXzueh9pzBCsLzhToB4X4gZCb3KYkrsAcBAX97JnazE74HOl3cpBJYEV7nabHeG/6/WXCU5Yujlde/WPBUwnsg==" - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, - "node_modules/ts-loader": { - "version": "9.4.4", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.4.tgz", - "integrity": "sha512-MLukxDHBl8OJ5Dk3y69IsKVFRA/6MwzEqBgh+OXMPB/OD01KQuWPFd1WAQP8a5PeSCAxfnkhiuWqfmFJzJQt9w==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.0.0", - "micromatch": "^4.0.0", - "semver": "^7.3.4" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "typescript": "*", - "webpack": "^5.0.0" - } - }, - "node_modules/ts-loader/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ts-loader/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ts-loader/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ts-loader/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/ts-loader/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-loader/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/tsscmp": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", - "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", - "engines": { - "node": ">=0.6.x" - } - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/uid-safe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", - "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", - "dependencies": { - "random-bytes": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", - "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", - "dev": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/upper-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/upper-case-first": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/valid-url": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", - "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==", - "dev": true - }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", - "dev": true, - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/validator": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", - "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vdirs": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/vdirs/-/vdirs-0.1.8.tgz", - "integrity": "sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==", - "dev": true, - "dependencies": { - "evtd": "^0.2.2" - }, - "peerDependencies": { - "vue": "^3.0.11" - } - }, - "node_modules/vooks": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/vooks/-/vooks-0.2.12.tgz", - "integrity": "sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==", - "dev": true, - "dependencies": { - "evtd": "^0.2.2" - }, - "peerDependencies": { - "vue": "^3.0.0" - } - }, - "node_modules/vue": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", - "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", - "dependencies": { - "@vue/compiler-dom": "3.3.4", - "@vue/compiler-sfc": "3.3.4", - "@vue/runtime-dom": "3.3.4", - "@vue/server-renderer": "3.3.4", - "@vue/shared": "3.3.4" - } - }, - "node_modules/vue-facing-decorator": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vue-facing-decorator/-/vue-facing-decorator-3.0.2.tgz", - "integrity": "sha512-hwOWIblWLBovaCHkNvqp2XTmaVmY8ZE7JcnkwlH9GZz0ZETZyN/O3kmZSmNVnOcRVG/ZOFhVdiBivozhaZxInA==", - "dev": true, - "peerDependencies": { - "vue": "^3.0.0" - } - }, - "node_modules/vue-loader": { - "version": "17.2.2", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.2.2.tgz", - "integrity": "sha512-aqNvKJvnz2A/6VWeJZodAo8XLoAlVwBv+2Z6dama+LHsAF+P/xijQ+OfWrxIs0wcGSJduvdzvTuATzXbNKkpiw==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "hash-sum": "^2.0.0", - "watchpack": "^2.4.0" - }, - "peerDependencies": { - "webpack": "^4.1.0 || ^5.0.0-0" - }, - "peerDependenciesMeta": { - "@vue/compiler-sfc": { - "optional": true - }, - "vue": { - "optional": true - } - } - }, - "node_modules/vue-loader/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/vue-loader/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/vue-loader/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/vue-loader/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/vue-loader/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/vue-loader/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/vuedraggable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-4.1.0.tgz", - "integrity": "sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==", - "dependencies": { - "sortablejs": "1.14.0" - }, - "peerDependencies": { - "vue": "^3.0.1" - } - }, - "node_modules/vueuc": { - "version": "0.4.51", - "resolved": "https://registry.npmjs.org/vueuc/-/vueuc-0.4.51.tgz", - "integrity": "sha512-pLiMChM4f+W8czlIClGvGBYo656lc2Y0/mXFSCydcSmnCR1izlKPGMgiYBGjbY9FDkFG8a2HEVz7t0DNzBWbDw==", - "dev": true, - "dependencies": { - "@css-render/vue3-ssr": "^0.15.10", - "@juggle/resize-observer": "^3.3.1", - "css-render": "^0.15.10", - "evtd": "^0.2.4", - "seemly": "^0.3.6", - "vdirs": "^0.1.4", - "vooks": "^0.2.4" - }, - "peerDependencies": { - "vue": "^3.0.11" - } - }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dev": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webpack": { - "version": "5.88.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.2.tgz", - "integrity": "sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==", - "dev": true, - "peer": true, - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@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.9.0", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-cli": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", - "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", - "dev": true, - "peer": true, - "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^2.1.1", - "@webpack-cli/info": "^2.0.2", - "@webpack-cli/serve": "^2.0.5", - "colorette": "^2.0.14", - "commander": "^10.0.1", - "cross-spawn": "^7.0.3", - "envinfo": "^7.7.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^3.1.1", - "rechoir": "^0.8.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "5.x.x" - }, - "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/webpack-cli/node_modules/interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-cli/node_modules/webpack-merge": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz", - "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==", - "dev": true, - "peer": true, - "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", - "dev": true, - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", - "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", - "dev": true, - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-server/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-server/node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/webpack-dev-server/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", - "dev": true, - "dependencies": { - "lodash": "^4.17.15" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/es-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz", - "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==", - "dev": true, - "peer": true - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "peer": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true, - "peer": true - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/ws": { - "version": "8.14.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xmlbuilder2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder2/-/xmlbuilder2-3.1.1.tgz", - "integrity": "sha512-WCSfbfZnQDdLQLiMdGUQpMxxckeQ4oZNMNhLVkcekTu7xhD4tuUDyAPoY8CwXvBYE6LwBHd6QW2WZXlOWr1vCw==", - "dependencies": { - "@oozcitak/dom": "1.15.10", - "@oozcitak/infra": "1.0.8", - "@oozcitak/util": "8.3.8", - "js-yaml": "3.14.1" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/xslt3": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/xslt3/-/xslt3-2.5.0.tgz", - "integrity": "sha512-ZtdcA7di6dATmN21t3yX9tAbpuXPda2gjBCwCBSdTr5BFVbDFtIeaOhi50onwz785Wowr04m0qdb7wCL80y0fQ==", - "dev": true, - "dependencies": { - "axios": "^0.24.0", - "saxon-js": "^2.5.0" - }, - "bin": { - "xslt3": "xslt3.js" - } - }, - "node_modules/xslt3/node_modules/axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.14.4" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yaml": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz", - "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/youch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/youch/-/youch-3.3.2.tgz", - "integrity": "sha512-9cwz/z7abtcHOIuH45nzmUFCZbyJA1nLqlirKvyNRx4wDMhqsBaifAJzBej7L4fsVPjFxYq3NK3GAcfvZsydFw==", - "dev": true, - "dependencies": { - "cookie": "^0.5.0", - "mustache": "^4.2.0", - "stacktracey": "^2.1.8" - } - }, - "node_modules/youch-terminal": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/youch-terminal/-/youch-terminal-2.2.3.tgz", - "integrity": "sha512-/PE77ZwG072tXBvF47S9RL9/G80u86icZ5QwyjblyM67L4n/T5qQeM3Xrecbu8kkDDr/9T/PTj/X+6G/OSRQug==", - "dev": true, - "dependencies": { - "kleur": "^4.1.5", - "string-width": "^4.2.3", - "wordwrap": "^1.0.0" - } - }, - "node_modules/z-schema": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-5.0.5.tgz", - "integrity": "sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==", - "dev": true, - "dependencies": { - "lodash.get": "^4.4.2", - "lodash.isequal": "^4.5.0", - "validator": "^13.7.0" - }, - "bin": { - "z-schema": "bin/z-schema" - }, - "engines": { - "node": ">=8.0.0" - }, - "optionalDependencies": { - "commander": "^9.4.1" - } - }, - "node_modules/z-schema/node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true, - "optional": true, - "engines": { - "node": "^12.20.0 || >=14" - } + "name": "myapp", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "myapp", + "version": "1.0.0", + "dependencies": { + "@adonisjs/auth": "^9.2.4", + "@adonisjs/bodyparser": "^10.0.1", + "@adonisjs/core": "^6.17.0", + "@adonisjs/cors": "^2.2.1", + "@adonisjs/drive": "^3.2.0", + "@adonisjs/inertia": "^2.1.3", + "@adonisjs/lucid": "^21.5.1", + "@adonisjs/mail": "^9.2.2", + "@adonisjs/redis": "^9.1.0", + "@adonisjs/session": "^7.5.0", + "@adonisjs/shield": "^8.1.1", + "@adonisjs/static": "^1.1.1", + "@adonisjs/vite": "^4.0.0", + "@eidellev/adonis-stardust": "^3.0.0", + "@fontsource/archivo-black": "^5.0.1", + "@fontsource/inter": "^5.0.1", + "@inertiajs/inertia": "^0.11.1", + "@inertiajs/vue3": "^2.0.3", + "@opensearch-project/opensearch": "^3.2.0", + "@phc/format": "^1.0.0", + "@poppinss/manager": "^5.0.2", + "@vinejs/vine": "^3.0.0", + "argon2": "^0.43.0", + "axios": "^1.7.9", + "bcrypt": "^5.1.1", + "bcryptjs": "^2.4.3", + "clamscan": "^2.1.2", + "dayjs": "^1.11.7", + "deep-email-validator": "^0.1.21", + "edge.js": "^6.0.1", + "escape-html": "^1.0.3", + "focus-trap": "^7.5.4", + "fs-extra": "^11.2.0", + "http-status-codes": "^2.2.0", + "leaflet": "^1.9.3", + "luxon": "^3.2.1", + "mime": "^4.0.4", + "node-2fa": "^2.0.3", + "node-exceptions": "^4.0.1", + "notiwind": "^2.0.0", + "pg": "^8.9.0", + "qrcode": "^1.5.3", + "redis": "^5.0.0", + "reflect-metadata": "^0.2.1", + "saxon-js": "^2.5.0", + "toastify-js": "^1.12.0", + "vuedraggable": "^4.1.0", + "xmlbuilder2": "^3.1.1" + }, + "devDependencies": { + "@adonisjs/assembler": "^7.1.1", + "@adonisjs/tsconfig": "^1.4.0", + "@headlessui/vue": "^1.7.23", + "@japa/assert": "^4.0.1", + "@japa/plugin-adonisjs": "^4.0.0", + "@japa/runner": "^4.2.0", + "@mdi/js": "^7.1.96", + "@poppinss/utils": "^6.7.2", + "@swc/wasm": "^1.10.14", + "@tailwindcss/forms": "^0.5.2", + "@types/bcryptjs": "^2.4.6", + "@types/clamscan": "^2.0.4", + "@types/escape-html": "^1.0.4", + "@types/fs-extra": "^11.0.4", + "@types/leaflet": "^1.9.16", + "@types/luxon": "^3.4.2", + "@types/node": "^22.10.2", + "@types/proxy-addr": "^2.0.0", + "@types/qrcode": "^1.5.5", + "@types/source-map-support": "^0.5.6", + "@types/sprintf-js": "^1.1.4", + "@types/supertest": "^6.0.2", + "@vitejs/plugin-vue": "^5.2.1", + "autoprefixer": "^10.4.13", + "babel-preset-typescript-vue3": "^2.0.17", + "chart.js": "^4.2.0", + "dotenv-webpack": "^8.0.1", + "eslint": "^8.57.1", + "eslint-config-prettier": "^10.0.1", + "eslint-plugin-adonis": "^2.1.1", + "eslint-plugin-prettier": "^5.0.0-alpha.2", + "hot-hook": "^0.4.0", + "numeral": "^2.0.6", + "pinia": "^3.0.2", + "pino-pretty": "^13.0.0", + "postcss-loader": "^8.1.1", + "prettier": "^3.4.2", + "supertest": "^6.3.3", + "tailwindcss": "^3.4.17", + "ts-loader": "^9.4.2", + "ts-node-maintained": "^10.9.5", + "typescript": "~5.7", + "vite": "^6.0.11", + "vue": "^3.4.26", + "vue-facing-decorator": "^3.0.0", + "vue-loader": "^17.0.1", + "webpack-dev-server": "^5.1.0", + "xslt3": "^2.5.0" + } + }, + "node_modules/@adonisjs/ace": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@adonisjs/ace/-/ace-13.3.0.tgz", + "integrity": "sha512-68dveDFd766p69cBvK/MtOrOP0+YKYLeHspa9KLEWcWk9suPf3pbGkHQ2pwDnvLJxBPHk4932KbbSSzzpGNZGw==", + "license": "MIT", + "dependencies": { + "@poppinss/cliui": "^6.4.1", + "@poppinss/hooks": "^7.2.4", + "@poppinss/macroable": "^1.0.3", + "@poppinss/prompts": "^3.1.3", + "@poppinss/utils": "^6.8.3", + "fastest-levenshtein": "^1.0.16", + "jsonschema": "^1.4.1", + "string-width": "^7.2.0", + "yargs-parser": "^21.1.1", + "youch": "^3.3.4", + "youch-terminal": "^2.2.3" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@adonisjs/application": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/@adonisjs/application/-/application-8.4.1.tgz", + "integrity": "sha512-2vwO/8DoKJ9AR4Vvllz08RcomBoETc3FMf+q+ri1BVVjc76tLGV3KcYZp8+uKOuEreiK6poQ7NwJrR1P5ANA/w==", + "license": "MIT", + "dependencies": { + "@poppinss/hooks": "^7.2.5", + "@poppinss/macroable": "^1.0.4", + "@poppinss/utils": "^6.9.3", + "glob-parent": "^6.0.2", + "tempura": "^0.4.1" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/config": "^5.0.0", + "@adonisjs/fold": "^10.0.0" + } + }, + "node_modules/@adonisjs/assembler": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/@adonisjs/assembler/-/assembler-7.8.2.tgz", + "integrity": "sha512-csLdMW58cwuRjdPEDE0dqwHZCT5snCh+1sQ19HPnQ/BLKPPAvQdDRdw0atoC8LVmouB8ghXVHp3SxnVxlvXYWQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@adonisjs/env": "^6.1.0", + "@antfu/install-pkg": "^0.4.1", + "@poppinss/chokidar-ts": "^4.1.4", + "@poppinss/cliui": "^6.4.1", + "@poppinss/hooks": "^7.2.3", + "@poppinss/utils": "^6.7.3", + "cpy": "^11.1.0", + "dedent": "^1.5.3", + "execa": "^9.3.1", + "fast-glob": "^3.3.2", + "get-port": "^7.1.0", + "junk": "^4.0.1", + "picomatch": "^4.0.2", + "pretty-hrtime": "^1.0.3", + "slash": "^5.1.0", + "ts-morph": "^23.0.0" + }, + "engines": { + "node": ">=20.6.0" + }, + "peerDependencies": { + "typescript": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/@adonisjs/auth": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/@adonisjs/auth/-/auth-9.4.0.tgz", + "integrity": "sha512-dzvnJRKY+RcKUXCRT6ebnlGV0wAfejTSGqS0XbgjB97r6Pww14MhsY89EBr1nSydQzvjdbtIR3EDGbU97BVmbQ==", + "license": "MIT", + "dependencies": { + "@adonisjs/presets": "^2.6.4", + "@poppinss/utils": "^6.9.2", + "basic-auth": "^2.0.1" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/core": "^6.11.0", + "@adonisjs/lucid": "^20.0.0 || ^21.0.1", + "@adonisjs/session": "^7.4.1", + "@japa/api-client": "^2.0.3 || ^3.0.0", + "@japa/browser-client": "^2.0.3", + "@japa/plugin-adonisjs": "^3.0.1 || ^4.0.0" + }, + "peerDependenciesMeta": { + "@adonisjs/lucid": { + "optional": true + }, + "@adonisjs/session": { + "optional": true + }, + "@japa/api-client": { + "optional": true + }, + "@japa/browser-client": { + "optional": true + }, + "@japa/plugin-adonisjs": { + "optional": true } + } + }, + "node_modules/@adonisjs/bodyparser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@adonisjs/bodyparser/-/bodyparser-10.1.0.tgz", + "integrity": "sha512-sQVi1WASKSONr6DDG0YGf4rcd7Hfm9D5fdAqGcH1NWUfVP+2+6ogg0Z++X0a4wRbS7bU3TthTDmMX2n+839Cww==", + "license": "MIT", + "dependencies": { + "@paralleldrive/cuid2": "^2.2.2", + "@poppinss/macroable": "^1.0.4", + "@poppinss/multiparty": "^2.0.1", + "@poppinss/utils": "^6.9.3", + "@types/qs": "^6.9.18", + "bytes": "^3.1.2", + "file-type": "^20.5.0", + "inflation": "^2.1.0", + "media-typer": "^1.1.0", + "qs": "^6.14.0", + "raw-body": "^3.0.0" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/http-server": "^7.4.0" + } + }, + "node_modules/@adonisjs/config": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@adonisjs/config/-/config-5.0.3.tgz", + "integrity": "sha512-dO7gkYxZsrsnR8n7d5KUpyi+Q5c6BnV2rmFDqEmEjz5AkOZLLzJJJbeHgMb+M27le7ifEUoa8MRu6RED8NMsJg==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.9.4" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@adonisjs/core": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/@adonisjs/core/-/core-6.18.0.tgz", + "integrity": "sha512-Uuj7kzlMPiS3MVOCHfiXLVeFXUqrjGjF43LNLJb4Q2hBY/q0T2kUym2kVO2gazkLWj8YQKLdOA4ij7t9rDR4OA==", + "license": "MIT", + "dependencies": { + "@adonisjs/ace": "^13.3.0", + "@adonisjs/application": "^8.4.1", + "@adonisjs/bodyparser": "^10.1.0", + "@adonisjs/config": "^5.0.2", + "@adonisjs/encryption": "^6.0.2", + "@adonisjs/env": "^6.2.0", + "@adonisjs/events": "^9.0.2", + "@adonisjs/fold": "^10.1.3", + "@adonisjs/hash": "^9.1.1", + "@adonisjs/health": "^2.0.0", + "@adonisjs/http-server": "^7.6.1", + "@adonisjs/logger": "^6.0.6", + "@adonisjs/repl": "^4.1.0", + "@antfu/install-pkg": "^1.1.0", + "@paralleldrive/cuid2": "^2.2.2", + "@poppinss/colors": "^4.1.4", + "@poppinss/dumper": "^0.6.3", + "@poppinss/macroable": "^1.0.4", + "@poppinss/utils": "^6.9.3", + "@sindresorhus/is": "^7.0.1", + "@types/he": "^1.2.3", + "error-stack-parser-es": "^1.0.5", + "he": "^1.2.0", + "parse-imports": "^2.2.1", + "pretty-hrtime": "^1.0.3", + "string-width": "^7.2.0", + "youch": "^3.3.4", + "youch-terminal": "^2.2.3" + }, + "bin": { + "adonis-kit": "build/toolkit/main.js" + }, + "engines": { + "node": ">=20.6.0" + }, + "peerDependencies": { + "@adonisjs/assembler": "^7.8.0", + "@vinejs/vine": "^2.1.0 || ^3.0.0", + "argon2": "^0.31.2 || ^0.41.0 || ^0.43.0", + "bcrypt": "^5.1.1 || ^6.0.0", + "edge.js": "^6.2.0" + }, + "peerDependenciesMeta": { + "@adonisjs/assembler": { + "optional": true + }, + "@vinejs/vine": { + "optional": true + }, + "argon2": { + "optional": true + }, + "bcrypt": { + "optional": true + }, + "edge.js": { + "optional": true + } + } + }, + "node_modules/@adonisjs/core/node_modules/@antfu/install-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz", + "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==", + "license": "MIT", + "dependencies": { + "package-manager-detector": "^1.3.0", + "tinyexec": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@adonisjs/core/node_modules/package-manager-detector": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.3.0.tgz", + "integrity": "sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==", + "license": "MIT" + }, + "node_modules/@adonisjs/core/node_modules/tinyexec": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.1.tgz", + "integrity": "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==", + "license": "MIT" + }, + "node_modules/@adonisjs/cors": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@adonisjs/cors/-/cors-2.2.1.tgz", + "integrity": "sha512-qnrSG8ylpgTeZBOYEN3yXxY0PBUEg1KGDhgn9VKVFGxLKT+o9GGVOSZxUK3wG341B1zB9w5vuZN1z4M0Jitb6g==", + "license": "MIT", + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/core": "^6.2.0" + } + }, + "node_modules/@adonisjs/drive": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@adonisjs/drive/-/drive-3.4.1.tgz", + "integrity": "sha512-oDYY4wJ7wDMlO4E+dZPYBu+T3Av7Mj+JL8+J33qgyxtiJylnZgoZDuRfFjZZix/bFNNuWX2sLwTMnyiDcK+YsA==", + "license": "MIT", + "dependencies": { + "flydrive": "^1.1.0" + }, + "engines": { + "node": ">=20.6.0" + }, + "peerDependencies": { + "@adonisjs/core": "^6.2.0", + "@aws-sdk/client-s3": "^3.577.0", + "@aws-sdk/s3-request-presigner": "^3.577.0", + "@google-cloud/storage": "^7.10.2" + }, + "peerDependenciesMeta": { + "@aws-sdk/client-s3": { + "optional": true + }, + "@aws-sdk/s3-request-presigner": { + "optional": true + }, + "@google-cloud/storage": { + "optional": true + } + } + }, + "node_modules/@adonisjs/encryption": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@adonisjs/encryption/-/encryption-6.0.2.tgz", + "integrity": "sha512-37XqVPsZi6zXMbC0Me1/qlcTP0uE+KAtYOFx7D7Tvtz377NL/6gqxqgpW/BopgOSD+CVDXjzO/Wx3M2UrbkJRQ==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.7.3" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@adonisjs/env": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@adonisjs/env/-/env-6.2.0.tgz", + "integrity": "sha512-DZ7zQ4sBhzWftjU/SxJ7BstimrEiByCvmtAcMNDpDjOtJnR50172PRz1X7KjM3EqjCVrB19izzRVx/rmpCRPOA==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.9.2", + "@poppinss/validator-lite": "^2.1.0", + "dotenv": "^16.4.7", + "split-lines": "^3.0.0" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@adonisjs/events": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@adonisjs/events/-/events-9.0.2.tgz", + "integrity": "sha512-qZn2e9V9C8tF4MNqEWv5JGxMG7gcHSJM8RncGpjuJ4cwFwd2jF4xrN6wkCprTVwoyZSxNS0Cp9NkAonySjG5vg==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.7.3", + "@sindresorhus/is": "^6.2.0", + "emittery": "^1.0.3" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/application": "^8.0.2", + "@adonisjs/fold": "^10.0.1" + } + }, + "node_modules/@adonisjs/events/node_modules/@sindresorhus/is": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-6.3.1.tgz", + "integrity": "sha512-FX4MfcifwJyFOI2lPoX7PQxCqx8BG1HCho7WdiXwpEQx1Ycij0JxkfYtGK7yqNScrZGSlt6RE6sw8QYoH7eKnQ==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@adonisjs/fold": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/@adonisjs/fold/-/fold-10.1.3.tgz", + "integrity": "sha512-wzeuWMXx9SoJkNO4ycoyfxzoSyyMy3umVxb9cbzeWR/sYNVgi50l+vgJc634+lxpCE0RFTpxCv1M235EWDF9SQ==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.8.3" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@adonisjs/hash": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@adonisjs/hash/-/hash-9.1.1.tgz", + "integrity": "sha512-ZkRguwjAp4skKvKDdRAfdJ2oqQ0N7p9l3sioyXO1E8o0WcsyDgEpsTQtuVNoIdMiw4sn4gJlmL3nyF4BcK1ZDQ==", + "license": "MIT", + "dependencies": { + "@phc/format": "^1.0.0", + "@poppinss/utils": "^6.9.3" + }, + "engines": { + "node": ">=20.6.0" + }, + "peerDependencies": { + "argon2": "^0.31.2 || ^0.41.0 || ^0.43.0", + "bcrypt": "^5.1.1 || ^6.0.0" + }, + "peerDependenciesMeta": { + "argon2": { + "optional": true + }, + "bcrypt": { + "optional": true + } + } + }, + "node_modules/@adonisjs/health": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@adonisjs/health/-/health-2.0.0.tgz", + "integrity": "sha512-dEAABiAJew1imzwi+OvV/SAnjkMp8TbD5ZIzx1dMRnPynJAlRf37//bHLwZ5Cw44ke5kPzZ/l1n9cx/VeBCicA==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.7.3", + "check-disk-space": "^3.4.0" + }, + "engines": { + "node": ">=20.6.0" + } + }, + "node_modules/@adonisjs/http-server": { + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@adonisjs/http-server/-/http-server-7.6.1.tgz", + "integrity": "sha512-2KHen5rcer6pDvJrDOhr5hJ9cSxSOOrdqmm9o9HkW/BAkMh42ymTIvCtaMmz6amrCSg0cdMO3ImmD8VBaMmfXA==", + "license": "MIT", + "dependencies": { + "@paralleldrive/cuid2": "^2.2.2", + "@poppinss/macroable": "^1.0.4", + "@poppinss/matchit": "^3.1.2", + "@poppinss/middleware": "^3.2.5", + "@poppinss/utils": "^6.9.3", + "@sindresorhus/is": "^7.0.1", + "accepts": "^1.3.8", + "content-disposition": "^0.5.4", + "cookie": "^1.0.2", + "destroy": "^1.2.0", + "encodeurl": "^2.0.0", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "mime-types": "^3.0.1", + "on-finished": "^2.4.1", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "tmp-cache": "^1.1.0", + "type-is": "^2.0.1", + "vary": "^1.1.2", + "youch": "^3.3.4" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/application": "^8.0.2", + "@adonisjs/encryption": "^6.0.0", + "@adonisjs/events": "^9.0.0", + "@adonisjs/fold": "^10.0.1", + "@adonisjs/logger": "^6.0.1" + } + }, + "node_modules/@adonisjs/inertia": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@adonisjs/inertia/-/inertia-2.1.3.tgz", + "integrity": "sha512-ah05RXq5xb5FhqvLYQd1CU0UCrhaxC2U+xAftw1qPMXzx0jzX7DBjEK6kr5CEfM8PLOdt8gnOVmbDBsVyNSzbg==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.8.3", + "@tuyau/utils": "^0.0.6", + "crc-32": "^1.2.2", + "edge-error": "^4.0.1", + "html-entities": "^2.5.2", + "locate-path": "^7.2.0", + "qs": "^6.13.1" + }, + "engines": { + "node": ">=20.6.0" + }, + "peerDependencies": { + "@adonisjs/core": "^6.9.1", + "@adonisjs/session": "^7.4.0", + "@adonisjs/vite": "^4.0.0", + "@japa/api-client": "^2.0.0", + "edge.js": "^6.0.0" + }, + "peerDependenciesMeta": { + "@japa/api-client": { + "optional": true + } + } + }, + "node_modules/@adonisjs/logger": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/@adonisjs/logger/-/logger-6.0.6.tgz", + "integrity": "sha512-r5mLmmklSezzu3cu9QaXle2/gPNrgKpiIo+utYlwV3ITsW5JeIX/xcwwMTNM/9f1zU+SwOj5NccPTEFD3feRaw==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.9.2", + "abstract-logging": "^2.0.1", + "pino": "^9.6.0" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@adonisjs/lucid": { + "version": "21.6.1", + "resolved": "https://registry.npmjs.org/@adonisjs/lucid/-/lucid-21.6.1.tgz", + "integrity": "sha512-0TLCcPm9GHShJlsDAF5SHilafnvTxW25y5nD3bGJBSMEaNfGXcGRBbnyWoeNs7DsnqMCZ6ociT+0XMcKJWzQrQ==", + "license": "MIT", + "dependencies": { + "@adonisjs/presets": "^2.6.4", + "@faker-js/faker": "^9.6.0", + "@poppinss/hooks": "^7.2.5", + "@poppinss/macroable": "^1.0.4", + "@poppinss/utils": "^6.9.2", + "fast-deep-equal": "^3.1.3", + "igniculus": "^1.5.0", + "kleur": "^4.1.5", + "knex": "^3.1.0", + "knex-dynamic-connection": "^3.2.0", + "pretty-hrtime": "^1.0.3", + "qs": "^6.14.0", + "slash": "^5.1.0", + "tarn": "^3.0.2" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/assembler": "^7.7.0", + "@adonisjs/core": "^6.10.1", + "@vinejs/vine": "^2.0.0 || ^3.0.0", + "luxon": "^3.4.4" + }, + "peerDependenciesMeta": { + "@adonisjs/assembler": { + "optional": true + }, + "@vinejs/vine": { + "optional": true + }, + "luxon": { + "optional": true + } + } + }, + "node_modules/@adonisjs/mail": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@adonisjs/mail/-/mail-9.2.2.tgz", + "integrity": "sha512-gf/r10SjyoX9L37QiEZG+ueh8fp4XA57yH+NKiHpqWTNMdUl3d+f3HlNG7xlFmESgahgPR+iDusZ2zZewAeJQw==", + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.2", + "@poppinss/macroable": "^1.0.1", + "@poppinss/utils": "^6.7.2", + "@types/nodemailer": "^6.4.14", + "fastq": "^1.17.1", + "formdata-node": "^6.0.3", + "got": "^14.2.1", + "ical-generator": "^7.0.0", + "nodemailer": "^6.9.13" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/core": "^6.2.0", + "@aws-sdk/client-ses": "^3.485.0", + "edge.js": "^6.0.1" + }, + "peerDependenciesMeta": { + "@aws-sdk/client-ses": { + "optional": true + } + } + }, + "node_modules/@adonisjs/presets": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@adonisjs/presets/-/presets-2.6.4.tgz", + "integrity": "sha512-WvzWouziX88GMoGBLDobGRaSktWfz+fRqADJyhJd7+l0M2VMm5NF0LvAXbV8lMBLtBCicOxk973bJ9Kmyfy3qQ==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.7.3" + }, + "peerDependencies": { + "@adonisjs/assembler": "^7.8.2", + "@adonisjs/core": "^6.13.0" + }, + "peerDependenciesMeta": { + "@adonisjs/assembler": { + "optional": true + } + } + }, + "node_modules/@adonisjs/redis": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@adonisjs/redis/-/redis-9.2.0.tgz", + "integrity": "sha512-DUI9NrHDLZ2ISNjMlqWbKJT99ZYj1ZmvhNFTfhVs9lc7K2KJmNKZfK8Y85a8eN7q+ZYMBYSu1uRemxGs6xRaYw==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.9.2", + "emittery": "^1.1.0", + "ioredis": "^5.4.2" + }, + "engines": { + "node": ">=20.6.0" + }, + "peerDependencies": { + "@adonisjs/core": "^6.2.0" + } + }, + "node_modules/@adonisjs/repl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@adonisjs/repl/-/repl-4.1.0.tgz", + "integrity": "sha512-7Ml87uoufDQmpjRZYbJeRTk0/WcD4DllJ96L1r2IWF/jZIsryiVN5o+7Xd7fHlRzd8iapAbs32Tq4a6fVI6UKA==", + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.4", + "string-width": "^7.2.0" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@adonisjs/session": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/@adonisjs/session/-/session-7.5.1.tgz", + "integrity": "sha512-b1E0W/1nnJfAq3Gv8yPywgsxJ7uzzOBJxxulonXI4t1eSdvJzZGNrFScfVLOcjTwlxwrEFA847tULIQxgR4Spw==", + "license": "MIT", + "dependencies": { + "@poppinss/macroable": "^1.0.4", + "@poppinss/utils": "^6.9.2" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/core": "^6.6.0", + "@adonisjs/redis": "^8.0.1 || ^9.0.0", + "@aws-sdk/client-dynamodb": "^3.658.0", + "@aws-sdk/util-dynamodb": "^3.658.0", + "@japa/api-client": "^2.0.3 || ^3.0.0", + "@japa/browser-client": "^2.0.3", + "edge.js": "^6.0.2" + }, + "peerDependenciesMeta": { + "@adonisjs/redis": { + "optional": true + }, + "@aws-sdk/client-dynamodb": { + "optional": true + }, + "@aws-sdk/util-dynamodb": { + "optional": true + }, + "@japa/api-client": { + "optional": true + }, + "@japa/browser-client": { + "optional": true + }, + "edge.js": { + "optional": true + } + } + }, + "node_modules/@adonisjs/shield": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@adonisjs/shield/-/shield-8.2.0.tgz", + "integrity": "sha512-RddRbs92y87GGFUgDSWD/Pg7qYHh8+MctUphFZwtbTblvDckrjZxuYyp+vmVATPuvDvK7sOlatuZHT4HQSz9zQ==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.9.2", + "csrf": "^3.1.0", + "helmet-csp": "^3.4.0" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/core": "^6.2.0", + "@adonisjs/i18n": "^2.0.0", + "@adonisjs/session": "^7.0.0", + "@japa/api-client": "^2.0.2 || ^3.0.0", + "edge.js": "^6.0.1" + }, + "peerDependenciesMeta": { + "@adonisjs/i18n": { + "optional": true + }, + "@japa/api-client": { + "optional": true + }, + "edge.js": { + "optional": true + } + } + }, + "node_modules/@adonisjs/static": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@adonisjs/static/-/static-1.1.1.tgz", + "integrity": "sha512-Ukd2WB21/eajKLNQbaQ3Chxdqn7HyeHSO41J29oWc8DQFEhxxQIUGq0C1Kv5cJFY7PvZm9RAKMBi/2JC58LFWQ==", + "license": "MIT", + "dependencies": { + "serve-static": "^1.15.0" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/core": "^6.2.0" + } + }, + "node_modules/@adonisjs/tsconfig": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@adonisjs/tsconfig/-/tsconfig-1.4.1.tgz", + "integrity": "sha512-b7bHdnTaDRGfec4XVtpwsSEukZ549MgqOShScCd1b4xkMK8z1q/jb0Xs4iUL86oIDhty2y7k5vvA6aoQKPAvXQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@adonisjs/vite": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@adonisjs/vite/-/vite-4.0.0.tgz", + "integrity": "sha512-5kdE0qLIm2dj+XO0HiCohmh3tfZ+X468wkNXErQ15VS0fkDjZWns2VuiYpoToTKd4tdX/oGlpnpd8aIwAGB4ow==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.8.3", + "@vavite/multibuild": "^5.1.0", + "edge-error": "^4.0.1", + "vite-plugin-restart": "^0.4.2" + }, + "engines": { + "node": ">=20.6.0" + }, + "peerDependencies": { + "@adonisjs/core": "^6.3.0", + "@adonisjs/shield": "^8.0.0", + "edge.js": "^6.0.1", + "vite": "^6.0.0" + }, + "peerDependenciesMeta": { + "@adonisjs/shield": { + "optional": true + }, + "edge.js": { + "optional": true + } + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@antfu/install-pkg": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.4.1.tgz", + "integrity": "sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "package-manager-detector": "^0.2.0", + "tinyexec": "^0.3.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@arr/every": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@arr/every/-/every-1.0.1.tgz", + "integrity": "sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", + "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", + "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.4", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.27.4", + "@babel/types": "^7.27.3", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", + "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.5", + "@babel/types": "^7.27.3", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", + "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.27.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.4.tgz", + "integrity": "sha512-Y+bO6U+I7ZKaM5G5rDUZiYfUvQPUibYmAFe7EnKdnKBbVXDZxvp+MWOH5gYciY0EPk4EScsuFMQBbEfpdRKSCQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", + "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz", + "integrity": "sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz", + "integrity": "sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", + "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.3.tgz", + "integrity": "sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@eidellev/adonis-stardust": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@eidellev/adonis-stardust/-/adonis-stardust-3.0.0.tgz", + "integrity": "sha512-JoVsFFSo8UeYbnkJq40Vu5+QiJdTa04aRWOCyYYXXq1GAvbf0aCmk4bQqlCPSU+qwiZ+co3y8i/49RYCtVJ3xg==", + "license": "MIT", + "dependencies": { + "@poppinss/matchit": "^3.1.2" + }, + "peerDependencies": { + "@adonisjs/core": ">=5" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz", + "integrity": "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz", + "integrity": "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz", + "integrity": "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz", + "integrity": "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz", + "integrity": "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz", + "integrity": "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz", + "integrity": "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz", + "integrity": "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz", + "integrity": "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz", + "integrity": "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz", + "integrity": "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz", + "integrity": "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz", + "integrity": "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz", + "integrity": "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz", + "integrity": "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz", + "integrity": "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz", + "integrity": "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz", + "integrity": "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz", + "integrity": "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz", + "integrity": "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz", + "integrity": "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz", + "integrity": "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz", + "integrity": "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz", + "integrity": "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz", + "integrity": "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@faker-js/faker": { + "version": "9.8.0", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-9.8.0.tgz", + "integrity": "sha512-U9wpuSrJC93jZBxx/Qq2wPjCuYISBueyVUGK7qqdmj7r/nxaxwW8AQDCLeRO7wZnjj94sh3p246cAYjUKuqgfg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/fakerjs" + } + ], + "license": "MIT", + "engines": { + "node": ">=18.0.0", + "npm": ">=9.0.0" + } + }, + "node_modules/@fontsource/archivo-black": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/@fontsource/archivo-black/-/archivo-black-5.2.5.tgz", + "integrity": "sha512-tdBRFgA0CgxVqj3mBM96aiXRBoOp51X3IW2e8/t59AVr0NwiBcB+c3C+p5dd7Np/UT/vqdmjb/gK/HaFpulhIA==", + "license": "OFL-1.1", + "funding": { + "url": "https://github.com/sponsors/ayuhito" + } + }, + "node_modules/@fontsource/inter": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-5.2.5.tgz", + "integrity": "sha512-kbsPKj0S4p44JdYRFiW78Td8Ge2sBVxi/PIBwmih+RpSXUdvS9nbs1HIiuUSPtRMi14CqLEZ/fbk7dj7vni1Sg==", + "license": "OFL-1.1", + "funding": { + "url": "https://github.com/sponsors/ayuhito" + } + }, + "node_modules/@headlessui/vue": { + "version": "1.7.23", + "resolved": "https://registry.npmjs.org/@headlessui/vue/-/vue-1.7.23.tgz", + "integrity": "sha512-JzdCNqurrtuu0YW6QaDtR2PIYCKPUWq28csDyMvN4zmGccmE7lz40Is6hc3LA4HFeCI7sekZ/PQMTNmn9I/4Wg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tanstack/vue-virtual": "^3.0.0-beta.60" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@inertiajs/core": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@inertiajs/core/-/core-2.0.11.tgz", + "integrity": "sha512-DSFdkPLvLwHC0hePc/692WK9ItRzddVZ+OS5ZO1B2+6TmZnZH3kTQZGEhaYAtkAB+DHKxOm1oGHPKQrsAZ54qQ==", + "license": "MIT", + "dependencies": { + "axios": "^1.8.2", + "es-toolkit": "^1.34.1", + "qs": "^6.9.0" + } + }, + "node_modules/@inertiajs/inertia": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@inertiajs/inertia/-/inertia-0.11.1.tgz", + "integrity": "sha512-btmV53c54oW4Z9XF0YyTdIUnM7ue0ONy3/KJOz6J1C5CYIwimiKfDMpz8ZbGJuxS+SPdOlNsqj2ZhlHslpJRZg==", + "license": "MIT", + "dependencies": { + "axios": "^0.21.1", + "deepmerge": "^4.0.0", + "qs": "^6.9.0" + } + }, + "node_modules/@inertiajs/inertia/node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/@inertiajs/vue3": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@inertiajs/vue3/-/vue3-2.0.11.tgz", + "integrity": "sha512-dlx62L7heOzQzBwRl7q/aZyS/b3AcwO2x6VMPfcSkCn+yA/HEImUJ6AlVojrl/vyvNf9PelermyQ7aWJNHdvqw==", + "license": "MIT", + "dependencies": { + "@inertiajs/core": "2.0.11", + "es-toolkit": "^1.33.0" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/@ioredis/commands": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", + "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==", + "license": "MIT" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@japa/assert": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@japa/assert/-/assert-4.0.1.tgz", + "integrity": "sha512-n/dA9DVLNvM/Bw8DtN8kBdPjYsSHe3XTRjF5+U8vlzDavpW9skUANl2CHR1K/TBWZxwMfGi15SJIjo6UCs09AA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@poppinss/macroable": "^1.0.4", + "@types/chai": "^5.0.1", + "assertion-error": "^2.0.1", + "chai": "^5.1.2" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@japa/runner": "^3.1.2 || ^4.0.0" + } + }, + "node_modules/@japa/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@japa/core/-/core-10.3.0.tgz", + "integrity": "sha512-+vaqMiPnVaxlKH1sAwRQ80AwzlPysPKivhB8q1I2+BGe35lNrfiHKGMC52fuGAZBNuH5W2nInSCxr4cN/BTEIQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@poppinss/hooks": "^7.2.5", + "@poppinss/macroable": "^1.0.4", + "@poppinss/string": "^1.2.0", + "async-retry": "^1.3.3", + "emittery": "^1.0.3", + "string-width": "^7.2.0", + "time-span": "^5.1.0" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@japa/errors-printer": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@japa/errors-printer/-/errors-printer-4.1.2.tgz", + "integrity": "sha512-exl/r07ssJhEEsMdFT2sXgP1sV7Tp3mZvYUEDMXZ8YjWZPHTFLLcA7o9q9FJSSB1ITrEIbx2SWTB+2fFUaZ3NA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.4", + "jest-diff": "^29.7.0", + "supports-color": "^10.0.0", + "youch": "^4.1.0-beta.5" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@japa/errors-printer/node_modules/youch": { + "version": "4.1.0-beta.8", + "resolved": "https://registry.npmjs.org/youch/-/youch-4.1.0-beta.8.tgz", + "integrity": "sha512-rY2A2lSF7zC+l7HH9Mq+83D1dLlsPnEvy8jTouzaptDZM6geqZ3aJe/b7ULCwRURPtWV3vbDjA2DDMdoBol0HQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.4", + "@poppinss/dumper": "^0.6.3", + "@speed-highlight/core": "^1.2.7", + "cookie": "^1.0.2", + "youch-core": "^0.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@japa/plugin-adonisjs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@japa/plugin-adonisjs/-/plugin-adonisjs-4.0.0.tgz", + "integrity": "sha512-M2LUtHhKr4KgBfX73tDHNCD1IOmcXp9dvC+AinmRxsggIFnarsClcfjT/sXc3uNzjZW7Lk31LvcH76AxJHBmJQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/core": "^6.17.0", + "@japa/api-client": "^2.0.3 || ^3.0.0", + "@japa/browser-client": "^2.0.3", + "@japa/runner": "^3.1.2 || ^4.0.0", + "playwright": "^1.42.1" + }, + "peerDependenciesMeta": { + "@japa/api-client": { + "optional": true + }, + "@japa/browser-client": { + "optional": true + }, + "playwright": { + "optional": true + } + } + }, + "node_modules/@japa/runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@japa/runner/-/runner-4.2.0.tgz", + "integrity": "sha512-e3BFn1rca/OTiagilkmRTrLVhl00iC/LrY5j4Ns/VZDONYHs9BKAbHaImxjD1zoHMEhwQEF+ce7fgMO/BK+lfg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@japa/core": "^10.3.0", + "@japa/errors-printer": "^4.1.2", + "@poppinss/colors": "^4.1.4", + "@poppinss/hooks": "^7.2.5", + "fast-glob": "^3.3.3", + "find-cache-dir": "^5.0.0", + "getopts": "^2.3.0", + "ms": "^2.1.3", + "serialize-error": "^12.0.0", + "slash": "^5.1.0", + "supports-color": "^10.0.0" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "devOptional": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.2.0.tgz", + "integrity": "sha512-io1zEbbYcElht3tdlqEOFxZ0dMTYrHz9iMf0gqn1pPjZFTCgM5R4R5IMA20Chb2UPYYsxjzs8CgZ7Nb5n2K2rA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/base64": "^1.1.1", + "@jsonjoy.com/util": "^1.1.2", + "hyperdyperid": "^1.2.0", + "thingies": "^1.20.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.6.0.tgz", + "integrity": "sha512-sw/RMbehRhN68WRtcKCpQOPfnH6lLP4GJfqzi3iYej8tnzpZUDr6UkZYJjcjjC0FWEJOJbyM3PTIwxucUmDG2A==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@kurkle/color": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz", + "integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@lukeed/ms": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@lukeed/ms/-/ms-2.0.2.tgz", + "integrity": "sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "license": "BSD-3-Clause", + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@mdi/js": { + "version": "7.4.47", + "resolved": "https://registry.npmjs.org/@mdi/js/-/js-7.4.47.tgz", + "integrity": "sha512-KPnNOtm5i2pMabqZxpUz7iQf+mfrYZyKCZ8QNz85czgEt7cuHcGorWfdzUMWYA0SD+a6Hn4FmJ+YhzzzjkTZrQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@oozcitak/dom": { + "version": "1.15.10", + "resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-1.15.10.tgz", + "integrity": "sha512-0JT29/LaxVgRcGKvHmSrUTEvZ8BXvZhGl2LASRUgHqDTC1M5g1pLmVv56IYNyt3bG2CUjDkc67wnyZC14pbQrQ==", + "license": "MIT", + "dependencies": { + "@oozcitak/infra": "1.0.8", + "@oozcitak/url": "1.0.4", + "@oozcitak/util": "8.3.8" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/@oozcitak/infra": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@oozcitak/infra/-/infra-1.0.8.tgz", + "integrity": "sha512-JRAUc9VR6IGHOL7OGF+yrvs0LO8SlqGnPAMqyzOuFZPSZSXI7Xf2O9+awQPSMXgIWGtgUf/dA6Hs6X6ySEaWTg==", + "license": "MIT", + "dependencies": { + "@oozcitak/util": "8.3.8" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/@oozcitak/url": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@oozcitak/url/-/url-1.0.4.tgz", + "integrity": "sha512-kDcD8y+y3FCSOvnBI6HJgl00viO/nGbQoCINmQ0h98OhnGITrWR3bOGfwYCthgcrV8AnTJz8MzslTQbC3SOAmw==", + "license": "MIT", + "dependencies": { + "@oozcitak/infra": "1.0.8", + "@oozcitak/util": "8.3.8" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/@oozcitak/util": { + "version": "8.3.8", + "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-8.3.8.tgz", + "integrity": "sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ==", + "license": "MIT", + "engines": { + "node": ">=8.0" + } + }, + "node_modules/@opensearch-project/opensearch": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@opensearch-project/opensearch/-/opensearch-3.5.1.tgz", + "integrity": "sha512-6bf+HcuERzAtHZxrm6phjref54ABse39BpkDie/YO3AUFMCBrb3SK5okKSdT5n3+nDRuEEQLhQCl0RQV3s1qpA==", + "license": "Apache-2.0", + "dependencies": { + "aws4": "^1.11.0", + "debug": "^4.3.1", + "hpagent": "^1.2.0", + "json11": "^2.0.0", + "ms": "^2.1.3", + "secure-json-parse": "^2.4.0" + }, + "engines": { + "node": ">=14", + "yarn": "^1.22.10" + } + }, + "node_modules/@paralleldrive/cuid2": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.2.2.tgz", + "integrity": "sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "^1.1.5" + } + }, + "node_modules/@phc/format": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@phc/format/-/format-1.0.0.tgz", + "integrity": "sha512-m7X9U6BG2+J+R1lSOdCiITLLrxm+cWlNI3HUFA92oLO77ObGNzaKdh8pMLqdZcshtkKuV84olNNXDfMc4FezBQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.7.tgz", + "integrity": "sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@poppinss/chokidar-ts": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@poppinss/chokidar-ts/-/chokidar-ts-4.1.9.tgz", + "integrity": "sha512-Nl4JAb5dvwmZhXElSuiuHy4YkB7YFql/AE2tTu9TyJCfPnUrcwm2iMTUZVa+aGz+bolRPuPNKsuypxN59gBvQQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.3", + "emittery": "^1.1.0", + "memoize": "^10.1.0", + "picomatch": "^4.0.2", + "slash": "^5.1.0" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/@poppinss/cliui": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/@poppinss/cliui/-/cliui-6.4.3.tgz", + "integrity": "sha512-flAHvbWHP4r7+DVcWMuO9EGnnkaZLJzkei6E4QTVhPsIAKBI78vDplhHXZofUvwG5IrU42QM0gX/pxMOKwQRvg==", + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.4", + "cli-boxes": "^4.0.1", + "cli-table3": "^0.6.5", + "cli-truncate": "^4.0.0", + "log-update": "^6.1.0", + "pretty-hrtime": "^1.0.3", + "string-width": "^7.2.0", + "supports-color": "^10.0.0", + "terminal-size": "^4.0.0", + "wordwrap": "^1.0.0" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@poppinss/colors": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.4.tgz", + "integrity": "sha512-FA+nTU8p6OcSH4tLDY5JilGYr1bVWHpNmcLr7xmMEdbWmKHa+3QZ+DqefrXKmdjO/brHTnQZo20lLSjaO7ydog==", + "license": "MIT", + "dependencies": { + "kleur": "^4.1.5" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@poppinss/dumper": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@poppinss/dumper/-/dumper-0.6.3.tgz", + "integrity": "sha512-iombbn8ckOixMtuV1p3f8jN6vqhXefNjJttoPaJDMeIk/yIGhkkL3OrHkEjE9SRsgoAx1vBUU2GtgggjvA5hCA==", + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.4", + "@sindresorhus/is": "^7.0.1", + "supports-color": "^10.0.0" + } + }, + "node_modules/@poppinss/exception": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@poppinss/exception/-/exception-1.2.1.tgz", + "integrity": "sha512-aQypoot0HPSJa6gDPEPTntc1GT6QINrSbgRlRhadGW2WaYqUK3tK4Bw9SBMZXhmxd3GeAlZjVcODHgiu+THY7A==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@poppinss/hooks": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/@poppinss/hooks/-/hooks-7.2.5.tgz", + "integrity": "sha512-mxORKQ5CFzQNi6yK3zwCGWfGS507w23IhV3kFq42QzWlv/vpvf4aMJDbtfMCR5p52ghVoe0d1wmgp77ak2ORhQ==", + "license": "MIT", + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@poppinss/inspect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@poppinss/inspect/-/inspect-1.0.1.tgz", + "integrity": "sha512-kLeEaBSGhlleyYvKc7c9s3uE6xv7cwyulE0EgHf4jU/CL96h0yC4mkdw1wvC1l1PYYQozCGy46FwMBAAMOobCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@poppinss/macroable": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/macroable/-/macroable-1.0.4.tgz", + "integrity": "sha512-ct43jurbe7lsUX5eIrj4ijO3j/6zIPp7CDnFWXDs7UPAbw1Pu1iH3oAmFdP4jcskKJBURH5M9oTtyeiUXyHX8Q==", + "license": "MIT", + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@poppinss/manager": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@poppinss/manager/-/manager-5.0.2.tgz", + "integrity": "sha512-c5F3EKztq/iw0J+BfNu5rSI5/ji+kjts4rJaC/VvIzpTWzbRorb7UR9J32T8cLtTwjNHbmxk3BAU402lvL2JFA==", + "license": "MIT" + }, + "node_modules/@poppinss/matchit": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@poppinss/matchit/-/matchit-3.1.2.tgz", + "integrity": "sha512-Bx+jY+vmdQFmwYiHliiPjr+oVBaGnh79B1h1FSAm3jME1QylLFt8PPYC0ymO8Q5PzJj/KuE3jeTnZhRHOWqq8g==", + "license": "MIT", + "dependencies": { + "@arr/every": "^1.0.0" + } + }, + "node_modules/@poppinss/middleware": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@poppinss/middleware/-/middleware-3.2.5.tgz", + "integrity": "sha512-+P9yY4KYYZFTbOoIvVK/R4PfPcPyxt4E23Dx4l7V8Z/8+DOzAL01eWZs9mMgHOYTbAokKVLQ+JIsyDmrTA0Uyg==", + "license": "MIT", + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@poppinss/multiparty": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@poppinss/multiparty/-/multiparty-2.0.1.tgz", + "integrity": "sha512-Pf3V9PFyZDIkDBBiAOT2hdmA+1l/+hverHbUnMzNzwtwgO50s2ZPt5KxUydVA0hceg9gryo5unQ0WUF1SO9tkQ==", + "license": "MIT", + "dependencies": { + "http-errors": "^2.0.0", + "safe-buffer": "5.2.1", + "uid-safe": "2.1.5" + } + }, + "node_modules/@poppinss/object-builder": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@poppinss/object-builder/-/object-builder-1.1.0.tgz", + "integrity": "sha512-FOrOq52l7u8goR5yncX14+k+Ewi5djnrt1JwXeS/FvnwAPOiveFhiczCDuvXdssAwamtrV2hp5Rw9v+n2T7hQg==", + "license": "MIT", + "engines": { + "node": ">=20.6.0" + } + }, + "node_modules/@poppinss/prompts": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@poppinss/prompts/-/prompts-3.1.4.tgz", + "integrity": "sha512-3xbwolmX8/G2jZZTRcymc1KysJ6b7vyonauKwyQtt3WOaUTHMFcxTJ/Sdp75ehHFJI1BOVzd4v6BS9pmqTcHlw==", + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.4", + "@poppinss/exception": "^1.1.0", + "@poppinss/object-builder": "^1.1.0", + "enquirer": "^2.4.1" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@poppinss/string": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@poppinss/string/-/string-1.6.0.tgz", + "integrity": "sha512-HfAf9VqTvo31BsruwgwEauQ316RNODdryk6QgYZo4qTV50s0h1H9HmIr+QjwwI3u4Sz7r4Q1dd1EVaLB7pWlaw==", + "license": "MIT", + "dependencies": { + "@lukeed/ms": "^2.0.2", + "@types/bytes": "^3.1.5", + "@types/pluralize": "^0.0.33", + "bytes": "^3.1.2", + "case-anything": "^3.1.2", + "pluralize": "^8.0.0", + "slugify": "^1.6.6", + "truncatise": "^0.0.8" + } + }, + "node_modules/@poppinss/utils": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-6.9.4.tgz", + "integrity": "sha512-KJe9/ebFBqb4fFBdadgN4YgT4bHAKdWhLAFzjaeDqx5vOCtD3C+byN5DrORVNbwAjt+rb8beP8pXaWZWx+WmTA==", + "license": "MIT", + "dependencies": { + "@poppinss/exception": "^1.2.1", + "@poppinss/object-builder": "^1.1.0", + "@poppinss/string": "^1.3.0", + "flattie": "^1.1.1", + "safe-stable-stringify": "^2.5.0", + "secure-json-parse": "^4.0.0" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@poppinss/utils/node_modules/secure-json-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-4.0.0.tgz", + "integrity": "sha512-dxtLJO6sc35jWidmLxo7ij+Eg48PM/kleBsxpC8QJE0qJICe+KawkDQmvCMZUr9u7WKVHgMW6vy3fQ7zMiFZMA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/@poppinss/validator-lite": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@poppinss/validator-lite/-/validator-lite-2.1.0.tgz", + "integrity": "sha512-CfT8EPeB7jKxjCb5+KP32iu/0BB7cKlRRqMBcCwzky0WgFACsFlRtvHsy+CkOszHmNyOdoH3WoyMyoxVCu9qEw==", + "license": "MIT" + }, + "node_modules/@redis/bloom": { + "version": "5.5.5", + "resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-5.5.5.tgz", + "integrity": "sha512-M0GDmw8k0EOFoSpmMjhFUADk/apoano97fLSpT81opgmkkDtBB9iB6l6husxnzK5t2qNz/o0+OCVG9g6lEEwKw==", + "license": "MIT", + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@redis/client": "^5.5.5" + } + }, + "node_modules/@redis/client": { + "version": "5.5.5", + "resolved": "https://registry.npmjs.org/@redis/client/-/client-5.5.5.tgz", + "integrity": "sha512-1Dv/CVdMNLw0mlROSnmpp4MQu+6YIJX0YR0h3g2hnPdLvk6L7TcRcrUj7BQFGSeZD2MxklAUO+rp09ITUqE5Og==", + "license": "MIT", + "dependencies": { + "cluster-key-slot": "1.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@redis/json": { + "version": "5.5.5", + "resolved": "https://registry.npmjs.org/@redis/json/-/json-5.5.5.tgz", + "integrity": "sha512-Nq8wHjOhwuhD05YPWFPL9RyT3K1VdT37TKvqbhykZA2MWQgjjhLn5i1/6zZ+1b0Zc/Sr9E0eK9J8txk6YJR6EA==", + "license": "MIT", + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@redis/client": "^5.5.5" + } + }, + "node_modules/@redis/search": { + "version": "5.5.5", + "resolved": "https://registry.npmjs.org/@redis/search/-/search-5.5.5.tgz", + "integrity": "sha512-xM/DKrRhbsMS2QQF5bBPjR7P/QEjWWZDUr92r+UOwkZjvc/kmy0tp7h8zkxBo2jtSF99vkk2mwMzn6fQ8d60aQ==", + "license": "MIT", + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@redis/client": "^5.5.5" + } + }, + "node_modules/@redis/time-series": { + "version": "5.5.5", + "resolved": "https://registry.npmjs.org/@redis/time-series/-/time-series-5.5.5.tgz", + "integrity": "sha512-2ifwV75Fv/uVX4n0zqvgqIlIInHZtVj+afjcbXPBD2GhG2AeVfkitTz1bMnGnNDA78sWRYooK42OWH9yqujjyQ==", + "license": "MIT", + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@redis/client": "^5.5.5" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.41.1.tgz", + "integrity": "sha512-NELNvyEWZ6R9QMkiytB4/L4zSEaBC03KIXEghptLGLZWJ6VPrL63ooZQCOnlx36aQPGhzuOMwDerC1Eb2VmrLw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.41.1.tgz", + "integrity": "sha512-DXdQe1BJ6TK47ukAoZLehRHhfKnKg9BjnQYUu9gzhI8Mwa1d2fzxA1aw2JixHVl403bwp1+/o/NhhHtxWJBgEA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.41.1.tgz", + "integrity": "sha512-5afxvwszzdulsU2w8JKWwY8/sJOLPzf0e1bFuvcW5h9zsEg+RQAojdW0ux2zyYAz7R8HvvzKCjLNJhVq965U7w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.41.1.tgz", + "integrity": "sha512-egpJACny8QOdHNNMZKf8xY0Is6gIMz+tuqXlusxquWu3F833DcMwmGM7WlvCO9sB3OsPjdC4U0wHw5FabzCGZg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.41.1.tgz", + "integrity": "sha512-DBVMZH5vbjgRk3r0OzgjS38z+atlupJ7xfKIDJdZZL6sM6wjfDNo64aowcLPKIx7LMQi8vybB56uh1Ftck/Atg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.41.1.tgz", + "integrity": "sha512-3FkydeohozEskBxNWEIbPfOE0aqQgB6ttTkJ159uWOFn42VLyfAiyD9UK5mhu+ItWzft60DycIN1Xdgiy8o/SA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.41.1.tgz", + "integrity": "sha512-wC53ZNDgt0pqx5xCAgNunkTzFE8GTgdZ9EwYGVcg+jEjJdZGtq9xPjDnFgfFozQI/Xm1mh+D9YlYtl+ueswNEg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.41.1.tgz", + "integrity": "sha512-jwKCca1gbZkZLhLRtsrka5N8sFAaxrGz/7wRJ8Wwvq3jug7toO21vWlViihG85ei7uJTpzbXZRcORotE+xyrLA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.1.tgz", + "integrity": "sha512-g0UBcNknsmmNQ8V2d/zD2P7WWfJKU0F1nu0k5pW4rvdb+BIqMm8ToluW/eeRmxCared5dD76lS04uL4UaNgpNA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.1.tgz", + "integrity": "sha512-XZpeGB5TKEZWzIrj7sXr+BEaSgo/ma/kCgrZgL0oo5qdB1JlTzIYQKel/RmhT6vMAvOdM2teYlAaOGJpJ9lahg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.1.tgz", + "integrity": "sha512-bkCfDJ4qzWfFRCNt5RVV4DOw6KEgFTUZi2r2RuYhGWC8WhCA8lCAJhDeAmrM/fdiAH54m0mA0Vk2FGRPyzI+tw==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.1.tgz", + "integrity": "sha512-3mr3Xm+gvMX+/8EKogIZSIEF0WUu0HL9di+YWlJpO8CQBnoLAEL/roTCxuLncEdgcfJcvA4UMOf+2dnjl4Ut1A==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.1.tgz", + "integrity": "sha512-3rwCIh6MQ1LGrvKJitQjZFuQnT2wxfU+ivhNBzmxXTXPllewOF7JR1s2vMX/tWtUYFgphygxjqMl76q4aMotGw==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.1.tgz", + "integrity": "sha512-LdIUOb3gvfmpkgFZuccNa2uYiqtgZAz3PTzjuM5bH3nvuy9ty6RGc/Q0+HDFrHrizJGVpjnTZ1yS5TNNjFlklw==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.1.tgz", + "integrity": "sha512-oIE6M8WC9ma6xYqjvPhzZYk6NbobIURvP/lEbh7FWplcMO6gn7MM2yHKA1eC/GvYwzNKK/1LYgqzdkZ8YFxR8g==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.1.tgz", + "integrity": "sha512-cWBOvayNvA+SyeQMp79BHPK8ws6sHSsYnK5zDcsC3Hsxr1dgTABKjMnMslPq1DvZIp6uO7kIWhiGwaTdR4Og9A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.1.tgz", + "integrity": "sha512-y5CbN44M+pUCdGDlZFzGGBSKCA4A/J2ZH4edTYSSxFg7ce1Xt3GtydbVKWLlzL+INfFIZAEg1ZV6hh9+QQf9YQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.1.tgz", + "integrity": "sha512-lZkCxIrjlJlMt1dLO/FbpZbzt6J/A8p4DnqzSa4PWqPEUUUnzXLeki/iyPLfV0BmHItlYgHUqJe+3KiyydmiNQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.1.tgz", + "integrity": "sha512-+psFT9+pIh2iuGsxFYYa/LhS5MFKmuivRsx9iPJWNSGbh2XVEjk90fmpUEjCnILPEPJnikAU6SFDiEUyOv90Pg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.1.tgz", + "integrity": "sha512-Wq2zpapRYLfi4aKxf2Xff0tN+7slj2d4R87WEzqw7ZLsVvO5zwYCIuEGSZYiK41+GlwUo1HiR+GdkLEJnCKTCw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "license": "MIT" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@sindresorhus/is": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.0.2.tgz", + "integrity": "sha512-d9xRovfKNz1SKieM0qJdO+PQonjnnIfSNWfHYnBSJ9hkjm0ZPw6HlxscDXYstp3z+7V2GOFHc+J0CYrYTjqCJw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@speed-highlight/core": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@speed-highlight/core/-/core-1.2.7.tgz", + "integrity": "sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==", + "devOptional": true, + "license": "CC0-1.0" + }, + "node_modules/@swc/wasm": { + "version": "1.11.29", + "resolved": "https://registry.npmjs.org/@swc/wasm/-/wasm-1.11.29.tgz", + "integrity": "sha512-FirHVrjDsaLICll/iXJzK99TbIbMfYiAGLV6Cbc3W29Q/QFCeiO0tpHObXXdTiJgV2tHIsuwRfCaSYNwyrRDDg==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/@tailwindcss/forms": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.10.tgz", + "integrity": "sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mini-svg-data-uri": "^1.2.3" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1" + } + }, + "node_modules/@tanstack/virtual-core": { + "version": "3.13.9", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.9.tgz", + "integrity": "sha512-3jztt0jpaoJO5TARe2WIHC1UQC3VMLAFUW5mmMo0yrkwtDB2AQP0+sh10BVUpWrnvHjSLvzFizydtEGLCJKFoQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/vue-virtual": { + "version": "3.13.9", + "resolved": "https://registry.npmjs.org/@tanstack/vue-virtual/-/vue-virtual-3.13.9.tgz", + "integrity": "sha512-HsvHaOo+o52cVcPhomKDZ3CMpTF/B2qg+BhPHIQJwzn4VIqDyt/rRVqtIomG6jE83IFsE2vlr6cmx7h3dHA0SA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tanstack/virtual-core": "3.13.9" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "vue": "^2.7.0 || ^3.0.0" + } + }, + "node_modules/@tokenizer/inflate": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@tokenizer/inflate/-/inflate-0.2.7.tgz", + "integrity": "sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "fflate": "^0.8.2", + "token-types": "^6.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", + "license": "MIT" + }, + "node_modules/@ts-morph/common": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.24.0.tgz", + "integrity": "sha512-c1xMmNHWpNselmpIqursHeOHHBTIsJLbB+NuovbTTRCNiTLEr/U9dbJ8qy0jd/O2x5pc3seWuOUN5R2IoOTp8A==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "fast-glob": "^3.3.2", + "minimatch": "^9.0.4", + "mkdirp": "^3.0.1", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@ts-morph/common/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@ts-morph/common/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@ts-morph/common/node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "devOptional": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tuyau/utils": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@tuyau/utils/-/utils-0.0.6.tgz", + "integrity": "sha512-X6teHJyGGyjkSHRvBf9tX13K54O6yxaDcNI/NbgXYb/yBdm4Esr4yRBYjOKEvaQYkAChQh/CXyEeGYNPdj+2Zg==", + "license": "ISC" + }, + "node_modules/@types/bcryptjs": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@types/bcryptjs/-/bcryptjs-2.4.6.tgz", + "integrity": "sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/bytes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@types/bytes/-/bytes-3.1.5.tgz", + "integrity": "sha512-VgZkrJckypj85YxEsEavcMmmSOIzkUHqWmM4CCyia5dc54YwsXzJ5uT4fYxBQNEXx+oF1krlhgCbvfubXqZYsQ==", + "license": "MIT" + }, + "node_modules/@types/chai": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz", + "integrity": "sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*" + } + }, + "node_modules/@types/clamscan": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/clamscan/-/clamscan-2.4.1.tgz", + "integrity": "sha512-KhBHhXsMGDoEkk87VRtHtDsjoqXD3epu+a09c1sjW7xqpvoihScxhZNdNIPegVCLDvPOp4khiIpy02XabseztQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cookiejar": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.5.tgz", + "integrity": "sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/disposable-email-domains": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/disposable-email-domains/-/disposable-email-domains-1.0.6.tgz", + "integrity": "sha512-+jHw0Q4ERuVYIChlUaoSm/VEuuNFeW7JgUU8Rwa9V1ym6q+gkGmBK5sGTDKqlfmsSdI5bFMHKlEatirPFvd8Xw==", + "license": "MIT" + }, + "node_modules/@types/escape-html": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/escape-html/-/escape-html-1.0.4.tgz", + "integrity": "sha512-qZ72SFTgUAZ5a7Tj6kf2SHLetiH5S6f8G5frB2SPQ3EyF02kxdyBFf4Tz4banE3xCgGnKgWLt//a6VuYHKYJTg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "4.17.22", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.22.tgz", + "integrity": "sha512-eZUmSnhRX9YRSkplpz0N+k6NljUUn5l3EWZIKZvYzhvMphEuNiyyy1viH/ejgt66JWgALwC/gtSUAeQKtSwW/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/fs-extra": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz", + "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/jsonfile": "*", + "@types/node": "*" + } + }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/he": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@types/he/-/he-1.2.3.tgz", + "integrity": "sha512-q67/qwlxblDzEDvzHhVkwc1gzVWxaNxeyHUBF4xElrvjL11O+Ytze+1fGpBHlr/H9myiBUaUXNnNPmBHxxfAcA==", + "license": "MIT" + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "license": "MIT" + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.16", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.16.tgz", + "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/jsonfile": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz", + "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/leaflet": { + "version": "1.9.18", + "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.18.tgz", + "integrity": "sha512-ht2vsoPjezor5Pmzi5hdsA7F++v5UGq9OlUduWHmMZiuQGIpJ2WS5+Gg9HaAA79gNh1AIPtCqhzejcIZ3lPzXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/luxon": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.6.2.tgz", + "integrity": "sha512-R/BdP7OxEMc44l2Ex5lSXHoIXTB2JLNa3y2QISIbr58U/YcsffyQrYW//hZSdrfxrjRZj3GcUoxMPGdO8gSYuw==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/methods": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@types/methods/-/methods-1.1.4.tgz", + "integrity": "sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.15.29", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.29.tgz", + "integrity": "sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/nodemailer": { + "version": "6.4.17", + "resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-6.4.17.tgz", + "integrity": "sha512-I9CCaIp6DTldEg7vyUTZi8+9Vo0hi1/T8gv3C89yk1rSAAzoKQ8H8ki/jBYJSFoH/BisgLP8tkZMlQ91CIquww==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/notp": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/notp/-/notp-2.0.5.tgz", + "integrity": "sha512-ZsZS0PYUa6ZE4K3yOGerBvaxCp4ePf6ZmkFbPeilcqz2Ui/lmXox7KlRt7XZkXzqUgXhFLkc09ixyVmFLCU3gQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/pluralize": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/pluralize/-/pluralize-0.0.33.tgz", + "integrity": "sha512-JOqsl+ZoCpP4e8TDke9W79FDcSgPAR0l6pixx2JHkhnRjvShyYiAYw2LVsnA7K08Y6DeOnaU6ujmENO4os/cYg==", + "license": "MIT" + }, + "node_modules/@types/proxy-addr": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/proxy-addr/-/proxy-addr-2.0.3.tgz", + "integrity": "sha512-TgAHHO4tNG3HgLTUhB+hM4iwW6JUNeQHCLnF1DjaDA9c69PN+IasoFu2MYDhubFc+ZIw5c5t9DMtjvrD6R3Egg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/qrcode": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/qrcode/-/qrcode-1.5.5.tgz", + "integrity": "sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/retry": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz", + "integrity": "sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/source-map-support": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@types/source-map-support/-/source-map-support-0.5.10.tgz", + "integrity": "sha512-tgVP2H469x9zq34Z0m/fgPewGhg/MLClalNOiPIzQlXrSS2YrKu/xCdSCKnEDwkFha51VKEKB6A9wW26/ZNwzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "source-map": "^0.6.0" + } + }, + "node_modules/@types/sprintf-js": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@types/sprintf-js/-/sprintf-js-1.1.4.tgz", + "integrity": "sha512-aWK1reDYWxcjgcIIPmQi3u+OQDuYa9b+lr6eIsGWrekJ9vr1NSjr4Eab8oQ1iKuH1ltFHpXGyerAv1a3FMKxzQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/superagent": { + "version": "8.1.9", + "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-8.1.9.tgz", + "integrity": "sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/cookiejar": "^2.1.5", + "@types/methods": "^1.1.4", + "@types/node": "*", + "form-data": "^4.0.0" + } + }, + "node_modules/@types/supertest": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-6.0.3.tgz", + "integrity": "sha512-8WzXq62EXFhJ7QsH3Ocb/iKQ/Ty9ZVWnVzoTKc9tyyFRRF3a74Tk2+TLFgaFFw364Ere+npzHKEJ6ga2LzIL7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/methods": "^1.1.4", + "@types/superagent": "^8.1.0" + } + }, + "node_modules/@types/validator": { + "version": "13.15.1", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.15.1.tgz", + "integrity": "sha512-9gG6ogYcoI2mCMLdcO0NYI0AYrbxIjv0MDmy/5Ywo6CpWWrqYayc+mmgxRsCgtcGJm9BSbXkMsmxGah1iGHAAQ==", + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" + }, + "node_modules/@vavite/multibuild": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@vavite/multibuild/-/multibuild-5.1.0.tgz", + "integrity": "sha512-xhJS6oAhQqDCRFFmpZWNCcAJw7145pvlfKX/IOCQX7oqulbw9amH9rdrNXmwz79UeYgOwxXpWfEavyYTPLY1KQ==", + "license": "MIT", + "dependencies": { + "@types/node": "^18.19.67", + "cac": "^6.7.14", + "picocolors": "^1.1.1" + }, + "peerDependencies": { + "vite": "^2.8.1 || 3 || 4 || 5 || 6" + } + }, + "node_modules/@vavite/multibuild/node_modules/@types/node": { + "version": "18.19.110", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.110.tgz", + "integrity": "sha512-WW2o4gTmREtSnqKty9nhqF/vA0GKd0V/rbC0OyjSk9Bz6bzlsXKT+i7WDdS/a0z74rfT2PO4dArVCSnapNLA5Q==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@vavite/multibuild/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" + }, + "node_modules/@vinejs/compiler": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@vinejs/compiler/-/compiler-3.0.0.tgz", + "integrity": "sha512-v9Lsv59nR56+bmy2p0+czjZxsLHwaibJ+SV5iK9JJfehlJMa501jUJQqqz4X/OqKXrxtE3uTQmSqjUqzF3B2mw==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@vinejs/vine": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@vinejs/vine/-/vine-3.0.1.tgz", + "integrity": "sha512-ZtvYkYpZOYdvbws3uaOAvTFuvFXoQGAtmzeiXu+XSMGxi5GVsODpoI9Xu9TplEMuD/5fmAtBbKb9cQHkWkLXDQ==", + "license": "MIT", + "dependencies": { + "@poppinss/macroable": "^1.0.4", + "@types/validator": "^13.12.2", + "@vinejs/compiler": "^3.0.0", + "camelcase": "^8.0.0", + "dayjs": "^1.11.13", + "dlv": "^1.1.3", + "normalize-url": "^8.0.1", + "validator": "^13.12.0" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", + "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.16.tgz", + "integrity": "sha512-AOQS2eaQOaaZQoL1u+2rCJIKDruNXVBZSiUD3chnUrsoX5ZTQMaCvXlWNIfxBJuU15r1o7+mpo5223KVtIhAgQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.2", + "@vue/shared": "3.5.16", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.16.tgz", + "integrity": "sha512-SSJIhBr/teipXiXjmWOVWLnxjNGo65Oj/8wTEQz0nqwQeP75jWZ0n4sF24Zxoht1cuJoWopwj0J0exYwCJ0dCQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.16", + "@vue/shared": "3.5.16" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.16.tgz", + "integrity": "sha512-rQR6VSFNpiinDy/DVUE0vHoIDUF++6p910cgcZoaAUm3POxgNOOdS/xgoll3rNdKYTYPnnbARDCZOyZ+QSe6Pw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.2", + "@vue/compiler-core": "3.5.16", + "@vue/compiler-dom": "3.5.16", + "@vue/compiler-ssr": "3.5.16", + "@vue/shared": "3.5.16", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.17", + "postcss": "^8.5.3", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.16.tgz", + "integrity": "sha512-d2V7kfxbdsjrDSGlJE7my1ZzCXViEcqN6w14DOsDrUCHEA6vbnVCpRFfrc4ryCP/lCKzX2eS1YtnLE/BuC9f/A==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.16", + "@vue/shared": "3.5.16" + } + }, + "node_modules/@vue/devtools-api": { + "version": "7.7.6", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.7.6.tgz", + "integrity": "sha512-b2Xx0KvXZObePpXPYHvBRRJLDQn5nhKjXh7vUhMEtWxz1AYNFOVIsh5+HLP8xDGL7sy+Q7hXeUxPHB/KgbtsPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.7.6" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "7.7.6", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.7.6.tgz", + "integrity": "sha512-geu7ds7tem2Y7Wz+WgbnbZ6T5eadOvozHZ23Atk/8tksHMFOFylKi1xgGlQlVn0wlkEf4hu+vd5ctj1G4kFtwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^7.7.6", + "birpc": "^2.3.0", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.2" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "7.7.6", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.7.6.tgz", + "integrity": "sha512-yFEgJZ/WblEsojQQceuyK6FzpFDx4kqrz2ohInxNj5/DnhoX023upTv4OD6lNPLAA5LLkbwPVb10o/7b+Y4FVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.16.tgz", + "integrity": "sha512-FG5Q5ee/kxhIm1p2bykPpPwqiUBV3kFySsHEQha5BJvjXdZTUfmya7wP7zC39dFuZAcf/PD5S4Lni55vGLMhvA==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.16" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.16.tgz", + "integrity": "sha512-bw5Ykq6+JFHYxrQa7Tjr+VSzw7Dj4ldR/udyBZbq73fCdJmyy5MPIFR9IX/M5Qs+TtTjuyUTCnmK3lWWwpAcFQ==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.16", + "@vue/shared": "3.5.16" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.16.tgz", + "integrity": "sha512-T1qqYJsG2xMGhImRUV9y/RseB9d0eCYZQ4CWca9ztCuiPj/XWNNN+lkNBuzVbia5z4/cgxdL28NoQCvC0Xcfww==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.16", + "@vue/runtime-core": "3.5.16", + "@vue/shared": "3.5.16", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.16.tgz", + "integrity": "sha512-BrX0qLiv/WugguGsnQUJiYOE0Fe5mZTwi6b7X/ybGB0vfrPH9z0gD/Y6WOR1sGCgX4gc25L1RYS5eYQKDMoNIg==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.16", + "@vue/shared": "3.5.16" + }, + "peerDependencies": { + "vue": "3.5.16" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.16.tgz", + "integrity": "sha512-c/0fWy3Jw6Z8L9FmTyYfkpM5zklnqqa9+a6dz3DvONRKW2NEbh46BP0FHuLFSWi2TnQEtp91Z6zOWNrU6QiyPg==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "license": "ISC" + }, + "node_modules/abstract-logging": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", + "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==", + "license": "MIT" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "license": "ISC" + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/argon2": { + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/argon2/-/argon2-0.43.0.tgz", + "integrity": "sha512-u/HKLcbWShVDhkfwI4hWyiUf3qyX8QhTfaIv2cWE18uqhXCmR5hb6Ed7oqYi2KCQegeAnRhiFzbjzm7i5yl1GA==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@phc/format": "^1.0.0", + "node-addon-api": "^8.3.1", + "node-gyp-build": "^4.8.4" + }, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/as-table": { + "version": "1.0.55", + "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", + "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", + "license": "MIT", + "dependencies": { + "printable-characters": "^1.0.42" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/astring": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "license": "MIT", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/async-retry": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "retry": "0.13.1" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/aws4": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz", + "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-preset-typescript-vue3": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/babel-preset-typescript-vue3/-/babel-preset-typescript-vue3-2.0.17.tgz", + "integrity": "sha512-6AdNf72Jd9OTap9ws12bAehn/GuuBSqUPN+nuOY7XCMckRcvPbO1G+yFvF+ahQsiMCk+gUZwTie1eoQMzeesog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.3.2", + "@babel/preset-typescript": "^7.3.3", + "@vue/compiler-sfc": "^3.0.5" + }, + "engines": { + "node": ">=8.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/basic-auth/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true, + "license": "MIT" + }, + "node_modules/bcrypt": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz", + "integrity": "sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.11", + "node-addon-api": "^5.0.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/bcrypt/node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==", + "license": "MIT" + }, + "node_modules/bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==", + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/birpc": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.3.0.tgz", + "integrity": "sha512-ijbtkn/F3Pvzb6jHypHRyve2QApOCZDR25D/VnkY2G/lBNcXCTsnsCxgY4k4PkVB7zfwzYbY3O9Lcqe3xufS5g==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/body-parser/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/body-parser/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/body-parser/node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/bonjour-service": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", + "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001718", + "electron-to-chromium": "^1.5.160", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "devOptional": true, + "license": "MIT", + "peer": true + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-12.0.1.tgz", + "integrity": "sha512-Yo9wGIQUaAfIbk+qY0X4cDQgCosecfBe3V9NSyeY4qPC2SAkbCS4Xj79VP8WOzitpJUZKc/wsRCYF5ariDIwkg==", + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "^4.0.4", + "get-stream": "^9.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.4", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.1", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", + "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001721", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001721.tgz", + "integrity": "sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/case-anything": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-3.1.2.tgz", + "integrity": "sha512-wljhAjDDIv/hM2FzgJnYQg90AWmZMNtESCjTeLH680qTzdo0nErlCxOmgzgX4ZsZAtIvqHyD87ES8QyriXB+BQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/chai": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz", + "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chart.js": { + "version": "4.4.9", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.9.tgz", + "integrity": "sha512-EyZ9wWKgpAU0fLJ43YAEIF8sr5F2W3LqbS40ZJyHIner2lY14ufqv2VMp69MAiZ2rpwxEUxEhIH/0U3xyRynxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@kurkle/color": "^0.3.0" + }, + "engines": { + "pnpm": ">=8" + } + }, + "node_modules/check-disk-space": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/check-disk-space/-/check-disk-space-3.4.0.tgz", + "integrity": "sha512-drVkSqfwA+TvuEhFipiR1OC9boEGZL5RrWvVsOthdcvQNXyCCuKkEiTOTXZ7qxSf/GLwq4GvzfrQD/Wz325hgw==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clamscan": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/clamscan/-/clamscan-2.4.0.tgz", + "integrity": "sha512-XBOxUiGOcQGuKmCn5qaM5rIK153fGCwsvJMbjVtcnNJ+j/YHrSj2gKNjyP65yr/E8JsKTTDtKYFG++p7Lzigyw==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" + }, + "node_modules/cli-boxes": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-4.0.1.tgz", + "integrity": "sha512-5IOn+jcCEHEraYolBPs/sT4BxYCe2nHg374OPiItB1O96KZFseS2gthU4twyYzeDcFew4DaUM/xwc5BQf08JJw==", + "license": "MIT", + "engines": { + "node": ">=18.20 <19 || >=20.10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-table3/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/cli-table3/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-table3/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "license": "MIT", + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cluster-key-slot": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/code-block-writer": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.3.tgz", + "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "devOptional": true, + "license": "ISC" + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz", + "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.0.2", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/compression/node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "license": "ISC" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-hrtime": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", + "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-file": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-file/-/copy-file-11.0.0.tgz", + "integrity": "sha512-mFsNh/DIANLqFt5VHZoGirdg7bK5+oTWlhnGu6tgRhzBlnEKWaPX2xrFaLltii/6rmhqFMJqffUgknuRdpYlHw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.11", + "p-event": "^6.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cpy": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/cpy/-/cpy-11.1.0.tgz", + "integrity": "sha512-QGHetPSSuprVs+lJmMDcivvrBwTKASzXQ5qxFvRC2RFESjjod71bDvFvhxTjDgkNjrrb72AI6JPjfYwxrIy33A==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "copy-file": "^11.0.0", + "globby": "^14.0.2", + "junk": "^4.0.1", + "micromatch": "^4.0.7", + "p-filter": "^4.1.0", + "p-map": "^7.0.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csrf": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csrf/-/csrf-3.1.0.tgz", + "integrity": "sha512-uTqEnCvWRk042asU6JtapDTcJeeailFy4ydOQS28bj1hcLnYRiqi8SsD2jS412AY1I/4qdOwWZun774iqywf9w==", + "license": "MIT", + "dependencies": { + "rndm": "1.2.0", + "tsscmp": "1.0.6", + "uid-safe": "2.1.5" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/data-uri-to-buffer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", + "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==", + "license": "MIT" + }, + "node_modules/dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dedent": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz", + "integrity": "sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==", + "devOptional": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-email-validator": { + "version": "0.1.21", + "resolved": "https://registry.npmjs.org/deep-email-validator/-/deep-email-validator-0.1.21.tgz", + "integrity": "sha512-DBAmMzbr+MAubXQ+TS9tZuPwLcdKscb8YzKZiwoLqF3NmaeEgXvSSHhZ0EXOFeKFE2FNWC4mNXCyiQ/JdFXUwg==", + "license": "MIT", + "dependencies": { + "@types/disposable-email-domains": "^1.0.1", + "axios": "^0.24.0", + "disposable-email-domains": "^1.0.59", + "mailcheck": "^1.1.1" + } + }, + "node_modules/deep-email-validator/node_modules/axios": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.14.4" + } + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "license": "MIT" + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT" + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", + "license": "MIT" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dir-glob/node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/disposable-email-domains": { + "version": "1.0.62", + "resolved": "https://registry.npmjs.org/disposable-email-domains/-/disposable-email-domains-1.0.62.tgz", + "integrity": "sha512-LBQvhRw7mznQTPoyZbsmYeNOZt1pN5aCsx4BAU/3siVFuiM9f2oyKzUaB8v1jbxFjE3aYqYiMo63kAL4pHgfWQ==", + "license": "MIT" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "license": "MIT" + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dotenv": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", + "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-defaults": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dotenv-defaults/-/dotenv-defaults-2.0.2.tgz", + "integrity": "sha512-iOIzovWfsUHU91L5i8bJce3NYK5JXeAwH50Jh6+ARUdLiiGlYWfGw6UkzsYqaXZH/hjE/eCd/PlfM/qqyK0AMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "dotenv": "^8.2.0" + } + }, + "node_modules/dotenv-defaults/node_modules/dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-webpack": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-8.1.0.tgz", + "integrity": "sha512-owK1JcsPkIobeqjVrk6h7jPED/W6ZpdFsMPR+5ursB7/SdgDyO+VzAU+szK8C8u3qUhtENyYnj8eyXMR5kkGag==", + "dev": true, + "license": "MIT", + "dependencies": { + "dotenv-defaults": "^2.0.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "webpack": "^4 || ^5" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/edge-error": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/edge-error/-/edge-error-4.0.2.tgz", + "integrity": "sha512-jB76VYn8wapDHKHSOmP3vbKLoa77RJYsTLNmfl8+cuCD69uxZtP3h+kqV+Prw/YkYmN7yHyp4IApE15pDByk0A==", + "license": "MIT", + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/edge-lexer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/edge-lexer/-/edge-lexer-6.0.3.tgz", + "integrity": "sha512-/s15CNnfhZv97bsW+ZgV5rtONULYjhCDYu+usbVLqZ8UQ6b/hQUNvQSIQBXA6Gql9dm72TMBB9sb/eWM2esufg==", + "license": "MIT", + "dependencies": { + "edge-error": "^4.0.2" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/edge-parser": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/edge-parser/-/edge-parser-9.0.4.tgz", + "integrity": "sha512-vnjzfpqpjM4Mjt9typc1zLoFpC1F6kAObfcdyA6rSy+izIPji2RaQz5jWx5s5iG9hNcuyjtNyGRCLFVfoYhWcA==", + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "astring": "^1.9.0", + "edge-error": "^4.0.2", + "edge-lexer": "^6.0.3", + "js-stringify": "^1.0.2" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/edge.js": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/edge.js/-/edge.js-6.2.1.tgz", + "integrity": "sha512-me875zh6YA0V429hywgQIpHgMvQkondv5XHaP6EsL2yIBpLcBWCl7Ba1cai0SwYhp8iD0IyV3KjpxLrnW7S2Ag==", + "license": "MIT", + "dependencies": { + "@poppinss/inspect": "^1.0.1", + "@poppinss/macroable": "^1.0.4", + "@poppinss/utils": "^6.9.2", + "classnames": "^2.5.1", + "edge-error": "^4.0.2", + "edge-lexer": "^6.0.3", + "edge-parser": "^9.0.4", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "js-stringify": "^1.0.2", + "property-information": "^6.5.0", + "stringify-attributes": "^4.0.0" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.164", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.164.tgz", + "integrity": "sha512-TXBrF2aZenRjY3wbj5Yc0mZn43lMiSHNkzwPkIxx+vWUB35Kf8Gm/uOYmOJFNQ7SUwWAinbfxX73ANIud65wSA==", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-1.1.0.tgz", + "integrity": "sha512-rsX7ktqARv/6UQDgMaLfIqUWAEzzbCQiVh7V9rhDXp6c37yoJcks12NVD+XPkgl4AEavmNhVfrhGoqYwIsMYYA==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser-es": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz", + "integrity": "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-toolkit": { + "version": "1.38.0", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.38.0.tgz", + "integrity": "sha512-OT3AxczYYd3W50bCj4V0hKoOAfqIy9tof0leNQYekEDxVKir3RTVTJOLij7VAe6fsCNsGhC0JqIkURpMXTCSEA==", + "license": "MIT", + "workspaces": [ + "docs", + "benchmarks" + ] + }, + "node_modules/esbuild": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz", + "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.5", + "@esbuild/android-arm": "0.25.5", + "@esbuild/android-arm64": "0.25.5", + "@esbuild/android-x64": "0.25.5", + "@esbuild/darwin-arm64": "0.25.5", + "@esbuild/darwin-x64": "0.25.5", + "@esbuild/freebsd-arm64": "0.25.5", + "@esbuild/freebsd-x64": "0.25.5", + "@esbuild/linux-arm": "0.25.5", + "@esbuild/linux-arm64": "0.25.5", + "@esbuild/linux-ia32": "0.25.5", + "@esbuild/linux-loong64": "0.25.5", + "@esbuild/linux-mips64el": "0.25.5", + "@esbuild/linux-ppc64": "0.25.5", + "@esbuild/linux-riscv64": "0.25.5", + "@esbuild/linux-s390x": "0.25.5", + "@esbuild/linux-x64": "0.25.5", + "@esbuild/netbsd-arm64": "0.25.5", + "@esbuild/netbsd-x64": "0.25.5", + "@esbuild/openbsd-arm64": "0.25.5", + "@esbuild/openbsd-x64": "0.25.5", + "@esbuild/sunos-x64": "0.25.5", + "@esbuild/win32-arm64": "0.25.5", + "@esbuild/win32-ia32": "0.25.5", + "@esbuild/win32-x64": "0.25.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", + "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.5.tgz", + "integrity": "sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-adonis": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-adonis/-/eslint-plugin-adonis-2.1.1.tgz", + "integrity": "sha512-iC3eZXofK4q+KOGypiquT74amCpeqW+5K5WZ7pezUvrXgmFkZMn7MSQjAg44KVzq6pQdXFuRNlnS+ijcwx0AMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "^5.37.0", + "@typescript-eslint/parser": "^5.37.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.4.1.tgz", + "integrity": "sha512-9dF+KuU/Ilkq27A8idRP7N2DH8iUR6qXcjF3FR2wETY21PZdBrIjwCau8oboyGj9b7etWmTGEeM8e7oOed6ZWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.11.7" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true, + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.6.0.tgz", + "integrity": "sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "cross-spawn": "^7.0.6", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^8.0.1", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^6.0.0", + "pretty-ms": "^9.2.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.1.1" + }, + "engines": { + "node": "^18.19.0 || >=20.5.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/express/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/express/node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fast-copy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz", + "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-redact": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", + "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fdir": { + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.5.tgz", + "integrity": "sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw==", + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "license": "MIT" + }, + "node_modules/figures": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-type": { + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-20.5.0.tgz", + "integrity": "sha512-BfHZtG/l9iMm4Ecianu7P8HRD2tBHLtjXinm4X62XBOYzi7CYA7jyqfJzOvXHqzVrVPYqBo2/GvbARMaaJkKVg==", + "license": "MIT", + "dependencies": { + "@tokenizer/inflate": "^0.2.6", + "strtok3": "^10.2.0", + "token-types": "^6.0.0", + "uint8array-extras": "^1.4.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/find-cache-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-5.0.0.tgz", + "integrity": "sha512-OuWNfjfP05JcpAP3JPgAKUhWefjMRfI5iAoSsvE24ANYWJaepAtlSgWECSVEuRgSXpyNEc9DJwG/TZpgcOqyig==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up-simple": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.1.tgz", + "integrity": "sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/flattie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.1.tgz", + "integrity": "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/flydrive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/flydrive/-/flydrive-1.2.0.tgz", + "integrity": "sha512-l9ix5MhBE8bVwxyHdFku6z5KhGOCOXQDI9xGNIlACSz9UrDFQxAB1I6W0qffZiOBBDambiJZlEYBCxlvF4U7fw==", + "license": "MIT", + "dependencies": { + "@humanwhocodes/retry": "^0.4.2", + "@poppinss/utils": "^6.9.2", + "etag": "^1.8.1", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">=20.6.0" + }, + "peerDependencies": { + "@aws-sdk/client-s3": "^3.577.0", + "@aws-sdk/s3-request-presigner": "^3.577.0", + "@google-cloud/storage": "^7.10.2" + }, + "peerDependenciesMeta": { + "@aws-sdk/client-s3": { + "optional": true + }, + "@aws-sdk/s3-request-presigner": { + "optional": true + }, + "@google-cloud/storage": { + "optional": true + } + } + }, + "node_modules/flydrive/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/flydrive/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/focus-trap": { + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.5.tgz", + "integrity": "sha512-7Ke1jyybbbPZyZXFxEftUtxFGLMpE2n6A+z//m4CRDlj0hW+o3iYSmh8nFlYMurOiJVDmJRilUQtJr08KfIxlg==", + "license": "MIT", + "dependencies": { + "tabbable": "^6.2.0" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/form-data-encoder": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-4.0.2.tgz", + "integrity": "sha512-KQVhvhK8ZkWzxKxOr56CPulAhH3dobtuQ4+hNQ+HekH/Wp5gSOafqRAeTphQUJAIk0GBvHZgJ2ZGRWd5kphMuw==", + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/form-data/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/form-data/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/formdata-node": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-6.0.3.tgz", + "integrity": "sha512-8e1++BCiTzUno9v5IZ2J6bv4RU+3UKDmqWUQD0MIMVCd9AdhWkO1gw57oo1mNEX1dMq2EGI+FbWz4B92pscSQg==", + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/formidable": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.5.tgz", + "integrity": "sha512-Oz5Hwvwak/DCaXVVUtPn4oLMLLy1CdclLKO1LFgU7XzDpVMUU5UjlSLpGMocyQNNk8F6IJW9M/YdooSn2MRI+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@paralleldrive/cuid2": "^2.2.2", + "dezalgo": "^1.0.4", + "once": "^1.4.0", + "qs": "^6.11.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "license": "MIT" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gauge/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/gauge/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/gauge/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/gauge/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-port": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.1.0.tgz", + "integrity": "sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-source": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", + "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==", + "license": "Unlicense", + "dependencies": { + "data-uri-to-buffer": "^2.0.0", + "source-map": "^0.6.1" + } + }, + "node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/getopts": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz", + "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==", + "license": "MIT" + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", + "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.3", + "path-type": "^6.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "14.4.7", + "resolved": "https://registry.npmjs.org/got/-/got-14.4.7.tgz", + "integrity": "sha512-DI8zV1231tqiGzOiOzQWDhsBmncFW7oQDH6Zgy6pDPrqJuVZMtoSgPLLsBZQj8Jg4JFfwoOsDA8NGtLQLnIx2g==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^7.0.1", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^12.0.1", + "decompress-response": "^6.0.0", + "form-data-encoder": "^4.0.2", + "http2-wrapper": "^2.2.1", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^4.0.1", + "responselike": "^3.0.0", + "type-fest": "^4.26.1" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "license": "ISC" + }, + "node_modules/hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true, + "license": "MIT" + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/helmet-csp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-3.4.0.tgz", + "integrity": "sha512-a+YgzWw6dajqhQfb6ktxil0FsQuWTKzrLSUfy55dxS8fuvl1jidTIMPZ2udN15mjjcpBPgTHNHGF5tyWKYyR8w==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/help-me": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz", + "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==", + "dev": true, + "license": "MIT" + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/hot-hook": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/hot-hook/-/hot-hook-0.4.0.tgz", + "integrity": "sha512-D36jqIojBHqxfkel6r7QGfmal7HO3cFTnPKeZIpPsBtFdV3QPV7m42JTBDX3B/Ovi53RXbOix7t/uIeV2bfeRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.1", + "fast-glob": "^3.3.2", + "parse-imports": "^2.2.1", + "picomatch": "^4.0.2", + "read-package-up": "^11.0.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/hpagent": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz", + "integrity": "sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/html-entities": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "license": "BSD-2-Clause" + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", + "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/http-status-codes": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.3.0.tgz", + "integrity": "sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==", + "license": "MIT" + }, + "node_modules/http2-wrapper": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz", + "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==", + "devOptional": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.18" + } + }, + "node_modules/ical-generator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/ical-generator/-/ical-generator-7.2.0.tgz", + "integrity": "sha512-7I34QvxWqIRthaao81lmapa0OjftfDaSBZmADjV0IqxVMUWT5ywlATRsv/hZN9Rgf2VgRsnMY+xUUaA4ZvAJLA==", + "license": "MIT", + "dependencies": { + "uuid-random": "^1.3.2" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@touch4it/ical-timezones": ">=1.6.0", + "@types/luxon": ">= 1.26.0", + "@types/mocha": ">= 8.2.1", + "dayjs": ">= 1.10.0", + "luxon": ">= 1.26.0", + "moment": ">= 2.29.0", + "moment-timezone": ">= 0.5.33", + "rrule": ">= 2.6.8" + }, + "peerDependenciesMeta": { + "@touch4it/ical-timezones": { + "optional": true + }, + "@types/luxon": { + "optional": true + }, + "@types/mocha": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + }, + "moment-timezone": { + "optional": true + }, + "rrule": { + "optional": true + } + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/igniculus": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/igniculus/-/igniculus-1.5.0.tgz", + "integrity": "sha512-vhj2J/cSzNg2G5tcK4Z1KZdeYmQa5keoxFULUYAxctK/zHJb1oraO7noCqnJxKe1b2eZdiiaSL1IHPOFAI8UYQ==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/index-to-position": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.1.0.tgz", + "integrity": "sha512-XPdx9Dq4t9Qk1mTMbWONJqU7boCoumEH7fRET37HX5+khDUl3J2W6PdALxhILYlIYx2amlwYcRPp28p0tSiojg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflation": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.1.0.tgz", + "integrity": "sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ioredis": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.6.1.tgz", + "integrity": "sha512-UxC0Yv1Y4WRJiGQxQkP0hfdL0/5/6YvdfOOClRgJ0qppSarkhneSa6UvkMkms0AkdGimSH3Ikqm+6mkMmX7vGA==", + "license": "MIT", + "dependencies": { + "@ioredis/commands": "^1.1.1", + "cluster-key-slot": "^1.1.0", + "debug": "^4.3.4", + "denque": "^2.1.0", + "lodash.defaults": "^4.2.0", + "lodash.isarguments": "^3.1.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.1.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ioredis" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-network-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", + "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "devOptional": true, + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "devOptional": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==", + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json11": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/json11/-/json11-2.0.2.tgz", + "integrity": "sha512-HIrd50UPYmP6sqLuLbFVm75g16o0oZrVfxrsY0EEys22klz8mRoWlX9KAEDOSOR9Q34rcxsyC8oDveGrCz5uLQ==", + "license": "MIT", + "bin": { + "json11": "dist/cli.mjs" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonschema": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.5.0.tgz", + "integrity": "sha512-K+A9hhqbn0f3pJX17Q/7H6yQfD/5OXgdrR5UE12gMXCiN9D5Xq2o5mddV2QEcX/bjla99ASsAAQUyMCCRWAEhw==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/junk": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/junk/-/junk-4.0.1.tgz", + "integrity": "sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/knex": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/knex/-/knex-3.1.0.tgz", + "integrity": "sha512-GLoII6hR0c4ti243gMs5/1Rb3B+AjwMOfjYm97pu0FOQa7JH56hgBxYf5WK2525ceSbBY1cjeZ9yk99GPMB6Kw==", + "license": "MIT", + "dependencies": { + "colorette": "2.0.19", + "commander": "^10.0.0", + "debug": "4.3.4", + "escalade": "^3.1.1", + "esm": "^3.2.25", + "get-package-type": "^0.1.0", + "getopts": "2.3.0", + "interpret": "^2.2.0", + "lodash": "^4.17.21", + "pg-connection-string": "2.6.2", + "rechoir": "^0.8.0", + "resolve-from": "^5.0.0", + "tarn": "^3.0.2", + "tildify": "2.0.0" + }, + "bin": { + "knex": "bin/cli.js" + }, + "engines": { + "node": ">=16" + }, + "peerDependenciesMeta": { + "better-sqlite3": { + "optional": true + }, + "mysql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-native": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "tedious": { + "optional": true + } + } + }, + "node_modules/knex-dynamic-connection": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/knex-dynamic-connection/-/knex-dynamic-connection-3.2.0.tgz", + "integrity": "sha512-+j6KeUSim0FR8EobOqA1a/TZbN9mahjzHzJgOfQVkv6PUnSqJp70c/5n63M2YVNgNHETyBIUhV8stuQ0T/mG3g==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.5", + "knex": "^3.1.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/knex/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/knex/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/knex/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/launch-editor": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.10.0.tgz", + "integrity": "sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/leaflet": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", + "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==", + "license": "BSD-2-Clause" + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "license": "MIT" + }, + "node_modules/lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/loupe": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", + "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==", + "dev": true, + "license": "MIT" + }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/luxon": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.6.1.tgz", + "integrity": "sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/mailcheck": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/mailcheck/-/mailcheck-1.1.1.tgz", + "integrity": "sha512-3WjL8+ZDouZwKlyJBMp/4LeziLFXgleOdsYu87piGcMLqhBzCsy2QFdbtAwv757TFC/rtqd738fgJw1tFQCSgA==" + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/memfs": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.17.2.tgz", + "integrity": "sha512-NgYhCOWgovOXSzvYgUW0LQ7Qy72rWQMGGFJDoWg4G30RHd3z77VbYdtJ4fembJXBy8pMIUA31XNAupobOQlwdg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/json-pack": "^1.0.3", + "@jsonjoy.com/util": "^1.3.0", + "tree-dump": "^1.0.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">= 4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + } + }, + "node_modules/memoize": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/memoize/-/memoize-10.1.0.tgz", + "integrity": "sha512-MMbFhJzh4Jlg/poq1si90XRlTZRDHVqdlz2mPyGJ6kqMpyHUyVpDd5gpFAvVehW64+RA1eKE9Yt8aSLY7w2Kgg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/memoize?sponsor=1" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.7.tgz", + "integrity": "sha512-2OfDPL+e03E0LrXaGYOtTFIYhiuzep94NSsuhrNULq+stylcJedcHdzHtz0atMUuGwJfFYs0YL5xeC/Ca2x0eQ==", + "funding": [ + "https://github.com/sponsors/broofa" + ], + "license": "MIT", + "bin": { + "mime": "bin/cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "dev": true, + "license": "MIT", + "bin": { + "mini-svg-data-uri": "cli.js" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true, + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "license": "MIT" + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "license": "MIT", + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/node-2fa": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/node-2fa/-/node-2fa-2.0.3.tgz", + "integrity": "sha512-PQldrOhjuoZyoydMvMSctllPN1ZPZ1/NwkEcgYwY9faVqE/OymxR+3awPpbWZxm6acLKqvmNqQmdqTsqYyflFw==", + "license": "Apache-2.0", + "dependencies": { + "@types/notp": "^2.0.0", + "notp": "^2.0.3", + "thirty-two": "1.0.2", + "tslib": "^2.1.0" + } + }, + "node_modules/node-addon-api": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.3.1.tgz", + "integrity": "sha512-lytcDEdxKjGJPTLEfW4mYMigRezMlyJY8W4wxJK8zE533Jlb8L8dRuObJFWg2P+AuOIxoCgKF+2Oq4d4Zd0OUA==", + "license": "MIT", + "engines": { + "node": "^18 || ^20 || >= 21" + } + }, + "node_modules/node-exceptions": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/node-exceptions/-/node-exceptions-4.0.1.tgz", + "integrity": "sha512-KJI+FawYOv74x60H6+zrBPfO2vvp9m0pHZi6SH8BBBuc67Irv11DsqY4Le4EBFq1/T5aXFU3hkLrMgtW7RNXxA==", + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemailer": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.10.1.tgz", + "integrity": "sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA==", + "license": "MIT-0", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "license": "ISC", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/notiwind": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/notiwind/-/notiwind-2.1.0.tgz", + "integrity": "sha512-u9owDTvjWtvf1DGdHB1/pVPBK47R1yeS0NAJfWPzwJTHk+JyyLby97fOkB63L1PRfbHkbUQD6BLEiPLzG3mwbQ==", + "license": "MIT", + "dependencies": { + "mitt": "^3.0.1" + }, + "peerDependencies": { + "vue": "^3.5.13" + } + }, + "node_modules/notp": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/notp/-/notp-2.0.3.tgz", + "integrity": "sha512-oBig/2uqkjQ5AkBuw4QJYwkEWa/q+zHxI5/I5z6IeP2NT0alpJFsP/trrfCC+9xOAgQSZXssNi962kp5KBmypQ==", + "engines": { + "node": "> v0.6.0" + } + }, + "node_modules/npm-run-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "node_modules/numeral": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz", + "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true, + "license": "MIT" + }, + "node_modules/on-exit-leak-free": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.2.tgz", + "integrity": "sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-cancelable": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-4.0.1.tgz", + "integrity": "sha512-wBowNApzd45EIKdO1LaU+LrMBwAcjfPaYtVzV3lmfM3gf8Z4CHZsiIqlM8TZZ8okYvh5A1cP6gTfCRQtwUpaUg==", + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/p-event": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-6.0.1.tgz", + "integrity": "sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "p-timeout": "^6.1.2" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-filter": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-4.1.0.tgz", + "integrity": "sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "p-map": "^7.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz", + "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz", + "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz", + "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/package-manager-detector": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.11.tgz", + "integrity": "sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "quansync": "^0.2.7" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-imports": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.2.1.tgz", + "integrity": "sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==", + "license": "Apache-2.0 AND MIT", + "dependencies": { + "es-module-lexer": "^1.5.3", + "slashes": "^3.0.12" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/peek-readable": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-7.0.0.tgz", + "integrity": "sha512-nri2TO5JE3/mRryik9LlHFT53cgHfRK0Lt0BAZQXku/AW3E6XLt2GaY8siWi7dvW/m1z0ecn+J+bpDa9ZN3IsQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/pg": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.16.0.tgz", + "integrity": "sha512-7SKfdvP8CTNXjMUzfcVTaI+TDzBEeaUnVwiVGZQD1Hh33Kpev7liQba9uLd4CfN8r9mCVsD0JIpq03+Unpz+kg==", + "license": "MIT", + "dependencies": { + "pg-connection-string": "^2.9.0", + "pg-pool": "^3.10.0", + "pg-protocol": "^1.10.0", + "pg-types": "2.2.0", + "pgpass": "1.0.5" + }, + "engines": { + "node": ">= 8.0.0" + }, + "optionalDependencies": { + "pg-cloudflare": "^1.2.5" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-cloudflare": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.2.5.tgz", + "integrity": "sha512-OOX22Vt0vOSRrdoUPKJ8Wi2OpE/o/h9T8X1s4qSkCedbNah9ei2W2765be8iMVxQUsvgT7zIAT2eIa9fs5+vtg==", + "license": "MIT", + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", + "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==", + "license": "MIT" + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "license": "ISC", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.10.0.tgz", + "integrity": "sha512-DzZ26On4sQ0KmqnO34muPcmKbhrjmyiO4lCCR0VwEd7MjmiKf5NTg/6+apUEu0NF7ESa37CGzFxH513CoUmWnA==", + "license": "MIT", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.10.0.tgz", + "integrity": "sha512-IpdytjudNuLv8nhlHs/UrVBhU0e78J0oIS/0AVdTbWxSOkFUVdsHC/NrorO6nXsQNDTT1kzDSOMJubBQviX18Q==", + "license": "MIT" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "license": "MIT", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pg/node_modules/pg-connection-string": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.9.0.tgz", + "integrity": "sha512-P2DEBKuvh5RClafLngkAuGe9OUlFV7ebu8w1kmaaOgPcpJd1RIFh7otETfI6hAR8YupOLFTY7nuvvIn7PLciUQ==", + "license": "MIT" + }, + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "license": "MIT", + "dependencies": { + "split2": "^4.1.0" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinia": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-3.0.3.tgz", + "integrity": "sha512-ttXO/InUULUXkMHpTdp9Fj4hLpD/2AoJdmAbAeW2yu1iy1k+pkFekQXw5VpC0/5p51IOR/jDaDRfRWRnMMsGOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^7.7.2" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "typescript": ">=4.4.4", + "vue": "^2.7.0 || ^3.5.11" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/pino": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.7.0.tgz", + "integrity": "sha512-vnMCM6xZTb1WDmLvtG2lE/2p+t9hDEIvTWJsu6FejkE62vB7gDhvzrpFR4Cw2to+9JNQxVnkAKVPA1KPB98vWg==", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^5.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-abstract-transport": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "license": "MIT", + "dependencies": { + "split2": "^4.0.0" + } + }, + "node_modules/pino-pretty": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-13.0.0.tgz", + "integrity": "sha512-cQBBIVG3YajgoUjo1FdKVRX6t9XPxwB9lcNJVD5GCnNM4Y6T12YYx8c6zEejxQsU0wrg9TwmDulcE9LR7qcJqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "colorette": "^2.0.7", + "dateformat": "^4.6.3", + "fast-copy": "^3.0.2", + "fast-safe-stringify": "^2.1.1", + "help-me": "^5.0.0", + "joycon": "^3.1.1", + "minimist": "^1.2.6", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pump": "^3.0.0", + "secure-json-parse": "^2.4.0", + "sonic-boom": "^4.0.1", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "pino-pretty": "bin.js" + } + }, + "node_modules/pino-std-serializers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", + "license": "MIT" + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.4.tgz", + "integrity": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-loader": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.1.tgz", + "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cosmiconfig": "^9.0.0", + "jiti": "^1.20.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pretty-ms": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.2.0.tgz", + "integrity": "sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "parse-ms": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/printable-characters": { + "version": "1.0.42", + "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", + "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==", + "license": "Unlicense" + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/process-warning": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-5.0.0.tgz", + "integrity": "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT" + }, + "node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qrcode": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz", + "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", + "license": "MIT", + "dependencies": { + "dijkstrajs": "^1.0.1", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/quansync": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.10.tgz", + "integrity": "sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==", + "devOptional": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "devOptional": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", + "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.6.3", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-package-up": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz", + "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up-simple": "^1.0.0", + "read-pkg": "^9.0.0", + "type-fest": "^4.6.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", + "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.3", + "normalize-package-data": "^6.0.0", + "parse-json": "^8.0.0", + "type-fest": "^4.6.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/parse-json": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz", + "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "index-to-position": "^1.1.0", + "type-fest": "^4.39.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "license": "MIT", + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/redis": { + "version": "5.5.5", + "resolved": "https://registry.npmjs.org/redis/-/redis-5.5.5.tgz", + "integrity": "sha512-x7vpciikEY7nptGzQrE5I+/pvwFZJDadPk/uEoyGSg/pZ2m/CX2n5EhSgUh+S5T7Gz3uKM6YzWcXEu3ioAsdFQ==", + "license": "MIT", + "dependencies": { + "@redis/bloom": "5.5.5", + "@redis/client": "5.5.5", + "@redis/json": "5.5.5", + "@redis/search": "5.5.5", + "@redis/time-series": "5.5.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/redis-errors": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", + "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/redis-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", + "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", + "license": "MIT", + "dependencies": { + "redis-errors": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "license": "Apache-2.0" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "license": "ISC" + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "license": "MIT" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rndm": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz", + "integrity": "sha512-fJhQQI5tLrQvYIYFpOnFinzv9dwmR7hRnUz1XqP3OJ1jIweTNOd6aTO4jwQSgcBSFUB+/KHJxuGneime+FdzOw==", + "license": "MIT" + }, + "node_modules/rollup": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.41.1.tgz", + "integrity": "sha512-cPmwD3FnFv8rKMBc1MxWCwVQFxwf1JEmSX3iQXrRVVG15zerAIXRjMFVWnd5Q5QvgKF7Aj+5ykXFhUl+QGnyOw==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.7" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.41.1", + "@rollup/rollup-android-arm64": "4.41.1", + "@rollup/rollup-darwin-arm64": "4.41.1", + "@rollup/rollup-darwin-x64": "4.41.1", + "@rollup/rollup-freebsd-arm64": "4.41.1", + "@rollup/rollup-freebsd-x64": "4.41.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.41.1", + "@rollup/rollup-linux-arm-musleabihf": "4.41.1", + "@rollup/rollup-linux-arm64-gnu": "4.41.1", + "@rollup/rollup-linux-arm64-musl": "4.41.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.41.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.41.1", + "@rollup/rollup-linux-riscv64-gnu": "4.41.1", + "@rollup/rollup-linux-riscv64-musl": "4.41.1", + "@rollup/rollup-linux-s390x-gnu": "4.41.1", + "@rollup/rollup-linux-x64-gnu": "4.41.1", + "@rollup/rollup-linux-x64-musl": "4.41.1", + "@rollup/rollup-win32-arm64-msvc": "4.41.1", + "@rollup/rollup-win32-ia32-msvc": "4.41.1", + "@rollup/rollup-win32-x64-msvc": "4.41.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "devOptional": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/saxon-js": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/saxon-js/-/saxon-js-2.7.0.tgz", + "integrity": "sha512-uGAv7H85EuWtAyyXVezXBg3/j2UvhEfT3N9+sqkGwCJVW33KlkadllDCdES/asCDklUo0UlM6178tZ0n3GPZjQ==", + "license": "SEE LICENSE IN LICENSE.txt", + "dependencies": { + "axios": "^1.5.1" + } + }, + "node_modules/schema-utils": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/secure-json-parse": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", + "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==", + "license": "BSD-3-Clause" + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true, + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/serialize-error": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-12.0.0.tgz", + "integrity": "sha512-ZYkZLAvKTKQXWuh5XpBw7CdbSzagarX39WyZ2H07CDLC5/KfsRGlIXV8d4+tfqX1M7916mRqR1QfNHSij+c9Pw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "type-fest": "^4.31.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true, + "license": "ISC" + }, + "node_modules/serve-index/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slashes": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/slashes/-/slashes-3.0.12.tgz", + "integrity": "sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==", + "license": "ISC" + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slugify": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", + "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/sonic-boom": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", + "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "node_modules/sortablejs": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz", + "integrity": "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==", + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "devOptional": true, + "license": "MIT", + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", + "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-lines": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/split-lines/-/split-lines-3.0.0.tgz", + "integrity": "sha512-d0TpRBL/VfKDXsk8JxPF7zgF5pCUDdBMSlEL36xBgVeaX448t+yGXcJaikUyzkoKOJ0l6KpMfygzJU9naIuivw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/stacktracey": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", + "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", + "license": "Unlicense", + "dependencies": { + "as-table": "^1.0.36", + "get-source": "^2.0.12" + } + }, + "node_modules/standard-as-callback": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", + "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==", + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/stringify-attributes": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/stringify-attributes/-/stringify-attributes-4.0.0.tgz", + "integrity": "sha512-6Hq3K153wTTfhEHb4V/viuqmb0DRn08JCrRnmqc4Q/tmoNuvd4DEyqkiiJXtvVz8ZSUhlCQr7zCpCVTgrelesg==", + "license": "MIT", + "dependencies": { + "escape-goat": "^4.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strtok3": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-10.2.2.tgz", + "integrity": "sha512-Xt18+h4s7Z8xyZ0tmBoRmzxcop97R4BAh+dXouUDCYn+Em+1P3qpkUfI5ueWLT8ynC5hZ+q4iPEmGG1urvQGBg==", + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/superagent": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", + "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", + "deprecated": "Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net", + "dev": true, + "license": "MIT", + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.4", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.1.2", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=6.4.0 <13 || >=14" + } + }, + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/superagent/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/superjson": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.2.tgz", + "integrity": "sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-anything": "^3.0.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/supertest": { + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.4.tgz", + "integrity": "sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "methods": "^1.1.2", + "superagent": "^8.1.2" + }, + "engines": { + "node": ">=6.4.0" + } + }, + "node_modules/supports-color": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.0.0.tgz", + "integrity": "sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/synckit": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.8.tgz", + "integrity": "sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.4" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/tabbable": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", + "license": "MIT" + }, + "node_modules/tailwindcss": { + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tailwindcss/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tailwindcss/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/tapable": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", + "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/tarn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz", + "integrity": "sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/tempura": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/tempura/-/tempura-0.4.1.tgz", + "integrity": "sha512-NQ4Cs23jM6UUp3CcS5vjmyjTC6dtA5EsflBG2cyG0wZvP65AV26tJ920MGvTRYIImCY13RBpOhc7q4/pu+FG5A==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/terminal-size": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/terminal-size/-/terminal-size-4.0.0.tgz", + "integrity": "sha512-rcdty1xZ2/BkWa4ANjWRp4JGpda2quksXIHgn5TMjNBPZfwzJIgR68DKfSYiTL+CZWowDX/sbOo5ME/FRURvYQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.40.0.tgz", + "integrity": "sha512-cfeKl/jjwSR5ar7d0FGmave9hFGJT8obyo0z+CrQOylLDbk7X81nPU6vq9VORa5jU30SkDnT2FXjLbR8HLP+xA==", + "devOptional": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.14.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "devOptional": true, + "license": "MIT", + "peer": true + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/thingies": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", + "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "dev": true, + "license": "Unlicense", + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "tslib": "^2" + } + }, + "node_modules/thirty-two": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/thirty-two/-/thirty-two-1.0.2.tgz", + "integrity": "sha512-OEI0IWCe+Dw46019YLl6V10Us5bi574EvlJEOcAkB29IzQ/mYD1A6RyNHLjZPiHCmuodxvgF6U+vZO1L15lxVA==", + "engines": { + "node": ">=0.2.6" + } + }, + "node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "license": "MIT", + "dependencies": { + "real-require": "^0.2.0" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tildify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", + "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/time-span": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", + "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "convert-hrtime": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tmp-cache": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tmp-cache/-/tmp-cache-1.1.0.tgz", + "integrity": "sha512-j040fkL/x+XAZQ9K3bKGEPwgYhOZNBQLa3NXEADUiuno9C+3N2JJA4bVPDREixp604G3/vTXWA3DIPpA9lu1RQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toastify-js": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/toastify-js/-/toastify-js-1.12.0.tgz", + "integrity": "sha512-HeMHCO9yLPvP9k0apGSdPUWrUbLnxUKNFzgUoZp1PHCLploIX/4DSQ7V8H25ef+h4iO9n0he7ImfcndnN6nDrQ==", + "license": "MIT" + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/token-types": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-6.0.0.tgz", + "integrity": "sha512-lbDrTLVsHhOMljPscd0yitpozq7Ga2M5Cvez5AjGg8GASBjtt6iERCAJ93yommPmz62fb45oFIXHEZ3u9bfJEA==", + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/tree-dump": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.3.tgz", + "integrity": "sha512-il+Cv80yVHFBwokQSfd4bldvr1Md951DpgAGfmhydt04L+YzHgubm2tQ7zueWDcGENKHq0ZvGFR/hjvNXilHEg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/truncatise": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/truncatise/-/truncatise-0.0.8.tgz", + "integrity": "sha512-cXzueh9pzBCsLzhToB4X4gZCb3KYkrsAcBAX97JnazE74HOl3cpBJYEV7nabHeG/6/WXCU5Yujlde/WPBUwnsg==", + "license": "MIT" + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/ts-loader": { + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.2.tgz", + "integrity": "sha512-Qo4piXvOTWcMGIgRiuFa6nHNm+54HbYaZCKqc9eeZCLRy3XqafQgwX2F7mofrbJG3g7EEb+lkiR+z2Lic2s3Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4", + "source-map": "^0.7.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-loader/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-loader/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/ts-morph": { + "version": "23.0.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-23.0.0.tgz", + "integrity": "sha512-FcvFx7a9E8TUe6T3ShihXJLiJOiqyafzFKUO4aqIHDUCIvADdGNShcbc2W5PMr3LerXRv7mafvFZ9lRENxJmug==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@ts-morph/common": "~0.24.0", + "code-block-writer": "^13.0.1" + } + }, + "node_modules/ts-node-maintained": { + "version": "10.9.5", + "resolved": "https://registry.npmjs.org/ts-node-maintained/-/ts-node-maintained-10.9.5.tgz", + "integrity": "sha512-p8LJFxBTE3YZYGcOMxWKEpaY2nz55NyOg+mTDIOW/MrOIUTAAb7+UkleRu5z90P/fCVVv5pXN1/nb92G/tSNyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node-maintained/node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "license": "MIT", + "engines": { + "node": ">=0.6.x" + } + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "license": "MIT", + "dependencies": { + "random-bytes": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uint8array-extras": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-1.4.0.tgz", + "integrity": "sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "license": "MIT" + }, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/uuid-random": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/uuid-random/-/uuid-random-1.3.2.tgz", + "integrity": "sha512-UOzej0Le/UgkbWEO8flm+0y+G+ljUon1QWTEZOq1rnMAsxo2+SckbiZdKzAHHlVh6gJqI1TjC/xwgR50MuCrBQ==", + "license": "MIT" + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, + "license": "MIT" + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validator": { + "version": "13.15.15", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.15.tgz", + "integrity": "sha512-BgWVbCI72aIQy937xbawcs+hrVaN/CZ2UwutgaJ36hGqRrLNM+f5LUT/YPRbo8IV/ASeFzXszezV+y2+rq3l8A==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", + "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-plugin-restart": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/vite-plugin-restart/-/vite-plugin-restart-0.4.2.tgz", + "integrity": "sha512-9aWN2ScJ8hbT7aC8SDeZnsbWapnslz1vhNq6Vgf2GU9WdN4NExlrWhtnu7pmtOUG3Guj8y6lPcUZ+ls7SVP33w==", + "license": "MIT", + "dependencies": { + "micromatch": "^4.0.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.9.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + } + }, + "node_modules/vue": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.16.tgz", + "integrity": "sha512-rjOV2ecxMd5SiAmof2xzh2WxntRcigkX/He4YFJ6WdRvVUrbt6DxC1Iujh10XLl8xCDRDtGKMeO3D+pRQ1PP9w==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.16", + "@vue/compiler-sfc": "3.5.16", + "@vue/runtime-dom": "3.5.16", + "@vue/server-renderer": "3.5.16", + "@vue/shared": "3.5.16" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-facing-decorator": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/vue-facing-decorator/-/vue-facing-decorator-3.0.4.tgz", + "integrity": "sha512-Lk90PevJllB6qRRdLvLFjATZrv00nof1Ob6afavKL7Pc7V3eEin3vhdvEDRORdWKVvNoXhJbHejngWVuT0Pt0g==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-loader": { + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.4.2.tgz", + "integrity": "sha512-yTKOA4R/VN4jqjw4y5HrynFL8AK0Z3/Jt7eOJXEitsm0GMRHDBjCfCiuTiLP7OESvsZYo2pATCWhDqxC5ZrM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "watchpack": "^2.4.0" + }, + "peerDependencies": { + "webpack": "^4.1.0 || ^5.0.0-0" + }, + "peerDependenciesMeta": { + "@vue/compiler-sfc": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/vuedraggable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-4.1.0.tgz", + "integrity": "sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==", + "license": "MIT", + "dependencies": { + "sortablejs": "1.14.0" + }, + "peerDependencies": { + "vue": "^3.0.1" + } + }, + "node_modules/watchpack": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", + "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/webpack": { + "version": "5.99.9", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.9.tgz", + "integrity": "sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.2", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz", + "integrity": "sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^4.6.0", + "mime-types": "^2.1.31", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-server": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.2.tgz", + "integrity": "sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.13", + "@types/connect-history-api-fallback": "^1.5.4", + "@types/express": "^4.17.21", + "@types/express-serve-static-core": "^4.17.21", + "@types/serve-index": "^1.9.4", + "@types/serve-static": "^1.15.5", + "@types/sockjs": "^0.3.36", + "@types/ws": "^8.5.10", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.2.1", + "chokidar": "^3.6.0", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "express": "^4.21.2", + "graceful-fs": "^4.2.6", + "http-proxy-middleware": "^2.0.9", + "ipaddr.js": "^2.1.0", + "launch-editor": "^2.6.1", + "open": "^10.0.3", + "p-retry": "^6.2.0", + "schema-utils": "^4.2.0", + "selfsigned": "^2.4.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^7.4.2", + "ws": "^8.18.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-dev-server/node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-server/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/webpack-dev-server/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.2.tgz", + "integrity": "sha512-ykKKus8lqlgXX/1WjudpIEjqsafjOTcOJqxnAbMLAu/KCsDCJ6GBtvscewvTkrn24HsnvFwrSCbenFrhtcCsAA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/webpack/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "license": "ISC" + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wide-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wide-align/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wide-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", + "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xmlbuilder2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder2/-/xmlbuilder2-3.1.1.tgz", + "integrity": "sha512-WCSfbfZnQDdLQLiMdGUQpMxxckeQ4oZNMNhLVkcekTu7xhD4tuUDyAPoY8CwXvBYE6LwBHd6QW2WZXlOWr1vCw==", + "license": "MIT", + "dependencies": { + "@oozcitak/dom": "1.15.10", + "@oozcitak/infra": "1.0.8", + "@oozcitak/util": "8.3.8", + "js-yaml": "3.14.1" + }, + "engines": { + "node": ">=12.0" + } + }, + "node_modules/xmlbuilder2/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/xmlbuilder2/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/xslt3": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/xslt3/-/xslt3-2.7.0.tgz", + "integrity": "sha512-Vt32LhCt4CQULtGPWlGW++PhS+o3LA6z3PDvig9lDfbo2cIHcaEnyrRYDTilw4N0EbAyxCaw5E0B+DICZEYktQ==", + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "dependencies": { + "axios": "^1.5.1", + "saxon-js": "^2.7.0" + }, + "bin": { + "xslt3": "xslt3.js" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC" + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/yaml": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", + "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", + "devOptional": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + } + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/yargs/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", + "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", + "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/youch": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/youch/-/youch-3.3.4.tgz", + "integrity": "sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==", + "license": "MIT", + "dependencies": { + "cookie": "^0.7.1", + "mustache": "^4.2.0", + "stacktracey": "^2.1.8" + } + }, + "node_modules/youch-core": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/youch-core/-/youch-core-0.3.2.tgz", + "integrity": "sha512-fusrlIMLeRvTFYLUjJ9KzlGC3N+6MOPJ68HNj/yJv2nz7zq8t4HEviLms2gkdRPUS7F5rZ5n+pYx9r88m6IE1g==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@poppinss/exception": "^1.2.0", + "error-stack-parser-es": "^1.0.5" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/youch-terminal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/youch-terminal/-/youch-terminal-2.2.3.tgz", + "integrity": "sha512-/PE77ZwG072tXBvF47S9RL9/G80u86icZ5QwyjblyM67L4n/T5qQeM3Xrecbu8kkDDr/9T/PTj/X+6G/OSRQug==", + "license": "MIT", + "dependencies": { + "kleur": "^4.1.5", + "string-width": "^4.2.3", + "wordwrap": "^1.0.0" + } + }, + "node_modules/youch-terminal/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/youch-terminal/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/youch-terminal/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/youch/node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } } + } } diff --git a/package.json b/package.json index 8adc18e..989a29e 100644 --- a/package.json +++ b/package.json @@ -1,95 +1,151 @@ { - "name": "myapp", - "version": "1.0.0", - "private": true, - "scripts": { - "type-check": "tsc --noEmit", - "dev": "node ace serve --watch", - "build": "node ace build --production", - "start": "node server.js", - "lint": "eslint . --ext=.ts", - "format": "prettier --write .", - "format-check": "prettier --check ./**/*.{ts,js}", - "test": "node ace test" - }, - "eslintIgnore": [ - "build" - ], - "alias": { - "vue": "./node_modules/vue/dist/vue.esm-bundler.js" - }, - "devDependencies": { - "@adonisjs/assembler": "^5.7.0", - "@babel/core": "^7.20.12", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-decorators": "^7.20.13", - "@babel/plugin-transform-runtime": "^7.19.6", - "@babel/preset-env": "^7.20.2", - "@babel/preset-typescript": "^7.18.6", - "@japa/preset-adonis": "^1.0.16", - "@japa/runner": "^2.0.8", - "@mdi/js": "^7.1.96", - "@symfony/webpack-encore": "^4.2.0", - "@tailwindcss/forms": "^0.5.2", - "@types/clamscan": "^2.0.4", - "@types/leaflet": "^1.9.3", - "@types/node": "^20.1.1", - "@types/proxy-addr": "^2.0.0", - "@types/source-map-support": "^0.5.6", - "@vue/tsconfig": "^0.4.0", - "adonis-preset-ts": "^2.1.0", - "autoprefixer": "^10.4.13", - "babel-preset-typescript-vue3": "^2.0.17", - "chart.js": "^4.2.0", - "eslint": "^8.32.0", - "eslint-config-prettier": "^9.0.0", - "eslint-plugin-adonis": "^2.1.1", - "eslint-plugin-prettier": "^5.0.0-alpha.2", - "naive-ui": "^2.34.3", - "numeral": "^2.0.6", - "pinia": "^2.0.30", - "pino-pretty": "^10.0.0", - "postcss-loader": "^7.0.2", - "prettier": "^3.0.0", - "supertest": "^6.3.3", - "tailwindcss": "^3.2.4", - "ts-loader": "^9.4.2", - "typescript": "^5.1.3", - "vue": "^3.2.47", - "vue-facing-decorator": "^3.0.0", - "vue-loader": "^17.0.1", - "xslt3": "^2.5.0", - "youch": "^3.2.0", - "youch-terminal": "^2.1.4" - }, - "dependencies": { - "@adonisjs/auth": "^8.2.3", - "@adonisjs/core": "^5.9.0", - "@adonisjs/lucid": "^18.3.0", - "@adonisjs/repl": "^3.1.11", - "@adonisjs/session": "^6.4.0", - "@adonisjs/shield": "^7.1.0", - "@adonisjs/view": "^6.1.5", - "@eidellev/adonis-stardust": "^3.0.0", - "@eidellev/inertia-adonisjs": "^8.0.0", - "@fontsource/archivo-black": "^5.0.1", - "@fontsource/inter": "^5.0.1", - "@inertiajs/inertia": "^0.11.1", - "@inertiajs/vue3": "^1.0.0", - "bcryptjs": "^2.4.3", - "clamscan": "^2.1.2", - "crypto": "^1.0.1", - "dayjs": "^1.11.7", - "http-status-codes": "^2.2.0", - "leaflet": "^1.9.3", - "luxon": "^3.2.1", - "notiwind": "^2.0.0", - "pg": "^8.9.0", - "proxy-addr": "^2.0.7", - "reflect-metadata": "^0.1.13", - "saxon-js": "^2.5.0", - "source-map-support": "^0.5.21", - "vuedraggable": "^4.1.0", - "xmlbuilder2": "^3.1.1" - } + "name": "myapp", + "version": "1.0.0", + "private": true, + "scripts": { + "type-check": "tsc --noEmit", + "dev": "node ace serve", + "devInspect": "node ace serve --watch --node-args='--inspect'", + "compress:xslt": "./node_modules/xslt3/xslt3.js -xsl:public/assets2/datasetxml2oai-pmh.xslt -export:public/assets2/datasetxml2oai.sef.json -t -nogo '-ns:##html5'", + "compress:solr": "./node_modules/xslt3/xslt3.js -xsl:public/assets2/solr.xslt -export:public/assets2/solr.sef.json -t -nogo '-ns:##html5'", + "compress:doi": "./node_modules/xslt3/xslt3.js -xsl:public/assets2/doi_datacite.xslt -export:public/assets2/doi_datacite.sef.json -t -nogo '-ns:##html5'", + "build": "node ace build --ignore-ts-errors", + "start": "node server.js", + "lint": "eslint . --ext=.ts", + "format": "prettier --write .", + "format-check": "prettier --check ./**/*.{ts,js}", + "test": "node ace test" + }, + "eslintConfig": { + "ignorePatterns": [ + "build" + ] + }, + "alias": { + "vue": "./node_modules/vue/dist/vue.esm-bundler.js" + }, + "devDependencies": { + "@adonisjs/assembler": "^7.1.1", + "@adonisjs/tsconfig": "^1.4.0", + "@headlessui/vue": "^1.7.23", + "@japa/assert": "^4.0.1", + "@japa/plugin-adonisjs": "^4.0.0", + "@japa/runner": "^4.2.0", + "@mdi/js": "^7.1.96", + "@poppinss/utils": "^6.7.2", + "@swc/wasm": "^1.10.14", + "@tailwindcss/forms": "^0.5.2", + "@types/bcryptjs": "^2.4.6", + "@types/clamscan": "^2.0.4", + "@types/escape-html": "^1.0.4", + "@types/fs-extra": "^11.0.4", + "@types/leaflet": "^1.9.16", + "@types/luxon": "^3.4.2", + "@types/node": "^22.10.2", + "@types/proxy-addr": "^2.0.0", + "@types/qrcode": "^1.5.5", + "@types/source-map-support": "^0.5.6", + "@types/sprintf-js": "^1.1.4", + "@types/supertest": "^6.0.2", + "@vitejs/plugin-vue": "^5.2.1", + "autoprefixer": "^10.4.13", + "babel-preset-typescript-vue3": "^2.0.17", + "chart.js": "^4.2.0", + "dotenv-webpack": "^8.0.1", + "eslint": "^8.57.1", + "eslint-config-prettier": "^10.0.1", + "eslint-plugin-adonis": "^2.1.1", + "eslint-plugin-prettier": "^5.0.0-alpha.2", + "hot-hook": "^0.4.0", + "numeral": "^2.0.6", + "pinia": "^3.0.2", + "pino-pretty": "^13.0.0", + "postcss-loader": "^8.1.1", + "prettier": "^3.4.2", + "supertest": "^6.3.3", + "tailwindcss": "^3.4.17", + "ts-loader": "^9.4.2", + "ts-node-maintained": "^10.9.5", + "typescript": "~5.7", + "vite": "^6.0.11", + "vue": "^3.4.26", + "vue-facing-decorator": "^3.0.0", + "vue-loader": "^17.0.1", + "webpack-dev-server": "^5.1.0", + "xslt3": "^2.5.0" + }, + "dependencies": { + "@adonisjs/auth": "^9.2.4", + "@adonisjs/bodyparser": "^10.0.1", + "@adonisjs/core": "^6.17.0", + "@adonisjs/cors": "^2.2.1", + "@adonisjs/drive": "^3.2.0", + "@adonisjs/inertia": "^2.1.3", + "@adonisjs/lucid": "^21.5.1", + "@adonisjs/mail": "^9.2.2", + "@adonisjs/redis": "^9.1.0", + "@adonisjs/session": "^7.5.0", + "@adonisjs/shield": "^8.1.1", + "@adonisjs/static": "^1.1.1", + "@adonisjs/vite": "^4.0.0", + "@eidellev/adonis-stardust": "^3.0.0", + "@fontsource/archivo-black": "^5.0.1", + "@fontsource/inter": "^5.0.1", + "@inertiajs/inertia": "^0.11.1", + "@inertiajs/vue3": "^2.0.3", + "@opensearch-project/opensearch": "^3.2.0", + "@phc/format": "^1.0.0", + "@poppinss/manager": "^5.0.2", + "@vinejs/vine": "^3.0.0", + "argon2": "^0.43.0", + "axios": "^1.7.9", + "bcrypt": "^5.1.1", + "bcryptjs": "^2.4.3", + "clamscan": "^2.1.2", + "dayjs": "^1.11.7", + "deep-email-validator": "^0.1.21", + "edge.js": "^6.0.1", + "escape-html": "^1.0.3", + "focus-trap": "^7.5.4", + "fs-extra": "^11.2.0", + "http-status-codes": "^2.2.0", + "leaflet": "^1.9.3", + "luxon": "^3.2.1", + "mime": "^4.0.4", + "node-2fa": "^2.0.3", + "node-exceptions": "^4.0.1", + "notiwind": "^2.0.0", + "pg": "^8.9.0", + "qrcode": "^1.5.3", + "redis": "^5.0.0", + "reflect-metadata": "^0.2.1", + "saxon-js": "^2.5.0", + "toastify-js": "^1.12.0", + "vuedraggable": "^4.1.0", + "xmlbuilder2": "^3.1.1" + }, + "hotHook": { + "boundaries": [ + "./app/Controllers/**/*.ts", + "./app/middleware/*.ts" + ] + }, + "type": "module", + "imports": { + "#controllers/*": "./app/Controllers/*.js", + "#exceptions/*": "./app/exceptions/*.js", + "#models/*": "./app/models/*.js", + "#services/*": "./app/services/*.js", + "#listeners/*": "./app/listeners/*.js", + "#events/*": "./app/events/*.js", + "#middleware/*": "./app/middleware/*.js", + "#validators/*": "./app/validators/*.js", + "#start/*": "./start/*.js", + "#config/*": "./config/*.js", + "#app/*": "./app/*.js", + "#database/*": "./database/*.js", + "#contracts/*": "./contracts/*.js", + "#providers/*": "./providers/*.js", + "#library/*": "./app/Library/*.js" + } } diff --git a/postcss.config.cjs b/postcss.config.cjs new file mode 100644 index 0000000..4ae9206 --- /dev/null +++ b/postcss.config.cjs @@ -0,0 +1,11 @@ +module.exports = { + plugins: { + // 'postcss-import': {}, + // 'postcss-nesting': {}, + 'tailwindcss/nesting': {}, + // "@tailwindcss/postcss": {}, + // tailwindcss: {}, + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/postcss.config.js b/postcss.config.js deleted file mode 100644 index 67cdf1a..0000000 --- a/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -}; diff --git a/providers/AppProvider.ts b/providers/AppProvider.ts deleted file mode 100644 index 37e29b6..0000000 --- a/providers/AppProvider.ts +++ /dev/null @@ -1,45 +0,0 @@ -import type { ApplicationContract } from '@ioc:Adonis/Core/Application'; -import type Hash from '@ioc:Adonis/Core/Hash'; -// import HttpContextContract from '@ioc:Adonis/Core/HttpContext'; -import type Response from '@ioc:Adonis/Core/Response'; -import { LaravelHash } from './HashDriver'; - -export default class AppProvider { - constructor(protected app: ApplicationContract) {} - - public register() { - // Register your own bindings - } - - public async boot() { - // IoC container is ready - const hashInstance: typeof Hash = this.app.container.use('Adonis/Core/Hash'); - hashInstance.extend('bcrypt', () => { - return new LaravelHash(); - }); - - const responseInstance: typeof Response = this.app.container.use('Adonis/Core/Response'); - responseInstance.macro('flash', function (key: string, message: any) { - this.ctx!.session.flash(key, message); - return this; - }); - responseInstance.macro('toRoute', function (route: string) { - this.redirect().toRoute(route); - return this; - }); - // this.app.container.singleton('Adonis/Core/Response', () => { - // return FlashResponse; - // }); - - // this.app.container.singleton('Adonis/Core/HttpContext', () => { - // }); - } - - public async ready() { - // App is ready - } - - public async shutdown() { - // Cleanup, since app is going down - } -} diff --git a/providers/DoiProvider/index.ts b/providers/DoiProvider/index.ts new file mode 100644 index 0000000..2fa3568 --- /dev/null +++ b/providers/DoiProvider/index.ts @@ -0,0 +1,40 @@ +import { ApplicationService } from "@adonisjs/core/types"; + +/* +|-------------------------------------------------------------------------- +| Provider +|-------------------------------------------------------------------------- +| +| Your application is not ready when this file is loaded by the framework. +| Hence, the top level imports relying on the IoC container will not work. +| You must import them inside the life-cycle methods defined inside +| the provider class. +| +| @example: +| +| public async ready () { +| const Database = this.app.container.resolveBinding('Adonis/Lucid/Database') +| const Event = this.app.container.resolveBinding('Adonis/Core/Event') +| Event.on('db:query', Database.prettyPrint) +| } +| +*/ +export default class DoiProvider { + constructor(protected app: ApplicationService) {} + + public register() { + // Register your own bindings + } + + public async boot() { + // All bindings are ready, feel free to use them + } + + public async ready() { + // App is ready + } + + public async shutdown() { + // Cleanup, since app is going down + } +} diff --git a/providers/HashDriver/helpers.ts b/providers/HashDriver/helpers.ts new file mode 100644 index 0000000..21c55fc --- /dev/null +++ b/providers/HashDriver/helpers.ts @@ -0,0 +1,65 @@ +import { type ScryptOptions } from 'node:crypto'; +// export declare const MAX_UINT32: number; +// export declare const MAX_UINT24: number; + +import { promisify } from 'node:util'; +import { randomBytes, scrypt } from 'node:crypto'; +import phc from '@phc/format'; + +/** + * Validates a number to be within a given range. + */ +export class RangeValidator { + // static validate(label: string, value: unknown, range: [number, number]): void; + static validate(label: string, value: unknown, range: [number, number]): void { + if (typeof value !== 'number' || !Number.isInteger(value)) { + throw new TypeError(`The "${label}" option must be an integer`); + } + const [min, max] = range; + if (value < min || value > max) { + throw new TypeError(`The "${label}" option must be in the range (${min} <= ${label} <= ${max})`); + } + } +} +/** + * Validates a value to be one of the allowed values + */ +export class EnumValidator { + // static validate(label: string, value: unknown, allowedValues: any[]): void; + static validate(label: string, value: unknown, allowedValues: any[]): void { + if (!allowedValues.includes(value)) { + throw new TypeError(`The "${label}" option must be one of: ${allowedValues}`); + } + } +} +/** + * Async function to generate random bytes + */ +// export declare const randomBytesAsync: (arg1: number) => Promise<Buffer>; +export const randomBytesAsync: (arg1: number) => Promise<Buffer> = promisify(randomBytes); +/** + * Async version of scrypt. + */ +// export declare const scryptAsync: (arg1: string, arg2: Buffer, arg3: number, arg4: ScryptOptions) => Promise<Buffer>; +export const scryptAsync: (arg1: string, arg2: Buffer, arg3: number, arg4: ScryptOptions) => Promise<Buffer> = promisify(scrypt); + +export class PhcFormatter { + /** + * Serialize salt and hash with predefined options. + */ + serialize(salt: Buffer, hash: Buffer, options: any): string { + return phc.serialize({ + id: options.id, + version: options.version, + params: options.params, + salt, + hash, + }); + } + /** + * Deserialize a PHC string to an object + */ + deserialize(phcString: string): DeserializeResult { + return phc.deserialize(phcString); + } +} diff --git a/providers/HashDriver/index.ts b/providers/HashDriver/index.ts index cad186f..b5ae5e9 100644 --- a/providers/HashDriver/index.ts +++ b/providers/HashDriver/index.ts @@ -1,9 +1,33 @@ -import { HashDriverContract } from '@ioc:Adonis/Core/Hash'; // const bcrypt = require("bcrypt"); import bcrypt from 'bcryptjs'; +// import bcrypt from 'bcrypt/bcrypt.js' +import { HashDriverContract, ManagerDriverFactory } from '@adonisjs/core/types/hash'; +import { EnumValidator, RangeValidator, PhcFormatter } from './helpers.js'; + +/** + * Config accepted by the hash driver + */ +export type PbkdfConfig = { + rounds: number; + saltSize?: number; + version?: number; +}; const saltRounds = 10; -export class LaravelHash implements HashDriverContract { +export class LaravelDriver implements HashDriverContract { + private config: PbkdfConfig; + // private binding; + private phcFormatter = new PhcFormatter(); + + constructor(config: {}) { + this.config = { + rounds: 10, + saltSize: 16, + version: 98, + ...config, + }; + } + public async make(value: string) { const hashedValue = bcrypt.hashSync(value, saltRounds); return hashedValue; @@ -18,4 +42,100 @@ export class LaravelHash implements HashDriverContract { } return await bcrypt.compareSync(plainValue, newHash); } + + /** + * Check if the value is a valid hash. This method just checks + * for the formatting of the hash. + * + * ```ts + * bcrypt.isValidHash('hello world') // false + * bcrypt.isValidHash('$bcrypt$v=98$r=10$Jtxi46WJ26OQ0khsYLLlnw$knXGfuRFsSjXdj88JydPOnUIglvm1S8') + * ``` + */ + public isValidHash(value: string) { + try { + this.validatePhcString(value); + return true; + } catch { + return false; + } + } + + public needsReHash(value: string): boolean { + if (value.startsWith('$2b') || value.startsWith('$2a')) { + return true; + } + const phcNode = this.phcFormatter.deserialize(value); + if (phcNode.id !== 'bcrypt') { + return true; + } + if (phcNode.version !== this.config.version) { + return true; + } + if (!phcNode.params) { + return true; + } + if (phcNode.params.r !== this.config.rounds) { + return true; + } + return false; + } + + /** + * Validate phc hash string + */ + private validatePhcString(phcString: string) { + const phcNode = this.phcFormatter.deserialize(phcString); + if (!phcNode.version) { + phcNode.version = 97; + } + if (phcNode.id !== 'bcrypt') { + throw new TypeError(`Invalid "id" found in the phc string`); + } + if (!phcNode.params) { + throw new TypeError(`No "params" found in the phc string`); + } + if (!phcNode.salt) { + throw new TypeError(`No "salt" found in the phc string`); + } + if (!phcNode.hash) { + throw new TypeError(`No "hash" found in the phc string`); + } + if (!phcNode.hash.byteLength) { + throw new TypeError(`No "hash" found in the phc string`); + } + RangeValidator.validate('salt.byteLength', phcNode.salt.byteLength, [8, 1024]); + EnumValidator.validate('version', phcNode.version, [97, 98]); + RangeValidator.validate('r', phcNode.params.r, [4, 31]); + return { + id: phcNode.id, + version: phcNode.version, + hash: phcNode.hash, + salt: phcNode.salt, + params: { + r: phcNode.params.r, + }, + }; + } + + /** + * Dynamically importing underlying binding + */ + // private async importBinding() { + // if (this.binding) { + // return this.binding; + // } + // this.binding = await import('bcrypt'); + // return this.binding; + // } +} + +/** + * Factory function to reference the driver + * inside the config file. + */ +export function laravelDriver(config: PbkdfConfig): ManagerDriverFactory { + return () => { + return new LaravelDriver(config); + }; } diff --git a/providers/QueryBuilderProvider.ts b/providers/QueryBuilderProvider.ts deleted file mode 100644 index 67a4f4c..0000000 --- a/providers/QueryBuilderProvider.ts +++ /dev/null @@ -1,57 +0,0 @@ -import type { ApplicationContract } from '@ioc:Adonis/Core/Application'; - -/* -|-------------------------------------------------------------------------- -| Provider -|-------------------------------------------------------------------------- -| -| Your application is not ready when this file is loaded by the framework. -| Hence, the top level imports relying on the IoC container will not work. -| You must import them inside the life-cycle methods defined inside -| the provider class. -| -| @example: -| -| public async ready () { -| const Database = this.app.container.resolveBinding('Adonis/Lucid/Database') -| const Event = this.app.container.resolveBinding('Adonis/Core/Event') -| Event.on('db:query', Database.prettyPrint) -| } -| -*/ -export default class QueryBuilderProvider { - constructor(protected app: ApplicationContract) {} - - public register() { - // Register your own bindings - } - - public async boot() { - // All bindings are ready, feel free to use them - const { ModelQueryBuilder } = this.app.container.resolveBinding('Adonis/Lucid/Database'); - - ModelQueryBuilder.macro('pluck', async function (valueColumn: string, id?: string) { - let rolesPluck = {}; - (await this).forEach((user, index) => { - let idc; - if (!id) { - idc = index; - } else { - idc = user[id]; - } - const value = user[valueColumn]; - // rolesPluck[idc] = user.name; - rolesPluck[idc] = value; - }); - return rolesPluck; - }); - } - - public async ready() { - // App is ready - } - - public async shutdown() { - // Cleanup, since app is going down - } -} diff --git a/providers/app_provider.ts b/providers/app_provider.ts new file mode 100644 index 0000000..9f83880 --- /dev/null +++ b/providers/app_provider.ts @@ -0,0 +1,54 @@ +// // import HttpContextContract from '@ioc:Adonis/Core/HttpContext'; +// import { LaravelHash } from './HashDriver/index.js'; +import { ApplicationService } from '@adonisjs/core/types'; +// import { validator } from '@adonisjs/validator'; + +export default class AppProvider { + constructor(protected app: ApplicationService) {} + + public register() { + // Register your own bindings + + } + + public async boot() { + // IoC container is ready + await import('../src/extensions.js'); + + // const hashInstance: typeof hash = this.app.container.make('@adonisjs/core/services/hash'); + // hashInstance.extend('bcrypt', () => { + // return new LaravelHash(); + // }); + + // this.app.container.resolving('validator', (validator) => { + // validator.rule('foo', () => {}) + + // validator.rule('fileExtension', async (value, [extensions], { pointer, arrayExpressionPointer, errorReporter }) => { + // const allowedExtensions = extensions.map((ext: string) => ext.toLowerCase()); + // const uploadedFile = value; + + // if (!uploadedFile) { + // return; + // } + + // const extension = uploadedFile.extname.toLowerCase().replace('.', ''); + + // if (!allowedExtensions.includes(extension)) { + // errorReporter.report( + // pointer, + // 'fileExtension', + // 'Invalid file extension. Only {{ extensions }} files are allowed.', + // arrayExpressionPointer, + // ); + // } + // }); + } + + public async ready() { + // App is ready + } + + public async shutdown() { + // Cleanup, since app is going down + } +} diff --git a/providers/drive/drivers/local.ts b/providers/drive/drivers/local.ts new file mode 100644 index 0000000..7073cd0 --- /dev/null +++ b/providers/drive/drivers/local.ts @@ -0,0 +1,160 @@ +import fsExtra from 'fs-extra'; +// import { RouterContract } from '@ioc:Adonis/Core/Route'; +// import { Visibility, DriveFileStats, ContentHeaders, LocalDriverConfig, LocalDriverContract, DirectoryListingContract, LocalDriveListItem } from '@ioc:Adonis/Core/Drive'; + +import { + CannotGetMetaDataException, + CannotDeleteFileException, + CannotListDirectoryException, + CannotMoveFileException, + CannotGenerateUrlException, +} from '../exceptions/index.js'; +import PathPrefixer from '../path_prefixer/index.js'; +import { LocalDriverContract, LocalDriverConfig, DriverContract, DriveListItem } from '../src/types/drive.js'; +import { AsyncIterableArray } from '../src/iterable_array.js'; +import router from '@adonisjs/core/services/router' +/** + * Local driver interacts with the local file system + */ +export class LocalDriver implements LocalDriverContract { + private diskName: string; + private routeName: string; + private config; + // private router; + // private routeName; + + /** + * Reference to the underlying adapter. Which is + * fs-extra + */ + adapter: typeof fsExtra; + + /** + * Name of the driver + */ + name: 'local'; + /** + * Path prefixer used for prefixing paths with disk root + */ + private prefixer; + + // constructor(diskName: string, config: LocalDriverConfig, router: RouterContract); + constructor(diskName: string, config: LocalDriverConfig) { + this.diskName = diskName; + this.config = config; + // this.router = router; + this.routeName = ""; //LocalFileServer_1.LocalFileServer.makeRouteName(this.diskName); + /** + * Reference to the underlying adapter. Which is + * fs-extra + */ + this.adapter = fsExtra; + /** + * Name of the driver + */ + this.name = 'local'; + /** + * Path prefixer used for prefixing paths with disk root + */ + this.prefixer = PathPrefixer.fromPath(this.config.root); //root: '/storage/app/public', + } + + /** + * Returns a URL for a given location path + */ + public async getUrl(location: string) { + if (!this.config.serveFiles) { + throw CannotGenerateUrlException.invoke(location, this.diskName); + } + return router.makeUrl(this.routeName); + } + + /** + * A boolean to find if the location path exists or not + */ + public async exists(location: string): Promise<boolean> { + try { + let path_temp = this.makePath(location); //'/storage/app/files/421' + return await this.adapter.pathExists(path_temp); + } catch (error) { + throw CannotGetMetaDataException.invoke(location, 'exists', error); + } + } + + /** + * Make absolute path to a given location + */ + public makePath(location: string): string { + return this.prefixer.prefixPath(location); + } + + /** + * Remove a given location path + */ + // delete(location: string, ...args: any[]): Promise<void>; + public async delete(location: string): Promise<void> { + try { + await this.adapter.remove(this.makePath(location)); + } catch (error) { + throw CannotDeleteFileException.invoke(location, error); + } + } + + public async move(source: string, destination: string): Promise<void> { + try { + let sourcePath = this.makePath(source); //'/storage/app/public/tmp/rtwgliatumwwpd4vpayo4ymg' + let destinationPath = this.makePath(destination); + await this.adapter.move(sourcePath, destinationPath, { + overwrite: true, + }); + await this.adapter.move(this.makePath(source), this.makePath(destination), { + overwrite:true + }); + } catch (error) { + throw CannotMoveFileException.invoke(source, destination, error); + } + } + + /** + * Return a listing directory iterator for given location. + */ + public list(location: string): AsyncIterableArray<DriverContract, DriveListItem<any>> { + // public async list(location: string): Promise<DirectoryListing<DriverContract, DriveListItem<any>>> { + const fullPath = this.makePath(location); //'/storage/app/public/files/307' + + // let dirListing: DirectoryListing<DriverContract, DriveListItem<any>> = new DirectoryListing(this, () => this.getListing(fullPath, location)); + let dirListing: AsyncIterableArray<DriverContract, DriveListItem<any>> = new AsyncIterableArray(this, () => + this.getListing(fullPath, location), + ); + return dirListing; + // let listing: DriveListItem<fsExtra.Dirent>[] = await this.getListing(fullPath, location); + // let test = new DirectoryListing(this, listing); + // return test; + } + + // Example usage + // private async *generateNumbers(): AsyncGenerator<number, void, unknown> { + // yield 1; + // yield 2; + // yield 3; + // } + + private async *getListing(fullPath: string, location: string): AsyncGenerator<DriveListItem<fsExtra.Dirent>, void, unknown> { + // private async getListing(fullPath: string, location: string): Promise<DriveListItem<fsExtra.Dirent>[]> { + try { + const dir = await this.adapter.opendir(fullPath); + const prefixer = this.prefixer.withStrippedPrefix(fullPath); + // const listing: DriveListItem<fsExtra.Dirent>[] = new Array(); + for await (const dirent of dir) { + yield { + location: prefixer.prefixPath(dirent.name), + isFile: dirent.isFile(), + original: dirent, + }; + } + // return listing; + } catch (error) { + throw CannotListDirectoryException.invoke(location, error); + } + } +} diff --git a/providers/drive/exceptions/index.ts b/providers/drive/exceptions/index.ts new file mode 100644 index 0000000..3154ee2 --- /dev/null +++ b/providers/drive/exceptions/index.ts @@ -0,0 +1,109 @@ +// const utils_1 = require("@poppinss/utils"); +// import * as utils_1 from "@poppinss/utils"; +import { Exception } from '@poppinss/utils'; + +/** + * Custom exception for when a file cannot be deleted from a specified location + */ +export class CannotDeleteFileException extends Exception { + location: string; + original: any; + + static invoke(location: string, original: any): CannotDeleteFileException { + const error = new this(`Cannot delete file at location "${location}"`, { + code: 'E_CANNOT_DELETE_FILE', + status: 500, + }); + error.location = location; + error.original = original; + return error; + } +} +/** + * Unable to move file from source to destination + */ +export class CannotMoveFileException extends Exception { + source: string; + destination: string; + original: any; + static invoke(source: string, destination: string, original: any): CannotMoveFileException { + const error = new this(`Cannot move file from "${source}" to "${destination}"`, { + status: 500, + code: 'E_CANNOT_MOVE_FILE', + }); + error.source = source; + error.destination = destination; + error.original = original; + return error; + } +} +/** + * Custom exception for when file metadata cannot be retrieved + */ +export class CannotGetMetaDataException extends Exception { + location: string; + operation: string; + original: any; + + static invoke(location: string, operation: string, original: any): CannotGetMetaDataException { + const error = new this(`Unable to retrieve the "${operation}" for file at location "${location}"`, { + code: 'E_CANNOT_GET_METADATA', + status: 500, + }); + error.location = location; + error.operation = operation; + error.original = original; + return error; + } +} + +/** + * Given location is trying to traverse beyond the root path + */ +export class PathTraversalDetectedException extends Exception { + location: string; + static invoke(location: string) { + const error = new this(`Path traversal detected: "${location}"`, { + code: 'E_PATH_TRAVERSAL_DETECTED', + status: 500, + }); + error.location = location; + return error; + } +} + +/** + * Unable to list directory contents of given location + */ +export class CannotListDirectoryException extends Exception { + location: string; + original: any; + static invoke(location: string, original: any): CannotListDirectoryException { + const error = new this(`Cannot list directory contents of location "${location}"`, { + status: 500, + code: 'E_CANNOT_LIST_DIRECTORY', + }); + error.location = location; + error.original = original; + return error; + } +} + +/** + * Unable to generate url for a file. The assets serving is disabled + */ +export class CannotGenerateUrlException extends Exception { + location: string; + static invoke(location: string, diskName: string): CannotGenerateUrlException { + const error = new this( + `Cannot generate URL for location "${location}". Make sure to set "serveFiles = true" for "${diskName}" disk`, + { + status: 500, + code: 'E_CANNOT_GENERATE_URL', + }, + ); + + error.location = location; + return error; + } +} diff --git a/providers/drive/path_prefixer/index.ts b/providers/drive/path_prefixer/index.ts new file mode 100644 index 0000000..f813d13 --- /dev/null +++ b/providers/drive/path_prefixer/index.ts @@ -0,0 +1,96 @@ +import { slash } from '@poppinss/utils'; +import { relative, normalize } from 'path'; +import { PathTraversalDetectedException } from '../exceptions/index.js'; +/** + * Path prefixer for resolving and prefixing paths for disk drivers + */ +export default class PathPrefixer { + /** + * Separator used for dividing path segments is always unix-style forward slash + */ + separator: '/'; + /** + * Prefix used for path prefixing. Can be empty string for cloud drivers. + */ + prefix: string; + // constructor(prefix?: string); + + constructor(prefix: string = '') { + /** + * Separator used for dividing path segments is always unix-style forward slash + */ + this.separator = '/'; + // strip slashes from the end of the prefix + this.prefix = prefix.replace(/\/+$/g, ''); + // always end prefix with separator if it is not empty + if (this.prefix !== '' || prefix === this.separator) { + this.prefix += this.separator; + } + } + + /** + * Normalize given path to always use `/` as separator and resolve relative paths using `.` and `..`. + * It also guards against path traversal beyond the root. + */ + normalizePath(path: string): string { + // const converted = (0, utils_1.slash)(path); + const converted = slash(path); + const parts = []; + for (const part of converted.split(this.separator)) { + if (['', '.'].includes(part)) { + continue; + } + if (part === '..') { + // if we are traversing beyond the root + if (parts.length === 0) { + throw PathTraversalDetectedException.invoke(converted); + } + parts.pop(); + } else { + parts.push(part); + } + } + return parts.join(this.separator); + } + /** + * Ruturns normalized and prefixed location path. + */ + prefixPath(location: string): string { + return this.prefix + this.normalizePath(location); + } + /** + * Ruturns normalized and prefixed location path for directory so always ending with slash. + * Useful for cloud drivers prefix when listitng files. + */ + prefixDirectoryPath(location: string): string { + return this.prefixPath(location) + this.separator; + } + /** + * Returns normalized path after stripping the current prefix from it. + * It is a reverse operation of `prefixPath`. + */ + stripPrefix(location: string): string { + // const path = (0, path_1.relative)(this.prefix, (0, utils_1.slash)(location)); + const path = relative(this.prefix, slash(location)); + return this.normalizePath(path); + } + /** + * Returns a new instance of `PathPrefixer` which is using as prefix stripped prefix from path of current `PathPrefixer`. + */ + withStrippedPrefix(path: string): PathPrefixer { + return new PathPrefixer(this.stripPrefix(path)); + } + /** + * Returns a new instance of `PathPrefixer` which is using as prefix current prefix merged with provided prefix. + */ + withPrefix(prefix: string): PathPrefixer { + return new PathPrefixer(this.prefixPath(prefix)); + } + /** + * Returns a new instance of `PathPrefixer` which is using as prefix provided normalized path. + */ + static fromPath(path: string): PathPrefixer { + // return new this((0, utils_1.slash)((0, path_1.normalize)(path))); + return new this(slash(normalize(path))); + } +} diff --git a/providers/drive/provider/drive_provider.ts b/providers/drive/provider/drive_provider.ts new file mode 100644 index 0000000..831b008 --- /dev/null +++ b/providers/drive/provider/drive_provider.ts @@ -0,0 +1,62 @@ +import type { ApplicationService } from '@adonisjs/core/types'; +import { RuntimeException } from '@poppinss/utils'; +// import DriveManager from '../src/drive_manager.js'; +import { DriveConfig } from '../src/types/drive.js'; + + + +export default class DriveProvider { + constructor(protected app: ApplicationService) {} + + /** + * Register bindings to the container + */ + async register() { + const { default: DriveManager } = await import('../src/drive_manager.js'); + this.app.container.singleton(DriveManager, async () => { + // 1. import the oai configuration + // const ttl: number = 86400; + const config: DriveConfig = this.app.config.get('drive'); + // const config: DriveConfig | null = await configProvider.resolve(this.app, driveConfigProvider); + // const vite = await this.app.container.make("vite"); + if (!config) { + throw new RuntimeException('Invalid "config/drive.ts" file. Make sure you are using the "defineConfig" method'); + } + + return new DriveManager(this.app, config); + }); + } + + /** + * Register drive with the container + */ + // registerDrive() { + // this.app.container.singleton('Adonis/Core/Drive', () => { + // const { DriveManager } = require('../src/DriveManager'); + // const Router = this.app.container.resolveBinding('Adonis/Core/Route'); + // const Config = this.app.container.resolveBinding('Adonis/Core/Config'); + // const Logger = this.app.container.resolveBinding('Adonis/Core/Logger'); + // return new DriveManager(this.app, Router, Logger, Config.get('drive')); + // }); + // } + + /** + * The container bindings have booted + */ + async boot() {} + + /** + * The application has been booted + */ + async start() {} + + /** + * The process has been started + */ + async ready() {} + + /** + * Preparing to shutdown the app + */ + async shutdown() {} +} diff --git a/providers/drive/src/drive_manager.ts b/providers/drive/src/drive_manager.ts new file mode 100644 index 0000000..95e29f8 --- /dev/null +++ b/providers/drive/src/drive_manager.ts @@ -0,0 +1,173 @@ +import type { ApplicationService } from '@adonisjs/core/types'; +import { Manager } from '@poppinss/manager'; +import { Exception } from '@poppinss/utils'; +import { DriverContract, DriversList, DriveConfig, DriveListItem, DirectoryListingContract, LocalDriverConfig } from './types/drive.js'; +// import { LocalDriver } from './drivers/local.js'; +import { LocalDriver } from '../drivers/local.js'; + +type test = { + [P in keyof DriversList]: DriversList[P]; +}; +// type DriveMappings = { +// local: string +// fake: string +// } + +// interface DriversList { +// local: { +// implementation: LocalDriverContract; +// config: LocalDriverConfig; +// }; +// } + +// type DriverConfig = { +// disk: keyof DriversList +// disks: { +// [K in keyof DriversList]: any +// } +// } + +// const mailerConfig: DriveConfig = { +// disk: 'local', + +// disks: { +// local: { +// driver: 'local', +// root: '', +// visibility: '', +// serveFiles: false, +// basePath: '', +// }, + +// // 'fake': { +// // driver: 'fake', +// // root: '', +// // }, +// }, +// }; + +export default class DriveManager extends Manager< + ApplicationService, + DriverContract, + DriverContract, + { + [P in keyof DriversList]: DriversList[P]['implementation']; + } +> { + protected singleton = true; + private config; + /** + * Find if drive is ready to be used + */ + private isReady: boolean; + + protected getDefaultMappingName() { + return this.config.disk; // "local" + } + + protected getMappingConfig(mappingName: string) { + return this.config.disks[mappingName]; + } + + protected getMappingDriver(mappingName: string) { + return this.config.disks[mappingName].driver; + } + + /** + * Make instance of the local driver + */ + // protected createLocal(diskName: keyof DriversList, config: LocalDriverConfig) { + protected createLocal(diskName: keyof DriversList, config: LocalDriverConfig) { + // const { LocalDriver } = await import('../drivers/local.js'); + return new LocalDriver(diskName, config); + // return new LocalDriver(config); + } + + constructor(application: ApplicationService, config: DriveConfig) { + super(application); + this.config = config; + + /** + * Find if drive is ready to be used + */ + this.isReady = false; + + this.validateConfig(); + } + /** + * Validate config + */ + private validateConfig() { + if (!this.config) { + return; + } + // const validator = new utils_1.ManagerConfigValidator(this.config, 'drive', 'config/drive'); + // validator.validateDefault('disk'); + // validator.validateList('disks', 'disk'); + this.isReady = true; + } + + /** + * Resolve instance for a disk + */ + use(disk?: keyof test): DriversList[keyof DriversList]['implementation'] { + if (!this.isReady) { + throw new Exception('Missing configuration for drive. Visit https://bit.ly/2WnR5j9 for setup instructions', { + status: 500, + code: 'E_MISSING_DRIVE_CONFIG', + }); + } + disk = disk || this.getDefaultMappingName(); //#local' + // if (this.fakeDrive.isFaked(disk)) { + // return this.fakeDrive.use(disk); + // } + return super.use(disk); + } + + /** + * A boolean to find if the location path exists or not + */ + exists(location: string): Promise<boolean> { + const driver = this.use(); + return driver.exists(location); + } + + /** + * Remove a given location path + */ + delete(location: string): Promise<void> { + const driver = this.use(); + return driver.delete(location); + } + + /** + * Return a listing directory iterator for given location. + */ + list(location: string): DirectoryListingContract<DriverContract, DriveListItem> { + const driver = this.use(); + if (typeof driver.list !== 'function') { + throw new Exception(`List is not supported by the "${driver.name}" driver.`, { + status: 500, + code: 'E_LIST_NOT_SUPPORTED', + }); + } + return driver.list(location); + } + + /** + * Move a given location path from the source to the desination. + * The missing intermediate directories will be created (if required) + */ + move(source: string, ...args: string[]): Promise<void>{ + const driver = this.use(); + return driver.move(source, args[0]); + } + + /** + * Make absolute path to a given location + */ + public makePath(location: string): string { + const driver = this.use(); + return driver.makePath(location); + } +} diff --git a/providers/drive/src/iterable_array.ts b/providers/drive/src/iterable_array.ts new file mode 100644 index 0000000..5e4396b --- /dev/null +++ b/providers/drive/src/iterable_array.ts @@ -0,0 +1,68 @@ +import { DriveListItem, DriverContract } from './types/drive.js'; +// import * as fsExtra from 'fs-extra'; +import { DirectoryListingContract } from './types/drive.js'; + +// class AsyncIterableArray<T> implements AsyncIterable<T> { +export class AsyncIterableArray<SpecificDriver extends DriverContract, T extends DriveListItem> + implements DirectoryListingContract<SpecificDriver, T> +{ + public driver: SpecificDriver; + private generator: () => AsyncGenerator<T, void, unknown>; + // private generator: () => AsyncGenerator<T, void, unknown>; + private chain: any[]; + + constructor(driver: SpecificDriver, generator: () => AsyncGenerator<T, void, unknown>) { + // constructor(driver: SpecificDriver, listing: T) { + this.driver = driver; + this.generator = generator; + /** + * Functions chain to be executed for transforming generated listing iterable + */ + this.chain = []; + } + + /** + * Convert directory listing to array. + */ + // public async toArray(): Promise<T[]> { + // const arr = []; + // for await (const item of this.toIterable()) { + // arr.push(item); + // } + // return arr; + // } + async toArray(): Promise<T[]> { + const arr: T[] = []; + for await (const item of this) { + arr.push(item); + } + return arr; + } + + /** + * A method that returns the default async iterator for an object. + */ + public async *[Symbol.asyncIterator](): AsyncIterableIterator<T> { + // yield* this.toIterable(); + for await (const item of this.generator.call(this.driver)) { + yield item; + } + // yield 1 + // // await something() + // yield 2 + // // await somethingElse() + // yield 3 + } + + /** + * Get the final async iterable after passing directory listing through chain of piping functions modifying the output. + */ + public toIterable(): AsyncIterable<T> { + const generator = this.generator.call(this.driver); + const iterable = this.chain.reduce((prevIterable, currentIterable) => { + return currentIterable.call(this.driver, prevIterable); + }, generator); + + return iterable; + } +} diff --git a/providers/drive/src/types/define_config.ts b/providers/drive/src/types/define_config.ts new file mode 100644 index 0000000..cc28534 --- /dev/null +++ b/providers/drive/src/types/define_config.ts @@ -0,0 +1,5 @@ +import { DriveConfig } from "./drive.js"; + +export function defineConfig(config: DriveConfig): DriveConfig { + return config; +} \ No newline at end of file diff --git a/providers/drive/src/types/drive.ts b/providers/drive/src/types/drive.ts new file mode 100644 index 0000000..e444f7f --- /dev/null +++ b/providers/drive/src/types/drive.ts @@ -0,0 +1,176 @@ +import fsExtra from 'fs-extra'; +import { LocalDriver } from '#providers/drive/drivers/local'; + +/** + * List item returned by the drive drivers + */ +export interface DriveListItem<T = any> { + /** + * Location of list item on disk which can be used in driver methods + */ + location: string; + + /** + * Flag to know if item represents file or directory + */ + isFile: boolean; + + /** + * Original list item returned from underlying driver + */ + original: T; +} + /** + * List item returned from local disk driver + */ + export interface LocalDriveListItem extends DriveListItem<fsExtra.Dirent> {} + +export interface DirectoryListingContract<Driver extends DriverContract, T> extends AsyncIterable<T> { + /** + * Reference to the driver for which the listing was created. + */ + driver: Driver; + + /** + * Filter generated items of listing with the given predicate function. + */ + // filter(predicate: (item: T, index: number, driver: Driver) => Promise<boolean> | boolean): DirectoryListingContract<Driver, T>; + + /** + * Transform generated items of listing with the given mapper function. + */ + // map<M>(mapper: (item: T, index: number, driver: Driver) => Promise<M> | M): DirectoryListingContract<Driver, M>; + + /** + * Do recursive listing of items. Without the next function it will do listing of leaf nodes only. + * For advanced usage you can pass the next function which will get as parameter current item and it should + * return the next location for list or null if the recursion should stop and yield the current item. + * For advanced usage you can also limit the depth of recursion using the second argument of next function. + */ + // recursive( + // next?: (current: T, depth: number, driver: Driver) => Promise<string | null> | string | null, + // ): DirectoryListingContract<Driver, T>; + + /** + * Add a piping chain function which gets the current async iterable and returns + * new async iterable with modified directory listing output. + * Function this is bound to instance of driver for which the listing is generated. + * This allows using async generator functions and reference the driver methods easily. + * Piping will always return clone of the current instance and add the function + * to the chain of new cloned instance only to prevent side effects. + */ + // pipe<U>(fn: (this: Driver, source: AsyncIterable<T>) => AsyncIterable<U>): DirectoryListingContract<Driver, U>; + + /** + * Get the final async iterable after passing directory listing through chain of piping functions modifying the output. + */ + toIterable(): AsyncIterable<T>; + + /** + * Convert directory listing to array. + */ + toArray(): Promise<T[]>; +} + +/** + * Shape of the generic driver + */ +export interface DriverContract { + /** + * Name of the driver + */ + name: string; + + /** + * A boolean to find if the location path exists or not + */ + exists(location: string): Promise<boolean>; + + /** + * Remove a given location path + */ + delete(location: string): Promise<void>; + + /** + * Return a listing directory iterator for given location. + * @experimental + */ + list?(location: string): DirectoryListingContract<DriverContract, DriveListItem>; +} + +/** + * Shape of the local disk driver + */ +export interface LocalDriverContract extends DriverContract { + name: 'local'; + + /** + * Reference to the underlying adapter. Which is fs-extra + */ + adapter: typeof fsExtra; + + /** + * Make path to a given file location + */ + makePath(location: string): string; +} + +// interface LocalDriverContract { +// delete(): Promise<void>; +// } +export type LocalDriverConfig = { + driver: 'local'; + // visibility: Visibility + root: string; + + /** + * Base path is always required when "serveFiles = true" + */ + serveFiles?: boolean; + basePath?: string; +}; + +/** + * List of registered drivers. Drivers shipped via other packages + * should merge drivers to this interface + */ +export interface DriversList { + // [key: string]: {implementation : DriverContract, config: {}}; + local: { + implementation: LocalDriver; + config: { + driver: string; + visibility: string; + root: string; + serveFiles: boolean; + basePath: string; + }; + }; + + // [key: string]: DriverContract; + // local: LocalDriver; + // fake: { + // implementation: LocalDriverContract; + // config: LocalDriverConfig; + // }; +} + +export type DriveConfig = { + disk: keyof DriversList; + // disks: { + // [name: string]: { + // driver: DriverContract; + // }; + // }; + disks: { + [name: string]: { + [K in keyof DriversList]: DriversList[K]['config'] & { + driver: K; + visibility: string; + root: string; + serveFiles: boolean; + basePath: string; + }; + }[keyof DriversList]; + }; +}; diff --git a/providers/inertia_provider.ts b/providers/inertia_provider.ts new file mode 100644 index 0000000..d4c72c0 --- /dev/null +++ b/providers/inertia_provider.ts @@ -0,0 +1,53 @@ +import type { ApplicationService } from '@adonisjs/core/types'; +import { configProvider } from '@adonisjs/core'; +import { RuntimeException } from '@poppinss/utils'; +import InertiaMiddleware from '@adonisjs/inertia/inertia_middleware'; +import { ResolvedConfig } from '@adonisjs/inertia/types'; + +export default class InertiaProvider { + constructor(protected app: ApplicationService) {} + + /** + * Register bindings to the container + */ + async register() { + this.app.container.singleton(InertiaMiddleware, async () => { + const inertiaConfigProvider = this.app.config.get('inertia'); + const config: ResolvedConfig | null = await configProvider.resolve(this.app, inertiaConfigProvider); + // const vite = await this.app.container.make("vite"); + if (!config) { + throw new RuntimeException('Invalid "config/inertia.ts" file. Make sure you are using the "defineConfig" method'); + } + // return new InertiaMiddleware(config, vite); + return new InertiaMiddleware(config); + }); + await this.registerEdgePlugin(); + } + + /** + * The container bindings have booted + */ + async boot() {} + + /** + * The application has been booted + */ + async start() {} + + /** + * The process has been started + */ + async ready() {} + + /** + * Preparing to shutdown the app + */ + async shutdown() {} + + protected async registerEdgePlugin(): Promise<void> { + if (!this.app.usingEdgeJS) return; + const edgeExports = await import('edge.js'); + const { edgePluginInertia } = await import('@adonisjs/inertia/plugins/edge'); + edgeExports.default.use(edgePluginInertia()); + } +} diff --git a/providers/mail_provider.ts b/providers/mail_provider.ts new file mode 100644 index 0000000..ba140bb --- /dev/null +++ b/providers/mail_provider.ts @@ -0,0 +1,108 @@ +/* + * @adonisjs/mail + * + * (c) AdonisJS + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +import { configProvider } from '@adonisjs/core'; +import { RuntimeException } from '@poppinss/utils'; +import type { ApplicationService } from '@adonisjs/core/types'; + +// import { MailManager, Mailer, Message } from '../index.js' +import { MailManager, Mailer, Message } from '@adonisjs/mail'; +// import type { MailEvents, MailService } from '../src/types.js' +import type { MailEvents, MailService } from '@adonisjs/mail/types'; +import env from '#start/env'; +// import { mailPluginEdge } from '@adonisjs/mail'; + +/** + * Extended types + */ +declare module '@adonisjs/core/types' { + export interface ContainerBindings { + 'mail.manager': MailService; + } + export interface EventsList extends MailEvents {} +} + +/** + * Mail provider to register mail manager with the container + */ +export default class MailProvider { + constructor(protected app: ApplicationService) {} + + /** + * Defines the template engine on the message class to + * render templates + */ + protected async defineTemplateEngine() { + if (this.app.usingEdgeJS) { + const edge = await import('edge.js'); + Message.templateEngine = { + render(templatePath, helpers, data) { + return edge.default.share(helpers).render(templatePath, data); + }, + }; + const { mailPluginEdge } = await import('@adonisjs/mail/plugins/edge'); + edge.default.use(mailPluginEdge); + } + } + + /** + * Registering bindings to container + */ + register() { + // process.env.SMTP_HOST = 'xhost'; + env.set("SMTP_HOST", 'xhost'); + // this.app.config.set('mail.mailers.smtp.host', 'xhost'); + + this.app.container.singleton('mail.manager', async (resolver) => { + const emitter = await resolver.make('emitter'); + this.app.config.set('mail.mailers.smtp.host', 'xhost'); + // env.set("SMTP_HOST", 'xhost'); + // env.set("SMTP_PORT", '333'); + // Reset or modify environment variables here + + const mailConfigProvider = this.app.config.get('mail'); + const config = await configProvider.resolve<any>(this.app, mailConfigProvider); + + await config.mailers.smtp(); + // iwas.config.host = 'hhhost'; + // this.app.config.set('mail.mailers.smtp.host', 'xhost'); + // const iwas = await config.mailers.smtp(); + + // const smtpConfigProvider = await this.app.config.get('mail.mailers.smtp'); + // const smtpConfig = await configProvider.resolve<any>(this.app, smtpConfigProvider); + // let test = config.get('mailers.smtp'); + + if (!config) { + throw new RuntimeException('Invalid "config/mail.ts" file. Make sure you are using the "defineConfig" method'); + } + + return new MailManager(emitter, config); + }); + + this.app.container.bind(Mailer, async (resolver) => { + const mailManager = await resolver.make('mail.manager'); + return mailManager.use(); + }); + } + + /** + * Invoked automatically when the app is booting + */ + async boot() { + await this.defineTemplateEngine(); + } + + /** + * Cleanup hook + */ + async shutdown() { + const mail = await this.app.container.make('mail.manager'); + await mail.closeAll(); + } +} diff --git a/providers/query_builder_provider.ts b/providers/query_builder_provider.ts new file mode 100644 index 0000000..ed7cfb7 --- /dev/null +++ b/providers/query_builder_provider.ts @@ -0,0 +1,110 @@ +import { ApplicationService } from '@adonisjs/core/types'; +// import { Database, DatabaseQueryBuilder } from '@adonisjs/lucid/database'; +import { ModelQueryBuilder } from '@adonisjs/lucid/orm'; +// import db from '@adonisjs/lucid/services/db'; +// import { LucidModel, LucidRow } from '@adonisjs/lucid/types/model'; +import { ChainableContract, ExcutableQueryBuilderContract } from '@adonisjs/lucid/types/querybuilder'; + +// import { ModelQueryBuilderContract } from '@adonisjs/lucid/types/model'; +/* +|-------------------------------------------------------------------------- +| Provider +|-------------------------------------------------------------------------- +| +| Your application is not ready when this file is loaded by the framework. +| Hence, the top level imports relying on the IoC container will not work. +| You must import them inside the life-cycle methods defined inside +| the provider class. +| +| @example: +| +| public async ready () { +| const Database = this.app.container.resolveBinding('Adonis/Lucid/Database') +| const Event = this.app.container.resolveBinding('Adonis/Core/Event') +| Event.on('db:query', Database.prettyPrint) +| } +| +*/ +declare module '@adonisjs/lucid/types/model' { + // interface ModelQueryBuilderContract<Model extends LucidModel, Result = InstanceType<Model>> { + export interface ModelQueryBuilderContract<Model extends LucidModel, Result = InstanceType<Model>> extends ChainableContract, ExcutableQueryBuilderContract<Result[]> { + // macro typescript definitions here + // whereTrue(columnName: string): this; + // whereFalse(columnName: string): this; + // any(): Promise<boolean>; + // selectCount(): Promise<BigInt>; + // selectIds(primaryKey?: string): Promise<number[]>; + // selectId(primaryKey?: string): Promise<number | undefined>; + // selectIdOrFail(primaryKey?: string): Promise<number>; + // pluck(valueColumn: string, id?: string): Promise<{ [key: string]: any }>; + pluck(valueColumn: string, id?: string): Promise<{ [key: string]: any }>; + } + + export interface LucidRow { + [key: string]: any; + } + + +} +declare module '@adonisjs/lucid/orm' { + interface ModelQueryBuilder { + pluck(valueColumn: string, id?: string): Promise<{ [key: string]: any }>; + } + + // class ModelQueryBuilder implements ModelQueryBuilderContract<LucidModel, LucidRow> { + // public pluck(valueColumn: string, id?: string): Promise<{ [key: string]: any }>; + // } +} + + + +export default class QueryBuilderProvider { + constructor(protected app: ApplicationService) {} + + public register() { + // Register your own bindings + // const ModelQueryBuilder = this.app.container.bind('@adonisjs/lucid/orm/ModelQueryBuilder'); + + // ModelQueryBuilder.macro('whereTrue', function (columnName: string) { + // return this.where(columnName, true); + // }); + + // ModelQueryBuilder.macro('whereFalse', function (columnName: string) { + // return this.where(columnName, false); + // }); + } + + public async boot() { + // All bindings are ready, feel free to use them + // const db = await this.app.container.make('lucid.db'); + + ModelQueryBuilder.macro('pluck', async function (this: ModelQueryBuilder, valueColumn: string, id?: string) { + // let rolesPluck = {}; + let rolesPluck: { [key: number]: any } = {}; + const result = await this.exec(); + result.forEach((user: { [key: string]: any }, index: number) => { + let idc: number; + if (!id) { + idc = index; + } else { + idc = user[id]; + } + const value: any = user[valueColumn]; + rolesPluck[idc] = value; + }); + return rolesPluck; + }); + + // }); + + // validator.rule('foo', () => {}) + } + + public async ready() { + // App is ready + } + + public async shutdown() { + // Cleanup, since app is going down + } +} diff --git a/providers/stardust_provider.ts b/providers/stardust_provider.ts new file mode 100644 index 0000000..cb709c0 --- /dev/null +++ b/providers/stardust_provider.ts @@ -0,0 +1,112 @@ +import type { ApplicationService } from '@adonisjs/core/types'; +import { TagContract } from 'edge.js/types'; +import router from '@adonisjs/core/services/router'; +import type { Edge } from 'edge.js'; +import type { HttpRouterService } from '@adonisjs/core/types'; +import StardustMiddleware from '#middleware/stardust_middleware'; + +export default class StardustProvider { + public static needsApplication: boolean = true; + protected app: ApplicationService; + + constructor(app: ApplicationService) { + this.app = app; + } + + // https://edgejs.dev/docs/creating-custom-tags + private stardustTag: TagContract = { + block: false, + seekable: true, + tagName: 'routes', + compile(_, buffer, token) { + // buffer.outputVariableName = 'out'; + // buffer.outputRaw('Hello from router tag'); + + // const expression = parser.utils.transformAst( + // parser.utils.generateAST(token.properties.jsArg, token.loc, token.filename), + // token.filename, + // parser, + // ); + // const outputExpression = `${parser.utils.stringify(expression)}.split("").reverse().join("")`; + // ''test'.split("").reverse().join("")' + + // console.log(JSON.stringify(expression, null, 2)); + buffer.writeExpression(`\n out += state.routes(state.cspNonce)`, token.filename, token.loc.start.line); + }, + }; + + /** + * Register the `@routes()` tag + */ + private async registerStardustTag(edge: Edge) { + if (!this.app.usingEdgeJS) return; + // const { edgePluginInertia } = await import('../src/plugins/edge/plugin.js'); + // edgeExports.default.use(edgePluginInertia()); + edge.registerTag(this.stardustTag); + // edgeExports.registerTag(this.inertiaTag). + } + + private registerRoutesGlobal(edge: Edge, namedRoutes: Record<string, string>) { + // Registering a global function + edge.global('routes', (cspNonce: string | undefined) => { + return ` + <script${cspNonce ? ` nonce="${cspNonce}"` : ''}> + (globalThis || window).stardust = { path: ${JSON.stringify(globalThis.stardust.pathname)}, namedRoutes: ${JSON.stringify(namedRoutes)} }; + </script> + `; + }); + // edge.global('reverse', 'arno'); + } + + /** + * Returns list of named routes + */ + private getNamedRoutes(router: HttpRouterService) { + /** + * Only sharing the main domain routes. Subdomains are + * ignored for now. Let's see if many people need it + */ + + const mainDomainRoutes = router.toJSON()?.['root'] ?? []; + return mainDomainRoutes.reduce((routes: any, route) => { + if (route.name) { + routes[route.name] = route.pattern; + } else if (typeof route.handler === 'string') { + routes[route.handler] = route.pattern; + } + return routes; + }, {}); + } + + // private registerRoutesGlobal; + /** + * Registers named routes on the global scope in order to seamlessly support + * stardust's functionality on the server + * @param namedRoutes + */ + // private registerSsrRoutes(namedRoutes) { + // globalThis.stardust = { namedRoutes }; + // } + + public async ready(): Promise<void> { + // this.app.container.bind('EidelLev/Stardust/Middleware', () => Stardust_1.default); + this.app.container.bind(StardustMiddleware, () => { + // return new InertiaMiddleware(config, vite); + return new StardustMiddleware(); + }); + // this.app.container.(['edge.js', 'Adonis/Core/Route'], (View, Route) => { + // const namedRoutes = this.getNamedRoutes(Route); + // // this.registerRoutesGlobal(View, namedRoutes); + // this.registerStardustTag(View); + // // this.registerSsrRoutes(namedRoutes); + // }); + const { default: edge } = await import('edge.js'); + // const router = await this.app.container.make('router'); + // this.app.container.resolving('router', async (router) => { + // const routerService = await resolver.make('router') + const namedRoutes = this.getNamedRoutes(router); + this.registerRoutesGlobal(edge, namedRoutes); + await this.registerStardustTag(edge); + // }); + } +} diff --git a/providers/token_worker_provider.ts b/providers/token_worker_provider.ts new file mode 100644 index 0000000..189569b --- /dev/null +++ b/providers/token_worker_provider.ts @@ -0,0 +1,88 @@ +// import TokenWorkerService from "#app/Library/Oai/TokenWorkerSerice"; +import type { ApplicationService } from "@adonisjs/core/types"; +import TokenWorkerContract from "#library/Oai/TokenWorkerContract"; +// import TokenWorkerService from "#library/Oai/TokenWorkerSerice"; + +/* +|-------------------------------------------------------------------------- +| Provider +|-------------------------------------------------------------------------- +| +| Your application is not ready when this file is loaded by the framework. +| Hence, the top level imports relying on the IoC container will not work. +| You must import them inside the life-cycle methods defined inside +| the provider class. +| +| @example: +| +| public async ready () { +| const Database = this.app.container.resolveBinding('Adonis/Lucid/Database') +| const Event = this.app.container.resolveBinding('Adonis/Core/Event') +| Event.on('db:query', Database.prettyPrint) +| } +| +*/ + +// https://github.com/adonisjs/core/discussions/4268 +export default class TokenWorkerProvider { + public static needsApplication = true; + private tokenWorkerInstance: TokenWorkerContract | null = null; + + constructor(protected app: ApplicationService) {} + + public async register() { + await this.setupDependancyInjectionBindings() + } + + public async setupDependancyInjectionBindings() { + // const TokenWorkerService = await import('#app/Library/Oai/TokenWorkerSerice'); + const { default: TokenWorkerService } = await import('#library/Oai/TokenWorkerSerice'); + // Register your own bindings + // Bind TokenWorker to the IoC container + this.app.container.singleton(TokenWorkerContract, () => { + // 1. import the oai configuration + const ttl: number = 86400; + + // 2. import our REDIS wrapper class + // const TokenWorkerService = require('#library/Oai/TokenWorkerSerice').default; + this.tokenWorkerInstance = new TokenWorkerService(ttl); + + // 3. return a new instance + return this.tokenWorkerInstance; + }); + + // this.app.container.singleton( + // '#app/Library/Oai/TokenWorkerContract', + // () => { + + // // 1. import the oai configuration + // const ttl: number = 86400; + + // // 2. import our REDIS wrapper class + // // const TokenWorkerService = require('#app/Library/Oai/TokenWorkerSerice').default; + // this.tokenWorkerInstance = new TokenWorkerService(ttl); + + // // 3. return a new instance + // return this.tokenWorkerInstance; + // } + // ) + } + + // public async boot() { + // // All bindings are ready, feel free to use them + // // optionally do some initial setup + // } + + // public async ready() { + // // App is ready + // } + + public async shutdown() { + // console.log('TokenServerProvider shutdown()'); + // Cleanup, since app is going down + if (this.tokenWorkerInstance) { + // Call the disconnect method when the application is shutting down + await this.tokenWorkerInstance.close(); + } + } +} diff --git a/providers/validator_provider.ts b/providers/validator_provider.ts new file mode 100644 index 0000000..cae8083 --- /dev/null +++ b/providers/validator_provider.ts @@ -0,0 +1,249 @@ +// @ts-nocheck +import type { ApplicationService } from '@adonisjs/core/types'; +import { validator } from '@adonisjs/validator'; +import { Request } from '@adonisjs/core/http'; +import { RequestNegotiator } from '@adonisjs/validator/types'; +// import { Rule } from '@adonisjs/validator/types'; +// import { VanillaErrorReporter } from '@adonisjs/validator/build/src/error_reporter/index.js'; +import db from '@adonisjs/lucid/services/db'; + +type Options = { + table: string; + column: string; + whereNot?: { id: any }; +}; +declare module '@adonisjs/validator/types' { + export interface Rules { + translatedLanguage(mainLanguageField: string, typeField: string): Rule; + uniqueArray(field: string): Rule; + unique(args: Options): Rule; + } +} + +export default class ValidatorProvider { + constructor(protected app: ApplicationService) {} + + /** + * Register bindings to the container + */ + register() {} + + /** + * The container bindings have booted + */ + async boot() { + // Add custom validation rules + + // this.app.container.resolving('validator', (validator) => { + // validator.rule('foo', () => {}) + // }) + + // validator.configure({ + // reporter: validator.reporters.vanilla, + // }); + await this.configureValidator(); + + validator.rule('uniqueArray', (dataArray, [field], { pointer, arrayExpressionPointer, errorReporter }) => { + const array = dataArray; //validator.helpers.getFieldValue(data, field, tip); + + if (!Array.isArray(array)) { + throw new Error(`The ${pointer} must be an array.`); + } + + const uniqueValues = new Set(); + for (let i = 0; i < array.length; i++) { + const item = array[i]; + const attributeValue = item[field]; // Extract the attribute value for uniqueness check + + if (uniqueValues.has(attributeValue)) { + // throw new Error(`The ${field} array contains duplicate values for the ${field} attribute.`) + errorReporter.report( + pointer, + 'uniqueArray', // Keep an eye on this + `The ${pointer} array contains duplicate values for the ${field} attribute.`, + arrayExpressionPointer, + { field, array: pointer }, + ); + return; + } + + uniqueValues.add(attributeValue); + } + }); + + validator.rule( + 'unique', + async (data, [{ table, column, whereNot }], { pointer, errorReporter, arrayExpressionPointer, field }) => { + const value = data; // get(data, column);'admin' + if (!value) { + return; + } + + let ignoreId: string | null = whereNot?.id; + // let ignoreId: string | null = null; + // const fields = args[1].split('/'); + // const table = args[0]; + // if (args[2]) { + // ignoreId = args[2]; + // } + const columnName = column || field; + const builder = db.from(table).select(columnName).where(columnName, '=', value); + if (ignoreId) { + builder.whereNot('id', '=', ignoreId); + } + const row = await builder.first(); + + if (row) { + // throw message; + errorReporter.report(pointer, 'unique', 'Unique validation failed', arrayExpressionPointer, { field }); + } + }, + () => ({ + async: true, + }), + ); + + validator.rule( + 'translatedLanguage', + (value, [mainLanguageField, typeField], { root, tip, pointer, arrayExpressionPointer, errorReporter }) => { + if (typeof value !== 'string') { + return; + } + // const fieldValue = validator. getValue(data, field) + // this should return the "category_id" value present in "root", but i got undefined + const mainLanguage = validator.helpers.getFieldValue(mainLanguageField, root, tip); + const type = validator.helpers.getFieldValue(typeField, root, tip); //'type' = 'Translated' + + if (type && type === 'Translated') { + if (value === mainLanguage) { + errorReporter.report( + pointer, + 'translatedLanguage', // Keep an eye on this + 'translatedLanguage validation failed', + arrayExpressionPointer, + { mainLanguage }, + ); + } + } + + // if (value !== string.camelCase(value)) { + // options.errorReporter.report( + // options.pointer, + // 'camelCase', + // 'camelCase validation failed', + // options.arrayExpressionPointer + // ); + // } + }, + ); + + validator.rule('fileExtension', async (value, [extensions], { pointer, arrayExpressionPointer, errorReporter }) => { + const allowedExtensions = extensions.map((ext: string) => ext.toLowerCase()); + const uploadedFile = value; + + if (!uploadedFile) { + return; + } + + const extension = uploadedFile.extname.toLowerCase().replace('.', ''); + + if (!allowedExtensions.includes(extension)) { + errorReporter.report( + pointer, + 'fileExtension', + 'Invalid file extension. Only {{ extensions }} files are allowed.', + arrayExpressionPointer, + ); + } + }); + + // validator.rule( + // 'clamavScan', + // (value, [field], { root, tip, pointer, arrayExpressionPointer, errorReporter }) => { + // if (typeof value !== 'object') { + // return; + // } + // const uploadedFile = validator.helpers.getFieldValue(field, root, tip); + // // return rules.file({}, [ + // // async (file) => { + // // const clamdhost = process.env['CLAMD_HOST'] ?? '127.0.0.1'; + // // const clamdport = Number(process.env['CLAMD_PORT']) ?? '3310'; + // // try { + // // var isInfected = await scanFileForViruses(file.tmpPath, clamdhost, clamdport); + // // } catch (error) { + // // throw new Error(`${pointer}: ${error.message}`); + // // } + // // }, + // // ]); + // }); + + // async function scanFileForViruses(filePath, host, port): Promise<boolean> { + // // const clamscan = await (new ClamScan().init()); + // const opts: ClamScan.Options = { + // preference: 'clamdscan', + // clamdscan: { + // active: true, + // host, + // port, + // multiscan: true, + // }, + // }; + // const clamscan = await new ClamScan().init(opts); + + // return new Promise((resolve, reject) => { + // clamscan.isInfected(filePath, (err, file, isInfected: boolean) => { + // if (err) { + // reject(err); + // } else if (isInfected) { + // reject(new Error(`File ${file} is infected!`)); + // } else { + // resolve(isInfected); + // } + // }); + // }); + // } + } + + /** + * Configure the validator + */ + async configureValidator() { + // const config = await this.app.container.make('config'); + validator.configure({ + reporter: validator.reporters.vanilla, + // @ts-ignore + negotiator: (callback: RequestNegotiator) => { + this.getRequestReporter = callback; + }, + }); + } + getRequestReporter(request: Request) { + // if (request.ajax()) { + // return ErrorReporters.ApiErrorReporter; + // } + switch (request.accepts(['html', 'application/vnd.api+json', 'json'])) { + case 'html': + case null: + return validator.reporters.vanilla; + case 'json': + return validator.reporters.api; + case 'application/vnd.api+json': + return validator.reporters.jsonapi; + } + } + + /** + * The application has been booted + */ + async start() {} + + /** + * The process has been started + */ + async ready() {} + + /** + * Preparing to shutdown the app + */ + async shutdown() {} +} diff --git a/providers/vinejs_provider.ts b/providers/vinejs_provider.ts new file mode 100644 index 0000000..e4aad4c --- /dev/null +++ b/providers/vinejs_provider.ts @@ -0,0 +1,194 @@ +/* +|-------------------------------------------------------------------------- +| Provider File - node ace make:provider vinejsProvider +|-------------------------------------------------------------------------- +|*/ +import type { ApplicationService } from '@adonisjs/core/types'; +import vine, { symbols, BaseLiteralType, Vine } from '@vinejs/vine'; +import type { FieldContext, FieldOptions } from '@vinejs/vine/types'; +// import type { MultipartFile, FileValidationOptions } from '@adonisjs/bodyparser/types'; +import type { MultipartFile } from '@adonisjs/core/bodyparser'; +import type { FileValidationOptions } from '@adonisjs/core/types/bodyparser'; +import { Request, RequestValidator } from '@adonisjs/core/http'; +import MimeType from '#models/mime_type'; + + +/** + * Validation options accepted by the "file" rule + */ +export type FileRuleValidationOptions = Partial<FileValidationOptions> | ((field: FieldContext) => Partial<FileValidationOptions>); +/** + * Extend VineJS + */ +declare module '@vinejs/vine' { + interface Vine { + myfile(options?: FileRuleValidationOptions): VineMultipartFile; + } +} +/** + * Extend HTTP request class + */ +declare module '@adonisjs/core/http' { + interface Request extends RequestValidator {} +} + +/** + * Checks if the value is an instance of multipart file + * from bodyparser. + */ +export function isBodyParserFile(file: MultipartFile | unknown): boolean { + return !!(file && typeof file === 'object' && 'isMultipartFile' in file); +} +export async function getEnabledExtensions() { + const enabledExtensions = await MimeType.query().select('file_extension').where('enabled', true).exec(); + const extensions = enabledExtensions + .map((extension) => { + return extension.file_extension.split('|'); + }) + .flat(); + + return extensions; +} +/** + * VineJS validation rule that validates the file to be an + * instance of BodyParser MultipartFile class. + */ +const isMultipartFile = vine.createRule(async (file: MultipartFile | unknown, options: FileRuleValidationOptions, field: FieldContext) => { + /** + * Report error when value is not a field multipart + * file object + */ + if (!isBodyParserFile(file)) { + field.report('The {{ field }} must be a file', 'file', field); + return; + } + // At this point, you can use type assertion to explicitly tell TypeScript that file is of type MultipartFile + const validatedFile = file as MultipartFile; + const validationOptions = typeof options === 'function' ? options(field) : options; + /** + * Set size when it's defined in the options and missing + * on the file instance + */ + if (validatedFile.sizeLimit === undefined && validationOptions.size) { + validatedFile.sizeLimit = validationOptions.size; + } + /** + * Set extensions when it's defined in the options and missing + * on the file instance + */ + // if (validatedFile.allowedExtensions === undefined && validationOptions.extnames) { + // validatedFile.allowedExtensions = validationOptions.extnames; + // } + if (validatedFile.allowedExtensions === undefined && validationOptions.extnames !== undefined) { + validatedFile.allowedExtensions = validationOptions.extnames; // await getEnabledExtensions(); + } else if (validatedFile.allowedExtensions === undefined && validationOptions.extnames === undefined) { + validatedFile.allowedExtensions = await getEnabledExtensions(); + } + /** + * wieder löschen + * Set extensions when it's defined in the options and missing + * on the file instance + */ + // if (file.clientNameSizeLimit === undefined && validationOptions.clientNameSizeLimit) { + // file.clientNameSizeLimit = validationOptions.clientNameSizeLimit; + // } + /** + * Validate file + */ + validatedFile.validate(); + /** + * Report errors + */ + validatedFile.errors.forEach((error) => { + field.report(error.message, `file.${error.type}`, field, validationOptions); + }); +}); + +const MULTIPART_FILE: typeof symbols.SUBTYPE = symbols.SUBTYPE; + +export class VineMultipartFile extends BaseLiteralType<MultipartFile, MultipartFile, MultipartFile> { + + [MULTIPART_FILE]: string; + // constructor(validationOptions?: FileRuleValidationOptions, options?: FieldOptions) { + // super(options, [isMultipartFile(validationOptions || {})]); + // this.validationOptions = validationOptions; + // this.#private = true; + // } + + // clone(): this { + // return new VineMultipartFile(this.validationOptions, this.cloneOptions()) as this; + // } + // #private; + // constructor(validationOptions?: FileRuleValidationOptions, options?: FieldOptions, validations?: Validation<any>[]); + // clone(): this; + + public validationOptions; + // extnames: (18) ['gpkg', 'htm', 'html', 'csv', 'txt', 'asc', 'c', 'cc', 'h', 'srt', 'tiff', 'pdf', 'png', 'zip', 'jpg', 'jpeg', 'jpe', 'xlsx'] + // size: '512mb' + + // public constructor(validationOptions?: FileRuleValidationOptions, options?: FieldOptions, validations?: Validation<any>[]) { + public constructor(validationOptions?: FileRuleValidationOptions, options?: FieldOptions) { + // super(options, validations); + super(options, [isMultipartFile(validationOptions || {})]); + this.validationOptions = validationOptions; + } + + public clone(): any { + // return new VineMultipartFile(this.validationOptions, this.cloneOptions(), this.cloneValidations()); + return new VineMultipartFile(this.validationOptions, this.cloneOptions()); + } +} + +export default class VinejsProvider { + protected app: ApplicationService; + + constructor(app: ApplicationService) { + this.app = app; + this.app.usingVineJS = true; + } + + /** + * Register bindings to the container + */ + register() {} + + /** + * The container bindings have booted + */ + + boot(): void { + // VineString.macro('translatedLanguage', function (this: VineString, options: Options) { + // return this.use(translatedLanguageRule(options)); + // }); + + Vine.macro('myfile', function (this: Vine, options) { + return new VineMultipartFile(options); + }); + + /** + * The validate method can be used to validate the request + * data for the current request using VineJS validators + */ + Request.macro('validateUsing', function (this: Request, ...args) { + if (!this.ctx) { + throw new Error('HttpContext is not available'); + } + return new RequestValidator(this.ctx).validateUsing(...args); + }); + } + + /** + * The application has been booted + */ + async start() {} + + /** + * The process has been started + */ + async ready() {} + + /** + * Preparing to shutdown the app + */ + async shutdown() {} +} diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png new file mode 100644 index 0000000..4d9cf1b Binary files /dev/null and b/public/android-chrome-192x192.png differ diff --git a/public/android-chrome-512x512.png b/public/android-chrome-512x512.png new file mode 100644 index 0000000..7929356 Binary files /dev/null and b/public/android-chrome-512x512.png differ diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000..50558dc Binary files /dev/null and b/public/apple-touch-icon.png differ diff --git a/public/assets/entrypoints.json b/public/assets/entrypoints.json deleted file mode 100644 index 21084b2..0000000 --- a/public/assets/entrypoints.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "entrypoints": { - "app": { - "css": [ - "http://localhost:8080/assets/app.css" - ], - "js": [ - "http://localhost:8080/assets/app.js" - ] - } - } -} \ No newline at end of file diff --git a/public/assets/manifest.json b/public/assets/manifest.json deleted file mode 100644 index 4fd69a0..0000000 --- a/public/assets/manifest.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "assets/app.css": "http://localhost:8080/assets/app.css", - "assets/app.js": "http://localhost:8080/assets/app.js", - "assets/fonts/inter-latin-ext-400-normal.woff": "http://localhost:8080/assets/fonts/inter-latin-ext-400-normal.3ccf1334.woff", - "assets/fonts/inter-latin-400-normal.woff": "http://localhost:8080/assets/fonts/inter-latin-400-normal.662f2907.woff", - "assets/fonts/inter-latin-ext-400-normal.woff2": "http://localhost:8080/assets/fonts/inter-latin-ext-400-normal.3a7a7652.woff2", - "assets/fonts/archivo-black-latin-400-normal.woff2": "http://localhost:8080/assets/fonts/archivo-black-latin-400-normal.fc847a1f.woff2", - "assets/fonts/inter-latin-400-normal.woff2": "http://localhost:8080/assets/fonts/inter-latin-400-normal.be7cb18d.woff2", - "assets/fonts/archivo-black-latin-ext-400-normal.woff2": "http://localhost:8080/assets/fonts/archivo-black-latin-ext-400-normal.21761451.woff2", - "assets/fonts/inter-cyrillic-ext-400-normal.woff": "http://localhost:8080/assets/fonts/inter-cyrillic-ext-400-normal.3c63e274.woff", - "assets/fonts/archivo-black-latin-400-normal.woff": "http://localhost:8080/assets/fonts/archivo-black-latin-400-normal.58a301a6.woff", - "assets/fonts/inter-greek-400-normal.woff": "http://localhost:8080/assets/fonts/inter-greek-400-normal.b31b8612.woff", - "assets/fonts/inter-cyrillic-ext-400-normal.woff2": "http://localhost:8080/assets/fonts/inter-cyrillic-ext-400-normal.fcc125c4.woff2", - "assets/fonts/archivo-black-latin-ext-400-normal.woff": "http://localhost:8080/assets/fonts/archivo-black-latin-ext-400-normal.5ab5ba92.woff", - "assets/fonts/inter-cyrillic-400-normal.woff": "http://localhost:8080/assets/fonts/inter-cyrillic-400-normal.3862a5ab.woff", - "assets/fonts/inter-greek-400-normal.woff2": "http://localhost:8080/assets/fonts/inter-greek-400-normal.0278a49f.woff2", - "assets/fonts/inter-greek-ext-400-normal.woff": "http://localhost:8080/assets/fonts/inter-greek-ext-400-normal.61350b97.woff", - "assets/fonts/inter-cyrillic-400-normal.woff2": "http://localhost:8080/assets/fonts/inter-cyrillic-400-normal.8684fef6.woff2", - "assets/fonts/inter-vietnamese-400-normal.woff": "http://localhost:8080/assets/fonts/inter-vietnamese-400-normal.e0aaa99d.woff", - "assets/fonts/inter-greek-ext-400-normal.woff2": "http://localhost:8080/assets/fonts/inter-greek-ext-400-normal.3f642a92.woff2", - "assets/fonts/inter-vietnamese-400-normal.woff2": "http://localhost:8080/assets/fonts/inter-vietnamese-400-normal.789afb71.woff2", - "assets/images/marker-icon.png": "http://localhost:8080/assets/images/marker-icon.2b3e1faf.png", - "assets/images/layers-2x.png": "http://localhost:8080/assets/images/layers-2x.8f2c4d11.png", - "assets/images/layers.png": "http://localhost:8080/assets/images/layers.416d9136.png" -} \ No newline at end of file diff --git a/public/assets2/datasetxml2oai-pmh.xslt b/public/assets2/datasetxml2oai-pmh.xslt index 87ade63..a899be5 100644 --- a/public/assets2/datasetxml2oai-pmh.xslt +++ b/public/assets2/datasetxml2oai-pmh.xslt @@ -43,7 +43,6 @@ <xsl:param name="oai_until" /> <xsl:param name="oai_set" /> --> - <xsl:variable name="langCodes" select="document('langCodeMap.xml')/langCodeMap/langCode"/> <!-- Characters we'll support. We could add control chars 0-31 and 127-159, but we won't. --> @@ -375,6 +374,9 @@ <setSpec> <xsl:text>open_access</xsl:text> </setSpec> + <setSpec> + <xsl:text>openaire_data</xsl:text> + </setSpec> <setSpec> <xsl:text>doc-type:ResearchData</xsl:text> </setSpec> @@ -739,12 +741,30 @@ </xsl:template> <xsl:template match="@Language" mode="oai_dc"> - <xsl:variable name="language" select="string(.)"/> <dc:language> - <!-- <xsl:value-of select="." /> --> - <xsl:value-of select="$langCodes[@iso639-1 = $language]/@iso639-2" /> + <xsl:choose> + <xsl:when test="string(.)='de'"> <xsl:value-of select="'ger'"/></xsl:when> + <xsl:when test="string(.)='en'"> <xsl:value-of select="'eng'"/></xsl:when> + <xsl:when test="string(.)='es'"> <xsl:value-of select="'spa'"/></xsl:when> + <xsl:when test="string(.)='it'"> <xsl:value-of select="'ita'"/></xsl:when> + <xsl:otherwise> + <xsl:value-of select="string(.)"/> + </xsl:otherwise> + </xsl:choose> </dc:language> - </xsl:template> + </xsl:template> + + <!-- <xsl:template match="@Language" mode="oai_dc"> + <dc:language> + <xsl:variable name="langMap"> + <entry input="de" output="ger"/> + <entry input="en" output="eng"/> + <entry input="es" output="spa"/> + <entry input="it" output="ita"/> + </xsl:variable> + <xsl:value-of select="$langMap/entry[@input = string(.)]/@output" /> + </dc:language> + </xsl:template> --> <xsl:template match="Licence" mode="oai_dc"> <dc:rights> diff --git a/public/assets2/datasetxml2oai.sef.json b/public/assets2/datasetxml2oai.sef.json index 1dd07ce..4118cb5 100644 --- a/public/assets2/datasetxml2oai.sef.json +++ b/public/assets2/datasetxml2oai.sef.json @@ -1 +1 @@ -{"N":"package","version":"30","packageVersion":"1","saxonVersion":"SaxonJS 2.5","target":"JS","targetVersion":"2","name":"TOP-LEVEL","relocatable":"false","buildDateTime":"2023-07-14T13:46:35.021+02:00","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"co","id":"0","uniform":"true","binds":"26","C":[{"N":"template","flags":"os","module":"oai_datacite.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_datacite.xslt","name":"Q{}RdrDate2","line":"147","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","expand-text":"false","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"choose","sType":"? ","line":"148","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"148","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"gc","op":"<","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}unixTimestamp","bSlot":"0"}]},{"N":"data","diag":"1|1||gc","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}UnixTimestamp"}]}]}]}]},{"N":"elem","name":"date","sType":"1NE nQ{http://datacite.org/schema/kernel-4}date ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"149","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"dateType","sType":"1NA ","line":"150","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Available"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"let","var":"Q{}embargoDate","slot":"0","sType":"*NT ","line":"155","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"155","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"156","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}embargoDate","slot":"0","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"156"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"159","C":[{"N":"docOrder","sType":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]","line":"159","C":[{"N":"slash","role":"select","simple":"1","sType":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]","sType":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "}]}]},{"N":"elem","name":"date","sType":"1NE nQ{http://datacite.org/schema/kernel-4}date ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"160","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"dateType","sType":"1NA ","line":"161","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"created"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"let","var":"Q{}createdAt","slot":"0","sType":"*NT ","line":"166","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"166","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"167","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}createdAt","slot":"0","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"167"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"co","binds":"","id":"1","uniform":"true","C":[{"N":"template","flags":"os","module":"oai_datacite.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_datacite.xslt","name":"Q{}CamelCaseWord","line":"225","ns":"xml=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","expand-text":"false","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"param","name":"Q{}text","slot":"0","sType":"* ","as":"* ","flags":"","line":"226","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"0","sType":"* "}]},{"N":"param","name":"Q{}firstLower","slot":"1","sType":"* ","as":"* ","flags":"","line":"227","C":[{"N":"true","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"227"},{"N":"supplied","role":"conversion","slot":"1","sType":"* "}]},{"N":"let","var":"Q{}Upper","slot":"2","sType":"*NT ","line":"228","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_datacite.xslt","role":"select","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"ABCDEFGHIJKLMNOPQRSTUVQXYZ"}]}]},{"N":"let","var":"Q{}Lower","slot":"3","sType":"*NT ","line":"229","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_datacite.xslt","role":"select","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"abcdefghijklmnopqrstuvwxyz"}]}]},{"N":"forEach","sType":"*NT ","line":"230","C":[{"N":"fn","name":"tokenize","sType":"*AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"230","C":[{"N":"treat","as":"AS","diag":"0|0||tokenize","C":[{"N":"check","card":"?","diag":"0|0||tokenize","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||tokenize","C":[{"N":"check","card":"?","diag":"0|0||tokenize","C":[{"N":"data","diag":"0|0||tokenize","C":[{"N":"varRef","name":"Q{}text","slot":"0"}]}]}]}]}]},{"N":"str","val":"_"}]},{"N":"sequence","sType":"*NT ","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"231","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"232","C":[{"N":"compareToInt","op":"eq","val":"1","C":[{"N":"fn","name":"position"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}firstLower","slot":"1"}]},{"N":"true"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"233","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"substring","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"233","C":[{"N":"dot"},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"236","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"translate","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"236","C":[{"N":"fn","name":"substring","C":[{"N":"dot"},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]}]},{"N":"treat","as":"AS","diag":"0|1||translate","C":[{"N":"check","card":"1","diag":"0|1||translate","C":[{"N":"cvUntyped","to":"AS","diag":"0|1||translate","C":[{"N":"check","card":"1","diag":"0|1||translate","C":[{"N":"data","diag":"0|1||translate","C":[{"N":"varRef","name":"Q{}Lower","slot":"3"}]}]}]}]}]},{"N":"treat","as":"AS","diag":"0|2||translate","C":[{"N":"check","card":"1","diag":"0|2||translate","C":[{"N":"cvUntyped","to":"AS","diag":"0|2||translate","C":[{"N":"check","card":"1","diag":"0|2||translate","C":[{"N":"data","diag":"0|2||translate","C":[{"N":"varRef","name":"Q{}Upper","slot":"2"}]}]}]}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"239","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"substring","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"239","C":[{"N":"dot"},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"2"}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"fn","name":"string-length","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"2","uniform":"true","C":[{"N":"template","flags":"os","module":"oai_datacite.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_datacite.xslt","name":"Q{}AlternateIdentifier","line":"309","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","expand-text":"false","sType":"1NE nQ{http://datacite.org/schema/kernel-4}alternateIdentifier ","C":[{"N":"elem","name":"alternateIdentifier","sType":"1NE nQ{http://datacite.org/schema/kernel-4}alternateIdentifier ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"body","line":"310","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"alternateIdentifierType","sType":"1NA ","line":"311","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"url"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"315","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}landingpage","role":"select","line":"315","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}landingpage","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}landingpage","sType":"*NA nQ{}landingpage","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"co","binds":"","id":"3","uniform":"true","C":[{"N":"template","flags":"os","module":"oai_2_iso19139.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","name":"Q{}datestamp","line":"385","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}dateStamp ","C":[{"N":"elem","name":"gmd:dateStamp","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}dateStamp ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","role":"body","line":"386","C":[{"N":"let","var":"Q{}theDate","slot":"0","sType":"*NE ","line":"388","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"389","C":[{"N":"docOrder","sType":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]","line":"390","C":[{"N":"slash","role":"select","simple":"1","sType":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]","sType":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco "}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"395","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"395","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"402","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"402","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gco:Date","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Date ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"406","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"407","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"407","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"varRef","name":"Q{}theDate","slot":"0"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"4","uniform":"true","C":[{"N":"template","flags":"os","module":"oai_2_iso19139.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","name":"Q{}title","line":"413","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}title ","C":[{"N":"elem","name":"gmd:title","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}title ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","role":"body","line":"414","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"415","C":[{"N":"forEach","sType":"* ","line":"416","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"416","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"or","C":[{"N":"compareToString","op":"eq","val":"TitleMain","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]},{"N":"compareToString","op":"eq","val":"TitleAdditional","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]}]}]},{"N":"choose","sType":"? ","type":"item()*","line":"417","C":[{"N":"compareToString","op":"eq","val":"Main","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"418","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"419","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"419"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"421","C":[{"N":"compareToString","op":"eq","val":"Sub","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Value"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"422","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"422","C":[{"N":"str","val":"; Subtitle: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}Value"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"424","C":[{"N":"compareToString","op":"eq","val":"Translated","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Value"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"425","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"425","C":[{"N":"str","val":"; Translated title: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}Value"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"427","C":[{"N":"compareToString","op":"eq","val":"Other","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Value"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"428","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"428","C":[{"N":"str","val":"; Other title: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}Value"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]}]},{"N":"co","binds":"","id":"5","uniform":"true","C":[{"N":"template","flags":"os","module":"oai_2_iso19139.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","name":"Q{}abstract","line":"663","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}abstract ","C":[{"N":"elem","name":"gmd:abstract","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}abstract ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","role":"body","line":"664","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"665","C":[{"N":"forEach","sType":"* ","line":"666","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"666","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"or","C":[{"N":"compareToString","op":"eq","val":"TitleAbstract","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]},{"N":"compareToString","op":"eq","val":"TitleAbstractAdditional","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]}]}]},{"N":"choose","sType":"? ","type":"item()*","line":"668","C":[{"N":"compareToString","op":"eq","val":"Abstract","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"669","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"671","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"671","C":[{"N":"str","val":"\nAbstract: "},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"compareToString","op":"eq","val":"Translated","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"673","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"674","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"674","C":[{"N":"str","val":"\nTranslated Description: "},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"676","C":[{"N":"compareToString","op":"eq","val":"SeriesInformation","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Value"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"677","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"677","C":[{"N":"str","val":"\nSeries Information: "},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"679","C":[{"N":"compareToString","op":"eq","val":"TableOfContents","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Value"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"680","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"680","C":[{"N":"str","val":"\nTable of Contents: "},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"682","C":[{"N":"compareToString","op":"eq","val":"TechnicalInfo","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Value"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"683","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"683","C":[{"N":"str","val":"\nTechnical Info: "},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"685","C":[{"N":"compareToString","op":"eq","val":"Methods","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Value"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"686","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"686","C":[{"N":"str","val":"\nMethods: "},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"688","C":[{"N":"compareToString","op":"eq","val":"Other","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Value"},{"N":"str","val":""}]}]},{"N":"choose","sType":"? ","line":"689","C":[{"N":"fn","name":"not","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"689","C":[{"N":"fn","name":"contains","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]},{"N":"str","val":"Related publications:"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"690","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"690","C":[{"N":"str","val":"\nOther Description: "},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]}]},{"N":"co","id":"6","uniform":"true","binds":"48 46 47 49 6","C":[{"N":"template","flags":"os","module":"datasetxml2oai-pmh.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","name":"Q{}url-encode","line":"56","expand-text":"false","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"param","name":"Q{}str","slot":"0","sType":"* ","as":"* ","flags":"","line":"57","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"0","sType":"* "}]},{"N":"choose","sType":"* ","line":"58","C":[{"N":"varRef","name":"Q{}str","slot":"0","sType":"*","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"58"},{"N":"let","var":"Q{}first-char","slot":"1","sType":"* ","line":"59","C":[{"N":"fn","name":"substring","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"59","C":[{"N":"treat","as":"AS","diag":"0|0||substring","C":[{"N":"check","card":"?","diag":"0|0||substring","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||substring","C":[{"N":"check","card":"?","diag":"0|0||substring","C":[{"N":"data","diag":"0|0||substring","C":[{"N":"varRef","name":"Q{}str","slot":"0"}]}]}]}]}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]}]},{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"*NT ","type":"item()*","line":"60","C":[{"N":"fn","name":"contains","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"61","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||contains","C":[{"N":"atomSing","diag":"0|0||contains","card":"?","C":[{"N":"gVarRef","name":"Q{}safe","bSlot":"0"}]}]},{"N":"treat","as":"AS","diag":"0|1||contains","C":[{"N":"check","card":"?","diag":"0|1||contains","C":[{"N":"cvUntyped","to":"AS","diag":"0|1||contains","C":[{"N":"check","card":"?","diag":"0|1||contains","C":[{"N":"data","diag":"0|1||contains","C":[{"N":"varRef","name":"Q{}first-char","slot":"1"}]}]}]}]}]},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"62","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}first-char","slot":"1","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"62"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"let","var":"Q{}codepoint","slot":"2","sType":"*NT ","line":"65","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","role":"select","C":[{"N":"choose","sType":"* ","type":"item()*","line":"66","C":[{"N":"fn","name":"contains","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"67","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||contains","C":[{"N":"atomSing","diag":"0|0||contains","card":"?","C":[{"N":"gVarRef","name":"Q{}ascii","bSlot":"1"}]}]},{"N":"treat","as":"AS","diag":"0|1||contains","C":[{"N":"check","card":"?","diag":"0|1||contains","C":[{"N":"cvUntyped","to":"AS","diag":"0|1||contains","C":[{"N":"check","card":"?","diag":"0|1||contains","C":[{"N":"data","diag":"0|1||contains","C":[{"N":"varRef","name":"Q{}first-char","slot":"1"}]}]}]}]}]},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"68","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"arith","sType":"1ADI","op":"+","calc":"i+i","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"68","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"substring-before","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||substring-before","C":[{"N":"atomSing","diag":"0|0||substring-before","card":"?","C":[{"N":"gVarRef","name":"Q{}ascii","bSlot":"1"}]}]},{"N":"treat","as":"AS","diag":"0|1||substring-before","C":[{"N":"check","card":"?","diag":"0|1||substring-before","C":[{"N":"cvUntyped","to":"AS","diag":"0|1||substring-before","C":[{"N":"check","card":"?","diag":"0|1||substring-before","C":[{"N":"data","diag":"0|1||substring-before","C":[{"N":"varRef","name":"Q{}first-char","slot":"1"}]}]}]}]}]},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]},{"N":"int","val":"32"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"fn","name":"contains","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"70","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||contains","C":[{"N":"atomSing","diag":"0|0||contains","card":"?","C":[{"N":"gVarRef","name":"Q{}latin1","bSlot":"2"}]}]},{"N":"treat","as":"AS","diag":"0|1||contains","C":[{"N":"check","card":"?","diag":"0|1||contains","C":[{"N":"cvUntyped","to":"AS","diag":"0|1||contains","C":[{"N":"check","card":"?","diag":"0|1||contains","C":[{"N":"data","diag":"0|1||contains","C":[{"N":"varRef","name":"Q{}first-char","slot":"1"}]}]}]}]}]},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"71","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"arith","sType":"1ADI","op":"+","calc":"i+i","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"71","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"substring-before","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||substring-before","C":[{"N":"atomSing","diag":"0|0||substring-before","card":"?","C":[{"N":"gVarRef","name":"Q{}latin1","bSlot":"2"}]}]},{"N":"treat","as":"AS","diag":"0|1||substring-before","C":[{"N":"check","card":"?","diag":"0|1||substring-before","C":[{"N":"cvUntyped","to":"AS","diag":"0|1||substring-before","C":[{"N":"check","card":"?","diag":"0|1||substring-before","C":[{"N":"data","diag":"0|1||substring-before","C":[{"N":"varRef","name":"Q{}first-char","slot":"1"}]}]}]}]}]},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]},{"N":"int","val":"160"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"sequence","sType":"* ","C":[{"N":"message","sType":"0 ","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"valueOf","sType":"1NT ","role":"select","C":[{"N":"str","sType":"1AS ","val":"Warning: string contains a character that is out of range! Substituting \"?\"."}]},{"N":"str","sType":"1AS ","val":"false","role":"terminate"},{"N":"str","sType":"1AS ","val":"Q{http://www.w3.org/2005/xqt-errors}XTMM9000","role":"error"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"63"}]}]}]}]},{"N":"let","var":"Q{}hex-digit1","slot":"3","sType":"*NT ","line":"79","C":[{"N":"fn","name":"substring","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"79","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||substring","C":[{"N":"atomSing","diag":"0|0||substring","card":"?","C":[{"N":"gVarRef","name":"Q{}hex","bSlot":"3"}]}]},{"N":"check","card":"1","diag":"0|1||substring","C":[{"N":"convert","to":"AO","flags":"","C":[{"N":"cvUntyped","to":"AO","diag":"0|1||substring","C":[{"N":"arith","op":"+","calc":"a+a","C":[{"N":"fn","name":"floor","C":[{"N":"treat","as":"A m[AO,AD,AF]","diag":"0|0||floor","C":[{"N":"check","card":"?","diag":"0|0||floor","C":[{"N":"cvUntyped","to":"AO","diag":"0|0||floor","C":[{"N":"arith","op":"div","calc":"a/a","C":[{"N":"check","card":"?","diag":"1|0||arith","C":[{"N":"data","diag":"1|0||arith","C":[{"N":"varRef","name":"Q{}codepoint","slot":"2"}]}]},{"N":"int","val":"16"}]}]}]}]}]},{"N":"int","val":"1"}]}]}]}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]}]},{"N":"let","var":"Q{}hex-digit2","slot":"4","sType":"*NT ","line":"80","C":[{"N":"fn","name":"substring","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"80","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||substring","C":[{"N":"atomSing","diag":"0|0||substring","card":"?","C":[{"N":"gVarRef","name":"Q{}hex","bSlot":"3"}]}]},{"N":"check","card":"1","diag":"0|1||substring","C":[{"N":"convert","to":"AO","flags":"","C":[{"N":"cvUntyped","to":"AO","diag":"0|1||substring","C":[{"N":"arith","op":"+","calc":"a+a","C":[{"N":"arith","op":"mod","calc":"a%a","C":[{"N":"check","card":"?","diag":"1|0||arith","C":[{"N":"data","diag":"1|0||arith","C":[{"N":"varRef","name":"Q{}codepoint","slot":"2"}]}]},{"N":"int","val":"16"}]},{"N":"int","val":"1"}]}]}]}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"81","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"81","C":[{"N":"str","val":"%"},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"varRef","name":"Q{}hex-digit1","slot":"3"}]}]},{"N":"check","card":"?","diag":"0|2||concat","C":[{"N":"data","diag":"0|2||concat","C":[{"N":"varRef","name":"Q{}hex-digit2","slot":"4"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"choose","sType":"* ","line":"84","C":[{"N":"compareToInt","op":"gt","val":"1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"84","C":[{"N":"fn","name":"string-length","C":[{"N":"treat","as":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"data","diag":"0|0||string-length","C":[{"N":"varRef","name":"Q{}str","slot":"0"}]}]}]}]}]}]}]},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}url-encode","line":"85","C":[{"N":"withParam","name":"Q{}str","slot":"0","sType":"1AS","C":[{"N":"fn","name":"substring","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"86","C":[{"N":"treat","as":"AS","diag":"0|0||substring","C":[{"N":"check","card":"?","diag":"0|0||substring","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||substring","C":[{"N":"check","card":"?","diag":"0|0||substring","C":[{"N":"data","diag":"0|0||substring","C":[{"N":"varRef","name":"Q{}str","slot":"0"}]}]}]}]}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"2"}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"co","id":"7","uniform":"true","binds":"30 58 37 38 67 59 60","C":[{"N":"template","flags":"os","module":"datasetxml2oai-pmh.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","name":"Q{}Rdr_Dataset_Data","line":"331","expand-text":"false","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"elem","name":"header","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}header ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"332","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"333","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"333","C":[{"N":"attVal","name":"Q{}ServerState"},{"N":"str","val":"deleted"}]},{"N":"att","name":"status","sType":"1NA ","line":"334","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"deleted"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"identifier","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}identifier ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"338","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"oai:"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"340","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}repIdentifier","bSlot":"0","role":"select","line":"340"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":":"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"342","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}PublishId","role":"select","line":"342","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}PublishId","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}PublishId","sType":"*NA nQ{}PublishId","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"datestamp","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}datestamp ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"344","C":[{"N":"choose","sType":"*NT ","type":"item()*","line":"345","C":[{"N":"docOrder","sType":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]","line":"346","C":[{"N":"slash","role":"select","simple":"1","sType":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]","sType":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "}]}]},{"N":"let","var":"Q{}dateModified","slot":"0","sType":"*NT ","line":"354","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"354","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"T"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Hour"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":":"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Minute"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":":"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Second"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"Z"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"355","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}dateModified","slot":"0","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"355"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"let","var":"Q{}datePublished","slot":"0","sType":"*NT ","line":"365","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"365","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"T"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Hour"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":":"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Minute"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":":"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Second"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"Z"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"366","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}datePublished","slot":"0","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"366"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"applyT","sType":"* ","line":"374","mode":"#unnamed","bSlot":"1","C":[{"N":"docOrder","sType":"*NE u[NE nQ{}SetSpec,NE nQ{http://www.w3.org/1999/xhtml}SetSpec]","role":"select","line":"374","C":[{"N":"slash","role":"select","simple":"1","sType":"*NE u[NE nQ{}SetSpec,NE nQ{http://www.w3.org/1999/xhtml}SetSpec]","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}SetSpec,NE nQ{http://www.w3.org/1999/xhtml}SetSpec]","sType":"*NE u[NE nQ{}SetSpec,NE nQ{http://www.w3.org/1999/xhtml}SetSpec]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "}]}]}]},{"N":"elem","name":"setSpec","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}setSpec ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"375","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"open_access"}]}]},{"N":"elem","name":"setSpec","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}setSpec ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"378","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"doc-type:ResearchData"}]}]}]}]},{"N":"choose","sType":"? ","type":"item()*","line":"382","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"384","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_verb","bSlot":"2"}]},{"N":"str","val":"ListIdentifiers"}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}ServerState"},{"N":"str","val":"deleted"}]}]},{"N":"elem","name":"metadata","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}metadata ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"386","C":[{"N":"choose","sType":"* ","type":"item()*","line":"388","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"389","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_metadataPrefix","bSlot":"3"}]},{"N":"str","val":"oai_dc"}]},{"N":"applyT","sType":"* ","line":"390","mode":"Q{}oai_dc","bSlot":"4","C":[{"N":"dot","sType":"1","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"390"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"392","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_metadataPrefix","bSlot":"3"}]},{"N":"str","val":"oai_datacite"}]},{"N":"applyT","sType":"* ","line":"393","mode":"Q{}oai_datacite","bSlot":"5","C":[{"N":"dot","sType":"1","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"393"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"395","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_metadataPrefix","bSlot":"3"}]},{"N":"str","val":"iso19139"}]},{"N":"applyT","sType":"* ","line":"396","mode":"Q{}iso19139","bSlot":"6","C":[{"N":"dot","sType":"1","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"396"}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"co","binds":"","id":"8","uniform":"true","C":[{"N":"template","flags":"os","module":"datasetxml2oai-pmh.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","name":"Q{}citation","line":"490","expand-text":"false","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}source ","C":[{"N":"elem","name":"dc:source","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}source ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"body","line":"491","C":[{"N":"let","var":"Q{}creatorName","slot":"0","sType":"*NT ","line":"492","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","role":"select","C":[{"N":"forEach","sType":"* ","line":"493","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"493","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"PersonAuthor","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]}]},{"N":"let","var":"Q{}person","slot":"0","sType":"* ","line":"494","C":[{"N":"dot","sType":"1NE","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"494"},{"N":"let","var":"Q{}uppercase","slot":"1","sType":"* ","line":"495","C":[{"N":"str","val":"ABC..XYZ","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"495"},{"N":"let","var":"Q{}lowercase","slot":"2","sType":"* ","line":"496","C":[{"N":"str","val":"abc..zyz","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"496"},{"N":"let","var":"Q{}authorName","slot":"3","sType":"* ","line":"497","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","role":"select","C":[{"N":"choose","sType":"*NT ","type":"item()*","line":"498","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"499","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}person","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}FirstName"}]}]}]}]},{"N":"let","var":"Q{}name","slot":"3","sType":"*NT ","line":"502","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"502","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}person","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LastName"}]}]}]}]},{"N":"str","val":", "},{"N":"fn","name":"concat","C":[{"N":"fn","name":"translate","C":[{"N":"fn","name":"substring","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||substring","C":[{"N":"check","card":"?","diag":"0|0||substring","C":[{"N":"data","diag":"0|0||substring","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}person","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}FirstName"}]}]}]}]}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]}]},{"N":"treat","as":"AS","diag":"0|1||translate","C":[{"N":"check","card":"1","diag":"0|1||translate","C":[{"N":"cvUntyped","to":"AS","diag":"0|1||translate","C":[{"N":"check","card":"1","diag":"0|1||translate","C":[{"N":"data","diag":"0|1||translate","C":[{"N":"varRef","name":"Q{}lowercase","slot":"2"}]}]}]}]}]},{"N":"treat","as":"AS","diag":"0|2||translate","C":[{"N":"check","card":"1","diag":"0|2||translate","C":[{"N":"cvUntyped","to":"AS","diag":"0|2||translate","C":[{"N":"check","card":"1","diag":"0|2||translate","C":[{"N":"data","diag":"0|2||translate","C":[{"N":"varRef","name":"Q{}uppercase","slot":"1"}]}]}]}]}]}]},{"N":"str","val":"."}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"503","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}name","slot":"3","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"503"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"506","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}LastName","role":"select","line":"506","C":[{"N":"docOrder","sType":"*NA nQ{}LastName","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}person","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LastName"}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"sequence","sType":"? ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"510","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"510","C":[{"N":"treat","as":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"data","diag":"0|0||normalize-space","C":[{"N":"varRef","name":"Q{}authorName","slot":"3"}]}]}]}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"? ","type":"item()*","line":"511","C":[{"N":"vc","op":"ne","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"512","C":[{"N":"fn","name":"position"},{"N":"fn","name":"last"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]}]}]}]},{"N":"let","var":"Q{}year","slot":"1","sType":"*NT ","line":"516","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"516","C":[{"N":"str","val":" ("},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"): "}]},{"N":"let","var":"Q{}mainTitle","slot":"2","sType":"*NT ","line":"517","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"517","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"let","var":"Q{}creatingCorporation","slot":"3","sType":"*NT ","line":"518","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"518","C":[{"N":"str","val":"."},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}CreatingCorporation"}]}]},{"N":"str","val":", "}]},{"N":"let","var":"Q{}publisherName","slot":"4","sType":"*NT ","line":"519","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"519","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}PublisherName"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"520","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"520","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"varRef","name":"Q{}creatorName","slot":"0"}]}]},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"varRef","name":"Q{}year","slot":"1"}]}]},{"N":"check","card":"?","diag":"0|2||concat","C":[{"N":"data","diag":"0|2||concat","C":[{"N":"varRef","name":"Q{}mainTitle","slot":"2"}]}]},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"data","diag":"0|3||concat","C":[{"N":"varRef","name":"Q{}creatingCorporation","slot":"3"}]}]},{"N":"check","card":"?","diag":"0|4||concat","C":[{"N":"data","diag":"0|4||concat","C":[{"N":"varRef","name":"Q{}publisherName","slot":"4"}]}]},{"N":"str","val":", Wien"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"9","uniform":"true","C":[{"N":"template","flags":"os","module":"datasetxml2oai-pmh.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","name":"Q{}RdrDate","line":"657","expand-text":"false","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}date ","C":[{"N":"elem","name":"dc:date","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}date ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"body","line":"658","C":[{"N":"choose","sType":"*NT ","type":"item()*","line":"659","C":[{"N":"docOrder","sType":"*NE u[NE nQ{}PublishedDate,NE nQ{http://www.w3.org/1999/xhtml}PublishedDate]","line":"660","C":[{"N":"slash","role":"select","simple":"1","sType":"*NE u[NE nQ{}PublishedDate,NE nQ{http://www.w3.org/1999/xhtml}PublishedDate]","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PublishedDate,NE nQ{http://www.w3.org/1999/xhtml}PublishedDate]","sType":"*NE u[NE nQ{}PublishedDate,NE nQ{http://www.w3.org/1999/xhtml}PublishedDate]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "}]}]},{"N":"let","var":"Q{}publishedDate","slot":"0","sType":"*NT ","line":"665","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"665","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PublishedDate,NE nQ{http://www.w3.org/1999/xhtml}PublishedDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PublishedDate,NE nQ{http://www.w3.org/1999/xhtml}PublishedDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PublishedDate,NE nQ{http://www.w3.org/1999/xhtml}PublishedDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"666","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}publishedDate","slot":"0","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"666"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"let","var":"Q{}serverDatePublished","slot":"0","sType":"*NT ","line":"673","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"673","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"674","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}serverDatePublished","slot":"0","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"674"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]},{"N":"co","id":"10","uniform":"true","binds":"52 51","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","name":"Q{}hierarchylevel","line":"60","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}hierarchyLevel ","C":[{"N":"elem","name":"gmd:hierarchyLevel","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}hierarchyLevel ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","role":"body","line":"61","C":[{"N":"elem","name":"gmd:MD_ScopeCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_ScopeCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"62","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","sType":"1NA ","line":"63","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"64","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}MDScopelist","bSlot":"0","role":"select","line":"64"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"codeListValue","sType":"1NA ","line":"66","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"67","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}MDScopecode","bSlot":"1","role":"select","line":"67"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"69","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}MDScopecode","bSlot":"1","role":"select","line":"69"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"11","uniform":"true","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","name":"Q{}metadatacontact","line":"75","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}contact ","C":[{"N":"elem","name":"gmd:contact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}contact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","role":"body","line":"76","C":[{"N":"elem","name":"gmd:CI_ResponsibleParty","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_ResponsibleParty ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"77","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:individualName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}individualName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"78","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"79","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Tethys RDR"}]}]}]},{"N":"elem","name":"gmd:organisationName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}organisationName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"81","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"82","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Tethys RDR"}]}]}]},{"N":"elem","name":"gmd:positionName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}positionName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"84","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"85","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Research Data Repository"}]}]}]},{"N":"elem","name":"gmd:contactInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}contactInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"87","C":[{"N":"elem","name":"gmd:CI_Contact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Contact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"88","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"89","C":[{"N":"elem","name":"gmd:CI_Address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"90","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:deliveryPoint","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}deliveryPoint ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"91","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"92","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Neulinggasse 38"}]}]}]},{"N":"elem","name":"gmd:city","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}city ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"94","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"95","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Vienna"}]}]}]},{"N":"elem","name":"gmd:administrativeArea","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}administrativeArea ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"97","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"98","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Vienna"}]}]}]},{"N":"elem","name":"gmd:postalCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}postalCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"100","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"101","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"1030"}]}]}]},{"N":"elem","name":"gmd:country","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}country ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"103","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"104","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"AT"}]}]}]},{"N":"elem","name":"gmd:electronicMailAddress","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}electronicMailAddress ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"106","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"107","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"repository@geologie.ac.at"}]}]}]}]}]}]},{"N":"elem","name":"gmd:onlineResource","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}onlineResource ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"112","C":[{"N":"elem","name":"gmd:CI_OnlineResource","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_OnlineResource ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"113","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:linkage","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}linkage ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"114","C":[{"N":"elem","name":"gmd:URL","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}URL ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"115","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"https://tethys.at"}]}]}]},{"N":"elem","name":"gmd:function","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}function ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"117","C":[{"N":"elem","name":"gmd:CI_OnLineFunctionCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_OnLineFunctionCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"118","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_OnLineFunctionCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"information"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"information"}]}]}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:role","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}role ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"124","C":[{"N":"elem","name":"gmd:CI_RoleCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_RoleCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"125","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#CI_RoleCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"pointOfContact"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"pointOfContact"}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"12","uniform":"true","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","name":"Q{}resourcedates","line":"134","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"choose","sType":"? ","line":"135","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"135","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"CreatedAt","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]}]},{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"136","C":[{"N":"elem","name":"gmd:CI_Date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"137","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"138","C":[{"N":"let","var":"Q{}theDate","slot":"0","sType":"*N ","line":"140","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/functions.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"148","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"148","C":[{"N":"fn","name":"concat","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"T"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Hour"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":":"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Minute"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":":"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Second"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"Z"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"?N ","type":"item()*","line":"151","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"152","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}theDate","slot":"0"}]},{"N":"str","val":""}]},{"N":"choose","sType":"?NE ","type":"item()*","line":"153","C":[{"N":"fn","name":"contains","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"154","C":[{"N":"treat","as":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"data","diag":"0|0||contains","C":[{"N":"varRef","name":"Q{}theDate","slot":"0"}]}]}]}]}]},{"N":"str","val":"T"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"elem","name":"gco:DateTime","sType":"1NE nQ{http://www.isotc211.org/2005/gco}DateTime ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"155","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"156","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}theDate","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"156"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"fn","name":"contains","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"159","C":[{"N":"treat","as":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"data","diag":"0|0||contains","C":[{"N":"varRef","name":"Q{}theDate","slot":"0"}]}]}]}]}]},{"N":"str","val":" "},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"elem","name":"gco:DateTime","sType":"1NE nQ{http://www.isotc211.org/2005/gco}DateTime ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"160","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"161","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"translate","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"161","C":[{"N":"treat","as":"AS","diag":"0|0||translate","C":[{"N":"check","card":"?","diag":"0|0||translate","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||translate","C":[{"N":"check","card":"?","diag":"0|0||translate","C":[{"N":"data","diag":"0|0||translate","C":[{"N":"varRef","name":"Q{}theDate","slot":"0"}]}]}]}]}]},{"N":"str","val":" "},{"N":"str","val":"T"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"elem","name":"gco:Date","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Date ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"165","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"166","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}theDate","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"166"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"att","name":"gco:nilReason","sType":"1NA ","nsuri":"http://www.isotc211.org/2005/gco","line":"173","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"174","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"174","C":[{"N":"str","val":"created date missing"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]}]}]}]},{"N":"elem","name":"gmd:dateType","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}dateType ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"179","C":[{"N":"elem","name":"gmd:CI_DateTypeCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_DateTypeCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"180","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_DateTypeCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"creation"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"creation"}]}]}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"?NE ","type":"item()*","line":"185","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"187","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"EmbargoDate","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"188","C":[{"N":"elem","name":"gmd:CI_Date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"189","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"190","C":[{"N":"let","var":"Q{}embargoDate","slot":"0","sType":"*NE ","line":"195","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"195","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]}]},{"N":"elem","name":"gco:Date","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Date ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"196","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"197","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}embargoDate","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"197"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"elem","name":"gmd:dateType","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}dateType ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"200","C":[{"N":"elem","name":"gmd:CI_DateTypeCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_DateTypeCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"201","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_DateTypeCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"publication"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"publication"}]}]}]}]}]}]}]},{"N":"filter","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"206","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"ServerDatePublished","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"207","C":[{"N":"elem","name":"gmd:CI_Date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"208","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"209","C":[{"N":"let","var":"Q{}publicationDate","slot":"0","sType":"*NE ","line":"217","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"217","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"T"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Hour"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":":"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Minute"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":":"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Second"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"Z"}]},{"N":"elem","name":"gco:DateTime","sType":"1NE nQ{http://www.isotc211.org/2005/gco}DateTime ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"218","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"219","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}publicationDate","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"219"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"elem","name":"gmd:dateType","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}dateType ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"222","C":[{"N":"elem","name":"gmd:CI_DateTypeCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_DateTypeCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"223","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_DateTypeCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"publication"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"publication"}]}]}]}]}]}]}]},{"N":"true"},{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"229","C":[{"N":"att","name":"gco:nilReason","nsuri":"http://www.isotc211.org/2005/gco","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"missing"}]}]}]},{"N":"choose","sType":"? ","line":"234","C":[{"N":"docOrder","sType":"*NA nQ{}ServerDateModified","line":"234","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}ServerDateModified","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}ServerDateModified","sType":"*NA nQ{}ServerDateModified","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco "}]}]},{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"235","C":[{"N":"elem","name":"gmd:CI_Date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"236","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"237","C":[{"N":"let","var":"Q{}updateDate","slot":"0","sType":"*N ","line":"238","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"238","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}ServerDateModified"}]}]}]},{"N":"choose","sType":"?N ","type":"item()*","line":"240","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"241","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}updateDate","slot":"0"}]},{"N":"str","val":""}]},{"N":"choose","sType":"?NE ","type":"item()*","line":"242","C":[{"N":"fn","name":"contains","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"243","C":[{"N":"treat","as":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"data","diag":"0|0||contains","C":[{"N":"varRef","name":"Q{}updateDate","slot":"0"}]}]}]}]}]},{"N":"str","val":"T"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"elem","name":"gco:DateTime","sType":"1NE nQ{http://www.isotc211.org/2005/gco}DateTime ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"244","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"245","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}updateDate","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"245"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"fn","name":"contains","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"248","C":[{"N":"treat","as":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"data","diag":"0|0||contains","C":[{"N":"varRef","name":"Q{}updateDate","slot":"0"}]}]}]}]}]},{"N":"str","val":" "},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"elem","name":"gco:DateTime","sType":"1NE nQ{http://www.isotc211.org/2005/gco}DateTime ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"249","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"250","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"translate","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"250","C":[{"N":"treat","as":"AS","diag":"0|0||translate","C":[{"N":"check","card":"?","diag":"0|0||translate","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||translate","C":[{"N":"check","card":"?","diag":"0|0||translate","C":[{"N":"data","diag":"0|0||translate","C":[{"N":"varRef","name":"Q{}updateDate","slot":"0"}]}]}]}]}]},{"N":"str","val":" "},{"N":"str","val":"T"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"elem","name":"gco:Date","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Date ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"254","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"255","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}updateDate","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"255"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"att","name":"gco:nilReason","sType":"1NA ","nsuri":"http://www.isotc211.org/2005/gco","line":"261","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"262","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"262","C":[{"N":"str","val":"missing"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]}]}]}]},{"N":"elem","name":"gmd:dateType","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}dateType ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"267","C":[{"N":"elem","name":"gmd:CI_DateTypeCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_DateTypeCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"268","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_DateTypeCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"revision"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"revision"}]}]}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"co","binds":"","id":"13","uniform":"true","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","name":"Q{}ci_responsibleparty","line":"275","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"param","name":"Q{}individual","slot":"0","sType":"* ","as":"* ","flags":"","line":"276","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"0","sType":"* "}]},{"N":"param","name":"Q{}httpuri","slot":"1","sType":"* ","as":"* ","flags":"","line":"277","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"1","sType":"* "}]},{"N":"param","name":"Q{}personidtype","slot":"2","sType":"* ","as":"* ","flags":"","line":"278","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"2","sType":"* "}]},{"N":"param","name":"Q{}organisation","slot":"3","sType":"* ","as":"* ","flags":"","line":"279","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"3","sType":"* "}]},{"N":"param","name":"Q{}position","slot":"4","sType":"* ","as":"* ","flags":"","line":"280","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"4","sType":"* "}]},{"N":"param","name":"Q{}role","slot":"5","sType":"* ","as":"* ","flags":"","line":"281","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"5","sType":"* "}]},{"N":"param","name":"Q{}email","slot":"6","sType":"* ","as":"* ","flags":"","line":"282","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"6","sType":"* "}]},{"N":"param","name":"Q{}datacite-creatorname","slot":"7","sType":"* ","as":"* ","flags":"","line":"283","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"7","sType":"* "}]},{"N":"elem","name":"gmd:CI_ResponsibleParty","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_ResponsibleParty ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"285","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"287","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"287","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}individual","slot":"0"}]},{"N":"str","val":""}]},{"N":"choose","sType":"?NE ","type":"item()*","line":"288","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"289","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}individual","slot":"0"}]},{"N":"str","val":"missing"}]},{"N":"elem","name":"gmd:individualName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}individualName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"290","C":[{"N":"att","name":"gco:nilReason","nsuri":"http://www.isotc211.org/2005/gco","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"missing"}]}]},{"N":"true"},{"N":"elem","name":"gmd:individualName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}individualName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"293","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"294","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"295","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}individual","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"295"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"302","C":[{"N":"or","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"302","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}individual","slot":"0"}]},{"N":"str","val":"missing"}]},{"N":"str","val":""}]},{"N":"elem","name":"gmd:organisationName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}organisationName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"303","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"304","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"305","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}datacite-creatorname","slot":"7","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"305"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"310","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"310","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}organisation","slot":"3"}]},{"N":"str","val":""}]},{"N":"elem","name":"gmd:organisationName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}organisationName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"311","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"312","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"313","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}organisation","slot":"3","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"313"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"318","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"318","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}position","slot":"4"}]},{"N":"str","val":""}]},{"N":"elem","name":"gmd:positionName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}positionName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"319","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"320","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"321","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}position","slot":"4","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"321"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"gmd:contactInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}contactInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"326","C":[{"N":"elem","name":"gmd:CI_Contact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Contact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"327","C":[{"N":"sequence","sType":"* ","C":[{"N":"elem","name":"gmd:address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"329","C":[{"N":"elem","name":"gmd:CI_Address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"330","C":[{"N":"elem","name":"gmd:electronicMailAddress","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}electronicMailAddress ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"331","C":[{"N":"choose","sType":"?NE ","type":"item()*","line":"332","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"333","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}email","slot":"6"}]},{"N":"str","val":""}]},{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"334","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"335","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}email","slot":"6","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"335"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"340","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"341","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"341","C":[{"N":"str","val":"repository@geologie.ac.at"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]},{"N":"choose","sType":"? ","line":"348","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"348","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}httpuri","slot":"1"}]},{"N":"str","val":""}]},{"N":"elem","name":"gmd:onlineResource","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}onlineResource ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"349","C":[{"N":"elem","name":"gmd:CI_OnlineResource","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_OnlineResource ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"350","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:linkage","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}linkage ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"351","C":[{"N":"elem","name":"gmd:URL","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}URL ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"352","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"353","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}httpuri","slot":"1","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"353"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:protocol","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}protocol ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"356","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"357","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"358","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}personidtype","slot":"2","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"358"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"elem","name":"gmd:role","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}role ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"368","C":[{"N":"elem","name":"gmd:CI_RoleCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_RoleCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"369","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","sType":"1NA ","line":"370","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"codeListValue","sType":"1NA ","line":"371","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"372","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}role","slot":"5","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"372"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"374","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}role","slot":"5","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"374"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"14","uniform":"true","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","name":"Q{}pointofcontact_custodian","line":"381","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}pointOfContact ","C":[{"N":"elem","name":"gmd:pointOfContact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}pointOfContact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","role":"body","line":"382","C":[{"N":"elem","name":"gmd:CI_ResponsibleParty","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_ResponsibleParty ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"383","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:individualName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}individualName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"384","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"385","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Tethys RDR"}]}]}]},{"N":"elem","name":"gmd:organisationName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}organisationName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"387","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"388","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Tethys RDR"}]}]}]},{"N":"elem","name":"gmd:contactInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}contactInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"390","C":[{"N":"elem","name":"gmd:CI_Contact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Contact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"391","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"392","C":[{"N":"elem","name":"gmd:CI_Address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"393","C":[{"N":"elem","name":"gmd:electronicMailAddress","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}electronicMailAddress ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"394","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"395","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"repository@geologie.ac.at"}]}]}]}]}]},{"N":"elem","name":"gmd:onlineResource","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}onlineResource ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"399","C":[{"N":"elem","name":"gmd:CI_OnlineResource","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_OnlineResource ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"400","C":[{"N":"elem","name":"gmd:linkage","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}linkage ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"401","C":[{"N":"elem","name":"gmd:URL","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}URL ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"402","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"https://www.tethys.at/"}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:role","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}role ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"411","C":[{"N":"elem","name":"gmd:CI_RoleCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_RoleCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"412","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/Codelist/gmxCodelists.xml#CI_RoleCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"custodian"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"custodian"}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"15","uniform":"true","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","name":"Q{}pointofcontact_originator","line":"419","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}pointOfContact ","C":[{"N":"elem","name":"gmd:pointOfContact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}pointOfContact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","role":"body","line":"420","C":[{"N":"elem","name":"gmd:CI_ResponsibleParty","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_ResponsibleParty ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"421","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:individualName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}individualName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"422","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"423","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Tethys RDR"}]}]}]},{"N":"elem","name":"gmd:organisationName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}organisationName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"425","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"426","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Tethys RDR"}]}]}]},{"N":"elem","name":"gmd:contactInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}contactInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"428","C":[{"N":"elem","name":"gmd:CI_Contact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Contact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"429","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"430","C":[{"N":"elem","name":"gmd:CI_Address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"431","C":[{"N":"elem","name":"gmd:electronicMailAddress","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}electronicMailAddress ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"432","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"433","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"repository@geologie.ac.at"}]}]}]}]}]},{"N":"elem","name":"gmd:onlineResource","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}onlineResource ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"437","C":[{"N":"elem","name":"gmd:CI_OnlineResource","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_OnlineResource ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"438","C":[{"N":"elem","name":"gmd:linkage","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}linkage ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"439","C":[{"N":"elem","name":"gmd:URL","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}URL ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"440","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"https://www.tethys.at/"}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:role","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}role ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"449","C":[{"N":"elem","name":"gmd:CI_RoleCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_RoleCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"450","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/Codelist/gmxCodelists.xml#CI_RoleCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"originator"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"originator"}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"16","uniform":"true","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","name":"Q{}browseGraphictethys","line":"457","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}graphicOverview ","C":[{"N":"elem","name":"gmd:graphicOverview","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}graphicOverview ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","role":"body","line":"458","C":[{"N":"elem","name":"gmd:MD_BrowseGraphic","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_BrowseGraphic ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"459","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:fileName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}fileName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"460","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"461","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"https://tethys.at/assets/TETHYS-Logo.svg"}]}]}]},{"N":"elem","name":"gmd:fileDescription","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}fileDescription ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"463","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"464","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"TETHYS RDR"}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"17","uniform":"false","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","name":"Q{}freekeywords","line":"471","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"? ","C":[{"N":"choose","sType":"? ","role":"body","line":"472","C":[{"N":"docOrder","sType":"*NE","line":"472","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"and","C":[{"N":"compareToString","op":"eq","val":"Subject","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]},{"N":"compareToString","op":"eq","val":"Uncontrolled","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}Type"}]}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:descriptiveKeywords","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}descriptiveKeywords ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"473","C":[{"N":"elem","name":"gmd:MD_Keywords","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_Keywords ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"474","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"forEach","sType":"*NE nQ{http://www.isotc211.org/2005/gmd}keyword ","line":"475","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"475","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"and","C":[{"N":"compareToString","op":"eq","val":"Subject","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]},{"N":"compareToString","op":"eq","val":"Uncontrolled","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}Type"}]}]}]}]}]}]},{"N":"elem","name":"gmd:keyword","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}keyword ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"476","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"477","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"478","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"478","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}Value"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"elem","name":"gmd:type","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}type ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"482","C":[{"N":"elem","name":"gmd:MD_KeywordTypeCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_KeywordTypeCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","ns":"xml=~ =http://www.isotc211.org/2005/gmd xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"483","C":[{"N":"sequence","ns":"xml=~ =http://www.isotc211.org/2005/gmd xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"https://standards.iso.org/iso/19139/resources/gmxCodelists.xml#MD_KeywordTypeCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"theme"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"theme"}]}]}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"co","id":"18","uniform":"true","binds":"43","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","name":"Q{}datacenter_keyword","line":"491","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}descriptiveKeywords ","C":[{"N":"elem","name":"gmd:descriptiveKeywords","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}descriptiveKeywords ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","role":"body","line":"492","C":[{"N":"elem","name":"gmd:MD_Keywords","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_Keywords ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"493","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:keyword","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}keyword ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"494","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"495","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"496","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}datacentre","bSlot":"0","role":"select","line":"496"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:type","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}type ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"499","C":[{"N":"elem","name":"gmd:MD_KeywordTypeCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_KeywordTypeCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"500","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.ngdc.noaa.gov/metadata/published/xsd/schema/resources/Codelist/gmxCodelists.xml#MD_KeywordTypeCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"dataCentre"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Tethys RDR"}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"19","uniform":"true","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","name":"Q{}spatialcoverage","line":"507","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}extent ","C":[{"N":"elem","name":"gmd:extent","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}extent ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","role":"body","line":"508","C":[{"N":"elem","name":"gmd:EX_Extent","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}EX_Extent ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"509","C":[{"N":"choose","sType":"* ","line":"510","C":[{"N":"docOrder","sType":"*NE","line":"510","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"Coverage","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]}]}]}]}]},{"N":"let","var":"Q{}sLat","slot":"0","sType":"* ","line":"512","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/functions.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"513","C":[{"N":"compareToString","op":"ne","val":"","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"514","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}YMin"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"515","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"fn","sType":"1AO","name":"number","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"515","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}YMin"}]}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"518","C":[{"N":"str","role":"select","val":"","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"518"}]}]}]},{"N":"let","var":"Q{}wLong","slot":"1","sType":"* ","line":"522","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/functions.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"523","C":[{"N":"compareToString","op":"ne","val":"","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"524","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}XMin"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"525","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"fn","sType":"1AO","name":"number","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"525","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}XMin"}]}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"528","C":[{"N":"str","role":"select","val":"","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"528"}]}]}]},{"N":"let","var":"Q{}nLat","slot":"2","sType":"* ","line":"532","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/functions.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"533","C":[{"N":"compareToString","op":"ne","val":"","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"534","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}YMax"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"535","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"fn","sType":"1AO","name":"number","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"535","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}YMax"}]}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"538","C":[{"N":"str","role":"select","val":"","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"538"}]}]}]},{"N":"let","var":"Q{}eLong","slot":"3","sType":"* ","line":"542","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/functions.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"543","C":[{"N":"compareToString","op":"ne","val":"","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"544","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}XMax"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"545","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"fn","sType":"1AO","name":"number","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"545","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}XMax"}]}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"548","C":[{"N":"str","role":"select","val":"","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"548"}]}]}]},{"N":"choose","sType":"* ","line":"554","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"554","C":[{"N":"and","C":[{"N":"and","C":[{"N":"compareToString","op":"ne","val":"NaN","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"varRef","name":"Q{}nLat","slot":"2"}]}]}]},{"N":"compareToString","op":"ne","val":"NaN","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"varRef","name":"Q{}wLong","slot":"1"}]}]}]}]},{"N":"compareToString","op":"ne","val":"NaN","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"varRef","name":"Q{}sLat","slot":"0"}]}]}]}]},{"N":"compareToString","op":"ne","val":"NaN","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"varRef","name":"Q{}eLong","slot":"3"}]}]}]}]},{"N":"choose","sType":"*NE ","type":"item()*","line":"556","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"558","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}nLat","slot":"2"}]},{"N":"data","diag":"1|1||gc","C":[{"N":"varRef","name":"Q{}sLat","slot":"0"}]}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}eLong","slot":"3"}]},{"N":"data","diag":"1|1||gc","C":[{"N":"varRef","name":"Q{}wLong","slot":"1"}]}]}]},{"N":"elem","name":"gmd:geographicElement","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}geographicElement ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"559","C":[{"N":"elem","name":"gmd:EX_BoundingPolygon","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}EX_BoundingPolygon ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"560","C":[{"N":"elem","name":"gmd:polygon","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}polygon ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"561","C":[{"N":"elem","name":"gml:Point","sType":"1NE nQ{http://www.opgeris.net/gml/3.2}Point ","nsuri":"http://www.opgeris.net/gml/3.2","namespaces":"","line":"562","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"gml:id","sType":"1NA ","nsuri":"http://www.opgeris.net/gml/3.2","line":"564","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"565","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"generate-id","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"565","C":[{"N":"treat","as":"N","diag":"0|0||generate-id","C":[{"N":"check","card":"?","diag":"0|0||generate-id","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"gml:pos","sType":"1NE nQ{http://www.opgeris.net/gml/3.2}pos ","nsuri":"http://www.opgeris.net/gml/3.2","namespaces":"","line":"567","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"568","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}sLat","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"568"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"570","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}wLong","slot":"1","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"570"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"579","C":[{"N":"gc","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}wLong","slot":"1"}]},{"N":"int","val":"0"}]},{"N":"gc","op":"<","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}eLong","slot":"3"}]},{"N":"int","val":"0"}]}]},{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:geographicElement","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}geographicElement ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"581","C":[{"N":"elem","name":"gmd:EX_GeographicBoundingBox","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}EX_GeographicBoundingBox ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"582","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:westBoundLongitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}westBoundLongitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"583","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"584","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"585","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}wLong","slot":"1","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"585"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:eastBoundLongitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}eastBoundLongitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"588","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"589","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"590","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"int","sType":"1ADI","val":"180","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"590"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:southBoundLatitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}southBoundLatitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"593","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"594","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"595","C":[{"N":"vc","op":"lt","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"596","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}sLat","slot":"0"}]}]}]},{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}nLat","slot":"2"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"597","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}sLat","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"597"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"600","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}nLat","slot":"2","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"600"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"elem","name":"gmd:northBoundLatitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}northBoundLatitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"605","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"606","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"607","C":[{"N":"vc","op":"lt","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"608","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}sLat","slot":"0"}]}]}]},{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}nLat","slot":"2"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"609","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}nLat","slot":"2","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"609"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"612","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}sLat","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"612"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:geographicElement","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}geographicElement ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"619","C":[{"N":"elem","name":"gmd:EX_GeographicBoundingBox","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}EX_GeographicBoundingBox ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"620","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:westBoundLongitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}westBoundLongitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"621","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"622","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"623","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"int","sType":"1ADI","val":"-180","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"623"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:eastBoundLongitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}eastBoundLongitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"626","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"627","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"628","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}eLong","slot":"3","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"628"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:southBoundLatitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}southBoundLatitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"631","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"632","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"633","C":[{"N":"vc","op":"lt","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"634","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}sLat","slot":"0"}]}]}]},{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}nLat","slot":"2"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"635","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}sLat","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"635"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"638","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}nLat","slot":"2","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"638"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"elem","name":"gmd:northBoundLatitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}northBoundLatitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"643","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"644","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"645","C":[{"N":"vc","op":"lt","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"646","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}sLat","slot":"0"}]}]}]},{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}nLat","slot":"2"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"647","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}nLat","slot":"2","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"647"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"650","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}sLat","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"650"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]},{"N":"true"},{"N":"elem","name":"gmd:geographicElement","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}geographicElement ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"659","C":[{"N":"elem","name":"gmd:EX_GeographicBoundingBox","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}EX_GeographicBoundingBox ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"660","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:extentTypeCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}extentTypeCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"661","C":[{"N":"elem","name":"gco:Boolean","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Boolean ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"662","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"true"}]}]}]},{"N":"elem","name":"gmd:westBoundLongitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}westBoundLongitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"664","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"665","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"666","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}wLong","slot":"1","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"666"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:eastBoundLongitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}eastBoundLongitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"669","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"670","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"671","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}eLong","slot":"3","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"671"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:southBoundLatitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}southBoundLatitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"674","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"675","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"676","C":[{"N":"vc","op":"lt","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"677","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}sLat","slot":"0"}]}]}]},{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}nLat","slot":"2"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"678","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}sLat","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"678"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"681","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}nLat","slot":"2","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"681"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"elem","name":"gmd:northBoundLatitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}northBoundLatitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"686","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"687","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"688","C":[{"N":"vc","op":"lt","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"689","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}sLat","slot":"0"}]}]}]},{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}nLat","slot":"2"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"690","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}nLat","slot":"2","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"690"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"693","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}sLat","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"693"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]},{"N":"co","binds":"","id":"20","uniform":"true","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","name":"Q{}datacite_identifier","line":"709","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"* ","C":[{"N":"forEach","sType":"* ","role":"body","line":"710","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"710","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"Identifier","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]}]},{"N":"let","var":"Q{}identifier","slot":"0","sType":"* ","line":"711","C":[{"N":"dot","sType":"1NE","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"711"},{"N":"choose","sType":"? ","line":"712","C":[{"N":"or","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"712","C":[{"N":"or","C":[{"N":"fn","name":"starts-with","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||starts-with","C":[{"N":"check","card":"?","diag":"0|0||starts-with","C":[{"N":"data","diag":"0|0||starts-with","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}identifier","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]}]},{"N":"str","val":"doi:"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}identifier","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"str","val":"Doi"}]}]},{"N":"fn","name":"starts-with","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||starts-with","C":[{"N":"check","card":"?","diag":"0|0||starts-with","C":[{"N":"data","diag":"0|0||starts-with","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}identifier","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]}]},{"N":"str","val":"http://"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]},{"N":"elem","name":"gmd:onLine","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}onLine ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"713","C":[{"N":"elem","name":"gmd:CI_OnlineResource","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_OnlineResource ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"714","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:linkage","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}linkage ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"715","C":[{"N":"elem","name":"gmd:URL","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}URL ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"716","C":[{"N":"choose","sType":"? ","type":"item()*","line":"717","C":[{"N":"fn","name":"starts-with","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"718","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||starts-with","C":[{"N":"check","card":"?","diag":"0|0||starts-with","C":[{"N":"data","diag":"0|0||starts-with","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}identifier","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]}]},{"N":"str","val":"doi:"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"720","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"720","C":[{"N":"str","val":"http://dx.doi.org/"},{"N":"fn","name":"substring-after","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||substring-after","C":[{"N":"check","card":"?","diag":"0|0||substring-after","C":[{"N":"data","diag":"0|0||substring-after","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}identifier","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]}]},{"N":"str","val":"doi:"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"722","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}identifier","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"str","val":"Doi"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"723","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"723","C":[{"N":"str","val":"http://dx.doi.org/"},{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"data","diag":"0|0||normalize-space","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}identifier","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"fn","name":"starts-with","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"725","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||starts-with","C":[{"N":"check","card":"?","diag":"0|0||starts-with","C":[{"N":"data","diag":"0|0||starts-with","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}identifier","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]}]},{"N":"str","val":"http://"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"726","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"726","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"data","diag":"0|0||normalize-space","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}identifier","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"elem","name":"gmd:protocol","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}protocol ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"731","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"732","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"WWW:LINK-1.0-http--link"}]}]}]},{"N":"elem","name":"gmd:name","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}name ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"734","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"735","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Landing Page"}]}]}]},{"N":"elem","name":"gmd:description","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}description ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"737","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"738","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"740","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"740","C":[{"N":"fn","name":"string","C":[{"N":"str","val":"Link to DOI landing page or data facility landing page if no DOI is assigned."}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:function","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}function ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"743","C":[{"N":"elem","name":"gmd:CI_OnLineFunctionCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_OnLineFunctionCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"744","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_OnLineFunctionCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"information"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"information"}]}]}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]},{"N":"co","binds":"","id":"21","uniform":"true","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","name":"Q{}alternate_identifier","line":"753","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"? ","C":[{"N":"choose","sType":"? ","role":"body","line":"754","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"754","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}landingpage"},{"N":"str","val":""}]},{"N":"fn","name":"starts-with","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}landingpage"}]}]}]},{"N":"str","val":"http"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]},{"N":"elem","name":"gmd:onLine","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}onLine ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"755","C":[{"N":"elem","name":"gmd:CI_OnlineResource","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_OnlineResource ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"756","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:linkage","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}linkage ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"757","C":[{"N":"elem","name":"gmd:URL","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}URL ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"758","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"759","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"759","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}landingpage"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:protocol","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}protocol ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"762","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"763","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"WWW:LINK-1.0-http--link"}]}]}]},{"N":"elem","name":"gmd:name","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}name ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"765","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"766","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"767","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"767","C":[{"N":"str","val":"url"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:description","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}description ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"770","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"771","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Link to a web page related to the resource."}]}]}]},{"N":"elem","name":"gmd:function","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}function ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"773","C":[{"N":"elem","name":"gmd:CI_OnLineFunctionCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_OnLineFunctionCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"774","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_OnLineFunctionCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"information"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"information"}]}]}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"co","binds":"","id":"22","uniform":"false","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","name":"Q{}data_quality","line":"782","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}dataQualityInfo ","C":[{"N":"elem","name":"gmd:dataQualityInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}dataQualityInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","role":"body","line":"783","C":[{"N":"elem","name":"gmd:DQ_DataQuality","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}DQ_DataQuality ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"784","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:scope","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}scope ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"785","C":[{"N":"elem","name":"gmd:DQ_Scope","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}DQ_Scope ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"786","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:level","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}level ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"787","C":[{"N":"elem","name":"gmd:MD_ScopeCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_ScopeCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","ns":"xml=~ =http://www.isotc211.org/2005/gmd xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"788","C":[{"N":"sequence","ns":"xml=~ =http://www.isotc211.org/2005/gmd xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","sType":"*NA ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#MD_ScopeCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"dataset"}]}]}]}]},{"N":"elem","name":"gmd:levelDescription","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}levelDescription ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"790","C":[{"N":"att","name":"gco:nilReason","nsuri":"http://www.isotc211.org/2005/gco","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"inapplicable"}]}]}]}]}]},{"N":"elem","name":"gmd:report","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}report ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"793","C":[{"N":"elem","name":"gmd:DQ_DomainConsistency","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}DQ_DomainConsistency ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"794","C":[{"N":"elem","name":"gmd:result","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}result ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"795","C":[{"N":"elem","name":"gmd:DQ_ConformanceResult","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}DQ_ConformanceResult ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"796","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:specification","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}specification ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"797","C":[{"N":"elem","name":"gmd:CI_Citation","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Citation ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"798","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:title","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}title ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"799","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"800","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"VERORDNUNG (EG) Nr. 1089/2010 DER KOMMISSION vom 23. November 2010 zur Durchführung der Richtlinie 2007/2/EG des Europäischen Parlaments und des Rates hinsichtlich der Interoperabilität von Geodatensätzen und -diensten"}]}]}]},{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"802","C":[{"N":"elem","name":"gmd:CI_Date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"803","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"804","C":[{"N":"elem","name":"gco:Date","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Date ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"805","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"2010-12-08"}]}]}]},{"N":"elem","name":"gmd:dateType","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}dateType ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"807","C":[{"N":"elem","name":"gmd:CI_DateTypeCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_DateTypeCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","ns":"xml=~ =http://www.isotc211.org/2005/gmd xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"808","C":[{"N":"sequence","ns":"xml=~ =http://www.isotc211.org/2005/gmd xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","sType":"*NA ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"https://standards.iso.org/iso/19139/resources/gmxCodelists.xml#CI_DateTypeCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"publication"}]}]}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:explanation","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}explanation ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"814","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"815","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Datenstruktur entspricht INSPIRE"}]}]}]},{"N":"elem","name":"gmd:pass","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}pass ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"817","C":[{"N":"elem","name":"gco:Boolean","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Boolean ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"818","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"true"}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:lineage","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}lineage ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"824","C":[{"N":"elem","name":"gmd:LI_Lineage","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}LI_Lineage ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"825","C":[{"N":"elem","name":"gmd:statement","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}statement ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"826","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"827","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Digitalisierung"}]}]}]}]}]}]}]}]}]}]},{"N":"co","id":"23","uniform":"true","binds":"53 54","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","name":"Q{}distributor","line":"838","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}distributor ","C":[{"N":"elem","name":"gmd:distributor","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}distributor ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","role":"body","line":"839","C":[{"N":"elem","name":"gmd:MD_Distributor","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_Distributor ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"840","C":[{"N":"elem","name":"gmd:distributorContact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}distributorContact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"841","C":[{"N":"elem","name":"gmd:CI_ResponsibleParty","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_ResponsibleParty ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"842","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:organisationName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}organisationName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"843","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"844","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"845","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"gVarRef","name":"Q{}distributorOrganisation","bSlot":"0","sType":"1AS","role":"select","line":"845"},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:contactInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}contactInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"848","C":[{"N":"elem","name":"gmd:CI_Contact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Contact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"849","C":[{"N":"elem","name":"gmd:address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"850","C":[{"N":"elem","name":"gmd:CI_Address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"851","C":[{"N":"elem","name":"gmd:electronicMailAddress","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}electronicMailAddress ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"852","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"853","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"854","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"gVarRef","name":"Q{}distributorContactEmail","bSlot":"1","sType":"1AS","role":"select","line":"854"},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:role","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}role ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"861","C":[{"N":"elem","name":"gmd:CI_RoleCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_RoleCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"862","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"distributor"}]},{"N":"att","name":"codeSpace","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"ISOTC211/19115"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"distributor"}]}]}]}]}]}]}]}]}]}]}]},{"N":"co","id":"24","uniform":"true","binds":"55 56 57","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","name":"Q{}metadata_maintenance","line":"874","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}metadataMaintenance ","C":[{"N":"elem","name":"gmd:metadataMaintenance","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}metadataMaintenance ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","role":"body","line":"875","C":[{"N":"elem","name":"gmd:MD_MaintenanceInformation","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_MaintenanceInformation ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"876","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:maintenanceAndUpdateFrequency","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}maintenanceAndUpdateFrequency ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"877","C":[{"N":"elem","name":"gmd:MD_MaintenanceFrequencyCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_MaintenanceFrequencyCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"878","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://schemas.opengis.net/iso/19139/20070417/resources/codelist/gmxCodelists.xml#MD_MaintenanceFrequencyCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"asNeeded"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"asNeeded"}]}]}]}]},{"N":"elem","name":"gmd:contact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}contact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"880","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"881","C":[{"N":"compareToString","op":"ne","val":"","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"881","C":[{"N":"gVarRef","name":"Q{}maintenanceContactID","bSlot":"0"}]},{"N":"att","name":"xlink:href","sType":"1NA ","nsuri":"http://www.w3.org/1999/xlink","line":"882","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"883","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"gVarRef","name":"Q{}maintenanceContactID","bSlot":"0","sType":"1AS","role":"select","line":"883"},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"gmd:CI_ResponsibleParty","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_ResponsibleParty ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"886","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:individualName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}individualName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"887","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"888","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"889","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"gVarRef","name":"Q{}maintenanceContactName","bSlot":"1","sType":"1AS","role":"select","line":"889"},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:contactInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}contactInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"892","C":[{"N":"elem","name":"gmd:CI_Contact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Contact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"893","C":[{"N":"elem","name":"gmd:address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"894","C":[{"N":"elem","name":"gmd:CI_Address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"895","C":[{"N":"elem","name":"gmd:electronicMailAddress","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}electronicMailAddress ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"896","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"897","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"898","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"gVarRef","name":"Q{}maintenanceContactEmail","bSlot":"2","sType":"1AS","role":"select","line":"898"},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:role","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}role ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"905","C":[{"N":"elem","name":"gmd:CI_RoleCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_RoleCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"906","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"processor"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"processor"}]}]}]}]}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"25","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}responseDate","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"26","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}unixTimestamp","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"27","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}email","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"28","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}earliestDatestamp","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"29","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}repositoryName","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"30","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}repIdentifier","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"31","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}doiPrefix","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"32","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}sampleIdentifier","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"33","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}dateDelete","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"34","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}totalIds","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"35","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}res","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"36","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}cursor","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"37","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}oai_verb","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"38","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}oai_metadataPrefix","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"39","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}oai_error_code","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"40","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}oai_error_message","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"41","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}baseURL","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"42","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}fileIdentifierPrefix","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"oai_2_iso19139.xslt","slots":"200","sType":"1AS","baseUri":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"41","C":[{"N":"str","val":"at.tethys.dataset"}]}]}]},{"N":"co","binds":"","id":"43","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}datacentre","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"oai_2_iso19139.xslt","slots":"200","sType":"?ND ","baseUri":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"43","C":[{"N":"compareToInt","op":"gt","val":"0","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"44","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}CreatingCorporation"}]}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"45","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"45","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}CreatingCorporation"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"48","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"48","C":[{"N":"str","val":"Tethys RDR"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"co","binds":"","id":"44","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}nl","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"oai_2_iso19139.xslt","slots":"200","sType":"1AS","baseUri":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"661","C":[{"N":"str","val":"\n"}]}]}]},{"N":"co","binds":"","id":"45","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}langCodes","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","module":"datasetxml2oai-pmh.xslt","slots":"200","sType":"*NE","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"46","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"fn","name":"document","C":[{"N":"str","val":"langCodeMap.xml"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}langCodeMap,NE nQ{http://www.w3.org/1999/xhtml}langCodeMap]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}langCode,NE nQ{http://www.w3.org/1999/xhtml}langCode]"}]}]}]}]}]},{"N":"co","binds":"","id":"46","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}ascii","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","module":"datasetxml2oai-pmh.xslt","slots":"200","sType":"?ND ","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","role":"select","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"}]}]}]}]},{"N":"co","binds":"","id":"47","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}latin1","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","module":"datasetxml2oai-pmh.xslt","slots":"200","sType":"?ND ","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","role":"select","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"}]}]}]}]},{"N":"co","binds":"","id":"48","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}safe","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","module":"datasetxml2oai-pmh.xslt","slots":"200","sType":"?ND ","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","role":"select","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"!'()*-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~"}]}]}]}]},{"N":"co","binds":"","id":"49","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}hex","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","module":"datasetxml2oai-pmh.xslt","slots":"200","sType":"?ND ","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","role":"select","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"0123456789ABCDEF"}]}]}]}]},{"N":"co","binds":"","id":"50","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}resourcetype","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"functions.xslt","slots":"200","sType":"?ND ","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/functions.xslt","role":"select","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Dataset"}]}]}]}]},{"N":"co","id":"51","vis":"PUBLIC","ex:uniform":"true","binds":"50","C":[{"N":"globalVariable","name":"Q{}MDScopecode","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"functions.xslt","slots":"200","sType":"?ND ","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/functions.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"19","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"20","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"gVarRef","name":"Q{}resourcetype","bSlot":"0"}]},{"N":"str","val":"Dataset"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"dataset"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"21","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"gVarRef","name":"Q{}resourcetype","bSlot":"0"}]},{"N":"str","val":"Software"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"software"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"22","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"gVarRef","name":"Q{}resourcetype","bSlot":"0"}]},{"N":"str","val":"Service"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"service"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"23","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"gVarRef","name":"Q{}resourcetype","bSlot":"0"}]},{"N":"str","val":"Model"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"model"}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"25","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}resourcetype","bSlot":"0","role":"select","line":"25"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"co","id":"52","vis":"PUBLIC","ex:uniform":"true","binds":"50","C":[{"N":"globalVariable","name":"Q{}MDScopelist","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"functions.xslt","slots":"200","sType":"?ND ","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/functions.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"30","C":[{"N":"or","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"31","C":[{"N":"or","C":[{"N":"or","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"gVarRef","name":"Q{}resourcetype","bSlot":"0"}]},{"N":"str","val":"Dataset"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"gVarRef","name":"Q{}resourcetype","bSlot":"0"}]},{"N":"str","val":"Software"}]}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"gVarRef","name":"Q{}resourcetype","bSlot":"0"}]},{"N":"str","val":"Service"}]}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"gVarRef","name":"Q{}resourcetype","bSlot":"0"}]},{"N":"str","val":"Model"}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_ScopeCode"}]},{"N":"true"},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"http://datacite.org/schema/kernel-4"}]}]}]}]}]},{"N":"co","binds":"","id":"53","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}distributorOrganisation","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"functions.xslt","slots":"200","sType":"1AS","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"836","C":[{"N":"str","val":"Geological Survey of Austria"}]}]}]},{"N":"co","binds":"","id":"54","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}distributorContactEmail","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"functions.xslt","slots":"200","sType":"1AS","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"837","C":[{"N":"str","val":"repository@geologie.ac.at"}]}]}]},{"N":"co","binds":"","id":"55","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}maintenanceContactID","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"functions.xslt","slots":"200","sType":"1AS","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"871","C":[{"N":"str","val":"https://www.re3data.org/repository/r3d100013400"}]}]}]},{"N":"co","binds":"","id":"56","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}maintenanceContactName","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"functions.xslt","slots":"200","sType":"1AS","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"872","C":[{"N":"str","val":"Tethys RDR"}]}]}]},{"N":"co","binds":"","id":"57","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}maintenanceContactEmail","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"functions.xslt","slots":"200","sType":"1AS","baseUri":"file:///home/administrator/myapp/public/assets2/functions.xslt","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"873","C":[{"N":"str","val":"repository@geologie.ac.at"}]}]}]},{"N":"co","id":"58","binds":"25 37 38 41 39 40 66 61 64 62 65 63 7","C":[{"N":"mode","onNo":"SC","flags":"","patternSlots":"0","prec":"","C":[{"N":"templateRule","rank":"0","prec":"1","seq":"22","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"94","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"/root","prio":"0.5","matches":"NE u[NE nQ{}root,NE nQ{http://www.w3.org/1999/xhtml}root]","C":[{"N":"p.withUpper","role":"match","axis":"parent","sType":"1NE u[NE nQ{}root,NE nQ{http://www.w3.org/1999/xhtml}root]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","C":[{"N":"p.nodeTest","test":"NE u[NE nQ{}root,NE nQ{http://www.w3.org/1999/xhtml}root]"},{"N":"p.nodeTest","test":"ND"}]},{"N":"sequence","role":"action","sType":"*N ","C":[{"N":"procInst","sType":"1NP ","C":[{"N":"str","sType":"1AS ","val":"xml-stylesheet"},{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"type=\"text/xsl\" href=\"assets2/oai2_style.xslt\""}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"elem","name":"OAI-PMH","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}OAI-PMH ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"100","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"xsi:schemaLocation","nsuri":"http://www.w3.org/2001/XMLSchema-instance","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"}]},{"N":"elem","name":"responseDate","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}responseDate ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"101","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"102","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}responseDate","bSlot":"0","role":"select","line":"102"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"request","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}request ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"104","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"105","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"105","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_verb","bSlot":"1"}]},{"N":"str","val":""}]},{"N":"att","name":"verb","sType":"1NA ","line":"106","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"107","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}oai_verb","bSlot":"1","role":"select","line":"107"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"110","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"110","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_metadataPrefix","bSlot":"2"}]},{"N":"str","val":""}]},{"N":"att","name":"metadataPrefix","sType":"1NA ","line":"111","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"112","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}oai_metadataPrefix","bSlot":"2","role":"select","line":"112"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"115","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}baseURL","bSlot":"3","role":"select","line":"115"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"choose","sType":"? ","line":"117","C":[{"N":"compareToString","op":"ne","val":"","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"117","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"gVarRef","name":"Q{}oai_error_code","bSlot":"4"}]}]}]},{"N":"elem","name":"error","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}error ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"118","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"code","sType":"1NA ","line":"119","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"120","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"120","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"gVarRef","name":"Q{}oai_error_code","bSlot":"4"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"122","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}oai_error_message","bSlot":"5","role":"select","line":"122"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","type":"item()*","line":"127","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"128","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_verb","bSlot":"1"}]},{"N":"str","val":"GetRecord"}]},{"N":"applyT","sType":"* ","line":"129","mode":"Q{}GetRecord","bSlot":"6","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"129"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"131","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_verb","bSlot":"1"}]},{"N":"str","val":"Identify"}]},{"N":"applyT","sType":"* ","line":"132","mode":"Q{}Identify","bSlot":"7","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"132"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"134","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_verb","bSlot":"1"}]},{"N":"str","val":"ListIdentifiers"}]},{"N":"applyT","sType":"* ","line":"135","mode":"Q{}ListIdentifiers","bSlot":"8","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"135"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"137","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_verb","bSlot":"1"}]},{"N":"str","val":"ListMetadataFormats"}]},{"N":"applyT","sType":"* ","line":"138","mode":"Q{}ListMetadataFormats","bSlot":"9","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"138"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"140","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_verb","bSlot":"1"}]},{"N":"str","val":"ListRecords"}]},{"N":"applyT","sType":"* ","line":"141","mode":"Q{}ListRecords","bSlot":"10","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"141"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"143","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_verb","bSlot":"1"}]},{"N":"str","val":"ListSets"}]},{"N":"applyT","sType":"* ","line":"144","mode":"Q{}ListSets","bSlot":"11","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"144"}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]},{"N":"templateRule","rank":"1","prec":"1","seq":"31","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"405","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"SetSpec","prio":"0","matches":"NE u[NE nQ{}SetSpec,NE nQ{http://www.w3.org/1999/xhtml}SetSpec]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}SetSpec,NE nQ{http://www.w3.org/1999/xhtml}SetSpec]","sType":"1NE u[NE nQ{}SetSpec,NE nQ{http://www.w3.org/1999/xhtml}SetSpec]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"setSpec","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}setSpec ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"406","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"407","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"407"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"templateRule","rank":"2","prec":"1","seq":"30","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"318","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Rdr_Dataset","prio":"0","matches":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","sType":"1NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"choose","sType":"* ","type":"item()*","role":"action","line":"319","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"320","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_verb","bSlot":"1"}]},{"N":"str","val":"ListIdentifiers"}]},{"N":"callT","bSlot":"12","sType":"* ","name":"Q{}Rdr_Dataset_Data","line":"321"},{"N":"true"},{"N":"elem","name":"record","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}record ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"324","C":[{"N":"callT","bSlot":"12","sType":"* ","name":"Q{}Rdr_Dataset_Data","line":"325"}]}]}]},{"N":"templateRule","rank":"3","prec":"1","seq":"26","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"257","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Rdr_Sets","prio":"0","matches":"NE u[NE nQ{}Rdr_Sets,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Sets]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Rdr_Sets,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Sets]","sType":"1NE u[NE nQ{}Rdr_Sets,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Sets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"set","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}set ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"258","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"setSpec","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}setSpec ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"259","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"260","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Type","name":"attribute","nodeTest":"*NA nQ{}Type","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"260"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"setName","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}setName ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"262","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"263","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}TypeName","name":"attribute","nodeTest":"*NA nQ{}TypeName","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"263"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]},{"N":"co","id":"59","binds":"1 59 30 0 2","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}oai_datacite","prec":"","C":[{"N":"templateRule","rank":"0","prec":"1","seq":"12","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_datacite.xslt","line":"395","module":"oai_datacite.xslt","expand-text":"false","match":"File/@MimeType","prio":"0.5","matches":"NA nQ{}MimeType","C":[{"N":"p.withUpper","role":"match","axis":"parent","sType":"1NA nQ{}MimeType","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","C":[{"N":"p.nodeTest","test":"NA nQ{}MimeType"},{"N":"p.nodeTest","test":"NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]"}]},{"N":"elem","name":"format","sType":"1NE nQ{http://datacite.org/schema/kernel-4}format ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"396","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"397","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"398","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"dot"}]},{"N":"str","val":"application/x-sqlite3"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"application/geopackage+sqlite3"}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"402","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"dot","sType":"1NA nQ{}MimeType","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"402"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"1","prec":"1","seq":"13","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_datacite.xslt","line":"409","module":"oai_datacite.xslt","expand-text":"false","match":"Licence","prio":"0","matches":"NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","sType":"1NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"sequence","role":"action","sType":"* ","C":[{"N":"elem","name":"rights","sType":"1NE nQ{http://datacite.org/schema/kernel-4}rights ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"410","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"411","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"412","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"412"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"choose","sType":"? ","line":"414","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"414","C":[{"N":"attVal","name":"Q{}LinkLicence"},{"N":"str","val":""}]},{"N":"att","name":"rightsURI","sType":"1NA ","line":"415","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"416","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LinkLicence","name":"attribute","nodeTest":"*NA nQ{}LinkLicence","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"416"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"att","name":"schemeURI","sType":"1NA ","line":"419","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"https://spdx.org/licenses/"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"rightsIdentifierScheme","sType":"1NA ","line":"422","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"SPDX"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"rightsIdentifier","sType":"1NA ","line":"425","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"426","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Name","name":"attribute","nodeTest":"*NA nQ{}Name","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"426"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"428","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}NameLong","name":"attribute","nodeTest":"*NA nQ{}NameLong","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"428"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"choose","sType":"? ","line":"430","C":[{"N":"or","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"430","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Name"},{"N":"str","val":"CC-BY-4.0"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Name"},{"N":"str","val":"CC-BY-SA-4.0"}]}]},{"N":"elem","name":"rights","sType":"1NE nQ{http://datacite.org/schema/kernel-4}rights ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"431","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"rightsURI","sType":"1NA ","line":"432","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"info:eu-repo/semantics/openAccess"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Open Access"}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"templateRule","rank":"2","prec":"1","seq":"11","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_datacite.xslt","line":"352","module":"oai_datacite.xslt","expand-text":"false","match":"PersonAuthor","prio":"0","matches":"NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","sType":"1NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"creator","sType":"1NE nQ{http://datacite.org/schema/kernel-4}creator ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"353","C":[{"N":"sequence","sType":"* ","C":[{"N":"elem","name":"creatorName","sType":"1NE nQ{http://datacite.org/schema/kernel-4}creatorName ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"354","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"355","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"355","C":[{"N":"attVal","name":"Q{}NameType"},{"N":"str","val":""}]},{"N":"att","name":"nameType","sType":"1NA ","line":"356","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"357","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}NameType","name":"attribute","nodeTest":"*NA nQ{}NameType","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"357"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"360","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LastName","name":"attribute","nodeTest":"*NA nQ{}LastName","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"360"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"? ","line":"361","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"361","C":[{"N":"attVal","name":"Q{}FirstName"},{"N":"str","val":""}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":", "}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"364","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}FirstName","name":"attribute","nodeTest":"*NA nQ{}FirstName","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"364"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"* ","line":"365","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"365","C":[{"N":"attVal","name":"Q{}AcademicTitle"},{"N":"str","val":""}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" ("}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"367","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}AcademicTitle","name":"attribute","nodeTest":"*NA nQ{}AcademicTitle","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"367"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":")"}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"choose","sType":"* ","line":"372","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"372","C":[{"N":"attVal","name":"Q{}NameType"},{"N":"str","val":"Personal"}]},{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"givenName","sType":"1NE nQ{http://datacite.org/schema/kernel-4}givenName ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"373","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"374","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}FirstName","name":"attribute","nodeTest":"*NA nQ{}FirstName","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"374"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"familyName","sType":"1NE nQ{http://datacite.org/schema/kernel-4}familyName ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"376","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"377","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LastName","name":"attribute","nodeTest":"*NA nQ{}LastName","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"377"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"affiliation","sType":"1NE nQ{http://datacite.org/schema/kernel-4}affiliation ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"379","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"GBA"}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"382","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"382","C":[{"N":"attVal","name":"Q{}IdentifierOrcid"},{"N":"str","val":""}]},{"N":"elem","name":"nameIdentifier","sType":"1NE nQ{http://datacite.org/schema/kernel-4}nameIdentifier ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"383","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"schemeURI","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://orcid.org/"}]},{"N":"att","name":"nameIdentifierScheme","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"ORCID"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"384","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}IdentifierOrcid","name":"attribute","nodeTest":"*NA nQ{}IdentifierOrcid","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"384"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"templateRule","rank":"3","prec":"1","seq":"10","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_datacite.xslt","line":"333","module":"oai_datacite.xslt","expand-text":"false","match":"PersonContributor","prio":"0","matches":"NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","sType":"1NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"contributor","sType":"1NE nQ{http://datacite.org/schema/kernel-4}contributor ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"334","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"335","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"335","C":[{"N":"attVal","name":"Q{}ContributorType"},{"N":"str","val":""}]},{"N":"att","name":"contributorType","sType":"1NA ","line":"336","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"337","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}ContributorType","name":"attribute","nodeTest":"*NA nQ{}ContributorType","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"337"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"contributorName","sType":"1NE nQ{http://datacite.org/schema/kernel-4}contributorName ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"340","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"346","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"346","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"attVal","name":"Q{}FirstName"}]},{"N":"str","val":" "},{"N":"check","card":"?","diag":"0|2||concat","C":[{"N":"attVal","name":"Q{}LastName"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"templateRule","rank":"4","prec":"1","seq":"9","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_datacite.xslt","line":"320","module":"oai_datacite.xslt","expand-text":"false","match":"Reference","prio":"0","matches":"NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","sType":"1NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"relatedIdentifier","sType":"1NE nQ{http://datacite.org/schema/kernel-4}relatedIdentifier ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"321","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"relatedIdentifierType","sType":"1NA ","line":"322","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"323","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Type","name":"attribute","nodeTest":"*NA nQ{}Type","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"323"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"relationType","sType":"1NA ","line":"325","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"326","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Relation","name":"attribute","nodeTest":"*NA nQ{}Relation","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"326"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"328","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"328"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"5","prec":"1","seq":"8","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_datacite.xslt","line":"309","module":"oai_datacite.xslt","expand-text":"false","match":"AlternateIdentifier","prio":"0","matches":"NE u[NE nQ{}AlternateIdentifier,NE nQ{http://www.w3.org/1999/xhtml}AlternateIdentifier]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}AlternateIdentifier,NE nQ{http://www.w3.org/1999/xhtml}AlternateIdentifier]","sType":"1NE u[NE nQ{}AlternateIdentifier,NE nQ{http://www.w3.org/1999/xhtml}AlternateIdentifier]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"alternateIdentifier","sType":"1NE nQ{http://datacite.org/schema/kernel-4}alternateIdentifier ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"310","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"alternateIdentifierType","sType":"1NA ","line":"311","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"url"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"315","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}landingpage","name":"attribute","nodeTest":"*NA nQ{}landingpage","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"315"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"6","prec":"1","seq":"7","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_datacite.xslt","line":"297","module":"oai_datacite.xslt","expand-text":"false","match":"Subject","prio":"0","matches":"NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","sType":"1NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"subject","sType":"1NE nQ{http://datacite.org/schema/kernel-4}subject ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"298","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"299","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"299","C":[{"N":"attVal","name":"Q{}Language"},{"N":"str","val":""}]},{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"300","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"301","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"301"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"304","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"304"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"7","prec":"1","seq":"6","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_datacite.xslt","line":"271","module":"oai_datacite.xslt","expand-text":"false","match":"TitleAdditional","prio":"0","matches":"NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","sType":"1NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"title","sType":"1NE nQ{http://datacite.org/schema/kernel-4}title ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"272","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"273","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"273","C":[{"N":"attVal","name":"Q{}Language"},{"N":"str","val":""}]},{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"274","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"275","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"275"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","type":"item()*","line":"278","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"279","C":[{"N":"and","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":""}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Sub"}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Main"}]}]},{"N":"att","name":"titleType","sType":"1NA ","line":"280","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"281","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Type","name":"attribute","nodeTest":"*NA nQ{}Type","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"281"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Title"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"285","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Sub"}]},{"N":"att","name":"titleType","sType":"1NA ","line":"286","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"287","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Type","name":"attribute","nodeTest":"*NA nQ{}Type","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"287"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"title"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"292","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"292"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"8","prec":"1","seq":"5","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_datacite.xslt","line":"255","module":"oai_datacite.xslt","expand-text":"false","match":"TitleMain","prio":"0","matches":"NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","sType":"1NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"title","sType":"1NE nQ{http://datacite.org/schema/kernel-4}title ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"256","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"257","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"257","C":[{"N":"attVal","name":"Q{}Language"},{"N":"str","val":""}]},{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"258","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"259","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"259"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"262","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"262","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":""}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Main"}]}]},{"N":"att","name":"titleType","sType":"1NA ","line":"263","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"264","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Type","name":"attribute","nodeTest":"*NA nQ{}Type","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"264"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"267","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"267"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"9","prec":"1","seq":"4","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_datacite.xslt","line":"245","module":"oai_datacite.xslt","expand-text":"false","match":"Identifier","prio":"0","matches":"NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"1NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"identifier","sType":"1NE nQ{http://datacite.org/schema/kernel-4}identifier ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"246","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"identifierType","sType":"1NA ","line":"247","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"DOI"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"250","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"250"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"10","prec":"1","seq":"3","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_datacite.xslt","line":"208","module":"oai_datacite.xslt","expand-text":"false","match":"TitleAbstractAdditional","prio":"0","matches":"NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","sType":"1NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"description","sType":"1NE nQ{http://datacite.org/schema/kernel-4}description ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"209","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"210","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"211","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"211"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"choose","sType":"? ","line":"213","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"213","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":""}]},{"N":"att","name":"descriptionType","sType":"1NA ","line":"214","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"callT","sType":"* ","bSlot":"0","name":"Q{}CamelCaseWord","line":"215","C":[{"N":"withParam","name":"Q{}text","slot":"0","sType":"*NA nQ{}Type","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type","sType":"*NA nQ{}Type","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"216"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"220","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"220"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"11","prec":"1","seq":"2","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_datacite.xslt","line":"193","module":"oai_datacite.xslt","expand-text":"false","match":"TitleAbstract","prio":"0","matches":"NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","sType":"1NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"description","sType":"1NE nQ{http://datacite.org/schema/kernel-4}description ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"194","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"195","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"196","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"196"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"choose","sType":"? ","line":"198","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"198","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":""}]},{"N":"att","name":"descriptionType","sType":"1NA ","line":"199","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Abstract"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"204","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"204"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"12","prec":"1","seq":"1","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_datacite.xslt","line":"173","module":"oai_datacite.xslt","expand-text":"false","match":"Coverage","prio":"0","matches":"NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","sType":"1NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"geoLocation","sType":"1NE nQ{http://datacite.org/schema/kernel-4}geoLocation ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"174","C":[{"N":"elem","name":"geoLocationBox","sType":"1NE nQ{http://datacite.org/schema/kernel-4}geoLocationBox ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"175","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"westBoundLongitude","sType":"1NE nQ{http://datacite.org/schema/kernel-4}westBoundLongitude ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"176","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"177","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}XMin","name":"attribute","nodeTest":"*NA nQ{}XMin","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"177"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"eastBoundLongitude","sType":"1NE nQ{http://datacite.org/schema/kernel-4}eastBoundLongitude ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"179","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"180","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}XMax","name":"attribute","nodeTest":"*NA nQ{}XMax","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"180"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"southBoundLatitude","sType":"1NE nQ{http://datacite.org/schema/kernel-4}southBoundLatitude ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"182","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"183","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}YMin","name":"attribute","nodeTest":"*NA nQ{}YMin","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"183"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"northBoundLatitude","sType":"1NE nQ{http://datacite.org/schema/kernel-4}northBoundLatitude ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"185","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"186","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}YMax","name":"attribute","nodeTest":"*NA nQ{}YMax","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"186"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]},{"N":"templateRule","rank":"13","prec":"1","seq":"0","ns":"xml=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_datacite.xslt","line":"39","module":"oai_datacite.xslt","expand-text":"false","match":"Rdr_Dataset","prio":"0","matches":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","sType":"1NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"resource","sType":"1NE nQ{http://datacite.org/schema/kernel-4}resource ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","ns":"xml=~ xsi=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"41","C":[{"N":"sequence","ns":"xml=~ xsi=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","sType":"* ","C":[{"N":"att","name":"xsi:schemaLocation","nsuri":"http://www.w3.org/2001/XMLSchema-instance","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4.3/metadata.xsd"}]},{"N":"choose","sType":"* ","type":"item()*","line":"45","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","line":"46"},{"N":"applyT","sType":"* ","line":"47","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"47"}]},{"N":"true"},{"N":"elem","name":"identifier","sType":"1NE nQ{http://datacite.org/schema/kernel-4}identifier ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"50","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"oai:"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"52","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}repIdentifier","bSlot":"2","role":"select","line":"52"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":":"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"54","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}PublishId","name":"attribute","nodeTest":"*NA nQ{}PublishId","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"54"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"elem","name":"creators","sType":"1NE nQ{http://datacite.org/schema/kernel-4}creators ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"60","C":[{"N":"applyT","sType":"* ","line":"61","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"sort","role":"select","sType":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","sType":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"61"},{"N":"sortKey","sType":"?A ","C":[{"N":"check","card":"?","sType":"?A ","diag":"2|0|XTTE1020|sort","role":"select","C":[{"N":"data","sType":"*A ","role":"select","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}SortOrder","sType":"*NA nQ{}SortOrder","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"62"}]}]},{"N":"str","sType":"1AS ","val":"ascending","role":"order"},{"N":"str","sType":"1AS ","val":"en","role":"lang"},{"N":"str","sType":"1AS ","val":"#default","role":"caseOrder"},{"N":"str","sType":"1AS ","val":"true","role":"stable"}]}]}]}]},{"N":"elem","name":"titles","sType":"1NE nQ{http://datacite.org/schema/kernel-4}titles ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"65","C":[{"N":"sequence","sType":"* ","C":[{"N":"applyT","sType":"* ","line":"66","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","sType":"*NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"66"}]},{"N":"applyT","sType":"* ","line":"67","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","sType":"*NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"67"}]}]}]},{"N":"elem","name":"publisher","sType":"1NE nQ{http://datacite.org/schema/kernel-4}publisher ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"69","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"71","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}CreatingCorporation","name":"attribute","nodeTest":"*NA nQ{}CreatingCorporation","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"71"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"publicationYear","sType":"1NE nQ{http://datacite.org/schema/kernel-4}publicationYear ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"73","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"74","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}Year","role":"select","line":"74","C":[{"N":"slash","op":"/","sType":"*NA nQ{}Year","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"subjects","sType":"1NE nQ{http://datacite.org/schema/kernel-4}subjects ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"76","C":[{"N":"applyT","sType":"* ","line":"77","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","sType":"*NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"77"}]}]},{"N":"elem","name":"language","sType":"1NE nQ{http://datacite.org/schema/kernel-4}language ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"79","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"80","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"80"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"82","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","sType":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","line":"82"},{"N":"elem","name":"contributors","sType":"1NE nQ{http://datacite.org/schema/kernel-4}contributors ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"83","C":[{"N":"applyT","sType":"* ","line":"84","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"sort","role":"select","sType":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","sType":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"84"},{"N":"sortKey","sType":"?A ","C":[{"N":"check","card":"?","sType":"?A ","diag":"2|0|XTTE1020|sort","role":"select","C":[{"N":"data","sType":"*A ","role":"select","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}SortOrder","sType":"*NA nQ{}SortOrder","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"85"}]}]},{"N":"str","sType":"1AS ","val":"ascending","role":"order"},{"N":"str","sType":"1AS ","val":"en","role":"lang"},{"N":"str","sType":"1AS ","val":"#default","role":"caseOrder"},{"N":"str","sType":"1AS ","val":"true","role":"stable"}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"dates","sType":"1NE nQ{http://datacite.org/schema/kernel-4}dates ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"89","C":[{"N":"callT","bSlot":"3","sType":"* ","name":"Q{}RdrDate2","line":"90"}]},{"N":"elem","name":"version","sType":"1NE nQ{http://datacite.org/schema/kernel-4}version ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"92","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"93","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Version","sType":"*NA nQ{}Version","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","line":"94"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"95","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Version","name":"attribute","nodeTest":"*NA nQ{}Version","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"95"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"1"}]}]}]},{"N":"elem","name":"resourceType","sType":"1NE nQ{http://datacite.org/schema/kernel-4}resourceType ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"102","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"resourceTypeGeneral","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"Dataset"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Dataset"}]}]}]},{"N":"elem","name":"alternateIdentifiers","sType":"1NE nQ{http://datacite.org/schema/kernel-4}alternateIdentifiers ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"107","C":[{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}AlternateIdentifier","line":"108"}]},{"N":"choose","sType":"? ","line":"111","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","sType":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","line":"111"},{"N":"elem","name":"relatedIdentifiers","sType":"1NE nQ{http://datacite.org/schema/kernel-4}relatedIdentifiers ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"112","C":[{"N":"applyT","sType":"* ","line":"113","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","sType":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"113"}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"rightsList","sType":"1NE nQ{http://datacite.org/schema/kernel-4}rightsList ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"116","C":[{"N":"applyT","sType":"* ","line":"117","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","sType":"*NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"117"}]}]},{"N":"elem","name":"sizes","sType":"1NE nQ{http://datacite.org/schema/kernel-4}sizes ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"119","C":[{"N":"elem","name":"size","sType":"1NE nQ{http://datacite.org/schema/kernel-4}size ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"120","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"121","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"fn","sType":"1ADI","name":"count","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"121","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" datasets"}]}]}]}]},{"N":"elem","name":"formats","sType":"1NE nQ{http://datacite.org/schema/kernel-4}formats ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"125","C":[{"N":"applyT","sType":"* ","line":"126","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"docOrder","sType":"*NA nQ{}MimeType","role":"select","line":"126","C":[{"N":"slash","op":"/","sType":"*NA nQ{}MimeType","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}MimeType"}]}]}]}]},{"N":"elem","name":"descriptions","sType":"1NE nQ{http://datacite.org/schema/kernel-4}descriptions ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"128","C":[{"N":"sequence","sType":"* ","C":[{"N":"applyT","sType":"* ","line":"129","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","sType":"*NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"129"}]},{"N":"applyT","sType":"* ","line":"130","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","sType":"*NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"130"}]}]}]},{"N":"elem","name":"geoLocations","sType":"1NE nQ{http://datacite.org/schema/kernel-4}geoLocations ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"132","C":[{"N":"applyT","sType":"* ","line":"133","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","sType":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"133"}]}]}]}]}]}]}]},{"N":"co","id":"60","binds":"13 42 60 10 11 3 4 12 43 5 14 15 16 17 18 19 23 20 21 22 24","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}iso19139","prec":"","C":[{"N":"templateRule","rank":"0","prec":"1","seq":"21","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","line":"737","module":"oai_2_iso19139.xslt","expand-text":"true","match":"File","prio":"0","matches":"NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]","sType":"1NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco "},{"N":"choose","sType":"? ","role":"action","line":"738","C":[{"N":"compareToInt","op":"gt","val":"0","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"738","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}MimeType"}]}]}]}]}]},{"N":"elem","name":"gmd:distributionFormat","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}distributionFormat ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"739","C":[{"N":"elem","name":"gmd:MD_Format","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_Format ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"740","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:name","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}name ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"741","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"742","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"743","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"743","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}MimeType"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:version","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}version ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"746","C":[{"N":"att","name":"gco:nilReason","nsuri":"http://www.isotc211.org/2005/gco","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"missing"}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"templateRule","rank":"1","prec":"1","seq":"20","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","line":"701","module":"oai_2_iso19139.xslt","expand-text":"true","match":"Reference","prio":"0","matches":"NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","sType":"1NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco "},{"N":"choose","sType":"? ","role":"action","line":"704","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"704","C":[{"N":"fn","name":"not","C":[{"N":"fn","name":"contains","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","val":"missing"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]},{"N":"fn","name":"not","C":[{"N":"fn","name":"contains","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","val":"unknown"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]}]},{"N":"elem","name":"gmd:aggregationInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}aggregationInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"705","C":[{"N":"elem","name":"gmd:MD_AggregateInformation","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_AggregateInformation ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"706","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:aggregateDataSetIdentifier","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}aggregateDataSetIdentifier ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"707","C":[{"N":"elem","name":"gmd:RS_Identifier","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}RS_Identifier ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"708","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:code","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}code ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"709","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"710","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"711","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"711","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:codeSpace","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}codeSpace ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"714","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"715","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"716","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"716","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:associationType","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}associationType ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"721","C":[{"N":"elem","type":"element()","name":"gmd:DS_AssociationTypeCode","sType":"1NE ","nsuri":"http://www.isotc211.org/2005/gmd","line":"722","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","sType":"1NA ","line":"723","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"724","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"724","C":[{"N":"str","val":"http://datacite.org/schema/kernel-4"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"codeListValue","sType":"1NA ","line":"726","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"727","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"727","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"729","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"729","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"templateRule","rank":"2","prec":"1","seq":"19","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","line":"550","module":"oai_2_iso19139.xslt","expand-text":"true","match":"PersonContributor","prio":"0","matches":"NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","sType":"1NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco "},{"N":"let","var":"Q{}dcrole","slot":"0","sType":"*NE ","line":"551","role":"action","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"551","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"data","diag":"0|0||normalize-space","C":[{"N":"slash","op":"/","C":[{"N":"dot"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}ContributorType"}]}]}]}]}]},{"N":"let","var":"Q{}role","slot":"1","sType":"*NE ","line":"552","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"553","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"554","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"ContactPerson"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"pointOfContact"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"555","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"DataCollector"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"collaborator"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"556","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"DataCurator"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"custodian"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"557","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"DataManager"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"custodian"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"558","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"Distributor"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"originator"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"559","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"Editor"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"editor"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"560","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"Funder"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"funder"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"561","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"HostingInstitution"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"distributor"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"562","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"ProjectLeader"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"collaborator"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"563","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"ProjectManager"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"collaborator"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"564","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"ProjectMember"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"collaborator"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"565","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"ResearchGroup"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"collaborator"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"566","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"Researcher"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"collaborator"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"567","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"RightsHolder"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"rightsHolder"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"568","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"Sponsor"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"funder"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"569","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"WorkPackageLeader"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"collaborator"}]},{"N":"true"},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"contributor"}]}]}]},{"N":"elem","name":"gmd:citedResponsibleParty","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}citedResponsibleParty ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"573","C":[{"N":"let","var":"Q{}http-uri","slot":"2","sType":"* ","line":"574","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"575","C":[{"N":"compareToInt","op":"gt","val":"0","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"576","C":[{"N":"fn","name":"string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"attVal","name":"Q{}IdentifierOrcid"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"580","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"580","C":[{"N":"str","val":"http://orcid.org/"},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IdentifierOrcid"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"583","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"583","C":[{"N":"str","val":""}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"588","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"588","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}http-uri","slot":"2"}]},{"N":"str","val":""}]},{"N":"att","name":"xlink:href","sType":"1NA ","nsuri":"http://www.w3.org/1999/xlink","line":"589","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"590","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}http-uri","slot":"2","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"590"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"let","var":"Q{}nameidscheme","slot":"3","sType":"* ","line":"593","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"594","C":[{"N":"fn","name":"starts-with","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"595","C":[{"N":"treat","as":"AS","diag":"0|0||starts-with","C":[{"N":"check","card":"?","diag":"0|0||starts-with","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||starts-with","C":[{"N":"check","card":"?","diag":"0|0||starts-with","C":[{"N":"data","diag":"0|0||starts-with","C":[{"N":"varRef","name":"Q{}http-uri","slot":"2"}]}]}]}]}]},{"N":"str","val":"http://orcid.org/"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"596","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"596","C":[{"N":"str","val":"ORCID"}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"599","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"599","C":[{"N":"str","val":""}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"let","var":"Q{}email","slot":"4","sType":"* ","line":"603","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"604","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"605","C":[{"N":"attVal","name":"Q{}Email"},{"N":"str","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"606","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Email","name":"attribute","nodeTest":"*NA nQ{}Email","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"606"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"609","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"609","C":[{"N":"str","val":""}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"let","var":"Q{}affiliation","slot":"5","sType":"* ","line":"613","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"614","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"615","C":[{"N":"attVal","name":"Q{}NameType"},{"N":"str","val":"Personal"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"616","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"616","C":[{"N":"str","val":"GBA"}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"619","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"619","C":[{"N":"str","val":""}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"let","var":"Q{}contrnamestring","slot":"6","sType":"* ","line":"623","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"624","C":[{"N":"compareToString","op":"ne","val":"","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"625","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}LastName"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"630","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"630","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}LastName"}]}]}]},{"N":"str","val":", "},{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}FirstName"}]}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"633","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"633","C":[{"N":"str","val":"missing"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}ci_responsibleparty","line":"637","C":[{"N":"withParam","name":"Q{}individual","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"639","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}contrnamestring","slot":"6","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"639"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}httpuri","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"642","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}http-uri","slot":"2","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"642"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}personidtype","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"645","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}nameidscheme","slot":"3","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"645"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}organisation","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"648","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}affiliation","slot":"5","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"648"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}position","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"651","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}dcrole","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"651"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}email","slot":"4","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"654","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}email","slot":"4","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"654"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}role","slot":"1","sType":"*","C":[{"N":"varRef","name":"Q{}role","slot":"1","sType":"*","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"656"}]}]}]}]}]}]}]}]}]}]}]}]},{"N":"templateRule","rank":"3","prec":"1","seq":"18","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","line":"448","module":"oai_2_iso19139.xslt","expand-text":"true","match":"PersonAuthor","prio":"0","matches":"NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","sType":"1NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco "},{"N":"elem","name":"gmd:citedResponsibleParty","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}citedResponsibleParty ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","role":"action","line":"449","C":[{"N":"let","var":"Q{}http-uri","slot":"0","sType":"* ","line":"450","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"451","C":[{"N":"compareToInt","op":"gt","val":"0","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"452","C":[{"N":"fn","name":"string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"attVal","name":"Q{}IdentifierOrcid"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"456","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"456","C":[{"N":"str","val":"http://orcid.org/"},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IdentifierOrcid"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"459","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"459","C":[{"N":"str","val":""}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"464","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"464","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}http-uri","slot":"0"}]},{"N":"str","val":""}]},{"N":"att","name":"xlink:href","sType":"1NA ","nsuri":"http://www.w3.org/1999/xlink","line":"465","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"466","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}http-uri","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"466"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"let","var":"Q{}nameidscheme","slot":"1","sType":"* ","line":"469","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"470","C":[{"N":"fn","name":"starts-with","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"471","C":[{"N":"treat","as":"AS","diag":"0|0||starts-with","C":[{"N":"check","card":"?","diag":"0|0||starts-with","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||starts-with","C":[{"N":"check","card":"?","diag":"0|0||starts-with","C":[{"N":"data","diag":"0|0||starts-with","C":[{"N":"varRef","name":"Q{}http-uri","slot":"0"}]}]}]}]}]},{"N":"str","val":"http://orcid.org/"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"472","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"472","C":[{"N":"str","val":"ORCID"}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"475","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"475","C":[{"N":"str","val":""}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"let","var":"Q{}email","slot":"2","sType":"* ","line":"479","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"480","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"481","C":[{"N":"attVal","name":"Q{}Email"},{"N":"str","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"482","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Email","name":"attribute","nodeTest":"*NA nQ{}Email","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"482"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"485","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"485","C":[{"N":"str","val":""}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"let","var":"Q{}affiliation","slot":"3","sType":"* ","line":"489","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"490","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"491","C":[{"N":"attVal","name":"Q{}NameType"},{"N":"str","val":"Personal"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"492","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"492","C":[{"N":"str","val":"GBA"}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"495","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"495","C":[{"N":"str","val":""}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"let","var":"Q{}creatorname","slot":"4","sType":"* ","line":"499","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"sequence","sType":"* ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"500","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LastName","name":"attribute","nodeTest":"*NA nQ{}LastName","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"500"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"? ","line":"501","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"501","C":[{"N":"attVal","name":"Q{}FirstName"},{"N":"str","val":""}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":", "}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"504","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}FirstName","name":"attribute","nodeTest":"*NA nQ{}FirstName","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"504"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"* ","line":"505","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"505","C":[{"N":"attVal","name":"Q{}AcademicTitle"},{"N":"str","val":""}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" ("}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"507","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}AcademicTitle","name":"attribute","nodeTest":"*NA nQ{}AcademicTitle","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"507"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":")"}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"let","var":"Q{}namestring","slot":"5","sType":"* ","line":"511","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"512","C":[{"N":"compareToString","op":"ne","val":"","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"513","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}LastName"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"518","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"518","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}LastName"}]}]}]},{"N":"str","val":", "},{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}FirstName"}]}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"524","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"524","C":[{"N":"str","val":"missing"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}ci_responsibleparty","line":"528","C":[{"N":"withParam","name":"Q{}individual","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"530","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}namestring","slot":"5","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"530"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}personidtype","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"533","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}nameidscheme","slot":"1","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"533"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}organisation","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"536","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}affiliation","slot":"3","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"536"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}role","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"author"}]}]}]}]},{"N":"withParam","name":"Q{}email","slot":"2","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"540","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}email","slot":"2","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"540"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}datacite-creatorname","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"543","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}creatorname","slot":"4","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"543"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]},{"N":"templateRule","rank":"4","prec":"1","seq":"17","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","line":"437","module":"oai_2_iso19139.xslt","expand-text":"true","match":"TitleAdditional","prio":"0","matches":"NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","sType":"1NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco "},{"N":"choose","sType":"? ","role":"action","line":"438","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"438","C":[{"N":"compareToString","op":"eq","val":"Alternative","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Value"},{"N":"str","val":""}]}]},{"N":"elem","name":"gmd:alternateTitle","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}alternateTitle ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"439","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"440","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"441","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"441","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"templateRule","rank":"5","prec":"1","seq":"16","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","line":"368","module":"oai_2_iso19139.xslt","expand-text":"true","match":"Identifier","prio":"0","matches":"NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"1NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco "},{"N":"elem","name":"gmd:fileIdentifier","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}fileIdentifier ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","role":"action","line":"369","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"370","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"372","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"373","C":[{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"attVal","name":"Q{}Value"}]}]}]}]},{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"count","C":[{"N":"arrayBlock","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Doi"}]}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"374","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"374","C":[{"N":"gVarRef","name":"Q{}fileIdentifierPrefix","bSlot":"1"},{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"substring-after","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||substring-after","C":[{"N":"check","card":"?","diag":"0|0||substring-after","C":[{"N":"attVal","name":"Q{}Value"}]}]},{"N":"str","val":"/tethys."},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"377","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"377","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"templateRule","rank":"6","prec":"1","seq":"15","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","line":"341","module":"oai_2_iso19139.xslt","expand-text":"true","match":"Licence","prio":"0","matches":"NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","sType":"1NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco "},{"N":"sequence","role":"action","sType":"*NE ","C":[{"N":"elem","name":"gmd:resourceConstraints","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}resourceConstraints ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"342","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"xlink:href","nsuri":"http://www.w3.org/1999/xlink","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"https://creativecommons.org/licenses/by/4.0/deed.en"}]},{"N":"elem","name":"gmd:MD_Constraints","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_Constraints ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"343","C":[{"N":"elem","name":"gmd:useLimitation","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}useLimitation ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"344","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"345","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"346","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"346","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}NameLong"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:resourceConstraints","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}resourceConstraints ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"351","C":[{"N":"elem","name":"gmd:MD_LegalConstraints","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_LegalConstraints ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"352","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:accessConstraints","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}accessConstraints ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"353","C":[{"N":"elem","name":"gmd:MD_RestrictionCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_RestrictionCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"354","C":[{"N":"sequence","sType":"*NA ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/codeList.xml#MD_RestrictionCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"otherRestrictions"}]}]}]}]},{"N":"elem","name":"gmd:otherConstraints","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}otherConstraints ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"356","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"357","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"358","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"358","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}NameLong"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]},{"N":"templateRule","rank":"7","prec":"1","seq":"14","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","line":"54","module":"oai_2_iso19139.xslt","expand-text":"true","match":"Rdr_Dataset","prio":"0","matches":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","sType":"1NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco "},{"N":"elem","name":"gmd:MD_Metadata","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_Metadata ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","ns":"xml=~ gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ fn=http://example.com/functions","role":"action","line":"59","C":[{"N":"sequence","ns":"xml=~ gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ fn=http://example.com/functions","sType":"* ","C":[{"N":"att","name":"xsi:schemaLocation","nsuri":"http://www.w3.org/2001/XMLSchema-instance","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/gmd http://schemas.opengis.net/iso/19139/20060504/gmd/gmd.xsd http://www.isotc211.org/2005/gmx http://schemas.opengis.net/iso/19139/20060504/gmx/gmx.xsd http://www.isotc211.org/2005/srv http://schemas.opengis.net/iso/19139/20060504/srv/srv.xsd"}]},{"N":"choose","sType":"* ","line":"62","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","line":"62"},{"N":"applyT","sType":"* ","line":"63","mode":"Q{}iso19139","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"63"}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"gmd:language","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}language ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"67","C":[{"N":"elem","name":"gmd:LanguageCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}LanguageCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"68","C":[{"N":"sequence","sType":"*NA ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.loc.gov/standards/iso639-2/"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"ger"}]}]}]}]},{"N":"elem","name":"gmd:characterSet","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}characterSet ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"70","C":[{"N":"elem","name":"gmd:MD_CharacterSetCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_CharacterSetCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"71","C":[{"N":"sequence","sType":"*NA ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/codeList.xml#MD_CharacterSetCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"utf8"}]}]}]}]},{"N":"callT","bSlot":"3","sType":"* ","name":"Q{}hierarchylevel","line":"75"},{"N":"elem","name":"gmd:hierarchyLevelName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}hierarchyLevelName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"77","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"78","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Dataset"}]}]}]},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}metadatacontact","line":"84"},{"N":"callT","bSlot":"5","sType":"* ","name":"Q{}datestamp","line":"87"},{"N":"elem","name":"gmd:metadataStandardName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}metadataStandardName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"89","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"90","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"ISO 19139 Geographic Information - Metadata - Implementation Specification"}]}]}]},{"N":"elem","name":"gmd:metadataStandardVersion","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}metadataStandardVersion ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"92","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"93","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"2007"}]}]}]},{"N":"elem","name":"gmd:referenceSystemInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}referenceSystemInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"96","C":[{"N":"elem","name":"gmd:MD_ReferenceSystem","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_ReferenceSystem ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"97","C":[{"N":"elem","name":"gmd:referenceSystemIdentifier","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}referenceSystemIdentifier ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"98","C":[{"N":"elem","name":"gmd:RS_Identifier","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}RS_Identifier ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"99","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:code","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}code ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"100","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"102","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"https://www.opengis.net/def/crs/EPSG/0/31287"}]}]}]},{"N":"elem","name":"gmd:version","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}version ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"104","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"105","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"6.11.2"}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:identificationInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}identificationInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"112","C":[{"N":"elem","name":"gmd:MD_DataIdentification","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_DataIdentification ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"113","C":[{"N":"sequence","sType":"* ","C":[{"N":"elem","name":"gmd:citation","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}citation ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"116","C":[{"N":"elem","name":"gmd:CI_Citation","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Citation ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"117","C":[{"N":"sequence","sType":"* ","C":[{"N":"callT","bSlot":"6","sType":"* ","name":"Q{}title","line":"119"},{"N":"applyT","sType":"* ","line":"122","mode":"Q{}iso19139","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","sType":"*NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"122"}]},{"N":"callT","bSlot":"7","sType":"* ","name":"Q{}resourcedates","line":"125"},{"N":"elem","name":"gmd:identifier","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}identifier ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"129","C":[{"N":"forEach","sType":"* ","line":"130","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"130","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"Identifier","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]}]},{"N":"choose","sType":"? ","line":"133","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","line":"133","C":[{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"data","diag":"0|0||string-length","C":[{"N":"slash","op":"/","C":[{"N":"filter","C":[{"N":"dot"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Doi"}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]}]}]},{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"count","C":[{"N":"arrayBlock","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"slash","op":"/","C":[{"N":"filter","C":[{"N":"dot"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Doi"}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]},{"N":"str","val":"Doi"}]}]}]}]}]},{"N":"elem","name":"gmd:MD_Identifier","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_Identifier ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"134","C":[{"N":"elem","name":"gmd:code","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}code ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"135","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"136","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"137","C":[{"N":"or","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","line":"138","C":[{"N":"fn","name":"starts-with","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||starts-with","C":[{"N":"check","card":"?","diag":"0|0||starts-with","C":[{"N":"data","diag":"0|0||starts-with","C":[{"N":"slash","op":"/","C":[{"N":"filter","C":[{"N":"dot"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Doi"}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]},{"N":"str","val":"doi:"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"fn","name":"contains","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"data","diag":"0|0||contains","C":[{"N":"slash","op":"/","C":[{"N":"filter","C":[{"N":"dot"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Doi"}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]},{"N":"str","val":"doi.org"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"139","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}Value","role":"select","line":"139","C":[{"N":"slash","op":"/","sType":"*NA nQ{}Value","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","C":[{"N":"filter","C":[{"N":"dot"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Doi"}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","line":"141","C":[{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"count","C":[{"N":"filter","C":[{"N":"dot"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Doi"}]}]}]}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"gVarRef","name":"Q{}datacentre","bSlot":"8"}]},{"N":"str","val":"Tethys RDR"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"145","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"145","C":[{"N":"str","val":"https://doi.org/"},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"filter","C":[{"N":"dot"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Doi"}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"148","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}Value","role":"select","line":"148","C":[{"N":"slash","op":"/","sType":"*NA nQ{}Value","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","C":[{"N":"filter","C":[{"N":"dot"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Doi"}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"applyT","sType":"* ","line":"159","mode":"Q{}iso19139","bSlot":"2","C":[{"N":"sort","role":"select","sType":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","sType":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"159"},{"N":"sortKey","sType":"?A ","C":[{"N":"check","card":"?","sType":"?A ","diag":"2|0|XTTE1020|sort","role":"select","C":[{"N":"data","sType":"*A ","role":"select","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}SortOrder","sType":"*NA nQ{}SortOrder","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"160"}]}]},{"N":"str","sType":"1AS ","val":"ascending","role":"order"},{"N":"str","sType":"1AS ","val":"en","role":"lang"},{"N":"str","sType":"1AS ","val":"#default","role":"caseOrder"},{"N":"str","sType":"1AS ","val":"true","role":"stable"}]}]}]},{"N":"applyT","sType":"* ","line":"164","mode":"Q{}iso19139","bSlot":"2","C":[{"N":"sort","role":"select","sType":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","sType":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"164"},{"N":"sortKey","sType":"?A ","C":[{"N":"check","card":"?","sType":"?A ","diag":"2|0|XTTE1020|sort","role":"select","C":[{"N":"data","sType":"*A ","role":"select","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}SortOrder","sType":"*NA nQ{}SortOrder","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"165"}]}]},{"N":"str","sType":"1AS ","val":"ascending","role":"order"},{"N":"str","sType":"1AS ","val":"en","role":"lang"},{"N":"str","sType":"1AS ","val":"#default","role":"caseOrder"},{"N":"str","sType":"1AS ","val":"true","role":"stable"}]}]}]},{"N":"elem","name":"gmd:citedResponsibleParty","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}citedResponsibleParty ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"169","C":[{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}ci_responsibleparty","line":"170","C":[{"N":"withParam","name":"Q{}organisation","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"172","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}CreatingCorporation","name":"attribute","nodeTest":"*NA nQ{}CreatingCorporation","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"172"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}role","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"publisher"}]}]}]}]}]}]}]}]}]},{"N":"callT","bSlot":"9","sType":"* ","name":"Q{}abstract","line":"181"},{"N":"elem","name":"gmd:status","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}status ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"183","C":[{"N":"elem","name":"gmd:MD_ProgressCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_ProgressCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"184","C":[{"N":"sequence","sType":"*NA ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_ProgressCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"Complete"}]},{"N":"att","name":"codeSpace","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"ISOTC211/19115"}]}]}]}]},{"N":"callT","bSlot":"10","sType":"* ","name":"Q{}pointofcontact_custodian","line":"188"},{"N":"callT","bSlot":"11","sType":"* ","name":"Q{}pointofcontact_originator","line":"191"},{"N":"elem","name":"gmd:resourceMaintenance","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}resourceMaintenance ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"194","C":[{"N":"elem","name":"gmd:MD_MaintenanceInformation","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_MaintenanceInformation ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"195","C":[{"N":"elem","name":"gmd:maintenanceAndUpdateFrequency","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}maintenanceAndUpdateFrequency ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"196","C":[{"N":"elem","name":"gmd:MD_MaintenanceFrequencyCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_MaintenanceFrequencyCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"197","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://schemas.opengis.net/iso/19139/20070417/resources/codelist/gmxCodelists.xml#MD_MaintenanceFrequencyCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"asNeeded"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"asNeeded"}]}]}]}]}]}]},{"N":"callT","bSlot":"12","sType":"* ","name":"Q{}browseGraphictethys","line":"230"},{"N":"callT","bSlot":"13","sType":"* ","name":"Q{}freekeywords","line":"233"},{"N":"callT","bSlot":"14","sType":"* ","name":"Q{}datacenter_keyword","line":"235"},{"N":"applyT","sType":"* ","line":"238","mode":"Q{}iso19139","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","sType":"*NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"238"}]},{"N":"elem","name":"gmd:resourceConstraints","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}resourceConstraints ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"239","C":[{"N":"elem","name":"gmd:MD_SecurityConstraints","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_SecurityConstraints ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"240","C":[{"N":"elem","name":"gmd:classification","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}classification ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"241","C":[{"N":"elem","name":"gmd:MD_ClassificationCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_ClassificationCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"242","C":[{"N":"sequence","sType":"*NA ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/codeList.xml#MD_ClassificationCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"unclassified"}]}]}]}]}]}]},{"N":"applyT","sType":"* ","line":"252","mode":"Q{}iso19139","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","sType":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"252"}]},{"N":"elem","name":"gmd:spatialResolution","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}spatialResolution ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"254","C":[{"N":"let","var":"Q{}mainTitle","slot":"0","sType":"*NE ","line":"255","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"forEach","sType":"* ","line":"257","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"257","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"TitleMain","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]}]},{"N":"choose","sType":"? ","line":"258","C":[{"N":"compareToString","op":"eq","val":"Main","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","line":"258","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}Type"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"259","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"259"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"elem","name":"gmd:MD_Resolution","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_Resolution ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"263","C":[{"N":"choose","sType":"?NE ","type":"item()*","line":"264","C":[{"N":"fn","name":"contains","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","line":"265","C":[{"N":"treat","as":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"data","diag":"0|0||contains","C":[{"N":"varRef","name":"Q{}mainTitle","slot":"0"}]}]}]}]}]},{"N":"str","val":"50.000"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"elem","name":"gmd:equivalentScale","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}equivalentScale ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"266","C":[{"N":"elem","name":"gmd:MD_RepresentativeFraction","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_RepresentativeFraction ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"267","C":[{"N":"elem","name":"gmd:denominator","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}denominator ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"268","C":[{"N":"elem","name":"gco:Integer","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Integer ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"270","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"50000"}]}]}]}]}]},{"N":"true"},{"N":"elem","name":"gmd:distance","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}distance ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"276","C":[{"N":"elem","name":"gco:Distance","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Distance ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"277","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"uom","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"m"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"-1"}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:language","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}language ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"285","C":[{"N":"elem","name":"gmd:LanguageCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}LanguageCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"286","C":[{"N":"sequence","sType":"*NA ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.loc.gov/standards/iso639-2/"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"ger"}]}]}]}]},{"N":"elem","name":"gmd:topicCategory","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}topicCategory ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"290","C":[{"N":"elem","name":"gmd:MD_TopicCategoryCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_TopicCategoryCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"291","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"geoscientificInformation"}]}]}]},{"N":"callT","bSlot":"15","sType":"* ","name":"Q{}spatialcoverage","line":"295"}]}]}]},{"N":"elem","name":"gmd:distributionInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}distributionInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"304","C":[{"N":"elem","name":"gmd:MD_Distribution","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_Distribution ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"305","C":[{"N":"sequence","sType":"* ","C":[{"N":"applyT","sType":"* ","line":"308","mode":"Q{}iso19139","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]","sType":"*NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"308"}]},{"N":"callT","bSlot":"16","sType":"* ","name":"Q{}distributor","line":"311"},{"N":"elem","name":"gmd:transferOptions","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}transferOptions ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"314","C":[{"N":"elem","name":"gmd:MD_DigitalTransferOptions","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_DigitalTransferOptions ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"315","C":[{"N":"sequence","sType":"* ","C":[{"N":"callT","bSlot":"17","sType":"* ","name":"Q{}datacite_identifier","line":"319"},{"N":"callT","bSlot":"18","sType":"* ","name":"Q{}alternate_identifier","line":"322"}]}]}]}]}]}]},{"N":"callT","bSlot":"19","sType":"* ","name":"Q{}data_quality","line":"330"},{"N":"callT","bSlot":"20","sType":"* ","name":"Q{}metadata_maintenance","line":"333"}]}]}]}]}]},{"N":"co","id":"61","binds":"29 41 27 28 30 32","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}Identify","prec":"","C":[{"N":"templateRule","rank":"0","prec":"1","seq":"23","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"152","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Datasets","prio":"0","matches":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"1NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"Identify","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}Identify ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"153","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"repositoryName","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}repositoryName ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"154","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"155","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}repositoryName","bSlot":"0","role":"select","line":"155"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"baseURL","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}baseURL ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"157","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"158","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}baseURL","bSlot":"1","role":"select","line":"158"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"protocolVersion","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}protocolVersion ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"160","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"2.0"}]}]},{"N":"elem","name":"adminEmail","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}adminEmail ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"163","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"164","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}email","bSlot":"2","role":"select","line":"164"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"earliestDatestamp","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}earliestDatestamp ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"166","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"167","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}earliestDatestamp","bSlot":"3","role":"select","line":"167"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"deletedRecord","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}deletedRecord ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"169","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"persistent"}]}]},{"N":"elem","name":"granularity","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}granularity ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"172","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"YYYY-MM-DDThh:mm:ssZ"}]}]},{"N":"elem","name":"description","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}description ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"175","C":[{"N":"elem","name":"oai-identifier","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/oai-identifier}oai-identifier ","nsuri":"http://www.openarchives.org/OAI/2.0/oai-identifier","namespaces":"=http://www.openarchives.org/OAI/2.0/oai-identifier xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/oai-identifier xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","line":"176","C":[{"N":"sequence","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/oai-identifier xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","sType":"*N ","C":[{"N":"att","name":"xsi:schemaLocation","nsuri":"http://www.w3.org/2001/XMLSchema-instance","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.openarchives.org/OAI/2.0/oai-identifier http://www.openarchives.org/OAI/2.0/oai-identifier.xsd"}]},{"N":"elem","name":"scheme","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/oai-identifier}scheme ","nsuri":"http://www.openarchives.org/OAI/2.0/oai-identifier","namespaces":"=http://www.openarchives.org/OAI/2.0/oai-identifier xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"177","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"oai"}]}]},{"N":"elem","name":"repositoryIdentifier","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/oai-identifier}repositoryIdentifier ","nsuri":"http://www.openarchives.org/OAI/2.0/oai-identifier","namespaces":"=http://www.openarchives.org/OAI/2.0/oai-identifier xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"180","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"181","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}repIdentifier","bSlot":"4","role":"select","line":"181"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"delimiter","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/oai-identifier}delimiter ","nsuri":"http://www.openarchives.org/OAI/2.0/oai-identifier","namespaces":"=http://www.openarchives.org/OAI/2.0/oai-identifier xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"183","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":":"}]}]},{"N":"elem","name":"sampleIdentifier","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/oai-identifier}sampleIdentifier ","nsuri":"http://www.openarchives.org/OAI/2.0/oai-identifier","namespaces":"=http://www.openarchives.org/OAI/2.0/oai-identifier xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"186","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"187","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}sampleIdentifier","bSlot":"5","role":"select","line":"187"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"62","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}ListMetadataFormats","prec":"","C":[{"N":"templateRule","rank":"0","prec":"1","seq":"24","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"219","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Datasets","prio":"0","matches":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"1NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"ListMetadataFormats","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}ListMetadataFormats ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"220","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"metadataFormat","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}metadataFormat ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"221","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"metadataPrefix","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}metadataPrefix ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"222","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"oai_dc"}]}]},{"N":"elem","name":"schema","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}schema ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"225","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"http://www.openarchives.org/OAI/2.0/oai_dc.xsd"}]}]},{"N":"elem","name":"metadataNamespace","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}metadataNamespace ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"228","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"http://www.openarchives.org/OAI/2.0/oai_dc/"}]}]}]}]},{"N":"elem","name":"metadataFormat","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}metadataFormat ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"232","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"metadataPrefix","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}metadataPrefix ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"233","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"oai_datacite"}]}]},{"N":"elem","name":"schema","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}schema ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"236","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"http://schema.datacite.org/meta/kernel-4.3/metadata.xsd"}]}]},{"N":"elem","name":"metadataNamespace","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}metadataNamespace ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"239","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"http://datacite.org/schema/kernel-4"}]}]}]}]},{"N":"elem","name":"metadataFormat","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}metadataFormat ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"243","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"metadataPrefix","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}metadataPrefix ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"244","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"iso19139"}]}]},{"N":"elem","name":"schema","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}schema ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"245","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/gmd/gmd.xsd"}]}]},{"N":"elem","name":"metadataNamespace","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}metadataNamespace ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"246","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/gmd"}]}]}]}]}]}]}]}]}]},{"N":"co","id":"63","binds":"58","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}ListSets","prec":"","C":[{"N":"templateRule","rank":"0","prec":"1","seq":"25","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"251","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Datasets","prio":"0","matches":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"1NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"ListSets","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}ListSets ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"252","C":[{"N":"applyT","sType":"* ","line":"253","mode":"#unnamed","bSlot":"0","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Sets,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Sets]","sType":"*NE u[NE nQ{}Rdr_Sets,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Sets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"253"}]}]}]}]}]},{"N":"co","id":"64","binds":"58 34 33 36 35","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}ListIdentifiers","prec":"","C":[{"N":"templateRule","rank":"0","prec":"1","seq":"27","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"268","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Datasets","prio":"0","matches":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"1NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"choose","sType":"? ","role":"action","line":"269","C":[{"N":"compareToInt","op":"gt","val":"0","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"269","C":[{"N":"fn","name":"count","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]}]},{"N":"elem","name":"ListIdentifiers","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}ListIdentifiers ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"270","C":[{"N":"sequence","sType":"* ","C":[{"N":"applyT","sType":"* ","line":"271","mode":"#unnamed","bSlot":"0","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","sType":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"271"}]},{"N":"choose","sType":"? ","line":"272","C":[{"N":"vc","op":"gt","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"272","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"gVarRef","name":"Q{}totalIds","bSlot":"1"}]}]}]},{"N":"int","val":"0"}]},{"N":"elem","name":"resumptionToken","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}resumptionToken ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"273","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"expirationDate","sType":"1NA ","line":"274","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"275","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}dateDelete","bSlot":"2","role":"select","line":"275"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"completeListSize","sType":"1NA ","line":"277","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"278","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}totalIds","bSlot":"1","role":"select","line":"278"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"cursor","sType":"1NA ","line":"280","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"281","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}cursor","bSlot":"3","role":"select","line":"281"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"283","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}res","bSlot":"4","role":"select","line":"283"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"co","id":"65","binds":"58 34 33 36 35","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}ListRecords","prec":"","C":[{"N":"templateRule","rank":"0","prec":"1","seq":"28","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"290","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Datasets","prio":"0","matches":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"1NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"choose","sType":"? ","role":"action","line":"291","C":[{"N":"compareToInt","op":"gt","val":"0","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"291","C":[{"N":"fn","name":"count","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]}]},{"N":"elem","name":"ListRecords","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}ListRecords ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"292","C":[{"N":"sequence","sType":"* ","C":[{"N":"applyT","sType":"* ","line":"293","mode":"#unnamed","bSlot":"0","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","sType":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"293"}]},{"N":"choose","sType":"? ","line":"294","C":[{"N":"vc","op":"gt","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"294","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"gVarRef","name":"Q{}totalIds","bSlot":"1"}]}]}]},{"N":"int","val":"0"}]},{"N":"elem","name":"resumptionToken","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}resumptionToken ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"295","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"expirationDate","sType":"1NA ","line":"296","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"297","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}dateDelete","bSlot":"2","role":"select","line":"297"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"completeListSize","sType":"1NA ","line":"299","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"300","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}totalIds","bSlot":"1","role":"select","line":"300"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"cursor","sType":"1NA ","line":"302","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"303","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}cursor","bSlot":"3","role":"select","line":"303"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"305","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}res","bSlot":"4","role":"select","line":"305"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"co","id":"66","binds":"58","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}GetRecord","prec":"","C":[{"N":"templateRule","rank":"0","prec":"1","seq":"29","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"312","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Datasets","prio":"0","matches":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"1NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"GetRecord","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}GetRecord ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"313","C":[{"N":"applyT","sType":"* ","line":"314","mode":"#unnamed","bSlot":"0","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","sType":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"314"}]}]}]}]}]},{"N":"co","id":"67","binds":"45 31 26 67 9 8","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}oai_dc","prec":"","C":[{"N":"templateRule","rank":"0","prec":"1","seq":"44","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"705","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"File/@MimeType","prio":"0.5","matches":"NA nQ{}MimeType","C":[{"N":"p.withUpper","role":"match","axis":"parent","sType":"1NA nQ{}MimeType","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","C":[{"N":"p.nodeTest","test":"NA nQ{}MimeType"},{"N":"p.nodeTest","test":"NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]"}]},{"N":"elem","name":"dc:format","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}format ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"706","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"707","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"708","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"dot"}]},{"N":"str","val":"application/x-sqlite3"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"application/geopackage+sqlite3"}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"712","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"dot","sType":"1NA nQ{}MimeType","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"712"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"1","prec":"1","seq":"48","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"749","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Licence","prio":"0","matches":"NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","sType":"1NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"sequence","role":"action","sType":"* ","C":[{"N":"elem","name":"dc:rights","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}rights ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"750","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"751","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}NameLong","name":"attribute","nodeTest":"*NA nQ{}NameLong","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"751"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"753","C":[{"N":"or","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"753","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Name"},{"N":"str","val":"CC-BY-4.0"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Name"},{"N":"str","val":"CC-BY-SA-4.0"}]}]},{"N":"elem","name":"dc:rights","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}rights ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"754","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"info:eu-repo/semantics/openAccess"}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"templateRule","rank":"2","prec":"1","seq":"47","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"741","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"@Language","prio":"0","matches":"NA nQ{}Language","C":[{"N":"p.nodeTest","role":"match","test":"NA nQ{}Language","sType":"1NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"let","var":"Q{}language","slot":"0","sType":"*NE ","line":"742","role":"action","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"742","C":[{"N":"dot"}]},{"N":"elem","name":"dc:language","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}language ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"743","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"745","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}iso639-2","role":"select","line":"745","C":[{"N":"docOrder","sType":"*NA nQ{}iso639-2","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","C":[{"N":"slash","op":"/","C":[{"N":"filter","C":[{"N":"gVarRef","name":"Q{}langCodes","bSlot":"0"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}iso639-1"},{"N":"data","diag":"1|1||gc","C":[{"N":"varRef","name":"Q{}language","slot":"0"}]}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}iso639-2"}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"3","prec":"1","seq":"46","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"735","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"@CreatingCorporation","prio":"0","matches":"NA nQ{}CreatingCorporation","C":[{"N":"p.nodeTest","role":"match","test":"NA nQ{}CreatingCorporation","sType":"1NA nQ{}CreatingCorporation","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:language","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}language ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"736","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"737","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"dot","sType":"1NA nQ{}CreatingCorporation","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"737"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"templateRule","rank":"4","prec":"1","seq":"45","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"725","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Identifier","prio":"0","matches":"NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"1NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:relation","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}relation ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"726","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"728","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"728","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"gVarRef","name":"Q{}doiPrefix","bSlot":"1"}]}]},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"templateRule","rank":"5","prec":"1","seq":"43","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"680","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"EmbargoDate","prio":"0","matches":"NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]","sType":"1NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"choose","sType":"? ","role":"action","line":"681","C":[{"N":"gc","op":"<","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"681","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}unixTimestamp","bSlot":"2"}]},{"N":"data","diag":"1|1||gc","C":[{"N":"slash","op":"/","C":[{"N":"dot"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}UnixTimestamp"}]}]}]},{"N":"elem","name":"dc:date","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}date ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"682","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"info:eu-repo/date/embargoEnd/"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"684","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}Year","role":"select","line":"684","C":[{"N":"slash","op":"/","sType":"*NA nQ{}Year","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","C":[{"N":"dot"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\n -\n "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"686","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"format-number","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"686","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"dot"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\n -\n "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"688","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"format-number","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"688","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"dot"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"templateRule","rank":"6","prec":"1","seq":"42","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"642","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"PersonContributor","prio":"0","matches":"NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","sType":"1NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:contributor","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}contributor ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"643","C":[{"N":"sequence","sType":"* ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"644","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LastName","name":"attribute","nodeTest":"*NA nQ{}LastName","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"644"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"? ","line":"645","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"645","C":[{"N":"attVal","name":"Q{}FirstName"},{"N":"str","val":""}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":", "}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"648","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}FirstName","name":"attribute","nodeTest":"*NA nQ{}FirstName","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"648"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"* ","line":"649","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"649","C":[{"N":"attVal","name":"Q{}AcademicTitle"},{"N":"str","val":""}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" ("}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"651","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}AcademicTitle","name":"attribute","nodeTest":"*NA nQ{}AcademicTitle","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"651"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":")"}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"templateRule","rank":"7","prec":"1","seq":"41","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"627","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"PersonAuthor|PersonEditor","prio":"0","matches":"NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","sType":"1NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]"},{"N":"elem","name":"dc:creator","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}creator ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"628","C":[{"N":"sequence","sType":"* ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"629","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LastName","name":"attribute","nodeTest":"*NA nQ{}LastName","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"629"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"? ","line":"630","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"630","C":[{"N":"attVal","name":"Q{}FirstName"},{"N":"str","val":""}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":", "}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"633","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}FirstName","name":"attribute","nodeTest":"*NA nQ{}FirstName","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"633"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"* ","line":"634","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"634","C":[{"N":"attVal","name":"Q{}AcademicTitle"},{"N":"str","val":""}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" ("}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"636","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}AcademicTitle","name":"attribute","nodeTest":"*NA nQ{}AcademicTitle","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"636"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":")"}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"templateRule","rank":"8","prec":"1","seq":"41","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"627","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"PersonAuthor|PersonEditor","prio":"0","matches":"NE u[NE nQ{}PersonEditor,NE nQ{http://www.w3.org/1999/xhtml}PersonEditor]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}PersonEditor,NE nQ{http://www.w3.org/1999/xhtml}PersonEditor]","sType":"1NE u[NE nQ{}PersonEditor,NE nQ{http://www.w3.org/1999/xhtml}PersonEditor]"},{"N":"elem","name":"dc:creator","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}creator ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"628","C":[{"N":"sequence","sType":"* ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"629","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LastName","name":"attribute","nodeTest":"*NA nQ{}LastName","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"629"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"? ","line":"630","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"630","C":[{"N":"attVal","name":"Q{}FirstName"},{"N":"str","val":""}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":", "}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"633","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}FirstName","name":"attribute","nodeTest":"*NA nQ{}FirstName","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"633"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"* ","line":"634","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"634","C":[{"N":"attVal","name":"Q{}AcademicTitle"},{"N":"str","val":""}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" ("}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"636","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}AcademicTitle","name":"attribute","nodeTest":"*NA nQ{}AcademicTitle","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"636"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":")"}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"templateRule","rank":"9","prec":"1","seq":"40","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"617","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Reference","prio":"0","matches":"NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","sType":"1NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:relation","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}relation ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"618","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"619","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"619","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"templateRule","rank":"10","prec":"1","seq":"39","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"606","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Collection","prio":"0","matches":"NE u[NE nQ{}Collection,NE nQ{http://www.w3.org/1999/xhtml}Collection]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Collection,NE nQ{http://www.w3.org/1999/xhtml}Collection]","sType":"1NE u[NE nQ{}Collection,NE nQ{http://www.w3.org/1999/xhtml}Collection]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:subject","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}subject ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"607","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"613","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"613","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Collectionrole.Name"}]}]},{"N":"str","val":":"},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Number"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"templateRule","rank":"11","prec":"1","seq":"38","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"596","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Subject","prio":"0","matches":"NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","sType":"1NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:subject","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}subject ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"597","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"598","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"598","C":[{"N":"attVal","name":"Q{}Language"},{"N":"str","val":""}]},{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"599","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"600","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"600"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"603","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"603"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"12","prec":"1","seq":"37","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"587","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"TitleAbstractAdditional","prio":"0","matches":"NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","sType":"1NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:description","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}description ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"588","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"589","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"590","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"590"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"592","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"592"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"13","prec":"1","seq":"36","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"579","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"TitleAbstract","prio":"0","matches":"NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","sType":"1NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:description","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}description ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"580","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"581","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"582","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"582"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"584","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"584"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"14","prec":"1","seq":"35","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"570","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"TitleAdditional","prio":"0","matches":"NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","sType":"1NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:title","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}title ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"571","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"572","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"573","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"573"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"575","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"575"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"15","prec":"1","seq":"34","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"561","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"TitleMain","prio":"0","matches":"NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","sType":"1NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:title","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}title ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"562","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"563","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"564","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"564"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"566","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"566"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"16","prec":"1","seq":"33","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"524","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Coverage","prio":"0","matches":"NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","sType":"1NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:coverage","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}coverage ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"525","C":[{"N":"let","var":"Q{}geolocation","slot":"0","sType":"* ","line":"531","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"531","C":[{"N":"str","val":"SOUTH-BOUND LATITUDE: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}YMin"}]},{"N":"str","val":" * WEST-BOUND LONGITUDE: "},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"attVal","name":"Q{}XMin"}]},{"N":"str","val":" * NORTH-BOUND LATITUDE: "},{"N":"check","card":"?","diag":"0|5||concat","C":[{"N":"attVal","name":"Q{}YMax"}]},{"N":"str","val":" * EAST-BOUND LONGITUDE: "},{"N":"check","card":"?","diag":"0|7||concat","C":[{"N":"attVal","name":"Q{}XMax"}]}]},{"N":"sequence","sType":"? ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"532","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}geolocation","slot":"0","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"532"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"? ","line":"535","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"535","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}ElevationMin"},{"N":"str","val":""}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}ElevationMax"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"536","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"536","C":[{"N":"str","val":" * ELEVATION MIN: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}ElevationMin"}]},{"N":"str","val":" * ELEVATION MAX: "},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"attVal","name":"Q{}ElevationMax"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"538","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"538","C":[{"N":"attVal","name":"Q{}ElevationAbsolut"},{"N":"str","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"539","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"539","C":[{"N":"str","val":" * ELEVATION ABSOLUT: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}ElevationAbsolut"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"543","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"543","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}DepthMin"},{"N":"str","val":""}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}DepthMax"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"544","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"544","C":[{"N":"str","val":" * DEPTH MIN: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}DepthMin"}]},{"N":"str","val":" * DEPTH MAX: "},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"attVal","name":"Q{}DepthMax"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"546","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"546","C":[{"N":"attVal","name":"Q{}DepthAbsolut"},{"N":"str","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"547","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"547","C":[{"N":"str","val":" * DEPTH ABSOLUT: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}DepthAbsolut"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"551","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"551","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}TimeMin"},{"N":"str","val":""}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}TimeMax"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"552","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"552","C":[{"N":"str","val":" * TIME MIN: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}TimeMin"}]},{"N":"str","val":" * TIME MAX: "},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"attVal","name":"Q{}TimeMax"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"554","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"554","C":[{"N":"attVal","name":"Q{}TimeAbsolut"},{"N":"str","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"555","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"555","C":[{"N":"str","val":" * TIME ABSOLUT: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}TimeAbsolut"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]},{"N":"templateRule","rank":"17","prec":"1","seq":"32","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"411","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Rdr_Dataset","prio":"0","matches":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","sType":"1NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"oai_dc:dc","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/oai_dc/}dc ","nsuri":"http://www.openarchives.org/OAI/2.0/oai_dc/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"412","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"xsi:schemaLocation","nsuri":"http://www.w3.org/2001/XMLSchema-instance","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd"}]},{"N":"applyT","sType":"* ","line":"414","mode":"Q{}oai_dc","bSlot":"3","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","sType":"*NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"414"}]},{"N":"applyT","sType":"* ","line":"416","mode":"Q{}oai_dc","bSlot":"3","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","sType":"*NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"416"}]},{"N":"choose","sType":"* ","type":"item()*","line":"419","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","sType":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"420"},{"N":"applyT","sType":"* ","line":"421","mode":"Q{}oai_dc","bSlot":"3","C":[{"N":"sort","role":"select","sType":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","sType":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"421"},{"N":"sortKey","sType":"?A ","C":[{"N":"check","card":"?","sType":"?A ","diag":"2|0|XTTE1020|sort","role":"select","C":[{"N":"data","sType":"*A ","role":"select","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}SortOrder","sType":"*NA nQ{}SortOrder","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"422"}]}]},{"N":"str","sType":"1AS ","val":"ascending","role":"order"},{"N":"str","sType":"1AS ","val":"en","role":"lang"},{"N":"str","sType":"1AS ","val":"#default","role":"caseOrder"},{"N":"str","sType":"1AS ","val":"true","role":"stable"}]}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}CreatingCorporation","sType":"*NA nQ{}CreatingCorporation","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"425"},{"N":"elem","name":"dc:creator","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}creator ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"426","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"427","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}CreatingCorporation","name":"attribute","nodeTest":"*NA nQ{}CreatingCorporation","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"427"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"applyT","sType":"* ","line":"432","mode":"Q{}oai_dc","bSlot":"3","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","sType":"*NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"432"}]},{"N":"applyT","sType":"* ","line":"433","mode":"Q{}oai_dc","bSlot":"3","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Collection,NE nQ{http://www.w3.org/1999/xhtml}Collection]","sType":"*NE u[NE nQ{}Collection,NE nQ{http://www.w3.org/1999/xhtml}Collection]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"433"}]},{"N":"applyT","sType":"* ","line":"435","mode":"Q{}oai_dc","bSlot":"3","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","sType":"*NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"435"}]},{"N":"applyT","sType":"* ","line":"437","mode":"Q{}oai_dc","bSlot":"3","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","sType":"*NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"437"}]},{"N":"elem","name":"dc:publisher","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}publisher ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"439","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"441","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}CreatingCorporation","name":"attribute","nodeTest":"*NA nQ{}CreatingCorporation","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"441"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"applyT","sType":"* ","line":"445","mode":"Q{}oai_dc","bSlot":"3","C":[{"N":"sort","role":"select","sType":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","sType":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"445"},{"N":"sortKey","sType":"?A ","C":[{"N":"check","card":"?","sType":"?A ","diag":"2|0|XTTE1020|sort","role":"select","C":[{"N":"data","sType":"*A ","role":"select","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}SortOrder","sType":"*NA nQ{}SortOrder","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"446"}]}]},{"N":"str","sType":"1AS ","val":"ascending","role":"order"},{"N":"str","sType":"1AS ","val":"en","role":"lang"},{"N":"str","sType":"1AS ","val":"#default","role":"caseOrder"},{"N":"str","sType":"1AS ","val":"true","role":"stable"}]}]}]},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}RdrDate","line":"449"},{"N":"applyT","sType":"* ","line":"451","mode":"Q{}oai_dc","bSlot":"3","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]","sType":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"451"}]},{"N":"elem","name":"dc:type","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}type ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"453","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Dataset"}]}]},{"N":"elem","name":"dc:type","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}type ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"454","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"doc-type:ResearchData"}]}]},{"N":"applyT","sType":"* ","line":"458","mode":"Q{}oai_dc","bSlot":"3","C":[{"N":"docOrder","sType":"*NA nQ{}MimeType","role":"select","line":"458","C":[{"N":"slash","op":"/","sType":"*NA nQ{}MimeType","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}MimeType"}]}]}]},{"N":"applyT","sType":"* ","line":"460","mode":"Q{}oai_dc","bSlot":"3","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]","sType":"*NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"460"}]},{"N":"elem","name":"dc:identifier","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}identifier ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"465","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"466","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"466","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}landingpage"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"applyT","sType":"* ","line":"472","mode":"Q{}oai_dc","bSlot":"3","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Language","sType":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"472"}]},{"N":"choose","sType":"* ","line":"474","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"474"},{"N":"applyT","sType":"* ","line":"475","mode":"Q{}oai_dc","bSlot":"3","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"475"}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"applyT","sType":"* ","line":"477","mode":"Q{}oai_dc","bSlot":"3","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","sType":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"477"}]},{"N":"applyT","sType":"* ","line":"479","mode":"Q{}oai_dc","bSlot":"3","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","sType":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"479"}]},{"N":"applyT","sType":"* ","line":"481","mode":"Q{}oai_dc","bSlot":"3","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","sType":"*NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"481"}]},{"N":"choose","sType":"? ","line":"482","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"482","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"gc","op":"<","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}unixTimestamp","bSlot":"2"}]},{"N":"data","diag":"1|1||gc","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}UnixTimestamp"}]}]}]}]},{"N":"elem","name":"dc:rights","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}rights ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"483","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"embargo"}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"callT","bSlot":"5","sType":"* ","name":"Q{}citation","line":"486"}]}]}]}]}]},{"N":"overridden"},{"N":"output","C":[{"N":"property","name":"Q{http://saxon.sf.net/}stylesheet-version","value":"30"},{"N":"property","name":"method","value":"xml"},{"N":"property","name":"encoding","value":"utf-8"},{"N":"property","name":"indent","value":"yes"}]},{"N":"decimalFormat"}],"Σ":"62c8cbc6"} \ No newline at end of file +{"N":"package","version":"30","packageVersion":"1","saxonVersion":"SaxonJS 2.6","target":"JS","targetVersion":"2","name":"TOP-LEVEL","relocatable":"false","buildDateTime":"2024-01-24T13:57:28.323+01:00","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"co","id":"0","uniform":"true","binds":"26","C":[{"N":"template","flags":"os","module":"oai_datacite.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_datacite.xslt","name":"Q{}RdrDate2","line":"147","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","expand-text":"false","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"choose","sType":"? ","line":"148","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"148","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"gc","op":"<","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}unixTimestamp","bSlot":"0"}]},{"N":"data","diag":"1|1||gc","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}UnixTimestamp"}]}]}]}]},{"N":"elem","name":"date","sType":"1NE nQ{http://datacite.org/schema/kernel-4}date ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"149","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"dateType","sType":"1NA ","line":"150","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Available"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"let","var":"Q{}embargoDate","slot":"0","sType":"*NT ","line":"155","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"155","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"156","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}embargoDate","slot":"0","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"156"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"159","C":[{"N":"docOrder","sType":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]","line":"159","C":[{"N":"slash","role":"select","simple":"1","sType":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]","sType":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "}]}]},{"N":"elem","name":"date","sType":"1NE nQ{http://datacite.org/schema/kernel-4}date ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"160","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"dateType","sType":"1NA ","line":"161","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Created"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"let","var":"Q{}createdAt","slot":"0","sType":"*NT ","line":"166","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"166","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"167","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}createdAt","slot":"0","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"167"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"co","binds":"","id":"1","uniform":"true","C":[{"N":"template","flags":"os","module":"oai_datacite.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_datacite.xslt","name":"Q{}CamelCaseWord","line":"224","ns":"xml=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","expand-text":"false","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"param","name":"Q{}text","slot":"0","sType":"* ","as":"* ","flags":"","line":"225","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"0","sType":"* "}]},{"N":"param","name":"Q{}firstLower","slot":"1","sType":"* ","as":"* ","flags":"","line":"226","C":[{"N":"true","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"226"},{"N":"supplied","role":"conversion","slot":"1","sType":"* "}]},{"N":"let","var":"Q{}Upper","slot":"2","sType":"*NT ","line":"227","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_datacite.xslt","role":"select","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"ABCDEFGHIJKLMNOPQRSTUVQXYZ"}]}]},{"N":"let","var":"Q{}Lower","slot":"3","sType":"*NT ","line":"228","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_datacite.xslt","role":"select","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"abcdefghijklmnopqrstuvwxyz"}]}]},{"N":"forEach","sType":"*NT ","line":"229","C":[{"N":"fn","name":"tokenize","sType":"*AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"229","C":[{"N":"treat","as":"AS","diag":"0|0||tokenize","C":[{"N":"check","card":"?","diag":"0|0||tokenize","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||tokenize","C":[{"N":"check","card":"?","diag":"0|0||tokenize","C":[{"N":"data","diag":"0|0||tokenize","C":[{"N":"varRef","name":"Q{}text","slot":"0"}]}]}]}]}]},{"N":"str","val":"_"}]},{"N":"sequence","sType":"*NT ","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"230","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"231","C":[{"N":"compareToInt","op":"eq","val":"1","C":[{"N":"fn","name":"position"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}firstLower","slot":"1"}]},{"N":"true"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"232","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"substring","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"232","C":[{"N":"dot"},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"235","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"translate","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"235","C":[{"N":"fn","name":"substring","C":[{"N":"dot"},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]}]},{"N":"treat","as":"AS","diag":"0|1||translate","C":[{"N":"check","card":"1","diag":"0|1||translate","C":[{"N":"cvUntyped","to":"AS","diag":"0|1||translate","C":[{"N":"check","card":"1","diag":"0|1||translate","C":[{"N":"data","diag":"0|1||translate","C":[{"N":"varRef","name":"Q{}Lower","slot":"3"}]}]}]}]}]},{"N":"treat","as":"AS","diag":"0|2||translate","C":[{"N":"check","card":"1","diag":"0|2||translate","C":[{"N":"cvUntyped","to":"AS","diag":"0|2||translate","C":[{"N":"check","card":"1","diag":"0|2||translate","C":[{"N":"data","diag":"0|2||translate","C":[{"N":"varRef","name":"Q{}Upper","slot":"2"}]}]}]}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"238","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"substring","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"238","C":[{"N":"dot"},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"2"}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"fn","name":"string-length","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"2","uniform":"true","C":[{"N":"template","flags":"os","module":"oai_datacite.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_datacite.xslt","name":"Q{}AlternateIdentifier","line":"307","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","expand-text":"false","sType":"1NE nQ{http://datacite.org/schema/kernel-4}alternateIdentifier ","C":[{"N":"elem","name":"alternateIdentifier","sType":"1NE nQ{http://datacite.org/schema/kernel-4}alternateIdentifier ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"body","line":"308","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"alternateIdentifierType","sType":"1NA ","line":"309","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"url"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"313","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}landingpage","role":"select","line":"313","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}landingpage","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}landingpage","sType":"*NA nQ{}landingpage","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"co","binds":"","id":"3","uniform":"true","C":[{"N":"template","flags":"os","module":"oai_2_iso19139.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","name":"Q{}datestamp","line":"385","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}dateStamp ","C":[{"N":"elem","name":"gmd:dateStamp","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}dateStamp ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","role":"body","line":"386","C":[{"N":"let","var":"Q{}theDate","slot":"0","sType":"*NE ","line":"388","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"389","C":[{"N":"docOrder","sType":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]","line":"390","C":[{"N":"slash","role":"select","simple":"1","sType":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]","sType":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco "}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"395","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"395","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"402","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"402","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gco:Date","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Date ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"406","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"407","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"407","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"varRef","name":"Q{}theDate","slot":"0"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"4","uniform":"true","C":[{"N":"template","flags":"os","module":"oai_2_iso19139.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","name":"Q{}title","line":"413","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}title ","C":[{"N":"elem","name":"gmd:title","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}title ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","role":"body","line":"414","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"415","C":[{"N":"forEach","sType":"* ","line":"416","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"416","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"or","C":[{"N":"compareToString","op":"eq","val":"TitleMain","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]},{"N":"compareToString","op":"eq","val":"TitleAdditional","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]}]}]},{"N":"choose","sType":"? ","type":"item()*","line":"417","C":[{"N":"compareToString","op":"eq","val":"Main","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"418","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"419","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"419"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"421","C":[{"N":"compareToString","op":"eq","val":"Sub","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Value"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"422","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"422","C":[{"N":"str","val":"; Subtitle: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}Value"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"424","C":[{"N":"compareToString","op":"eq","val":"Translated","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Value"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"425","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"425","C":[{"N":"str","val":"; Translated title: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}Value"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"427","C":[{"N":"compareToString","op":"eq","val":"Other","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Value"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"428","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"428","C":[{"N":"str","val":"; Other title: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}Value"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]}]},{"N":"co","binds":"","id":"5","uniform":"true","C":[{"N":"template","flags":"os","module":"oai_2_iso19139.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","name":"Q{}abstract","line":"663","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}abstract ","C":[{"N":"elem","name":"gmd:abstract","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}abstract ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","role":"body","line":"664","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"665","C":[{"N":"forEach","sType":"* ","line":"666","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"666","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"or","C":[{"N":"compareToString","op":"eq","val":"TitleAbstract","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]},{"N":"compareToString","op":"eq","val":"TitleAbstractAdditional","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]}]}]},{"N":"choose","sType":"? ","type":"item()*","line":"668","C":[{"N":"compareToString","op":"eq","val":"Abstract","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"669","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"671","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"671","C":[{"N":"str","val":"\nAbstract: "},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"compareToString","op":"eq","val":"Translated","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"673","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"674","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"674","C":[{"N":"str","val":"\nTranslated Description: "},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"676","C":[{"N":"compareToString","op":"eq","val":"SeriesInformation","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Value"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"677","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"677","C":[{"N":"str","val":"\nSeries Information: "},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"679","C":[{"N":"compareToString","op":"eq","val":"TableOfContents","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Value"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"680","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"680","C":[{"N":"str","val":"\nTable of Contents: "},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"682","C":[{"N":"compareToString","op":"eq","val":"TechnicalInfo","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Value"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"683","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"683","C":[{"N":"str","val":"\nTechnical Info: "},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"685","C":[{"N":"compareToString","op":"eq","val":"Methods","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Value"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"686","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"686","C":[{"N":"str","val":"\nMethods: "},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"688","C":[{"N":"compareToString","op":"eq","val":"Other","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Value"},{"N":"str","val":""}]}]},{"N":"choose","sType":"? ","line":"689","C":[{"N":"fn","name":"not","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"689","C":[{"N":"fn","name":"contains","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]},{"N":"str","val":"Related publications:"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"690","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"690","C":[{"N":"str","val":"\nOther Description: "},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]}]},{"N":"co","id":"6","uniform":"true","binds":"47 45 46 48 6","C":[{"N":"template","flags":"os","module":"datasetxml2oai-pmh.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","name":"Q{}url-encode","line":"55","expand-text":"false","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"param","name":"Q{}str","slot":"0","sType":"* ","as":"* ","flags":"","line":"56","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"0","sType":"* "}]},{"N":"choose","sType":"* ","line":"57","C":[{"N":"varRef","name":"Q{}str","slot":"0","sType":"*","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"57"},{"N":"let","var":"Q{}first-char","slot":"1","sType":"* ","line":"58","C":[{"N":"fn","name":"substring","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"58","C":[{"N":"treat","as":"AS","diag":"0|0||substring","C":[{"N":"check","card":"?","diag":"0|0||substring","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||substring","C":[{"N":"check","card":"?","diag":"0|0||substring","C":[{"N":"data","diag":"0|0||substring","C":[{"N":"varRef","name":"Q{}str","slot":"0"}]}]}]}]}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]}]},{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"*NT ","type":"item()*","line":"59","C":[{"N":"fn","name":"contains","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"60","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||contains","C":[{"N":"atomSing","diag":"0|0||contains","card":"?","C":[{"N":"gVarRef","name":"Q{}safe","bSlot":"0"}]}]},{"N":"treat","as":"AS","diag":"0|1||contains","C":[{"N":"check","card":"?","diag":"0|1||contains","C":[{"N":"cvUntyped","to":"AS","diag":"0|1||contains","C":[{"N":"check","card":"?","diag":"0|1||contains","C":[{"N":"data","diag":"0|1||contains","C":[{"N":"varRef","name":"Q{}first-char","slot":"1"}]}]}]}]}]},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"61","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}first-char","slot":"1","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"61"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"let","var":"Q{}codepoint","slot":"2","sType":"*NT ","line":"64","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","role":"select","C":[{"N":"choose","sType":"* ","type":"item()*","line":"65","C":[{"N":"fn","name":"contains","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"66","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||contains","C":[{"N":"atomSing","diag":"0|0||contains","card":"?","C":[{"N":"gVarRef","name":"Q{}ascii","bSlot":"1"}]}]},{"N":"treat","as":"AS","diag":"0|1||contains","C":[{"N":"check","card":"?","diag":"0|1||contains","C":[{"N":"cvUntyped","to":"AS","diag":"0|1||contains","C":[{"N":"check","card":"?","diag":"0|1||contains","C":[{"N":"data","diag":"0|1||contains","C":[{"N":"varRef","name":"Q{}first-char","slot":"1"}]}]}]}]}]},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"67","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"arith","sType":"1ADI","op":"+","calc":"i+i","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"67","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"substring-before","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||substring-before","C":[{"N":"atomSing","diag":"0|0||substring-before","card":"?","C":[{"N":"gVarRef","name":"Q{}ascii","bSlot":"1"}]}]},{"N":"treat","as":"AS","diag":"0|1||substring-before","C":[{"N":"check","card":"?","diag":"0|1||substring-before","C":[{"N":"cvUntyped","to":"AS","diag":"0|1||substring-before","C":[{"N":"check","card":"?","diag":"0|1||substring-before","C":[{"N":"data","diag":"0|1||substring-before","C":[{"N":"varRef","name":"Q{}first-char","slot":"1"}]}]}]}]}]},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]},{"N":"int","val":"32"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"fn","name":"contains","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"69","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||contains","C":[{"N":"atomSing","diag":"0|0||contains","card":"?","C":[{"N":"gVarRef","name":"Q{}latin1","bSlot":"2"}]}]},{"N":"treat","as":"AS","diag":"0|1||contains","C":[{"N":"check","card":"?","diag":"0|1||contains","C":[{"N":"cvUntyped","to":"AS","diag":"0|1||contains","C":[{"N":"check","card":"?","diag":"0|1||contains","C":[{"N":"data","diag":"0|1||contains","C":[{"N":"varRef","name":"Q{}first-char","slot":"1"}]}]}]}]}]},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"70","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"arith","sType":"1ADI","op":"+","calc":"i+i","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"70","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"substring-before","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||substring-before","C":[{"N":"atomSing","diag":"0|0||substring-before","card":"?","C":[{"N":"gVarRef","name":"Q{}latin1","bSlot":"2"}]}]},{"N":"treat","as":"AS","diag":"0|1||substring-before","C":[{"N":"check","card":"?","diag":"0|1||substring-before","C":[{"N":"cvUntyped","to":"AS","diag":"0|1||substring-before","C":[{"N":"check","card":"?","diag":"0|1||substring-before","C":[{"N":"data","diag":"0|1||substring-before","C":[{"N":"varRef","name":"Q{}first-char","slot":"1"}]}]}]}]}]},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]},{"N":"int","val":"160"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"sequence","sType":"* ","C":[{"N":"message","sType":"0 ","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"valueOf","sType":"1NT ","role":"select","C":[{"N":"str","sType":"1AS ","val":"Warning: string contains a character that is out of range! Substituting \"?\"."}]},{"N":"str","sType":"1AS ","val":"false","role":"terminate"},{"N":"str","sType":"1AS ","val":"Q{http://www.w3.org/2005/xqt-errors}XTMM9000","role":"error"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"63"}]}]}]}]},{"N":"let","var":"Q{}hex-digit1","slot":"3","sType":"*NT ","line":"78","C":[{"N":"fn","name":"substring","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"78","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||substring","C":[{"N":"atomSing","diag":"0|0||substring","card":"?","C":[{"N":"gVarRef","name":"Q{}hex","bSlot":"3"}]}]},{"N":"check","card":"1","diag":"0|1||substring","C":[{"N":"convert","to":"AO","flags":"","C":[{"N":"cvUntyped","to":"AO","diag":"0|1||substring","C":[{"N":"arith","op":"+","calc":"a+a","C":[{"N":"fn","name":"floor","C":[{"N":"treat","as":"A m[AO,AD,AF]","diag":"0|0||floor","C":[{"N":"check","card":"?","diag":"0|0||floor","C":[{"N":"cvUntyped","to":"AO","diag":"0|0||floor","C":[{"N":"arith","op":"div","calc":"a/a","C":[{"N":"check","card":"?","diag":"1|0||arith","C":[{"N":"data","diag":"1|0||arith","C":[{"N":"varRef","name":"Q{}codepoint","slot":"2"}]}]},{"N":"int","val":"16"}]}]}]}]}]},{"N":"int","val":"1"}]}]}]}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]}]},{"N":"let","var":"Q{}hex-digit2","slot":"4","sType":"*NT ","line":"79","C":[{"N":"fn","name":"substring","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"79","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||substring","C":[{"N":"atomSing","diag":"0|0||substring","card":"?","C":[{"N":"gVarRef","name":"Q{}hex","bSlot":"3"}]}]},{"N":"check","card":"1","diag":"0|1||substring","C":[{"N":"convert","to":"AO","flags":"","C":[{"N":"cvUntyped","to":"AO","diag":"0|1||substring","C":[{"N":"arith","op":"+","calc":"a+a","C":[{"N":"arith","op":"mod","calc":"a%a","C":[{"N":"check","card":"?","diag":"1|0||arith","C":[{"N":"data","diag":"1|0||arith","C":[{"N":"varRef","name":"Q{}codepoint","slot":"2"}]}]},{"N":"int","val":"16"}]},{"N":"int","val":"1"}]}]}]}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"80","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"80","C":[{"N":"str","val":"%"},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"varRef","name":"Q{}hex-digit1","slot":"3"}]}]},{"N":"check","card":"?","diag":"0|2||concat","C":[{"N":"data","diag":"0|2||concat","C":[{"N":"varRef","name":"Q{}hex-digit2","slot":"4"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"choose","sType":"* ","line":"83","C":[{"N":"compareToInt","op":"gt","val":"1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"83","C":[{"N":"fn","name":"string-length","C":[{"N":"treat","as":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"data","diag":"0|0||string-length","C":[{"N":"varRef","name":"Q{}str","slot":"0"}]}]}]}]}]}]}]},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}url-encode","line":"84","C":[{"N":"withParam","name":"Q{}str","slot":"0","sType":"1AS","C":[{"N":"fn","name":"substring","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"85","C":[{"N":"treat","as":"AS","diag":"0|0||substring","C":[{"N":"check","card":"?","diag":"0|0||substring","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||substring","C":[{"N":"check","card":"?","diag":"0|0||substring","C":[{"N":"data","diag":"0|0||substring","C":[{"N":"varRef","name":"Q{}str","slot":"0"}]}]}]}]}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"2"}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"co","id":"7","uniform":"true","binds":"30 57 37 38 66 58 59","C":[{"N":"template","flags":"os","module":"datasetxml2oai-pmh.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","name":"Q{}Rdr_Dataset_Data","line":"330","expand-text":"false","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"elem","name":"header","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}header ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"331","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"332","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"332","C":[{"N":"attVal","name":"Q{}ServerState"},{"N":"str","val":"deleted"}]},{"N":"att","name":"status","sType":"1NA ","line":"333","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"deleted"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"identifier","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}identifier ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"337","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"oai:"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"339","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}repIdentifier","bSlot":"0","role":"select","line":"339"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":":"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"341","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}PublishId","role":"select","line":"341","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}PublishId","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}PublishId","sType":"*NA nQ{}PublishId","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"datestamp","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}datestamp ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"343","C":[{"N":"choose","sType":"*NT ","type":"item()*","line":"344","C":[{"N":"docOrder","sType":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]","line":"345","C":[{"N":"slash","role":"select","simple":"1","sType":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]","sType":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "}]}]},{"N":"let","var":"Q{}dateModified","slot":"0","sType":"*NT ","line":"353","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"353","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"T"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Hour"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":":"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Minute"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":":"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Second"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"Z"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"354","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}dateModified","slot":"0","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"354"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"let","var":"Q{}datePublished","slot":"0","sType":"*NT ","line":"364","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"364","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"T"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Hour"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":":"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Minute"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":":"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Second"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"Z"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"365","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}datePublished","slot":"0","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"365"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"applyT","sType":"* ","line":"373","mode":"#unnamed","bSlot":"1","C":[{"N":"docOrder","sType":"*NE u[NE nQ{}SetSpec,NE nQ{http://www.w3.org/1999/xhtml}SetSpec]","role":"select","line":"373","C":[{"N":"slash","role":"select","simple":"1","sType":"*NE u[NE nQ{}SetSpec,NE nQ{http://www.w3.org/1999/xhtml}SetSpec]","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}SetSpec,NE nQ{http://www.w3.org/1999/xhtml}SetSpec]","sType":"*NE u[NE nQ{}SetSpec,NE nQ{http://www.w3.org/1999/xhtml}SetSpec]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "}]}]}]},{"N":"elem","name":"setSpec","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}setSpec ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"374","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"open_access"}]}]},{"N":"elem","name":"setSpec","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}setSpec ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"377","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"doc-type:ResearchData"}]}]}]}]},{"N":"choose","sType":"? ","type":"item()*","line":"381","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"383","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_verb","bSlot":"2"}]},{"N":"str","val":"ListIdentifiers"}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}ServerState"},{"N":"str","val":"deleted"}]}]},{"N":"elem","name":"metadata","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}metadata ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"385","C":[{"N":"choose","sType":"* ","type":"item()*","line":"387","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"388","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_metadataPrefix","bSlot":"3"}]},{"N":"str","val":"oai_dc"}]},{"N":"applyT","sType":"* ","line":"389","mode":"Q{}oai_dc","bSlot":"4","C":[{"N":"dot","sType":"1","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"389"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"391","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_metadataPrefix","bSlot":"3"}]},{"N":"str","val":"oai_datacite"}]},{"N":"applyT","sType":"* ","line":"392","mode":"Q{}oai_datacite","bSlot":"5","C":[{"N":"dot","sType":"1","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"392"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"394","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_metadataPrefix","bSlot":"3"}]},{"N":"str","val":"iso19139"}]},{"N":"applyT","sType":"* ","line":"395","mode":"Q{}iso19139","bSlot":"6","C":[{"N":"dot","sType":"1","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"395"}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"co","binds":"","id":"8","uniform":"true","C":[{"N":"template","flags":"os","module":"datasetxml2oai-pmh.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","name":"Q{}citation","line":"489","expand-text":"false","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}source ","C":[{"N":"elem","name":"dc:source","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}source ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"body","line":"490","C":[{"N":"let","var":"Q{}creatorName","slot":"0","sType":"*NT ","line":"491","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","role":"select","C":[{"N":"forEach","sType":"* ","line":"492","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"492","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"PersonAuthor","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]}]},{"N":"let","var":"Q{}person","slot":"0","sType":"* ","line":"493","C":[{"N":"dot","sType":"1NE","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"493"},{"N":"let","var":"Q{}uppercase","slot":"1","sType":"* ","line":"494","C":[{"N":"str","val":"ABC..XYZ","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"494"},{"N":"let","var":"Q{}lowercase","slot":"2","sType":"* ","line":"495","C":[{"N":"str","val":"abc..zyz","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"495"},{"N":"let","var":"Q{}authorName","slot":"3","sType":"* ","line":"496","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","role":"select","C":[{"N":"choose","sType":"*NT ","type":"item()*","line":"497","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"498","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}person","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}FirstName"}]}]}]}]},{"N":"let","var":"Q{}name","slot":"3","sType":"*NT ","line":"501","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"501","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}person","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LastName"}]}]}]}]},{"N":"str","val":", "},{"N":"fn","name":"concat","C":[{"N":"fn","name":"translate","C":[{"N":"fn","name":"substring","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||substring","C":[{"N":"check","card":"?","diag":"0|0||substring","C":[{"N":"data","diag":"0|0||substring","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}person","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}FirstName"}]}]}]}]}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]}]},{"N":"treat","as":"AS","diag":"0|1||translate","C":[{"N":"check","card":"1","diag":"0|1||translate","C":[{"N":"cvUntyped","to":"AS","diag":"0|1||translate","C":[{"N":"check","card":"1","diag":"0|1||translate","C":[{"N":"data","diag":"0|1||translate","C":[{"N":"varRef","name":"Q{}lowercase","slot":"2"}]}]}]}]}]},{"N":"treat","as":"AS","diag":"0|2||translate","C":[{"N":"check","card":"1","diag":"0|2||translate","C":[{"N":"cvUntyped","to":"AS","diag":"0|2||translate","C":[{"N":"check","card":"1","diag":"0|2||translate","C":[{"N":"data","diag":"0|2||translate","C":[{"N":"varRef","name":"Q{}uppercase","slot":"1"}]}]}]}]}]}]},{"N":"str","val":"."}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"502","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}name","slot":"3","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"502"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"505","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}LastName","role":"select","line":"505","C":[{"N":"docOrder","sType":"*NA nQ{}LastName","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}person","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LastName"}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"sequence","sType":"? ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"509","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"509","C":[{"N":"treat","as":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"data","diag":"0|0||normalize-space","C":[{"N":"varRef","name":"Q{}authorName","slot":"3"}]}]}]}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"? ","type":"item()*","line":"510","C":[{"N":"vc","op":"ne","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"511","C":[{"N":"fn","name":"position"},{"N":"fn","name":"last"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]}]}]}]},{"N":"let","var":"Q{}year","slot":"1","sType":"*NT ","line":"515","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"515","C":[{"N":"str","val":" ("},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"): "}]},{"N":"let","var":"Q{}mainTitle","slot":"2","sType":"*NT ","line":"516","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"516","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"let","var":"Q{}creatingCorporation","slot":"3","sType":"*NT ","line":"517","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"517","C":[{"N":"str","val":"."},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}CreatingCorporation"}]}]},{"N":"str","val":", "}]},{"N":"let","var":"Q{}publisherName","slot":"4","sType":"*NT ","line":"518","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"518","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}PublisherName"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"519","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"519","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"varRef","name":"Q{}creatorName","slot":"0"}]}]},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"varRef","name":"Q{}year","slot":"1"}]}]},{"N":"check","card":"?","diag":"0|2||concat","C":[{"N":"data","diag":"0|2||concat","C":[{"N":"varRef","name":"Q{}mainTitle","slot":"2"}]}]},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"data","diag":"0|3||concat","C":[{"N":"varRef","name":"Q{}creatingCorporation","slot":"3"}]}]},{"N":"check","card":"?","diag":"0|4||concat","C":[{"N":"data","diag":"0|4||concat","C":[{"N":"varRef","name":"Q{}publisherName","slot":"4"}]}]},{"N":"str","val":", Wien"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"9","uniform":"true","C":[{"N":"template","flags":"os","module":"datasetxml2oai-pmh.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","name":"Q{}RdrDate","line":"656","expand-text":"false","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}date ","C":[{"N":"elem","name":"dc:date","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}date ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"body","line":"657","C":[{"N":"choose","sType":"*NT ","type":"item()*","line":"658","C":[{"N":"docOrder","sType":"*NE u[NE nQ{}PublishedDate,NE nQ{http://www.w3.org/1999/xhtml}PublishedDate]","line":"659","C":[{"N":"slash","role":"select","simple":"1","sType":"*NE u[NE nQ{}PublishedDate,NE nQ{http://www.w3.org/1999/xhtml}PublishedDate]","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PublishedDate,NE nQ{http://www.w3.org/1999/xhtml}PublishedDate]","sType":"*NE u[NE nQ{}PublishedDate,NE nQ{http://www.w3.org/1999/xhtml}PublishedDate]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "}]}]},{"N":"let","var":"Q{}publishedDate","slot":"0","sType":"*NT ","line":"664","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"664","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PublishedDate,NE nQ{http://www.w3.org/1999/xhtml}PublishedDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PublishedDate,NE nQ{http://www.w3.org/1999/xhtml}PublishedDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PublishedDate,NE nQ{http://www.w3.org/1999/xhtml}PublishedDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"665","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}publishedDate","slot":"0","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"665"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"let","var":"Q{}serverDatePublished","slot":"0","sType":"*NT ","line":"672","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"672","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"673","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}serverDatePublished","slot":"0","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"673"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]},{"N":"co","id":"10","uniform":"true","binds":"51 50","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","name":"Q{}hierarchylevel","line":"60","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}hierarchyLevel ","C":[{"N":"elem","name":"gmd:hierarchyLevel","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}hierarchyLevel ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","role":"body","line":"61","C":[{"N":"elem","name":"gmd:MD_ScopeCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_ScopeCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"62","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","sType":"1NA ","line":"63","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"64","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}MDScopelist","bSlot":"0","role":"select","line":"64"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"codeListValue","sType":"1NA ","line":"66","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"67","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}MDScopecode","bSlot":"1","role":"select","line":"67"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"69","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}MDScopecode","bSlot":"1","role":"select","line":"69"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"11","uniform":"true","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","name":"Q{}metadatacontact","line":"75","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}contact ","C":[{"N":"elem","name":"gmd:contact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}contact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","role":"body","line":"76","C":[{"N":"elem","name":"gmd:CI_ResponsibleParty","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_ResponsibleParty ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"77","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:individualName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}individualName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"78","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"79","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Tethys RDR"}]}]}]},{"N":"elem","name":"gmd:organisationName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}organisationName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"81","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"82","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Tethys RDR"}]}]}]},{"N":"elem","name":"gmd:positionName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}positionName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"84","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"85","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Research Data Repository"}]}]}]},{"N":"elem","name":"gmd:contactInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}contactInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"87","C":[{"N":"elem","name":"gmd:CI_Contact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Contact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"88","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"89","C":[{"N":"elem","name":"gmd:CI_Address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"90","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:deliveryPoint","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}deliveryPoint ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"91","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"92","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Neulinggasse 38"}]}]}]},{"N":"elem","name":"gmd:city","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}city ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"94","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"95","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Vienna"}]}]}]},{"N":"elem","name":"gmd:administrativeArea","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}administrativeArea ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"97","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"98","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Vienna"}]}]}]},{"N":"elem","name":"gmd:postalCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}postalCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"100","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"101","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"1030"}]}]}]},{"N":"elem","name":"gmd:country","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}country ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"103","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"104","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"AT"}]}]}]},{"N":"elem","name":"gmd:electronicMailAddress","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}electronicMailAddress ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"106","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"107","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"repository@geologie.ac.at"}]}]}]}]}]}]},{"N":"elem","name":"gmd:onlineResource","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}onlineResource ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"112","C":[{"N":"elem","name":"gmd:CI_OnlineResource","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_OnlineResource ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"113","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:linkage","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}linkage ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"114","C":[{"N":"elem","name":"gmd:URL","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}URL ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"115","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"https://tethys.at"}]}]}]},{"N":"elem","name":"gmd:function","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}function ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"117","C":[{"N":"elem","name":"gmd:CI_OnLineFunctionCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_OnLineFunctionCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"118","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_OnLineFunctionCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"information"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"information"}]}]}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:role","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}role ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"124","C":[{"N":"elem","name":"gmd:CI_RoleCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_RoleCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"125","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#CI_RoleCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"pointOfContact"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"pointOfContact"}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"12","uniform":"true","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","name":"Q{}resourcedates","line":"134","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"choose","sType":"? ","line":"135","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"135","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"CreatedAt","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]}]},{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"136","C":[{"N":"elem","name":"gmd:CI_Date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"137","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"138","C":[{"N":"let","var":"Q{}theDate","slot":"0","sType":"*N ","line":"140","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"148","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"148","C":[{"N":"fn","name":"concat","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"T"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Hour"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":":"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Minute"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":":"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Second"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"Z"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"?N ","type":"item()*","line":"151","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"152","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}theDate","slot":"0"}]},{"N":"str","val":""}]},{"N":"choose","sType":"?NE ","type":"item()*","line":"153","C":[{"N":"fn","name":"contains","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"154","C":[{"N":"treat","as":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"data","diag":"0|0||contains","C":[{"N":"varRef","name":"Q{}theDate","slot":"0"}]}]}]}]}]},{"N":"str","val":"T"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"elem","name":"gco:DateTime","sType":"1NE nQ{http://www.isotc211.org/2005/gco}DateTime ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"155","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"156","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}theDate","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"156"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"fn","name":"contains","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"159","C":[{"N":"treat","as":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"data","diag":"0|0||contains","C":[{"N":"varRef","name":"Q{}theDate","slot":"0"}]}]}]}]}]},{"N":"str","val":" "},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"elem","name":"gco:DateTime","sType":"1NE nQ{http://www.isotc211.org/2005/gco}DateTime ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"160","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"161","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"translate","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"161","C":[{"N":"treat","as":"AS","diag":"0|0||translate","C":[{"N":"check","card":"?","diag":"0|0||translate","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||translate","C":[{"N":"check","card":"?","diag":"0|0||translate","C":[{"N":"data","diag":"0|0||translate","C":[{"N":"varRef","name":"Q{}theDate","slot":"0"}]}]}]}]}]},{"N":"str","val":" "},{"N":"str","val":"T"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"elem","name":"gco:Date","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Date ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"165","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"166","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}theDate","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"166"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"att","name":"gco:nilReason","sType":"1NA ","nsuri":"http://www.isotc211.org/2005/gco","line":"173","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"174","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"174","C":[{"N":"str","val":"created date missing"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]}]}]}]},{"N":"elem","name":"gmd:dateType","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}dateType ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"179","C":[{"N":"elem","name":"gmd:CI_DateTypeCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_DateTypeCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"180","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_DateTypeCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"creation"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"creation"}]}]}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"?NE ","type":"item()*","line":"185","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"187","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"EmbargoDate","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"188","C":[{"N":"elem","name":"gmd:CI_Date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"189","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"190","C":[{"N":"let","var":"Q{}embargoDate","slot":"0","sType":"*NE ","line":"195","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"195","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]}]},{"N":"elem","name":"gco:Date","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Date ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"196","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"197","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}embargoDate","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"197"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"elem","name":"gmd:dateType","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}dateType ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"200","C":[{"N":"elem","name":"gmd:CI_DateTypeCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_DateTypeCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"201","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_DateTypeCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"publication"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"publication"}]}]}]}]}]}]}]},{"N":"filter","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"206","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"ServerDatePublished","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"207","C":[{"N":"elem","name":"gmd:CI_Date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"208","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"209","C":[{"N":"let","var":"Q{}publicationDate","slot":"0","sType":"*NE ","line":"217","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"217","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"T"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Hour"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":":"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Minute"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":":"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Second"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"Z"}]},{"N":"elem","name":"gco:DateTime","sType":"1NE nQ{http://www.isotc211.org/2005/gco}DateTime ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"218","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"219","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}publicationDate","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"219"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"elem","name":"gmd:dateType","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}dateType ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"222","C":[{"N":"elem","name":"gmd:CI_DateTypeCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_DateTypeCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"223","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_DateTypeCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"publication"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"publication"}]}]}]}]}]}]}]},{"N":"true"},{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"229","C":[{"N":"att","name":"gco:nilReason","nsuri":"http://www.isotc211.org/2005/gco","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"missing"}]}]}]},{"N":"choose","sType":"? ","line":"234","C":[{"N":"docOrder","sType":"*NA nQ{}ServerDateModified","line":"234","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}ServerDateModified","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}ServerDateModified","sType":"*NA nQ{}ServerDateModified","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco "}]}]},{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"235","C":[{"N":"elem","name":"gmd:CI_Date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"236","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"237","C":[{"N":"let","var":"Q{}updateDate","slot":"0","sType":"*N ","line":"238","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"238","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}ServerDateModified"}]}]}]},{"N":"choose","sType":"?N ","type":"item()*","line":"240","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"241","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}updateDate","slot":"0"}]},{"N":"str","val":""}]},{"N":"choose","sType":"?NE ","type":"item()*","line":"242","C":[{"N":"fn","name":"contains","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"243","C":[{"N":"treat","as":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"data","diag":"0|0||contains","C":[{"N":"varRef","name":"Q{}updateDate","slot":"0"}]}]}]}]}]},{"N":"str","val":"T"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"elem","name":"gco:DateTime","sType":"1NE nQ{http://www.isotc211.org/2005/gco}DateTime ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"244","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"245","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}updateDate","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"245"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"fn","name":"contains","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"248","C":[{"N":"treat","as":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"data","diag":"0|0||contains","C":[{"N":"varRef","name":"Q{}updateDate","slot":"0"}]}]}]}]}]},{"N":"str","val":" "},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"elem","name":"gco:DateTime","sType":"1NE nQ{http://www.isotc211.org/2005/gco}DateTime ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"249","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"250","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"translate","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"250","C":[{"N":"treat","as":"AS","diag":"0|0||translate","C":[{"N":"check","card":"?","diag":"0|0||translate","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||translate","C":[{"N":"check","card":"?","diag":"0|0||translate","C":[{"N":"data","diag":"0|0||translate","C":[{"N":"varRef","name":"Q{}updateDate","slot":"0"}]}]}]}]}]},{"N":"str","val":" "},{"N":"str","val":"T"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"elem","name":"gco:Date","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Date ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"254","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"255","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}updateDate","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"255"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"att","name":"gco:nilReason","sType":"1NA ","nsuri":"http://www.isotc211.org/2005/gco","line":"261","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"262","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"262","C":[{"N":"str","val":"missing"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]}]}]}]},{"N":"elem","name":"gmd:dateType","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}dateType ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"267","C":[{"N":"elem","name":"gmd:CI_DateTypeCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_DateTypeCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"268","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_DateTypeCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"revision"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"revision"}]}]}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"co","binds":"","id":"13","uniform":"true","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","name":"Q{}ci_responsibleparty","line":"275","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"param","name":"Q{}individual","slot":"0","sType":"* ","as":"* ","flags":"","line":"276","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"0","sType":"* "}]},{"N":"param","name":"Q{}httpuri","slot":"1","sType":"* ","as":"* ","flags":"","line":"277","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"1","sType":"* "}]},{"N":"param","name":"Q{}personidtype","slot":"2","sType":"* ","as":"* ","flags":"","line":"278","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"2","sType":"* "}]},{"N":"param","name":"Q{}organisation","slot":"3","sType":"* ","as":"* ","flags":"","line":"279","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"3","sType":"* "}]},{"N":"param","name":"Q{}position","slot":"4","sType":"* ","as":"* ","flags":"","line":"280","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"4","sType":"* "}]},{"N":"param","name":"Q{}role","slot":"5","sType":"* ","as":"* ","flags":"","line":"281","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"5","sType":"* "}]},{"N":"param","name":"Q{}email","slot":"6","sType":"* ","as":"* ","flags":"","line":"282","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"6","sType":"* "}]},{"N":"param","name":"Q{}datacite-creatorname","slot":"7","sType":"* ","as":"* ","flags":"","line":"283","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"7","sType":"* "}]},{"N":"elem","name":"gmd:CI_ResponsibleParty","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_ResponsibleParty ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"285","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"287","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"287","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}individual","slot":"0"}]},{"N":"str","val":""}]},{"N":"choose","sType":"?NE ","type":"item()*","line":"288","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"289","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}individual","slot":"0"}]},{"N":"str","val":"missing"}]},{"N":"elem","name":"gmd:individualName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}individualName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"290","C":[{"N":"att","name":"gco:nilReason","nsuri":"http://www.isotc211.org/2005/gco","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"missing"}]}]},{"N":"true"},{"N":"elem","name":"gmd:individualName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}individualName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"293","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"294","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"295","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}individual","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"295"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"302","C":[{"N":"or","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"302","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}individual","slot":"0"}]},{"N":"str","val":"missing"}]},{"N":"str","val":""}]},{"N":"elem","name":"gmd:organisationName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}organisationName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"303","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"304","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"305","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}datacite-creatorname","slot":"7","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"305"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"310","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"310","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}organisation","slot":"3"}]},{"N":"str","val":""}]},{"N":"elem","name":"gmd:organisationName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}organisationName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"311","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"312","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"313","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}organisation","slot":"3","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"313"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"318","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"318","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}position","slot":"4"}]},{"N":"str","val":""}]},{"N":"elem","name":"gmd:positionName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}positionName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"319","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"320","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"321","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}position","slot":"4","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"321"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"gmd:contactInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}contactInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"326","C":[{"N":"elem","name":"gmd:CI_Contact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Contact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"327","C":[{"N":"sequence","sType":"* ","C":[{"N":"elem","name":"gmd:address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"329","C":[{"N":"elem","name":"gmd:CI_Address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"330","C":[{"N":"elem","name":"gmd:electronicMailAddress","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}electronicMailAddress ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"331","C":[{"N":"choose","sType":"?NE ","type":"item()*","line":"332","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"333","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}email","slot":"6"}]},{"N":"str","val":""}]},{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"334","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"335","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}email","slot":"6","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"335"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"340","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"341","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"341","C":[{"N":"str","val":"repository@geologie.ac.at"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]},{"N":"choose","sType":"? ","line":"348","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"348","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}httpuri","slot":"1"}]},{"N":"str","val":""}]},{"N":"elem","name":"gmd:onlineResource","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}onlineResource ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"349","C":[{"N":"elem","name":"gmd:CI_OnlineResource","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_OnlineResource ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"350","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:linkage","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}linkage ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"351","C":[{"N":"elem","name":"gmd:URL","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}URL ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"352","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"353","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}httpuri","slot":"1","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"353"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:protocol","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}protocol ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"356","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"357","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"358","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}personidtype","slot":"2","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"358"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"elem","name":"gmd:role","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}role ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"368","C":[{"N":"elem","name":"gmd:CI_RoleCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_RoleCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"369","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","sType":"1NA ","line":"370","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"codeListValue","sType":"1NA ","line":"371","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"372","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}role","slot":"5","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"372"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"374","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}role","slot":"5","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"374"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"14","uniform":"true","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","name":"Q{}pointofcontact_custodian","line":"381","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}pointOfContact ","C":[{"N":"elem","name":"gmd:pointOfContact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}pointOfContact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","role":"body","line":"382","C":[{"N":"elem","name":"gmd:CI_ResponsibleParty","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_ResponsibleParty ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"383","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:individualName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}individualName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"384","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"385","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Tethys RDR"}]}]}]},{"N":"elem","name":"gmd:organisationName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}organisationName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"387","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"388","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Tethys RDR"}]}]}]},{"N":"elem","name":"gmd:contactInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}contactInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"390","C":[{"N":"elem","name":"gmd:CI_Contact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Contact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"391","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"392","C":[{"N":"elem","name":"gmd:CI_Address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"393","C":[{"N":"elem","name":"gmd:electronicMailAddress","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}electronicMailAddress ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"394","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"395","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"repository@geologie.ac.at"}]}]}]}]}]},{"N":"elem","name":"gmd:onlineResource","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}onlineResource ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"399","C":[{"N":"elem","name":"gmd:CI_OnlineResource","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_OnlineResource ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"400","C":[{"N":"elem","name":"gmd:linkage","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}linkage ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"401","C":[{"N":"elem","name":"gmd:URL","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}URL ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"402","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"https://www.tethys.at/"}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:role","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}role ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"411","C":[{"N":"elem","name":"gmd:CI_RoleCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_RoleCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"412","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/Codelist/gmxCodelists.xml#CI_RoleCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"custodian"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"custodian"}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"15","uniform":"true","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","name":"Q{}pointofcontact_originator","line":"419","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}pointOfContact ","C":[{"N":"elem","name":"gmd:pointOfContact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}pointOfContact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","role":"body","line":"420","C":[{"N":"elem","name":"gmd:CI_ResponsibleParty","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_ResponsibleParty ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"421","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:individualName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}individualName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"422","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"423","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Tethys RDR"}]}]}]},{"N":"elem","name":"gmd:organisationName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}organisationName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"425","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"426","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Tethys RDR"}]}]}]},{"N":"elem","name":"gmd:contactInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}contactInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"428","C":[{"N":"elem","name":"gmd:CI_Contact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Contact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"429","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"430","C":[{"N":"elem","name":"gmd:CI_Address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"431","C":[{"N":"elem","name":"gmd:electronicMailAddress","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}electronicMailAddress ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"432","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"433","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"repository@geologie.ac.at"}]}]}]}]}]},{"N":"elem","name":"gmd:onlineResource","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}onlineResource ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"437","C":[{"N":"elem","name":"gmd:CI_OnlineResource","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_OnlineResource ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"438","C":[{"N":"elem","name":"gmd:linkage","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}linkage ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"439","C":[{"N":"elem","name":"gmd:URL","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}URL ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"440","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"https://www.tethys.at/"}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:role","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}role ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"449","C":[{"N":"elem","name":"gmd:CI_RoleCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_RoleCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"450","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/Codelist/gmxCodelists.xml#CI_RoleCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"originator"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"originator"}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"16","uniform":"true","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","name":"Q{}browseGraphictethys","line":"457","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}graphicOverview ","C":[{"N":"elem","name":"gmd:graphicOverview","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}graphicOverview ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","role":"body","line":"458","C":[{"N":"elem","name":"gmd:MD_BrowseGraphic","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_BrowseGraphic ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"459","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:fileName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}fileName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"460","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"461","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"https://tethys.at/assets/TETHYS-Logo.svg"}]}]}]},{"N":"elem","name":"gmd:fileDescription","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}fileDescription ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"463","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"464","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"TETHYS RDR"}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"17","uniform":"false","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","name":"Q{}freekeywords","line":"471","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"? ","C":[{"N":"choose","sType":"? ","role":"body","line":"472","C":[{"N":"docOrder","sType":"*NE","line":"472","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"and","C":[{"N":"compareToString","op":"eq","val":"Subject","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]},{"N":"compareToString","op":"eq","val":"Uncontrolled","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}Type"}]}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:descriptiveKeywords","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}descriptiveKeywords ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"473","C":[{"N":"elem","name":"gmd:MD_Keywords","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_Keywords ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"474","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"forEach","sType":"*NE nQ{http://www.isotc211.org/2005/gmd}keyword ","line":"475","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"475","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"and","C":[{"N":"compareToString","op":"eq","val":"Subject","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]},{"N":"compareToString","op":"eq","val":"Uncontrolled","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}Type"}]}]}]}]}]}]},{"N":"elem","name":"gmd:keyword","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}keyword ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"476","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"477","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"478","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"478","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}Value"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"elem","name":"gmd:type","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}type ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"482","C":[{"N":"elem","name":"gmd:MD_KeywordTypeCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_KeywordTypeCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","ns":"xml=~ =http://www.isotc211.org/2005/gmd xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"483","C":[{"N":"sequence","ns":"xml=~ =http://www.isotc211.org/2005/gmd xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"https://standards.iso.org/iso/19139/resources/gmxCodelists.xml#MD_KeywordTypeCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"theme"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"theme"}]}]}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"co","id":"18","uniform":"true","binds":"43","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","name":"Q{}datacenter_keyword","line":"491","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}descriptiveKeywords ","C":[{"N":"elem","name":"gmd:descriptiveKeywords","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}descriptiveKeywords ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","role":"body","line":"492","C":[{"N":"elem","name":"gmd:MD_Keywords","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_Keywords ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"493","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:keyword","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}keyword ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"494","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"495","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"496","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}datacentre","bSlot":"0","role":"select","line":"496"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:type","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}type ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"499","C":[{"N":"elem","name":"gmd:MD_KeywordTypeCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_KeywordTypeCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"500","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.ngdc.noaa.gov/metadata/published/xsd/schema/resources/Codelist/gmxCodelists.xml#MD_KeywordTypeCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"dataCentre"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Tethys RDR"}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"19","uniform":"true","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","name":"Q{}spatialcoverage","line":"507","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}extent ","C":[{"N":"elem","name":"gmd:extent","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}extent ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","role":"body","line":"508","C":[{"N":"elem","name":"gmd:EX_Extent","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}EX_Extent ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"509","C":[{"N":"choose","sType":"* ","line":"510","C":[{"N":"docOrder","sType":"*NE","line":"510","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"Coverage","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]}]}]}]}]},{"N":"let","var":"Q{}sLat","slot":"0","sType":"* ","line":"512","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"513","C":[{"N":"compareToString","op":"ne","val":"","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"514","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}YMin"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"515","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"fn","sType":"1AO","name":"number","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"515","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}YMin"}]}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"518","C":[{"N":"str","role":"select","val":"","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"518"}]}]}]},{"N":"let","var":"Q{}wLong","slot":"1","sType":"* ","line":"522","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"523","C":[{"N":"compareToString","op":"ne","val":"","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"524","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}XMin"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"525","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"fn","sType":"1AO","name":"number","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"525","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}XMin"}]}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"528","C":[{"N":"str","role":"select","val":"","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"528"}]}]}]},{"N":"let","var":"Q{}nLat","slot":"2","sType":"* ","line":"532","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"533","C":[{"N":"compareToString","op":"ne","val":"","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"534","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}YMax"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"535","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"fn","sType":"1AO","name":"number","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"535","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}YMax"}]}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"538","C":[{"N":"str","role":"select","val":"","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"538"}]}]}]},{"N":"let","var":"Q{}eLong","slot":"3","sType":"* ","line":"542","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"543","C":[{"N":"compareToString","op":"ne","val":"","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"544","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}XMax"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"545","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"fn","sType":"1AO","name":"number","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"545","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}XMax"}]}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"548","C":[{"N":"str","role":"select","val":"","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"548"}]}]}]},{"N":"choose","sType":"* ","line":"554","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"554","C":[{"N":"and","C":[{"N":"and","C":[{"N":"compareToString","op":"ne","val":"NaN","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"varRef","name":"Q{}nLat","slot":"2"}]}]}]},{"N":"compareToString","op":"ne","val":"NaN","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"varRef","name":"Q{}wLong","slot":"1"}]}]}]}]},{"N":"compareToString","op":"ne","val":"NaN","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"varRef","name":"Q{}sLat","slot":"0"}]}]}]}]},{"N":"compareToString","op":"ne","val":"NaN","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"varRef","name":"Q{}eLong","slot":"3"}]}]}]}]},{"N":"choose","sType":"*NE ","type":"item()*","line":"556","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"558","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}nLat","slot":"2"}]},{"N":"data","diag":"1|1||gc","C":[{"N":"varRef","name":"Q{}sLat","slot":"0"}]}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}eLong","slot":"3"}]},{"N":"data","diag":"1|1||gc","C":[{"N":"varRef","name":"Q{}wLong","slot":"1"}]}]}]},{"N":"elem","name":"gmd:geographicElement","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}geographicElement ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"559","C":[{"N":"elem","name":"gmd:EX_BoundingPolygon","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}EX_BoundingPolygon ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"560","C":[{"N":"elem","name":"gmd:polygon","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}polygon ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"561","C":[{"N":"elem","name":"gml:Point","sType":"1NE nQ{http://www.opgeris.net/gml/3.2}Point ","nsuri":"http://www.opgeris.net/gml/3.2","namespaces":"","line":"562","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"gml:id","sType":"1NA ","nsuri":"http://www.opgeris.net/gml/3.2","line":"564","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"565","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"generate-id","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"565","C":[{"N":"treat","as":"N","diag":"0|0||generate-id","C":[{"N":"check","card":"?","diag":"0|0||generate-id","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"gml:pos","sType":"1NE nQ{http://www.opgeris.net/gml/3.2}pos ","nsuri":"http://www.opgeris.net/gml/3.2","namespaces":"","line":"567","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"568","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}sLat","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"568"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"570","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}wLong","slot":"1","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"570"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"579","C":[{"N":"gc","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}wLong","slot":"1"}]},{"N":"int","val":"0"}]},{"N":"gc","op":"<","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}eLong","slot":"3"}]},{"N":"int","val":"0"}]}]},{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:geographicElement","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}geographicElement ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"581","C":[{"N":"elem","name":"gmd:EX_GeographicBoundingBox","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}EX_GeographicBoundingBox ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"582","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:westBoundLongitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}westBoundLongitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"583","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"584","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"585","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}wLong","slot":"1","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"585"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:eastBoundLongitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}eastBoundLongitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"588","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"589","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"590","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"int","sType":"1ADI","val":"180","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"590"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:southBoundLatitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}southBoundLatitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"593","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"594","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"595","C":[{"N":"vc","op":"lt","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"596","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}sLat","slot":"0"}]}]}]},{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}nLat","slot":"2"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"597","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}sLat","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"597"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"600","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}nLat","slot":"2","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"600"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"elem","name":"gmd:northBoundLatitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}northBoundLatitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"605","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"606","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"607","C":[{"N":"vc","op":"lt","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"608","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}sLat","slot":"0"}]}]}]},{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}nLat","slot":"2"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"609","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}nLat","slot":"2","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"609"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"612","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}sLat","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"612"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:geographicElement","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}geographicElement ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"619","C":[{"N":"elem","name":"gmd:EX_GeographicBoundingBox","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}EX_GeographicBoundingBox ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"620","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:westBoundLongitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}westBoundLongitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"621","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"622","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"623","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"int","sType":"1ADI","val":"-180","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"623"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:eastBoundLongitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}eastBoundLongitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"626","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"627","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"628","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}eLong","slot":"3","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"628"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:southBoundLatitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}southBoundLatitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"631","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"632","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"633","C":[{"N":"vc","op":"lt","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"634","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}sLat","slot":"0"}]}]}]},{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}nLat","slot":"2"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"635","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}sLat","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"635"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"638","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}nLat","slot":"2","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"638"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"elem","name":"gmd:northBoundLatitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}northBoundLatitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"643","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"644","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"645","C":[{"N":"vc","op":"lt","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"646","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}sLat","slot":"0"}]}]}]},{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}nLat","slot":"2"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"647","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}nLat","slot":"2","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"647"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"650","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}sLat","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"650"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]},{"N":"true"},{"N":"elem","name":"gmd:geographicElement","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}geographicElement ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"659","C":[{"N":"elem","name":"gmd:EX_GeographicBoundingBox","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}EX_GeographicBoundingBox ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"660","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:extentTypeCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}extentTypeCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"661","C":[{"N":"elem","name":"gco:Boolean","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Boolean ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"662","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"true"}]}]}]},{"N":"elem","name":"gmd:westBoundLongitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}westBoundLongitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"664","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"665","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"666","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}wLong","slot":"1","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"666"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:eastBoundLongitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}eastBoundLongitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"669","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"670","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"671","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}eLong","slot":"3","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"671"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:southBoundLatitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}southBoundLatitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"674","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"675","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"676","C":[{"N":"vc","op":"lt","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"677","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}sLat","slot":"0"}]}]}]},{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}nLat","slot":"2"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"678","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}sLat","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"678"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"681","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}nLat","slot":"2","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"681"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"elem","name":"gmd:northBoundLatitude","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}northBoundLatitude ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"686","C":[{"N":"elem","name":"gco:Decimal","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Decimal ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"687","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"688","C":[{"N":"vc","op":"lt","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"689","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}sLat","slot":"0"}]}]}]},{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"varRef","name":"Q{}nLat","slot":"2"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"690","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}nLat","slot":"2","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"690"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"693","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}sLat","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"693"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]},{"N":"co","binds":"","id":"20","uniform":"true","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","name":"Q{}datacite_identifier","line":"709","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"* ","C":[{"N":"forEach","sType":"* ","role":"body","line":"710","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"710","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"Identifier","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]}]},{"N":"let","var":"Q{}identifier","slot":"0","sType":"* ","line":"711","C":[{"N":"dot","sType":"1NE","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"711"},{"N":"choose","sType":"? ","line":"712","C":[{"N":"or","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"712","C":[{"N":"or","C":[{"N":"fn","name":"starts-with","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||starts-with","C":[{"N":"check","card":"?","diag":"0|0||starts-with","C":[{"N":"data","diag":"0|0||starts-with","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}identifier","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]}]},{"N":"str","val":"doi:"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}identifier","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"str","val":"Doi"}]}]},{"N":"fn","name":"starts-with","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||starts-with","C":[{"N":"check","card":"?","diag":"0|0||starts-with","C":[{"N":"data","diag":"0|0||starts-with","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}identifier","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]}]},{"N":"str","val":"http://"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]},{"N":"elem","name":"gmd:onLine","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}onLine ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"713","C":[{"N":"elem","name":"gmd:CI_OnlineResource","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_OnlineResource ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"714","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:linkage","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}linkage ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"715","C":[{"N":"elem","name":"gmd:URL","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}URL ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"716","C":[{"N":"choose","sType":"? ","type":"item()*","line":"717","C":[{"N":"fn","name":"starts-with","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"718","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||starts-with","C":[{"N":"check","card":"?","diag":"0|0||starts-with","C":[{"N":"data","diag":"0|0||starts-with","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}identifier","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]}]},{"N":"str","val":"doi:"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"720","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"720","C":[{"N":"str","val":"http://dx.doi.org/"},{"N":"fn","name":"substring-after","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||substring-after","C":[{"N":"check","card":"?","diag":"0|0||substring-after","C":[{"N":"data","diag":"0|0||substring-after","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}identifier","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]}]},{"N":"str","val":"doi:"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"722","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}identifier","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"str","val":"Doi"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"723","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"723","C":[{"N":"str","val":"http://dx.doi.org/"},{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"data","diag":"0|0||normalize-space","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}identifier","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"fn","name":"starts-with","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"725","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||starts-with","C":[{"N":"check","card":"?","diag":"0|0||starts-with","C":[{"N":"data","diag":"0|0||starts-with","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}identifier","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]}]},{"N":"str","val":"http://"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"726","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"726","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"data","diag":"0|0||normalize-space","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}identifier","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"elem","name":"gmd:protocol","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}protocol ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"731","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"732","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"WWW:LINK-1.0-http--link"}]}]}]},{"N":"elem","name":"gmd:name","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}name ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"734","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"735","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Landing Page"}]}]}]},{"N":"elem","name":"gmd:description","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}description ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"737","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"738","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"740","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"740","C":[{"N":"fn","name":"string","C":[{"N":"str","val":"Link to DOI landing page or data facility landing page if no DOI is assigned."}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:function","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}function ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"743","C":[{"N":"elem","name":"gmd:CI_OnLineFunctionCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_OnLineFunctionCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"744","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_OnLineFunctionCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"information"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"information"}]}]}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]},{"N":"co","binds":"","id":"21","uniform":"true","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","name":"Q{}alternate_identifier","line":"753","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"? ","C":[{"N":"choose","sType":"? ","role":"body","line":"754","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"754","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}landingpage"},{"N":"str","val":""}]},{"N":"fn","name":"starts-with","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}landingpage"}]}]}]},{"N":"str","val":"http"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]},{"N":"elem","name":"gmd:onLine","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}onLine ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"755","C":[{"N":"elem","name":"gmd:CI_OnlineResource","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_OnlineResource ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"756","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:linkage","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}linkage ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"757","C":[{"N":"elem","name":"gmd:URL","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}URL ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"758","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"759","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"759","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}landingpage"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:protocol","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}protocol ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"762","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"763","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"WWW:LINK-1.0-http--link"}]}]}]},{"N":"elem","name":"gmd:name","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}name ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"765","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"766","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"767","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"767","C":[{"N":"str","val":"url"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:description","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}description ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"770","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"771","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Link to a web page related to the resource."}]}]}]},{"N":"elem","name":"gmd:function","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}function ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"773","C":[{"N":"elem","name":"gmd:CI_OnLineFunctionCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_OnLineFunctionCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"774","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_OnLineFunctionCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"information"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"information"}]}]}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"co","binds":"","id":"22","uniform":"false","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","name":"Q{}data_quality","line":"782","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}dataQualityInfo ","C":[{"N":"elem","name":"gmd:dataQualityInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}dataQualityInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","role":"body","line":"783","C":[{"N":"elem","name":"gmd:DQ_DataQuality","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}DQ_DataQuality ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"784","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:scope","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}scope ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"785","C":[{"N":"elem","name":"gmd:DQ_Scope","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}DQ_Scope ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"786","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:level","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}level ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"787","C":[{"N":"elem","name":"gmd:MD_ScopeCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_ScopeCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","ns":"xml=~ =http://www.isotc211.org/2005/gmd xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"788","C":[{"N":"sequence","ns":"xml=~ =http://www.isotc211.org/2005/gmd xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","sType":"*NA ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#MD_ScopeCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"dataset"}]}]}]}]},{"N":"elem","name":"gmd:levelDescription","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}levelDescription ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"790","C":[{"N":"att","name":"gco:nilReason","nsuri":"http://www.isotc211.org/2005/gco","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"inapplicable"}]}]}]}]}]},{"N":"elem","name":"gmd:report","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}report ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"793","C":[{"N":"elem","name":"gmd:DQ_DomainConsistency","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}DQ_DomainConsistency ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"794","C":[{"N":"elem","name":"gmd:result","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}result ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"795","C":[{"N":"elem","name":"gmd:DQ_ConformanceResult","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}DQ_ConformanceResult ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"796","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:specification","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}specification ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"797","C":[{"N":"elem","name":"gmd:CI_Citation","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Citation ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"798","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:title","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}title ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"799","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"800","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"VERORDNUNG (EG) Nr. 1089/2010 DER KOMMISSION vom 23. November 2010 zur Durchführung der Richtlinie 2007/2/EG des Europäischen Parlaments und des Rates hinsichtlich der Interoperabilität von Geodatensätzen und -diensten"}]}]}]},{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"802","C":[{"N":"elem","name":"gmd:CI_Date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"803","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:date","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}date ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"804","C":[{"N":"elem","name":"gco:Date","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Date ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"805","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"2010-12-08"}]}]}]},{"N":"elem","name":"gmd:dateType","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}dateType ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"807","C":[{"N":"elem","name":"gmd:CI_DateTypeCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_DateTypeCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","ns":"xml=~ =http://www.isotc211.org/2005/gmd xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"808","C":[{"N":"sequence","ns":"xml=~ =http://www.isotc211.org/2005/gmd xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","sType":"*NA ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"https://standards.iso.org/iso/19139/resources/gmxCodelists.xml#CI_DateTypeCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"publication"}]}]}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:explanation","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}explanation ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"814","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"815","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Datenstruktur entspricht INSPIRE"}]}]}]},{"N":"elem","name":"gmd:pass","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}pass ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"817","C":[{"N":"elem","name":"gco:Boolean","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Boolean ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"818","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"true"}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:lineage","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}lineage ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"824","C":[{"N":"elem","name":"gmd:LI_Lineage","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}LI_Lineage ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"825","C":[{"N":"elem","name":"gmd:statement","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}statement ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"826","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"827","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Digitalisierung"}]}]}]}]}]}]}]}]}]}]},{"N":"co","id":"23","uniform":"true","binds":"52 53","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","name":"Q{}distributor","line":"838","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}distributor ","C":[{"N":"elem","name":"gmd:distributor","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}distributor ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","role":"body","line":"839","C":[{"N":"elem","name":"gmd:MD_Distributor","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_Distributor ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"840","C":[{"N":"elem","name":"gmd:distributorContact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}distributorContact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"841","C":[{"N":"elem","name":"gmd:CI_ResponsibleParty","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_ResponsibleParty ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"842","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:organisationName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}organisationName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"843","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"844","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"845","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"gVarRef","name":"Q{}distributorOrganisation","bSlot":"0","sType":"1AS","role":"select","line":"845"},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:contactInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}contactInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"848","C":[{"N":"elem","name":"gmd:CI_Contact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Contact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"849","C":[{"N":"elem","name":"gmd:address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"850","C":[{"N":"elem","name":"gmd:CI_Address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"851","C":[{"N":"elem","name":"gmd:electronicMailAddress","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}electronicMailAddress ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"852","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"853","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"854","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"gVarRef","name":"Q{}distributorContactEmail","bSlot":"1","sType":"1AS","role":"select","line":"854"},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:role","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}role ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"861","C":[{"N":"elem","name":"gmd:CI_RoleCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_RoleCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"862","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"distributor"}]},{"N":"att","name":"codeSpace","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"ISOTC211/19115"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"distributor"}]}]}]}]}]}]}]}]}]}]}]},{"N":"co","id":"24","uniform":"true","binds":"54 55 56","C":[{"N":"template","flags":"os","module":"functions.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","name":"Q{}metadata_maintenance","line":"874","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","expand-text":"true","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}metadataMaintenance ","C":[{"N":"elem","name":"gmd:metadataMaintenance","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}metadataMaintenance ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","role":"body","line":"875","C":[{"N":"elem","name":"gmd:MD_MaintenanceInformation","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_MaintenanceInformation ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"876","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:maintenanceAndUpdateFrequency","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}maintenanceAndUpdateFrequency ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"877","C":[{"N":"elem","name":"gmd:MD_MaintenanceFrequencyCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_MaintenanceFrequencyCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"878","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://schemas.opengis.net/iso/19139/20070417/resources/codelist/gmxCodelists.xml#MD_MaintenanceFrequencyCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"asNeeded"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"asNeeded"}]}]}]}]},{"N":"elem","name":"gmd:contact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}contact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"880","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"881","C":[{"N":"compareToString","op":"ne","val":"","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"881","C":[{"N":"gVarRef","name":"Q{}maintenanceContactID","bSlot":"0"}]},{"N":"att","name":"xlink:href","sType":"1NA ","nsuri":"http://www.w3.org/1999/xlink","line":"882","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"883","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"gVarRef","name":"Q{}maintenanceContactID","bSlot":"0","sType":"1AS","role":"select","line":"883"},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"gmd:CI_ResponsibleParty","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_ResponsibleParty ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"886","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:individualName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}individualName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"887","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"888","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"889","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"gVarRef","name":"Q{}maintenanceContactName","bSlot":"1","sType":"1AS","role":"select","line":"889"},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:contactInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}contactInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"892","C":[{"N":"elem","name":"gmd:CI_Contact","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Contact ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"893","C":[{"N":"elem","name":"gmd:address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"894","C":[{"N":"elem","name":"gmd:CI_Address","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Address ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"895","C":[{"N":"elem","name":"gmd:electronicMailAddress","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}electronicMailAddress ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"896","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"","line":"897","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"898","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"gVarRef","name":"Q{}maintenanceContactEmail","bSlot":"2","sType":"1AS","role":"select","line":"898"},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:role","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}role ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"905","C":[{"N":"elem","name":"gmd:CI_RoleCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_RoleCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"","line":"906","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"processor"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"processor"}]}]}]}]}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"25","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}responseDate","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"26","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}unixTimestamp","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"27","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}email","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"28","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}earliestDatestamp","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"29","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}repositoryName","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"30","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}repIdentifier","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"31","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}doiPrefix","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"32","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}sampleIdentifier","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"33","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}dateDelete","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"34","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}totalIds","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"35","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}res","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"36","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}cursor","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"37","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}oai_verb","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"38","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}oai_metadataPrefix","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"39","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}oai_error_code","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"40","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}oai_error_message","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"41","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}baseURL","sType":"* ","slots":"200","module":"datasetxml2oai-pmh.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","as":"","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"42","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}fileIdentifierPrefix","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"oai_2_iso19139.xslt","slots":"200","sType":"1AS","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"41","C":[{"N":"str","val":"at.tethys.dataset"}]}]}]},{"N":"co","binds":"","id":"43","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}datacentre","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"oai_2_iso19139.xslt","slots":"200","sType":"?ND ","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"43","C":[{"N":"compareToInt","op":"gt","val":"0","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"44","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}CreatingCorporation"}]}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"45","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"45","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}CreatingCorporation"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"48","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"48","C":[{"N":"str","val":"Tethys RDR"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"co","binds":"","id":"44","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}nl","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"oai_2_iso19139.xslt","slots":"200","sType":"1AS","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"661","C":[{"N":"str","val":"\n"}]}]}]},{"N":"co","binds":"","id":"45","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}ascii","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","module":"datasetxml2oai-pmh.xslt","slots":"200","sType":"?ND ","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","role":"select","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"}]}]}]}]},{"N":"co","binds":"","id":"46","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}latin1","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","module":"datasetxml2oai-pmh.xslt","slots":"200","sType":"?ND ","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","role":"select","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"}]}]}]}]},{"N":"co","binds":"","id":"47","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}safe","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","module":"datasetxml2oai-pmh.xslt","slots":"200","sType":"?ND ","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","role":"select","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"!'()*-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~"}]}]}]}]},{"N":"co","binds":"","id":"48","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}hex","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","module":"datasetxml2oai-pmh.xslt","slots":"200","sType":"?ND ","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","role":"select","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"0123456789ABCDEF"}]}]}]}]},{"N":"co","binds":"","id":"49","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}resourcetype","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"functions.xslt","slots":"200","sType":"?ND ","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","role":"select","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Dataset"}]}]}]}]},{"N":"co","id":"50","vis":"PUBLIC","ex:uniform":"true","binds":"49","C":[{"N":"globalVariable","name":"Q{}MDScopecode","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"functions.xslt","slots":"200","sType":"?ND ","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"19","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"20","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"gVarRef","name":"Q{}resourcetype","bSlot":"0"}]},{"N":"str","val":"Dataset"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"dataset"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"21","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"gVarRef","name":"Q{}resourcetype","bSlot":"0"}]},{"N":"str","val":"Software"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"software"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"22","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"gVarRef","name":"Q{}resourcetype","bSlot":"0"}]},{"N":"str","val":"Service"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"service"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"23","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"gVarRef","name":"Q{}resourcetype","bSlot":"0"}]},{"N":"str","val":"Model"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"model"}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"25","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}resourcetype","bSlot":"0","role":"select","line":"25"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"co","id":"51","vis":"PUBLIC","ex:uniform":"true","binds":"49","C":[{"N":"globalVariable","name":"Q{}MDScopelist","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"functions.xslt","slots":"200","sType":"?ND ","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"30","C":[{"N":"or","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"31","C":[{"N":"or","C":[{"N":"or","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"gVarRef","name":"Q{}resourcetype","bSlot":"0"}]},{"N":"str","val":"Dataset"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"gVarRef","name":"Q{}resourcetype","bSlot":"0"}]},{"N":"str","val":"Software"}]}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"gVarRef","name":"Q{}resourcetype","bSlot":"0"}]},{"N":"str","val":"Service"}]}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"gVarRef","name":"Q{}resourcetype","bSlot":"0"}]},{"N":"str","val":"Model"}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_ScopeCode"}]},{"N":"true"},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"http://datacite.org/schema/kernel-4"}]}]}]}]}]},{"N":"co","binds":"","id":"52","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}distributorOrganisation","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"functions.xslt","slots":"200","sType":"1AS","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"836","C":[{"N":"str","val":"Geological Survey of Austria"}]}]}]},{"N":"co","binds":"","id":"53","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}distributorContactEmail","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"functions.xslt","slots":"200","sType":"1AS","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"837","C":[{"N":"str","val":"repository@geologie.ac.at"}]}]}]},{"N":"co","binds":"","id":"54","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}maintenanceContactID","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"functions.xslt","slots":"200","sType":"1AS","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"871","C":[{"N":"str","val":"https://www.re3data.org/repository/r3d100013400"}]}]}]},{"N":"co","binds":"","id":"55","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}maintenanceContactName","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"functions.xslt","slots":"200","sType":"1AS","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"872","C":[{"N":"str","val":"Tethys RDR"}]}]}]},{"N":"co","binds":"","id":"56","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}maintenanceContactEmail","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","module":"functions.xslt","slots":"200","sType":"1AS","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/functions.xslt","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ gml=http://www.opgeris.net/gml/3.2 xlink=http://www.w3.org/1999/xlink gmx=http://www.isotc211.org/2005/gmx gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"873","C":[{"N":"str","val":"repository@geologie.ac.at"}]}]}]},{"N":"co","id":"57","binds":"25 37 38 41 39 40 65 60 63 61 64 62 7","C":[{"N":"mode","onNo":"SC","flags":"","patternSlots":"0","prec":"","C":[{"N":"templateRule","rank":"0","prec":"1","seq":"22","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"93","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"/root","prio":"0.5","matches":"NE u[NE nQ{}root,NE nQ{http://www.w3.org/1999/xhtml}root]","C":[{"N":"p.withUpper","role":"match","axis":"parent","sType":"1NE u[NE nQ{}root,NE nQ{http://www.w3.org/1999/xhtml}root]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","C":[{"N":"p.nodeTest","test":"NE u[NE nQ{}root,NE nQ{http://www.w3.org/1999/xhtml}root]"},{"N":"p.nodeTest","test":"ND"}]},{"N":"sequence","role":"action","sType":"*N ","C":[{"N":"procInst","sType":"1NP ","C":[{"N":"str","sType":"1AS ","val":"xml-stylesheet"},{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"type=\"text/xsl\" href=\"assets2/oai2_style.xslt\""}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"elem","name":"OAI-PMH","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}OAI-PMH ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"99","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"xsi:schemaLocation","nsuri":"http://www.w3.org/2001/XMLSchema-instance","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"}]},{"N":"elem","name":"responseDate","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}responseDate ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"100","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"101","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}responseDate","bSlot":"0","role":"select","line":"101"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"request","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}request ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"103","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"104","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"104","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_verb","bSlot":"1"}]},{"N":"str","val":""}]},{"N":"att","name":"verb","sType":"1NA ","line":"105","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"106","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}oai_verb","bSlot":"1","role":"select","line":"106"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"109","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"109","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_metadataPrefix","bSlot":"2"}]},{"N":"str","val":""}]},{"N":"att","name":"metadataPrefix","sType":"1NA ","line":"110","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"111","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}oai_metadataPrefix","bSlot":"2","role":"select","line":"111"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"114","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}baseURL","bSlot":"3","role":"select","line":"114"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"choose","sType":"? ","line":"116","C":[{"N":"compareToString","op":"ne","val":"","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"116","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"gVarRef","name":"Q{}oai_error_code","bSlot":"4"}]}]}]},{"N":"elem","name":"error","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}error ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"117","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"code","sType":"1NA ","line":"118","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"119","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"119","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"gVarRef","name":"Q{}oai_error_code","bSlot":"4"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"121","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}oai_error_message","bSlot":"5","role":"select","line":"121"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","type":"item()*","line":"126","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"127","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_verb","bSlot":"1"}]},{"N":"str","val":"GetRecord"}]},{"N":"applyT","sType":"* ","line":"128","mode":"Q{}GetRecord","bSlot":"6","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"128"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"130","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_verb","bSlot":"1"}]},{"N":"str","val":"Identify"}]},{"N":"applyT","sType":"* ","line":"131","mode":"Q{}Identify","bSlot":"7","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"131"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"133","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_verb","bSlot":"1"}]},{"N":"str","val":"ListIdentifiers"}]},{"N":"applyT","sType":"* ","line":"134","mode":"Q{}ListIdentifiers","bSlot":"8","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"134"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"136","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_verb","bSlot":"1"}]},{"N":"str","val":"ListMetadataFormats"}]},{"N":"applyT","sType":"* ","line":"137","mode":"Q{}ListMetadataFormats","bSlot":"9","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"137"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"139","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_verb","bSlot":"1"}]},{"N":"str","val":"ListRecords"}]},{"N":"applyT","sType":"* ","line":"140","mode":"Q{}ListRecords","bSlot":"10","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"140"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"142","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_verb","bSlot":"1"}]},{"N":"str","val":"ListSets"}]},{"N":"applyT","sType":"* ","line":"143","mode":"Q{}ListSets","bSlot":"11","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"*NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"143"}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]},{"N":"templateRule","rank":"1","prec":"1","seq":"31","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"404","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"SetSpec","prio":"0","matches":"NE u[NE nQ{}SetSpec,NE nQ{http://www.w3.org/1999/xhtml}SetSpec]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}SetSpec,NE nQ{http://www.w3.org/1999/xhtml}SetSpec]","sType":"1NE u[NE nQ{}SetSpec,NE nQ{http://www.w3.org/1999/xhtml}SetSpec]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"setSpec","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}setSpec ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"405","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"406","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"406"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"templateRule","rank":"2","prec":"1","seq":"30","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"317","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Rdr_Dataset","prio":"0","matches":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","sType":"1NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"choose","sType":"* ","type":"item()*","role":"action","line":"318","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"319","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}oai_verb","bSlot":"1"}]},{"N":"str","val":"ListIdentifiers"}]},{"N":"callT","bSlot":"12","sType":"* ","name":"Q{}Rdr_Dataset_Data","line":"320"},{"N":"true"},{"N":"elem","name":"record","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}record ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"323","C":[{"N":"callT","bSlot":"12","sType":"* ","name":"Q{}Rdr_Dataset_Data","line":"324"}]}]}]},{"N":"templateRule","rank":"3","prec":"1","seq":"26","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"256","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Rdr_Sets","prio":"0","matches":"NE u[NE nQ{}Rdr_Sets,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Sets]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Rdr_Sets,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Sets]","sType":"1NE u[NE nQ{}Rdr_Sets,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Sets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"set","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}set ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"257","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"setSpec","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}setSpec ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"258","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"259","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Type","name":"attribute","nodeTest":"*NA nQ{}Type","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"259"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"setName","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}setName ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"261","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"262","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}TypeName","name":"attribute","nodeTest":"*NA nQ{}TypeName","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"262"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]},{"N":"co","id":"58","binds":"1 58 30 0 2","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}oai_datacite","prec":"","C":[{"N":"templateRule","rank":"0","prec":"1","seq":"12","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_datacite.xslt","line":"400","module":"oai_datacite.xslt","expand-text":"false","match":"File/@MimeType","prio":"0.5","matches":"NA nQ{}MimeType","C":[{"N":"p.withUpper","role":"match","axis":"parent","sType":"1NA nQ{}MimeType","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","C":[{"N":"p.nodeTest","test":"NA nQ{}MimeType"},{"N":"p.nodeTest","test":"NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]"}]},{"N":"elem","name":"format","sType":"1NE nQ{http://datacite.org/schema/kernel-4}format ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"401","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"402","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"403","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"dot"}]},{"N":"str","val":"application/x-sqlite3"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"application/geopackage+sqlite3"}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"407","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"dot","sType":"1NA nQ{}MimeType","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"407"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"1","prec":"1","seq":"13","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_datacite.xslt","line":"414","module":"oai_datacite.xslt","expand-text":"false","match":"Licence","prio":"0","matches":"NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","sType":"1NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"sequence","role":"action","sType":"* ","C":[{"N":"elem","name":"rights","sType":"1NE nQ{http://datacite.org/schema/kernel-4}rights ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"415","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"416","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"417","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"417"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"choose","sType":"? ","line":"419","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"419","C":[{"N":"attVal","name":"Q{}LinkLicence"},{"N":"str","val":""}]},{"N":"att","name":"rightsURI","sType":"1NA ","line":"420","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"421","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LinkLicence","name":"attribute","nodeTest":"*NA nQ{}LinkLicence","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"421"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"att","name":"schemeURI","sType":"1NA ","line":"424","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"https://spdx.org/licenses/"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"rightsIdentifierScheme","sType":"1NA ","line":"427","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"SPDX"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"rightsIdentifier","sType":"1NA ","line":"430","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"431","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Name","name":"attribute","nodeTest":"*NA nQ{}Name","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"431"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"433","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}NameLong","name":"attribute","nodeTest":"*NA nQ{}NameLong","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"433"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"choose","sType":"? ","line":"435","C":[{"N":"or","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"435","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Name"},{"N":"str","val":"CC-BY-4.0"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Name"},{"N":"str","val":"CC-BY-SA-4.0"}]}]},{"N":"elem","name":"rights","sType":"1NE nQ{http://datacite.org/schema/kernel-4}rights ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"436","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"rightsURI","sType":"1NA ","line":"437","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"info:eu-repo/semantics/openAccess"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Open Access"}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"templateRule","rank":"2","prec":"1","seq":"11","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_datacite.xslt","line":"350","module":"oai_datacite.xslt","expand-text":"false","match":"PersonAuthor","prio":"0","matches":"NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","sType":"1NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"creator","sType":"1NE nQ{http://datacite.org/schema/kernel-4}creator ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"351","C":[{"N":"sequence","sType":"* ","C":[{"N":"elem","name":"creatorName","sType":"1NE nQ{http://datacite.org/schema/kernel-4}creatorName ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"352","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"353","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"353","C":[{"N":"attVal","name":"Q{}NameType"},{"N":"str","val":""}]},{"N":"att","name":"nameType","sType":"1NA ","line":"354","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"355","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}NameType","name":"attribute","nodeTest":"*NA nQ{}NameType","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"355"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"358","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LastName","name":"attribute","nodeTest":"*NA nQ{}LastName","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"358"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"? ","line":"359","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"359","C":[{"N":"attVal","name":"Q{}FirstName"},{"N":"str","val":""}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":", "}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"362","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}FirstName","name":"attribute","nodeTest":"*NA nQ{}FirstName","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"362"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"* ","line":"363","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"363","C":[{"N":"attVal","name":"Q{}AcademicTitle"},{"N":"str","val":""}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" ("}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"365","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}AcademicTitle","name":"attribute","nodeTest":"*NA nQ{}AcademicTitle","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"365"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":")"}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"choose","sType":"* ","line":"370","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"370","C":[{"N":"attVal","name":"Q{}NameType"},{"N":"str","val":"Personal"}]},{"N":"sequence","sType":"* ","C":[{"N":"elem","name":"givenName","sType":"1NE nQ{http://datacite.org/schema/kernel-4}givenName ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"371","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"372","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}FirstName","name":"attribute","nodeTest":"*NA nQ{}FirstName","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"372"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"familyName","sType":"1NE nQ{http://datacite.org/schema/kernel-4}familyName ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"374","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"375","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LastName","name":"attribute","nodeTest":"*NA nQ{}LastName","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"375"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"377","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"377","C":[{"N":"attVal","name":"Q{}IdentifierOrcid"},{"N":"str","val":""}]},{"N":"elem","name":"nameIdentifier","sType":"1NE nQ{http://datacite.org/schema/kernel-4}nameIdentifier ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"378","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"schemeURI","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://orcid.org/"}]},{"N":"att","name":"nameIdentifierScheme","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"ORCID"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"379","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}IdentifierOrcid","name":"attribute","nodeTest":"*NA nQ{}IdentifierOrcid","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"379"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"affiliation","sType":"1NE nQ{http://datacite.org/schema/kernel-4}affiliation ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"382","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"GBA"}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"385","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"385","C":[{"N":"attVal","name":"Q{}NameType"},{"N":"str","val":"Organizational"}]},{"N":"choose","sType":"? ","line":"386","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"386","C":[{"N":"attVal","name":"Q{}IdentifierOrcid"},{"N":"str","val":""}]},{"N":"elem","name":"nameIdentifier","sType":"1NE nQ{http://datacite.org/schema/kernel-4}nameIdentifier ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"387","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"schemeURI","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://orcid.org/"}]},{"N":"att","name":"nameIdentifierScheme","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"ORCID"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"388","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}IdentifierOrcid","name":"attribute","nodeTest":"*NA nQ{}IdentifierOrcid","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"388"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"templateRule","rank":"3","prec":"1","seq":"10","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_datacite.xslt","line":"331","module":"oai_datacite.xslt","expand-text":"false","match":"PersonContributor","prio":"0","matches":"NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","sType":"1NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"contributor","sType":"1NE nQ{http://datacite.org/schema/kernel-4}contributor ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"332","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"333","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"333","C":[{"N":"attVal","name":"Q{}ContributorType"},{"N":"str","val":""}]},{"N":"att","name":"contributorType","sType":"1NA ","line":"334","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"335","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}ContributorType","name":"attribute","nodeTest":"*NA nQ{}ContributorType","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"335"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"contributorName","sType":"1NE nQ{http://datacite.org/schema/kernel-4}contributorName ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"338","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"344","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"344","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"attVal","name":"Q{}FirstName"}]},{"N":"str","val":" "},{"N":"check","card":"?","diag":"0|2||concat","C":[{"N":"attVal","name":"Q{}LastName"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"templateRule","rank":"4","prec":"1","seq":"9","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_datacite.xslt","line":"318","module":"oai_datacite.xslt","expand-text":"false","match":"Reference","prio":"0","matches":"NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","sType":"1NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"relatedIdentifier","sType":"1NE nQ{http://datacite.org/schema/kernel-4}relatedIdentifier ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"319","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"relatedIdentifierType","sType":"1NA ","line":"320","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"321","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Type","name":"attribute","nodeTest":"*NA nQ{}Type","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"321"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"relationType","sType":"1NA ","line":"323","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"324","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Relation","name":"attribute","nodeTest":"*NA nQ{}Relation","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"324"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"326","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"326"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"5","prec":"1","seq":"8","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_datacite.xslt","line":"307","module":"oai_datacite.xslt","expand-text":"false","match":"AlternateIdentifier","prio":"0","matches":"NE u[NE nQ{}AlternateIdentifier,NE nQ{http://www.w3.org/1999/xhtml}AlternateIdentifier]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}AlternateIdentifier,NE nQ{http://www.w3.org/1999/xhtml}AlternateIdentifier]","sType":"1NE u[NE nQ{}AlternateIdentifier,NE nQ{http://www.w3.org/1999/xhtml}AlternateIdentifier]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"alternateIdentifier","sType":"1NE nQ{http://datacite.org/schema/kernel-4}alternateIdentifier ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"308","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"alternateIdentifierType","sType":"1NA ","line":"309","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"url"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"313","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}landingpage","name":"attribute","nodeTest":"*NA nQ{}landingpage","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"313"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"6","prec":"1","seq":"7","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_datacite.xslt","line":"295","module":"oai_datacite.xslt","expand-text":"false","match":"Subject","prio":"0","matches":"NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","sType":"1NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"subject","sType":"1NE nQ{http://datacite.org/schema/kernel-4}subject ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"296","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"297","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"297","C":[{"N":"attVal","name":"Q{}Language"},{"N":"str","val":""}]},{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"298","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"299","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"299"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"302","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"302"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"7","prec":"1","seq":"6","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_datacite.xslt","line":"269","module":"oai_datacite.xslt","expand-text":"false","match":"TitleAdditional","prio":"0","matches":"NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","sType":"1NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"title","sType":"1NE nQ{http://datacite.org/schema/kernel-4}title ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"270","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"271","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"271","C":[{"N":"attVal","name":"Q{}Language"},{"N":"str","val":""}]},{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"272","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"273","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"273"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","type":"item()*","line":"276","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"277","C":[{"N":"and","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":""}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Sub"}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Main"}]}]},{"N":"att","name":"titleType","sType":"1NA ","line":"278","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"279","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Type","name":"attribute","nodeTest":"*NA nQ{}Type","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"279"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Title"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"283","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Sub"}]},{"N":"att","name":"titleType","sType":"1NA ","line":"284","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"285","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Type","name":"attribute","nodeTest":"*NA nQ{}Type","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"285"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"title"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"290","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"290"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"8","prec":"1","seq":"5","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_datacite.xslt","line":"253","module":"oai_datacite.xslt","expand-text":"false","match":"TitleMain","prio":"0","matches":"NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","sType":"1NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"title","sType":"1NE nQ{http://datacite.org/schema/kernel-4}title ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"254","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"255","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"255","C":[{"N":"attVal","name":"Q{}Language"},{"N":"str","val":""}]},{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"256","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"257","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"257"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"260","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"260","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":""}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Main"}]}]},{"N":"att","name":"titleType","sType":"1NA ","line":"261","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"262","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Type","name":"attribute","nodeTest":"*NA nQ{}Type","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"262"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"265","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"265"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"9","prec":"1","seq":"4","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_datacite.xslt","line":"243","module":"oai_datacite.xslt","expand-text":"false","match":"Identifier","prio":"0","matches":"NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"1NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"identifier","sType":"1NE nQ{http://datacite.org/schema/kernel-4}identifier ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"244","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"identifierType","sType":"1NA ","line":"245","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"DOI"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"248","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"248"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"10","prec":"1","seq":"3","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_datacite.xslt","line":"208","module":"oai_datacite.xslt","expand-text":"false","match":"TitleAbstractAdditional","prio":"0","matches":"NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","sType":"1NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"description","sType":"1NE nQ{http://datacite.org/schema/kernel-4}description ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"209","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"210","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"211","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"211"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"choose","sType":"? ","line":"213","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"213","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":""}]},{"N":"att","name":"descriptionType","sType":"1NA ","line":"214","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"callT","sType":"* ","bSlot":"0","name":"Q{}CamelCaseWord","line":"215","C":[{"N":"withParam","name":"Q{}text","slot":"0","sType":"*NA nQ{}Type","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type","sType":"*NA nQ{}Type","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"216"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"220","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"220"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"11","prec":"1","seq":"2","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_datacite.xslt","line":"193","module":"oai_datacite.xslt","expand-text":"false","match":"TitleAbstract","prio":"0","matches":"NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","sType":"1NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"description","sType":"1NE nQ{http://datacite.org/schema/kernel-4}description ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"194","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"195","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"196","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"196"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"choose","sType":"? ","line":"198","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"198","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":""}]},{"N":"att","name":"descriptionType","sType":"1NA ","line":"199","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Abstract"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"204","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"204"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"12","prec":"1","seq":"1","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_datacite.xslt","line":"173","module":"oai_datacite.xslt","expand-text":"false","match":"Coverage","prio":"0","matches":"NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","sType":"1NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"geoLocation","sType":"1NE nQ{http://datacite.org/schema/kernel-4}geoLocation ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"174","C":[{"N":"elem","name":"geoLocationBox","sType":"1NE nQ{http://datacite.org/schema/kernel-4}geoLocationBox ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"175","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"westBoundLongitude","sType":"1NE nQ{http://datacite.org/schema/kernel-4}westBoundLongitude ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"176","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"177","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}XMin","name":"attribute","nodeTest":"*NA nQ{}XMin","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"177"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"eastBoundLongitude","sType":"1NE nQ{http://datacite.org/schema/kernel-4}eastBoundLongitude ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"179","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"180","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}XMax","name":"attribute","nodeTest":"*NA nQ{}XMax","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"180"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"southBoundLatitude","sType":"1NE nQ{http://datacite.org/schema/kernel-4}southBoundLatitude ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"182","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"183","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}YMin","name":"attribute","nodeTest":"*NA nQ{}YMin","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"183"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"northBoundLatitude","sType":"1NE nQ{http://datacite.org/schema/kernel-4}northBoundLatitude ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"185","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"186","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}YMax","name":"attribute","nodeTest":"*NA nQ{}YMax","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"186"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]},{"N":"templateRule","rank":"13","prec":"1","seq":"0","ns":"xml=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_datacite.xslt","line":"39","module":"oai_datacite.xslt","expand-text":"false","match":"Rdr_Dataset","prio":"0","matches":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","sType":"1NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"resource","sType":"1NE nQ{http://datacite.org/schema/kernel-4}resource ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","ns":"xml=~ xsi=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"41","C":[{"N":"sequence","ns":"xml=~ xsi=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","sType":"* ","C":[{"N":"att","name":"xsi:schemaLocation","nsuri":"http://www.w3.org/2001/XMLSchema-instance","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4.3/metadata.xsd"}]},{"N":"choose","sType":"* ","type":"item()*","line":"45","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","line":"46"},{"N":"applyT","sType":"* ","line":"47","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"47"}]},{"N":"true"},{"N":"elem","name":"identifier","sType":"1NE nQ{http://datacite.org/schema/kernel-4}identifier ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"50","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"oai:"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"52","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}repIdentifier","bSlot":"2","role":"select","line":"52"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":":"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"54","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}PublishId","name":"attribute","nodeTest":"*NA nQ{}PublishId","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"54"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"elem","name":"creators","sType":"1NE nQ{http://datacite.org/schema/kernel-4}creators ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"60","C":[{"N":"applyT","sType":"* ","line":"61","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"sort","role":"select","sType":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","sType":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"61"},{"N":"sortKey","sType":"?A ","C":[{"N":"check","card":"?","sType":"?A ","diag":"2|0|XTTE1020|sort","role":"select","C":[{"N":"data","sType":"*A ","role":"select","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}SortOrder","sType":"*NA nQ{}SortOrder","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"62"}]}]},{"N":"str","sType":"1AS ","val":"ascending","role":"order"},{"N":"str","sType":"1AS ","val":"en","role":"lang"},{"N":"str","sType":"1AS ","val":"#default","role":"caseOrder"},{"N":"str","sType":"1AS ","val":"true","role":"stable"}]}]}]}]},{"N":"elem","name":"titles","sType":"1NE nQ{http://datacite.org/schema/kernel-4}titles ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"65","C":[{"N":"sequence","sType":"* ","C":[{"N":"applyT","sType":"* ","line":"66","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","sType":"*NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"66"}]},{"N":"applyT","sType":"* ","line":"67","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","sType":"*NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"67"}]}]}]},{"N":"elem","name":"publisher","sType":"1NE nQ{http://datacite.org/schema/kernel-4}publisher ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"69","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"71","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}CreatingCorporation","name":"attribute","nodeTest":"*NA nQ{}CreatingCorporation","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"71"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"publicationYear","sType":"1NE nQ{http://datacite.org/schema/kernel-4}publicationYear ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"73","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"74","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}Year","role":"select","line":"74","C":[{"N":"slash","op":"/","sType":"*NA nQ{}Year","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"subjects","sType":"1NE nQ{http://datacite.org/schema/kernel-4}subjects ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"76","C":[{"N":"applyT","sType":"* ","line":"77","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","sType":"*NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"77"}]}]},{"N":"elem","name":"language","sType":"1NE nQ{http://datacite.org/schema/kernel-4}language ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"79","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"80","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"80"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"82","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","sType":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","line":"82"},{"N":"elem","name":"contributors","sType":"1NE nQ{http://datacite.org/schema/kernel-4}contributors ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"83","C":[{"N":"applyT","sType":"* ","line":"84","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"sort","role":"select","sType":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","sType":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"84"},{"N":"sortKey","sType":"?A ","C":[{"N":"check","card":"?","sType":"?A ","diag":"2|0|XTTE1020|sort","role":"select","C":[{"N":"data","sType":"*A ","role":"select","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}SortOrder","sType":"*NA nQ{}SortOrder","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"85"}]}]},{"N":"str","sType":"1AS ","val":"ascending","role":"order"},{"N":"str","sType":"1AS ","val":"en","role":"lang"},{"N":"str","sType":"1AS ","val":"#default","role":"caseOrder"},{"N":"str","sType":"1AS ","val":"true","role":"stable"}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"dates","sType":"1NE nQ{http://datacite.org/schema/kernel-4}dates ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"89","C":[{"N":"callT","bSlot":"3","sType":"* ","name":"Q{}RdrDate2","line":"90"}]},{"N":"elem","name":"version","sType":"1NE nQ{http://datacite.org/schema/kernel-4}version ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"92","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"93","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Version","sType":"*NA nQ{}Version","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","line":"94"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"95","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Version","name":"attribute","nodeTest":"*NA nQ{}Version","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"95"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"1"}]}]}]},{"N":"elem","name":"resourceType","sType":"1NE nQ{http://datacite.org/schema/kernel-4}resourceType ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"102","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"resourceTypeGeneral","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"Dataset"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Dataset"}]}]}]},{"N":"elem","name":"alternateIdentifiers","sType":"1NE nQ{http://datacite.org/schema/kernel-4}alternateIdentifiers ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"107","C":[{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}AlternateIdentifier","line":"108"}]},{"N":"choose","sType":"? ","line":"111","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","sType":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","line":"111"},{"N":"elem","name":"relatedIdentifiers","sType":"1NE nQ{http://datacite.org/schema/kernel-4}relatedIdentifiers ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"112","C":[{"N":"applyT","sType":"* ","line":"113","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","sType":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"113"}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"rightsList","sType":"1NE nQ{http://datacite.org/schema/kernel-4}rightsList ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"116","C":[{"N":"applyT","sType":"* ","line":"117","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","sType":"*NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"117"}]}]},{"N":"elem","name":"sizes","sType":"1NE nQ{http://datacite.org/schema/kernel-4}sizes ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"119","C":[{"N":"elem","name":"size","sType":"1NE nQ{http://datacite.org/schema/kernel-4}size ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"120","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"121","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"fn","sType":"1ADI","name":"count","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"121","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" datasets"}]}]}]}]},{"N":"elem","name":"formats","sType":"1NE nQ{http://datacite.org/schema/kernel-4}formats ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"125","C":[{"N":"applyT","sType":"* ","line":"126","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"docOrder","sType":"*NA nQ{}MimeType","role":"select","line":"126","C":[{"N":"slash","op":"/","sType":"*NA nQ{}MimeType","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}MimeType"}]}]}]}]},{"N":"elem","name":"descriptions","sType":"1NE nQ{http://datacite.org/schema/kernel-4}descriptions ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"128","C":[{"N":"sequence","sType":"* ","C":[{"N":"applyT","sType":"* ","line":"129","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","sType":"*NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"129"}]},{"N":"applyT","sType":"* ","line":"130","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","sType":"*NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"130"}]}]}]},{"N":"elem","name":"geoLocations","sType":"1NE nQ{http://datacite.org/schema/kernel-4}geoLocations ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"132","C":[{"N":"applyT","sType":"* ","line":"133","mode":"Q{}oai_datacite","bSlot":"1","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","sType":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"133"}]}]}]}]}]}]}]},{"N":"co","id":"59","binds":"13 42 59 10 11 3 4 12 43 5 14 15 16 17 18 19 23 20 21 22 24","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}iso19139","prec":"","C":[{"N":"templateRule","rank":"0","prec":"1","seq":"21","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","line":"737","module":"oai_2_iso19139.xslt","expand-text":"true","match":"File","prio":"0","matches":"NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]","sType":"1NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco "},{"N":"choose","sType":"? ","role":"action","line":"738","C":[{"N":"compareToInt","op":"gt","val":"0","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"738","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}MimeType"}]}]}]}]}]},{"N":"elem","name":"gmd:distributionFormat","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}distributionFormat ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"739","C":[{"N":"elem","name":"gmd:MD_Format","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_Format ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"740","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:name","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}name ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"741","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"742","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"743","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"743","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}MimeType"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:version","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}version ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"746","C":[{"N":"att","name":"gco:nilReason","nsuri":"http://www.isotc211.org/2005/gco","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"missing"}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"templateRule","rank":"1","prec":"1","seq":"20","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","line":"701","module":"oai_2_iso19139.xslt","expand-text":"true","match":"Reference","prio":"0","matches":"NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","sType":"1NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco "},{"N":"choose","sType":"? ","role":"action","line":"704","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"704","C":[{"N":"fn","name":"not","C":[{"N":"fn","name":"contains","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","val":"missing"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]},{"N":"fn","name":"not","C":[{"N":"fn","name":"contains","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","val":"unknown"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]}]},{"N":"elem","name":"gmd:aggregationInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}aggregationInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"705","C":[{"N":"elem","name":"gmd:MD_AggregateInformation","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_AggregateInformation ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"706","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:aggregateDataSetIdentifier","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}aggregateDataSetIdentifier ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"707","C":[{"N":"elem","name":"gmd:RS_Identifier","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}RS_Identifier ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"708","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:code","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}code ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"709","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"710","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"711","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"711","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","name":"gmd:codeSpace","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}codeSpace ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"714","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"715","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"716","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"716","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:associationType","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}associationType ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"721","C":[{"N":"elem","type":"element()","name":"gmd:DS_AssociationTypeCode","sType":"1NE ","nsuri":"http://www.isotc211.org/2005/gmd","line":"722","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","sType":"1NA ","line":"723","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"724","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"724","C":[{"N":"str","val":"http://datacite.org/schema/kernel-4"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"codeListValue","sType":"1NA ","line":"726","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"727","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"727","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"729","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"729","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"templateRule","rank":"2","prec":"1","seq":"19","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","line":"550","module":"oai_2_iso19139.xslt","expand-text":"true","match":"PersonContributor","prio":"0","matches":"NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","sType":"1NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco "},{"N":"let","var":"Q{}dcrole","slot":"0","sType":"*NE ","line":"551","role":"action","C":[{"N":"fn","name":"normalize-space","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"551","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"data","diag":"0|0||normalize-space","C":[{"N":"slash","op":"/","C":[{"N":"dot"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}ContributorType"}]}]}]}]}]},{"N":"let","var":"Q{}role","slot":"1","sType":"*NE ","line":"552","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"553","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"554","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"ContactPerson"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"pointOfContact"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"555","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"DataCollector"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"collaborator"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"556","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"DataCurator"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"custodian"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"557","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"DataManager"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"custodian"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"558","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"Distributor"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"originator"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"559","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"Editor"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"editor"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"560","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"Funder"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"funder"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"561","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"HostingInstitution"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"distributor"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"562","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"ProjectLeader"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"collaborator"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"563","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"ProjectManager"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"collaborator"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"564","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"ProjectMember"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"collaborator"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"565","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"ResearchGroup"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"collaborator"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"566","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"Researcher"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"collaborator"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"567","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"RightsHolder"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"rightsHolder"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"568","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"Sponsor"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"funder"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"569","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}dcrole","slot":"0"}]},{"N":"str","val":"WorkPackageLeader"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"collaborator"}]},{"N":"true"},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"contributor"}]}]}]},{"N":"elem","name":"gmd:citedResponsibleParty","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}citedResponsibleParty ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"573","C":[{"N":"let","var":"Q{}http-uri","slot":"2","sType":"* ","line":"574","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"575","C":[{"N":"compareToInt","op":"gt","val":"0","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"576","C":[{"N":"fn","name":"string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"attVal","name":"Q{}IdentifierOrcid"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"580","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"580","C":[{"N":"str","val":"http://orcid.org/"},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IdentifierOrcid"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"583","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"583","C":[{"N":"str","val":""}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"588","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"588","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}http-uri","slot":"2"}]},{"N":"str","val":""}]},{"N":"att","name":"xlink:href","sType":"1NA ","nsuri":"http://www.w3.org/1999/xlink","line":"589","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"590","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}http-uri","slot":"2","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"590"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"let","var":"Q{}nameidscheme","slot":"3","sType":"* ","line":"593","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"594","C":[{"N":"fn","name":"starts-with","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"595","C":[{"N":"treat","as":"AS","diag":"0|0||starts-with","C":[{"N":"check","card":"?","diag":"0|0||starts-with","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||starts-with","C":[{"N":"check","card":"?","diag":"0|0||starts-with","C":[{"N":"data","diag":"0|0||starts-with","C":[{"N":"varRef","name":"Q{}http-uri","slot":"2"}]}]}]}]}]},{"N":"str","val":"http://orcid.org/"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"596","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"596","C":[{"N":"str","val":"ORCID"}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"599","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"599","C":[{"N":"str","val":""}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"let","var":"Q{}email","slot":"4","sType":"* ","line":"603","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"604","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"605","C":[{"N":"attVal","name":"Q{}Email"},{"N":"str","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"606","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Email","name":"attribute","nodeTest":"*NA nQ{}Email","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"606"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"609","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"609","C":[{"N":"str","val":""}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"let","var":"Q{}affiliation","slot":"5","sType":"* ","line":"613","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"614","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"615","C":[{"N":"attVal","name":"Q{}NameType"},{"N":"str","val":"Personal"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"616","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"616","C":[{"N":"str","val":"GBA"}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"619","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"619","C":[{"N":"str","val":""}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"let","var":"Q{}contrnamestring","slot":"6","sType":"* ","line":"623","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"624","C":[{"N":"compareToString","op":"ne","val":"","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"625","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}LastName"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"630","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"630","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}LastName"}]}]}]},{"N":"str","val":", "},{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}FirstName"}]}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"633","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"633","C":[{"N":"str","val":"missing"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}ci_responsibleparty","line":"637","C":[{"N":"withParam","name":"Q{}individual","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"639","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}contrnamestring","slot":"6","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"639"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}httpuri","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"642","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}http-uri","slot":"2","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"642"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}personidtype","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"645","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}nameidscheme","slot":"3","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"645"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}organisation","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"648","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}affiliation","slot":"5","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"648"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}position","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"651","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}dcrole","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"651"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}email","slot":"4","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"654","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}email","slot":"4","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"654"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}role","slot":"1","sType":"*","C":[{"N":"varRef","name":"Q{}role","slot":"1","sType":"*","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"656"}]}]}]}]}]}]}]}]}]}]}]}]},{"N":"templateRule","rank":"3","prec":"1","seq":"18","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","line":"448","module":"oai_2_iso19139.xslt","expand-text":"true","match":"PersonAuthor","prio":"0","matches":"NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","sType":"1NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco "},{"N":"elem","name":"gmd:citedResponsibleParty","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}citedResponsibleParty ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","role":"action","line":"449","C":[{"N":"let","var":"Q{}http-uri","slot":"0","sType":"* ","line":"450","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"451","C":[{"N":"compareToInt","op":"gt","val":"0","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"452","C":[{"N":"fn","name":"string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"attVal","name":"Q{}IdentifierOrcid"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"456","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"456","C":[{"N":"str","val":"http://orcid.org/"},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IdentifierOrcid"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"459","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"459","C":[{"N":"str","val":""}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"464","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"464","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}http-uri","slot":"0"}]},{"N":"str","val":""}]},{"N":"att","name":"xlink:href","sType":"1NA ","nsuri":"http://www.w3.org/1999/xlink","line":"465","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"466","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}http-uri","slot":"0","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"466"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"let","var":"Q{}nameidscheme","slot":"1","sType":"* ","line":"469","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"470","C":[{"N":"fn","name":"starts-with","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"471","C":[{"N":"treat","as":"AS","diag":"0|0||starts-with","C":[{"N":"check","card":"?","diag":"0|0||starts-with","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||starts-with","C":[{"N":"check","card":"?","diag":"0|0||starts-with","C":[{"N":"data","diag":"0|0||starts-with","C":[{"N":"varRef","name":"Q{}http-uri","slot":"0"}]}]}]}]}]},{"N":"str","val":"http://orcid.org/"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"472","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"472","C":[{"N":"str","val":"ORCID"}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"475","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"475","C":[{"N":"str","val":""}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"let","var":"Q{}email","slot":"2","sType":"* ","line":"479","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"480","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"481","C":[{"N":"attVal","name":"Q{}Email"},{"N":"str","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"482","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Email","name":"attribute","nodeTest":"*NA nQ{}Email","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"482"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"485","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"485","C":[{"N":"str","val":""}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"let","var":"Q{}affiliation","slot":"3","sType":"* ","line":"489","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"490","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"491","C":[{"N":"attVal","name":"Q{}NameType"},{"N":"str","val":"Personal"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"492","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"492","C":[{"N":"str","val":"GBA"}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"495","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"495","C":[{"N":"str","val":""}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"let","var":"Q{}creatorname","slot":"4","sType":"* ","line":"499","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"sequence","sType":"* ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"500","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LastName","name":"attribute","nodeTest":"*NA nQ{}LastName","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"500"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"? ","line":"501","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"501","C":[{"N":"attVal","name":"Q{}FirstName"},{"N":"str","val":""}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":", "}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"504","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}FirstName","name":"attribute","nodeTest":"*NA nQ{}FirstName","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"504"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"* ","line":"505","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"505","C":[{"N":"attVal","name":"Q{}AcademicTitle"},{"N":"str","val":""}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" ("}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"507","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}AcademicTitle","name":"attribute","nodeTest":"*NA nQ{}AcademicTitle","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"507"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":")"}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"let","var":"Q{}namestring","slot":"5","sType":"* ","line":"511","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"512","C":[{"N":"compareToString","op":"ne","val":"","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"513","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}LastName"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"518","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"518","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}LastName"}]}]}]},{"N":"str","val":", "},{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}FirstName"}]}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"524","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"524","C":[{"N":"str","val":"missing"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}ci_responsibleparty","line":"528","C":[{"N":"withParam","name":"Q{}individual","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"530","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}namestring","slot":"5","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"530"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}personidtype","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"533","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}nameidscheme","slot":"1","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"533"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}organisation","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"536","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}affiliation","slot":"3","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"536"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}role","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"author"}]}]}]}]},{"N":"withParam","name":"Q{}email","slot":"2","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"540","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}email","slot":"2","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"540"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}datacite-creatorname","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"543","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}creatorname","slot":"4","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"543"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]},{"N":"templateRule","rank":"4","prec":"1","seq":"17","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","line":"437","module":"oai_2_iso19139.xslt","expand-text":"true","match":"TitleAdditional","prio":"0","matches":"NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","sType":"1NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco "},{"N":"choose","sType":"? ","role":"action","line":"438","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"438","C":[{"N":"compareToString","op":"eq","val":"Alternative","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Value"},{"N":"str","val":""}]}]},{"N":"elem","name":"gmd:alternateTitle","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}alternateTitle ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"439","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"440","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"441","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"441","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"templateRule","rank":"5","prec":"1","seq":"16","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","line":"368","module":"oai_2_iso19139.xslt","expand-text":"true","match":"Identifier","prio":"0","matches":"NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"1NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco "},{"N":"elem","name":"gmd:fileIdentifier","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}fileIdentifier ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","role":"action","line":"369","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"370","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"372","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","line":"373","C":[{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"attVal","name":"Q{}Value"}]}]}]}]},{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"count","C":[{"N":"arrayBlock","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Doi"}]}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"374","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"374","C":[{"N":"gVarRef","name":"Q{}fileIdentifierPrefix","bSlot":"1"},{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"substring-after","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||substring-after","C":[{"N":"check","card":"?","diag":"0|0||substring-after","C":[{"N":"attVal","name":"Q{}Value"}]}]},{"N":"str","val":"/tethys."},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"377","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"377","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"templateRule","rank":"6","prec":"1","seq":"15","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","line":"341","module":"oai_2_iso19139.xslt","expand-text":"true","match":"Licence","prio":"0","matches":"NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","sType":"1NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco "},{"N":"sequence","role":"action","sType":"*NE ","C":[{"N":"elem","name":"gmd:resourceConstraints","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}resourceConstraints ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"342","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"xlink:href","nsuri":"http://www.w3.org/1999/xlink","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"https://creativecommons.org/licenses/by/4.0/deed.en"}]},{"N":"elem","name":"gmd:MD_Constraints","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_Constraints ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"343","C":[{"N":"elem","name":"gmd:useLimitation","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}useLimitation ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"344","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"345","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"346","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"346","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}NameLong"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:resourceConstraints","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}resourceConstraints ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"351","C":[{"N":"elem","name":"gmd:MD_LegalConstraints","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_LegalConstraints ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"352","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:accessConstraints","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}accessConstraints ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"353","C":[{"N":"elem","name":"gmd:MD_RestrictionCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_RestrictionCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"354","C":[{"N":"sequence","sType":"*NA ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/codeList.xml#MD_RestrictionCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"otherRestrictions"}]}]}]}]},{"N":"elem","name":"gmd:otherConstraints","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}otherConstraints ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"356","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xlink=http://www.w3.org/1999/xlink fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","line":"357","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"358","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco ","role":"select","line":"358","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}NameLong"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]},{"N":"templateRule","rank":"7","prec":"1","seq":"14","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","line":"54","module":"oai_2_iso19139.xslt","expand-text":"true","match":"Rdr_Dataset","prio":"0","matches":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","sType":"1NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","ns":"= xml=~ fn=http://example.com/functions xsl=~ xs=~ xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco "},{"N":"elem","name":"gmd:MD_Metadata","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_Metadata ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","ns":"xml=~ gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ fn=http://example.com/functions","role":"action","line":"59","C":[{"N":"sequence","ns":"xml=~ gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ fn=http://example.com/functions","sType":"* ","C":[{"N":"att","name":"xsi:schemaLocation","nsuri":"http://www.w3.org/2001/XMLSchema-instance","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/gmd http://schemas.opengis.net/iso/19139/20060504/gmd/gmd.xsd http://www.isotc211.org/2005/gmx http://schemas.opengis.net/iso/19139/20060504/gmx/gmx.xsd http://www.isotc211.org/2005/srv http://schemas.opengis.net/iso/19139/20060504/srv/srv.xsd"}]},{"N":"choose","sType":"* ","line":"62","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","line":"62"},{"N":"applyT","sType":"* ","line":"63","mode":"Q{}iso19139","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"63"}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"gmd:language","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}language ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"67","C":[{"N":"elem","name":"gmd:LanguageCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}LanguageCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"68","C":[{"N":"sequence","sType":"*NA ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.loc.gov/standards/iso639-2/"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"ger"}]}]}]}]},{"N":"elem","name":"gmd:characterSet","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}characterSet ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"70","C":[{"N":"elem","name":"gmd:MD_CharacterSetCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_CharacterSetCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"71","C":[{"N":"sequence","sType":"*NA ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/codeList.xml#MD_CharacterSetCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"utf8"}]}]}]}]},{"N":"callT","bSlot":"3","sType":"* ","name":"Q{}hierarchylevel","line":"75"},{"N":"elem","name":"gmd:hierarchyLevelName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}hierarchyLevelName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"77","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"78","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Dataset"}]}]}]},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}metadatacontact","line":"84"},{"N":"callT","bSlot":"5","sType":"* ","name":"Q{}datestamp","line":"87"},{"N":"elem","name":"gmd:metadataStandardName","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}metadataStandardName ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"89","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"90","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"ISO 19139 Geographic Information - Metadata - Implementation Specification"}]}]}]},{"N":"elem","name":"gmd:metadataStandardVersion","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}metadataStandardVersion ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"92","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"93","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"2007"}]}]}]},{"N":"elem","name":"gmd:referenceSystemInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}referenceSystemInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"96","C":[{"N":"elem","name":"gmd:MD_ReferenceSystem","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_ReferenceSystem ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"97","C":[{"N":"elem","name":"gmd:referenceSystemIdentifier","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}referenceSystemIdentifier ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"98","C":[{"N":"elem","name":"gmd:RS_Identifier","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}RS_Identifier ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"99","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"gmd:code","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}code ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"100","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"102","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"https://www.opengis.net/def/crs/EPSG/0/31287"}]}]}]},{"N":"elem","name":"gmd:version","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}version ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"104","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"105","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"6.11.2"}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:identificationInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}identificationInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"112","C":[{"N":"elem","name":"gmd:MD_DataIdentification","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_DataIdentification ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"113","C":[{"N":"sequence","sType":"* ","C":[{"N":"elem","name":"gmd:citation","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}citation ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"116","C":[{"N":"elem","name":"gmd:CI_Citation","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}CI_Citation ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"117","C":[{"N":"sequence","sType":"* ","C":[{"N":"callT","bSlot":"6","sType":"* ","name":"Q{}title","line":"119"},{"N":"applyT","sType":"* ","line":"122","mode":"Q{}iso19139","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","sType":"*NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"122"}]},{"N":"callT","bSlot":"7","sType":"* ","name":"Q{}resourcedates","line":"125"},{"N":"elem","name":"gmd:identifier","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}identifier ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"129","C":[{"N":"forEach","sType":"* ","line":"130","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"130","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"Identifier","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]}]},{"N":"choose","sType":"? ","line":"133","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","line":"133","C":[{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"data","diag":"0|0||string-length","C":[{"N":"slash","op":"/","C":[{"N":"filter","C":[{"N":"dot"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Doi"}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]}]}]},{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"count","C":[{"N":"arrayBlock","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"slash","op":"/","C":[{"N":"filter","C":[{"N":"dot"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Doi"}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type"}]}]},{"N":"str","val":"Doi"}]}]}]}]}]},{"N":"elem","name":"gmd:MD_Identifier","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_Identifier ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"134","C":[{"N":"elem","name":"gmd:code","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}code ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"135","C":[{"N":"elem","name":"gco:CharacterString","sType":"1NE nQ{http://www.isotc211.org/2005/gco}CharacterString ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"136","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"137","C":[{"N":"or","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","line":"138","C":[{"N":"fn","name":"starts-with","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||starts-with","C":[{"N":"check","card":"?","diag":"0|0||starts-with","C":[{"N":"data","diag":"0|0||starts-with","C":[{"N":"slash","op":"/","C":[{"N":"filter","C":[{"N":"dot"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Doi"}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]},{"N":"str","val":"doi:"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"fn","name":"contains","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"data","diag":"0|0||contains","C":[{"N":"slash","op":"/","C":[{"N":"filter","C":[{"N":"dot"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Doi"}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]},{"N":"str","val":"doi.org"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"139","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}Value","role":"select","line":"139","C":[{"N":"slash","op":"/","sType":"*NA nQ{}Value","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","C":[{"N":"filter","C":[{"N":"dot"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Doi"}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","line":"141","C":[{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"count","C":[{"N":"filter","C":[{"N":"dot"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Doi"}]}]}]}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"gVarRef","name":"Q{}datacentre","bSlot":"8"}]},{"N":"str","val":"Tethys RDR"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"145","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"145","C":[{"N":"str","val":"https://doi.org/"},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"filter","C":[{"N":"dot"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Doi"}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"148","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}Value","role":"select","line":"148","C":[{"N":"slash","op":"/","sType":"*NA nQ{}Value","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","C":[{"N":"filter","C":[{"N":"dot"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Doi"}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"applyT","sType":"* ","line":"159","mode":"Q{}iso19139","bSlot":"2","C":[{"N":"sort","role":"select","sType":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","sType":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"159"},{"N":"sortKey","sType":"?A ","C":[{"N":"check","card":"?","sType":"?A ","diag":"2|0|XTTE1020|sort","role":"select","C":[{"N":"data","sType":"*A ","role":"select","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}SortOrder","sType":"*NA nQ{}SortOrder","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"160"}]}]},{"N":"str","sType":"1AS ","val":"ascending","role":"order"},{"N":"str","sType":"1AS ","val":"en","role":"lang"},{"N":"str","sType":"1AS ","val":"#default","role":"caseOrder"},{"N":"str","sType":"1AS ","val":"true","role":"stable"}]}]}]},{"N":"applyT","sType":"* ","line":"164","mode":"Q{}iso19139","bSlot":"2","C":[{"N":"sort","role":"select","sType":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","sType":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"164"},{"N":"sortKey","sType":"?A ","C":[{"N":"check","card":"?","sType":"?A ","diag":"2|0|XTTE1020|sort","role":"select","C":[{"N":"data","sType":"*A ","role":"select","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}SortOrder","sType":"*NA nQ{}SortOrder","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"165"}]}]},{"N":"str","sType":"1AS ","val":"ascending","role":"order"},{"N":"str","sType":"1AS ","val":"en","role":"lang"},{"N":"str","sType":"1AS ","val":"#default","role":"caseOrder"},{"N":"str","sType":"1AS ","val":"true","role":"stable"}]}]}]},{"N":"elem","name":"gmd:citedResponsibleParty","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}citedResponsibleParty ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"169","C":[{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}ci_responsibleparty","line":"170","C":[{"N":"withParam","name":"Q{}organisation","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"172","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}CreatingCorporation","name":"attribute","nodeTest":"*NA nQ{}CreatingCorporation","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"172"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"withParam","name":"Q{}role","slot":"0","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"publisher"}]}]}]}]}]}]}]}]}]},{"N":"callT","bSlot":"9","sType":"* ","name":"Q{}abstract","line":"181"},{"N":"elem","name":"gmd:status","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}status ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"183","C":[{"N":"elem","name":"gmd:MD_ProgressCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_ProgressCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"184","C":[{"N":"sequence","sType":"*NA ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_ProgressCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"Complete"}]},{"N":"att","name":"codeSpace","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"ISOTC211/19115"}]}]}]}]},{"N":"callT","bSlot":"10","sType":"* ","name":"Q{}pointofcontact_custodian","line":"188"},{"N":"callT","bSlot":"11","sType":"* ","name":"Q{}pointofcontact_originator","line":"191"},{"N":"elem","name":"gmd:resourceMaintenance","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}resourceMaintenance ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"194","C":[{"N":"elem","name":"gmd:MD_MaintenanceInformation","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_MaintenanceInformation ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"195","C":[{"N":"elem","name":"gmd:maintenanceAndUpdateFrequency","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}maintenanceAndUpdateFrequency ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"196","C":[{"N":"elem","name":"gmd:MD_MaintenanceFrequencyCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_MaintenanceFrequencyCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"197","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://schemas.opengis.net/iso/19139/20070417/resources/codelist/gmxCodelists.xml#MD_MaintenanceFrequencyCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"asNeeded"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"asNeeded"}]}]}]}]}]}]},{"N":"callT","bSlot":"12","sType":"* ","name":"Q{}browseGraphictethys","line":"230"},{"N":"callT","bSlot":"13","sType":"* ","name":"Q{}freekeywords","line":"233"},{"N":"callT","bSlot":"14","sType":"* ","name":"Q{}datacenter_keyword","line":"235"},{"N":"applyT","sType":"* ","line":"238","mode":"Q{}iso19139","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","sType":"*NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"238"}]},{"N":"elem","name":"gmd:resourceConstraints","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}resourceConstraints ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"239","C":[{"N":"elem","name":"gmd:MD_SecurityConstraints","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_SecurityConstraints ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"240","C":[{"N":"elem","name":"gmd:classification","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}classification ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"241","C":[{"N":"elem","name":"gmd:MD_ClassificationCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_ClassificationCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"242","C":[{"N":"sequence","sType":"*NA ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/resources/codeList.xml#MD_ClassificationCode"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"unclassified"}]}]}]}]}]}]},{"N":"applyT","sType":"* ","line":"252","mode":"Q{}iso19139","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","sType":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"252"}]},{"N":"elem","name":"gmd:spatialResolution","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}spatialResolution ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"254","C":[{"N":"let","var":"Q{}mainTitle","slot":"0","sType":"*NE ","line":"255","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/oai_2_iso19139.xslt","role":"select","C":[{"N":"forEach","sType":"* ","line":"257","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"257","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"TitleMain","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"name","C":[{"N":"dot"}]}]}]},{"N":"choose","sType":"? ","line":"258","C":[{"N":"compareToString","op":"eq","val":"Main","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","line":"258","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}Type"}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"259","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"259"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"elem","name":"gmd:MD_Resolution","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_Resolution ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"263","C":[{"N":"choose","sType":"?NE ","type":"item()*","line":"264","C":[{"N":"fn","name":"contains","sType":"1AB","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","line":"265","C":[{"N":"treat","as":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||contains","C":[{"N":"check","card":"?","diag":"0|0||contains","C":[{"N":"data","diag":"0|0||contains","C":[{"N":"varRef","name":"Q{}mainTitle","slot":"0"}]}]}]}]}]},{"N":"str","val":"50.000"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]},{"N":"elem","name":"gmd:equivalentScale","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}equivalentScale ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"266","C":[{"N":"elem","name":"gmd:MD_RepresentativeFraction","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_RepresentativeFraction ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"267","C":[{"N":"elem","name":"gmd:denominator","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}denominator ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"268","C":[{"N":"elem","name":"gco:Integer","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Integer ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"270","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"50000"}]}]}]}]}]},{"N":"true"},{"N":"elem","name":"gmd:distance","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}distance ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"276","C":[{"N":"elem","name":"gco:Distance","sType":"1NE nQ{http://www.isotc211.org/2005/gco}Distance ","nsuri":"http://www.isotc211.org/2005/gco","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"277","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"uom","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"m"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"-1"}]}]}]}]}]}]}]}]},{"N":"elem","name":"gmd:language","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}language ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"285","C":[{"N":"elem","name":"gmd:LanguageCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}LanguageCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"286","C":[{"N":"sequence","sType":"*NA ","C":[{"N":"att","name":"codeList","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.loc.gov/standards/iso639-2/"}]},{"N":"att","name":"codeListValue","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"ger"}]}]}]}]},{"N":"elem","name":"gmd:topicCategory","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}topicCategory ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"290","C":[{"N":"elem","name":"gmd:MD_TopicCategoryCode","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_TopicCategoryCode ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"291","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"geoscientificInformation"}]}]}]},{"N":"callT","bSlot":"15","sType":"* ","name":"Q{}spatialcoverage","line":"295"}]}]}]},{"N":"elem","name":"gmd:distributionInfo","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}distributionInfo ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"304","C":[{"N":"elem","name":"gmd:MD_Distribution","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_Distribution ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"305","C":[{"N":"sequence","sType":"* ","C":[{"N":"applyT","sType":"* ","line":"308","mode":"Q{}iso19139","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]","sType":"*NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]","ns":"= xml=~ fn=http://example.com/functions gmd=http://www.isotc211.org/2005/gmd xsi=~ gco=http://www.isotc211.org/2005/gco srv=http://www.isotc211.org/2005/srv gmx=http://www.isotc211.org/2005/gmx gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 xlink=http://www.w3.org/1999/xlink xsl=~ xs=~ ","role":"select","line":"308"}]},{"N":"callT","bSlot":"16","sType":"* ","name":"Q{}distributor","line":"311"},{"N":"elem","name":"gmd:transferOptions","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}transferOptions ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"314","C":[{"N":"elem","name":"gmd:MD_DigitalTransferOptions","sType":"1NE nQ{http://www.isotc211.org/2005/gmd}MD_DigitalTransferOptions ","nsuri":"http://www.isotc211.org/2005/gmd","namespaces":"xs=http://www.w3.org/2001/XMLSchema xsi=http://www.w3.org/2001/XMLSchema-instance xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gmx=http://www.isotc211.org/2005/gmx gmi=http://www.isotc211.org/2005/gmi gml=http://www.opengis.net/gml/3.2 gco=http://www.isotc211.org/2005/gco gts=http://www.isotc211.org/2005/gts gsr=http://www.isotc211.org/2005/gsr srv=http://www.isotc211.org/2005/srv fn=http://example.com/functions","line":"315","C":[{"N":"sequence","sType":"* ","C":[{"N":"callT","bSlot":"17","sType":"* ","name":"Q{}datacite_identifier","line":"319"},{"N":"callT","bSlot":"18","sType":"* ","name":"Q{}alternate_identifier","line":"322"}]}]}]}]}]}]},{"N":"callT","bSlot":"19","sType":"* ","name":"Q{}data_quality","line":"330"},{"N":"callT","bSlot":"20","sType":"* ","name":"Q{}metadata_maintenance","line":"333"}]}]}]}]}]},{"N":"co","id":"60","binds":"29 41 27 28 30 32","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}Identify","prec":"","C":[{"N":"templateRule","rank":"0","prec":"1","seq":"23","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"151","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Datasets","prio":"0","matches":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"1NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"Identify","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}Identify ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"152","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"repositoryName","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}repositoryName ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"153","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"154","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}repositoryName","bSlot":"0","role":"select","line":"154"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"baseURL","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}baseURL ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"156","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"157","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}baseURL","bSlot":"1","role":"select","line":"157"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"protocolVersion","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}protocolVersion ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"159","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"2.0"}]}]},{"N":"elem","name":"adminEmail","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}adminEmail ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"162","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"163","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}email","bSlot":"2","role":"select","line":"163"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"earliestDatestamp","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}earliestDatestamp ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"165","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"166","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}earliestDatestamp","bSlot":"3","role":"select","line":"166"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"deletedRecord","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}deletedRecord ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"168","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"persistent"}]}]},{"N":"elem","name":"granularity","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}granularity ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"171","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"YYYY-MM-DDThh:mm:ssZ"}]}]},{"N":"elem","name":"description","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}description ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"174","C":[{"N":"elem","name":"oai-identifier","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/oai-identifier}oai-identifier ","nsuri":"http://www.openarchives.org/OAI/2.0/oai-identifier","namespaces":"=http://www.openarchives.org/OAI/2.0/oai-identifier xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/oai-identifier xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","line":"175","C":[{"N":"sequence","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/oai-identifier xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","sType":"*N ","C":[{"N":"att","name":"xsi:schemaLocation","nsuri":"http://www.w3.org/2001/XMLSchema-instance","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.openarchives.org/OAI/2.0/oai-identifier http://www.openarchives.org/OAI/2.0/oai-identifier.xsd"}]},{"N":"elem","name":"scheme","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/oai-identifier}scheme ","nsuri":"http://www.openarchives.org/OAI/2.0/oai-identifier","namespaces":"=http://www.openarchives.org/OAI/2.0/oai-identifier xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"176","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"oai"}]}]},{"N":"elem","name":"repositoryIdentifier","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/oai-identifier}repositoryIdentifier ","nsuri":"http://www.openarchives.org/OAI/2.0/oai-identifier","namespaces":"=http://www.openarchives.org/OAI/2.0/oai-identifier xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"179","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"180","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}repIdentifier","bSlot":"4","role":"select","line":"180"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"delimiter","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/oai-identifier}delimiter ","nsuri":"http://www.openarchives.org/OAI/2.0/oai-identifier","namespaces":"=http://www.openarchives.org/OAI/2.0/oai-identifier xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"182","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":":"}]}]},{"N":"elem","name":"sampleIdentifier","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/oai-identifier}sampleIdentifier ","nsuri":"http://www.openarchives.org/OAI/2.0/oai-identifier","namespaces":"=http://www.openarchives.org/OAI/2.0/oai-identifier xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"185","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"186","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}sampleIdentifier","bSlot":"5","role":"select","line":"186"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"61","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}ListMetadataFormats","prec":"","C":[{"N":"templateRule","rank":"0","prec":"1","seq":"24","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"218","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Datasets","prio":"0","matches":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"1NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"ListMetadataFormats","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}ListMetadataFormats ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"219","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"metadataFormat","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}metadataFormat ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"220","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"metadataPrefix","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}metadataPrefix ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"221","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"oai_dc"}]}]},{"N":"elem","name":"schema","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}schema ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"224","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"http://www.openarchives.org/OAI/2.0/oai_dc.xsd"}]}]},{"N":"elem","name":"metadataNamespace","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}metadataNamespace ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"227","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"http://www.openarchives.org/OAI/2.0/oai_dc/"}]}]}]}]},{"N":"elem","name":"metadataFormat","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}metadataFormat ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"231","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"metadataPrefix","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}metadataPrefix ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"232","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"oai_datacite"}]}]},{"N":"elem","name":"schema","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}schema ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"235","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"http://schema.datacite.org/meta/kernel-4.3/metadata.xsd"}]}]},{"N":"elem","name":"metadataNamespace","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}metadataNamespace ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"238","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"http://datacite.org/schema/kernel-4"}]}]}]}]},{"N":"elem","name":"metadataFormat","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}metadataFormat ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"242","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"metadataPrefix","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}metadataPrefix ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"243","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"iso19139"}]}]},{"N":"elem","name":"schema","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}schema ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"244","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/gmd/gmd.xsd"}]}]},{"N":"elem","name":"metadataNamespace","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}metadataNamespace ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"245","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"http://www.isotc211.org/2005/gmd"}]}]}]}]}]}]}]}]}]},{"N":"co","id":"62","binds":"57","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}ListSets","prec":"","C":[{"N":"templateRule","rank":"0","prec":"1","seq":"25","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"250","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Datasets","prio":"0","matches":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"1NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"ListSets","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}ListSets ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"251","C":[{"N":"applyT","sType":"* ","line":"252","mode":"#unnamed","bSlot":"0","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Sets,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Sets]","sType":"*NE u[NE nQ{}Rdr_Sets,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Sets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"252"}]}]}]}]}]},{"N":"co","id":"63","binds":"57 34 33 36 35","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}ListIdentifiers","prec":"","C":[{"N":"templateRule","rank":"0","prec":"1","seq":"27","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"267","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Datasets","prio":"0","matches":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"1NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"choose","sType":"? ","role":"action","line":"268","C":[{"N":"compareToInt","op":"gt","val":"0","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"268","C":[{"N":"fn","name":"count","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]}]},{"N":"elem","name":"ListIdentifiers","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}ListIdentifiers ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"269","C":[{"N":"sequence","sType":"* ","C":[{"N":"applyT","sType":"* ","line":"270","mode":"#unnamed","bSlot":"0","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","sType":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"270"}]},{"N":"choose","sType":"? ","line":"271","C":[{"N":"vc","op":"gt","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"271","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"gVarRef","name":"Q{}totalIds","bSlot":"1"}]}]}]},{"N":"int","val":"0"}]},{"N":"elem","name":"resumptionToken","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}resumptionToken ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"272","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"expirationDate","sType":"1NA ","line":"273","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"274","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}dateDelete","bSlot":"2","role":"select","line":"274"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"completeListSize","sType":"1NA ","line":"276","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"277","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}totalIds","bSlot":"1","role":"select","line":"277"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"cursor","sType":"1NA ","line":"279","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"280","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}cursor","bSlot":"3","role":"select","line":"280"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"282","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}res","bSlot":"4","role":"select","line":"282"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"co","id":"64","binds":"57 34 33 36 35","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}ListRecords","prec":"","C":[{"N":"templateRule","rank":"0","prec":"1","seq":"28","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"289","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Datasets","prio":"0","matches":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"1NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"choose","sType":"? ","role":"action","line":"290","C":[{"N":"compareToInt","op":"gt","val":"0","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"290","C":[{"N":"fn","name":"count","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]}]},{"N":"elem","name":"ListRecords","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}ListRecords ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"291","C":[{"N":"sequence","sType":"* ","C":[{"N":"applyT","sType":"* ","line":"292","mode":"#unnamed","bSlot":"0","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","sType":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"292"}]},{"N":"choose","sType":"? ","line":"293","C":[{"N":"vc","op":"gt","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"293","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"gVarRef","name":"Q{}totalIds","bSlot":"1"}]}]}]},{"N":"int","val":"0"}]},{"N":"elem","name":"resumptionToken","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}resumptionToken ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"294","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"expirationDate","sType":"1NA ","line":"295","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"296","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}dateDelete","bSlot":"2","role":"select","line":"296"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"completeListSize","sType":"1NA ","line":"298","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"299","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}totalIds","bSlot":"1","role":"select","line":"299"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"cursor","sType":"1NA ","line":"301","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"302","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}cursor","bSlot":"3","role":"select","line":"302"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"304","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}res","bSlot":"4","role":"select","line":"304"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"co","id":"65","binds":"57","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}GetRecord","prec":"","C":[{"N":"templateRule","rank":"0","prec":"1","seq":"29","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"311","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Datasets","prio":"0","matches":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","sType":"1NE u[NE nQ{}Datasets,NE nQ{http://www.w3.org/1999/xhtml}Datasets]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"GetRecord","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/}GetRecord ","nsuri":"http://www.openarchives.org/OAI/2.0/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"312","C":[{"N":"applyT","sType":"* ","line":"313","mode":"#unnamed","bSlot":"0","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","sType":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"313"}]}]}]}]}]},{"N":"co","id":"66","binds":"31 26 66 9 8","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}oai_dc","prec":"","C":[{"N":"templateRule","rank":"0","prec":"1","seq":"44","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"704","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"File/@MimeType","prio":"0.5","matches":"NA nQ{}MimeType","C":[{"N":"p.withUpper","role":"match","axis":"parent","sType":"1NA nQ{}MimeType","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","C":[{"N":"p.nodeTest","test":"NA nQ{}MimeType"},{"N":"p.nodeTest","test":"NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]"}]},{"N":"elem","name":"dc:format","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}format ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"705","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"706","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"707","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"dot"}]},{"N":"str","val":"application/x-sqlite3"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"application/geopackage+sqlite3"}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"711","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"dot","sType":"1NA nQ{}MimeType","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"711"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"1","prec":"1","seq":"48","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"766","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Licence","prio":"0","matches":"NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","sType":"1NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"sequence","role":"action","sType":"* ","C":[{"N":"elem","name":"dc:rights","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}rights ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"767","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"768","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}NameLong","name":"attribute","nodeTest":"*NA nQ{}NameLong","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"768"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"770","C":[{"N":"or","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"770","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Name"},{"N":"str","val":"CC-BY-4.0"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Name"},{"N":"str","val":"CC-BY-SA-4.0"}]}]},{"N":"elem","name":"dc:rights","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}rights ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"771","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"info:eu-repo/semantics/openAccess"}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"templateRule","rank":"2","prec":"1","seq":"47","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"740","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"@Language","prio":"0","matches":"NA nQ{}Language","C":[{"N":"p.nodeTest","role":"match","test":"NA nQ{}Language","sType":"1NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:language","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}language ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"741","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"742","C":[{"N":"compareToString","op":"eq","val":"de","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"743","C":[{"N":"fn","name":"string","C":[{"N":"dot"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","C":[{"N":"str","role":"select","val":"ger","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"5"}]},{"N":"compareToString","op":"eq","val":"en","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"744","C":[{"N":"fn","name":"string","C":[{"N":"dot"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","C":[{"N":"str","role":"select","val":"eng","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"7"}]},{"N":"compareToString","op":"eq","val":"es","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"745","C":[{"N":"fn","name":"string","C":[{"N":"dot"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","C":[{"N":"str","role":"select","val":"spa","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"9"}]},{"N":"compareToString","op":"eq","val":"it","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"746","C":[{"N":"fn","name":"string","C":[{"N":"dot"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","C":[{"N":"str","role":"select","val":"ita","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"11"}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"748","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"748","C":[{"N":"dot"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"3","prec":"1","seq":"46","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"734","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"@CreatingCorporation","prio":"0","matches":"NA nQ{}CreatingCorporation","C":[{"N":"p.nodeTest","role":"match","test":"NA nQ{}CreatingCorporation","sType":"1NA nQ{}CreatingCorporation","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:language","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}language ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"735","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"736","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"dot","sType":"1NA nQ{}CreatingCorporation","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"736"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"templateRule","rank":"4","prec":"1","seq":"45","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"724","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Identifier","prio":"0","matches":"NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"1NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:relation","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}relation ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"725","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"727","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"727","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"gVarRef","name":"Q{}doiPrefix","bSlot":"0"}]}]},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"templateRule","rank":"5","prec":"1","seq":"43","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"679","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"EmbargoDate","prio":"0","matches":"NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]","sType":"1NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"choose","sType":"? ","role":"action","line":"680","C":[{"N":"gc","op":"<","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"680","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}unixTimestamp","bSlot":"1"}]},{"N":"data","diag":"1|1||gc","C":[{"N":"slash","op":"/","C":[{"N":"dot"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}UnixTimestamp"}]}]}]},{"N":"elem","name":"dc:date","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}date ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"681","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"info:eu-repo/date/embargoEnd/"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"683","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}Year","role":"select","line":"683","C":[{"N":"slash","op":"/","sType":"*NA nQ{}Year","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","C":[{"N":"dot"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\n -\n "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"685","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"format-number","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"685","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"dot"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\n -\n "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"687","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"format-number","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"687","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"dot"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"templateRule","rank":"6","prec":"1","seq":"42","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"641","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"PersonContributor","prio":"0","matches":"NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","sType":"1NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:contributor","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}contributor ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"642","C":[{"N":"sequence","sType":"* ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"643","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LastName","name":"attribute","nodeTest":"*NA nQ{}LastName","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"643"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"? ","line":"644","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"644","C":[{"N":"attVal","name":"Q{}FirstName"},{"N":"str","val":""}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":", "}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"647","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}FirstName","name":"attribute","nodeTest":"*NA nQ{}FirstName","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"647"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"* ","line":"648","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"648","C":[{"N":"attVal","name":"Q{}AcademicTitle"},{"N":"str","val":""}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" ("}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"650","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}AcademicTitle","name":"attribute","nodeTest":"*NA nQ{}AcademicTitle","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"650"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":")"}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"templateRule","rank":"7","prec":"1","seq":"41","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"626","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"PersonAuthor|PersonEditor","prio":"0","matches":"NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","sType":"1NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]"},{"N":"elem","name":"dc:creator","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}creator ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"627","C":[{"N":"sequence","sType":"* ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"628","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LastName","name":"attribute","nodeTest":"*NA nQ{}LastName","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"628"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"? ","line":"629","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"629","C":[{"N":"attVal","name":"Q{}FirstName"},{"N":"str","val":""}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":", "}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"632","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}FirstName","name":"attribute","nodeTest":"*NA nQ{}FirstName","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"632"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"* ","line":"633","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"633","C":[{"N":"attVal","name":"Q{}AcademicTitle"},{"N":"str","val":""}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" ("}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"635","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}AcademicTitle","name":"attribute","nodeTest":"*NA nQ{}AcademicTitle","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"635"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":")"}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"templateRule","rank":"8","prec":"1","seq":"41","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"626","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"PersonAuthor|PersonEditor","prio":"0","matches":"NE u[NE nQ{}PersonEditor,NE nQ{http://www.w3.org/1999/xhtml}PersonEditor]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}PersonEditor,NE nQ{http://www.w3.org/1999/xhtml}PersonEditor]","sType":"1NE u[NE nQ{}PersonEditor,NE nQ{http://www.w3.org/1999/xhtml}PersonEditor]"},{"N":"elem","name":"dc:creator","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}creator ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"627","C":[{"N":"sequence","sType":"* ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"628","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LastName","name":"attribute","nodeTest":"*NA nQ{}LastName","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"628"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"? ","line":"629","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"629","C":[{"N":"attVal","name":"Q{}FirstName"},{"N":"str","val":""}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":", "}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"632","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}FirstName","name":"attribute","nodeTest":"*NA nQ{}FirstName","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"632"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"* ","line":"633","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"633","C":[{"N":"attVal","name":"Q{}AcademicTitle"},{"N":"str","val":""}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" ("}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"635","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}AcademicTitle","name":"attribute","nodeTest":"*NA nQ{}AcademicTitle","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"635"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":")"}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"templateRule","rank":"9","prec":"1","seq":"40","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"616","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Reference","prio":"0","matches":"NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","sType":"1NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:relation","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}relation ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"617","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"618","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"618","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"templateRule","rank":"10","prec":"1","seq":"39","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"605","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Collection","prio":"0","matches":"NE u[NE nQ{}Collection,NE nQ{http://www.w3.org/1999/xhtml}Collection]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Collection,NE nQ{http://www.w3.org/1999/xhtml}Collection]","sType":"1NE u[NE nQ{}Collection,NE nQ{http://www.w3.org/1999/xhtml}Collection]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:subject","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}subject ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"606","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"612","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"612","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Collectionrole.Name"}]}]},{"N":"str","val":":"},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Number"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"templateRule","rank":"11","prec":"1","seq":"38","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"595","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Subject","prio":"0","matches":"NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","sType":"1NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:subject","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}subject ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"596","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"597","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"597","C":[{"N":"attVal","name":"Q{}Language"},{"N":"str","val":""}]},{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"598","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"599","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"599"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"602","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"602"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"12","prec":"1","seq":"37","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"586","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"TitleAbstractAdditional","prio":"0","matches":"NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","sType":"1NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:description","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}description ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"587","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"588","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"589","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"589"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"591","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"591"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"13","prec":"1","seq":"36","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"578","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"TitleAbstract","prio":"0","matches":"NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","sType":"1NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:description","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}description ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"579","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"580","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"581","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"581"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"583","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"583"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"14","prec":"1","seq":"35","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"569","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"TitleAdditional","prio":"0","matches":"NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","sType":"1NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:title","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}title ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"570","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"571","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"572","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"572"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"574","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"574"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"15","prec":"1","seq":"34","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"560","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"TitleMain","prio":"0","matches":"NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","sType":"1NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:title","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}title ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"561","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"562","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"563","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"563"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"565","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"565"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"16","prec":"1","seq":"33","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"523","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Coverage","prio":"0","matches":"NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","sType":"1NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"dc:coverage","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}coverage ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"524","C":[{"N":"let","var":"Q{}geolocation","slot":"0","sType":"* ","line":"530","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"530","C":[{"N":"str","val":"SOUTH-BOUND LATITUDE: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}YMin"}]},{"N":"str","val":" * WEST-BOUND LONGITUDE: "},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"attVal","name":"Q{}XMin"}]},{"N":"str","val":" * NORTH-BOUND LATITUDE: "},{"N":"check","card":"?","diag":"0|5||concat","C":[{"N":"attVal","name":"Q{}YMax"}]},{"N":"str","val":" * EAST-BOUND LONGITUDE: "},{"N":"check","card":"?","diag":"0|7||concat","C":[{"N":"attVal","name":"Q{}XMax"}]}]},{"N":"sequence","sType":"? ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"531","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}geolocation","slot":"0","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"531"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"? ","line":"534","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"534","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}ElevationMin"},{"N":"str","val":""}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}ElevationMax"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"535","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"535","C":[{"N":"str","val":" * ELEVATION MIN: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}ElevationMin"}]},{"N":"str","val":" * ELEVATION MAX: "},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"attVal","name":"Q{}ElevationMax"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"537","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"537","C":[{"N":"attVal","name":"Q{}ElevationAbsolut"},{"N":"str","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"538","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"538","C":[{"N":"str","val":" * ELEVATION ABSOLUT: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}ElevationAbsolut"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"542","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"542","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}DepthMin"},{"N":"str","val":""}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}DepthMax"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"543","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"543","C":[{"N":"str","val":" * DEPTH MIN: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}DepthMin"}]},{"N":"str","val":" * DEPTH MAX: "},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"attVal","name":"Q{}DepthMax"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"545","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"545","C":[{"N":"attVal","name":"Q{}DepthAbsolut"},{"N":"str","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"546","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"546","C":[{"N":"str","val":" * DEPTH ABSOLUT: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}DepthAbsolut"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"550","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"550","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}TimeMin"},{"N":"str","val":""}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}TimeMax"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"551","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"551","C":[{"N":"str","val":" * TIME MIN: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}TimeMin"}]},{"N":"str","val":" * TIME MAX: "},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"attVal","name":"Q{}TimeMax"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"553","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"553","C":[{"N":"attVal","name":"Q{}TimeAbsolut"},{"N":"str","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"554","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"554","C":[{"N":"str","val":" * TIME ABSOLUT: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}TimeAbsolut"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]},{"N":"templateRule","rank":"17","prec":"1","seq":"32","ns":"xml=~ =http://www.openarchives.org/OAI/2.0/ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/datasetxml2oai-pmh.xslt","line":"410","module":"datasetxml2oai-pmh.xslt","expand-text":"false","match":"Rdr_Dataset","prio":"0","matches":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","sType":"1NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ "},{"N":"elem","name":"oai_dc:dc","sType":"1NE nQ{http://www.openarchives.org/OAI/2.0/oai_dc/}dc ","nsuri":"http://www.openarchives.org/OAI/2.0/oai_dc/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","role":"action","line":"411","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"xsi:schemaLocation","nsuri":"http://www.w3.org/2001/XMLSchema-instance","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd"}]},{"N":"applyT","sType":"* ","line":"413","mode":"Q{}oai_dc","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","sType":"*NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"413"}]},{"N":"applyT","sType":"* ","line":"415","mode":"Q{}oai_dc","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","sType":"*NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"415"}]},{"N":"choose","sType":"* ","type":"item()*","line":"418","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","sType":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"419"},{"N":"applyT","sType":"* ","line":"420","mode":"Q{}oai_dc","bSlot":"2","C":[{"N":"sort","role":"select","sType":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","sType":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"420"},{"N":"sortKey","sType":"?A ","C":[{"N":"check","card":"?","sType":"?A ","diag":"2|0|XTTE1020|sort","role":"select","C":[{"N":"data","sType":"*A ","role":"select","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}SortOrder","sType":"*NA nQ{}SortOrder","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"421"}]}]},{"N":"str","sType":"1AS ","val":"ascending","role":"order"},{"N":"str","sType":"1AS ","val":"en","role":"lang"},{"N":"str","sType":"1AS ","val":"#default","role":"caseOrder"},{"N":"str","sType":"1AS ","val":"true","role":"stable"}]}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}CreatingCorporation","sType":"*NA nQ{}CreatingCorporation","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"424"},{"N":"elem","name":"dc:creator","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}creator ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"425","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"426","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}CreatingCorporation","name":"attribute","nodeTest":"*NA nQ{}CreatingCorporation","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"426"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"applyT","sType":"* ","line":"431","mode":"Q{}oai_dc","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","sType":"*NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"431"}]},{"N":"applyT","sType":"* ","line":"432","mode":"Q{}oai_dc","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Collection,NE nQ{http://www.w3.org/1999/xhtml}Collection]","sType":"*NE u[NE nQ{}Collection,NE nQ{http://www.w3.org/1999/xhtml}Collection]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"432"}]},{"N":"applyT","sType":"* ","line":"434","mode":"Q{}oai_dc","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","sType":"*NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"434"}]},{"N":"applyT","sType":"* ","line":"436","mode":"Q{}oai_dc","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","sType":"*NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"436"}]},{"N":"elem","name":"dc:publisher","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}publisher ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"438","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"440","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}CreatingCorporation","name":"attribute","nodeTest":"*NA nQ{}CreatingCorporation","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"440"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"applyT","sType":"* ","line":"444","mode":"Q{}oai_dc","bSlot":"2","C":[{"N":"sort","role":"select","sType":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","sType":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"444"},{"N":"sortKey","sType":"?A ","C":[{"N":"check","card":"?","sType":"?A ","diag":"2|0|XTTE1020|sort","role":"select","C":[{"N":"data","sType":"*A ","role":"select","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}SortOrder","sType":"*NA nQ{}SortOrder","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"445"}]}]},{"N":"str","sType":"1AS ","val":"ascending","role":"order"},{"N":"str","sType":"1AS ","val":"en","role":"lang"},{"N":"str","sType":"1AS ","val":"#default","role":"caseOrder"},{"N":"str","sType":"1AS ","val":"true","role":"stable"}]}]}]},{"N":"callT","bSlot":"3","sType":"* ","name":"Q{}RdrDate","line":"448"},{"N":"applyT","sType":"* ","line":"450","mode":"Q{}oai_dc","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]","sType":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"450"}]},{"N":"elem","name":"dc:type","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}type ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"452","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Dataset"}]}]},{"N":"elem","name":"dc:type","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}type ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"453","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"doc-type:ResearchData"}]}]},{"N":"applyT","sType":"* ","line":"457","mode":"Q{}oai_dc","bSlot":"2","C":[{"N":"docOrder","sType":"*NA nQ{}MimeType","role":"select","line":"457","C":[{"N":"slash","op":"/","sType":"*NA nQ{}MimeType","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}MimeType"}]}]}]},{"N":"applyT","sType":"* ","line":"459","mode":"Q{}oai_dc","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]","sType":"*NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"459"}]},{"N":"elem","name":"dc:identifier","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}identifier ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"464","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"465","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"465","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}landingpage"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"applyT","sType":"* ","line":"471","mode":"Q{}oai_dc","bSlot":"2","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Language","sType":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"471"}]},{"N":"choose","sType":"* ","line":"473","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"473"},{"N":"applyT","sType":"* ","line":"474","mode":"Q{}oai_dc","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"474"}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"applyT","sType":"* ","line":"476","mode":"Q{}oai_dc","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","sType":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"476"}]},{"N":"applyT","sType":"* ","line":"478","mode":"Q{}oai_dc","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","sType":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"478"}]},{"N":"applyT","sType":"* ","line":"480","mode":"Q{}oai_dc","bSlot":"2","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","sType":"*NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","role":"select","line":"480"}]},{"N":"choose","sType":"? ","line":"481","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ xsi=~ ","line":"481","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"gc","op":"<","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}unixTimestamp","bSlot":"1"}]},{"N":"data","diag":"1|1||gc","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}UnixTimestamp"}]}]}]}]},{"N":"elem","name":"dc:rights","sType":"1NE nQ{http://purl.org/dc/elements/1.1/}rights ","nsuri":"http://purl.org/dc/elements/1.1/","namespaces":"=http://www.openarchives.org/OAI/2.0/ xsi=http://www.w3.org/2001/XMLSchema-instance dc=http://purl.org/dc/elements/1.1/ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/","line":"482","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"embargo"}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}citation","line":"485"}]}]}]}]}]},{"N":"overridden"},{"N":"output","C":[{"N":"property","name":"Q{http://saxon.sf.net/}stylesheet-version","value":"30"},{"N":"property","name":"method","value":"xml"},{"N":"property","name":"encoding","value":"utf-8"},{"N":"property","name":"indent","value":"yes"}]},{"N":"decimalFormat"}],"Σ":"7413a153"} \ No newline at end of file diff --git a/public/assets2/doi_datacite.sef.json b/public/assets2/doi_datacite.sef.json new file mode 100644 index 0000000..8a074a6 --- /dev/null +++ b/public/assets2/doi_datacite.sef.json @@ -0,0 +1 @@ +{"N":"package","version":"30","packageVersion":"1","saxonVersion":"SaxonJS 2.6","target":"JS","targetVersion":"2","name":"TOP-LEVEL","relocatable":"false","buildDateTime":"2024-01-24T15:02:04.209+01:00","ns":"xml=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","C":[{"N":"co","id":"0","uniform":"true","binds":"3","C":[{"N":"template","flags":"os","module":"doi_datacite.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","name":"Q{}RdrDate2","line":"152","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","expand-text":"false","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"choose","sType":"? ","line":"153","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"153","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"gc","op":"<","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"gVarRef","name":"Q{}unixTimestamp","bSlot":"0"}]},{"N":"data","diag":"1|1||gc","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}UnixTimestamp"}]}]}]}]},{"N":"elem","name":"date","sType":"1NE nQ{http://datacite.org/schema/kernel-4}date ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"154","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"dateType","sType":"1NA ","line":"155","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Available"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"let","var":"Q{}embargoDate","slot":"0","sType":"*NT ","line":"160","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"160","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"161","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}embargoDate","slot":"0","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"161"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"164","C":[{"N":"docOrder","sType":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]","line":"164","C":[{"N":"slash","role":"select","simple":"1","sType":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]","sType":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "}]}]},{"N":"elem","name":"date","sType":"1NE nQ{http://datacite.org/schema/kernel-4}date ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"165","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"dateType","sType":"1NA ","line":"166","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Created"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"let","var":"Q{}createdAt","slot":"0","sType":"*NT ","line":"171","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"171","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Month"}]}]}]}]},{"N":"str","val":"00"}]},{"N":"str","val":"-"},{"N":"fn","name":"format-number","C":[{"N":"fn","name":"number","C":[{"N":"check","card":"?","diag":"0|0||number","C":[{"N":"data","diag":"0|0||number","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}CreatedAt,NE nQ{http://www.w3.org/1999/xhtml}CreatedAt]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Day"}]}]}]}]},{"N":"str","val":"00"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"172","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}createdAt","slot":"0","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"172"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"co","binds":"","id":"1","uniform":"true","C":[{"N":"template","flags":"os","module":"doi_datacite.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","name":"Q{}CamelCaseWord","line":"229","expand-text":"false","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"param","name":"Q{}text","slot":"0","sType":"* ","as":"* ","flags":"","line":"230","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"0","sType":"* "}]},{"N":"param","name":"Q{}firstLower","slot":"1","sType":"* ","as":"* ","flags":"","line":"231","C":[{"N":"true","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"231"},{"N":"supplied","role":"conversion","slot":"1","sType":"* "}]},{"N":"let","var":"Q{}Upper","slot":"2","sType":"*NT ","line":"232","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","role":"select","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"ABCDEFGHIJKLMNOPQRSTUVQXYZ"}]}]},{"N":"let","var":"Q{}Lower","slot":"3","sType":"*NT ","line":"233","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","role":"select","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"abcdefghijklmnopqrstuvwxyz"}]}]},{"N":"forEach","sType":"*NT ","line":"234","C":[{"N":"fn","name":"tokenize","sType":"*AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"234","C":[{"N":"treat","as":"AS","diag":"0|0||tokenize","C":[{"N":"check","card":"?","diag":"0|0||tokenize","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||tokenize","C":[{"N":"check","card":"?","diag":"0|0||tokenize","C":[{"N":"data","diag":"0|0||tokenize","C":[{"N":"varRef","name":"Q{}text","slot":"0"}]}]}]}]}]},{"N":"str","val":"_"}]},{"N":"sequence","sType":"*NT ","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"235","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"236","C":[{"N":"compareToInt","op":"eq","val":"1","C":[{"N":"fn","name":"position"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"varRef","name":"Q{}firstLower","slot":"1"}]},{"N":"true"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"237","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"substring","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"237","C":[{"N":"dot"},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"240","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"translate","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"240","C":[{"N":"fn","name":"substring","C":[{"N":"dot"},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]}]},{"N":"treat","as":"AS","diag":"0|1||translate","C":[{"N":"check","card":"1","diag":"0|1||translate","C":[{"N":"cvUntyped","to":"AS","diag":"0|1||translate","C":[{"N":"check","card":"1","diag":"0|1||translate","C":[{"N":"data","diag":"0|1||translate","C":[{"N":"varRef","name":"Q{}Lower","slot":"3"}]}]}]}]}]},{"N":"treat","as":"AS","diag":"0|2||translate","C":[{"N":"check","card":"1","diag":"0|2||translate","C":[{"N":"cvUntyped","to":"AS","diag":"0|2||translate","C":[{"N":"check","card":"1","diag":"0|2||translate","C":[{"N":"data","diag":"0|2||translate","C":[{"N":"varRef","name":"Q{}Upper","slot":"2"}]}]}]}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"243","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"substring","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"243","C":[{"N":"dot"},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"2"}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"fn","name":"string-length","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"2","uniform":"true","C":[{"N":"template","flags":"os","module":"doi_datacite.xslt","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","name":"Q{}AlternateIdentifier","line":"312","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","expand-text":"false","sType":"1NE nQ{http://datacite.org/schema/kernel-4}alternateIdentifier ","C":[{"N":"elem","name":"alternateIdentifier","sType":"1NE nQ{http://datacite.org/schema/kernel-4}alternateIdentifier ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"body","line":"313","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"alternateIdentifierType","sType":"1NA ","line":"314","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"url"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"318","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}landingpage","role":"select","line":"318","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}landingpage","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}landingpage","sType":"*NA nQ{}landingpage","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"co","binds":"","id":"3","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}unixTimestamp","sType":"* ","slots":"200","module":"doi_datacite.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","as":"","ns":"xml=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"4","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}prefix","sType":"* ","slots":"200","module":"doi_datacite.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","as":"","ns":"xml=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","binds":"","id":"5","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalParam","name":"Q{}repIdentifier","sType":"* ","slots":"200","module":"doi_datacite.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","as":"","ns":"xml=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","C":[{"N":"str","sType":"1AS ","val":"","role":"select"}]}]},{"N":"co","id":"6","binds":"7 4 5 0 2","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","prec":"","C":[{"N":"templateRule","rank":"0","prec":"0","seq":"0","ns":"xml=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","line":"43","module":"doi_datacite.xslt","expand-text":"false","match":"Rdr_Dataset","prio":"0","matches":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","sType":"1NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"resource","sType":"1NE nQ{http://datacite.org/schema/kernel-4}resource ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","ns":"xml=~ xsi=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"45","C":[{"N":"sequence","ns":"xml=~ xsi=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","sType":"* ","C":[{"N":"att","name":"xsi:schemaLocation","nsuri":"http://www.w3.org/2001/XMLSchema-instance","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4.3/metadata.xsd"}]},{"N":"choose","sType":"* ","type":"item()*","line":"49","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","line":"50"},{"N":"applyT","sType":"* ","line":"51","mode":"Q{}oai_datacite","bSlot":"0","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"51"}]},{"N":"true"},{"N":"elem","name":"identifier","sType":"1NE nQ{http://datacite.org/schema/kernel-4}identifier ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"54","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"identifierType","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"DOI"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"55","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}prefix","bSlot":"1","role":"select","line":"55"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"/"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"57","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"* ","name":"Q{}repIdentifier","bSlot":"2","role":"select","line":"57"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"."}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"59","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}PublishId","name":"attribute","nodeTest":"*NA nQ{}PublishId","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"59"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"elem","name":"creators","sType":"1NE nQ{http://datacite.org/schema/kernel-4}creators ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"65","C":[{"N":"applyT","sType":"* ","line":"66","mode":"Q{}oai_datacite","bSlot":"0","C":[{"N":"sort","role":"select","sType":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","sType":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"66"},{"N":"sortKey","sType":"?A ","C":[{"N":"check","card":"?","sType":"?A ","diag":"2|0|XTTE1020|sort","role":"select","C":[{"N":"data","sType":"*A ","role":"select","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}SortOrder","sType":"*NA nQ{}SortOrder","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"67"}]}]},{"N":"str","sType":"1AS ","val":"ascending","role":"order"},{"N":"str","sType":"1AS ","val":"en","role":"lang"},{"N":"str","sType":"1AS ","val":"#default","role":"caseOrder"},{"N":"str","sType":"1AS ","val":"true","role":"stable"}]}]}]}]},{"N":"elem","name":"titles","sType":"1NE nQ{http://datacite.org/schema/kernel-4}titles ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"70","C":[{"N":"sequence","sType":"* ","C":[{"N":"applyT","sType":"* ","line":"71","mode":"Q{}oai_datacite","bSlot":"0","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","sType":"*NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"71"}]},{"N":"applyT","sType":"* ","line":"72","mode":"Q{}oai_datacite","bSlot":"0","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","sType":"*NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"72"}]}]}]},{"N":"elem","name":"publisher","sType":"1NE nQ{http://datacite.org/schema/kernel-4}publisher ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"74","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"76","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}CreatingCorporation","name":"attribute","nodeTest":"*NA nQ{}CreatingCorporation","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"76"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"publicationYear","sType":"1NE nQ{http://datacite.org/schema/kernel-4}publicationYear ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"78","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"79","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}Year","role":"select","line":"79","C":[{"N":"slash","op":"/","sType":"*NA nQ{}Year","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"subjects","sType":"1NE nQ{http://datacite.org/schema/kernel-4}subjects ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"81","C":[{"N":"applyT","sType":"* ","line":"82","mode":"Q{}oai_datacite","bSlot":"0","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","sType":"*NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"82"}]}]},{"N":"elem","name":"language","sType":"1NE nQ{http://datacite.org/schema/kernel-4}language ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"84","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"85","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"85"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"87","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","sType":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","line":"87"},{"N":"elem","name":"contributors","sType":"1NE nQ{http://datacite.org/schema/kernel-4}contributors ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"88","C":[{"N":"applyT","sType":"* ","line":"89","mode":"Q{}oai_datacite","bSlot":"0","C":[{"N":"sort","role":"select","sType":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","sType":"*NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"89"},{"N":"sortKey","sType":"?A ","C":[{"N":"check","card":"?","sType":"?A ","diag":"2|0|XTTE1020|sort","role":"select","C":[{"N":"data","sType":"*A ","role":"select","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}SortOrder","sType":"*NA nQ{}SortOrder","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"90"}]}]},{"N":"str","sType":"1AS ","val":"ascending","role":"order"},{"N":"str","sType":"1AS ","val":"en","role":"lang"},{"N":"str","sType":"1AS ","val":"#default","role":"caseOrder"},{"N":"str","sType":"1AS ","val":"true","role":"stable"}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"dates","sType":"1NE nQ{http://datacite.org/schema/kernel-4}dates ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"94","C":[{"N":"callT","bSlot":"3","sType":"* ","name":"Q{}RdrDate2","line":"95"}]},{"N":"elem","name":"version","sType":"1NE nQ{http://datacite.org/schema/kernel-4}version ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"97","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"98","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Version","sType":"*NA nQ{}Version","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","line":"99"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"100","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Version","name":"attribute","nodeTest":"*NA nQ{}Version","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"100"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"1"}]}]}]},{"N":"elem","name":"resourceType","sType":"1NE nQ{http://datacite.org/schema/kernel-4}resourceType ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"107","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"resourceTypeGeneral","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"Dataset"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Dataset"}]}]}]},{"N":"elem","name":"alternateIdentifiers","sType":"1NE nQ{http://datacite.org/schema/kernel-4}alternateIdentifiers ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"112","C":[{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}AlternateIdentifier","line":"113"}]},{"N":"choose","sType":"? ","line":"116","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","sType":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","line":"116"},{"N":"elem","name":"relatedIdentifiers","sType":"1NE nQ{http://datacite.org/schema/kernel-4}relatedIdentifiers ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"117","C":[{"N":"applyT","sType":"* ","line":"118","mode":"Q{}oai_datacite","bSlot":"0","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","sType":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"118"}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"rightsList","sType":"1NE nQ{http://datacite.org/schema/kernel-4}rightsList ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"121","C":[{"N":"applyT","sType":"* ","line":"122","mode":"Q{}oai_datacite","bSlot":"0","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","sType":"*NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"122"}]}]},{"N":"elem","name":"sizes","sType":"1NE nQ{http://datacite.org/schema/kernel-4}sizes ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"124","C":[{"N":"elem","name":"size","sType":"1NE nQ{http://datacite.org/schema/kernel-4}size ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"125","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"126","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"fn","sType":"1ADI","name":"count","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"126","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" datasets"}]}]}]}]},{"N":"elem","name":"formats","sType":"1NE nQ{http://datacite.org/schema/kernel-4}formats ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"130","C":[{"N":"applyT","sType":"* ","line":"131","mode":"Q{}oai_datacite","bSlot":"0","C":[{"N":"docOrder","sType":"*NA nQ{}MimeType","role":"select","line":"131","C":[{"N":"slash","op":"/","sType":"*NA nQ{}MimeType","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}MimeType"}]}]}]}]},{"N":"elem","name":"descriptions","sType":"1NE nQ{http://datacite.org/schema/kernel-4}descriptions ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"133","C":[{"N":"sequence","sType":"* ","C":[{"N":"applyT","sType":"* ","line":"134","mode":"Q{}oai_datacite","bSlot":"0","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","sType":"*NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"134"}]},{"N":"applyT","sType":"* ","line":"135","mode":"Q{}oai_datacite","bSlot":"0","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","sType":"*NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"135"}]}]}]},{"N":"elem","name":"geoLocations","sType":"1NE nQ{http://datacite.org/schema/kernel-4}geoLocations ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"137","C":[{"N":"applyT","sType":"* ","line":"138","mode":"Q{}oai_datacite","bSlot":"0","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","sType":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","ns":"= xml=~ fn=~ xsi=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ ","role":"select","line":"138"}]}]}]}]}]}]}]},{"N":"co","id":"7","binds":"1","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}oai_datacite","prec":"","C":[{"N":"templateRule","rank":"0","prec":"0","seq":"12","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","line":"405","module":"doi_datacite.xslt","expand-text":"false","match":"File/@MimeType","prio":"0.5","matches":"NA nQ{}MimeType","C":[{"N":"p.withUpper","role":"match","axis":"parent","sType":"1NA nQ{}MimeType","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","C":[{"N":"p.nodeTest","test":"NA nQ{}MimeType"},{"N":"p.nodeTest","test":"NE u[NE nQ{}File,NE nQ{http://www.w3.org/1999/xhtml}File]"}]},{"N":"elem","name":"format","sType":"1NE nQ{http://datacite.org/schema/kernel-4}format ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"406","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"407","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"dot","sType":"1NA nQ{}MimeType","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"407"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"templateRule","rank":"1","prec":"0","seq":"13","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","line":"412","module":"doi_datacite.xslt","expand-text":"false","match":"Licence","prio":"0","matches":"NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","sType":"1NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"sequence","role":"action","sType":"* ","C":[{"N":"elem","name":"rights","sType":"1NE nQ{http://datacite.org/schema/kernel-4}rights ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"413","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"414","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"415","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"415"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"choose","sType":"? ","line":"417","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"417","C":[{"N":"attVal","name":"Q{}LinkLicence"},{"N":"str","val":""}]},{"N":"att","name":"rightsURI","sType":"1NA ","line":"418","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"419","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LinkLicence","name":"attribute","nodeTest":"*NA nQ{}LinkLicence","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"419"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"att","name":"schemeURI","sType":"1NA ","line":"422","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"https://spdx.org/licenses/"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"rightsIdentifierScheme","sType":"1NA ","line":"425","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"SPDX"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"rightsIdentifier","sType":"1NA ","line":"428","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"429","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Name","name":"attribute","nodeTest":"*NA nQ{}Name","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"429"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"431","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}NameLong","name":"attribute","nodeTest":"*NA nQ{}NameLong","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"431"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"choose","sType":"? ","line":"433","C":[{"N":"or","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"433","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Name"},{"N":"str","val":"CC-BY-4.0"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Name"},{"N":"str","val":"CC-BY-SA-4.0"}]}]},{"N":"elem","name":"rights","sType":"1NE nQ{http://datacite.org/schema/kernel-4}rights ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"434","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"rightsURI","sType":"1NA ","line":"435","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"info:eu-repo/semantics/openAccess"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Open Access"}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"templateRule","rank":"2","prec":"0","seq":"11","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","line":"355","module":"doi_datacite.xslt","expand-text":"false","match":"PersonAuthor","prio":"0","matches":"NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","sType":"1NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"creator","sType":"1NE nQ{http://datacite.org/schema/kernel-4}creator ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"356","C":[{"N":"sequence","sType":"* ","C":[{"N":"elem","name":"creatorName","sType":"1NE nQ{http://datacite.org/schema/kernel-4}creatorName ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"357","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"358","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"358","C":[{"N":"attVal","name":"Q{}NameType"},{"N":"str","val":""}]},{"N":"att","name":"nameType","sType":"1NA ","line":"359","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"360","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}NameType","name":"attribute","nodeTest":"*NA nQ{}NameType","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"360"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"363","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LastName","name":"attribute","nodeTest":"*NA nQ{}LastName","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"363"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"? ","line":"364","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"364","C":[{"N":"attVal","name":"Q{}FirstName"},{"N":"str","val":""}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":", "}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"367","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}FirstName","name":"attribute","nodeTest":"*NA nQ{}FirstName","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"367"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"choose","sType":"* ","line":"368","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"368","C":[{"N":"attVal","name":"Q{}AcademicTitle"},{"N":"str","val":""}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" ("}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"370","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}AcademicTitle","name":"attribute","nodeTest":"*NA nQ{}AcademicTitle","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"370"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":")"}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"choose","sType":"* ","line":"375","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"375","C":[{"N":"attVal","name":"Q{}NameType"},{"N":"str","val":"Personal"}]},{"N":"sequence","sType":"* ","C":[{"N":"elem","name":"givenName","sType":"1NE nQ{http://datacite.org/schema/kernel-4}givenName ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"376","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"377","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}FirstName","name":"attribute","nodeTest":"*NA nQ{}FirstName","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"377"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"familyName","sType":"1NE nQ{http://datacite.org/schema/kernel-4}familyName ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"379","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"380","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LastName","name":"attribute","nodeTest":"*NA nQ{}LastName","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"380"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"382","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"382","C":[{"N":"attVal","name":"Q{}IdentifierOrcid"},{"N":"str","val":""}]},{"N":"elem","name":"nameIdentifier","sType":"1NE nQ{http://datacite.org/schema/kernel-4}nameIdentifier ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"383","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"schemeURI","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://orcid.org/"}]},{"N":"att","name":"nameIdentifierScheme","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"ORCID"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"384","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}IdentifierOrcid","name":"attribute","nodeTest":"*NA nQ{}IdentifierOrcid","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"384"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"affiliation","sType":"1NE nQ{http://datacite.org/schema/kernel-4}affiliation ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"387","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"GBA"}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"390","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"390","C":[{"N":"attVal","name":"Q{}NameType"},{"N":"str","val":"Organizational"}]},{"N":"choose","sType":"? ","line":"391","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"391","C":[{"N":"attVal","name":"Q{}IdentifierOrcid"},{"N":"str","val":""}]},{"N":"elem","name":"nameIdentifier","sType":"1NE nQ{http://datacite.org/schema/kernel-4}nameIdentifier ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"392","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"schemeURI","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"http://orcid.org/"}]},{"N":"att","name":"nameIdentifierScheme","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"ORCID"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"393","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}IdentifierOrcid","name":"attribute","nodeTest":"*NA nQ{}IdentifierOrcid","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"393"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"templateRule","rank":"3","prec":"0","seq":"10","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","line":"336","module":"doi_datacite.xslt","expand-text":"false","match":"PersonContributor","prio":"0","matches":"NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","sType":"1NE u[NE nQ{}PersonContributor,NE nQ{http://www.w3.org/1999/xhtml}PersonContributor]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"contributor","sType":"1NE nQ{http://datacite.org/schema/kernel-4}contributor ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"337","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"338","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"338","C":[{"N":"attVal","name":"Q{}ContributorType"},{"N":"str","val":""}]},{"N":"att","name":"contributorType","sType":"1NA ","line":"339","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"340","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}ContributorType","name":"attribute","nodeTest":"*NA nQ{}ContributorType","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"340"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"contributorName","sType":"1NE nQ{http://datacite.org/schema/kernel-4}contributorName ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"343","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"349","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"349","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"attVal","name":"Q{}FirstName"}]},{"N":"str","val":" "},{"N":"check","card":"?","diag":"0|2||concat","C":[{"N":"attVal","name":"Q{}LastName"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"templateRule","rank":"4","prec":"0","seq":"9","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","line":"323","module":"doi_datacite.xslt","expand-text":"false","match":"Reference","prio":"0","matches":"NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","sType":"1NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"relatedIdentifier","sType":"1NE nQ{http://datacite.org/schema/kernel-4}relatedIdentifier ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"324","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"relatedIdentifierType","sType":"1NA ","line":"325","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"326","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Type","name":"attribute","nodeTest":"*NA nQ{}Type","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"326"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"relationType","sType":"1NA ","line":"328","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"329","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Relation","name":"attribute","nodeTest":"*NA nQ{}Relation","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"329"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"331","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"331"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"5","prec":"0","seq":"8","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","line":"312","module":"doi_datacite.xslt","expand-text":"false","match":"AlternateIdentifier","prio":"0","matches":"NE u[NE nQ{}AlternateIdentifier,NE nQ{http://www.w3.org/1999/xhtml}AlternateIdentifier]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}AlternateIdentifier,NE nQ{http://www.w3.org/1999/xhtml}AlternateIdentifier]","sType":"1NE u[NE nQ{}AlternateIdentifier,NE nQ{http://www.w3.org/1999/xhtml}AlternateIdentifier]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"alternateIdentifier","sType":"1NE nQ{http://datacite.org/schema/kernel-4}alternateIdentifier ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"313","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"alternateIdentifierType","sType":"1NA ","line":"314","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"url"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"318","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}landingpage","name":"attribute","nodeTest":"*NA nQ{}landingpage","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"318"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"6","prec":"0","seq":"7","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","line":"300","module":"doi_datacite.xslt","expand-text":"false","match":"Subject","prio":"0","matches":"NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","sType":"1NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"subject","sType":"1NE nQ{http://datacite.org/schema/kernel-4}subject ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"301","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"302","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"302","C":[{"N":"attVal","name":"Q{}Language"},{"N":"str","val":""}]},{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"303","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"304","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"304"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"307","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"307"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"7","prec":"0","seq":"6","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","line":"274","module":"doi_datacite.xslt","expand-text":"false","match":"TitleAdditional","prio":"0","matches":"NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","sType":"1NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"title","sType":"1NE nQ{http://datacite.org/schema/kernel-4}title ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"275","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"276","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"276","C":[{"N":"attVal","name":"Q{}Language"},{"N":"str","val":""}]},{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"277","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"278","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"278"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","type":"item()*","line":"281","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"282","C":[{"N":"and","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":""}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Sub"}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Main"}]}]},{"N":"att","name":"titleType","sType":"1NA ","line":"283","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"284","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Type","name":"attribute","nodeTest":"*NA nQ{}Type","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"284"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Title"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"288","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Sub"}]},{"N":"att","name":"titleType","sType":"1NA ","line":"289","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"290","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Type","name":"attribute","nodeTest":"*NA nQ{}Type","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"290"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"title"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"295","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"295"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"8","prec":"0","seq":"5","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","line":"258","module":"doi_datacite.xslt","expand-text":"false","match":"TitleMain","prio":"0","matches":"NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","sType":"1NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"title","sType":"1NE nQ{http://datacite.org/schema/kernel-4}title ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"259","C":[{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"? ","line":"260","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"260","C":[{"N":"attVal","name":"Q{}Language"},{"N":"str","val":""}]},{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"261","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"262","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"262"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"265","C":[{"N":"and","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"265","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":""}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Main"}]}]},{"N":"att","name":"titleType","sType":"1NA ","line":"266","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"267","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Type","name":"attribute","nodeTest":"*NA nQ{}Type","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"267"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"270","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"270"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"9","prec":"0","seq":"4","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","line":"248","module":"doi_datacite.xslt","expand-text":"false","match":"Identifier","prio":"0","matches":"NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"1NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"identifier","sType":"1NE nQ{http://datacite.org/schema/kernel-4}identifier ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"249","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"identifierType","sType":"1NA ","line":"250","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"DOI"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"253","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"253"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"10","prec":"0","seq":"3","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","line":"213","module":"doi_datacite.xslt","expand-text":"false","match":"TitleAbstractAdditional","prio":"0","matches":"NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","sType":"1NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"description","sType":"1NE nQ{http://datacite.org/schema/kernel-4}description ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"214","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"215","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"216","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"216"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"choose","sType":"? ","line":"218","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"218","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":""}]},{"N":"att","name":"descriptionType","sType":"1NA ","line":"219","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"callT","sType":"* ","bSlot":"0","name":"Q{}CamelCaseWord","line":"220","C":[{"N":"withParam","name":"Q{}text","slot":"0","sType":"*NA nQ{}Type","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Type","sType":"*NA nQ{}Type","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"221"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"225","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"225"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"11","prec":"0","seq":"2","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","line":"198","module":"doi_datacite.xslt","expand-text":"false","match":"TitleAbstract","prio":"0","matches":"NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","sType":"1NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"description","sType":"1NE nQ{http://datacite.org/schema/kernel-4}description ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"199","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"xml:lang","sType":"1NA ","nsuri":"http://www.w3.org/XML/1998/namespace","line":"200","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"201","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Language","name":"attribute","nodeTest":"*NA nQ{}Language","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"201"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"choose","sType":"? ","line":"203","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","line":"203","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":""}]},{"N":"att","name":"descriptionType","sType":"1NA ","line":"204","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Abstract"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"209","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"209"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"templateRule","rank":"12","prec":"0","seq":"1","ns":"xml=~ =http://datacite.org/schema/kernel-4 xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/doi_datacite.xslt","line":"178","module":"doi_datacite.xslt","expand-text":"false","match":"Coverage","prio":"0","matches":"NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","sType":"1NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ "},{"N":"elem","name":"geoLocation","sType":"1NE nQ{http://datacite.org/schema/kernel-4}geoLocation ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","role":"action","line":"179","C":[{"N":"elem","name":"geoLocationBox","sType":"1NE nQ{http://datacite.org/schema/kernel-4}geoLocationBox ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"180","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"westBoundLongitude","sType":"1NE nQ{http://datacite.org/schema/kernel-4}westBoundLongitude ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"181","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"182","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}XMin","name":"attribute","nodeTest":"*NA nQ{}XMin","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"182"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"eastBoundLongitude","sType":"1NE nQ{http://datacite.org/schema/kernel-4}eastBoundLongitude ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"184","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"185","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}XMax","name":"attribute","nodeTest":"*NA nQ{}XMax","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"185"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"southBoundLatitude","sType":"1NE nQ{http://datacite.org/schema/kernel-4}southBoundLatitude ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"187","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"188","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}YMin","name":"attribute","nodeTest":"*NA nQ{}YMin","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"188"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"northBoundLatitude","sType":"1NE nQ{http://datacite.org/schema/kernel-4}northBoundLatitude ","nsuri":"http://datacite.org/schema/kernel-4","namespaces":"=http://datacite.org/schema/kernel-4 xsi=http://www.w3.org/2001/XMLSchema-instance oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/","line":"190","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"191","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}YMax","name":"attribute","nodeTest":"*NA nQ{}YMax","ns":"= xml=~ fn=~ xsl=~ oai_dc=http://www.openarchives.org/OAI/2.0/oai_dc/ dc=http://purl.org/dc/elements/1.1/ xsi=~ ","role":"select","line":"191"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]},{"N":"overridden"},{"N":"output","C":[{"N":"property","name":"Q{http://saxon.sf.net/}stylesheet-version","value":"30"},{"N":"property","name":"method","value":"xml"},{"N":"property","name":"encoding","value":"utf-8"},{"N":"property","name":"indent","value":"yes"}]},{"N":"decimalFormat"}],"Σ":"9daa8d0b"} \ No newline at end of file diff --git a/public/assets2/doi_datacite.xslt b/public/assets2/doi_datacite.xslt new file mode 100644 index 0000000..7ae5fab --- /dev/null +++ b/public/assets2/doi_datacite.xslt @@ -0,0 +1,443 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + /** + * This file is part of TETHYS. + * + * LICENCE + * TETHYS is free software; you can redistribute it and/or modify it under the + * terms of the GNU General Public License as published by the Free Software + * Foundation; either version 2 of the Licence, or any later version. + * OPUS is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. You should have received a copy of the GNU General Public License + * along with OPUS; if not, write to the Free Software Foundation, Inc., 51 + * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * @category Application + * @package Module_Oai + * @author Arno Kaimbacher <arno.kaimbacher@geologie.ac.at> + * @copyright Copyright (c) 2018-2019, GBA TETHYS development team + * @license http://www.gnu.org/licenses/gpl.html General Public License + */ +--> + +<!-- + /** + * Transforms the xml representation of an TETHYS model dataset to datacite + * xml as required by the OAI-PMH protocol. + */ +--> +<xsl:stylesheet version="3.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <xsl:output method="xml" encoding="utf-8" indent="yes" /> + + <xsl:param name="unixTimestamp" /> + <xsl:param name="prefix" /> + <xsl:param name="repIdentifier" /> + + <xsl:template match="Rdr_Dataset"> + <resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns="http://datacite.org/schema/kernel-4" xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4.3/metadata.xsd"> + <!-- <isReferenceQuality>true</isReferenceQuality> + <schemaVersion>4.3</schemaVersion> + <datacentreSymbol>RDR.GBA</datacentreSymbol> --> + <xsl:choose> + <xsl:when test="Identifier"> + <xsl:apply-templates select="Identifier" mode="oai_datacite" /> + </xsl:when> + <xsl:otherwise> + <identifier identifierType="DOI"> + <xsl:value-of select="$prefix" /> + <xsl:text>/</xsl:text> + <xsl:value-of select="$repIdentifier" /> + <xsl:text>.</xsl:text> + <xsl:value-of select="@PublishId" /> + </identifier> + </xsl:otherwise> + </xsl:choose> + + <!--<datacite:creator>--> + <creators> + <xsl:apply-templates select="PersonAuthor" mode="oai_datacite"> + <xsl:sort select="@SortOrder"/> + </xsl:apply-templates> + </creators> + <titles> + <xsl:apply-templates select="TitleMain" mode="oai_datacite" /> + <xsl:apply-templates select="TitleAdditional" mode="oai_datacite" /> + </titles> + <publisher> + <!-- <xsl:value-of select="@PublisherName" /> --> + <xsl:value-of select="@CreatingCorporation" /> + </publisher> + <publicationYear> + <xsl:value-of select="ServerDatePublished/@Year" /> + </publicationYear> + <subjects> + <xsl:apply-templates select="Subject" mode="oai_datacite" /> + </subjects> + <language> + <xsl:value-of select="@Language" /> + </language> + <xsl:if test="PersonContributor"> + <contributors> + <xsl:apply-templates select="PersonContributor" mode="oai_datacite"> + <xsl:sort select="@SortOrder"/> + </xsl:apply-templates> + </contributors> + </xsl:if> + <dates> + <xsl:call-template name="RdrDate2" /> + </dates> + <version> + <xsl:choose> + <xsl:when test="@Version"> + <xsl:value-of select="@Version" /> + </xsl:when> + <xsl:otherwise> + <xsl:text>1</xsl:text> + </xsl:otherwise> + </xsl:choose> + </version> + <resourceType resourceTypeGeneral="Dataset"> + <xsl:text>Dataset</xsl:text> + <!-- <xsl:value-of select="@Type" /> --> + </resourceType> + + <alternateIdentifiers> + <xsl:call-template name="AlternateIdentifier" /> + </alternateIdentifiers> + + <xsl:if test="Reference"> + <relatedIdentifiers> + <xsl:apply-templates select="Reference" mode="oai_datacite" /> + </relatedIdentifiers> + </xsl:if> + <rightsList> + <xsl:apply-templates select="Licence" mode="oai_datacite" /> + </rightsList> + <sizes> + <size> + <xsl:value-of select="count(File)" /> + <xsl:text> datasets</xsl:text> + </size> + </sizes> + <formats> + <xsl:apply-templates select="File/@MimeType" mode="oai_datacite" /> + </formats> + <descriptions> + <xsl:apply-templates select="TitleAbstract" mode="oai_datacite" /> + <xsl:apply-templates select="TitleAbstractAdditional" mode="oai_datacite" /> + </descriptions> + <geoLocations> + <xsl:apply-templates select="Coverage" mode="oai_datacite" /> + <!-- <geoLocation> + <geoLocationBox> + <westBoundLongitude>6.58987</westBoundLongitude> + <eastBoundLongitude>6.83639</eastBoundLongitude> + <southBoundLatitude>50.16</southBoundLatitude> + <northBoundLatitude>50.18691</northBoundLatitude> + </geoLocationBox> + </geoLocation> --> + </geoLocations> + </resource> + </xsl:template> + + <xsl:template name="RdrDate2" + xmlns="http://datacite.org/schema/kernel-4"> + <xsl:if test="EmbargoDate and ($unixTimestamp < EmbargoDate/@UnixTimestamp)"> + <date> + <xsl:attribute name="dateType">Available</xsl:attribute> + <xsl:variable name="embargoDate" select="concat( + EmbargoDate/@Year, '-', + format-number(number(EmbargoDate/@Month),'00'), '-', + format-number(number(EmbargoDate/@Day),'00') + )" /> + <xsl:value-of select="$embargoDate" /> + </date> + </xsl:if> + <xsl:if test="CreatedAt"> + <date> + <xsl:attribute name="dateType">Created</xsl:attribute> + <xsl:variable name="createdAt" select="concat( + CreatedAt/@Year, '-', + format-number(number(CreatedAt/@Month),'00'), '-', + format-number(number(CreatedAt/@Day),'00') + )" /> + <xsl:value-of select="$createdAt" /> + </date> + </xsl:if> + </xsl:template> + + <xsl:template match="Coverage" mode="oai_datacite" + xmlns="http://datacite.org/schema/kernel-4"> + <geoLocation> + <geoLocationBox> + <westBoundLongitude> + <xsl:value-of select="@XMin" /> + </westBoundLongitude> + <eastBoundLongitude> + <xsl:value-of select="@XMax" /> + </eastBoundLongitude> + <southBoundLatitude> + <xsl:value-of select="@YMin" /> + </southBoundLatitude> + <northBoundLatitude> + <xsl:value-of select="@YMax" /> + </northBoundLatitude> + </geoLocationBox> + </geoLocation> + </xsl:template> + + <xsl:template match="TitleAbstract" mode="oai_datacite" + xmlns="http://datacite.org/schema/kernel-4"> + <description> + <xsl:attribute name="xml:lang"> + <xsl:value-of select="@Language" /> + </xsl:attribute> + <xsl:if test="@Type != ''"> + <xsl:attribute name="descriptionType"> + <!-- <xsl:value-of select="@Type" /> --> + <xsl:text>Abstract</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:value-of select="@Value" /> + </description> + </xsl:template> + <xsl:template match="TitleAbstractAdditional" mode="oai_datacite" + xmlns="http://datacite.org/schema/kernel-4"> + <description> + <xsl:attribute name="xml:lang"> + <xsl:value-of select="@Language" /> + </xsl:attribute> + <xsl:if test="@Type != ''"> + <xsl:attribute name="descriptionType"> + <xsl:call-template name="CamelCaseWord"> + <xsl:with-param name="text" select="@Type" /> + </xsl:call-template> + </xsl:attribute> + </xsl:if> + <xsl:value-of select="@Value" /> + </description> + </xsl:template> + + <xsl:template name="CamelCaseWord"> + <xsl:param name="text" /> + <xsl:param name="firstLower" select="true()" /> + <xsl:variable name="Upper">ABCDEFGHIJKLMNOPQRSTUVQXYZ</xsl:variable> + <xsl:variable name="Lower">abcdefghijklmnopqrstuvwxyz</xsl:variable> + <xsl:for-each select="tokenize($text,'_')"> + <xsl:choose> + <xsl:when test="position()=1 and $firstLower = true()"> + <xsl:value-of select="substring(.,1,1)" /> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="translate(substring(.,1,1),$Lower,$Upper)" /> + </xsl:otherwise> + </xsl:choose> + <xsl:value-of select="substring(.,2,string-length(.))" /> + </xsl:for-each> + </xsl:template> + + <xsl:template match="Identifier" mode="oai_datacite" + xmlns="http://datacite.org/schema/kernel-4"> + <identifier> + <xsl:attribute name="identifierType"> + <xsl:text>DOI</xsl:text> + </xsl:attribute> + <xsl:value-of select="@Value" /> + </identifier> + </xsl:template> + + <xsl:template match="TitleMain" mode="oai_datacite" + xmlns="http://datacite.org/schema/kernel-4"> + <title> + <xsl:if test="@Language != ''"> + <xsl:attribute name="xml:lang"> + <xsl:value-of select="@Language" /> + </xsl:attribute> + </xsl:if> + <xsl:if test="@Type != '' and @Type != 'Main'"> + <xsl:attribute name="titleType"> + <xsl:value-of select="@Type" /> + </xsl:attribute> + </xsl:if> + <xsl:value-of select="@Value" /> + + + + + <xsl:if test="@Language != ''"> + <xsl:attribute name="xml:lang"> + <xsl:value-of select="@Language" /> + </xsl:attribute> + </xsl:if> + <xsl:choose> + <xsl:when test="@Type != '' and @Type != 'Sub' and @Type != 'Main'"> + <xsl:attribute name="titleType"> + <xsl:value-of select="@Type" /> + <xsl:text>Title</xsl:text> + </xsl:attribute> + </xsl:when> + <xsl:when test="@Type = 'Sub'"> + <xsl:attribute name="titleType"> + <xsl:value-of select="@Type" /> + <xsl:text>title</xsl:text> + </xsl:attribute> + </xsl:when> + </xsl:choose> + <xsl:value-of select="@Value" /> + + + + + + + + + + + + + + + + + + url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + , + + + + ( + + ) + + + + + + + + + + + + + + + + GBA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + https://spdx.org/licenses/ + + + SPDX + + + + + + + + + + info:eu-repo/semantics/openAccess + + Open Access + + + + + \ No newline at end of file diff --git a/public/assets2/langCodeMap.xml b/public/assets2/langCodeMap.xml deleted file mode 100644 index c6c0fab..0000000 --- a/public/assets2/langCodeMap.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/public/assets2/oai_datacite.xslt b/public/assets2/oai_datacite.xslt index d5a85a2..5aedbae 100644 --- a/public/assets2/oai_datacite.xslt +++ b/public/assets2/oai_datacite.xslt @@ -158,7 +158,7 @@ - created + Created @@ -240,7 +239,6 @@ - @@ -376,13 +374,20 @@ + + + + + GBA - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { + "id": " + + ", + + + + + + + + + + + + + "year": " + + ", + + + + + "year_inverted": " + + ", + + + + + "server_date_published": " + + ", + + + + + "server_date_modified": " + + ", + + + + + "language": " + + ", + + + + "title": " + + ", + + "title_output": " + + ", + + + + + + + " + + + " + , + + + "abstract": [ + + ], + + + + + + + + " + + + , + + " + , + + + "author": [ + + ], + + + + + + + "doctype": " + + ", + + + + + " + + " + , + + + "subjects": [ + + ], + + + "belongs_to_bibliography": + + + true + + + false + + + , + + + + + + + + " + + " + + , + + + + "title_sub": [ + + ], + + + + + + " + + + " + + , + + + + "title_additional": [ + + ], + + + + + " + + " + + , + + + + "abstract_additional": [ + + ], + + + + "licence": " + + ", + + + + + "creating_corporation": " + + ", + + + + + "contributing_corporation": " + + ", + + + + + "publisher_name": " + + ", + + + + + "publisher_place": " + + ", + + + + + + + "geo_location": + "BBOX ( + + )", + + "bbox_xmin": + + , + "bbox_xmax": + + , + "bbox_ymin": + + , + "bbox_ymax": + + , + + + + + + + " + + " + + , + + + + "identifier": [ + + ], + + + + + " + + " + + , + + + + "reference": [ + + ] + + + + } + + + + + + + + + + + + + + + + fulltext + + + + + + + has_fulltext + + + + + + + fulltext_id_success + + + + + + + + fulltext_id_failure + + + + + + + + referee + + + + + + + + + + + persons + + + + + + + + + + + + + + + + + + + + + project + + + + app_area + + + + + + institute + + + + + + + collection_ids + + + + + + + + + + + + + + series_ids + + + + + + series_number_for_id_ + + + + + + + + doc_sort_order_for_seriesid_ + + + + + + + + + + + + + + + + + + geo_location + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/docs/PreservationPlanTethys.pdf b/public/docs/PreservationPlanTethys.pdf new file mode 100644 index 0000000..da2f0d3 Binary files /dev/null and b/public/docs/PreservationPlanTethys.pdf differ diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png new file mode 100644 index 0000000..c614e7d Binary files /dev/null and b/public/favicon-16x16.png differ diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png new file mode 100644 index 0000000..6886e7b Binary files /dev/null and b/public/favicon-32x32.png differ diff --git a/public/favicon-32x32.png:Zone.Identifier b/public/favicon-32x32.png:Zone.Identifier new file mode 100644 index 0000000..8bcdfdc --- /dev/null +++ b/public/favicon-32x32.png:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +HostUrl=https://sea1.geoinformation.dev/favicon-32x32.png diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100644 index e16f523..0000000 Binary files a/public/favicon.ico and /dev/null differ diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..eb81bca --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/records.json b/public/records.json new file mode 100644 index 0000000..5036550 --- /dev/null +++ b/public/records.json @@ -0,0 +1,143 @@ +{ + "settings": { + "analysis": { + "analyzer": { + "pathAnalyzer": { + "tokenizer": "pathTokenizer" + } + }, + "tokenizer": { + "pathTokenizer": { + "type": "path_hierarchy", + "delimiter": "/", + "replacement": "/", + "skip": 0, + "reverse": false + } + } + } + }, + "mappings": { + "properties": { + "id": { + "type": "keyword" + }, + "year": { + "type": "integer" + }, + "year_iverted": { + "type": "double" + }, + "server_date_published": { + "type": "double" + }, + "server_date_modified": { + "type": "double" + }, + "language": { + "type": "keyword" + }, + "title": { + "type": "text" + }, + "title_output": { + "type": "keyword", + "index": false + }, + "abstract": { + "type": "text" + }, + "abstract_output": { + "type": "keyword", + "index": false + }, + "author": { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "doctype": { + "type": "keyword" + }, + "subjects": { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "belongs_to_bibliography": { + "type": "boolean" + }, + "title_additional": { + "type": "text", + "index": false, + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "abstract_additional": { + "type": "text", + "index": false, + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "licence": { + "type": "text", + "index": false, + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "creating_corporation": { + "type": "text" + }, + "contributing_corporation": { + "type": "text" + }, + "publisher_name": { + "type": "text" + }, + "publisher_place": { + "type": "text" + }, + "geo_location": { + "type": "geo_shape", + "tree": "quadtree", + "precision": "10km" + }, + "bbox_xmin": { + "type": "float" + }, + "bbox_xmax": { + "type": "float" + }, + "bbox_ymin": { + "type": "float" + }, + "bbox_ymax": { + "type": "float" + }, + + "status": { + "type": "keyword" + } + } + } +} diff --git a/public/site.webmanifest b/public/site.webmanifest new file mode 100644 index 0000000..45dc8a2 --- /dev/null +++ b/public/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/readme.md b/readme.md index 3b29c2c..0fd7e64 100644 --- a/readme.md +++ b/readme.md @@ -3,15 +3,16 @@ Welcome to the Tethys Research Repository Backend System! This is the backend component responsible for managing datasets, users, and the core functionality of the Tethys Data Research Repository. ## Table of Contents -- [Getting Started](#getting-started) - - [Prerequisites](#prerequisites) - - [Installation](#installation) -- [Usage](#usage) -- [Configuration](#configuration) -- [Database](#database) -- [API Documentation](#api-documentation) -- [Contributing](#contributing) -- [License](#license) + +- [Getting Started](#getting-started) + - [Prerequisites](#prerequisites) + - [Installation](#installation) +- [Usage](#usage) +- [Configuration](#configuration) +- [Database](#database) +- [API Documentation](#api-documentation) +- [Contributing](#contributing) +- [License](#license) ## Getting Started @@ -19,13 +20,14 @@ Welcome to the Tethys Research Repository Backend System! This is the backend co Before you begin, ensure you have met the following requirements: -- Node.js and npm installed on your development machine. -- A running PostgreSQL database instance. -- AdonisJS CLI globally installed. +- Node.js and npm installed on your development machine. +- A running PostgreSQL database instance. +- AdonisJS CLI globally installed. ### Installation 1. Clone this repository: - ```bash - git clone https://gitea.geologie.ac.at/geolba/tethys.backend.git \ No newline at end of file + ```bash + git clone https://gitea.geologie.ac.at/geolba/tethys.backend.git + ``` diff --git a/resources/css/_table.css b/resources/css/_table.css index f02fb7e..61c24e1 100644 --- a/resources/css/_table.css +++ b/resources/css/_table.css @@ -1,51 +1,50 @@ table { @apply w-full; - } - - thead { +} + +thead { @apply hidden lg:table-header-group; - } - - tr { +} + +tr { @apply max-w-full block relative border-b-4 border-gray-100 lg:table-row lg:border-b-0 dark:border-slate-800; - } - - tr:last-child { +} + +tr:last-child { @apply border-b-0; - } - - td:not(:first-child) { +} + +td:not(:first-child) { @apply lg:border-0 lg:border-t-0 lg:border-r-0 lg:border-b-0 lg:border-gray-100 lg:dark:border-slate-700; - } - - th { +} + +th { @apply lg:text-left lg:p-3; - } - - td { +} + +td { @apply flex justify-between text-right py-3 px-4 align-top border-b border-gray-100 lg:table-cell lg:text-left lg:p-3 lg:align-middle lg:border-b-0 dark:border-slate-800; - } - - td:last-child { - @apply border-b-0; - } - - tbody tr, tbody tr:nth-child(odd) { - @apply lg:hover:bg-gray-100 lg:dark:hover:bg-slate-700/70; - } - - tbody tr:nth-child(odd) { - @apply lg:bg-gray-50 lg:dark:bg-slate-800; - } +} - tbody tr:nth-child(even) { +td:last-child { + @apply border-b-0; +} + +/* tbody tr, tbody tr:nth-child(odd) { + @apply lg:hover:bg-gray-100 lg:dark:hover:bg-slate-700/70; + } */ + +.pure-table tbody tr:nth-child(odd) { + @apply lg:bg-gray-50 lg:dark:bg-slate-800; +} + +.pure-table tbody tr:nth-child(even) { @apply lg:bg-gray-50 lg:dark:bg-slate-600 lg:bg-opacity-25; - } - - td:before { +} + +td:before { content: attr(data-label); @apply font-semibold pr-3 text-left lg:hidden; - } - \ No newline at end of file +} diff --git a/resources/css/app.css b/resources/css/app.css index 5c0965f..0301a3a 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -1,19 +1,118 @@ /* @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500&display=swap'); */ /* @import url('https://fonts.googleapis.com/css?family=Roboto:400,400i,600,700'); */ -@tailwind base; -@tailwind components; -@tailwind utilities; - -@import '_checkbox-radio-switch.css'; +/* @import '_checkbox-radio-switch.css'; */ @import '_progress.css'; @import '_scrollbars.css'; @import '_table.css'; -@import '~leaflet/dist/leaflet.css'; +/* @import '~leaflet/dist/leaflet.css'; */ +@import '~/leaflet/dist/leaflet.css'; @import '@fontsource/inter/index.css'; @import '@fontsource/archivo-black/index.css'; + +@tailwind base; +@tailwind components; +@tailwind utilities; +:root { + --color-main-background: #ffffff; + --color-main-background-rgb: 255,255,255; + --color-main-background-translucent: rgba(var(--color-main-background-rgb), .97); + --color-main-background-blur: rgba(var(--color-main-background-rgb), .8); + --filter-background-blur: blur(25px); + --gradient-main-background: var(--color-main-background) 0%, var(--color-main-background-translucent) 85%, transparent 100%; + --color-background-hover: #f5f5f5; + /** Can be used e.g. to colorize selected table rows */ + --color-background-dark: #ededed; + /** This should only be used for elements, not as a text background! Otherwise it will not work for accessibility. */ + --color-background-darker: #dbdbdb; + --color-placeholder-light: #e6e6e6; + --color-placeholder-dark: #cccccc; + --color-main-text: #222222; + --color-text-maxcontrast: #6b6b6b; + --color-text-maxcontrast-default: #6b6b6b; + --color-text-maxcontrast-background-blur: #595959; + /** @deprecated use ` --color-main-text` instead */ + --color-text-light: var(--color-main-text); + /** @deprecated use `--color-text-maxcontrast` instead */ + --color-text-lighter: var(--color-text-maxcontrast); + --color-scrollbar: rgba(34,34,34, .15); + --color-error: #d91812; + --color-error-rgb: 217,24,18; + --color-error-hover: #dd342f; + --color-error-text: #c61610; + --color-warning: #b88100; + --color-warning-rgb: 184,129,0; + --color-warning-hover: #c69a32; + --color-warning-text: #855d00; + --color-success: #2d7b41; + --color-success-rgb: 45,123,65; + --color-success-hover: #448955; + --color-success-text: #286c39; + --color-info: #0071ad; + --color-info-rgb: 0,113,173; + --color-info-hover: #197fb5; + --color-info-text: #006499; + --color-loading-light: #cccccc; + --color-loading-dark: #444444; + --color-box-shadow-rgb: 77,77,77; + --color-box-shadow: rgba(var(--color-box-shadow-rgb), 0.5); + --color-border: #ededed; + --color-border-dark: #dbdbdb; + --color-border-maxcontrast: #949494; + --font-face: system-ui, -apple-system, 'Segoe UI', Roboto, Oxygen-Sans, Cantarell, Ubuntu, 'Helvetica Neue', 'Noto Sans', 'Liberation Sans', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; + --default-font-size: 15px; + --animation-quick: 100ms; + --animation-slow: 300ms; + --border-radius: 3px; + --border-radius-large: 10px; + --border-radius-rounded: 28px; + --border-radius-pill: 100px; + --default-clickable-area: 44px; + --clickable-area: 44; + --default-line-height: 24px; + --default-grid-baseline: 4px; + --header-height: 50px; + --navigation-width: 300px; + --sidebar-min-width: 300px; + --sidebar-max-width: 500px; + --list-min-width: 200px; + --list-max-width: 300px; + --header-menu-item-height: 44px; + --header-menu-profile-item-height: 66px; + --breakpoint-mobile: 1024px; + --background-invert-if-dark: no; + --background-invert-if-bright: invert(100%); + --background-image-invert-if-bright: no; + --primary-invert-if-bright: no; + --primary-invert-if-dark: invert(100%); + --color-primary: #00679e; + --color-primary-default: #0082c9; + --color-primary-text: #ffffff; + --color-primary-hover: #3285b1; + --color-primary-light: #e5eff5; + --color-primary-light-text: #00293f; + --color-primary-light-hover: #dbe4ea; + /* --color-primary-element: #00679e; */ + --color-primary-element: #bfce40; + /* --color-primary-element-hover: #052E37; */ + --color-primary-element-hover: rgba(5,46,55,0.7); + --color-primary-element-text: #ffffff; + --color-primary-element-text-dark: #f5f5f5; + --color-primary-element-light: #e5eff5; + --color-primary-element-light-hover: #dbe4ea; + --color-primary-element-light-text: #00293f; + --gradient-primary-background: linear-gradient(40deg, var(--color-primary) 0%, var(--color-primary-hover) 100%); + /* --image-background-default: url('./img/background/kamil-porembinski-clouds.jpg'); */ + --color-background-plain: #0082c9; + --radius: 15; + --pi: 3.14159265358979; +} +.leaflet-container .leaflet-pane { + z-index: 30!important; +} + /* @layer base { html, body { diff --git a/resources/js/Components/.FormField.vue.swo b/resources/js/Components/.FormField.vue.swo new file mode 100644 index 0000000..b00c9b9 Binary files /dev/null and b/resources/js/Components/.FormField.vue.swo differ diff --git a/resources/js/Components/Admin/MenuItemList.vue b/resources/js/Components/Admin/MenuItemList.vue index e5b9174..58f1027 100644 --- a/resources/js/Components/Admin/MenuItemList.vue +++ b/resources/js/Components/Admin/MenuItemList.vue @@ -1,11 +1,8 @@ \ No newline at end of file + diff --git a/resources/js/Components/Admin/Pagination.vue b/resources/js/Components/Admin/Pagination.vue index c113095..1f51ca1 100644 --- a/resources/js/Components/Admin/Pagination.vue +++ b/resources/js/Components/Admin/Pagination.vue @@ -1,6 +1,5 @@ - - - --> - diff --git a/resources/js/Components/Admin/Sort.vue b/resources/js/Components/Admin/Sort.vue index 7da7471..419af15 100644 --- a/resources/js/Components/Admin/Sort.vue +++ b/resources/js/Components/Admin/Sort.vue @@ -4,73 +4,59 @@ import { Link } from '@inertiajs/vue3'; import { stardust } from '@eidellev/adonis-stardust/client'; const props = defineProps({ - label: { - type: String, - default: '', - }, - attribute: { - type: String, - default: '', - }, - search: { - type: String, - default: '', - }, + label: { + type: String, + default: '', + }, + attribute: { + type: String, + default: '', + }, + search: { + type: String, + default: '', + }, }); const downFill = ref('lightgray'); const upFill = ref('lightgray'); const sortLink = computed(() => { - let url = new URL(document.location); - let sortValue = url.searchParams.get('sort'); + let url = new URL(document.location); + let sortValue = url.searchParams.get('sort'); - if (sortValue == props.attribute) { - url.searchParams.set('sort', '-' + props.attribute); - upFill.value = 'black'; - } else if (sortValue === '-' + props.attribute) { - url.searchParams.set('sort', props.attribute); - downFill.value = 'black'; - } else { - url.searchParams.set('sort', props.attribute); - } + if (sortValue == props.attribute) { + url.searchParams.set('sort', '-' + props.attribute); + upFill.value = 'black'; + } else if (sortValue === '-' + props.attribute) { + url.searchParams.set('sort', props.attribute); + downFill.value = 'black'; + } else { + url.searchParams.set('sort', props.attribute); + } - if (props.search == '') { - url.searchParams.delete('search'); - } else { - url.searchParams.set('search', props.search); - } + if (props.search == '') { + url.searchParams.delete('search'); + } else { + url.searchParams.set('search', props.search); + } - return url.href; + return url.href; });
- - {{ label }} - -
- - - - - - -
-
+
+ + {{ label }} + +
+ + + + + + +
+
diff --git a/resources/js/Components/AsideMenu.vue b/resources/js/Components/AsideMenu.vue index a4e8e85..13c4415 100644 --- a/resources/js/Components/AsideMenu.vue +++ b/resources/js/Components/AsideMenu.vue @@ -1,28 +1,34 @@ - diff --git a/resources/js/Components/FormControl.vue b/resources/js/Components/FormControl.vue index a22dfbc..f66a2b3 100644 --- a/resources/js/Components/FormControl.vue +++ b/resources/js/Components/FormControl.vue @@ -43,6 +43,18 @@ const props = defineProps({ type: [String, Number, Boolean, Array, Object], default: '', }, + showCharCount: { + type: Boolean, + default: false, + }, + maxInputLength: { + type: Number, + default: null, + }, + extraHigh: { + type: Boolean, + default: false, + }, required: Boolean, borderless: Boolean, transparent: Boolean, @@ -55,17 +67,30 @@ const computedValue = computed({ emit('update:modelValue', value); }, }); + +// focus:ring focus:outline-none border-gray-700 const inputElClass = computed(() => { const base = [ - 'px-3 py-2 max-w-full focus:ring focus:outline-none border-gray-700 rounded w-full', + 'px-3 py-2 max-w-full rounded w-full', 'dark:placeholder-gray-400', - computedType.value === 'textarea' ? 'h-44' : 'h-12', + props.extraHigh ? 'h-80' : (computedType.value === 'textarea' ? 'h-44' : 'h-12'), props.borderless ? 'border-0' : 'border', - // props.transparent && !props.isReadOnly ? 'bg-transparent' : 'bg-white dark:bg-slate-800', - props.isReadOnly ? 'bg-gray-50 dark:bg-slate-600' : 'bg-white dark:bg-slate-800', + // // props.transparent && !props.isReadOnly ? 'bg-transparent' : 'bg-white dark:bg-slate-800', + // props.isReadOnly ? 'bg-gray-50 dark:bg-slate-600' : 'bg-white dark:bg-slate-800', ]; + + // Apply styles based on read-only state. + if (props.isReadOnly) { + // Read-only: no focus ring, grayed-out text and border, and disabled cursor. + base.push('bg-gray-50', 'dark:bg-slate-600', 'border', 'border-gray-300', 'dark:border-slate-600', 'text-gray-500', 'cursor-not-allowed', 'focus:outline-none' ,'focus:ring-0', 'focus:border-gray-300'); + } else { + // Actionable field: focus ring, white/dark background, and darker border. + base.push('bg-white dark:bg-slate-800', 'focus:ring focus:outline-none', 'border', 'border-gray-700'); + } + + if (props.icon) { - base.push('pl-10'); + base.push('pl-10', 'pr-10'); } return base; }); @@ -106,40 +131,33 @@ if (props.ctrlKFocus) { mainService.isFieldFocusRegistered = false; }); } +const focus = () => { + inputEl?.value.focus(); +}; - + diff --git a/resources/js/Pages/Submitter/Dataset/Index.vue b/resources/js/Pages/Submitter/Dataset/Index.vue index 762134d..5b01370 100644 --- a/resources/js/Pages/Submitter/Dataset/Index.vue +++ b/resources/js/Pages/Submitter/Dataset/Index.vue @@ -2,17 +2,15 @@ // import { Head, Link, useForm, usePage } from '@inertiajs/inertia-vue3'; import { Head, usePage } from '@inertiajs/vue3'; import { ComputedRef } from 'vue'; -import { mdiSquareEditOutline, mdiTrashCan, mdiAlertBoxOutline, mdiLockOpen } from '@mdi/js'; +import { mdiSquareEditOutline, mdiTrashCan, mdiAlertBoxOutline, mdiLockOpen, mdiLibraryShelves } from '@mdi/js'; import { computed } from 'vue'; import LayoutAuthenticated from '@/Layouts/LayoutAuthenticated.vue'; import SectionMain from '@/Components/SectionMain.vue'; -// import SectionTitleLineWithButton from '@/Components/SectionTitleLineWithButton.vue'; import BaseButton from '@/Components/BaseButton.vue'; import CardBox from '@/Components/CardBox.vue'; import BaseButtons from '@/Components/BaseButtons.vue'; import NotificationBar from '@/Components/NotificationBar.vue'; -import Pagination from '@/Components/Admin/Pagination.vue'; -// import Sort from '@/Components/Admin/Sort.vue'; +import Pagination from '@/Components/Pagination.vue'; import { stardust } from '@eidellev/adonis-stardust/client'; const props = defineProps({ @@ -34,38 +32,55 @@ const props = defineProps({ // } }); -// const search = computed(() => { -// return props.filters.search; -// }); - const flash: ComputedRef = computed(() => { // let test = usePage(); // console.log(test); return usePage().props.flash; }); -// const errors: ComputedRef = computed(() => { -// return usePage().props.errors; -// }); +const validStates = ['inprogress', 'rejected_editor']; -// const form = useForm({ -// search: props.filters.search, -// }); +const getRowClass = (dataset) => { + // (props.options ? 'select' : props.type) + let rowclass = ''; + if (dataset.server_state == 'inprogress') { + rowclass = 'bg-inprogress'; + } else if (dataset.server_state == 'released') { + rowclass = 'bg-released'; + } else if (dataset.server_state == 'editor_accepted' || dataset.server_state == 'rejected_reviewer') { + rowclass = 'bg-editor-accepted'; + } else if (dataset.server_state == 'approved') { + rowclass = 'bg-approved'; + } else if (dataset.server_state == 'reviewed') { + rowclass = 'bg-reviewed'; + } else if (dataset.server_state == 'rejected_editor') { + rowclass = 'bg-rejected-editor'; + } else { + rowclass = ''; + } + return rowclass; +}; -// const formDelete = useForm({}); +// New method to format server state +const formatServerState = (state: string) => { + if (state === 'inprogress') { + return 'draft'; + } else if (state === 'released') { + return 'submitted'; + } else if (state === 'approved') { + return 'ready for review'; + } else if (state === 'reviewer_accepted') { + return 'in review'; + } + return state; // Return the original state for other cases +}; -// async function destroy(id) { -// const destroy = async (id) => { -// // if (confirm('Are you sure you want to delete?')) { -// // await formDelete.delete(stardust.route('dataset.destroy', [id])); -// // } -// }; + + diff --git a/resources/js/Pages/Submitter/Dataset/Release.vue b/resources/js/Pages/Submitter/Dataset/Release.vue index d8fa86a..e70f66e 100644 --- a/resources/js/Pages/Submitter/Dataset/Release.vue +++ b/resources/js/Pages/Submitter/Dataset/Release.vue @@ -31,7 +31,7 @@ const errors: Ref = computed(() => { const form = useForm({ preferred_reviewer: '', preferred_reviewer_email: '', - preferation: 'yes_preferation', + preferation: 'no_preferation', // preferation: '', // isPreferationRequired: false, @@ -41,10 +41,11 @@ const form = useForm({ // const isPreferationRequired = ref(false); const isPreferationRequired = computed(() => form.preferation === 'yes_preferation'); -const handleSubmit = async (e) => { +const handleSubmit = async (e: Event) => { e.preventDefault(); await form.put(stardust.route('dataset.releaseUpdate', [props.dataset.id])); + // await form.put(stardust.route('editor.dataset.update', [props.dataset.id])); }; @@ -64,15 +65,15 @@ const handleSubmit = async (e) => { -
- +
+
diff --git a/resources/js/Pages/Submitter/EditComponent.ts b/resources/js/Pages/Submitter/EditComponent.ts new file mode 100644 index 0000000..e5b0704 --- /dev/null +++ b/resources/js/Pages/Submitter/EditComponent.ts @@ -0,0 +1,241 @@ +import { Component, Vue, Prop, toNative } from 'vue-facing-decorator'; +// import AuthLayout from '@/Layouts/Auth.vue'; +import LayoutAuthenticated from '@/Layouts/LayoutAuthenticated.vue'; +import { useForm, InertiaForm, Head } from '@inertiajs/vue3'; +import FormInput from '@/Components/FormInput.vue'; // @/Components/FormInput.vue' +import { Dataset, Title, Subject } from '@/Dataset'; +import { stardust } from '@eidellev/adonis-stardust/client'; + +import FormField from '@/Components/FormField.vue'; +import FormControl from '@/Components/FormControl.vue'; +import SectionMain from '@/Components/SectionMain.vue'; +import SectionTitleLineWithButton from '@/Components/SectionTitleLineWithButton.vue'; +import FormCheckRadioGroup from '@/Components/FormCheckRadioGroup.vue'; +import BaseButton from '@/Components/BaseButton.vue'; +import BaseButtons from '@/Components/BaseButtons.vue'; +import BaseDivider from '@/Components/BaseDivider.vue'; +import CardBox from '@/Components/CardBox.vue'; +import MapComponent from '@/Components/Map/map.component.vue'; +import SearchAutocomplete from '@/Components/SearchAutocomplete.vue'; +import TablePersons from '@/Components/TablePersons.vue'; +import TableKeywords from '@/Components/TableKeywords.vue'; +import FormValidationErrors from '@/Components/FormValidationErrors.vue'; +import FileUploadComponent from '@/Components/FileUpload.vue'; +import { MapOptions } from '@/Components/Map/MapOptions'; +// import { LatLngBoundsExpression } from 'leaflet/src/geo/LatLngBounds.js'; +import { LatLngBoundsExpression } from 'leaflet'; +import { LayerOptions } from '@/Components/Map/LayerOptions'; + +import { + mdiImageText, + mdiArrowLeftBoldOutline, + mdiPlusCircle, + mdiFinance, + mdiTrashCan, + mdiBookOpenPageVariant, + mdiEarthPlus, +} from '@mdi/js'; +import { notify } from '@/notiwind'; + +export interface IErrorMessage { + [key: string]: Array; +} + +@Component({ + name: 'EditComponent', + components: { + LayoutAuthenticated, + FormInput, + Head, + FormField, + FormControl, + SectionMain, + SectionTitleLineWithButton, + FormCheckRadioGroup, + BaseButton, + BaseButtons, + BaseDivider, + CardBox, + MapComponent, + SearchAutocomplete, + TablePersons, + TableKeywords, + FormValidationErrors, + FileUploadComponent, + }, +}) +class EditComponent extends Vue { + // Component Property + @Prop({ type: Object, default: () => ({}) }) + public errors: IErrorMessage; + + @Prop({ type: Object, default: () => ({}) }) + public licenses; + + @Prop({ type: Object, default: () => ({}) }) + public languages; + + @Prop({ type: Object, default: () => ({}) }) + public doctypes; + + @Prop({ type: Object, default: () => ({}) }) + public titletypes; + + @Prop({ type: Object, default: () => ({}) }) + public projects; + + @Prop({ type: Object, default: () => ({}) }) + public descriptiontypes; + + @Prop({ type: Object, default: () => {} }) + public contributorTypes; + + @Prop({ type: Object, default: () => ({}) }) + public subjectTypes; + + @Prop({ type: Object, default: () => ({}) }) + public referenceIdentifierTypes; + + @Prop({ type: Object, default: () => ({}) }) + public relationTypes; + + @Prop({ type: Object, default: () => ({}) }) + public dataset: Dataset; + + // @Prop({ + // type: Object, + // default: () => ({}), + // }) + // public datasetHasLicenses; + + // Data Property + // public form: InertiaForm; // = useForm(this.dataset as Dataset); + + // public form : InertiaForm= useForm([]); + + // @Setup(() => useForm(this.dataset as Dataset)) + public form: InertiaForm; + + // @Hook + created() { + this.form = useForm(this.dataset as Dataset); + // this.form.licenses = this.datasetHasLicenses; + this.form.uploads = []; + } + + public mapOptions: MapOptions = { + center: [48.208174, 16.373819], + zoom: 3, + zoomControl: false, + attributionControl: false, + }; + public baseMaps: Map = new Map(); + public fitBounds: LatLngBoundsExpression = [ + [46.4318173285, 9.47996951665], + [49.0390742051, 16.9796667823], + ]; + public mapId = 'test'; + mdiImageText = mdiImageText; + mdiArrowLeftBoldOutline = mdiArrowLeftBoldOutline; + mdiPlusCircle = mdiPlusCircle; + mdiFinance = mdiFinance; + mdiTrashCan = mdiTrashCan; + mdiBookOpenPageVariant = mdiBookOpenPageVariant; + mdiEarthPlus = mdiEarthPlus; + stardust = stardust; + + // mounted() { + // this.form = useForm(this.dataset as Dataset);// Initialize myData with the value of propValue + // } + + // public results: Array = []; + + // Component method + public async submit(): Promise { + let route = this.stardust.route('dataset.update', [this.dataset.id]); + // await Inertia.post('/app/register', this.form); + // await router.post('/app/register', this.form); + + if (this.form.licenses.every((item) => this.hasIdAttribute(item))) { + this.form.licenses = this.form.licenses.map((obj) => obj.id.toString()); + } + + await this.form + .transform((data) => ({ + ...data, + licenses: this.form.licenses.every((item) => this.hasIdAttribute(item)) + ? this.form.licenses.map((obj) => obj.id.toString()) + : this.form.licenses, + rights: 'true', + })) + .put(route); + } + + private hasIdAttribute(obj: any): obj is { id: any } { + return typeof obj === 'object' && 'id' in obj; + } + + public addTitle(): void { + const newTitle: Title = { value: '', language: '', type: '' }; + this.form.titles.push(newTitle); + } + public removeTitle(key: number): void { + this.form.titles.splice(key, 1); + } + + public addDescription(): void { + const newDescription = { value: '', language: '', type: '' }; + this.form.descriptions.push(newDescription); + } + + public removeDescription(key: number): void { + this.form.descriptions.splice(key, 1); + } + + public onAddAuthor(person) { + if (this.form.authors.filter((e) => e.id === person.id).length > 0) { + notify({ type: 'warning', title: 'Warning', text: 'person is already defined as author' }, 4000); + } else if (this.form.contributors.filter((e) => e.id === person.id).length > 0) { + notify({ type: 'warning', title: 'Warning', text: 'person is already defined as contributor' }); + } else { + this.form.authors.push(person); + notify({ type: 'info', text: 'person has been successfully added as author' }); + } + } + + public onAddContributor(person) { + if (this.form.contributors.filter((e) => e.id === person.id).length > 0) { + notify({ type: 'warning', title: 'Warning', text: 'person is already defined as contributor' }, 4000); + } else if (this.form.authors.filter((e) => e.id === person.id).length > 0) { + notify({ type: 'warning', title: 'Warning', text: 'person is already defined as author' }, 4000); + } else { + // person.pivot = { contributor_type: '' }; + // // person.pivot = { name_type: '', contributor_type: '' }; + this.form.contributors.push(person); + notify({ type: 'info', text: 'person has been successfully added as contributor' }, 4000); + } + } + + public addKeyword() { + let newSubject: Subject = { value: 'test', language: '', type: 'uncontrolled', dataset_count: 0 }; + //this.dataset.files.push(uploadedFiles[i]); + this.form.subjects.push(newSubject); + } + + public addReference() { + let newReference = { value: '', label: '', relation: '', type: '' }; + //this.dataset.files.push(uploadedFiles[i]); + this.form.references.push(newReference); + } + + public removeReference(key) { + this.form.references.splice(key, 1); + } + + public onMapInitialized(newItem: any): void { + console.log(newItem); + } +} + +export default toNative(EditComponent); +// export default toNative(EditComponent); diff --git a/resources/js/Pages/Submitter/Person/Index.vue b/resources/js/Pages/Submitter/Person/Index.vue index 1e9b053..e143bd6 100644 --- a/resources/js/Pages/Submitter/Person/Index.vue +++ b/resources/js/Pages/Submitter/Person/Index.vue @@ -108,13 +108,13 @@ const flash: ComputedRef = computed(() => { class="no-underline hover:underline text-cyan-600 dark:text-cyan-400"> {{ user.login }} --> - +
{{ person.name }}
{{ person.email }}
- +
{{ person.identifier_orcid ? person.identifier_orcid : '#' }} diff --git a/resources/js/Pages/profile/partials/update-password-form.vue b/resources/js/Pages/profile/partials/update-password-form.vue new file mode 100644 index 0000000..9e0d422 --- /dev/null +++ b/resources/js/Pages/profile/partials/update-password-form.vue @@ -0,0 +1,135 @@ + + + \ No newline at end of file diff --git a/resources/js/Pages/profile/partials/update-profile-information-form.vue b/resources/js/Pages/profile/partials/update-profile-information-form.vue new file mode 100644 index 0000000..5a5fdff --- /dev/null +++ b/resources/js/Pages/profile/partials/update-profile-information-form.vue @@ -0,0 +1,179 @@ + + + \ No newline at end of file diff --git a/resources/js/Pages/profile/show.vue b/resources/js/Pages/profile/show.vue new file mode 100644 index 0000000..12714f9 --- /dev/null +++ b/resources/js/Pages/profile/show.vue @@ -0,0 +1,139 @@ + + + + + + + \ No newline at end of file diff --git a/resources/js/Pages/register-view/register-view-component.ts b/resources/js/Pages/register-view/register-view-component.ts index 1d90c94..19fa6fe 100644 --- a/resources/js/Pages/register-view/register-view-component.ts +++ b/resources/js/Pages/register-view/register-view-component.ts @@ -1,7 +1,7 @@ import { Component, Vue, Prop } from 'vue-facing-decorator'; import AuthLayout from '@/Layouts/Auth.vue'; // import { Inertia } from '@inertiajs/inertia'; -import { NButton } from 'naive-ui'; +// import { NButton } from 'naive-ui'; import { useForm, InertiaForm, router } from '@inertiajs/vue3'; import FormInput from '@/Components/FormInput.vue'; // @/Components/FormInput.vue' // import { defineComponent, reactive } from 'vue'; @@ -42,7 +42,7 @@ export interface IErrorMessage { }, name: 'RegisterViewComponent', components: { - NButton, + // NButton, FormInput, }, }) diff --git a/resources/js/Pages/register-view/register-view-component.vue b/resources/js/Pages/register-view/register-view-component.vue index 88d9eff..0e8eac8 100644 --- a/resources/js/Pages/register-view/register-view-component.vue +++ b/resources/js/Pages/register-view/register-view-component.vue @@ -1,31 +1,30 @@ +// + \ No newline at end of file + --> diff --git a/resources/js/Stores/locale.ts b/resources/js/Stores/locale.ts new file mode 100644 index 0000000..aac8d18 --- /dev/null +++ b/resources/js/Stores/locale.ts @@ -0,0 +1,41 @@ +// src/stores/locale.ts +import { defineStore } from 'pinia'; +import dayjs from '@/utils/dayjs'; +import { getBrowserLocale } from '@/utils/tethyscloud-l10n'; + +export const LocaleStore = defineStore('locale', { + + state: () => ({ + locale: 'en', + }), + + actions: { + setLocale(locale: string) { + if (typeof localStorage !== 'undefined') { + localStorage.setItem('app-locale', locale); + } + this.locale = locale; + dayjs.locale(locale); // Update dayjs locale + }, + + initializeLocale() { + let locale = 'en'; + + // Check if localStorage is available and has a saved locale + if (typeof localStorage !== 'undefined') { + const savedLocale = localStorage.getItem('app-locale'); + if (savedLocale) { + locale = savedLocale; + } else { + // Get locale from the browser if not saved in localStorage + locale = getBrowserLocale({ languageCodeOnly: true }); + } + } else { + // Fallback to the browser locale if localStorage is not available + locale = getBrowserLocale({ languageCodeOnly: true }); + } + + this.setLocale(locale); + }, + }, +}); diff --git a/resources/js/Stores/main.ts b/resources/js/Stores/main.ts index 767fac9..3a31057 100644 --- a/resources/js/Stores/main.ts +++ b/resources/js/Stores/main.ts @@ -1,6 +1,57 @@ import { defineStore } from 'pinia'; import axios from 'axios'; import { Dataset } from '@/Dataset'; +import menu from '@/menu'; +// import type Person from '#models/person'; + +export interface User { + id: number; + login: string; + firstName: string; + lastName: string; + email: string; + password: string; + created_at: DateTime; + updatedAt: DateTime; + lastLoginAt: DateTime; + isActive: boolean; + isVerified: boolean; + roles: string[]; + permissions: string[]; + settings: Record; + profile: { + avatar: string; + bio: string; + location: string; + website: string; + social: { + twitter: string; + facebook: string; + linkedin: string; + github: string; + } + }; + metadata: Record; + verifyPassword: (plainPassword: string) => Promise; +} + +interface DateTime { + get: (unit: keyof DateTime) => number; + getPossibleOffsets: () => DateTime[]; + toRelativeCalendar: (options?: ToRelativeCalendarOptions) => string | null; + toFormat: (format: string) => string; + toISO: () => string; + toJSON: () => string; + toString: () => string; + toLocaleString: (options?: Intl.DateTimeFormatOptions) => string; + toUTC: () => DateTime; + toLocal: () => DateTime; + valueOf: () => number; + toMillis: () => number; + toSeconds: () => number; + toUnixInteger: () => number; +} + export interface Person { id: number; @@ -8,10 +59,12 @@ export interface Person { email: string; name_type: string; identifier_orcid: string; - datasetCount: string; + dataset_count: number; created_at: string; } + + interface TransactionItem { amount: number; account: string; @@ -21,6 +74,34 @@ interface TransactionItem { business: string; } +export enum State { + STATE_DISABLED = 0, + STATE_CREATED = 1, + STATE_ENABLED = 2, +} + +export const saveState = async (data: any) => { + const url = '/api/twofactor_totp/settings/enable'; + + const resp = await axios.post(url, data); + return resp.data; +}; + +export const generateCodes = async () => { + const url = '/api/twofactor_backupcodes/settings/create'; + + // return Axios.post(url, {}).then((resp) => resp.data); + const resp = await axios.post(url, {}); + return resp.data; +}; + +// Anfrage staet : 1 + +// ANtwort json: +// state: 1 +// secret:"OX7IQ4OI3GXGFPHY" +// qUrl:"https://odysseus.geologie.ac.at/apps/twofactor_totp/settings/enable" + export const MainService = defineStore('main', { state: () => ({ /* User */ @@ -32,19 +113,31 @@ export const MainService = defineStore('main', { isFieldFocusRegistered: false, /* Sample data for starting dashboard(commonly used) */ - clients: [], + clients: [] as Array, history: [] as Array, // api based data authors: [] as Array, // persons: [] as Array, datasets: [], + files: [], dataset: {} as Dataset, + + menu: menu, + + totpState: 0, + + backupcodesEnabled: false, + total: 0, + used: 0, + codes: [], + + graphData: {}, }), actions: { // payload = authenticated user - setUser(payload) { + setUser(payload: any) { if (payload.name) { this.userName = payload.name; } @@ -56,7 +149,7 @@ export const MainService = defineStore('main', { } }, - setDataset(payload) { + setDataset(payload: any) { this.dataset = payload; // this.dataset = { @@ -81,10 +174,10 @@ export const MainService = defineStore('main', { this.dataset = null; }, - fetch(sampleDataKey) { + fetch(sampleDataKey: string) { // sampleDataKey= clients or history axios - .get(`data-sources/${sampleDataKey}.json`) + .get(`/data-sources/${sampleDataKey}.json`) .then((r) => { if (r.data && r.data.data) { this[sampleDataKey] = r.data.data; @@ -95,18 +188,91 @@ export const MainService = defineStore('main', { }); }, - fetchApi(sampleDataKey) { + fetchApi(sampleDataKey: string) { // sampleDataKey= authors or datasets axios - .get(`api/${sampleDataKey}`) + .get(`/api/${sampleDataKey}`) .then((r) => { if (r.data) { this[sampleDataKey] = r.data; } }) .catch((error) => { - alert(error.message); + // alert(error.message); + throw error; }); }, + + setState(state: any) { + this.totpState = state; + }, + + async create(): Promise<{ url: any; secret: any; svg: any }> { + const { state, secret, url, svg } = await saveState({ state: State.STATE_CREATED }); + this.totpState = state; + return { url, secret, svg }; + // .then(({ state, secret, qrUrl }) => { + // this.totpState = state; + // return { qrUrl, secret }; + // }) + // .catch((error) => { + // alert(error.message); + // }); + }, + + async disable() { + const { state, backupState } = await saveState({ state: State.STATE_DISABLED }); + this.totpState = state; + + this.backupcodesEnabled = backupState.enabled; + this.total = backupState.total; + this.used = backupState.used; + }, + + async confirm(code: string) { + const { state } = await saveState({ + state: State.STATE_ENABLED, + code, + }); + this.totpState = state; + }, + + fetchChartData() { + // sampleDataKey= authors or datasets + axios + .get(`/api/statistic`) + .then((r) => { + if (r.data) { + this.graphData = r.data; + } + }) + .catch((error) => { + // alert(error.message); + throw error; + }); + }, + + async generate(): Promise { + const { codes, backupState } = await generateCodes(); + // this.totpState = state; + this.codes = codes; + this.backupcodesEnabled = backupState.enabled; + this.total = backupState.total; + this.used = backupState.used; + }, + + // fetchfiles(id) { + // // sampleDataKey= authors or datasets + // axios + // .get(`api/files/${id}`) + // .then((r) => { + // if (r.data) { + // this[sampleDataKey] = r.data; + // } + // }) + // .catch((error) => { + // alert(error.message); + // }); + // }, }, }); diff --git a/resources/js/Stores/map.service.ts b/resources/js/Stores/map.service.ts index 6f245d3..1e3099d 100644 --- a/resources/js/Stores/map.service.ts +++ b/resources/js/Stores/map.service.ts @@ -9,23 +9,23 @@ export const MapService = defineStore('map', { }), actions: { // payload = authenticated user - setUser(payload) { - if (payload.name) { - this.userName = payload.name; - } - if (payload.email) { - this.userEmail = payload.email; - } - if (payload.avatar) { - this.userAvatar = payload.avatar; - } - }, + // setUser(payload: any) { + // if (payload.name) { + // this.userName = payload.name; + // } + // if (payload.email) { + // this.userEmail = payload.email; + // } + // if (payload.avatar) { + // this.userAvatar = payload.avatar; + // } + // }, getMap(id: string) { return this.mapService.get(id); }, - setMap(id: string, map) { + setMap(id: string, map: any) { this.mapService.set(id, map); }, diff --git a/resources/js/Stores/style.service.ts b/resources/js/Stores/style.service.ts new file mode 100644 index 0000000..0770991 --- /dev/null +++ b/resources/js/Stores/style.service.ts @@ -0,0 +1,77 @@ +import { defineStore } from 'pinia'; +import styles from '@/styles'; +import { darkModeKey, styleKey } from '@/config'; + + +interface StyleState { + [key: string]: string | boolean; + asideStyle: string; + asideScrollbarsStyle: string; + asideBrandStyle: string; + asideMenuItemStyle: string; + asideMenuItemActiveStyle: string; + asideMenuDropdownStyle: string; + navBarItemLabelStyle: string; + navBarItemLabelHoverStyle: string; + navBarItemLabelActiveColorStyle: string; + overlayStyle: string; + darkMode: boolean; +} + +// Define StyleService store +export const StyleService = defineStore('style', { + state: (): StyleState => ({ + // Styles + asideStyle: '', + asideScrollbarsStyle: '', + asideBrandStyle: '', + asideMenuItemStyle: '', + asideMenuItemActiveStyle: '', + asideMenuDropdownStyle: '', + navBarItemLabelStyle: '', + navBarItemLabelHoverStyle: '', + navBarItemLabelActiveColorStyle: '', + overlayStyle: '', + // Dark mode default false + darkMode: false, + }), + actions: { + // Set style based on payload value ('basic' or 'white') + setStyle(payload: 'basic' | 'white') { + if (!styles[payload]) { + return; + } + if (typeof localStorage !== 'undefined') { + localStorage.setItem(styleKey, payload); + } + const style = styles[payload] as Record; + for (const key in style) { + // let keyStyle: string = `${key}Style`;//key as keyof typeof style; + this[`${key}Style` as keyof StyleState] = style[key]; + } + }, + // Toggle dark mode + setDarkMode(payload?: boolean) { + this.darkMode = payload !== undefined ? payload : !this.darkMode; + if (typeof localStorage !== 'undefined') { + localStorage.setItem(darkModeKey, this.darkMode ? '1' : '0'); + } + if (typeof document !== 'undefined') { + document.body.classList[this.darkMode ? 'add' : 'remove']('dark-scrollbars'); + document.documentElement.classList[this.darkMode ? 'add' : 'remove']('dark-scrollbars-compat'); + } + }, + + // Toggle dark mode + setLocale(payload?: boolean) { + this.darkMode = payload !== undefined ? payload : !this.darkMode; + if (typeof localStorage !== 'undefined') { + localStorage.setItem(darkModeKey, this.darkMode ? '1' : '0'); + } + if (typeof document !== 'undefined') { + document.body.classList[this.darkMode ? 'add' : 'remove']('dark-scrollbars'); + document.documentElement.classList[this.darkMode ? 'add' : 'remove']('dark-scrollbars-compat'); + } + }, + }, +}); \ No newline at end of file diff --git a/resources/js/Stores/style.ts b/resources/js/Stores/style.ts deleted file mode 100644 index 44995c6..0000000 --- a/resources/js/Stores/style.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { defineStore } from 'pinia'; -import * as styles from '@/styles'; -import { darkModeKey, styleKey } from '@/config'; - -export const StyleService = defineStore('style', { - state: () => ({ - /* Styles */ - asideStyle: '', - asideScrollbarsStyle: '', - asideBrandStyle: '', - asideMenuItemStyle: '', - asideMenuItemActiveStyle: '', - asideMenuDropdownStyle: '', - navBarItemLabelStyle: '', - navBarItemLabelHoverStyle: '', - navBarItemLabelActiveColorStyle: '', - overlayStyle: '', - - /* Dark mode default false */ - darkMode: false, - }), - - actions: { - // style payload = 'basic' or 'white' with blue font - setStyle(payload) { - if (!styles[payload]) { - return; - } - - if (typeof localStorage !== 'undefined') { - localStorage.setItem(styleKey, payload); - } - - const style = styles[payload]; - - for (const key in style) { - this[`${key}Style`] = style[key]; - } - }, - // toggle dark mode - setDarkMode(payload = null) { - this.darkMode = payload !== null ? payload : !this.darkMode; - - if (typeof localStorage !== 'undefined') { - localStorage.setItem(darkModeKey, this.darkMode ? '1' : '0'); - } - - if (typeof document !== 'undefined') { - document.body.classList[this.darkMode ? 'add' : 'remove']('dark-scrollbars'); - - document.documentElement.classList[this.darkMode ? 'add' : 'remove']('dark-scrollbars-compat'); - } - }, - }, -}); diff --git a/resources/js/Stores/time.service.ts b/resources/js/Stores/time.service.ts index ca7a231..74fae26 100644 --- a/resources/js/Stores/time.service.ts +++ b/resources/js/Stores/time.service.ts @@ -1,6 +1,7 @@ import { defineStore } from 'pinia'; // import axios from 'axios'; // import dayjs from 'dayjs'; +import type { Map as LeafletMap } from 'leaflet' ; export const TimeService = defineStore('map', { state: () => ({ @@ -12,7 +13,7 @@ export const TimeService = defineStore('map', { return this.mapService.get(id); }, - setMap(id: string, map) { + setMap(id: string, map: LeafletMap) { this.mapService.set(id, map); }, diff --git a/resources/js/TC/constants.js b/resources/js/TC/constants.js new file mode 100644 index 0000000..e2ed59e --- /dev/null +++ b/resources/js/TC/constants.js @@ -0,0 +1,10 @@ +export const coreApps = ['settings', 'admin', 'log', 'core/search', 'core', '3rdparty'] +export const menuSpeed = 50 +export const PERMISSION_NONE = 0 +export const PERMISSION_CREATE = 4 +export const PERMISSION_READ = 1 +export const PERMISSION_UPDATE = 2 +export const PERMISSION_DELETE = 8 +export const PERMISSION_SHARE = 16 +export const PERMISSION_ALL = 31 +export const TAG_FAVORITE = '_$!!$_' \ No newline at end of file diff --git a/resources/js/TC/index.js b/resources/js/TC/index.js new file mode 100644 index 0000000..e05f446 --- /dev/null +++ b/resources/js/TC/index.js @@ -0,0 +1,38 @@ +import L10N from './l10n.js' +// import { +// getCanonicalLocale, +// getLanguage, +// getLocale, +// } from './l10n'; + +import { + coreApps, + menuSpeed, + PERMISSION_ALL, + PERMISSION_CREATE, + PERMISSION_DELETE, + PERMISSION_NONE, + PERMISSION_READ, + PERMISSION_SHARE, + PERMISSION_UPDATE, + TAG_FAVORITE, +} from './constants.js' + +export default { + /* + * Constants + */ + coreApps, + menuSpeed, + PERMISSION_ALL, + PERMISSION_CREATE, + PERMISSION_DELETE, + PERMISSION_NONE, + PERMISSION_READ, + PERMISSION_SHARE, + PERMISSION_UPDATE, + TAG_FAVORITE, + + + L10N, +} \ No newline at end of file diff --git a/resources/js/app.js b/resources/js/app.js deleted file mode 100644 index f958f40..0000000 --- a/resources/js/app.js +++ /dev/null @@ -1,69 +0,0 @@ -import '../css/app.css'; -import { createApp, h } from 'vue'; -import { Inertia } from '@inertiajs/inertia'; - -import { createInertiaApp, Link, usePage } from '@inertiajs/vue3'; -// import DefaultLayout from '@/Layouts/Default.vue'; - -import { createPinia } from 'pinia'; -import { StyleService } from '@/Stores/style'; -import { LayoutService } from '@/Stores/layout'; -import { MainService } from '@/Stores/main'; -import { darkModeKey, styleKey } from '@/config'; -const pinia = createPinia(); -import { EmitterPlugin } from '@/EmitterDirective'; - -import { initRoutes } from '@eidellev/adonis-stardust/client'; -initRoutes(); - -// import '@fontsource/archivo-black/index.css'; -// import '@fontsource/inter/index.css'; - -createInertiaApp({ - progress: { - // color: '#4B5563', - color: '#22C55E', - }, - // resolve: (name) => { - // const pages = import.meta.glob('./Pages/**/*.vue', { eager: true }) - // return pages[`./Pages/${name}.vue`] - // }, - // Webpack - // resolve: (name) => require(`./Pages/${name}`), - // resolve: (name) => require(`./Pages/${name}.vue`), - // add default layout - resolve: (name) => { - const page = require(`./Pages/${name}.vue`).default; - // if (!page.layout) { - // page.layout = DefaultLayout; - // } - return page; - }, - setup({ el, App, props, plugin }) { - createApp({ render: () => h(App, props) }) - .use(plugin) - .use(pinia) - .use(EmitterPlugin) - // .component('inertia-link', Link) - .mount(el); - }, -}); - -const styleService = StyleService(pinia); -const layoutService = LayoutService(pinia); -// const mainService = MainService(pinia); -// mainService.setUser(user); - -/* App style */ -styleService.setStyle(localStorage[styleKey] ?? 'basic'); - -/* Dark mode */ -if ((!localStorage[darkModeKey] && window.matchMedia('(prefers-color-scheme: dark)').matches) || localStorage[darkModeKey] === '1') { - styleService.setDarkMode(true); -} - -/* Collapse mobile aside menu on route change */ -Inertia.on('navigate', (event) => { - layoutService.isAsideMobileExpanded = false; - layoutService.isAsideLgActive = false; -}); diff --git a/resources/js/app.ts b/resources/js/app.ts new file mode 100644 index 0000000..5931472 --- /dev/null +++ b/resources/js/app.ts @@ -0,0 +1,104 @@ +import '../css/app.css'; +import { createApp, h } from 'vue'; +import { Inertia } from '@inertiajs/inertia'; + +import { Head, Link, createInertiaApp } from '@inertiajs/vue3'; +// import DefaultLayout from '@/Layouts/Default.vue'; +import { createPinia } from 'pinia'; +import { StyleService } from '@/Stores/style.service'; +import { LayoutService } from '@/Stores/layout'; +import { LocaleStore } from '@/Stores/locale'; +import { MainService } from './Stores/main'; +import { darkModeKey, styleKey } from '@/config'; +import type { DefineComponent } from 'vue'; +import { resolvePageComponent } from '@adonisjs/inertia/helpers'; +const pinia = createPinia(); +// import i18n from './i18n'; +import { EmitterPlugin } from '@/EmitterDirective'; + +import { initRoutes } from '@eidellev/adonis-stardust/client/index.js'; +initRoutes(); + +// import { loadTranslations } from './utils/tethyscloud-l10n'; +import asyncPlugin from '@/apps/settings/asyncPlugin'; +// const translation = await asyncPlugin.install('settings'); + +// interface SetupOptions { +// el: Element; +// App: App; +// props: Record; +// plugin: Plugin; +// } + +// import '@fontsource/archivo-black/index.css'; +// import '@fontsource/inter/index.css'; + +createInertiaApp({ + progress: { + // color: '#4B5563', + color: '#22C55E', + showSpinner: true, + }, + // Webpack + // resolve: async (name: string) => { + // // Dynamically import the Vue component using import + // const { default: page } = await import(`./Pages/${name}.vue`); + // // const page = require(`./Pages/${name}.vue`).default; + // // if (!page.layout) { + // // page.layout = DefaultLayout; + // // } + // return page; + // }, + resolve: (name) => { + return resolvePageComponent(`./Pages/${name}.vue`, import.meta.glob('./Pages/**/*.vue')); + }, + + setup({ el, App, props, plugin }) { + const app = createApp({ render: () => h(App, props) }) + .use(plugin) + .use(pinia) + // .use(i18n) + .use(EmitterPlugin); + // .component('inertia-link', Link) + + app.component('Head', Head); + app.component('Link', Link); + + // Listen for navigation event to handle layout changes + // window.addEventListener('inertia:navigate', () => { + // layoutService.isAsideMobileExpanded = false; + // layoutService.isAsideLgActive = false; + // }); + + asyncPlugin.install('settings').then(() => { + app.mount(el); + }); + }, +}); + +const styleService = StyleService(pinia); +const layoutService = LayoutService(pinia); +const localeService = LocaleStore(pinia); + +localeService.initializeLocale(); +// const mainService = MainService(pinia); +// mainService.setUser(user); + +/* App style */ +styleService.setStyle(localStorage[styleKey] ?? 'basic'); + +/* Dark mode */ +if ((!localStorage[darkModeKey] && window.matchMedia('(prefers-color-scheme: dark)').matches) || localStorage[darkModeKey] === '1') { + styleService.setDarkMode(true); +} + +// mainService.fetchApi('clients'); +// mainService.fetchApi('authors'); +// mainService.fetchApi('datasets'); +// mainService.fetchChartData(); + +/* Collapse mobile aside menu on route change */ +Inertia.on('navigate', () => { + layoutService.isAsideMobileExpanded = false; + layoutService.isAsideLgActive = false; +}); diff --git a/resources/js/apps/settings/asyncPlugin.ts b/resources/js/apps/settings/asyncPlugin.ts new file mode 100644 index 0000000..e49ede8 --- /dev/null +++ b/resources/js/apps/settings/asyncPlugin.ts @@ -0,0 +1,13 @@ +import { loadTranslations } from '@/utils/tethyscloud-l10n'; + +// export const register = async () => { +// await loadTranslations('settings'); +// }; + +// asyncPlugin.js +export default { + async install(app: string) { + // Perform your async setup logic here + await loadTranslations(app); + } + }; \ No newline at end of file diff --git a/resources/js/apps/settings/basic_settings/BackgroundJob.vue b/resources/js/apps/settings/basic_settings/BackgroundJob.vue new file mode 100644 index 0000000..1530617 --- /dev/null +++ b/resources/js/apps/settings/basic_settings/BackgroundJob.vue @@ -0,0 +1,191 @@ + + + + + diff --git a/resources/js/apps/settings/basic_settings/MailSettings.vue b/resources/js/apps/settings/basic_settings/MailSettings.vue new file mode 100644 index 0000000..2a6b727 --- /dev/null +++ b/resources/js/apps/settings/basic_settings/MailSettings.vue @@ -0,0 +1,198 @@ + + + + + diff --git a/resources/js/apps/settings/basic_settings/ProfileSettings.vue b/resources/js/apps/settings/basic_settings/ProfileSettings.vue new file mode 100644 index 0000000..a114cd4 --- /dev/null +++ b/resources/js/apps/settings/basic_settings/ProfileSettings.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/resources/js/apps/settings/l18n/de.js b/resources/js/apps/settings/l18n/de.js new file mode 100644 index 0000000..1617d79 --- /dev/null +++ b/resources/js/apps/settings/l18n/de.js @@ -0,0 +1,902 @@ +export default { + "translations": { + "Private": "Privat", + "Only visible to people matched via phone number integration through Talk on mobile": "Nur sichtbar für Personen, die über die Rufnummernintegration von Talk auf dem Smartphone abgeglichen wurden.", + "Local": "Lokal", + "Only visible to people on this instance and guests": "Nur für Personen dieser Instanz und Gäste sichtbar", + "Federated": "Federated", + "Only synchronize to trusted servers": "Nur mit vertrauenswürdigen Servern synchronisieren", + "Published": "Veröffentlicht", + "Synchronize to trusted servers and the global and public address book": "Mit vertrauenswürdigen Servern und dem globalen und öffentlichen Adressbuch synchronisieren", + "Verify": "Überprüfen", + "Verifying …": "Überprüfe …", + "Unable to change password": "Passwort konnte nicht geändert werden", + "Very weak password": "Sehr schwaches Passwort", + "Weak password": "Schwaches Passwort", + "So-so password": "Akzeptables Passwort", + "Good password": "Gutes Passwort", + "Strong password": "Starkes Passwort", + "Groups": "Gruppen", + "Group list is empty": "Gruppenliste ist leer", + "Unable to retrieve the group list": "Gruppenliste konnte nicht abgerufen werden", + "{actor} added you to group {group}": "{actor} hat dich zur Gruppe {group} hinzugefügt", + "You added {user} to group {group}": "Du hast {user} zur Gruppe {group} hinzugefügt", + "{actor} added {user} to group {group}": "{actor} hat {user} zur Gruppe {group} hinzugefügt", + "An administrator added you to group {group}": "Ein Administrator hat dich zur Gruppe {group} hinzugefügt", + "An administrator added {user} to group {group}": "Ein Administrator hat {user} zur Gruppe {group} hinzugefügt", + "{actor} removed you from group {group}": "{actor} hat dich von der Gruppe {group} entfernt", + "You removed {user} from group {group}": "Du hast {user} von der Gruppe {group} entfernt", + "{actor} removed {user} from group {group}": "{actor} hat {user} von der Gruppe {group} entfernt", + "An administrator removed you from group {group}": "Ein Administrator hat dich von der Gruppe {group} entfernt", + "An administrator removed {user} from group {group}": "Ein Administrator hat {user} von der Gruppe {group} entfernt", + "Your group memberships were modified": "Deine Gruppenmitgliedschaft wurde geändert", + "{actor} changed your password": "{actor} hat dein Passwort geändert", + "You changed your password": "Du hast dein Passwort geändert", + "Your password was reset by an administrator": "Dein Passwort wurde vom Administrator zurückgesetzt", + "Your password was reset": "Dein Passwort wurde zurückgesetzt", + "{actor} changed your email address": "{actor} hat deine E-Mail-Adresse geändert", + "You changed your email address": "Du hast deine E-Mail-Adresse geändert", + "Your email address was changed by an administrator": "Deine E-Mail-Adresse wurde von einem Administrator geändert", + "You created an app password for a session named \"{token}\"": "Du hast ein App-Passwort für eine Sitzung mit dem Namen \"{token}\" erstellt.", + "An administrator created an app password for a session named \"{token}\"": "Die Administration hat ein App-Passwort für eine Sitzung mit dem Namen \"{token}“ erstellt", + "You deleted app password \"{token}\"": "Du hast das App-Passwort \"{token}\" entfernt", + "You renamed app password \"{token}\" to \"{newToken}\"": "Du hast App-Passwort \"{token}\" in \"{newToken}\" umbenannt", + "You granted filesystem access to app password \"{token}\"": "Du hast Dateisystemzugriff für App-Passwort \"{token}\" erlaubt", + "You revoked filesystem access from app password \"{token}\"": "Du hast Dateisystemzugriff für App-Passwort \"{token}\" widerrufen", + "Security": "Sicherheit", + "You successfully logged in using two-factor authentication (%1$s)": "Du hast dich erfolgreich mittels Zwei-Faktor-Authentifizierung angemeldet (%1$s)", + "A login attempt using two-factor authentication failed (%1$s)": "Ein Anmeldeversuch mittels Zwei-Faktor-Authentifizierung schlug fehl (%1$s)", + "Remote wipe was started on %1$s": "Fernlöschung wurde am %1$s gestartet", + "Remote wipe has finished on %1$s": "Fernlöschung wurde am %1$s abgeschlossen", + "Your password or email was modified": "Dein Passwort oder deine E-Mail-Adresse wurde geändert", + "Settings": "Einstellungen", + "Could not remove app.": "App konnte nicht entfernt werden", + "Could not update app.": "App konnte nicht aktualisiert werden", + "Wrong password": "Falsches Passwort", + "Unable to change personal password": "Das persönliche Passwort konnte nicht geändert werden", + "Saved": "Gespeichert", + "No Login supplied": "Keine Anmeldename eingegeben", + "Unable to change password. Password too long.": "Passwort konnte nicht geändert werden. Passwort ist zu lang.", + "Authentication error": "Authentifizierungsfehler", + "Please provide an admin recovery password; otherwise, all account data will be lost.": "Bitte gib ein Wiederherstellungspasswort für das Administrationskonto an, da sonst alle Kontodaten verlorengehen.", + "Wrong admin recovery password. Please check the password and try again.": "Falsches Wiederherstellungspasswort für das Admin-Konto. Bitte überprüfe das Passwort und versuche es erneut.", + "Backend does not support password change, but the encryption of the account key was updated.": "Das Backend unterstützt keine Passwortänderung, aber die Verschlüsselung des Kontoschlüssels wurde aktualisiert.", + "Administrator documentation": "Dokumentation für Administratoren", + "User documentation": "Dokumentation für Benutzer", + "Nextcloud help overview": "Übersicht über die Nextcloud-Hilfe", + "Invalid SMTP password.": "Ungültiges SMTP-Passwort", + "Email setting test": "Test der E-Mail-Einstellungen", + "Well done, %s!": "Gut gemacht, %s!", + "If you received this email, the email configuration seems to be correct.": "Wenn du diese E-Mail empfangen hast, sind die E-Mail-Einstellungen korrekt.", + "Email could not be sent. Check your mail server log": "E-Mail konnte nicht versandt werden. Prüfe dein E-Mail-Server-Protokoll", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)": "Beim Senden der E-Mail ist ein Problem aufgetreten. Bitte überprüfe deine Einstellungen. (Fehler: %s)", + "You need to set your account email before being able to send test emails. Go to %s for that.": "Du musst deine Konto-E-Mail-Adresse festlegen, bevor du Test-E-Mails senden kannst. Gehe dazu zu %s.", + "Recently active": "Kürzlich aktiv", + "Disabled accounts": "Deaktivierte Konten", + "Invalid account": "Ungültiges Benutzerkonto", + "Invalid mail address": "Ungültige E-Mail-Adresse", + "Settings saved": "Einstellungen gespeichert", + "Unable to change full name": "Der vollständige Name konnte nicht geändert werden", + "Unable to change email address": "E-Mail-Adresse konnte nicht geändert werden", + "Unable to set invalid phone number": "Ungültige Telefonnummer konnte nicht festgelegt werden", + "Unable to set invalid website": "Ungültige Webseite konnte nicht eingestellt werden", + "Some account data was invalid": "Einige Kontodaten waren ungültig", + "In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):": "Um dein X-Konto zu überprüfen, veröffentliche bitte den folgenden Tweet auf X (Bitte stelle sicher, dass der Tweet keinen Zeilenumbruch enthält):", + "In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):": "Um deine Webseite zu überprüfen, speichere bitte den folgenden Inhalt im Web-Wurzelverzeichnist in der Datei '.well-known/CloudIdVerificationCode.txt' (bitte stelle sicher, das sich der gesamte Text in einer Zeile befindet):", + "%1$s changed your password on %2$s.": "%1$s hat dein Passwort auf %2$s geändert.", + "Your password on %s was changed.": "Dein Passwort auf %s wurde geändert.", + "Your password on %s was reset by an administrator.": "Dein Passwort auf %s wurde vom Administrator zurückgesetzt.", + "Your password on %s was reset.": "Dein Passwort auf %s wurde zurückgesetzt", + "Password for %1$s changed on %2$s": "Passwort für %1$s geändert auf %2$s", + "Password changed for %s": "Passwort geändert für %s", + "If you did not request this, please contact an administrator.": "Wenn du das nicht angefordert haben solltest, wende dich bitte an den Administrator.", + "Your email address on %s was changed.": "Deine E-Mail-Adresse auf %s wurde geändert.", + "Your email address on %s was changed by an administrator.": "Deine E-Mail-Adresse auf %s wurde von einem Administrator geändert.", + "Email address for %1$s changed on %2$s": "E-Mail-Adresse für %1$s geändert auf %2$s", + "Email address changed for %s": "Die E-Mail-Adresse für %s wurde geändert", + "The new email address is %s": "Die neue E-Mail-Adresse lautet %s", + "Your %s account was created": "Dein %s-Konto wurde erstellt", + "Welcome aboard": "Willkommen an Bord", + "Welcome aboard %s": "Willkommen an Bord %s", + "Welcome to your %s account, you can add, protect, and share your data.": "Willkommen zu deinem %s-Konto. Du kannst deine Daten hinzufügen, schützen und teilen.", + "Your Login is: %s": "Dein Anmeldename lautet: %s", + "Set your password": "Setze dein Passwort", + "Go to %s": "%s aufrufen", + "Install Client": "Installiere den Client", + "Logged in account must be a subadmin": "Das angemeldete Konto muss eine Subadministration sein.", + "Apps": "Apps", + "Personal": "Persönlich", + "Administration": "Verwaltung", + "Users": "Benutzer", + "Additional settings": "Zusätzliche Einstellungen", + "Artificial Intelligence": "Künstliche Intelligenz", + "Administration privileges": "Administratorrechte", + "Groupware": "Groupware", + "Overview": "Übersicht", + "Basic settings": "Grundeinstellungen", + "Sharing": "Teilen", + "Availability": "Verfügbarkeit", + "Calendar": "Kalender", + "Personal info": "Persönliche Informationen", + "Mobile & desktop": "Mobil & Desktop", + "Email server": "E-Mail-Server", + "Security & setup warnings": "Sicherheits- & Einrichtungswarnungen", + "Background jobs": "Hintergrund-Jobs", + "Unlimited": "Unbegrenzt", + "Verifying": "Überprüfe", + "Allowed admin IP ranges": "Zulässige Administrations-IP-Bereiche", + "Admin IP filtering isn’t applied.": "Administrations-IP-Filterung ist nicht aktiv.", + "Configuration key \"%1$s\" expects an array (%2$s found). Admin IP range validation will not be applied.": "Der Konfigurationsschlüssel \"%1$s\" erwartet ein Array (%2$s gefunden). Die Validierung des Administrations-IP-Bereichs wird nicht angewendet.", + "Configuration key \"%1$s\" contains invalid IP range(s): \"%2$s\"": "Konfigurationsschlüssel \"%1$s\" enthält ungültige IP-Bereiche: \"%2$s\"", + "Admin IP filtering is correctly configured.": "Administrations-IP-Filterung ist richtig konfiguriert.", + "App directories owner": "Besitzende der App-Ordner", + "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:\n%s": "Einige App-Ordner werden von einem anderen Konto als dem des Web-Servers besessen. Dies kann der Fall sein, wenn Apps manuell installiert wurden. Überprüfe die Berechtigungen der folgenden App-Ordner:\n%s", + "App directories have the correct owner \"%s\"": "App-Ordner haben den richtigen Besitzenden \"%s\"", + "Brute-force Throttle": "Brute-Force-Drosselung", + "Your remote address could not be determined.": "Ihre Remote-Adresse konnte nicht ermittelt werden.", + "Your remote address was identified as \"%s\" and is brute-force throttled at the moment slowing down the performance of various requests. If the remote address is not your address this can be an indication that a proxy is not configured correctly.": "Ihre Remote-Adresse wurde als \"%s\" erkannt und wird derzeit durch die Brute-Force-Erkennung gedrosselt, was die Leistung verschiedener Anfragen verlangsamt. Wenn die Remote-Adresse nicht Ihre Adresse ist, kann dies ein Hinweis darauf sein, dass ein Proxy nicht richtig konfiguriert ist.", + "Your remote address \"%s\" is not brute-force throttled.": "Ihre Remote-Adresse \"%s\" ist nicht durch die Brute-Force-Erkennung gedrosselt.", + "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule.": "Damit diese Prüfung ausgeführt werden kann, musst du sicherstellen, dass dein Webserver eine Verbindung zu sich selbst herstellen kann. Daher muss er in der Lage sein, mindestens eine seiner `trusted_domains` oder `overwrite.cli.url` aufzulösen und eine Verbindung zu ihnen herzustellen. Dieser Fehler kann das Ergebnis einer serverseitigen DNS-Nichtübereinstimmung oder einer ausgehenden Firewall-Regel sein.", + "Old administration imported certificates": "Alte, von der Adminstration importierte Zertifikate", + "A background job is pending that checks for administration imported SSL certificates. Please check back later.": "Eine Hintergrundaufgabe, die nach, von der Adminstration importierten SSL-Zertifikaten sucht, läuft noch. Bitte später erneut versuchen.", + "There are some administration imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below.": "Es sind einige, von der Administration importierte SSL-Zertifikate vorhanden, die von Nextcloud 21 nicht mehr verwendet werden. Du kannst diese über den Befehl \"occ security:certificates:import\" in der Befehlszeile importieren. Ihre Pfade innerhalb des Datenverzeichnisses werden unten angezeigt.", + "Code integrity": "Codeintegrität", + "Integrity checker has been disabled. Integrity cannot be verified.": "Die Integritätsprüfung wurde deaktiviert. Die Integrität kann nicht überprüft werden.", + "No altered files": "Keine veränderten Dateien", + "Some files have not passed the integrity check. {link1} {link2}": "Einige Dateien haben die Integritätsprüfung nicht bestanden. {link1} {link2}", + "Cron errors": "Cron-Fehler", + "It was not possible to execute the cron job via CLI. The following technical errors have appeared:\n%s": "Es war nicht möglich, den Cron-Job über die CLI auszuführen. Es sind folgende technische Fehler aufgetreten:\n%s", + "The last cron job ran without errors.": "Der letzte Cron-Job wurde ohne Fehler ausgeführt.", + "Cron last run": "Cron zuletzt ausgeführt", + "Last background job execution ran %s. Something seems wrong. {link}.": "Letzte Hintergrund-Jobausführung lief %s. Etwas scheint nicht in Ordnung zu sein. {link}.", + "Last background job execution ran %s.": "Letzte Hintergrund-Jobausführung lief %s.", + "Data directory protected": "Datenverzeichnis geschützt", + "Your data directory and files are probably accessible from the internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root.": "Dein Datenverzeichnis und deine Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, deinen Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass du es aus dem Document-Root-Verzeichnis des Webservers herausverschiebst.", + "Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory.": "Konnte nicht überprüfen, ob das Datenverzeichnis geschützt ist. Bitte überprüfe manuell, ob dein Server keinen Zugriff auf das Datenverzeichnis erlaubt.", + "Database missing columns": "In der Datenbank fehlen Spalten", + "Missing optional column \"%s\" in table \"%s\".": "Fehlende optionale Spalte \"%s\" in der Tabelle \"%s\".", + "The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running \"occ db:add-missing-columns\" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability.": "In der Datenbank fehlen einige optionale Spalten. Da das Hinzufügen von Spalten bei großen Tabellen einige Zeit dauern kann, wurden sie nicht automatisch hinzugefügt, wenn sie optional sein können. Durch Ausführen von \"occ db:add-missing-columns\" können diese fehlenden Spalten manuell hinzugefügt werden, während die Instanz weiter läuft. Sobald die Spalten hinzugefügt sind, könnten einige Funktionen die Reaktionsfähigkeit oder die Benutzerfreundlichkeit verbessern.", + "Database missing indices": "In der Datenbank fehlen Indizes", + "Missing indices:": "Fehlende Indizes:", + "\"%s\" in table \"%s\"": "\"%s\" in Tabelle \"%s\"", + "Detected some missing optional indices. Occasionally new indices are added (by Nextcloud or installed applications) to improve database performance. Adding indices can sometimes take awhile and temporarily hurt performance so this is not done automatically during upgrades. Once the indices are added, queries to those tables should be faster. Use the command `occ db:add-missing-indices` to add them. ": "Einige fehlende optionale Indizes wurden erkannt. Gelegentlich werden neue Indizes hinzugefügt (von Nextcloud oder installierten Anwendungen), um die Datenbankleistung zu verbessern. Das Hinzufügen von Indizes kann manchmal eine Weile dauern und die Leistung vorübergehend beeinträchtigen, daher wird dies bei Upgrades nicht automatisch durchgeführt. Sobald die Indizes hinzugefügt wurden, sollten Abfragen an diese Tabellen schneller sein. Verwende den Befehl `occ db:add-missing-indices`, um sie hinzuzufügen.", + "Database missing primary keys": "In der Datenbank fehlen Primärschlüssel", + "Missing primary key on table \"%s\".": "Fehlender Primärschlüssel in Tabelle \"%s\".", + "The database is missing some primary keys. Due to the fact that adding primary keys on big tables could take some time they were not added automatically. By running \"occ db:add-missing-primary-keys\" those missing primary keys could be added manually while the instance keeps running.": "In der Datenbank fehlen einige Primärschlüssel. Aufgrund der Tatsache, dass das Hinzufügen von Primärschlüsseln bei großen Tabellen einige Zeit dauern konnte, wurden sie nicht automatisch hinzugefügt. Durch Ausführen von \"occ db:add-missing-primary-keys\" können diese fehlenden Primärschlüssel manuell hinzugefügt werden, während die Instanz weiter läuft.", + "Database pending bigint migrations": "Datenbank mit ausstehenden Bigint-Migrationen", + "Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically. By running \"occ db:convert-filecache-bigint\" those pending changes could be applied manually. This operation needs to be made while the instance is offline.": "Bei einigen Spalten in der Datenbank fehlt eine Konvertierung in Big Int. Da die Änderung der Spaltentypen bei großen Tabellen einige Zeit in Anspruch nehmen kann, erfolgt die Änderung nicht automatisch. Durch Ausführen von \"occ db:convert-filecache-bigint“ können diese ausstehenden Änderungen manuell durchgeführt werden. Bei der Durchführung muss die Instanz offline sein.", + "Debug mode": "Debug-Modus", + "This instance is running in debug mode. Only enable this for local development and not in production environments.": "Diese Instanz wird im Debug-Modus ausgeführt. Aktiviere dies nur für die lokale Entwicklung und nicht in Produktionsumgebungen.", + "Debug mode is disabled.": "Debug-Modus ist deaktiviert.", + "Default phone region": "Standard-Telefonregion", + "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file.": "Für deine Installation ist keine Standard-Telefonregion festgelegt. Dies ist erforderlich, um Telefonnummern in den Profileinstellungen ohne Ländercode überprüfen zu können. Um Nummern ohne Ländervorwahl zuzulassen, füge bitte „default_phone_region“ mit dem entsprechenden ISO 3166-1-Code der Region zu deiner Konfigurationsdatei hinzu.", + "Email test": "E-Mail-Test", + "Email test was successfully sent": "Die Test-E-Mail wurde erfolgreich versandt", + "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings.": "Du hast deine E-Mail-Serverkonfiguration noch nicht festgelegt oder überprüft. Bitte gehe zu den Grundeinstellungen, um sie einzustellen. Verwende anschließend die Schaltfläche \"E-Mail senden\" unterhalb des Formulars, um deine Einstellungen zu überprüfen.", + "File locking": "Dateisperre", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems.": "Die transaktionale Dateisperre ist deaktiviert, dies kann zu Problemen mit Race Conditions führen. Aktiviere \"filelocking.enabled\" in config.php, um diese Probleme zu vermeiden.", + "The database is used for transactional file locking. To enhance performance, please configure memcache, if available.": "Die Datenbank wird für transaktionale Dateisperren verwendet. Um die Leistung zu verbessern, konfiguriere bitte Memcache, falls verfügbar.", + "Forwarded for headers": "Für Header weitergeleitet", + "Your \"trusted_proxies\" setting is not correctly set, it should be an array.": "Ihre \"trusted_proxies“-Einstellungen sind nicht korrekt, es sollte ein Array sein.", + "Your \"trusted_proxies\" setting is not correctly set, it should be an array of IP addresses - optionally with range in CIDR notation.": "Deine „trusted_proxies“-Einstellung ist nicht richtig eingestellt, es sollte ein Array von IP-Adressen sein – optional mit einem Bereich in CIDR-Notation.", + "The reverse proxy header configuration is incorrect. This is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud.": "Die Konfiguration des Reverse-Proxy-Headers ist falsch. Dies stellt ein Sicherheitsproblem dar und kann es einem Angreifer ermöglichen, seine IP-Adresse so zu fälschen, dass sie für Nextcloud sichtbar ist.", + "Your IP address was resolved as %s": "Ihre IP-Adresse wurde aufgelöst als %s", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud.": "Die Konfiguration des Reverse-Proxy-Headers ist falsch oder du greifst über einen vertrauenswürdigen Proxy auf Nextcloud zu. Andernfalls stellt dies ein Sicherheitsproblem dar und kann es einem Angreifer ermöglichen, seine IP-Adresse so zu fälschen, dass sie für Nextcloud sichtbar ist.", + "HTTPS access and URLs": "HTTPS-Zugriff und URLs", + "Accessing site insecurely via HTTP. You are strongly advised to set up your server to require HTTPS instead. Without it some important web functionality like \"copy to clipboard\" or \"service workers\" will not work!": "Unsicherer Zugriff auf die Website über HTTP. Es wird dringend empfohlen, deinen Server so einzurichten, dass HTTPS erforderlich ist. Ohne HTTPS funktionieren einige wichtige Webfunktionen wie \"Kopieren in die Zwischenablage\" oder \"Service Worker\" nicht!", + "Accessing site insecurely via HTTP.": "Unsicherer Zugriff auf die Website über HTTP.", + "You are accessing your instance over a secure connection, however your instance is generating insecure URLs. This likely means that your instance is behind a reverse proxy and the Nextcloud `overwrite*` config values are not set correctly.": "Du greifst über eine sichere Verbindung auf deine Instanz zu, deine Instanz generiert jedoch unsichere URLs. Dies bedeutet wahrscheinlich, dass sich deine Instanz hinter einem Reverse-Proxy befindet und die Nextcloud-Konfigurationseinstellungen `overwrite*` nicht richtig eingestellt sind.", + "Your instance is generating insecure URLs. If you access your instance over HTTPS, this likely means that your instance is behind a reverse proxy and the Nextcloud `overwrite*` config values are not set correctly.": "Deine Instanz generiert unsichere URLs. Wenn du über HTTPS auf Ihre Instanz zugreifst, bedeutet dies wahrscheinlich, dass sich dein Instanz hinter einem Reverse-Proxy befindet und die Nextcloud-Konfigurationseinstellungen `overwrite*` nicht richtig eingestellt sind.", + "You are accessing your instance over a secure connection, and your instance is generating secure URLs.": "Du greifst über eine sichere Verbindung auf deine Instanz zu, und deine Instanz erstellt sichere URLs.", + "Internet connectivity": "Internetverbindung", + "Internet connectivity is disabled in configuration file.": "Die Internetverbindung ist in der Konfigurationsdatei deaktiviert.", + "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features.": "Dieser Server hat keine funktionierende Internetverbindung: Mehrere Ziele konnten nicht erreicht werden. Dies bedeutet, dass einige Funktionen, wie das Einhängen externer Speicher, Benachrichtigungen über Updates oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Zugriff auf entfernte Dateien und das Senden von E-Mail-Benachrichtigungen wird wahrscheinlich ebenfalls nicht funktionieren. Um alle Funktionen nutzen zu können, stelle bitte eine Internet-Verbindung für diesen Server her.", + "JavaScript modules support": "JavaScript-Modulunterstützung", + "Unable to run check for JavaScript support. Please remedy or confirm manually if your webserver serves `.mjs` files using the JavaScript MIME type.": "Prüfung auf JavaScript-Unterstützung konnte nicht ausgeführt werden. Bitte behebe das Problem oder bestätige manuell, dass dein Webserver `.mjs`-Dateien mit dem JavaScript-MIME-Typ bereitstellt.", + "Your webserver does not serve `.mjs` files using the JavaScript MIME type. This will break some apps by preventing browsers from executing the JavaScript files. You should configure your webserver to serve `.mjs` files with either the `text/javascript` or `application/javascript` MIME type.": "Dein Webserver liefert `.mjs`-Dateien nicht mit dem JavaScript MIME-Typ. Dadurch werden einige Apps beeinträchtigt, da Browser die JavaScript-Dateien nicht ausführen können. Konfiguriere deinen Webserver so, dass er `.mjs`-Dateien entweder mit dem MIME-Typ `text/javascript` oder `application/javascript` ausliefert.", + "JavaScript source map support": "Unterstützung für JavaScript-Quellkarten", + "Your webserver is not set up to serve `.js.map` files. Without these files, JavaScript Source Maps won't function properly, making it more challenging to troubleshoot and debug any issues that may arise.": "Dein Webserver ist nicht für die Bereitstellung von `.js.map`-Dateien eingerichtet. Ohne diese Dateien funktionieren JavaScript Source Maps nicht ordnungsgemäß, was die Fehlersuche und -behebung eventuell auftretender Probleme erschwert.", + "Old server-side-encryption": "Alte serverseitige Verschlüsselung", + "Disabled": "Deaktiviert", + "The old server-side-encryption format is enabled. We recommend disabling this.": "Das alte serverseitige Verschlüsselungsformat ist aktiviert. Es wird empfohlen, es zu deaktivieren.", + "Maintenance window start": "Beginn des Wartungsfensters", + "Server has no maintenance window start time configured. This means resource intensive daily background jobs will also be executed during your main usage time. We recommend to set it to a time of low usage, so users are less impacted by the load caused from these heavy tasks.": "Der Server hat keine konfigurierte Startzeit für das Wartungsfenster. Das bedeutet, dass ressourcenintensive tägliche Hintergrundaufgaben auch während deiner Hauptnutzungszeit ausgeführt werden. Wir empfehlen, das Wartungsfenster auf eine Zeit mit geringer Nutzung festzulegen, damit Benutzer weniger von der Belastung durch diese umfangreichen Aufgaben beeinträchtigt werden.", + "Maintenance window to execute heavy background jobs is between {start}:00 UTC and {end}:00 UTC": "Wartungsfenster zur Ausführung von umfangreichen Hintergrundaufgaben liegt zwischen {start}:00 UTC und {end}:00 UTC", + "Memcache": "Memcache", + "Memcached is configured as distributed cache, but the wrong PHP module (\"memcache\") is installed. Please install the PHP module \"memcached\".": "Memcached ist als verteilter Cache konfiguriert, aber das falsche PHP-Modul („memcache“) ist installiert. Bitte installiere das PHP-Modul \"memcached“.", + "Memcached is configured as distributed cache, but the PHP module \"memcached\" is not installed. Please install the PHP module \"memcached\".": "Memcached ist als verteilter Cache konfiguriert, das PHP-Modul \"memcached“ ist jedoch nicht installiert. Bitte installiere das PHP-Modul \"memcached“.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available.": "Es wurde kein Speichercache konfiguriert. Um die Leistung zu verbessern, konfiguriere bitte Memcache, sofern verfügbar.", + "Configured": "Eingerichtet", + "Mimetype migrations available": "MIME-Type-Migrationen verfügbar", + "One or more mimetype migrations are available. Occasionally new mimetypes are added to better handle certain file types. Migrating the mimetypes take a long time on larger instances so this is not done automatically during upgrades. Use the command `occ maintenance:repair --include-expensive` to perform the migrations.": "Eine oder mehrere MIME-Type-Migrationen sind verfügbar. Gelegentlich werden neue MIME-Typen hinzugefügt, um bestimmte Dateitypen besser handhaben zu können. Die Migration der MIME-Typen dauert bei größeren Instanzen lange, daher erfolgt sie bei Upgrades nicht automatisch. Verwende den Befehl `occ maintenance:repair --include-expensive`, um die Migrationen durchzuführen.", + "MySQL Unicode support": "MySQL Unicode-Unterstützung", + "You are not using MySQL": "Du verwendest kein MySQL", + "MySQL is used as database and does support 4-byte characters": "MySQL wird als Datenbank verwendet und unterstützt 4-Byte-Zeichen", + "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL.": "MySQL wird als Datenbank verwendet, unterstützt jedoch keine 4-Byte-Zeichen. Um 4-Byte-Zeichen (wie Emojis) ohne Probleme z.B. in Dateinamen oder Kommentaren verwenden zu können, wird empfohlen, die 4-Byte-Unterstützung in MySQL zu aktivieren.", + "OCS provider resolving": "OCS Anbieter-Auflösung", + "Could not check if your web server properly resolves the OCM and OCS provider URLs.": "Es konnte nicht überprüft werden, ob dein Web-Server die OCM- und OCS-Anbieter-URLs ordnungsgemäß auflöst.", + "Your web server is not properly set up to resolve %1$s.\nThis is most likely related to a web server configuration that was not updated to deliver this folder directly.\nPlease compare your configuration against the shipped rewrite rules in \".htaccess\" for Apache or the provided one in the documentation for Nginx.\nOn Nginx those are typically the lines starting with \"location ~\" that need an update.": "Dein Webserver ist nicht ordnungsgemäß für die Auflösung von %1$s eingerichtet.\nDies hängt höchstwahrscheinlich mit einer Webserver-Konfiguration zusammen, die nicht dahingehend aktualisiert wurde, diesen Ordner direkt zu auszuliefern.\nBitte vergleiche deine Konfiguration mit den mitgelieferten Rewrite-Regeln in \".htaccess\" für Apache oder den in der Nginx-Dokumentation mitgelieferten.\nAuf Nginx sind das typischerweise die Zeilen, die mit \"location ~\" beginnen und ein Update benötigen.", + "Overwrite CLI URL": "CLI-URL überschreiben", + "The \"overwrite.cli.url\" option in your config.php is correctly set to \"%s\".": "Die Option \"overwrite.cli.url\" in deiner config.php ist korrekt auf \"%s\" festgelegt.", + "The \"overwrite.cli.url\" option in your config.php is set to \"%s\" which is a correct URL. Suggested URL is \"%s\".": "Die Option \"overwrite.cli.url\" in deiner config.php ist auf \"%s\" festgelegt. Dies ist eine gültige URL. Die vorgeschlagene URL lautet \"%s\".", + "Please make sure to set the \"overwrite.cli.url\" option in your config.php file to the URL that your users mainly use to access this Nextcloud. Suggestion: \"%s\". Otherwise there might be problems with the URL generation via cron. (It is possible though that the suggested URL is not the URL that your users mainly use to access this Nextcloud. Best is to double check this in any case.)": "Bitte stelle sicher, dass du die Option \"overwrite.cli.url\" in deiner config.php-Datei auf die URL setzt, die deine Benutzenden hauptsächlich verwenden, um auf diese Nextcloud zuzugreifen. Vorschlag: \"%s\". Andernfalls kann es Probleme bei der URL-Generierung über Cron geben. (Es ist jedoch möglich, dass die vorgeschlagene URL nicht die URL ist, die Ihre Benutzer hauptsächlich verwenden, um auf diese Nextcloud zuzugreifen. Am besten überprüfst du dies in jedem Fall.)", + "PHP default charset": "PHP-Standardzeichensatz", + "PHP configuration option \"default_charset\" should be UTF-8": "Die PHP-Konfigurationsoption \"default_charset\" sollte UTF-8 sein", + "PHP set_time_limit": "PHP set_time_limit", + "The function is available.": "Die Funktion ist verfügbar.", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended.": "Die PHP-Funktion \"set_time_limit\" ist nicht verfügbar. Dies kann in angehaltenen Skripten oder einer fehlerhaften Installation resultieren. Es wird dringend empfohlen, diese Funktion zu aktivieren.", + "Freetype": "Freetype", + "Supported": "Unterstützt", + "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface.": "Dein PHP unterstützt Freetype nicht. Dies wird defekte Profilbilder und eine defekte Anzeige der Einstellungen verursachen.", + "PHP getenv": "PHP getenv", + "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response.": "PHP scheint zur Abfrage von Systemumgebungsvariablen nicht richtig eingerichtet zu sein. Der Test mit getenv(\"PATH\") liefert nur eine leere Antwort zurück.", + "PHP memory limit": "PHP-Speicherlimit", + "The PHP memory limit is below the recommended value of %s.": "Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von %s.", + "PHP modules": "PHP-Module", + "increases language translation performance and fixes sorting of non-ASCII characters": "Erhöht die Sprach-Übersetzungsleistung und behebt ein Problem mit der Sortierung von Nicht-ASCII-Zeichen", + "for Argon2 for password hashing": "für Argon2 zum Passwort-Hashing", + "for WebAuthn passwordless login": "für WebAuthn passwortlose Anmeldung", + "for WebAuthn passwordless login, and SFTP storage": "für WebAuthn passwortlose Anmeldung und SFTP-Speicher", + "for picture rotation in server and metadata extraction in the Photos app": "für Bildrotation im Server und Metadatenextraktion in der Fotos-App", + "This instance is missing some required PHP modules. It is required to install them: %s.": "Dieser Instanz fehlen einige erforderliche PHP-Module. Folgende Module müssen installiert sein:%s .", + "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them:\n%s": "Dieser Instanz fehlen einige empfohlene PHP-Module. Für eine verbesserte Leistung und bessere Kompatibilität wird dringend empfohlen, diese zu installieren:\n%s", + "PHP opcache": "PHP OPcache", + "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation.": "Das PHP-OPcache-Modul ist nicht geladen. Für eine bessere Leistung empfiehlt es sich, das Modul in deiner PHP-Installation zu laden.", + "OPcache is disabled. For better performance, it is recommended to apply \"opcache.enable=1\" to your PHP configuration.": "OPcache ist deaktiviert. Für eine bessere Leistung empfiehlt es sich, in der PHP-Konfiguration \"opcache.enable=1\" zu setzen.", + "The shared memory based OPcache is disabled. For better performance, it is recommended to apply \"opcache.file_cache_only=0\" to your PHP configuration and use the file cache as second level cache only.": "Der OPcache mit gemeinsamem Speicher ist deaktiviert. Für eine bessere Leistung wird empfohlen, \"opcache.file_cache_only=0\" in die PHP-Konfiguration aufzunehmen und den Dateicache nur als Second Level Cache zu verwenden.", + "OPcache is not working as it should, opcache_get_status() returns false, please check configuration.": "OPcache funktioniert nicht wie erwartet, opcache_get_status() gibt false zurück, bitte die Konfiguration überprüfen.", + "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be kept in the cache, it is recommended to apply \"opcache.max_accelerated_files\" to your PHP configuration with a value higher than \"%s\".": "Die maximale Anzahl der OPcache-Schlüssel wird annähernd überschritten. Um sicherzustellen, dass alle Skripte im Cache gespeichert werden können, empfiehlt es sich, \"opcache.max_accelerated_files\" mit einem Wert größer als \"%s\" in der PHP-Konfiguration zu setzen.", + "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply \"opcache.memory_consumption\" to your PHP configuration with a value higher than \"%s\".": "Der OPcache-Puffer ist fast voll. Um sicherzustellen, dass alle Skripte im Cache gehalten werden können, wird empfohlen, \"opcache.memory_consumption\" in der PHP-Konfiguration mit einem Wert höher als \"%s\" zu setzen.", + "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply \"opcache.interned_strings_buffer\" to your PHP configuration with a value higher than \"%s\".": "Der \"OPcache interned strings\"-Puffer ist fast voll. Um sicherzustellen, dass sich wiederholende Strings effektiv zwischengespeichert werden können, wird empfohlen, \"opcache.interned_strings_buffer\" mit einem Wert größer als \"%s\" in der PHP-Konfiguration zu setzen.", + "OPcache is configured to remove code comments. With OPcache enabled, \"opcache.save_comments=1\" must be set for Nextcloud to function.": "OPcache ist so konfiguriert, dass Code-Kommentare entfernt werden Mit aktiviertem OPcache muss \"opcache.save_comments=1\" gesetzt werden, damit die Nextcloud funktioniert.", + "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with \"opcache.restrict_api\" or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades.": "Nextcloud darf die OPcache-API nicht verwenden. Mit aktiviertem OPcache wird empfohlen, alle Nextcloud-Verzeichnisse mit \"opcache.restrict_api\" einzuschließen oder diese Einstellung zu deaktivieren, um OPcache API-Beschränkungen zu deaktivieren und Fehler während Nextcloud-Core- oder App-Aktualisierungen zu vermeiden.", + "The PHP OPcache module is not properly configured. %s.": "Das PHP OPcache-Modul ist nicht ordnungsgemäß konfiguriert. %s.", + "Correctly configured": "Korrekt konfiguriert", + "PHP version": "PHP-Version", + "You are currently running PHP %s. PHP 8.1 is now deprecated in Nextcloud 30. Nextcloud 31 may require at least PHP 8.2. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible.": "Du verwendest derzeit PHP %s. PHP 8.1 ist ab Nextcloud 30 veraltet. Nextcloud 31 erfordert möglicherweise mindestens PHP 8.2. Bitte aktualisiere so schnell wie möglich auf eine der offiziell unterstützten PHP-Versionen der PHP-Gruppe.", + "You are currently running PHP %s.": "Du benutzt aktuell PHP %s.", + "PHP \"output_buffering\" option": "PHP-Option \"output_buffering\"", + "PHP configuration option \"output_buffering\" must be disabled": "Die PHP-Konfigurationsoption \"output_buffering“ muss deaktiviert sein", + "Push service": "Push-Dienst", + "Valid enterprise license": "Gültige Unternehmenslizenz", + "Free push service": "Kostenloser Push-Dienst", + "This is the unsupported community build of Nextcloud. Given the size of this instance, performance, reliability and scalability cannot be guaranteed. Push notifications are limited to avoid overloading our free service. Learn more about the benefits of Nextcloud Enterprise at {link}.": "Dies ist der nicht unterstützte Community-Build von Nextcloud. Angesichts der Größe dieser Instanz können Leistung, Zuverlässigkeit und Skalierbarkeit nicht garantiert werden. Push-Benachrichtigungen wurden beschränkt, um eine Überlastung unseres kostenlosen Dienstes zu vermeiden. Erfahre mehr über die Vorteile von Nextcloud Enterprise unter {link}.", + "Random generator": "Zufallsgenerator", + "No suitable source for randomness found by PHP which is highly discouraged for security reasons.": "PHP hat keine geeignete Quelle für Zufälligkeit gefunden, wovon aus Sicherheitsgründen dringend abgeraten wird.", + "Secure": "Sicher", + "Configuration file access rights": "Zugriffsrechte für die Konfigurationsdatei", + "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update.": "Die schreibgeschützte Konfiguration wurde aktiviert. Dies verhindert das Setzen einiger Einstellungen über die Web-Oberfläche. Weiterhin muss bei jedem Update der Schreibzugriff auf die Datei händisch aktiviert werden.", + "Nextcloud configuration file is writable": "Die Nextcloud-Konfigurationsdatei ist beschreibbar", + "Scheduling objects table size": "Größe der Planungsobjekttabelle", + "You have more than %s rows in the scheduling objects table. Please run the expensive repair jobs via occ maintenance:repair --include-expensive.": "Du hast mehr als %s Zeilen in der Tabelle der geplanten Objekte. Bitte führe umfangreiche Reparaturaufträge mittels occ maintenance:repair --include-expensive aus.", + "Scheduling objects table size is within acceptable range.": "Die Größe der Planungsobjekttabelle liegt im akzeptablen Bereich.", + "HTTP headers": "HTTP-Header", + "- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly.": "- Der `%1$s`-HTTP-Header ist nicht auf `%2$s` gesetzt. Einige Funktionen arbeiten möglicherweise nicht richtig. Es wird daher empfohlen, diese Einstellung entsprechend anzupassen.", + "- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.": "- Der HTTP-Header `%1$s` ist nicht auf `%2$s` gesetzt. Dies stellt ein potenzielles Sicherheits- oder Datenschutzrisiko dar und es wird empfohlen, diese Einstellung zu ändern.", + "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.": "- Der HTTP-Header `%1$s` enthält nicht `%2$s`. Dies stellt ein potenzielles Sicherheits- oder Datenschutzrisiko dar und es wird empfohlen, diese Einstellung zu ändern.", + "- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}.": "- Der HTTP-Header `%1$s` ist nicht auf \"%2$s\", \"%3$s\", \"%4$s\", \"%5$s\" oder \"%6$s\" gesetzt. Dadurch können Verweisinformationen preisgegeben werden. Siehe die {w3c-recommendation}.", + "- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy.": "- Der HTTP-Header `Strict-Transport-Security` ist nicht auf mindestens `%d` Sekunden eingestellt (aktueller Wert: `%d`). Für erhöhte Sicherheit wird die Verwendung einer langen HSTS-Richtlinie empfohlen.", + "- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS.": "- Der `Strict-Transport-Security`-HTTP-Header ist fehlerhaft: `%s`. Für erhöhte Sicherheit wird empfohlen, HSTS zu aktivieren.", + "- The `Strict-Transport-Security` HTTP header is not set (should be at least `%d` seconds). For enhanced security, it is recommended to enable HSTS.": "- Der `Strict-Transport-Security`-HTTP-Header ist nicht gesetzt (er sollte mindestens `%d` Sekunden betragen). Für erhöhte Sicherheit wird empfohlen, HSTS zu aktivieren.", + "Some headers are not set correctly on your instance": "Einige Header sind in deiner Instanz nicht richtig eingestellt", + "Could not check that your web server serves security headers correctly. Please check manually.": "Es konnte nicht überprüft werden, ob dein Webserver Sicherheitsheader korrekt bereitstellt. Bitte überprüfen Sie dies manuell.", + "Could not check that your web server serves security headers correctly, unable to query `%s`": "Es konnte nicht überprüft werden, ob dein Webserver Sicherheitsheader korrekt bereitstellt. Die Abfrage von `%s` ist nicht möglich", + "Your server is correctly configured to send security headers.": "Dein Server ist korrekt für das Senden von Sicherheitsheadern konfiguriert.", + "Database version": "Datenbankversion", + "MariaDB version 10.3 detected, this version is end-of-life and only supported as part of Ubuntu 20.04. MariaDB >=%1$s and <=%2$s is suggested for best performance, stability and functionality with this version of Nextcloud.": "MariaDB Version 10.3 erkannt, diese Version hat das Ende ihres Lebenszyklus erreicht und wird nur noch als Teil von Ubuntu 20.04 unterstützt. Für optimale Leistung, Stabilität und Funktionalität mit dieser Version von Nextcloud wird MariaDB >= %1$s und %2$s <= empfohlen.", + "MariaDB version \"%1$s\" detected. MariaDB >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud.": "MariaDB-Version \"%1$s\" erkannt. Für optimale Leistung, Stabilität und Funktionalität mit dieser Version von Nextcloud wird MariaDB >= %2$s und %3$s <= empfohlen.", + "MySQL version \"%1$s\" detected. MySQL >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud.": "MySQL-Version \"%1$s\" erkannt. Für optimale Leistung, Stabilität und Funktionalität mit dieser Version von Nextcloud wird MySQL >= %2$s und %3$s <= empfohlen.", + "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud.": "PostgreSQL-Version \"%s\" erkannt. Für optimale Leistung, Stabilität und Funktionalität mit dieser Version von Nextcloud wird PostgreSQL >=12 und <=16 empfohlen.", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend. This is particularly recommended when using the desktop client for file synchronisation. To migrate to another database use the command line tool: \"occ db:convert-type\".": "Als Backend-Datenbank wird derzeit SQLite verwendet. Bei größeren Installationen empfehlen wir den Wechsel auf ein anderes Datenbank-Backend. Dies empfiehlt sich insbesondere bei der Nutzung des Desktop-Clients zur Dateisynchronisierung. Um zu einer anderen Datenbank zu migrieren, verwende das Befehlszeilentool: \"occ db:convert-type\".", + "Unknown database platform": "Unbekannte Datenbankplattform", + "Architecture": "Architektur", + "64-bit": "64-bit", + "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!": "Anscheinend verwendest du eine 32-Bit-PHP-Version. Nextcloud benötigt 64-Bit, um gut zu laufen. Bitte aktualisiere dein Betriebssystem und PHP auf 64-Bit!", + "Temporary space available": "Temporärer Platz verfügbar", + "Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s": "Fehler beim Überprüfen des temporären PHP-Pfads - er wurde nicht ordnungsgemäß auf ein Verzeichnis festgelegt. Zurückgegebener Wert: %s", + "The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories.": "Die PHP-Funktion \"disk_free_space\" ist deaktiviert, was die Überprüfung auf ausreichend Speicherplatz in den temporären Verzeichnissen verhindert.", + "Error while checking the available disk space of temporary PHP path or no free disk space returned. Temporary path: %s": "Fehler beim Prüfen des verfügbaren Festplattenspeichers des temporären PHP-Pfads oder kein freien Festplattenspeicherplatz zurückgegeben. Temporärer Pfad: %s", + "- %.1f GiB available in %s (PHP temporary directory)": "- %.1f GiB verfügbar in %s (PHP temporäres Verzeichnis)", + "- %.1f GiB available in %s (Nextcloud temporary directory)": "- %.1f GiB verfügbar in %s (Nextcloud temporäres Verzeichnis)", + "Temporary directory is correctly configured:\n%s": "Das temporäre Verzeichnis ist korrekt konfiguriert:\n%s", + "This instance uses an S3 based object store as primary storage, and has enough space in the temporary directory.\n%s": "Diese Instanz verwendet einen S3-basierten Objektspeicher als Primärspeicher und verfügt über ausreichend Speicherplatz im temporären Verzeichnis. \n%s", + "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GiB of free space available in the temp directory of PHP. To improve this please change the temporary directory in the php.ini or make more space available in that path. \nChecking the available space in the temporary path resulted in %.1f GiB instead of the recommended 50 GiB. Path: %s": "Diese Instanz verwendet einen S3-basierten Objektspeicher als Primärspeicher. Die hochgeladenen Dateien werden temporär auf dem Server gespeichert und es wird daher empfohlen, 50 GiB freien Speicherplatz im temp-Verzeichnis von PHP zur Verfügung zu haben. Um dies zu verbessern, ändere bitte das temporäre Verzeichnis in der php.ini oder stelle mehr Platz in diesem Pfad zur Verfügung. \nDie Überprüfung des verfügbaren Speicherplatzes im temporären Pfad ergab %.1f GiB anstelle der empfohlenen 50 GiB. Pfad: %s", + "Database transaction isolation level": "Isolationsstufe der Datenbanktransaktion", + "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel.": "Deine Datenbank läuft nicht mit der Transaktionsisolationsstufe \"READ COMMITED\". Dies kann Probleme hervorrufen, wenn mehrere Aktionen parallel ausgeführt werden.", + "Was not able to get transaction isolation level: %s": "Die Isolationsstufe der Transaktion konnte nicht ermittelt werden: %s", + ".well-known URLs": ".well-known URLs", + "`check_for_working_wellknown_setup` is set to false in your configuration, so this check was skipped.": "`check_for_working_wellknown_setup` ist in deiner Konfiguration auf „false“ gesetzt, daher wurde diese Prüfung übersprungen.", + "Could not check that your web server serves `.well-known` correctly. Please check manually.": "Es konnte nicht überprüft werden, ob dein Webserver `.well-known` korrekt bereitstellt. Bitte überprüfe dies manuell.", + "Your web server is not properly set up to resolve `.well-known` URLs, failed on:\n`%s`": "Dein Webserver ist nicht ordnungsgemäß für die Auflösung von `.well-known`-URLs eingerichtet. Fehler bei: `%s`", + "Your server is correctly configured to serve `.well-known` URLs.": "Dein Server ist korrekt für die Bereitstellung von `.well-known`-URLs konfiguriert.", + "WOFF2 file loading": "WOFF2-Datei laden", + "Could not check for WOFF2 loading support. Please check manually if your webserver serves `.woff2` files.": "Konnte die Prüfung der WOFF2-Ladeunterstützung nicht durchführen. Bitte überprüfe manuell, ob dein Webserver `.woff2`-Dateien bereitstellt.", + "Your web server is not properly set up to deliver .woff2 files. This is typically an issue with the Nginx configuration. For Nextcloud 15 it needs an adjustement to also deliver .woff2 files. Compare your Nginx configuration to the recommended configuration in our documentation.": "Dein Web-Server ist nicht richtig eingerichtet um .woff2-Dateien auszuliefern. Dies liegt meist an der Nginx-Konfiguration. Für Nextcloud 15 wird eine Anpassung für die Auslieferung von .woff2-Dateien benötigt. Vergleiche deine Nginx-Konfiguration mit der empfohlenen Nginx-Konfiguration in unserer Dokumentation.", + "Profile information": "Profilinformation", + "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled": "Profilbild, vollständiger Name, E-Mail-Adresse, Telefonnummer, Adresse, Webseite, X, Organisation, Rolle, Überschrift, Biografie und ob dein Profil aktiviert ist", + "Nextcloud settings": "Nextcloud-Einstellungen", + "Unified task processing": "Vereinheitlichte Aufgabenbearbeitung", + "AI tasks can be implemented by different apps. Here you can set which app should be used for which task.": "KI-Aufgaben können mittels verschiedener Apps umgesetzt werden. Hier kannst du einstellen, welche App für welche Aufgabe verwendet werden soll.", + "Task:": "Aufgabe:", + "None of your currently installed apps provide Task processing functionality": "Keine deiner derzeit installierten Apps stellt Funktionen zur Aufgabenverarbeitung bereit", + "Machine translation": "Maschinelle Übersetzung", + "Machine translation can be implemented by different apps. Here you can define the precedence of the machine translation apps you have installed at the moment.": "Maschinelle Übersetzung kann mittels verschiedener Apps implementiert werden. Hier kannst du die Priorität der von dir aktuell installierten maschinellen Übersetzungs-Apps festlegen.", + "Speech-To-Text": "Sprache-zu-Text", + "Speech-To-Text can be implemented by different apps. Here you can set which app should be used.": "Sprache-zu-Text kann mittels verschiedener Apps implementiert werden. Hier kannst du einstellen, welche App verwendet werden soll.", + "None of your currently installed apps provide Speech-To-Text functionality": "Keine deiner derzeit installierten Apps bietet Sprache-zu-Text-Funktionalität.", + "Image generation": "Bilderstellung", + "Image generation can be implemented by different apps. Here you can set which app should be used.": "Die Bilderstellung kann durch verschiedene Apps implementiert werden. Hier kannst du einstellen, welche App verwendet werden soll.", + "None of your currently installed apps provide image generation functionality": "Keine deiner derzeit installierten Apps bietet Funktionen zur Bilderstellung.", + "Text processing": "Textverarbeitung", + "Text processing tasks can be implemented by different apps. Here you can set which app should be used for which task.": "Textverarbeitungsaufgaben können mittels verschiedener Apps umgesetzt werden. Hier kannst du einstellen, welche App für welche Aufgabe verwendet werden soll.", + "None of your currently installed apps provide Text processing functionality": "Keine deiner derzeit installierten Apps bietet Funktionalität zur Textverarbeitung.", + "Here you can decide which group can access certain sections of the administration settings.": "Hier kannst du festlegen, welche Gruppe auf bestimmte Bereiche der Verwaltungseinstellungen zugreifen kann.", + "None": "Keine", + "Unable to modify setting": "Einstellung konnte nicht geändert werden", + "Allow apps to use the Share API": "Apps die Benutzung der Share-API erlauben", + "Allow resharing": "Weiterverteilen erlauben", + "Allow sharing with groups": "Teilen mit Gruppen erlauben", + "Restrict users to only share with users in their groups": "Benutzer auf das Teilen innerhalb ihrer Gruppen beschränken", + "Ignore the following groups when checking group membership": "Die folgenden Gruppen beim Überprüfen der Gruppenmitgliedschaft ignorieren", + "Allow users to share via link and emails": "Benutzern erlauben, Inhalte über Links und E-Mails zu teilen", + "Allow public uploads": "Öffentliches Hochladen erlauben", + "Always ask for a password": "Immer nach einem Passwort fragen", + "Enforce password protection": "Passwortschutz erzwingen", + "Exclude groups from password requirements": "Gruppen von Passwortanforderungen ausschließen", + "Exclude groups from creating link shares": "Gruppen von der Erstellung von Link-Freigaben ausschließen", + "Limit sharing based on groups": "Freigeben basierend auf Gruppen beschränken", + "Allow sharing for everyone (default)": "Teilen für alle erlauben (Standard)", + "Exclude some groups from sharing": "Einige Gruppen vom Teilen ausschließen", + "Limit sharing to some groups": "Teilen auf einige Gruppen beschränken", + "Groups allowed to share": "Gruppen, die teilen dürfen", + "Groups excluded from sharing": "Von der Linkfreigabe ausgeschlossene Gruppen", + "Not allowed groups will still be able to receive shares, but not to initiate them.": "Nicht zugelassene Gruppen können zwar weiterhin Freigaben empfangen, aber nicht erstellen.", + "Set default expiration date for shares": "Lege das Standardablaufdatum für Freigaben fest", + "Enforce expiration date": "Ablaufdatum erzwingen", + "Default expiration time of new shares in days": "Standardablaufzeit neuer Freigaben in Tagen", + "Expire shares after x days": "Freigaben laufen nach x Tagen ab", + "Set default expiration date for shares to other servers": "Standardablaufdatum für Freigaben an andere Server festlegen", + "Enforce expiration date for remote shares": "Ablaufdatum für Remote-Freigaben erzwingen", + "Default expiration time of remote shares in days": "Standardablaufzeit für Remote-Freigaben in Tagen", + "Expire remote shares after x days": "Remote-Freigaben laufen nach x Tagen ab", + "Set default expiration date for shares via link or mail": "Standardablaufzeit für Link- oder E-Mail-Freigaben festlegen", + "Default expiration time of shares in days": "Standardablaufzeit für Freigaben in Tagen", + "Privacy settings for sharing": "Datenschutzeinstellungen bezüglich des Teilens", + "Allow account name autocompletion in share dialog and allow access to the system address book": "Automatische Vervollständigung des Kontonamens im Freigabedialog und Zugriff auf das Systemadressbuch zulassen", + "If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user.": "Wenn die Autovervollständigung \"gleiche Gruppe\" und \"Rufnummernintegration\" aktiviert ist, reicht eine Übereinstimmung in einem der beiden Bereiche aus, um den Benutzer anzuzeigen.", + "Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)": "Ermöglicht die automatische Vervollständigung, wenn der vollständigen Namen oder die E-Mail-Adresse eingeben wird (ignoriert fehlende Telefonbuchübereinstimmungen und bei gleicher Gruppenzugehörigkeit)", + "Show disclaimer text on the public link upload page (only shown when the file list is hidden)": "Zeige Haftungsausschluss auf der öffentlichen Upload-Seite (Wird nur gezeigt, wenn die Dateiliste nicht angezeigt wird.) ", + "Disclaimer text": "Haftungsausschlusstext", + "This text will be shown on the public link upload page when the file list is hidden.": "Dieser Text wird auf der öffentlichen Upload-Seite angezeigt wenn die Dateiliste nicht angezeigt wird.", + "Default share permissions": "Standardberechtigungen für das Teilen", + "Changed disclaimer text": "Geänderter Haftungsausschlusstext", + "Deleted disclaimer text": "Haftungsausschlusstext gelöscht", + "Could not set disclaimer text": "Haftungsausschlusstext konnte nicht festgelegt werden", + "Two-Factor Authentication": "Zwei-Faktor-Authentifizierung", + "Two-factor authentication can be enforced for all accounts and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system.": "Zwei-Faktor-Authentifizierung kann für alle Konten und spezifische Gruppen erzwungen werden. Wenn du keinen Anbieter für Zwei-Faktor-Authentifizierung konfiguriert hast, kannst du dich nicht am System anmelden.", + "Enforce two-factor authentication": "Zwei-Faktor-Authentifizierung erzwingen", + "Limit to groups": "Auf Gruppen beschränken", + "Enforcement of two-factor authentication can be set for certain groups only.": "Erzwingen der Zwei-Faktor-Authentifizierung kann nur für bestimmte Gruppen eingestellt werden.", + "Two-factor authentication is enforced for all members of the following groups.": "Zwei-Faktor-Authentifizierung wird für alle Mitglieder der folgenden Gruppen erzwungen.", + "Enforced groups": "Erzwungene Gruppen", + "Two-factor authentication is not enforced for members of the following groups.": "Zwei-Faktor-Authentifizierung wird für Mitglieder der folgenden Gruppen nicht erzwungen.", + "Excluded groups": "Ausgeschlossene Gruppen", + "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced.": "Bei der Auswahl/Abwahl von Gruppen wird folgende Logik verwendet, um festzustellen, ob ein Konto 2FA verwenden muss: Wenn keine Gruppe ausgewählt ist, dann wird 2FA für alle Konten aktiviert, außer für solche der ausgenommenen Gruppen. Sind Gruppen ausgewählt, so wird 2FA für alle Kontendieser Gruppen aktiviert. Ist ein Konto sowohl in einer ausgewählten als auch in einer ausgenommenen Gruppe, so hat die Auswahl Vorrang und 2FA wird aktiviert.", + "Save changes": "Änderungen speichern", + "Show details for {appName} app": "Details für die App {appName} anzeigen", + "Update to {update}": "Aktualisieren auf {update}", + "Remove": "Entfernen", + "Disable": "Deaktivieren", + "Featured": "Vorgestellt", + "This app is supported via your current Nextcloud subscription.": "Diese App wird von deinem aktuellen Nextcloud-Abonnement unterstützt.", + "Featured apps are developed by and within the community. They offer central functionality and are ready for production use.": "Vorgestellte Apps werden von und innerhalb der Nextcloud-Community entwickelt. Sie stellen zentrale Funktionen bereit und sind für den produktiven Einsatz geeignet.", + "Community rating: {score}/5": "Community-Bewertung: {score}/5", + "All apps are up-to-date.": "Alle Apps sind aktuell.", + "Icon": "Symbol", + "Name": "Name", + "Version": "Version", + "Level": "Level", + "Actions": "Aktionen", + "Results from other categories": "Ergebnisse aus anderen Kategorien", + "No apps found for your version": "Es wurden keine Apps für deine Version gefunden", + "Disable all": "Alle deaktivieren", + "Download and enable all": "Alle herunterladen und aktivieren", + "_%n app has an update available_::_%n apps have an update available_": [ + "Für eine App ist eine Aktualisierung verfügbar.", + "Für %n Apps sind Aktualisierungen verfügbar." + ], + "_Update_::_Update all_": [ + "Aktualisieren", + "Alle aktualisieren" + ], + "Nothing to show": "Nichts anzuzeigen", + "Could not load section content from app store.": "Abschnittsinhalt konnte nicht aus dem App Store geladen werden.", + "Loading": "Lade", + "Fetching the latest news…": "Aktuelle Nachrichten werden abgerufen…", + "Could not load app discover section": "Der App-Entdeckungsabschnitt konnte nicht geladen werden", + "Could not render element": "Element konnte nicht dargestellt werden", + "Carousel": "Karussell", + "Previous slide": "Vorherige Folie", + "Next slide": "Nächste Folie", + "Choose slide to display": "Folie zum Anzeigen auswählen", + "{index} of {total}": "{index} von {total}", + "Description": "Beschreibung", + "Details": "Details", + "All": "Alle", + "Limit app usage to groups": "App-Verwendung auf Gruppen beschränken", + "No results": "Keine Ergebnisse", + "Update to {version}": "Aktualisieren auf {version}", + "This app has no minimum Nextcloud version assigned. This will be an error in the future.": "Für diese App wurde keine untere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.", + "This app has no maximum Nextcloud version assigned. This will be an error in the future.": "Für diese App wurde keine obere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.", + "This app cannot be installed because the following dependencies are not fulfilled:": "Diese App kann nicht installiert werden, weil die folgenden Abhängigkeiten nicht erfüllt sind:", + "Latest updated": "Zuletzt aktualisiert", + "Author": "Autor", + "Categories": "Kategorien", + "Resources": "Ressourcen", + "Documentation": "Dokumentation", + "Interact": "Interagieren", + "Report a bug": "Einen technischen Fehler melden", + "Request feature": "Funktion vorschlagen", + "Ask questions or discuss": "Fragen stellen oder diskutieren", + "Rate the app": "App bewerten", + "Rate": "Bewerten", + "View in store": "Im Store anzeigen", + "Visit website": "Webseite besuchen", + "Usage documentation": "Nutzungsdokumentation", + "Admin documentation": "Dokumentation für Administratoren", + "Developer documentation": "Dokumentation für Entwickler", + "Changelog": "Liste der Veränderungen", + "Device name": "Gerätename", + "Cancel renaming": "Umbenennen abbrechen", + "Save new name": "Neuen Namen speichern", + "Marked for remote wipe": "Für Fernlöschung markiert", + "Device settings": "Geräteeinstellungen", + "Allow filesystem access": "Erlaube Dateisystem-Zugriff", + "Rename": "Umbenennen", + "Revoke": "Widerrufen", + "Wipe device": "Gerät löschen", + "Revoking this token might prevent the wiping of your device if it has not started the wipe yet.": "Zurückziehen dieses Tokens könnte das Löschen von deinem Gerät verhindern, wenn die Löschung noch nicht gestartet wurde.", + "Google Chrome for Android": "Google Chrome für Android", + "{productName} iOS app": "{productName} iOS-App", + "{productName} Android app": "{productName} Android-App", + "{productName} Talk for iOS": "{productName} Talk für iOS", + "{productName} Talk for Android": "{productName} Talk für Android", + "Sync client": "Sync-Client", + "This session": "Diese Sitzung", + "{client} - {version} ({system})": "{client} - {version} ({system})", + "{client} - {version}": "{client} - {version}", + "Device": "Gerät", + "Last activity": "Letzte Aktivität", + "Devices & sessions": "Geräte & Sitzungen", + "Web, desktop and mobile clients currently logged in to your account.": "Aktuell in deinem Konto angemeldete Web-, Desktop- und Mobil-Clients:", + "App name": "App-Name", + "Create new app password": "Neues App-Passwort erstellen", + "Error while creating device token": "Fehler beim Erstellen des Geräte-Tokens", + "New app password": "Neues App-Passwort", + "Use the credentials below to configure your app or device. For security reasons this password will only be shown once.": "Verwende die unten stehenden Anmeldeinformationen, um deine App oder dein Gerät zu konfigurieren. Aus Sicherheitsgründen wird dieses Passwort nur einmal angezeigt.", + "Login": "Anmelden", + "Password": "Passwort", + "Show QR code for mobile apps": "QR-Code für mobile Apps anzeigen", + "App password copied!": "App-Passwort kopiert!", + "Copy app password": "App-Passwort kopieren", + "Login name copied!": "Anmeldename kopiert!", + "Copy login name": "Anmeldename kopieren", + "Could not copy app password. Please copy it manually.": "Das Passwort für die App konnte nicht kopiert werden. Bitte kopiere es manuell.", + "Could not copy login name. Please copy it manually.": "Der Anmeldename konnte nicht kopiert werden. Bitte kopiere ihn manuell.", + "For the server to work properly, it's important to configure background jobs correctly. Cron is the recommended setting. Please see the documentation for more information.": "Damit der Server ordnungsgemäß funktioniert, ist es wichtig, Hintergrundjobs richtig zu konfigurieren. Cron ist die empfohlene Einstellung. Weitere Informationen findest du in der Dokumentation.", + "Last job execution ran {time}. Something seems wrong.": "Der letzte Job lief {time}. Etwas scheint falsch zu sein.", + "Last job ran {relativeTime}.": "Der letzte Job lief {relativeTime}.", + "Background job did not run yet!": "Hintergrund-Job wurde bislang nicht ausgeführt!", + "AJAX": "AJAX", + "Execute one task with each page loaded. Use case: Single account instance.": "Mit jeder geladenen Seite wird eine Aufgabe ausgeführt. Anwendungsfall: Einzelkonto-Installation.", + "Webcron": "Webcron", + "cron.php is registered at a webcron service to call cron.php every 5 minutes over HTTP. Use case: Very small instance (1–5 accounts depending on the usage).": "cron.php ist bei einem Webcron-Dienst registriert, um cron.php alle 5 Minuten über HTTP aufzurufen. Anwendungsfall: Sehr kleine Instanz (1–5 Konten, je nach Nutzung).", + "Cron (Recommended)": "Cron (Empfohlen)", + "Use system cron service to call the cron.php file every 5 minutes.": "Den System-Cron-Dienst verwenden, um die Datei cron.php alle 5 Minuten aufzurufen.", + "The cron.php needs to be executed by the system account \"{user}\".": "Die cron.php muss von dem Systemkonto \"{user}\" ausgeführt werden.", + "The PHP POSIX extension is required. See {linkstart}PHP documentation{linkend} for more details.": "Die PHP-POSIX-Erweiterung ist erforderlich. Weitere Einzelheiten findest du in der {linkstart}PHP-Dokumentation{linkend}.", + "Unable to update background job mode": "Hintergrund-Job-Modus kann nicht aktualisiert werden", + "Profile": "Profil", + "Enable or disable profile by default for new accounts.": "Profil für neue Konten standardmäßig aktivieren oder deaktivieren.", + "Enable": "Aktivieren", + "Unable to update profile default setting": "Standardeinstellung des Profils kann nicht aktualisiert werden", + "{app}'s declarative setting field: {name}": "Deklaratives Einstellungsfeld von {app}: {name}", + "Failed to save setting": "Einstellung konnte nicht gespeichert werden", + "Server-side encryption": "Serverseitige Verschlüsselung", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed.": "Serverseitige Verschlüsselung ermöglicht es, die auf diesen Server hochgeladenen Dateien zu verschlüsseln. Dies führt allerdings auch zu Nachteilen, wie z. B. einem Geschwindigkeitsverlust. Sie sollte deshalb nur eingeschaltet werden, wenn sie wirklich benötigt wird.", + "Enable server-side encryption": "Serverseitige Verschlüsselung aktivieren", + "Please read carefully before activating server-side encryption:": "Bitte lies sorgfältig vor Aktivierung der serverseitigen Verschlüsselung:", + "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met.": "Wird die Verschlüsselung einmal aktiviert, so werden alle ab diesem Zeitpunkt hochgeladene Dateien verschlüsselt. Sie kann nur wieder deaktiviert werden, wenn das Verschlüsselungsmodul dies unterstützt und alle Voraussetzungen (wie das Setzen eines Wiederherstellungsschlüssels) im Vorhinein erfüllt wurden.", + "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases.": "Verschlüsselung alleine garantiert nicht die Systemsicherheit. Bitte lies in der Dokumentation nach, wie die Verschlüsselungs-app funktioniert und welche Anwendungsfälle unterstützt werden.", + "Be aware that encryption always increases the file size.": "Bedenke, dass durch die Verschlüsselung die Dateigröße zunimmt. ", + "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data.": "Es ist immer gut, regelmäßig Sicherungen von deinen Daten zu erstellen. Falls du die Verschlüsselung nutzt, sollte auch eine Sicherung der Verschlüsselungsschlüssel zusammen mit deinen Daten durchgeführt werden.", + "This is the final warning: Do you really want to enable encryption?": "Dies ist die letzte Warnung: Möchtest du die Verschlüsselung wirklich aktivieren?", + "No encryption module loaded, please enable an encryption module in the app menu.": "Es wurde kein Verschlüsselungs-Modul geladen, bitte ein Verschlüsselungs-Modul im Anwendungs-Menü aktivieren.", + "Select default encryption module:": "Standard-Verschlüsselungs-Modul auswählen:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run {command}": "Du musst deine Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) auf die neue migrieren. Bitte aktiviere das \"Standardverschlüsselungsmodul\" und führe {command} aus.", + "Unable to update server side encryption config": "Die Serverseitige Verschlüsselungskonfiguration kann nicht aktualisiert werden.", + "Please confirm the group removal": "Bitte bestätige die Löschung der Gruppe ", + "You are about to remove the group \"{group}\". The accounts will NOT be deleted.": "Du bist im Begriff, die Gruppe \"{group}\" zu entfernen. Die Konten werden NICHT gelöscht.", + "Cancel": "Abbrechen", + "Confirm": "Bestätigen", + "Submit": "Übermitteln", + "Rename group": "Gruppe umbenennen", + "Remove group": "Gruppe entfernen", + "Failed to remove group \"{group}\"": "Die Gruppe \"{group}\" konnte nicht entfernt werden.", + "Current password": "Aktuelles Passwort", + "New password": "Neues Passwort", + "Change password": "Passwort ändern", + "Your profile picture": "Dein Profilbild", + "Upload profile picture": "Profilbild hochladen", + "Choose profile picture from Files": "Profilbild aus Dateien wählen", + "Remove profile picture": "Profilbild entfernen", + "The file must be a PNG or JPG": "Die Datei muss im PNG- oder JPG-Format sein", + "Picture provided by original account": "Bild von Original-Konto zur Verfügung gestellt", + "Set as profile picture": "Als Profilbild festlegen", + "Please note that it can take up to 24 hours for your profile picture to be updated everywhere.": "Bitte beachte, dass es bis zu 24 Stunden dauern kann, bis das Profilbild überall aktualisiert wird.", + "Choose your profile picture": "Wähle dein Profilbild aus.", + "Please select a valid png or jpg file": "Bitte eine gültige PNG- oder JPG-Datei auswählen", + "Error setting profile picture": "Fehler beim Einstellen des Profilbilds", + "Error cropping profile picture": "Fehler beim Zuschneiden des Profilbilds", + "Error saving profile picture": "Fehler beim Speichern des Profilbilds", + "Error removing profile picture": "Fehler beim Entfernen des Profilbilds", + "Your biography": "Deine Biografie", + "Enter your date of birth": "Gib dein Geburtsdatum ein", + "Unable to update date of birth": "Geburtsdatum konnte nicht aktualisiert werden", + "You are a member of the following groups:": "Du bist Mitglied folgender Gruppen:", + "You are using {usage}": "Du benutzt {usage}.", + "You are using {usage} of {totalSpace} ({usageRelative}%)": "Du benutzt {usage} von {totalSpace} ({usageRelative}%).", + "Your full name": "Dein vollständiger Name", + "Primary email for password reset and notifications": "Primäre E-Mail-Adresse für Benachrichtigungen und zum Zurücksetzen des Passworts", + "Email options": "E-Mail-Optionen", + "Options for additional email address {index}": "Optionen für zusätzliche E-Mail-Adresse {index}", + "Remove primary email": "Primäre E-Mail-Adresse entfernen", + "Delete email": "E-Mail löschen", + "This address is not confirmed": "Diese Adresse ist nicht bestätigt", + "Unset as primary email": "Als primäre E-Mail-Adresse deaktivieren", + "Set as primary email": "Als primäre E-Mail-Adresse festlegen", + "Additional email address {index}": "Zusätzliche E-Mail-Adresse {index}", + "Unable to delete primary email address": "Primäre E-Mail-Adresse konnte nicht gelöscht werden", + "Unable to update primary email address": "Primäre E-Mail-Adresse konnte nicht aktualisiert werden", + "Unable to add additional email address": "Zusätzliche E-Mail-Adresse konnte nicht hinzugefügt werden", + "Unable to update additional email address": "Zusätzliche E-Mail-Adresse konnte nicht aktualisiert werden", + "Unable to delete additional email address": "Zusätzliche E-Mail-Adresse konnte nicht gelöscht werden", + "No email address set": "Keine E-Mail-Adresse angegeben", + "Your handle": "Dein Online-Name", + "Day to use as the first day of week": "Tag, der als erster Tag der Woche verwendet werden soll", + "Derived from your locale ({weekDayName})": "Abgeleitet von deinem Gebietsschema ({weekDayName})", + "Unable to update first day of week": "Der erste Tag der Woche kann nicht aktualisiert werden", + "Your headline": "Deine Überschrift", + "Languages": "Sprachen", + "Help translate": "Hilf bei der Übersetzung mit", + "Unable to update language": "Sprache konnte nicht aktualisiert werden", + "No language set": "Keine Sprache eingestellt.", + "Locales": "Gebietsschemen", + "Week starts on {firstDayOfWeek}": "Woche beginnt am {firstDayOfWeek}", + "Unable to update locale": "Gebietsschema konnte nicht aktualisiert werden.", + "No locale set": "Kein Gebietsschema festgelegt", + "Your city": "Deine Stadt", + "Your organisation": "Deine Organisation", + "Your phone number": "Deine Telefonnummer", + "Edit your Profile visibility": "Sichtbarkeit des Profils anpassen", + "Enable profile": "Profil aktivieren", + "Unable to update profile enabled state": "Der Status für aktiviertes Profil konnte nicht aktualisiert werden", + "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected.": "Die restriktivere Einstellung von Sichtbarkeit oder Bereich wird in deinem Profil berücksichtigt. Wenn beispielsweise die Sichtbarkeit auf \"Für jeden sichtbar\" und der Bereich auf \"Privat\" festgelegt ist, wird \"Privat\" respektiert.", + "Unable to update visibility of {displayId}": "Sichtbarkeit von {displayId} kann nicht aktualisiert werden", + "Your role": "Deine Funktion", + "Your X (formerly Twitter) handle": "Dein X (früher Twitter)-Handle", + "Your website": "Deine Internetseite", + "No {property} set": "Keine {property} eingestellt", + "Invalid value": "Ungültiger Wert", + "Unable to update {property}": "{property} konnte nicht aktualisiert werden.", + "Change scope level of {property}, current scope is {scope}": "Ändern des Geltungsbereich von {property}, aktueller Bereich ist {scope}", + "Unable to update federation scope of the primary {property}": "Der Federations-Bereich des primären {property} kann nicht aktualisiert werden.", + "Unable to update federation scope of additional {property}": "Der Federations-Bereich des zusätzlichen {property} kann nicht aktualisiert werden.", + "Add additional email": "Zusätzliche E-Mail-Adresse hinzufügen", + "Add": "Hinzufügen", + "Create": "Erstellen", + "Change": "Ändern", + "Delete": "Löschen", + "Reshare": "Weiterteilen", + "No accounts": "Keine Konten", + "Loading accounts …": "Lade Konten...", + "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.": "Kontenliste. Diese Liste wird aus Performance-Gründen nicht vollständig ausgegeben. Die Konten werden ausgegeben, wenn du durch die Liste navigierst.", + "Default language": "Standard-Sprache", + "Common languages": "Gängige Sprachen", + "Other languages": "Weitere Sprachen", + "Password change is disabled because the master key is disabled": "Das Ändern des Passwortes ist deaktiviert, da der Master-Schlüssel deaktiviert ist", + "New account": "Neues Konto", + "Display name": "Anzeigename", + "Either password or email is required": "Passwort oder E-Mail-Adresse ist erforderlich.", + "Password (required)": "Passwort (erforderlich)", + "Email (required)": "E-Mail-Adresse (erforderlich)", + "Email": "E-Mail-Adresse", + "Member of the following groups (required)": "Mitglied der folgenden Gruppen (erforderlich)", + "Member of the following groups": "Mitglied der folgenden Gruppen", + "Set account groups": "Kontengruppen setzen", + "Admin of the following groups": "Administration der folgenden Gruppen", + "Set account as admin for …": "Setze Konto als Administration für …", + "Quota": "Kontingent", + "Set account quota": "Kontokontigent setzen", + "Language": "Sprache", + "Set default language": "Standard-Sprache einstellen", + "Add new account": "Neues Konto hinzufügen", + "Manager": "Manager", + "Set account manager": "Kontomanager festlegen", + "Account name will be autogenerated": "Kontenname wird automatisch erstellt", + "Account name (required)": "Kontoname (erforderlich)", + "Total rows summary": "Zusammenfassung aller Zeilen", + "Scroll to load more rows": "Scrollen, um weitere Zeilen zu laden", + "_{userCount} account …_::_{userCount} accounts …_": [ + "{userCount} Konto …", + "{userCount} Konten …" + ], + "_{userCount} account_::_{userCount} accounts_": [ + "{userCount} Konto", + "{userCount} Konten" + ], + "Avatar": "Avatar", + "Account name": "Name des Kontos", + "Group admin for": "Gruppenadministrator für", + "Account backend": "Konto-Backend", + "Storage location": "Speicherort", + "Last login": "Letzte Anmeldung", + "Account actions": "Konto-Aktionen", + "Password or insufficient permissions message": "Passwort oder unzureichende Berechtigungen Nachricht", + "Loading account …": "Lade Konto …", + "Change display name": "Anzeigename ändern", + "Set new password": "Neues Passwort setzen", + "You do not have permissions to see the details of this account": "Du hast nicht die Berechtigung, die Details dieses Kontos anzusehen.", + "Set new email address": "Neue E-Mail-Adresse setzen", + "Add account to group": "Konto zur Gruppe hinzufügen", + "Set account as admin for": "Konto als Administration festlegen für", + "Select account quota": "Kontokontigent auswählen", + "Set the language": "Sprache einstellen", + "Set line manager": "Manager festlegen", + "{size} used": "{size} verwendet", + "Delete account": "Konto löschen", + "Disconnect all devices and delete local data": "Alle Geräte trennen und lokale Daten löschen", + "Disable account": "Konto deaktivieren", + "Enable account": "Konto aktivieren", + "Resend welcome email": "Willkommens-E-Mail erneut senden", + "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet.": "Im Falle des Verlusts des Gerätes oder der Verlassens der Organisation können mit dieser Funktion sämtliche Nextcloud-Daten von allen Geräten die mit {userid} verbunden sind gelöscht werden. Funktioniert nur wenn das Gerät mit dem Internet verbunden ist.", + "Remote wipe of devices": "Fernlöschung von Geräten", + "Wipe {userid}'s devices": "Lösche {userid}s Geräte", + "Wiped {userid}'s devices": "{userid}'s Geräte bereinigt", + "Failed to update line manager": "Fehler beim Aktualisieren des Managers", + "Fully delete {userid}'s account including all their personal files, app data, etc.": "Vollständig {userid}s Konto löschen inklusive aller persönlichen Dateien, App-Daten, usw.", + "Account deletion": "Löschung des Kontos", + "Delete {userid}'s account": "Konto von {userid} löschen", + "Display name was successfully changed": "Der Anzeigename wurde erfolgreich geändert\n ", + "Password was successfully changed": "Das Passwort wurde erfolgreich geändert", + "Email was successfully changed": "E-Mail wurde erfolgreich geändert", + "Welcome mail sent!": "Willkommens-E-Mail gesendet!", + "Toggle account actions menu": "Kontenaktionsmenü umschalten", + "Done": "Erledigt", + "Edit": "Bearbeiten", + "Account management settings": "Kontoverwaltungseinstellungen", + "Visibility": "Sichtbarkeit", + "Show language": "Sprache anzeigen", + "Show account backend": "Konto-Backend anzeigen", + "Show storage path": "Zeige Speicherpfad", + "Show last login": "Letzte Anmeldung anzeigen", + "Sorting": "Sortiere", + "The system config enforces sorting the groups by name. This also disables showing the member count.": "Die Systemkonfiguration erzwingt die Sortierung der Gruppen nach Namen. Dadurch wird auch die Anzeige der Mitgliederzahl deaktiviert.", + "Group list sorting": "Sortierung der Gruppenliste", + "By member count": "Nach Mitgliederzahl", + "By name": "Nach Name", + "Send email": "E-Mail senden", + "Send welcome email to new accounts": "Begrüßungs-E-Mail an neuen Konten senden", + "Defaults": "Standardeinstellungen", + "Default quota": "Standardkontingent", + "Select default quota": "Standardkontingent auswählen", + "Passwordless authentication requires a secure connection.": "Die Anmeldung ohne Passwort erfordert eine sichere Verbindung.", + "Add WebAuthn device": "WebAuthn-Gerät hinzufügen", + "Please authorize your WebAuthn device.": "Bitte autorisiere dein WebAuthn-Gerät.", + "Adding your device …": "Füge dein Gerät hinzu …", + "Server error while trying to complete WebAuthn device registration": "Server-Fehler beim Versuch die WebAuthn-Geräte-Registrierung abzuschließen", + "Unnamed device": "Unbenanntes Gerät", + "Passwordless Authentication": "Authentifizierung ohne Passwort", + "Set up your account for passwordless authentication following the FIDO2 standard.": "Richte dein Konto für die Authentifizierung ohne Passwort nach dem FIDO2-Standard ein.", + "No devices configured.": "Keine Geräte eingerichtet.", + "The following devices are configured for your account:": "Die folgenden Geräte sind für dein Konto eingerichtet:", + "Your browser does not support WebAuthn.": "Dein Browser unterstützt kein WebAuthn.", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information.": "Als Administrator kannst du das Teilen-Verhalten feinabstimmen. Weitere Informationen findest du in der Dokumentation.", + "You need to enable the File sharing App.": "Du musst die File sharing App aktivieren.", + "Loading app list": "Lade App-Liste", + "App Store": "App Store", + "Loading categories": "Lade Kategorien", + "Developer documentation ↗": "Entwickler-Dokumentation ↗", + "Version {version}, {license}-licensed": "Version {version}, {license}-lizensiert", + "All accounts": "Alle Konten", + "Admins": "Administratoren", + "Account group: {group}": "Kontengruppe: {group}", + "Account management": "Kontoverwaltung", + "Creating group…": "Erstelle Gruppe…", + "Create group": "Gruppe erstellen", + "Group name": "Gruppenname", + "Please enter a valid group name": "Bitte einen gültigen Gruppennamen eingeben", + "Failed to create group": "Fehler beim Erstellen der Gruppe", + "Sending…": "Senden …", + "Email sent": "E-Mail gesendet", + "Location": "Ort", + "Profile picture": "Profilbild", + "About": "Über", + "Full name": "Vollständiger Name", + "Additional email": "Zusätzliche E-Mail-Adresse", + "Headline": "Überschrift", + "Organisation": "Organisation", + "Phone number": "Telefonnummer", + "Role": "Funktion", + "X (formerly Twitter)": "X (früher Twitter)", + "Fediverse (e.g. Mastodon)": "Fediverse (wie z. B. Mastodon)", + "Website": "Webseite", + "Date of birth": "Geburtsdatum", + "Profile visibility": "Sichtbarkeit deines Profils", + "Locale": "Gebietsschema", + "First day of week": "Erster Tag der Woche", + "Not available as this property is required for core functionality including file sharing and calendar invitations": "Nicht verfügbar, da diese Eigenschaft für Kernfunktionen wie Dateifreigabe und Kalendereinladungen erforderlich ist.", + "Not available as federation has been disabled for your account, contact your system administration if you have any questions": "Nicht verfügbar, da Federation für dein Konto deaktiviert ist. Wende dich an deinen Administrator, wenn du Fragen hast.", + "Not available as publishing account specific data to the lookup server is not allowed, contact your system administration if you have any questions": "Nicht verfügbar, da die Veröffentlichung benutzerspezifischer Daten auf dem Lookup-Server nicht zulässig ist. Wende dich bei Fragen an deine Systemadministration.", + "Discover": "Entdecken", + "Your apps": "Deine Apps", + "Active apps": "Aktive Apps", + "Disabled apps": "Deaktivierte Apps", + "Updates": "Aktualisierungen", + "App bundles": "App-Pakete", + "Featured apps": "Vorgestellte Apps", + "Supported apps": "Unterstützte Apps", + "Show to everyone": "Für jeden sichtbar", + "Show to logged in accounts only": "Nur angemeldeten Konten anzeigen", + "Hide": "Ausblenden", + "Download and enable": "Herunterladen und aktivieren", + "Allow untested app": "Ungetestete App zulassen", + "The app will be downloaded from the App Store": "Die App wird aus dem App-Store heruntergeladen", + "This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.": "Diese App ist als nicht-kompatibel mit deiner Nextcloud-Version markiert. Wenn du fortfährst, so kannst du die App installieren. Bitte beachte, dass die App nicht wie erwartet funktionieren könnte.", + "Never": "Niemals", + "Could not register device: Network error": "Gerät konnte nicht registriert werden: Netzwerkfehler", + "Could not register device: Probably already registered": "Gerät konnte nicht registriert werden: Wahrscheinlich bereits registriert", + "Could not register device": "Gerät konnte nicht registriert werden", + "An error occurred during the request. Unable to proceed.": "Es ist ein Fehler bei der Anfrage aufgetreten. Es kann nicht fortgefahren werden.", + "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds.": "Die App wurde aktiviert, muss aber aktualisiert werden. Du wirst in 5 Sekunden zur Aktualisierungsseite weitergeleitet.", + "Error: This app cannot be enabled because it makes the server unstable": "Fehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", + "Do you really want to wipe your data from this device?": "Möchtest du wirklich alle Daten von diesem Gerät löschen?", + "Confirm wipe": "Löschen bestätigen", + "Could not delete the app token": "App-Token konnte nicht gelöscht werden", + "Error while wiping the device with the token": "Fehler während des Löschens des Geräts mit dem Token", + "Error while updating device token name": "Fehler bei der Aktualisierung des Geräte-Token-Namens", + "Error while updating device token scope": "Fehler bei der Aktualisierung des Geräte-Token-Scope", + "Could not set group sorting": "Die Gruppensortierung konnte nicht festgelegt werden", + "There were too many requests from your network. Retry later or contact your administrator if this is an error.": "Zu viele Anfragen aus deinem Netzwerk. Versuche es später erneut oder wende dich an deinen Administrator, wenn dies ein Fehler sein sollte.", + "Error": "Fehler", + "Account documentation": "Kontodokumentation", + "Administration documentation": "Administrationsdokumentation", + "Forum": "Forum", + "Nextcloud help & privacy resources": "Nextcloud-Hilfe & Datenschutz-Ressourcen", + "General documentation": "Allgemeine Dokumentation", + "Legal notice": "Impressum", + "Privacy policy": "Datenschutzerklärung ", + "None/STARTTLS": "Keine/STARTTLS", + "SSL": "SSL", + "Open documentation": "Dokumentation öffnen", + "It is important to set up this server to be able to send emails, like for password reset and notifications.": "Es ist wichtig, diesen Server so zu konfigurieren, dass E-Mails versandt werden können, z. B. zum Zurücksetzen des Passworts und für Benachrichtigungen.", + "Send mode": "Sendemodus", + "Encryption": "Verschlüsselung", + "Sendmail mode": "Sendmail-Modus", + "From address": "Absenderadresse", + "Server address": "Serveradresse", + "Port": "Port", + "Authentication": "Authentifizierung", + "Authentication required": "Authentifizierung benötigt", + "Credentials": "Zugangsdaten", + "SMTP Login": "SMTP-Anmeldung", + "SMTP Password": "SMTP-Passwort", + "Save": "Speichern", + "Test and verify email settings": "Testen und überprüfen der E-Mail-Einstellungen", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information.": "Für die Sicherheit und Performance deiner Instanz ist es wichtig, dass alles richtig konfiguriert ist. Um dir dabei zu helfen, werden einige automatische Prüfungen durchgeführt. Weitere Informationen kannst du der verlinkten Dokumentation entnehmen.", + "All checks passed.": "Alle Überprüfungen bestanden.", + "There are some errors regarding your setup.": "Es gibt einige Fehler bei deiner Systemkonfiguration.", + "There are some warnings regarding your setup.": "Es gibt einige Warnungen bei deiner Systemkonfiguration.", + "Checking for system and security issues.": "Prüfung auf System- und Sicherheitsprobleme.", + "Please double check the installation guides ↗, and check for any errors or warnings in the log.": "Bitte überprüfe noch einmal die Installationsanleitungen ↗ und kontrolliere das Protokoll auf mögliche Fehler oder Warnungen.", + "Check the security of your Nextcloud over our security scan ↗.": "Überprüfe die Sicherheit deiner Nextcloud über den Sicherheitsscanner der Nextcloud GmbH ↗.", + "Reasons to use Nextcloud in your organization": "Gründe für die Verwendung von Nextcloud in deiner Organisation", + "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}.": "Entwickelt von der {communityopen}Nextcloud Community{linkclose}, der {githubopen}Quellcode{linkclose} ist lizensiert unter {licenseopen}AGPL{linkclose}-Lizenz.", + "Like our Facebook page": "Like uns auf unserer Facebook-Seite", + "Follow us on Twitter": "Folge uns auf X", + "Follow us on Mastodon": " Folge uns auf Mastodon", + "Check out our blog": "Sieh dir unseren Blog an", + "Subscribe to our newsletter": "Abonniere unseren Newsletter", + "This community release of Nextcloud is unsupported and instant notifications are unavailable.": "Diese Community-Version von Nextcloud wird nicht unterstützt und sofortige Benachrichtigungen sind nicht verfügbar.", + "Use a second factor besides your password to increase security for your account.": "Verwende neben deinem Passwort einen zweiten Faktor, um die Sicherheit für dein Konto zu erhöhen.", + "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication.": "Wenn du Anwendungen von Drittanbietern verwendest, um dich mit Nextcloud zu verbinden, stelle bitte sicher, dass du für jede Anwendung ein Anwendungspasswort erstellst und einrichtest, bevor du die Zwei-Faktor-Authentifizierung aktivierst.", + "No user supplied": "Kein Benutzer angegeben", + "Please provide an admin recovery password; otherwise, all user data will be lost.": "Bitte gib ein Wiederherstellungspasswort für das Administratorkonto an, da sonst alle Benutzerdaten verlorengehen.", + "Backend does not support password change, but the user's encryption key was updated.": "Das Backend unterstützt die Passwortänderung nicht, aber das Verschlüsselungspasswort des Benutzers wurde aktualisiert", + "You need to set your user email before being able to send test emails. Go to %s for that.": "Du musst deine Benutzer-E-Mail-Adresse festlegen, bevor du Test-E-Mails senden kannst. Gehe dazu zu %s.", + "Invalid user": "Ungültiger Benutzer", + "Your username is: %s": "Dein Benutzername lautet: %s", + "Logged in user must be a subadmin": "Der angemeldete Benutzer muss ein Administrator sein", + "Old user imported certificates": "Alte vom Benutzer importierte Zertifikate", + "A background job is pending that checks for user imported SSL certificates. Please check back later.": "Ein Hintergrundjob, der nach vom Benutzer importierten SSL-Zertifikaten sucht, läuft noch. Bitte versuche es später erneut.", + "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below.": "Es sind einige vom Benutzer importierte SSL-Zertifikate vorhanden, die von Nextcloud 21 nicht mehr verwendet werden. Du kannst über den Befehl \"occ security:certificates:import\" in der Befehlszeile importiert werden. Ihre Pfade innerhalb des Datenverzeichnisses werden unten angezeigt.", + "Missing optional index \"%s\" in table \"%s\".": "Fehlende optionaler Index \"%s\" in der Tabelle \"%s\".", + "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster.": "In der Datenbank fehlen einige Indizes. Auf Grund der Tatsache, dass das Hinzufügen von Indizes in großen Tabellen einige Zeit in Anspruch nehmen kann, wurden diese nicht automatisch erzeugt. Durch das Ausführen von \"occ db:add-missing-indices\" können die fehlenden Indizes manuell hinzugefügt werden, während die Instanz weiter läuft. Nachdem die Indizes hinzugefügt wurden, sind Anfragen auf die Tabellen normalerweise schneller.", + "Could not check for JavaScript support. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type.": "Konnte die JavaScript-Unterstützung nicht überprüfen. Bitte überprüfe manuell, ob dein Webserver `.mjs`-Dateien mit dem JavaScript-MIME-Typ bereitstellt.", + "MySQL unicode support": "MySQL Unicode-Unterstützung", + "Overwrite cli URL": "CLI-URL überschreiben", + "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible.": "Du verwendest derzeit PHP %s. PHP 8.0 ist ab Nextcloud 27 veraltet. Nextcloud 28 erfordert mindestens PHP 8.1. Bitte aktualisiere so schnell wie möglich auf eine der offiziell unterstützten PHP-Versionen der PHP Gruppe.", + "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher.": "MariaDB Version \"%s\" wird verwendet. Nextcloud 21 und neuer unterstützen diese Version nicht und benötigen MariaDB 10.2 oder neuer.", + "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher.": "MySQL Version \"%s\" wird verwendet. Nextcloud 21 und neuer unterstützten diese Version nicht und benötigen MySQL 8.0 oder MariaDB 10.2 oder neuer.", + "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher.": "PostgreSQL Version \"%s\" wird verwendet. Nextcloud 21 und neuer unterstützen diese Version nicht und beötigen PostgreSQL 9.6 oder neuer.", + "Exclude groups from sharing": "Gruppen von Freigaben ausschließen", + "These groups will still be able to receive shares, but not to initiate them.": "Diese Gruppen können weiterhin Freigaben empfangen, aber selbst keine mehr initiieren.", + "Allow username autocompletion in share dialog and allow access to the system address book": "Die automatische Vervollständigung des Benutzernamens im Freigabedialog und den Zugriff auf das Systemadressbuch erlauben", + "Two-factor authentication can be enforced for all users and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system.": "Zwei-Faktor-Authentifizierung kann für alle Benutzer und Gruppen erzwungen werden. Dann können Benutzer, für die keine Zwei-Faktor-Authentifizierung eingerichtet ist, sich nicht am System anmelden.", + "When groups are selected/excluded, they use the following logic to determine if a user has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If a user is both in a selected and excluded group, the selected takes precedence and 2FA is enforced.": "Bei der Auswahl/Abwahl von Gruppen wird folgende Logik verwendet, um festzustellen, ob ein Benutzer 2FA verwenden muss: Wenn keine Gruppe ausgewählt ist, dann wird 2FA für alle Benutzer aktiviert, außer für Mitglieder der ausgenommenen Gruppen. Sind Gruppen ausgewählt, so wird 2FA für alle Mitglieder dieser Gruppen aktiviert. Ist ein Benutzer Mitglied der ausgewählten und ausgenommenen Gruppe, so hat die Auswahl Vorrang und 2FA wird aktiviert. ", + "Rating: {score}/10": "Bewertung: {score}/10", + "Username": "Benutzername", + "Execute one task with each page loaded. Use case: Single user instance.": "Mit jeder geladenen Seite wird eine Aufgabe ausgeführt. Anwendungsfall: Einzelbenutzer-Installation.", + "cron.php is registered at a webcron service to call cron.php every 5 minutes over HTTP. Use case: Very small instance (1–5 users depending on the usage).": "cron.php ist bei einem Webcron-Dienst registriert, um cron.php alle 5 Minuten über HTTP aufzurufen. Anwendungsfall: Sehr kleine Instanz (1–5 Benutzer je nach Nutzung).", + "The cron.php needs to be executed by the system user \"{user}\".": "Die cron.php muss durch den Systembenutzer \"{user}\" ausgeführt werden.", + "Enable or disable profile by default for new users.": "Profil für neue Benutzer standardmäßig aktivieren oder deaktivieren", + "You are about to remove the group \"{group}\". The users will NOT be deleted.": "Du bist dabei die Gruppe \"{group}\" zu löschen. Die Benutzer werden NICHT gelöscht.", + "Additional emails": "Zusätzliche E-Mail-Adressen ", + "Enable Profile": "Profil aktivieren", + "No users": "Keine Benutzer", + "Loading users …": "Lade Benutzer …", + "List of users. This list is not fully rendered for performance reasons. The users will be rendered as you navigate through the list.": "Liste aller Benutzer. Diese Liste wird aus Performance-Gründen nicht vollständig angezeigt. Die Benutzer werden angezeigt, wenn du durch die Liste navigierst.", + "New user": "Neuer Benutzer", + "Groups (required)": "Gruppen (erforderlich)", + "Set user groups": "Benutzergruppen einstellen", + "Administered groups": "Administrierte Gruppen", + "Set user as admin for …": "Benutzer als Administrator setzen für …", + "Set user quota": "Benutzerkontingent einstellen", + "Add new user": "Neuen Benutzer hinzufügen", + "Set user manager": "Benutzermanager setzen", + "Username will be autogenerated": "Benutzername wird automatisch erzeugt.", + "Username (required)": "Benutzername (erforderlich)", + "_{userCount} user …_::_{userCount} users …_": [ + "{userCount} Benutzer …", + "{userCount} Benutzer …" + ], + "_{userCount} user_::_{userCount} users_": [ + "{userCount} Benutzer", + "{userCount} Benutzer" + ], + "User backend": "Benutzer-Backend", + "User actions": "Benutzeraktionen", + "Loading user …": "Lade Benutzer …", + "You do not have permissions to see the details of this user": "Du hast keine Berechtigung, um auf die Details dieses Benutzers zu sehen", + "Add user to group": "Benutzer der Gruppe hinzufügen", + "Set user as admin for": "Benutzer als Administrator setzen für", + "Select user quota": "Kontingent auswählen", + "Delete user": "Benutzer löschen", + "Wipe all devices": "Alle Geräte löschen", + "Disable user": "Benutzer deaktivieren", + "Enable user": "Benutzer aktivieren", + "Failed to update user manager": "Fehler beim Aktualisieren des Benutzermanagers", + "Toggle user actions menu": "Menü für Benutzeraktionen umschalten", + "User management settings": "Einstellungen für Benutzerverwaltung", + "Show user backend": "Benutzer-Backend anzeigen", + "Send welcome email to new users": "Begrüßungs-E-Mail an neue Benutzer senden", + "Name your device": "Gerät benennen", + "Server error while trying to add WebAuthn device": "Server-Fehler beim Versuch ein WebAuthn-Gerät hinzuzufügen", + "{license}-licensed": "{license}-Lizenziert", + "by {author}\n{license}": "von {author}\n{license}", + "User management": "Benutzerverwaltung", + "Active users": "Aktive Benutzer", + "Disabled users": "Deaktivierte Benutzer", + "Creating group …": "Erstelle Gruppe …", + "User group: {group}": "Benutzergruppe: {group}", + "Not available as federation has been disabled for your account, contact your system administrator if you have any questions": "Nicht verfügbar, da Federation für dein Konto deaktiviert ist. Wende dich an deinen Administrator, wenn du Fragen hast.", + "Not available as publishing user specific data to the lookup server is not allowed, contact your system administrator if you have any questions": "Nicht verfügbar, da die Veröffentlichung benutzerspezifischer Daten auf dem Lookup-Server nicht zulässig ist. Wende dich bei Fragen an deinen Systemadministrator", + "Show to logged in users only": "Nur für angemeldete Benutzer sichtbar", + "Nextcloud help resources": "Nextcloud-Hilferessourcen", + "SMTP Username": "SMTP-Benutzername", + "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`.": "Um diese Prüfung auszuführen, musst du sicherstellen, dass dein Webserver eine Verbindung zu sich selbst herstellen kann. Dafür muss dieser in der Lage sein, sich mit mindestens einer seiner \"trusted_domains\" oder der \"overwrite.cli.url\" zu verbinden und diese aufzulösen.", + "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type.": "Es konnte weder über Ihre `trusted_domains` noch über `overwrite.cli.url` nach JavaScript-Unterstützung gesucht werden. Dies kann auf eine serverseitige DNS-Nichtübereinstimmung oder eine ausgehende Firewall-Regel zurückzuführen sein. Bitte überprüfe manuell, ob dein Webserver `.mjs`-Dateien mit dem JavaScript-MIME-Typ bereitstellt.", + "Active accounts": "Aktive Konten" + }, + "pluralForm": "nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/resources/js/apps/settings/l18n/en.js b/resources/js/apps/settings/l18n/en.js new file mode 100644 index 0000000..962cc23 --- /dev/null +++ b/resources/js/apps/settings/l18n/en.js @@ -0,0 +1,905 @@ +export default { + "translations": { + "Private": "Private", + "Only visible to people matched via phone number integration through Talk on mobile": "Only visible to people matched via phone number integration through Talk on mobile", + "Local": "Local", + "Only visible to people on this instance and guests": "Only visible to people on this instance and guests", + "Federated": "Federated", + "Only synchronize to trusted servers": "Only synchronize to trusted servers", + "Published": "Published", + "Synchronize to trusted servers and the global and public address book": "Synchronize to trusted servers and the global and public address book", + "Verify": "Verify", + "Verifying …": "Verifying …", + "Unable to change password": "Unable to change password", + "Very weak password": "Very weak password", + "Weak password": "Weak password", + "So-so password": "So-so password", + "Good password": "Good password", + "Strong password": "Strong password", + "Groups": "Groups", + "Group list is empty": "Group list is empty", + "Unable to retrieve the group list": "Unable to retrieve the group list", + "{actor} added you to group {group}": "{actor} added you to group {group}", + "You added {user} to group {group}": "You added {user} to group {group}", + "{actor} added {user} to group {group}": "{actor} added {user} to group {group}", + "An administrator added you to group {group}": "An administrator added you to group {group}", + "An administrator added {user} to group {group}": "An administrator added {user} to group {group}", + "{actor} removed you from group {group}": "{actor} removed you from group {group}", + "You removed {user} from group {group}": "You removed {user} from group {group}", + "{actor} removed {user} from group {group}": "{actor} removed {user} from group {group}", + "An administrator removed you from group {group}": "An administrator removed you from group {group}", + "An administrator removed {user} from group {group}": "An administrator removed {user} from group {group}", + "Your group memberships were modified": "Your group memberships were modified", + "{actor} changed your password": "{actor} changed your password", + "You changed your password": "You changed your password", + "Your password was reset by an administrator": "Your password was reset by an administrator", + "Your password was reset": "Your password was reset", + "{actor} changed your email address": "{actor} changed your email address", + "You changed your email address": "You changed your email address", + "Your email address was changed by an administrator": "Your email address was changed by an administrator", + "You created an app password for a session named \"{token}\"": "You created an app password for a session named \"{token}\"", + "An administrator created an app password for a session named \"{token}\"": "An administrator created an app password for a session named \"{token}\"", + "You deleted app password \"{token}\"": "You deleted app password \"{token}\"", + "You renamed app password \"{token}\" to \"{newToken}\"": "You renamed app password \"{token}\" to \"{newToken}\"", + "You granted filesystem access to app password \"{token}\"": "You granted filesystem access to app password \"{token}\"", + "You revoked filesystem access from app password \"{token}\"": "You revoked filesystem access from app password \"{token}\"", + "Security": "Security", + "You successfully logged in using two-factor authentication (%1$s)": "You successfully logged in using two-factor authentication (%1$s)", + "A login attempt using two-factor authentication failed (%1$s)": "A login attempt using two-factor authentication failed (%1$s)", + "Remote wipe was started on %1$s": "Remote wipe was started on %1$s", + "Remote wipe has finished on %1$s": "Remote wipe has finished on %1$s", + "Your password or email was modified": "Your password or email was modified", + "Settings": "Settings", + "Could not remove app.": "Could not remove app.", + "Could not update app.": "Could not update app.", + "Wrong password": "Incorrect password", + "Unable to change personal password": "Unable to change personal password", + "Saved": "Saved", + "No Login supplied": "No Login supplied", + "Unable to change password. Password too long.": "Unable to change password. Password too long.", + "Authentication error": "Authentication error", + "Please provide an admin recovery password; otherwise, all account data will be lost.": "Please provide an admin recovery password; otherwise, all account data will be lost.", + "Wrong admin recovery password. Please check the password and try again.": "Incorrect admin recovery password. Please check the password and try again.", + "Backend does not support password change, but the encryption of the account key was updated.": "Backend does not support password change, but the encryption of the account key was updated.", + "Administrator documentation": "Administrator documentation", + "User documentation": "User documentation", + "Nextcloud help overview": "Nextcloud help overview", + "Invalid SMTP password.": "Invalid SMTP password.", + "Email setting test": "Email setting test", + "Well done, %s!": "Well done, %s!", + "If you received this email, the email configuration seems to be correct.": "If you received this email, the email configuration seems to be correct.", + "Email could not be sent. Check your mail server log": "Email could not be sent. Check your mail server log", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)": "A problem occurred while sending the email. Please revise your settings. (Error: %s)", + "You need to set your account email before being able to send test emails. Go to %s for that.": "You need to set your account email before being able to send test emails. Go to %s for that.", + "Recently active": "Recently active", + "Disabled accounts": "Disabled accounts", + "Invalid account": "Invalid account", + "Invalid mail address": "Invalid mail address", + "Settings saved": "Settings saved", + "Unable to change full name": "Unable to change full name", + "Unable to change email address": "Unable to change email address", + "Unable to set invalid phone number": "Unable to set invalid phone number", + "Unable to set invalid website": "Unable to set invalid website", + "Some account data was invalid": "Some account data was invalid", + "In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):": "In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):", + "In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):": "In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):", + "%1$s changed your password on %2$s.": "%1$s changed your password on %2$s.", + "Your password on %s was changed.": "Your password on %s was changed.", + "Your password on %s was reset by an administrator.": "Your password on %s was reset by an administrator.", + "Your password on %s was reset.": "Your password on %s was reset.", + "Password for %1$s changed on %2$s": "Password for %1$s changed on %2$s", + "Password changed for %s": "Password changed for %s", + "If you did not request this, please contact an administrator.": "If you did not request this, please contact an administrator.", + "Your email address on %s was changed.": "Your email address on %s was changed.", + "Your email address on %s was changed by an administrator.": "Your email address on %s was changed by an administrator.", + "Email address for %1$s changed on %2$s": "Email address for %1$s changed on %2$s", + "Email address changed for %s": "Email address changed for %s", + "The new email address is %s": "The new email address is %s", + "Your %s account was created": "Your %s account was created", + "Welcome aboard": "Welcome aboard", + "Welcome aboard %s": "Welcome aboard %s", + "Welcome to your %s account, you can add, protect, and share your data.": "Welcome to your %s account, you can add, protect, and share your data.", + "Your Login is: %s": "Your Login is: %s", + "Set your password": "Set your password", + "Go to %s": "Go to %s", + "Install Client": "Install Client", + "Logged in account must be a subadmin": "Logged in account must be a subadmin", + "Apps": "Apps", + "Personal": "Personal", + "Administration": "Administration", + "Users": "Users", + "Additional settings": "Additional settings", + "Artificial Intelligence": "Artificial Intelligence", + "Administration privileges": "Administration privileges", + "Groupware": "Groupware", + "Overview": "Overview", + "Basic settings": "Basic settings", + "Sharing": "Sharing", + "Availability": "Availability", + "Calendar": "Calendar", + "Personal info": "Personal info", + "Mobile & desktop": "Mobile & desktop", + "Email server": "Email server", + "Security & setup warnings": "Security & setup warnings", + "Background jobs": "Background jobs", + "Unlimited": "Unlimited", + "Verifying": "Verifying", + "Allowed admin IP ranges": "Allowed admin IP ranges", + "Admin IP filtering isn’t applied.": "Admin IP filtering isn’t applied.", + "Configuration key \"%1$s\" expects an array (%2$s found). Admin IP range validation will not be applied.": "Configuration key \"%1$s\" expects an array (%2$s found). Admin IP range validation will not be applied.", + "Configuration key \"%1$s\" contains invalid IP range(s): \"%2$s\"": "Configuration key \"%1$s\" contains invalid IP range(s): \"%2$s\"", + "Admin IP filtering is correctly configured.": "Admin IP filtering is correctly configured.", + "App directories owner": "App directories owner", + "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:\n%s": "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:\n%s", + "App directories have the correct owner \"%s\"": "App directories have the correct owner \"%s\"", + "Brute-force Throttle": "Brute-force Throttle", + "Your remote address could not be determined.": "Your remote address could not be determined.", + "Your remote address was identified as \"%s\" and is brute-force throttled at the moment slowing down the performance of various requests. If the remote address is not your address this can be an indication that a proxy is not configured correctly.": "Your remote address was identified as \"%s\" and is brute-force throttled at the moment slowing down the performance of various requests. If the remote address is not your address this can be an indication that a proxy is not configured correctly.", + "Your remote address \"%s\" is not brute-force throttled.": "Your remote address \"%s\" is not brute-force throttled.", + "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule.": "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule.", + "Old administration imported certificates": "Old administration imported certificates", + "A background job is pending that checks for administration imported SSL certificates. Please check back later.": "A background job is pending that checks for administration imported SSL certificates. Please check back later.", + "There are some administration imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below.": "There are some administration imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below.", + "Code integrity": "Code integrity", + "Integrity checker has been disabled. Integrity cannot be verified.": "Integrity checker has been disabled. Integrity cannot be verified.", + "No altered files": "No altered files", + "Some files have not passed the integrity check. {link1} {link2}": "Some files have not passed the integrity check. {link1} {link2}", + "Cron errors": "Cron errors", + "It was not possible to execute the cron job via CLI. The following technical errors have appeared:\n%s": "It was not possible to execute the cron job via CLI. The following technical errors have appeared:\n%s", + "The last cron job ran without errors.": "The last cron job ran without errors.", + "Cron last run": "Cron last ran", + "Last background job execution ran %s. Something seems wrong. {link}.": "Last background job execution ran %s. Something seems wrong. {link}.", + "Last background job execution ran %s.": "Last background job execution ran %s.", + "Data directory protected": "Data directory protected", + "Your data directory and files are probably accessible from the internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root.": "Your data directory and files are probably accessible from the internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root.", + "Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory.": "Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory.", + "Database missing columns": "Database missing columns", + "Missing optional column \"%s\" in table \"%s\".": "Missing optional column \"%s\" in table \"%s\".", + "The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running \"occ db:add-missing-columns\" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability.": "The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running \"occ db:add-missing-columns\" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability.", + "Database missing indices": "Database missing indices", + "Missing indices:": "Missing indices:", + "\"%s\" in table \"%s\"": "\"%s\" in table \"%s\"", + "Detected some missing optional indices. Occasionally new indices are added (by Nextcloud or installed applications) to improve database performance. Adding indices can sometimes take awhile and temporarily hurt performance so this is not done automatically during upgrades. Once the indices are added, queries to those tables should be faster. Use the command `occ db:add-missing-indices` to add them. ": "Detected some missing optional indices. Occasionally new indices are added (by Nextcloud or installed applications) to improve database performance. Adding indices can sometimes take awhile and temporarily hurt performance so this is not done automatically during upgrades. Once the indices are added, queries to those tables should be faster. Use the command `occ db:add-missing-indices` to add them. ", + "Database missing primary keys": "Database missing primary keys", + "Missing primary key on table \"%s\".": "Missing primary key on table \"%s\".", + "The database is missing some primary keys. Due to the fact that adding primary keys on big tables could take some time they were not added automatically. By running \"occ db:add-missing-primary-keys\" those missing primary keys could be added manually while the instance keeps running.": "The database is missing some primary keys. Due to the fact that adding primary keys on big tables could take some time they were not added automatically. By running \"occ db:add-missing-primary-keys\" those missing primary keys could be added manually while the instance keeps running.", + "Database pending bigint migrations": "Database pending bigint migrations", + "Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically. By running \"occ db:convert-filecache-bigint\" those pending changes could be applied manually. This operation needs to be made while the instance is offline.": "Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically. By running \"occ db:convert-filecache-bigint\" those pending changes could be applied manually. This operation needs to be made while the instance is offline.", + "Debug mode": "Debug mode", + "This instance is running in debug mode. Only enable this for local development and not in production environments.": "This instance is running in debug mode. Only enable this for local development and not in production environments.", + "Debug mode is disabled.": "Debug mode is disabled.", + "Default phone region": "Default phone region", + "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file.": "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file.", + "Email test": "Email test", + "Email test was successfully sent": "Email test was successfully sent", + "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings.": "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings.", + "File locking": "File locking", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems.": "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems.", + "The database is used for transactional file locking. To enhance performance, please configure memcache, if available.": "The database is used for transactional file locking. To enhance performance, please configure memcache, if available.", + "Forwarded for headers": "Forwarded for headers", + "Your \"trusted_proxies\" setting is not correctly set, it should be an array.": "Your \"trusted_proxies\" setting is not correctly set, it should be an array.", + "Your \"trusted_proxies\" setting is not correctly set, it should be an array of IP addresses - optionally with range in CIDR notation.": "Your \"trusted_proxies\" setting is not correctly set, it should be an array of IP addresses - optionally with range in CIDR notation.", + "The reverse proxy header configuration is incorrect. This is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud.": "The reverse proxy header configuration is incorrect. This is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud.", + "Your IP address was resolved as %s": "Your IP address was resolved as %s", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud.": "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud.", + "HTTPS access and URLs": "HTTPS access and URLs", + "Accessing site insecurely via HTTP. You are strongly advised to set up your server to require HTTPS instead. Without it some important web functionality like \"copy to clipboard\" or \"service workers\" will not work!": "Accessing site insecurely via HTTP. You are strongly advised to set up your server to require HTTPS instead. Without it some important web functionality like \"copy to clipboard\" or \"service workers\" will not work!", + "Accessing site insecurely via HTTP.": "Accessing site insecurely via HTTP.", + "You are accessing your instance over a secure connection, however your instance is generating insecure URLs. This likely means that your instance is behind a reverse proxy and the Nextcloud `overwrite*` config values are not set correctly.": "You are accessing your instance over a secure connection, however your instance is generating insecure URLs. This likely means that your instance is behind a reverse proxy and the Nextcloud `overwrite*` config values are not set correctly.", + "Your instance is generating insecure URLs. If you access your instance over HTTPS, this likely means that your instance is behind a reverse proxy and the Nextcloud `overwrite*` config values are not set correctly.": "Your instance is generating insecure URLs. If you access your instance over HTTPS, this likely means that your instance is behind a reverse proxy and the Nextcloud `overwrite*` config values are not set correctly.", + "You are accessing your instance over a secure connection, and your instance is generating secure URLs.": "You are accessing your instance over a secure connection, and your instance is generating secure URLs.", + "Internet connectivity": "Internet connectivity", + "Internet connectivity is disabled in configuration file.": "Internet connectivity is disabled in configuration file.", + "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features.": "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features.", + "JavaScript modules support": "JavaScript modules support", + "Unable to run check for JavaScript support. Please remedy or confirm manually if your webserver serves `.mjs` files using the JavaScript MIME type.": "Unable to run check for JavaScript support. Please remedy or confirm manually if your webserver serves `.mjs` files using the JavaScript MIME type.", + "Your webserver does not serve `.mjs` files using the JavaScript MIME type. This will break some apps by preventing browsers from executing the JavaScript files. You should configure your webserver to serve `.mjs` files with either the `text/javascript` or `application/javascript` MIME type.": "Your webserver does not serve `.mjs` files using the JavaScript MIME type. This will break some apps by preventing browsers from executing the JavaScript files. You should configure your webserver to serve `.mjs` files with either the `text/javascript` or `application/javascript` MIME type.", + "JavaScript source map support": "JavaScript source map support", + "Your webserver is not set up to serve `.js.map` files. Without these files, JavaScript Source Maps won't function properly, making it more challenging to troubleshoot and debug any issues that may arise.": "Your webserver is not set up to serve `.js.map` files. Without these files, JavaScript Source Maps won't function properly, making it more challenging to troubleshoot and debug any issues that may arise.", + "Old server-side-encryption": "Old server-side-encryption", + "Disabled": "Disabled", + "The old server-side-encryption format is enabled. We recommend disabling this.": "The old server-side-encryption format is enabled. We recommend disabling this.", + "Maintenance window start": "Maintenance window start", + "Server has no maintenance window start time configured. This means resource intensive daily background jobs will also be executed during your main usage time. We recommend to set it to a time of low usage, so users are less impacted by the load caused from these heavy tasks.": "Server has no maintenance window start time configured. This means resource intensive daily background jobs will also be executed during your main usage time. We recommend to set it to a time of low usage, so users are less impacted by the load caused from these heavy tasks.", + "Maintenance window to execute heavy background jobs is between {start}:00 UTC and {end}:00 UTC": "Maintenance window to execute heavy background jobs is between {start}:00 UTC and {end}:00 UTC", + "Memcache": "Memcache", + "Memcached is configured as distributed cache, but the wrong PHP module (\"memcache\") is installed. Please install the PHP module \"memcached\".": "Memcached is configured as distributed cache, but the wrong PHP module (\"memcache\") is installed. Please install the PHP module \"memcached\".", + "Memcached is configured as distributed cache, but the PHP module \"memcached\" is not installed. Please install the PHP module \"memcached\".": "Memcached is configured as distributed cache, but the PHP module \"memcached\" is not installed. Please install the PHP module \"memcached\".", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available.": "No memory cache has been configured. To enhance performance, please configure a memcache, if available.", + "Configured": "Configured", + "Mimetype migrations available": "Mimetype migrations available", + "One or more mimetype migrations are available. Occasionally new mimetypes are added to better handle certain file types. Migrating the mimetypes take a long time on larger instances so this is not done automatically during upgrades. Use the command `occ maintenance:repair --include-expensive` to perform the migrations.": "One or more mimetype migrations are available. Occasionally new mimetypes are added to better handle certain file types. Migrating the mimetypes take a long time on larger instances so this is not done automatically during upgrades. Use the command `occ maintenance:repair --include-expensive` to perform the migrations.", + "MySQL Unicode support": "MySQL Unicode support", + "You are not using MySQL": "You are not using MySQL", + "MySQL is used as database and does support 4-byte characters": "MySQL is used as database and does support 4-byte characters", + "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL.": "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL.", + "OCS provider resolving": "OCS provider resolving", + "Could not check if your web server properly resolves the OCM and OCS provider URLs.": "Could not check if your web server properly resolves the OCM and OCS provider URLs.", + "Your web server is not properly set up to resolve %1$s.\nThis is most likely related to a web server configuration that was not updated to deliver this folder directly.\nPlease compare your configuration against the shipped rewrite rules in \".htaccess\" for Apache or the provided one in the documentation for Nginx.\nOn Nginx those are typically the lines starting with \"location ~\" that need an update.": "Your web server is not properly set up to resolve %1$s.\nThis is most likely related to a web server configuration that was not updated to deliver this folder directly.\nPlease compare your configuration against the shipped rewrite rules in \".htaccess\" for Apache or the provided one in the documentation for Nginx.\nOn Nginx those are typically the lines starting with \"location ~\" that need an update.", + "Overwrite CLI URL": "Overwrite CLI URL", + "The \"overwrite.cli.url\" option in your config.php is correctly set to \"%s\".": "The \"overwrite.cli.url\" option in your config.php is correctly set to \"%s\".", + "The \"overwrite.cli.url\" option in your config.php is set to \"%s\" which is a correct URL. Suggested URL is \"%s\".": "The \"overwrite.cli.url\" option in your config.php is set to \"%s\" which is a correct URL. Suggested URL is \"%s\".", + "Please make sure to set the \"overwrite.cli.url\" option in your config.php file to the URL that your users mainly use to access this Nextcloud. Suggestion: \"%s\". Otherwise there might be problems with the URL generation via cron. (It is possible though that the suggested URL is not the URL that your users mainly use to access this Nextcloud. Best is to double check this in any case.)": "Please make sure to set the \"overwrite.cli.url\" option in your config.php file to the URL that your users mainly use to access this Nextcloud. Suggestion: \"%s\". Otherwise there might be problems with the URL generation via cron. (It is possible though that the suggested URL is not the URL that your users mainly use to access this Nextcloud. Best is to double check this in any case.)", + "PHP default charset": "PHP default charset", + "PHP configuration option \"default_charset\" should be UTF-8": "PHP configuration option \"default_charset\" should be UTF-8", + "PHP set_time_limit": "PHP set_time_limit", + "The function is available.": "The function is available.", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended.": "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended.", + "Freetype": "Freetype", + "Supported": "Supported", + "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface.": "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface.", + "PHP getenv": "PHP getenv", + "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response.": "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response.", + "PHP memory limit": "PHP memory limit", + "The PHP memory limit is below the recommended value of %s.": "The PHP memory limit is below the recommended value of %s.", + "PHP modules": "PHP modules", + "increases language translation performance and fixes sorting of non-ASCII characters": "increases language translation performance and fixes sorting of non-ASCII characters", + "for Argon2 for password hashing": "for Argon2 for password hashing", + "for WebAuthn passwordless login": "for WebAuthn passwordless login", + "for WebAuthn passwordless login, and SFTP storage": "for WebAuthn passwordless login, and SFTP storage", + "for picture rotation in server and metadata extraction in the Photos app": "for picture rotation in server and metadata extraction in the Photos app", + "This instance is missing some required PHP modules. It is required to install them: %s.": "This instance is missing some required PHP modules. It is required to install them: %s.", + "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them:\n%s": "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them:\n%s", + "PHP opcache": "PHP opcache", + "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation.": "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation.", + "OPcache is disabled. For better performance, it is recommended to apply \"opcache.enable=1\" to your PHP configuration.": "OPcache is disabled. For better performance, it is recommended to apply \"opcache.enable=1\" to your PHP configuration.", + "The shared memory based OPcache is disabled. For better performance, it is recommended to apply \"opcache.file_cache_only=0\" to your PHP configuration and use the file cache as second level cache only.": "The shared memory based OPcache is disabled. For better performance, it is recommended to apply \"opcache.file_cache_only=0\" to your PHP configuration and use the file cache as second level cache only.", + "OPcache is not working as it should, opcache_get_status() returns false, please check configuration.": "OPcache is not working as it should, opcache_get_status() returns false, please check configuration.", + "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be kept in the cache, it is recommended to apply \"opcache.max_accelerated_files\" to your PHP configuration with a value higher than \"%s\".": "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be kept in the cache, it is recommended to apply \"opcache.max_accelerated_files\" to your PHP configuration with a value higher than \"%s\".", + "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply \"opcache.memory_consumption\" to your PHP configuration with a value higher than \"%s\".": "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply \"opcache.memory_consumption\" to your PHP configuration with a value higher than \"%s\".", + "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply \"opcache.interned_strings_buffer\" to your PHP configuration with a value higher than \"%s\".": "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply \"opcache.interned_strings_buffer\" to your PHP configuration with a value higher than \"%s\".", + "OPcache is configured to remove code comments. With OPcache enabled, \"opcache.save_comments=1\" must be set for Nextcloud to function.": "OPcache is configured to remove code comments. With OPcache enabled, \"opcache.save_comments=1\" must be set for Nextcloud to function.", + "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with \"opcache.restrict_api\" or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades.": "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with \"opcache.restrict_api\" or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades.", + "Checking from CLI, OPcache checks have been skipped.": "Checking from CLI, OPcache checks have been skipped.", + "The PHP OPcache module is not properly configured. %s.": "The PHP OPcache module is not properly configured. %s.", + "Correctly configured": "Correctly configured", + "PHP version": "PHP version", + "You are currently running PHP %s. PHP 8.1 is now deprecated in Nextcloud 30. Nextcloud 31 may require at least PHP 8.2. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible.": "You are currently running PHP %s. PHP 8.1 is now deprecated in Nextcloud 30. Nextcloud 31 may require at least PHP 8.2. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible.", + "You are currently running PHP %s.": "You are currently running PHP %s.", + "PHP \"output_buffering\" option": "PHP \"output_buffering\" option", + "PHP configuration option \"output_buffering\" must be disabled": "PHP configuration option \"output_buffering\" must be disabled", + "Push service": "Push service", + "Valid enterprise license": "Valid enterprise license", + "Free push service": "Free push service", + "This is the unsupported community build of Nextcloud. Given the size of this instance, performance, reliability and scalability cannot be guaranteed. Push notifications are limited to avoid overloading our free service. Learn more about the benefits of Nextcloud Enterprise at {link}.": "This is the unsupported community build of Nextcloud. Given the size of this instance, performance, reliability and scalability cannot be guaranteed. Push notifications are limited to avoid overloading our free service. Learn more about the benefits of Nextcloud Enterprise at {link}.", + "Random generator": "Random generator", + "No suitable source for randomness found by PHP which is highly discouraged for security reasons.": "No suitable source for randomness found by PHP which is highly discouraged for security reasons.", + "Secure": "Secure", + "Configuration file access rights": "Configuration file access rights", + "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update.": "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update.", + "Nextcloud configuration file is writable": "Nextcloud configuration file is writable", + "Scheduling objects table size": "Scheduling objects table size", + "You have more than %s rows in the scheduling objects table. Please run the expensive repair jobs via occ maintenance:repair --include-expensive.": "You have more than %s rows in the scheduling objects table. Please run the expensive repair jobs via occ maintenance:repair --include-expensive.", + "Scheduling objects table size is within acceptable range.": "Scheduling objects table size is within acceptable range.", + "HTTP headers": "HTTP headers", + "- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly.": "- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly.", + "- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.": "- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.", + "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.": "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.", + "- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}.": "- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}.", + "- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy.": "- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy.", + "- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS.": "- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS.", + "- The `Strict-Transport-Security` HTTP header is not set (should be at least `%d` seconds). For enhanced security, it is recommended to enable HSTS.": "- The `Strict-Transport-Security` HTTP header is not set (should be at least `%d` seconds). For enhanced security, it is recommended to enable HSTS.", + "Some headers are not set correctly on your instance": "Some headers are not set correctly on your instance", + "Could not check that your web server serves security headers correctly. Please check manually.": "Could not check that your web server serves security headers correctly. Please check manually.", + "Could not check that your web server serves security headers correctly, unable to query `%s`": "Could not check that your web server serves security headers correctly, unable to query `%s`", + "Your server is correctly configured to send security headers.": "Your server is correctly configured to send security headers.", + "Database version": "Database version", + "MariaDB version 10.3 detected, this version is end-of-life and only supported as part of Ubuntu 20.04. MariaDB >=%1$s and <=%2$s is suggested for best performance, stability and functionality with this version of Nextcloud.": "MariaDB version 10.3 detected, this version is end-of-life and only supported as part of Ubuntu 20.04. MariaDB >=%1$s and <=%2$s is suggested for best performance, stability and functionality with this version of Nextcloud.", + "MariaDB version \"%1$s\" detected. MariaDB >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud.": "MariaDB version \"%1$s\" detected. MariaDB >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud.", + "MySQL version \"%1$s\" detected. MySQL >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud.": "MySQL version \"%1$s\" detected. MySQL >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud.", + "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud.": "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud.", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend. This is particularly recommended when using the desktop client for file synchronisation. To migrate to another database use the command line tool: \"occ db:convert-type\".": "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend. This is particularly recommended when using the desktop client for file synchronisation. To migrate to another database use the command line tool: \"occ db:convert-type\".", + "Unknown database platform": "Unknown database platform", + "Architecture": "Architecture", + "64-bit": "64-bit", + "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!": "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!", + "Temporary space available": "Temporary space available", + "Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s": "Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s", + "The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories.": "The PHP function \"disk_free_space\" is disabled, preventing the system from checking for sufficient space in the temporary directories.", + "Error while checking the available disk space of temporary PHP path or no free disk space returned. Temporary path: %s": "Error while checking the available disk space of temporary PHP path or no free disk space returned. Temporary path: %s", + "- %.1f GiB available in %s (PHP temporary directory)": "- %.1f GiB available in %s (PHP temporary directory)", + "- %.1f GiB available in %s (Nextcloud temporary directory)": "- %.1f GiB available in %s (Nextcloud temporary directory)", + "Temporary directory is correctly configured:\n%s": "Temporary directory is correctly configured:\n%s", + "This instance uses an S3 based object store as primary storage, and has enough space in the temporary directory.\n%s": "This instance uses an S3 based object store as primary storage, and has enough space in the temporary directory.\n%s", + "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GiB of free space available in the temp directory of PHP. To improve this please change the temporary directory in the php.ini or make more space available in that path. \nChecking the available space in the temporary path resulted in %.1f GiB instead of the recommended 50 GiB. Path: %s": "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GiB of free space available in the temp directory of PHP. To improve this please change the temporary directory in the php.ini or make more space available in that path. \nChecking the available space in the temporary path resulted in %.1f GiB instead of the recommended 50 GiB. Path: %s", + "Database transaction isolation level": "Database transaction isolation level", + "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel.": "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel.", + "Was not able to get transaction isolation level: %s": "Was not able to get transaction isolation level: %s", + ".well-known URLs": ".well-known URLs", + "`check_for_working_wellknown_setup` is set to false in your configuration, so this check was skipped.": "`check_for_working_wellknown_setup` is set to false in your configuration, so this check was skipped.", + "Could not check that your web server serves `.well-known` correctly. Please check manually.": "Could not check that your web server serves `.well-known` correctly. Please check manually.", + "Your web server is not properly set up to resolve `.well-known` URLs, failed on:\n`%s`": "Your web server is not properly set up to resolve `.well-known` URLs, failed on:\n`%s`", + "Your server is correctly configured to serve `.well-known` URLs.": "Your server is correctly configured to serve `.well-known` URLs.", + "WOFF2 file loading": "WOFF2 file loading", + "Could not check for WOFF2 loading support. Please check manually if your webserver serves `.woff2` files.": "Could not check for WOFF2 loading support. Please check manually if your webserver serves `.woff2` files.", + "Your web server is not properly set up to deliver .woff2 files. This is typically an issue with the Nginx configuration. For Nextcloud 15 it needs an adjustement to also deliver .woff2 files. Compare your Nginx configuration to the recommended configuration in our documentation.": "Your web server is not properly set up to deliver .woff2 files. This is typically an issue with the Nginx configuration. For Nextcloud 15 it needs an adjustement to also deliver .woff2 files. Compare your Nginx configuration to the recommended configuration in our documentation.", + "Profile information": "Profile information", + "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled": "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled", + "Nextcloud settings": "Nextcloud settings", + "Unified task processing": "Unified task processing", + "AI tasks can be implemented by different apps. Here you can set which app should be used for which task.": "AI tasks can be implemented by different apps. Here you can set which app should be used for which task.", + "Task:": "Task:", + "None of your currently installed apps provide Task processing functionality": "None of your currently installed apps provide Task processing functionality", + "Machine translation": "Machine translation", + "Machine translation can be implemented by different apps. Here you can define the precedence of the machine translation apps you have installed at the moment.": "Machine translation can be implemented by different apps. Here you can define the precedence of the machine translation apps you have installed at the moment.", + "Speech-To-Text": "Speech-To-Text", + "Speech-To-Text can be implemented by different apps. Here you can set which app should be used.": "Speech-To-Text can be implemented by different apps. Here you can set which app should be used.", + "None of your currently installed apps provide Speech-To-Text functionality": "None of your currently installed apps provide Speech-To-Text functionality", + "Image generation": "Image generation", + "Image generation can be implemented by different apps. Here you can set which app should be used.": "Image generation can be implemented by different apps. Here you can set which app should be used.", + "None of your currently installed apps provide image generation functionality": "None of your currently installed apps provide image generation functionality", + "Text processing": "Text processing", + "Text processing tasks can be implemented by different apps. Here you can set which app should be used for which task.": "Text processing tasks can be implemented by different apps. Here you can set which app should be used for which task.", + "None of your currently installed apps provide Text processing functionality": "None of your currently installed apps provide Text processing functionality", + "Here you can decide which group can access certain sections of the administration settings.": "Here you can decide which group can access certain sections of the administration settings.", + "None": "None", + "Unable to modify setting": "Unable to modify setting", + "Allow apps to use the Share API": "Allow apps to use the Share API", + "Allow resharing": "Allow resharing", + "Allow sharing with groups": "Allow sharing with groups", + "Restrict users to only share with users in their groups": "Restrict users to only share with users in their groups", + "Ignore the following groups when checking group membership": "Ignore the following groups when checking group membership", + "Allow users to share via link and emails": "Allow users to share via link and emails", + "Allow public uploads": "Allow public uploads", + "Always ask for a password": "Always ask for a password", + "Enforce password protection": "Enforce password protection", + "Exclude groups from password requirements": "Exclude groups from password requirements", + "Exclude groups from creating link shares": "Exclude groups from creating link shares", + "Limit sharing based on groups": "Limit sharing based on groups", + "Allow sharing for everyone (default)": "Allow sharing for everyone (default)", + "Exclude some groups from sharing": "Exclude some groups from sharing", + "Limit sharing to some groups": "Limit sharing to some groups", + "Groups allowed to share": "Groups allowed to share", + "Groups excluded from sharing": "Groups excluded from sharing", + "Not allowed groups will still be able to receive shares, but not to initiate them.": "Not allowed groups will still be able to receive shares, but not to initiate them.", + "Set default expiration date for shares": "Set default expiration date for shares", + "Enforce expiration date": "Enforce expiry date", + "Default expiration time of new shares in days": "Default expiration time of new shares in days", + "Expire shares after x days": "Expire shares after x days", + "Set default expiration date for shares to other servers": "Set default expiration date for shares to other servers", + "Enforce expiration date for remote shares": "Enforce expiration date for remote shares", + "Default expiration time of remote shares in days": "Default expiration time of remote shares in days", + "Expire remote shares after x days": "Expire remote shares after x days", + "Set default expiration date for shares via link or mail": "Set default expiration date for shares via link or mail", + "Default expiration time of shares in days": "Default expiration time of shares in days", + "Privacy settings for sharing": "Privacy settings for sharing", + "Allow account name autocompletion in share dialog and allow access to the system address book": "Allow account name autocompletion in share dialog and allow access to the system address book", + "If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user.": "If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user.", + "Restrict account name autocompletion and system address book access to users within the same groups": "Restrict account name autocompletion and system address book access to users within the same groups", + "Restrict account name autocompletion to users based on phone number integration": "Restrict account name autocompletion to users based on phone number integration", + "Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)": "Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)", + "Show disclaimer text on the public link upload page (only shown when the file list is hidden)": "Show disclaimer text on the public link upload page (only shown when the file list is hidden)", + "Disclaimer text": "Disclaimer text", + "This text will be shown on the public link upload page when the file list is hidden.": "This text will be shown on the public link upload page when the file list is hidden.", + "Default share permissions": "Default share permissions", + "Changed disclaimer text": "Changed disclaimer text", + "Deleted disclaimer text": "Deleted disclaimer text", + "Could not set disclaimer text": "Could not set disclaimer text", + "Two-Factor Authentication": "Two-Factor Authentication", + "Two-factor authentication can be enforced for all accounts and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system.": "Two-factor authentication can be enforced for all accounts and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system.", + "Enforce two-factor authentication": "Enforce two-factor authentication", + "Limit to groups": "Limit to groups", + "Enforcement of two-factor authentication can be set for certain groups only.": "Enforcement of two-factor authentication can be set for certain groups only.", + "Two-factor authentication is enforced for all members of the following groups.": "Two-factor authentication is enforced for all members of the following groups.", + "Enforced groups": "Enforced groups", + "Two-factor authentication is not enforced for members of the following groups.": "Two-factor authentication is not enforced for members of the following groups.", + "Excluded groups": "Excluded groups", + "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced.": "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced.", + "Save changes": "Save changes", + "Show details for {appName} app": "Show details for {appName} app", + "Update to {update}": "Update to {update}", + "Remove": "Remove", + "Disable": "Disable", + "Featured": "Featured", + "This app is supported via your current Nextcloud subscription.": "This app is supported via your current Nextcloud subscription.", + "Featured apps are developed by and within the community. They offer central functionality and are ready for production use.": "Featured apps are developed by and within the community. They offer central functionality and are ready for production use.", + "Community rating: {score}/5": "Community rating: {score}/5", + "All apps are up-to-date.": "All apps are up-to-date.", + "Icon": "Icon", + "Name": "Surname", + "Version": "Version", + "Level": "Level", + "Actions": "Actions", + "Results from other categories": "Results from other categories", + "No apps found for your version": "No apps found for your version", + "Disable all": "Disable all", + "Download and enable all": "Download and enable all", + "_%n app has an update available_::_%n apps have an update available_": [ + "%n app has an update available", + "%n apps have an update available" + ], + "_Update_::_Update all_": [ + "Update", + "Update all" + ], + "Nothing to show": "Nothing to show", + "Could not load section content from app store.": "Could not load section content from app store.", + "Loading": "Loading", + "Fetching the latest news…": "Fetching the latest news…", + "Could not load app discover section": "Could not load app discover section", + "Could not render element": "Could not render element", + "Carousel": "Carousel", + "Previous slide": "Previous slide", + "Next slide": "Next slide", + "Choose slide to display": "Choose slide to display", + "{index} of {total}": "{index} of {total}", + "Description": "Description", + "Details": "Details", + "All": "All", + "Limit app usage to groups": "Limit app usage to groups", + "No results": "No results", + "Update to {version}": "Update to {version}", + "This app has no minimum Nextcloud version assigned. This will be an error in the future.": "This app has no minimum Nextcloud version assigned. This will cause an error in the future.", + "This app has no maximum Nextcloud version assigned. This will be an error in the future.": "This app has no maximum Nextcloud version assigned. This will cause an error in the future.", + "This app cannot be installed because the following dependencies are not fulfilled:": "This app cannot be installed because the following dependencies are not fulfilled:", + "Latest updated": "Latest updated", + "Author": "Author", + "Categories": "Categories", + "Resources": "Resources", + "Documentation": "Documentation", + "Interact": "Interact", + "Report a bug": "Report a bug", + "Request feature": "Request feature", + "Ask questions or discuss": "Ask questions or discuss", + "Rate the app": "Rate the app", + "Rate": "Rate", + "View in store": "View in store", + "Visit website": "Visit website", + "Usage documentation": "Usage documentation", + "Admin documentation": "Admin documentation", + "Developer documentation": "Developer documentation", + "Changelog": "Changelog", + "Device name": "Device name", + "Cancel renaming": "Cancel renaming", + "Save new name": "Save new name", + "Marked for remote wipe": "Marked for remote wipe", + "Device settings": "Device settings", + "Allow filesystem access": "Allow filesystem access", + "Rename": "Rename", + "Revoke": "Revoke", + "Wipe device": "Wipe device", + "Revoking this token might prevent the wiping of your device if it has not started the wipe yet.": "Revoking this token might prevent the wiping of your device if it has not started the wipe yet.", + "Google Chrome for Android": "Google Chrome for Android", + "{productName} iOS app": "{productName} iOS app", + "{productName} Android app": "{productName} Android app", + "{productName} Talk for iOS": "{productName} Talk for iOS", + "{productName} Talk for Android": "{productName} Talk for Android", + "Sync client": "Sync client", + "This session": "This session", + "{client} - {version} ({system})": "{client} - {version} ({system})", + "{client} - {version}": "{client} - {version}", + "Device": "Device", + "Last activity": "Last activity", + "Devices & sessions": "Devices & sessions", + "Web, desktop and mobile clients currently logged in to your account.": "Web, desktop and mobile clients currently logged in to your account.", + "App name": "App name", + "Create new app password": "Create new app password", + "Error while creating device token": "Error while creating device token", + "New app password": "New app password", + "Use the credentials below to configure your app or device. For security reasons this password will only be shown once.": "Use the credentials below to configure your app or device. For security reasons this password will only be shown once.", + "Login": "Login", + "Password": "Password", + "Show QR code for mobile apps": "Show QR code for mobile apps", + "App password copied!": "App password copied!", + "Copy app password": "Copy app password", + "Login name copied!": "Login name copied!", + "Copy login name": "Copy login name", + "Could not copy app password. Please copy it manually.": "Could not copy app password. Please copy it manually.", + "Could not copy login name. Please copy it manually.": "Could not copy login name. Please copy it manually.", + "For the server to work properly, it's important to configure background jobs correctly. Cron is the recommended setting. Please see the documentation for more information.": "For the server to work properly, it's important to configure background jobs correctly. Cron is the recommended setting. Please see the documentation for more information.", + "Last job execution ran {time}. Something seems wrong.": "Last job execution ran {time}. Something seems wrong.", + "Last job ran {relativeTime}.": "Last job ran {relativeTime}.", + "Background job did not run yet!": "Background job did not run yet!", + "AJAX": "AJAX", + "Execute one task with each page loaded. Use case: Single account instance.": "Execute one task with each page loaded. Use case: Single account instance.", + "Webcron": "Webcron", + "cron.php is registered at a webcron service to call cron.php every 5 minutes over HTTP. Use case: Very small instance (1–5 accounts depending on the usage).": "cron.php is registered at a webcron service to call cron.php every 5 minutes over HTTP. Use case: Very small instance (1–5 accounts depending on the usage).", + "Cron (Recommended)": "Cron (Recommended)", + "Use system cron service to call the cron.php file every 5 minutes.": "Use system cron service to call the cron.php file every 5 minutes.", + "The cron.php needs to be executed by the system account \"{user}\".": "The cron.php needs to be executed by the system account \"{user}\".", + "The PHP POSIX extension is required. See {linkstart}PHP documentation{linkend} for more details.": "The PHP POSIX extension is required. See {linkstart}PHP documentation{linkend} for more details.", + "Unable to update background job mode": "Unable to update background job mode", + "Profile": "Profile", + "Enable or disable profile by default for new accounts.": "Enable or disable profile by default for new accounts.", + "Enable": "Enable", + "Unable to update profile default setting": "Unable to update profile default setting", + "{app}'s declarative setting field: {name}": "{app}'s declarative setting field: {name}", + "Failed to save setting": "Failed to save setting", + "Server-side encryption": "Server-side encryption", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed.": "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed.", + "Enable server-side encryption": "Enable server-side encryption", + "Please read carefully before activating server-side encryption:": "Please read carefully before activating server-side encryption:", + "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met.": "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met.", + "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases.": "Encryption alone does not guarantee complete security. Please read the documentation for information on how the encryption app works, and supported use cases.", + "Be aware that encryption always increases the file size.": "Be aware that encryption always increases the file size.", + "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data.": "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data.", + "This is the final warning: Do you really want to enable encryption?": "This is the final warning: Do you really want to enable encryption?", + "No encryption module loaded, please enable an encryption module in the app menu.": "No encryption module loaded, please enable an encryption module in the app menu.", + "Select default encryption module:": "Select default encryption module:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run {command}": "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run {command}", + "Unable to update server side encryption config": "Unable to update server side encryption config", + "Please confirm the group removal": "Please confirm the group removal", + "You are about to remove the group \"{group}\". The accounts will NOT be deleted.": "You are about to remove the group \"{group}\". The accounts will NOT be deleted.", + "Cancel": "Cancel", + "Confirm": "Confirm", + "Submit": "Submit", + "Rename group": "Rename group", + "Remove group": "Remove group", + "Failed to remove group \"{group}\"": "Failed to remove group \"{group}\"", + "Current password": "Current password", + "New password": "New password", + "Change password": "Change password", + "Your profile picture": "Your profile picture", + "Upload profile picture": "Upload profile picture", + "Choose profile picture from Files": "Choose profile picture from Files", + "Remove profile picture": "Remove profile picture", + "The file must be a PNG or JPG": "The file must be a PNG or JPG", + "Picture provided by original account": "Picture provided by original account", + "Set as profile picture": "Set as profile picture", + "Please note that it can take up to 24 hours for your profile picture to be updated everywhere.": "Please note that it can take up to 24 hours for your profile picture to be updated everywhere.", + "Choose your profile picture": "Choose your profile picture", + "Please select a valid png or jpg file": "Please select a valid png or jpg file", + "Error setting profile picture": "Error setting profile picture", + "Error cropping profile picture": "Error cropping profile picture", + "Error saving profile picture": "Error saving profile picture", + "Error removing profile picture": "Error removing profile picture", + "Your biography": "Your biography", + "Enter your date of birth": "Enter your date of birth", + "Unable to update date of birth": "Unable to update date of birth", + "You are a member of the following groups:": "You are a member of the following groups:", + "You are using {usage}": "You are using {usage}", + "You are using {usage} of {totalSpace} ({usageRelative}%)": "You are using {usage} of {totalSpace} ({usageRelative}%)", + "Your full name": "Your full name", + "Primary email for password reset and notifications": "Primary email for password reset and notifications", + "Email options": "Email options", + "Options for additional email address {index}": "Options for additional email address {index}", + "Remove primary email": "Remove primary email", + "Delete email": "Delete email", + "This address is not confirmed": "This address is not confirmed", + "Unset as primary email": "Unset as primary email", + "Set as primary email": "Set as primary email", + "Additional email address {index}": "Additional email address {index}", + "Unable to delete primary email address": "Unable to delete primary email address", + "Unable to update primary email address": "Unable to update primary email address", + "Unable to add additional email address": "Unable to add additional email address", + "Unable to update additional email address": "Unable to update additional email address", + "Unable to delete additional email address": "Unable to delete additional email address", + "No email address set": "No email address set", + "Your handle": "Your handle", + "Day to use as the first day of week": "Day to use as the first day of week", + "Derived from your locale ({weekDayName})": "Derived from your locale ({weekDayName})", + "Unable to update first day of week": "Unable to update first day of week", + "Your headline": "Your headline", + "Languages": "Languages", + "Help translate": "Help translate", + "Unable to update language": "Unable to update language", + "No language set": "No language set", + "Locales": "Locales", + "Week starts on {firstDayOfWeek}": "Week starts on {firstDayOfWeek}", + "Unable to update locale": "Unable to update locale", + "No locale set": "No locale set", + "Your city": "Your city", + "Your organisation": "Your organisation", + "Your phone number": "Your phone number", + "Edit your Profile visibility": "Edit your Profile visibility", + "Enable profile": "Enable profile", + "Unable to update profile enabled state": "Unable to update profile enabled state", + "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected.": "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected.", + "Unable to update visibility of {displayId}": "Unable to update visibility of {displayId}", + "Your role": "Your role", + "Your X (formerly Twitter) handle": "Your X (formerly Twitter) handle", + "Your website": "Your website", + "No {property} set": "No {property} set", + "Invalid value": "Invalid value", + "Unable to update {property}": "Unable to update {property}", + "Change scope level of {property}, current scope is {scope}": "Change scope level of {property}, current scope is {scope}", + "Unable to update federation scope of the primary {property}": "Unable to update federation scope of the primary {property}", + "Unable to update federation scope of additional {property}": "Unable to update federation scope of additional {property}", + "Add additional email": "Add additional email", + "Add": "Add", + "Create": "Create", + "Change": "Change", + "Delete": "Delete", + "Reshare": "Reshare", + "No accounts": "No accounts", + "Loading accounts …": "Loading accounts …", + "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.": "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.", + "Default language": "Default language", + "Common languages": "Common languages", + "Other languages": "Other languages", + "Password change is disabled because the master key is disabled": "Password change is disabled because the master key is disabled", + "New account": "New account", + "Display name": "Display name", + "Either password or email is required": "Either password or email is required", + "Password (required)": "Password (required)", + "Email (required)": "Email (required)", + "Email": "Email", + "Member of the following groups (required)": "Member of the following groups (required)", + "Member of the following groups": "Member of the following groups", + "Set account groups": "Set account groups", + "Admin of the following groups": "Admin of the following groups", + "Set account as admin for …": "Set account as admin for …", + "Quota": "Quota", + "Set account quota": "Set account quota", + "Language": "Language", + "Set default language": "Set default language", + "Add new account": "Add new account", + "Manager": "Manager", + "Set account manager": "Set account manager", + "Account name will be autogenerated": "Account name will be autogenerated", + "Account name (required)": "Account name (required)", + "Total rows summary": "Total rows summary", + "Scroll to load more rows": "Scroll to load more rows", + "_{userCount} account …_::_{userCount} accounts …_": [ + "{userCount} account …", + "{userCount} accounts …" + ], + "_{userCount} account_::_{userCount} accounts_": [ + "{userCount} account", + "{userCount} accounts" + ], + "Avatar": "Avatar", + "Account name": "Account name", + "Group admin for": "Group admin for", + "Account backend": "Account backend", + "Storage location": "Storage location", + "Last login": "Last login", + "Account actions": "Account actions", + "Password or insufficient permissions message": "Password or insufficient permissions message", + "Loading account …": "Loading account …", + "Change display name": "Change display name", + "Set new password": "Set new password", + "You do not have permissions to see the details of this account": "You do not have permissions to see the details of this account", + "Set new email address": "Set new email address", + "Add account to group": "Add account to group", + "Set account as admin for": "Set account as admin for", + "Select account quota": "Select account quota", + "Set the language": "Set the language", + "Set line manager": "Set line manager", + "{size} used": "{size} used", + "Delete account": "Delete account", + "Disconnect all devices and delete local data": "Disconnect all devices and delete local data", + "Disable account": "Disable account", + "Enable account": "Enable account", + "Resend welcome email": "Resend welcome email", + "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet.": "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet.", + "Remote wipe of devices": "Remote wipe of devices", + "Wipe {userid}'s devices": "Wipe {userid}'s devices", + "Wiped {userid}'s devices": "Wiped {userid}'s devices", + "Failed to update line manager": "Failed to update line manager", + "Fully delete {userid}'s account including all their personal files, app data, etc.": "Fully delete {userid}'s account including all their personal files, app data, etc.", + "Account deletion": "Account deletion", + "Delete {userid}'s account": "Delete {userid}'s account", + "Display name was successfully changed": "Display name was successfully changed", + "Password was successfully changed": "Password was successfully changed", + "Email was successfully changed": "Email was successfully changed", + "Welcome mail sent!": "Welcome mail sent!", + "Toggle account actions menu": "Toggle account actions menu", + "Done": "Done", + "Edit": "Edit", + "Account management settings": "Account management settings", + "Visibility": "Visibility", + "Show language": "Show language", + "Show account backend": "Show account backend", + "Show storage path": "Show storage path", + "Show last login": "Show last login", + "Sorting": "Sorting", + "The system config enforces sorting the groups by name. This also disables showing the member count.": "The system config enforces sorting the groups by name. This also disables showing the member count.", + "Group list sorting": "Group list sorting", + "By member count": "By member count", + "By name": "By name", + "Send email": "Send email", + "Send welcome email to new accounts": "Send welcome email to new accounts", + "Defaults": "Defaults", + "Default quota": "Default quota", + "Select default quota": "Select default quota", + "Passwordless authentication requires a secure connection.": "Passwordless authentication requires a secure connection.", + "Add WebAuthn device": "Add WebAuthn device", + "Please authorize your WebAuthn device.": "Please authorise your WebAuthn device.", + "Adding your device …": "Adding your device …", + "Server error while trying to complete WebAuthn device registration": "Server error while trying to complete WebAuthn device registration", + "Unnamed device": "Unnamed device", + "Passwordless Authentication": "Passwordless Authentication", + "Set up your account for passwordless authentication following the FIDO2 standard.": "Set up your account for passwordless authentication following the FIDO2 standard.", + "No devices configured.": "No devices configured.", + "The following devices are configured for your account:": "The following devices are configured for your account:", + "Your browser does not support WebAuthn.": "Your browser does not support WebAuthn.", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information.": "As admin you can fine-tune the sharing behavior. Please see the documentation for more information.", + "You need to enable the File sharing App.": "You need to enable the File sharing App.", + "Loading app list": "Loading app list", + "App Store": "App Store", + "Loading categories": "Loading categories", + "Developer documentation ↗": "Developer documentation ↗", + "Version {version}, {license}-licensed": "Version {version}, {license}-licensed", + "All accounts": "All accounts", + "Admins": "Admins", + "Account group: {group}": "Account group: {group}", + "Account management": "Account management", + "Creating group…": "Creating group…", + "Create group": "Create group", + "Group name": "Group name", + "Please enter a valid group name": "Please enter a valid group name", + "Failed to create group": "Failed to create group", + "Sending…": "Sending…", + "Email sent": "Email sent", + "Location": "Location", + "Profile picture": "Profile picture", + "About": "About", + "Full name": "Full name", + "Additional email": "Additional email", + "Headline": "Headline", + "Organisation": "Organisation", + "Phone number": "Phone number", + "Role": "Role", + "X (formerly Twitter)": "X (formerly Twitter)", + "Fediverse (e.g. Mastodon)": "Fediverse (e.g. Mastodon)", + "Website": "Website", + "Date of birth": "Date of birth", + "Profile visibility": "Profile visibility", + "Locale": "Locale", + "First day of week": "First day of week", + "Not available as this property is required for core functionality including file sharing and calendar invitations": "Not available as this property is required for core functionality including file sharing and calendar invitations", + "Not available as federation has been disabled for your account, contact your system administration if you have any questions": "Not available as federation has been disabled for your account, contact your system administration if you have any questions", + "Not available as publishing account specific data to the lookup server is not allowed, contact your system administration if you have any questions": "Not available as publishing account specific data to the lookup server is not allowed, contact your system administration if you have any questions", + "Discover": "Discover", + "Your apps": "Your apps", + "Active apps": "Active apps", + "Disabled apps": "Disabled apps", + "Updates": "Updates", + "App bundles": "App bundles", + "Featured apps": "Featured apps", + "Supported apps": "Supported apps", + "Show to everyone": "Show to everyone", + "Show to logged in accounts only": "Show to logged in accounts only", + "Hide": "Hide", + "Download and enable": "Download and enable", + "Allow untested app": "Allow untested app", + "The app will be downloaded from the App Store": "The app will be downloaded from the App Store", + "This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.": "This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.", + "Never": "Never", + "Could not register device: Network error": "Could not register device: Network error", + "Could not register device: Probably already registered": "Could not register device: Probably already registered", + "Could not register device": "Could not register device", + "An error occurred during the request. Unable to proceed.": "An error occurred during the request. Unable to proceed.", + "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds.": "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds.", + "Error: This app cannot be enabled because it makes the server unstable": "Error: This app cannot be enabled because it makes the server unstable", + "Do you really want to wipe your data from this device?": "Do you really want to wipe your data from this device?", + "Confirm wipe": "Confirm wipe", + "Could not delete the app token": "Could not delete the app token", + "Error while wiping the device with the token": "Error while wiping the device with the token", + "Error while updating device token name": "Error while updating device token name", + "Error while updating device token scope": "Error while updating device token scope", + "Could not set group sorting": "Could not set group sorting", + "There were too many requests from your network. Retry later or contact your administrator if this is an error.": "There were too many requests from your network. Retry later or contact your administrator if this is an error.", + "Error": "Error", + "Account documentation": "Account documentation", + "Administration documentation": "Administration documentation", + "Forum": "Forum", + "Nextcloud help & privacy resources": "Nextcloud help & privacy resources", + "General documentation": "General documentation", + "Legal notice": "Legal notice", + "Privacy policy": "Privacy policy", + "None/STARTTLS": "None/STARTTLS", + "SSL": "SSL", + "Open documentation": "Open documentation", + "It is important to set up this server to be able to send emails, like for password reset and notifications.": "It is important to set up this server to be able to send emails, like for password reset and notifications.", + "Send mode": "Send mode", + "Encryption": "Encryption", + "Sendmail mode": "Sendmail mode", + "From address": "From address", + "Server address": "Server address", + "Port": "Port", + "Authentication": "Authentication", + "Authentication required": "Authentication required", + "Credentials": "Credentials", + "SMTP Login": "SMTP Login", + "SMTP Password": "SMTP Password", + "Save": "Save", + "Test and verify email settings": "Test and verify email settings", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information.": "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information.", + "All checks passed.": "All checks passed.", + "There are some errors regarding your setup.": "There are some errors regarding your setup.", + "There are some warnings regarding your setup.": "There are some warnings regarding your setup.", + "Checking for system and security issues.": "Checking for system and security issues.", + "Please double check the installation guides ↗, and check for any errors or warnings in the log.": "Please double check the installation guides ↗, and check for any errors or warnings in the log.", + "Check the security of your Nextcloud over our security scan ↗.": "Check the security of your Nextcloud over our security scan ↗.", + "Reasons to use Nextcloud in your organization": "Reasons to use Nextcloud in your organization", + "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}.": "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}.", + "Like our Facebook page": "Like our Facebook page", + "Follow us on Twitter": "Follow us on Twitter", + "Follow us on Mastodon": "Follow us on Mastodon", + "Check out our blog": "Check out our blog", + "Subscribe to our newsletter": "Subscribe to our newsletter", + "This community release of Nextcloud is unsupported and instant notifications are unavailable.": "This community release of Nextcloud is unsupported and instant notifications are unavailable.", + "Use a second factor besides your password to increase security for your account.": "Use a second factor besides your password to increase security for your account.", + "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication.": "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication.", + "No user supplied": "No user supplied", + "Please provide an admin recovery password; otherwise, all user data will be lost.": "Please provide an admin recovery password; otherwise, all user data will be lost.", + "Backend does not support password change, but the user's encryption key was updated.": "Backend does not support password change, but the user's encryption key was updated.", + "You need to set your user email before being able to send test emails. Go to %s for that.": "You need to set your user email before being able to send test emails. Go to %s for that.", + "Invalid user": "Invalid user", + "Your username is: %s": "Your username is: %s", + "Logged in user must be a subadmin": "Logged in user must be a subadmin", + "Old user imported certificates": "Old user imported certificates", + "A background job is pending that checks for user imported SSL certificates. Please check back later.": "A background job is pending that checks for user imported SSL certificates. Please check back later.", + "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below.": "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below.", + "Missing optional index \"%s\" in table \"%s\".": "Missing optional index \"%s\" in table \"%s\".", + "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster.": "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster.", + "Could not check for JavaScript support. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type.": "Could not check for JavaScript support. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type.", + "MySQL unicode support": "MySQL unicode support", + "Overwrite cli URL": "Overwrite CLI URL", + "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible.": "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible.", + "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher.": "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher.", + "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher.": "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher.", + "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher.": "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher.", + "Exclude groups from sharing": "Exclude groups from sharing", + "These groups will still be able to receive shares, but not to initiate them.": "These groups will still be able to receive shares, but not to initiate them.", + "Allow username autocompletion in share dialog and allow access to the system address book": "Allow username autocompletion in share dialogue and allow access to the system address book", + "Two-factor authentication can be enforced for all users and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system.": "Two-factor authentication can be enforced for all users and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system.", + "When groups are selected/excluded, they use the following logic to determine if a user has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If a user is both in a selected and excluded group, the selected takes precedence and 2FA is enforced.": "When groups are selected/excluded, they use the following logic to determine if a user has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If a user is both in a selected and excluded group, the selected takes precedence and 2FA is enforced.", + "Rating: {score}/10": "Rating: {score}/10", + "Username": "Username", + "Execute one task with each page loaded. Use case: Single user instance.": "Execute one task with each page loaded. Use case: Single user instance.", + "cron.php is registered at a webcron service to call cron.php every 5 minutes over HTTP. Use case: Very small instance (1–5 users depending on the usage).": "cron.php is registered at a webcron service to call cron.php every 5 minutes over HTTP. Use case: Very small instance (1–5 users depending on the usage).", + "The cron.php needs to be executed by the system user \"{user}\".": "The cron.php needs to be executed by the system user \"{user}\".", + "Enable or disable profile by default for new users.": "Enable or disable profile by default for new users.", + "You are about to remove the group \"{group}\". The users will NOT be deleted.": "You are about to remove the group \"{group}\". The users will NOT be deleted.", + "Additional emails": "Additional emails", + "Enable Profile": "Enable Profile", + "No users": "No users", + "Loading users …": "Loading users …", + "List of users. This list is not fully rendered for performance reasons. The users will be rendered as you navigate through the list.": "List of users. This list is not fully rendered for performance reasons. The users will be rendered as you navigate through the list.", + "New user": "New user", + "Groups (required)": "Groups (required)", + "Set user groups": "Set user groups", + "Administered groups": "Administered groups", + "Set user as admin for …": "Set user as admin for …", + "Set user quota": "Set user quota", + "Add new user": "Add new user", + "Set user manager": "Set user manager", + "Username will be autogenerated": "Username will be autogenerated", + "Username (required)": "Username (required)", + "_{userCount} user …_::_{userCount} users …_": [ + "{userCount} user …", + "{userCount} users …" + ], + "_{userCount} user_::_{userCount} users_": [ + "{userCount} user", + "{userCount} users" + ], + "User backend": "User backend", + "User actions": "User actions", + "Loading user …": "Loading user …", + "You do not have permissions to see the details of this user": "You do not have permissions to see the details of this user", + "Add user to group": "Add user to group", + "Set user as admin for": "Set user as admin for", + "Select user quota": "Select user quota", + "Delete user": "Delete user", + "Wipe all devices": "Wipe all devices", + "Disable user": "Disable user", + "Enable user": "Enable user", + "Failed to update user manager": "Failed to update user manager", + "Toggle user actions menu": "Toggle user actions menu", + "User management settings": "User management settings", + "Show user backend": "Show user backend", + "Send welcome email to new users": "Send welcome email to new users", + "Name your device": "Name your device", + "Server error while trying to add WebAuthn device": "Server error while trying to add WebAuthn device", + "{license}-licensed": "{license}-licensed", + "by {author}\n{license}": "by {author}\n{license}", + "User management": "User management", + "Active users": "Active users", + "Disabled users": "Disabled users", + "Creating group …": "Creating group …", + "User group: {group}": "User group: {group}", + "Not available as federation has been disabled for your account, contact your system administrator if you have any questions": "Not available as federation has been disabled for your account, contact your system administrator if you have any questions", + "Not available as publishing user specific data to the lookup server is not allowed, contact your system administrator if you have any questions": "Not available as publishing user specific data to the lookup server is not allowed, contact your system administrator if you have any questions", + "Show to logged in users only": "Show to logged in users only", + "Nextcloud help resources": "Nextcloud help resources", + "SMTP Username": "SMTP Username", + "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`.": "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`.", + "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type.": "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type.", + "Active accounts": "Active accounts" + }, + "pluralForm": "nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/resources/js/colors.js b/resources/js/colors.ts similarity index 96% rename from resources/js/colors.js rename to resources/js/colors.ts index 83abd71..ab67795 100644 --- a/resources/js/colors.js +++ b/resources/js/colors.ts @@ -35,7 +35,7 @@ export const colorsOutline = { info: [colorsText.info, 'border-blue-500'], }; -export const getButtonColor = (color, isOutlined, hasHover) => { +export const getButtonColor = (color: 'white' | 'contrast' | 'light' | 'success' | 'danger' | 'warning' | 'info' | 'modern', isOutlined: boolean, hasHover: boolean) => { const colors = { bg: { white: 'bg-white text-black', diff --git a/resources/js/config.js b/resources/js/config.ts similarity index 100% rename from resources/js/config.js rename to resources/js/config.ts diff --git a/resources/js/logo.svg b/resources/js/logo.svg new file mode 100644 index 0000000..c0b62d6 --- /dev/null +++ b/resources/js/logo.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/resources/js/menu.ts b/resources/js/menu.ts index f59170f..16d08d7 100644 --- a/resources/js/menu.ts +++ b/resources/js/menu.ts @@ -1,12 +1,51 @@ -import { mdiMonitor, mdiGithub, mdiAccountEye, mdiAccountGroup, mdiDatabasePlus } from '@mdi/js'; +import { + // mdiMonitor, + mdiGithub, + mdiAccountEye, + mdiAccountGroup, + mdiAccountEdit, + mdiPublish, + mdiAccountArrowUp, + mdiFormatListNumbered, + mdiLock, + mdiFormatListGroup, + mdiShieldCrownOutline, + mdiLicense, + mdiFileDocument, + mdiLibraryShelves +} from '@mdi/js'; export default [ { - route: 'dashboard', - icon: mdiMonitor, - label: 'Dashboard', + // route: 'dataset.create', + icon: mdiAccountEdit , + label: 'Personal', + // roles: ['submitter'], + isOpen: true, + children: [ + { + route: 'settings.user', + icon: mdiLock, + label: 'Security', + }, + { + route: 'settings.profile.edit', + icon: mdiLock, + label: 'Profile', + }, + // { + // route: 'dataset.create', + // icon: mdiPublish, + // label: 'Create Dataset', + // }, + ], }, // { + // route: 'apps.dashboard', + // icon: mdiMonitor, + // label: 'Dashboard', + // }, + // { // route: 'permission.index', // icon: mdiAccountKey, // label: 'Permissions' @@ -17,47 +56,117 @@ export default [ // label: 'Roles' // }, { - route: 'user.index', - icon: mdiAccountGroup, - label: 'Users', + icon: mdiShieldCrownOutline, + label: 'Administration', + roles: ['administrator'], + isOpen: true, + permanent: true, + children: [ + { + route: 'settings.overview', + icon: mdiFormatListGroup, + label: 'Overview', + roles: ['administrator'], + }, + { + route: 'settings.user.index', + icon: mdiAccountGroup, + label: 'Users', + roles: ['administrator'], + }, + { + route: 'settings.role.index', + icon: mdiAccountEye, + label: 'Roles', + roles: ['administrator'], + }, + { + route: 'settings.mimetype.index', + icon: mdiFileDocument, + label: 'Mime Types', + roles: ['administrator'], + }, + { + route: 'settings.license.index', + icon: mdiLicense, + label: 'Licenses', + roles: ['administrator'], + }, + ], + }, + + { + // route: 'dataset.create', + icon: mdiAccountArrowUp, + label: 'Submitter', + roles: ['submitter'], + isOpen: false, + children: [ + { + route: 'dataset.list', + icon: mdiFormatListNumbered, + label: 'All my datasets', + }, + { + route: 'dataset.create', + icon: mdiPublish, + label: 'Create Dataset', + }, + // { + // route: 'dataset.categorize', + // icon: mdiLibraryShelves, + // label: 'Library Classification', + // }, + ], }, { - route: 'role.index', - icon: mdiAccountEye, - label: 'Roles', + // route: 'dataset.create', + icon: mdiAccountEdit, + label: 'Editor', + roles: ['editor'], + isOpen: false, + children: [ + { + route: 'editor.dataset.list', + icon: mdiFormatListNumbered, + label: 'All my datasets', + }, + // { + // route: 'dataset.create', + // icon: mdiPublish, + // label: 'Create Dataset', + // }, + ], }, + { + // route: 'dataset.create', + icon: mdiAccountEdit, + label: 'Reviewer', + roles: ['reviewer'], + isOpen: false, + children: [ + { + route: 'reviewer.dataset.list', + icon: mdiFormatListNumbered, + label: 'All my datasets', + }, + // { + // route: 'dataset.create', + // icon: mdiPublish, + // label: 'Create Dataset', + // }, + ], + }, + // { + // href: '', + // icon: mdiGithub, + // label: 'Forgejo', + // target: '_blank', + // }, { href: '/oai', icon: mdiAccountEye, label: 'OAI', target: '_blank', }, - { - // route: 'dataset.create', - icon: mdiDatabasePlus, - label: 'Submitter', - children: [ - { - route: 'dataset.list', - icon: mdiDatabasePlus, - label: 'All my datasets', - }, - { - route: 'dataset.create', - icon: mdiDatabasePlus, - label: 'Create Dataset', - }, - ], - }, - // { - // route: 'dataset.create', - // icon: mdiDatabasePlus, - // label: 'Create Dataset', - // }, - { - href: 'https://gitea.geologie.ac.at/geolba/tethys', - icon: mdiGithub, - label: 'Gitea', - target: '_blank', - }, ]; diff --git a/resources/js/service/profile_service.ts b/resources/js/service/profile_service.ts new file mode 100644 index 0000000..30e4b70 --- /dev/null +++ b/resources/js/service/profile_service.ts @@ -0,0 +1,56 @@ +import axios from 'axios'; +// import { getCurrentUser } from '@nextcloud/auth' +// import { generateOcsUrl } from '@nextcloud/router' +import { stardust } from '@eidellev/adonis-stardust/client'; +// import { confirmPassword } from '@nextcloud/password-confirmation' +import '@nextcloud/password-confirmation/dist/style.css' + +/** + * Save the visibility of the profile parameter + * + * @param {string} paramId the profile parameter ID + * @param {string} visibility the visibility + * @return {object} + */ +// export const saveProfileParameterVisibility = async (paramId, visibility) => { +// const userId = getCurrentUser().uid +// const url = generateOcsUrl('/profile/{userId}', { userId }) + +// await confirmPassword() + +// const res = await axios.put(url, { +// paramId, +// visibility, +// }) + +// return res.data +// } + +/** + * Save profile default + * + * @param {boolean} isEnabled the default + * @return {object} + */ +export const saveProfileDefault = async (isEnabled: boolean) => { + // Convert to string for compatibility + let isEnabledString = isEnabled ? '1' : '0' + + // https://rhea.geosphere.at/ocs/v2.php/apps/provisioning_api/api/v1/config/apps/settings/profile_enabled_by_default + // const url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', { + // appId: 'settings', + // key: 'profile_enabled_by_default', + // }) + + let appId= 'settings'; + let key= 'profile_enabled_by_default'; + const url = stardust.route('settings.role.show', [appId, key]); + + // await confirmPassword() + + const res = await axios.post(url, { + value: isEnabledString, + }) + + return res.data +} diff --git a/resources/js/styles.js b/resources/js/styles.js deleted file mode 100644 index 64771d7..0000000 --- a/resources/js/styles.js +++ /dev/null @@ -1,25 +0,0 @@ -export const basic = { - aside: 'bg-gray-800', - asideScrollbars: 'aside-scrollbars-gray', - asideBrand: 'bg-gray-900 text-white', - asideMenuItem: 'text-gray-300 hover:text-white', - asideMenuItemActive: 'font-bold text-white', - asideMenuDropdown: 'bg-gray-700/50', - navBarItemLabel: 'text-black', - navBarItemLabelHover: 'hover:text-blue-500', - navBarItemLabelActiveColor: 'text-blue-600', - overlay: 'from-gray-700 via-gray-900 to-gray-700', -}; - -export const white = { - aside: 'bg-white', - asideScrollbars: 'aside-scrollbars-light', - asideBrand: '', - asideMenuItem: 'text-blue-600 hover:text-black dark:text-white', - asideMenuItemActive: 'font-bold text-black dark:text-white', - asideMenuDropdown: 'bg-gray-100/75', - navBarItemLabel: 'text-blue-600', - navBarItemLabelHover: 'hover:text-black', - navBarItemLabelActiveColor: 'text-black', - overlay: 'from-white via-gray-100 to-white', -}; diff --git a/resources/js/styles.ts b/resources/js/styles.ts new file mode 100644 index 0000000..73f7d7e --- /dev/null +++ b/resources/js/styles.ts @@ -0,0 +1,30 @@ +const styles = { + basic: { + aside: 'bg-gray-800', + asideScrollbars: 'aside-scrollbars-gray', + asideBrand: 'bg-gray-900 text-white', + asideMenuItem: 'text-gray-300 hover:text-white', + asideMenuItemActive: 'font-bold text-cyan-300', + asideMenuDropdown: 'bg-gray-700/50', + navBarItemLabel: 'text-black', + // navBarItemLabelHover: 'hover:text-blue-500', + navBarItemLabelHover: 'hover:text-lime-dark', + // navBarItemLabelActiveColor: 'text-blue-600', + navBarItemLabelActiveColor: 'text-lime-dark', + overlay: 'from-gray-700 via-gray-900 to-gray-700', + }, + + white: { + aside: 'bg-white', + asideScrollbars: 'aside-scrollbars-light', + asideBrand: '', + asideMenuItem: 'text-blue-600 hover:text-black dark:text-white', + asideMenuItemActive: 'font-bold text-black dark:text-white', + asideMenuDropdown: 'bg-gray-100/75', + navBarItemLabel: 'text-blue-600', + navBarItemLabelHover: 'hover:text-black', + navBarItemLabelActiveColor: 'text-black', + overlay: 'from-white via-gray-100 to-white', + }, +}; +export default styles; \ No newline at end of file diff --git a/resources/js/tsconfig.json b/resources/js/tsconfig.json new file mode 100644 index 0000000..6b180e3 --- /dev/null +++ b/resources/js/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "@adonisjs/tsconfig/tsconfig.client.json", + "compilerOptions": { + "baseUrl": ".", + "jsx": "preserve", + "module": "ESNext", + "jsxImportSource": "vue", + "allowJs": true, + // "target": "ESNext", + "experimentalDecorators": true, + "strictPropertyInitialization": false, + "paths": { + "@/*": ["./*"], + "~/*": ["../*"] + }, + }, + "include": ["./**/*.ts", "./**/*.vue"], + "exclude": ["./utils/*.js", "./utils/Timer.js", "./utils/focusTrap.js"], + } diff --git a/resources/js/tsconfig.old.json b/resources/js/tsconfig.old.json new file mode 100644 index 0000000..140c658 --- /dev/null +++ b/resources/js/tsconfig.old.json @@ -0,0 +1,26 @@ +{ + // tsconfig.vue.json + "extends": "@vue/tsconfig/tsconfig.json", // 0.4.0 + // "include": ["./resources/js/**/*"], + "include": ["env.d.ts", "./**/*.ts", "./**/*.vue"], + "compilerOptions": { + // "module": "commonjs", //for tehys.api...alos nodenext + // Process & infer types from .js files. + "allowJs": true, + //javascript language version: Target latest version 'esnext' of ECMAScript or minimal 'es6'. + "target": "ESNext", //neu + // //what module code is generated + "module": "ESNext", //neu + "experimentalDecorators": true, //neu + "strictPropertyInitialization": false //neu + }, + // "paths": { + // "App/*": ["./app/*"], // for App/modles/User + // "@/*": ["./resources/js/*"] + // }, + "paths": { + "@/*": ["./*"], + "~/*": ["../*"] + }, + // "files": ["./index.d.ts"] +} \ No newline at end of file diff --git a/resources/js/types/models.ts b/resources/js/types/models.ts new file mode 100644 index 0000000..f94dbff --- /dev/null +++ b/resources/js/types/models.ts @@ -0,0 +1,16 @@ +/* -------------------------------------------------------------------------- + Types and Interfaces +-------------------------------------------------------------------------- */ +export interface Collection { + id: number; + name: string; + number: string; + parent_id?: number | null; + inUse?: boolean; +} + +export interface CollectionRole { + id: number; + name: string; + collections?: Collection[]; +} \ No newline at end of file diff --git a/resources/js/utils/Close.svg b/resources/js/utils/Close.svg new file mode 100644 index 0000000..e7aafd1 --- /dev/null +++ b/resources/js/utils/Close.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/resources/js/utils/GenRandomId.ts b/resources/js/utils/GenRandomId.ts new file mode 100644 index 0000000..326c745 --- /dev/null +++ b/resources/js/utils/GenRandomId.ts @@ -0,0 +1,8 @@ +const GenRandomId = (length: number) => { + return Math.random() + .toString(36) + .replace(/[^a-z]+/g, '') + .slice(0, length || 5) +} + +export default GenRandomId \ No newline at end of file diff --git a/resources/js/utils/Timer.js b/resources/js/utils/Timer.js new file mode 100644 index 0000000..56b020b --- /dev/null +++ b/resources/js/utils/Timer.js @@ -0,0 +1,43 @@ +/** + * @param {Function} callback The function to call + * @param {number} delay The time to wait + */ +export default function timer(callback, delay) { + let id; + let started; + let remaining = delay; + let running; + + this.start = function () { + running = true; + started = new Date(); + id = setTimeout(callback, remaining); + }; + + this.pause = function () { + running = false; + clearTimeout(id); + remaining -= new Date() - started; + }; + + this.clear = function () { + running = false; + clearTimeout(id); + remaining = 0; + }; + + this.getTimeLeft = function () { + if (running) { + this.pause(); + this.start(); + } + + return remaining; + }; + + this.getStateRunning = function () { + return running; + }; + + this.start(); +} diff --git a/resources/js/utils/dayjs.ts b/resources/js/utils/dayjs.ts new file mode 100644 index 0000000..d0d1f74 --- /dev/null +++ b/resources/js/utils/dayjs.ts @@ -0,0 +1,16 @@ +// src/plugins/dayjs.ts +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime'; +import 'dayjs/locale/de'; +import 'dayjs/locale/en'; + +const extendedDayjs = dayjs.extend(relativeTime); + +export const setDayjsLocale = (locale: string) => { + extendedDayjs.locale(locale); +}; + +// // Set a default locale initially +// setDayjsLocale('en'); + +export default extendedDayjs; \ No newline at end of file diff --git a/resources/js/utils/focusTrap.js b/resources/js/utils/focusTrap.js new file mode 100644 index 0000000..65c7c38 --- /dev/null +++ b/resources/js/utils/focusTrap.js @@ -0,0 +1,11 @@ +/** + * Return the default global focus trap stack + * + * @return {import('focus-trap').FocusTrap[]} + */ +export const getTrapStack = function() { + // Create global stack if undefined + Object.assign(window, { _nc_focus_trap: window._nc_focus_trap || [] }) + + return window._nc_focus_trap +} \ No newline at end of file diff --git a/resources/js/utils/initialState.ts b/resources/js/utils/initialState.ts new file mode 100644 index 0000000..27c79e6 --- /dev/null +++ b/resources/js/utils/initialState.ts @@ -0,0 +1,16 @@ +export function loadState(app: string, key: string, fallback?: T): T { + const elem = document.querySelector(`#initial-state-${app}-${key}`); + if (elem === null) { + if (fallback !== undefined) { + return fallback; + } + throw new Error(`Could not find initial state ${key} of ${app}`); + } + + try { + const value = atob(elem.value); + return JSON.parse(value); + } catch (e) { + throw new Error(`Could not parse initial state ${key} of ${app}`); + } +} diff --git a/resources/js/utils/tethyscloud-l10n/date.ts b/resources/js/utils/tethyscloud-l10n/date.ts new file mode 100644 index 0000000..2ef59e2 --- /dev/null +++ b/resources/js/utils/tethyscloud-l10n/date.ts @@ -0,0 +1,83 @@ +/** + * Get the first day of the week + * + * @return {number} + */ +export function getFirstDay(): number { + if (typeof window.firstDay === 'undefined') { + console.warn('No firstDay found'); + return 1; + } + + return window.firstDay; +} + +/** + * Get a list of day names (full names) + * + * @return {string[]} + */ +export function getDayNames(): string[] { + if (typeof window.dayNames === 'undefined') { + console.warn('No dayNames found'); + return ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; + } + + return window.dayNames; +} + +/** + * Get a list of day names (short names) + * + * @return {string[]} + */ +export function getDayNamesShort(): string[] { + if (typeof window.dayNamesShort === 'undefined') { + console.warn('No dayNamesShort found'); + return ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.']; + } + + return window.dayNamesShort; +} + +/** + * Get a list of day names (minified names) + * + * @return {string[]} + */ +export function getDayNamesMin(): string[] { + if (typeof window.dayNamesMin === 'undefined') { + console.warn('No dayNamesMin found'); + return ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']; + } + + return window.dayNamesMin; +} + +/** + * Get a list of month names (full names) + * + * @return {string[]} + */ +export function getMonthNames(): string[] { + if (typeof window.monthNames === 'undefined') { + console.warn('No monthNames found'); + return ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; + } + + return window.monthNames; +} + +/** + * Get a list of month names (short names) + * + * @return {string[]} + */ +export function getMonthNamesShort(): string[] { + if (typeof window.monthNamesShort === 'undefined') { + console.warn('No monthNamesShort found'); + return ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.']; + } + + return window.monthNamesShort; +} diff --git a/resources/js/utils/tethyscloud-l10n/index.ts b/resources/js/utils/tethyscloud-l10n/index.ts new file mode 100644 index 0000000..496902f --- /dev/null +++ b/resources/js/utils/tethyscloud-l10n/index.ts @@ -0,0 +1,5 @@ +export type { Translations } from './registry'; + +export * from './date'; +export * from './locale'; +export { translate, loadTranslations } from './translation'; diff --git a/resources/js/utils/tethyscloud-l10n/locale.ts b/resources/js/utils/tethyscloud-l10n/locale.ts new file mode 100644 index 0000000..a0d8f49 --- /dev/null +++ b/resources/js/utils/tethyscloud-l10n/locale.ts @@ -0,0 +1,83 @@ +/** + * Returns the user's locale + */ +export function getLocale(): string { + return document.documentElement.dataset.locale || 'en' +} + +/** + * Returns user's locale in canonical form + * E.g. `en-US` instead of `en_US` + */ +export function getCanonicalLocale(): string { + return getLocale().replace(/_/g, '-') +} + +/** + * Returns the user's language + */ +export function getLanguage(): string { + return document.documentElement.lang || 'en' +} + +/** + * Check whether the current, or a given, language is read right-to-left + * + * @param language Language code to check, defaults to current language + */ +export function isRTL(language?: string): boolean { + const languageCode = language || getLanguage() + + // Source: https://meta.wikimedia.org/wiki/Template:List_of_language_names_ordered_by_code + const rtlLanguages = [ + /* eslint-disable no-multi-spaces */ + 'ae', // Avestan + 'ar', // 'العربية', Arabic + 'arc', // Aramaic + 'arz', // 'مصرى', Egyptian + 'bcc', // 'بلوچی مکرانی', Southern Balochi + 'bqi', // 'بختياري', Bakthiari + 'ckb', // 'Soranî / کوردی', Sorani + 'dv', // Dhivehi + 'fa', // 'فارسی', Persian + 'glk', // 'گیلکی', Gilaki + 'ha', // 'هَوُسَ', Hausa + 'he', // 'עברית', Hebrew + 'khw', // 'کھوار', Khowar + 'ks', // 'कॉशुर / کٲشُر', Kashmiri + 'ku', // 'Kurdî / كوردی', Kurdish + 'mzn', // 'مازِرونی', Mazanderani + 'nqo', // 'ߒߞߏ', N’Ko + 'pnb', // 'پنجابی', Western Punjabi + 'ps', // 'پښتو', Pashto, + 'sd', // 'سنڌي', Sindhi + 'ug', // 'Uyghurche / ئۇيغۇرچە', Uyghur + 'ur', // 'اردو', Urdu + 'uzs', // 'اوزبیکی', Uzbek Afghan + 'yi', // 'ייִדיש', Yiddish + /* eslint-enable no-multi-spaces */ + ] + + // special case for Uzbek Afghan + if ((language || getCanonicalLocale()).startsWith('uz-AF')) { + return true + } + + return rtlLanguages.includes(languageCode) +} + +export function getBrowserLocale(options?: { languageCodeOnly: boolean }): string { + const navigatorLocale = navigator.languages !== undefined + ? navigator.languages[0] + : navigator.language; + + if (!navigatorLocale) { + return 'en'; // Fallback to 'en' if no locale is detected + } + + const locale = options?.languageCodeOnly + ? navigatorLocale.trim().split(/-|_/)[0] + : navigatorLocale.trim(); + + return locale; + } diff --git a/resources/js/utils/tethyscloud-l10n/registry.ts b/resources/js/utils/tethyscloud-l10n/registry.ts new file mode 100644 index 0000000..9fdefa8 --- /dev/null +++ b/resources/js/utils/tethyscloud-l10n/registry.ts @@ -0,0 +1,115 @@ +/// + +/** + * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +/** + * Translation bundle + * + * @example For German translation + * ```json + { + "some": "einige", + "_%n tree_::_%n trees_": [ + "%n Baum", + "%n Bäume" + ] + } +``` + */ +export type Translations = Record + +/** + * Function for getting plural form index from translated number + * + * @param number Input number to translate + * @return Index of translation plural form + * @example For most languages, like English or German + * ```js +(number:number) => number === 1 ? 0 : 1 +``` + */ +export type PluralFunction = (number: number) => number + +/** + * Extended window interface with translation registry + * Exported just for internal testing purpose + * + * @private + */ +export interface NextcloudWindowWithRegistry { + _tc_l10n_registry_translations?: Record + _tc_l10n_registry_plural_functions?: Record +} + +declare const window: NextcloudWindowWithRegistry + +interface AppTranslations { + translations: Translations + pluralFunction: PluralFunction +} + +/** + * Check if translations and plural function are set for given app + * + * @param {string} appId the app id + * @return {boolean} + */ +export function hasAppTranslations(appId: string) { + return ( + window._tc_l10n_registry_translations?.[appId] !== undefined + && window._tc_l10n_registry_plural_functions?.[appId] !== undefined + ) +} + +/** + * Register new, or extend available, translations for an app + * + * @param {string} appId the app id + * @param {object} translations the translations list + * @param {Function} pluralFunction the plural function + */ +export function registerAppTranslations( + appId: string, + translations: Translations, + pluralFunction: PluralFunction, +) { + window._tc_l10n_registry_translations = Object.assign( + window._tc_l10n_registry_translations || {}, + { + [appId]: Object.assign(window._tc_l10n_registry_translations?.[appId] || {}, translations), + }, + ) + + window._tc_l10n_registry_plural_functions = Object.assign( + window._tc_l10n_registry_plural_functions || {}, + { + [appId]: pluralFunction, + }, + ) +} + +/** + * Unregister all translations and plural function for given app + * + * @param {string} appId the app id + */ +export function unregisterAppTranslations(appId: string) { + delete window._tc_l10n_registry_translations?.[appId] + delete window._tc_l10n_registry_plural_functions?.[appId] +} + +/** + * Get translations bundle for given app and current locale + * + * @param {string} appId the app id + * @return {object} + */ +export function getAppTranslations(appId: string): AppTranslations { + return { + translations: window._tc_l10n_registry_translations?.[appId] ?? {}, + pluralFunction: window._tc_l10n_registry_plural_functions?.[appId] ?? ((number: number) => number), + } +} diff --git a/resources/js/utils/tethyscloud-l10n/translation.ts b/resources/js/utils/tethyscloud-l10n/translation.ts new file mode 100644 index 0000000..a6f2253 --- /dev/null +++ b/resources/js/utils/tethyscloud-l10n/translation.ts @@ -0,0 +1,423 @@ +import type { Translations } from './registry'; +import { getLanguage } from './locale'; +import { getAppTranslations, registerAppTranslations, unregisterAppTranslations } from './registry'; +// import { generateFilePath } from '@nextcloud/router'; +// import axios from 'axios'; + +// import DOMPurify from 'dompurify'; +import escapeHTML from 'escape-html'; + + +import { LocaleStore } from '@/Stores/locale'; + +/** @notExported */ +interface TranslationOptions { + /** enable/disable auto escape of placeholders (by default enabled) */ + escape?: boolean; + /** enable/disable sanitization (by default enabled) */ + sanitize?: boolean; +} + +/** @notExported */ +interface TranslationVariableReplacementObject { + /** The value to use for the replacement */ + value: T; + /** Overwrite the `escape` option just for this replacement */ + escape: boolean; +} + +/** @notExported */ +type TranslationVariables = Record>; + +/** + * Translate a string + * + * @param {string} app the id of the app for which to translate the string + * @param {string} text the string to translate + * @param {object} vars map of placeholder key to value + * @param {number} number to replace %n with + * @param {object} [options] options object + * @param {boolean} options.escape enable/disable auto escape of placeholders (by default enabled) + * @param {boolean} options.sanitize enable/disable sanitization (by default enabled) + * + * @return {string} + */ +export function translate(app: string, text: string, vars?: TranslationVariables, number?: number, options?: TranslationOptions): string { + const allOptions = { + // defaults + escape: true, + sanitize: true, + // overwrite with user config + ...(options || {}), + }; + + const identity = (value: T): T => value; + const optSanitize = identity; // allOptions.sanitize ? DOMPurify.sanitize : identity; + const optEscape = allOptions.escape ? escapeHTML : identity; + + const isValidReplacement = (value: unknown) => typeof value === 'string' || typeof value === 'number'; + + // TODO: cache this function to avoid inline recreation + // of the same function over and over again in case + // translate() is used in a loop + const _build = (text: string, vars?: TranslationVariables, number?: number) => { + return text.replace(/%n/g, '' + number).replace(/{([^{}]*)}/g, (match, key) => { + if (vars === undefined || !(key in vars)) { + return optEscape(match); + } + + const replacement = vars[key]; + if (isValidReplacement(replacement)) { + return optEscape(`${replacement}`); + } else if (typeof replacement === 'object' && isValidReplacement(replacement.value)) { + // Replacement is an object so indiviual escape handling + const escape = replacement.escape !== false ? escapeHTML : identity; + return escape(`${replacement.value}`); + } else { + /* This should not happen, + * but the variables are used defined so not allowed types could still be given, + * in this case ignore the replacement and use the placeholder + */ + return optEscape(match); + } + }); + }; + + const bundle = getAppTranslations(app); + let translation = bundle.translations[text] || text; + translation = Array.isArray(translation) ? translation[0] : translation; + + if (typeof vars === 'object' || number !== undefined) { + return optSanitize(_build(translation, vars, number)); + } else { + return optSanitize(translation); + } +} + +/** + * Translate a string containing an object which possibly requires a plural form + * + * @param {string} app the id of the app for which to translate the string + * @param {string} textSingular the string to translate for exactly one object + * @param {string} textPlural the string to translate for n objects + * @param {number} number number to determine whether to use singular or plural + * @param {object} vars of placeholder key to value + * @param {object} options options object + */ +export function translatePlural( + app: string, + textSingular: string, + textPlural: string, + number: number, + vars?: Record, + options?: TranslationOptions, +): string { + const identifier = '_' + textSingular + '_::_' + textPlural + '_'; + const bundle = getAppTranslations(app); + const value = bundle.translations[identifier]; + + if (typeof value !== 'undefined') { + const translation = value; + if (Array.isArray(translation)) { + const plural = bundle.pluralFunction(number); + return translate(app, translation[plural], vars, number, options); + } + } + + if (number === 1) { + return translate(app, textSingular, vars, number, options); + } else { + return translate(app, textPlural, vars, number, options); + } +} + +/** + * Load an app's translation bundle if not loaded already. + * + * @param {string} appName name of the app + * @param {Function} callback callback to be called when + * the translations are loaded + * @return {Promise} promise + */ +export async function loadTranslationsOld(appName: string) { + interface TranslationBundle { + translations: Translations; + pluralForm: string; + } + + // if (hasAppTranslations(appName) || getLocale() === 'en') { + // return Promise.resolve().then(callback); + // } + + // const url = generateFilePath(appName, 'l10n', getLocale() + '.json'); + + let test = 'de'; //getLocale(); + const url = `../../Components/settings/l10n/${test}.json`; + + const promise = new Promise((resolve, reject) => { + const request = new XMLHttpRequest(); + request.open('GET', url, true); + request.onerror = () => { + reject(new Error(request.statusText || 'Network error')); + }; + request.onload = () => { + if (request.status >= 200 && request.status < 300) { + try { + const bundle = JSON.parse(request.responseText); + if (typeof bundle.translations === 'object') resolve(bundle); + } catch (error) { + // error is probably a SyntaxError due to invalid response text, this is handled by next line + } + reject(new Error('Invalid content of translation bundle')); + } else { + reject(new Error(request.statusText)); + } + }; + request.send(); + }); + + // load JSON translation bundle per AJAX + // return promise + // .then((result) => { + // register(appName, result.translations); + // return result; + // }); + // .then(callback); + let result = await promise; + register(appName, result.translations); + return result; +} + +export async function loadTranslations(appName: string) { + // interface TranslationBundle { + // translations: Translations; + // pluralForm: string; + // } + + // if (hasAppTranslations(appName) || getLocale() === 'en') { + // return Promise.resolve().then(callback); + // } + + // const url = generateFilePath(appName, 'l10n', getLocale() + '.json'); + const localeService = LocaleStore(); + let locale = localeService.locale; + // const url = `/apps/${appName}/l10n/${locale}.json`; + + try { + // Making a GET request using Axios + // const response = await axios.get(url); + const response = await import(`@/apps/settings/l18n/${locale}.js`); + // Check if the response data contains translations + const bundle = response.default; + if (typeof bundle.translations === 'object') { + // Register the translations + register(appName, bundle.translations); + return bundle; + } else { + throw new Error('Invalid content of translation bundle'); + } + } catch (error) { + // Handle errors (network errors, invalid response, etc.) + throw new Error(error.response ? error.response.statusText : 'Error loading translations'); + } +} +/** + * Register an app's translation bundle. + * + * @param {string} appName name of the app + * @param {Record} bundle translation bundle + */ +export function register(appName: string, bundle: Translations) { + registerAppTranslations(appName, bundle, getPlural); +} + +/** + * Unregister all translations of an app + * + * @param appName name of the app + * @since 2.1.0 + */ +export function unregister(appName: string) { + return unregisterAppTranslations(appName); +} + +/** + * Get array index of translations for a plural form + * + * + * @param {number} number the number of elements + * @return {number} 0 for the singular form(, 1 for the first plural form, ...) + */ +export function getPlural(number: number) { + let language = getLanguage(); + if (language === 'pt-BR') { + // temporary set a locale for brazilian + language = 'xbr'; + } + + if (language.length > 3) { + language = language.substring(0, language.lastIndexOf('-')); + } + + /* + * The plural rules are derived from code of the Zend Framework (2010-09-25), + * which is subject to the new BSD license (http://framework.zend.com/license/new-bsd). + * Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) + */ + switch (language) { + case 'az': + case 'bo': + case 'dz': + case 'id': + case 'ja': + case 'jv': + case 'ka': + case 'km': + case 'kn': + case 'ko': + case 'ms': + case 'th': + case 'tr': + case 'vi': + case 'zh': + return 0; + + case 'af': + case 'bn': + case 'bg': + case 'ca': + case 'da': + case 'de': + case 'el': + case 'en': + case 'eo': + case 'es': + case 'et': + case 'eu': + case 'fa': + case 'fi': + case 'fo': + case 'fur': + case 'fy': + case 'gl': + case 'gu': + case 'ha': + case 'he': + case 'hu': + case 'is': + case 'it': + case 'ku': + case 'lb': + case 'ml': + case 'mn': + case 'mr': + case 'nah': + case 'nb': + case 'ne': + case 'nl': + case 'nn': + case 'no': + case 'oc': + case 'om': + case 'or': + case 'pa': + case 'pap': + case 'ps': + case 'pt': + case 'so': + case 'sq': + case 'sv': + case 'sw': + case 'ta': + case 'te': + case 'tk': + case 'ur': + case 'zu': + return number === 1 ? 0 : 1; + + case 'am': + case 'bh': + case 'fil': + case 'fr': + case 'gun': + case 'hi': + case 'hy': + case 'ln': + case 'mg': + case 'nso': + case 'xbr': + case 'ti': + case 'wa': + return number === 0 || number === 1 ? 0 : 1; + + case 'be': + case 'bs': + case 'hr': + case 'ru': + case 'sh': + case 'sr': + case 'uk': + return number % 10 === 1 && number % 100 !== 11 + ? 0 + : number % 10 >= 2 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20) + ? 1 + : 2; + + case 'cs': + case 'sk': + return number === 1 ? 0 : number >= 2 && number <= 4 ? 1 : 2; + + case 'ga': + return number === 1 ? 0 : number === 2 ? 1 : 2; + + case 'lt': + return number % 10 === 1 && number % 100 !== 11 ? 0 : number % 10 >= 2 && (number % 100 < 10 || number % 100 >= 20) ? 1 : 2; + + case 'sl': + return number % 100 === 1 ? 0 : number % 100 === 2 ? 1 : number % 100 === 3 || number % 100 === 4 ? 2 : 3; + + case 'mk': + return number % 10 === 1 ? 0 : 1; + + case 'mt': + return number === 1 + ? 0 + : number === 0 || (number % 100 > 1 && number % 100 < 11) + ? 1 + : number % 100 > 10 && number % 100 < 20 + ? 2 + : 3; + + case 'lv': + return number === 0 ? 0 : number % 10 === 1 && number % 100 !== 11 ? 1 : 2; + + case 'pl': + return number === 1 ? 0 : number % 10 >= 2 && number % 10 <= 4 && (number % 100 < 12 || number % 100 > 14) ? 1 : 2; + + case 'cy': + return number === 1 ? 0 : number === 2 ? 1 : number === 8 || number === 11 ? 2 : 3; + + case 'ro': + return number === 1 ? 0 : number === 0 || (number % 100 > 0 && number % 100 < 20) ? 1 : 2; + + case 'ar': + return number === 0 + ? 0 + : number === 1 + ? 1 + : number === 2 + ? 2 + : number % 100 >= 3 && number % 100 <= 10 + ? 3 + : number % 100 >= 11 && number % 100 <= 99 + ? 4 + : 5; + + default: + return 0; + } +} + +// Export short-hand + +export { translate as t, translatePlural as n }; diff --git a/resources/js/utils/toast.css b/resources/js/utils/toast.css new file mode 100644 index 0000000..e7551c3 --- /dev/null +++ b/resources/js/utils/toast.css @@ -0,0 +1,103 @@ + +/* remember to import this scss file into your app */ +.toastify.dialogs { + min-width: 200px; + background: none; + background-color: var(--color-main-background); + color: var(--color-main-text); + box-shadow: 0 0 6px 0 var(--color-box-shadow); + padding: 0 12px; + margin-top: 45px; + position: fixed; + z-index: 10100; + border-radius: var(--border-radius); + display: flex; + align-items: center; + + .toast-undo-container { + display: flex; + align-items: center; + } + + .toast-undo-button, + .toast-close { + position: static; + overflow: hidden; + box-sizing: border-box; + min-width: 44px; + height: 100%; + padding: 12px; + white-space: nowrap; + background-repeat: no-repeat; + background-position: center; + background-color: transparent; + min-height: 0; + + /* icon styling */ + &.toast-close { + text-indent: 0; + opacity: 0.4; + border: none; + min-height: 44px; + margin-left: 10px; + font-size: 0; + + /* dark theme overrides for Nextcloud 25 and later */ + &::before { + background-image: url('./Close.svg'); + content: ' '; + filter: var(--background-invert-if-dark); + + display: inline-block; + width: 16px; + height: 16px; + } + } + + &.toast-undo-button { + /* $margin: 3px; */ + /* margin: $margin; */ + /* height: calc(100% - 2 * #{$margin}); */ + margin-left: 12px; + } + + &:hover, + &:focus, + &:active { + cursor: pointer; + opacity: 1; + } + } + + &.toastify-top { + right: 10px; + } + + /* Toast with onClick callback */ + &.toast-with-click { + cursor: pointer; + } + + /* Various toasts types */ + &.toast-error { + border-left: 3px solid var(--color-error); + } + + &.toast-info { + border-left: 3px solid var(--color-primary); + } + + &.toast-warning { + border-left: 3px solid var(--color-warning); + } + + &.toast-success { + border-left: 3px solid var(--color-success); + } + + &.toast-undo { + border-left: 3px solid var(--color-success); + } +} + + diff --git a/resources/js/utils/toast.ts b/resources/js/utils/toast.ts new file mode 100644 index 0000000..f1606c8 --- /dev/null +++ b/resources/js/utils/toast.ts @@ -0,0 +1,226 @@ +import Toastify from 'toastify-js'; +// import { t } from './utils/l10n.js'; +import './toast.css'; + +/** + * Enum of available Toast types + */ +export enum ToastType { + ERROR = 'toast-error', + WARNING = 'toast-warning', + INFO = 'toast-info', + SUCCESS = 'toast-success', + PERMANENT = 'toast-error', + UNDO = 'toast-undo', +} + +/** @deprecated Use ToastAriaLive.OFF */ +export const TOAST_ARIA_LIVE_OFF = 'off'; +/** @deprecated Use ToastAriaLive.POLITE */ +export const TOAST_ARIA_LIVE_POLITE = 'polite'; +/** @deprecated Use ToastAriaLive.ASSERTIVE */ +export const TOAST_ARIA_LIVE_ASSERTIVE = 'assertive'; + +export enum ToastAriaLive { + OFF = TOAST_ARIA_LIVE_OFF, + POLITE = TOAST_ARIA_LIVE_POLITE, + ASSERTIVE = TOAST_ARIA_LIVE_ASSERTIVE, +} + +/** Timeout in ms of a undo toast */ +export const TOAST_UNDO_TIMEOUT = 10000; +/** Default timeout in ms of toasts */ +export const TOAST_DEFAULT_TIMEOUT = 4000; +/** Timeout value to show a toast permanently */ +export const TOAST_PERMANENT_TIMEOUT = -1; + +/** + * Type of a toast + * @see https://apvarun.github.io/toastify-js/ + * @notExported + */ +type Toast = ReturnType; + +export interface ToastOptions { + /** + * Defines the timeout in milliseconds after which the toast is closed. Set to -1 to have a persistent toast. + */ + timeout?: number; + + /** + * Set to true to allow HTML content inside of the toast text + * @default false + */ + isHTML?: boolean; + + /** + * Set a type of {ToastType} to style the modal + */ + type?: ToastType; + + /** + * Provide a function that is called after the toast is removed + */ + onRemove?: () => void; + + /** + * Provide a function that is called when the toast is clicked + */ + onClick?: () => void; + + /** + * Make the toast closable + */ + close?: boolean; + + /** + * Specify the element to attach the toast element to (for testing) + */ + selector?: string; + + /** + * Whether the messages should be announced to screen readers. + * See the following docs for an explanation when to use which: + * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions + * + * By default, errors are announced assertive and other messages "polite". + */ + ariaLive?: ToastAriaLive; +} + +/** + * Show a toast message + * + * @param data Message to be shown in the toast, any HTML is removed by default + * @param options + */ +export function showMessage(data: string | Node, options?: ToastOptions): Toast { + options = Object.assign( + { + timeout: TOAST_DEFAULT_TIMEOUT, + isHTML: false, + type: undefined, + // An undefined selector defaults to the body element + selector: undefined, + onRemove: () => {}, + onClick: undefined, + close: true, + }, + options, + ); + + if (typeof data === 'string' && !options.isHTML) { + // fime mae sure that text is extracted + const element = document.createElement('div'); + element.innerHTML = data; + data = element.innerText; + } + let classes = options.type ?? ''; + + if (typeof options.onClick === 'function') { + classes += ' toast-with-click '; + } + + const isNode = data instanceof Node; + + let ariaLive: ToastAriaLive = ToastAriaLive.POLITE; + if (options.ariaLive) { + ariaLive = options.ariaLive; + } else if (options.type === ToastType.ERROR || options.type === ToastType.UNDO) { + ariaLive = ToastAriaLive.ASSERTIVE; + } + + const toast = Toastify({ + [!isNode ? 'text' : 'node']: data, + duration: options.timeout, + callback: options.onRemove, + onClick: options.onClick, + close: options.close, + gravity: 'top', + selector: options.selector, + position: 'right', + backgroundColor: '', + className: 'dialogs ' + classes, + escapeMarkup: !options.isHTML, + ariaLive, + }); + + toast.showToast(); + + return toast; +} + +/** + * Show a toast message with error styling + * + * @param text Message to be shown in the toast, any HTML is removed by default + * @param options + */ +export function showError(text: string, options?: ToastOptions): Toast { + return showMessage(text, { ...options, type: ToastType.ERROR }) +} + +export default { + updatableNotification: null, + + getDefaultNotificationFunction: null, + + /** + * Shows a notification that disappears after x seconds, default is + * 7 seconds + * + * @param {string} text Message to show + * @param {Array} [options] options array + * @param {number} [options.timeout=7] timeout in seconds, if this is 0 it will show the message permanently + * @param {boolean} [options.isHTML=false] an indicator for HTML notifications (true) or text (false) + * @param {string} [options.type] notification type + * @return {JQuery} the toast element + */ + showTemporary(text, options = { timeout: 3000 }) { + options = options || {}; + options.timeout = options.timeout || TOAST_DEFAULT_TIMEOUT; + const toast = showMessage(text, options); + toast.toastElement.toastify = toast; + // return $(toast.toastElement) + }, + + /** + * Show a toast message with error styling + * + * @param text Message to be shown in the toast, any HTML is removed by default + * @param options + */ + showError(text: string, options?: ToastOptions): Toast { + return showMessage(text, { ...options, type: ToastType.ERROR }); + }, + + /** + * Show a toast message with warning styling + * + * @param text Message to be shown in the toast, any HTML is removed by default + * @param options + */ + showWarning(text: string, options?: ToastOptions): Toast { + return showMessage(text, { ...options, type: ToastType.WARNING }); + }, + + /** + * Show a toast message with info styling + * + * @param text Message to be shown in the toast, any HTML is removed by default + * @param options + */ + showInfo(text: string, options?: ToastOptions): Toast { + return showMessage(text, { ...options, type: ToastType.INFO }); + }, + + /** + * Show a toast message with success styling + * + * @param text Message to be shown in the toast, any HTML is removed by default + * @param options + */ + showSuccess(text: string, options?: ToastOptions): Toast { + return showMessage(text, { ...options, type: ToastType.SUCCESS }); + }, +}; diff --git a/resources/views/app.edge b/resources/views/app.edge index 34da78b..7020953 100644 --- a/resources/views/app.edge +++ b/resources/views/app.edge @@ -1,18 +1,44 @@ + - + + - @routes - @entryPointStyles('app') - @entryPointScripts('app') + + + + + + + + - {{-- myapp --}} + + + + + + + + + + @vite(['resources/js/app.ts']) + + @routes('test') + @inertiaHead + - @inertia() + @inertia({ as: 'div', class: 'h-full' }) + + {{-- @entryPointStyles('app') + @entryPointScripts('app') --}} - + + \ No newline at end of file diff --git a/resources/views/settings.edge b/resources/views/settings.edge new file mode 100644 index 0000000..53e4611 --- /dev/null +++ b/resources/views/settings.edge @@ -0,0 +1,98 @@ +@layout('layouts/app') +@set('title', 'Settings') + +@section('body') +
+
+
+ SETTINGS +
+ @if(status) + @!component('components/alert', { + status + }) + @endif + + @if(twoFactorEnabled) +
+

+ You have enabled two factor authentication. +

+
+

+ When two factor authentication is enabled, you will be prompted for a secure, random + token during authentication. You may retrieve this token from your phone's Google + Authenticator application. +

+
+ @if(code) +
+
+

+ Two factor authentication is now enabled. Scan the following QR code using your + phone's authenticator application. +

+
+ +
+ +
+
+ @endif + @if(recoveryCodes) +
+

+ Store these recovery codes in a secure password manager. They can be used to recover + access to your account if your two factor authentication device is lost. +

+
+
+ @each(code in recoveryCodes) +
+ {{ code }} +
+ @endeach +
+ @endif +
+
+ +
+
+ +
+ +
+
+ @elseif(!twoFactorEnabled) +
+
+ You have not enabled two factor authentication. +
+
+ When two factor authentication is enabled, you will be prompted for a secure, + random token during authentication. You may retrieve this token from your phone's + Google Authenticator application. +
+
+
+ +
+
+
+ @endif +
+
+@endsection \ No newline at end of file diff --git a/server.ts b/server.ts deleted file mode 100644 index f334636..0000000 --- a/server.ts +++ /dev/null @@ -1,19 +0,0 @@ -/* -|-------------------------------------------------------------------------- -| AdonisJs Server -|-------------------------------------------------------------------------- -| -| The contents in this file is meant to bootstrap the AdonisJs application -| and start the HTTP server to accept incoming connections. You must avoid -| making this file dirty and instead make use of `lifecycle hooks` provided -| by AdonisJs service providers for custom code. -| -*/ - -import 'reflect-metadata'; -import sourceMapSupport from 'source-map-support'; -import { Ignitor } from '@adonisjs/core/build/standalone'; - -sourceMapSupport.install({ handleUncaughtExceptions: false }); - -new Ignitor(__dirname).httpServer().start(); diff --git a/src/extensions.ts b/src/extensions.ts new file mode 100644 index 0000000..6af1f47 --- /dev/null +++ b/src/extensions.ts @@ -0,0 +1,102 @@ +import { Request, Response } from '@adonisjs/core/http'; + +Request.macro('wantsJSON', function (this: Request) { + const firstType = this.types()[0]; + if (!firstType) { + return false; + } + + return firstType.includes('/json') || firstType.includes('+json'); +}); + +declare module '@adonisjs/core/http' { + interface Request { + wantsJSON(): boolean; + } +} + +// By specifying this: Response in the function signature, you're explicitly stating +// that 'this' within the function should be of type 'Response', which resolves the TypeScript error. +// Response.macro('flash', function (this: Response, message: any) { +// if (!this.ctx) { +// throw new Error('Context is not available'); +// } +// this.ctx!.session.flash(message); +// return this; +// }); +// Response.macro('flash', function (this: Response, key: string, message: any) { +// if (!this.ctx) { +// throw new Error('Context is not available'); +// } +// this.ctx!.session.flash(key, message); +// return this; +// }); +Response.macro('flash', function (this: Response, message: any, key?: string) { + if (!this.ctx) { + throw new Error('Context is not available'); + } + + if (key !== undefined) { + this.ctx!.session.flash(key, message); + } else { + this.ctx!.session.flash(message); + } + + return this; +}); +Response.macro('toRoute', function (this: Response, route: string) { + this.redirect().toRoute(route); + return this; +}); +declare module '@adonisjs/core/http' { + interface Response { + flash(message: any): Response; + flash(message: any, key: string): Response; + toRoute(route: string): Response; + } +} + +// declare module '@adonisjs/lucid/orm' { +// // interface ModelQueryBuilder { +// // pluck(value: string, id?: string): Promise; +// // } + +// // interface ModelQueryBuilder { +// // pluck(valueColumn: string, id?: string): Promise<{ [key: string]: any }>; +// // } +// // interface ModelQueryBuilderContract> { +// // getCount(): Promise; +// // pluck(valueColumn: string, id?: string): Promise<{ [key: string]: any }>; +// // } + +// // interface ModelQueryBuilderContract> +// interface ModelQueryBuilderContract> { +// // macro typescript definitions here +// // whereTrue(columnName: string): this; +// // whereFalse(columnName: string): this; +// // any(): Promise; +// // selectCount(): Promise; +// // selectIds(primaryKey?: string): Promise; +// // selectId(primaryKey?: string): Promise; +// // selectIdOrFail(primaryKey?: string): Promise; +// pluck(valueColumn: string, id?: string): Promise<{ [key: string]: any }>; +// } +// } + +// ModelQueryBuilder.macro('pluck', async function (this: ModelQueryBuilder, valueColumn: string, id?: string) : Promise<{ [key: string]: any }>{ +// // let rolesPluck: PluckConfig = {}; +// let rolesPluck: { [key: number]: any } = {}; +// const result = await this.exec(); +// result.forEach((user, index) => { +// let idc; +// if (!id) { +// idc = index; +// } else { +// idc = user[id] as number; +// } +// const value = user[valueColumn]; +// // rolesPluck[idc] = user.name; +// rolesPluck[idc] = value; +// }); +// return rolesPluck; +// }); diff --git a/env.ts b/start/env.ts similarity index 60% rename from env.ts rename to start/env.ts index 8fceaf9..371f1cf 100644 --- a/env.ts +++ b/start/env.ts @@ -11,16 +11,16 @@ | and hence do not rename or move this file to a different location. | */ +import { Env } from '@adonisjs/core/env'; -import Env from '@ioc:Adonis/Core/Env'; - -export default Env.rules({ +export default await Env.create(new URL('../', import.meta.url), { HOST: Env.schema.string({ format: 'host' }), PORT: Env.schema.number(), APP_KEY: Env.schema.string(), APP_NAME: Env.schema.string(), CACHE_VIEWS: Env.schema.boolean(), - SESSION_DRIVER: Env.schema.string(), + SESSION_DRIVER: Env.schema.enum(['cookie', 'memory'] as const), + DRIVE_DISK: Env.schema.enum(['local'] as const), NODE_ENV: Env.schema.enum(['development', 'production', 'test'] as const), DB_CONNECTION: Env.schema.string(), @@ -29,4 +29,19 @@ export default Env.rules({ PG_USER: Env.schema.string(), PG_PASSWORD: Env.schema.string.optional(), PG_DB_NAME: Env.schema.string(), + + REDIS_HOST: Env.schema.string({ format: 'host' }), + REDIS_PORT: Env.schema.number(), + + HASH_DRIVER: Env.schema.enum(['scrypt', 'argon', 'bcrypt', 'laravel', undefined] as const), + OAI_LIST_SIZE: Env.schema.number(), + + /* + |---------------------------------------------------------- + | Variables for configuring the mail package + |---------------------------------------------------------- + */ + SMTP_HOST: Env.schema.string.optional(), + SMTP_PORT: Env.schema.string.optional(), + RESEND_API_KEY: Env.schema.string.optional(), }); diff --git a/start/inertia.ts b/start/inertia.json similarity index 81% rename from start/inertia.ts rename to start/inertia.json index 22f1a7f..ea7cb70 100644 --- a/start/inertia.ts +++ b/start/inertia.json @@ -9,13 +9,17 @@ */ import Inertia from '@ioc:EidelLev/Inertia'; -import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; +import type { HttpContext } from '@adonisjs/core/http'; Inertia.share({ errors: (ctx) => { return ctx.session.flashMessages.get('errors'); }, + user_id: (ctx) => { + return ctx.session.flashMessages.get('user_id'); + }, + flash: (ctx) => { return { message: ctx.session.flashMessages.get('message'), @@ -24,8 +28,9 @@ Inertia.share({ }, // params: ({ params }) => params, - authUser: ({ auth }: HttpContextContract) => { + authUser: async ({ auth }: HttpContext) => { if (auth.user) { + await auth.user.load('roles'); return auth.user; // { // 'id': auth.user.id, diff --git a/start/kernel.ts b/start/kernel.ts index a89441b..b294bb5 100644 --- a/start/kernel.ts +++ b/start/kernel.ts @@ -9,47 +9,44 @@ | */ -import Server from '@ioc:Adonis/Core/Server'; +import server from '@adonisjs/core/services/server'; +import router from '@adonisjs/core/services/router'; -/* -|-------------------------------------------------------------------------- -| Global middleware -|-------------------------------------------------------------------------- -| -| An array of global middleware, that will be executed in the order they -| are defined for every HTTP requests. -| -*/ -Server.middleware.register([ - () => import('@ioc:Adonis/Core/BodyParser'), - () => import('@ioc:EidelLev/Inertia/Middleware'), - // () => import('ioc:EidelLev/Stardust/Middleware'), - () => import('@eidellev/adonis-stardust/build/middleware/Stardust'), - // () => import('adonis-acl/src/Middlewares/Init'), +server.errorHandler(() => import('#exceptions/handler')); + +/** + * The server middleware stack runs middleware on all the HTTP + * requests, even if there is no route registered for + * the request URL. + */ +server.use([ + () => import('#middleware/container_bindings_middleware'), + () => import('@adonisjs/static/static_middleware'), + // () => import('@adonisjs/cors/cors_middleware'), + () => import('@adonisjs/inertia/inertia_middleware'), + () => import('@adonisjs/vite/vite_middleware'), +]); +/** + * The router middleware stack runs middleware on all the HTTP + * requests with a registered route. + */ +router.use([ + () => import('@adonisjs/core/bodyparser_middleware'), + () => import('@adonisjs/session/session_middleware'), + () => import('@adonisjs/shield/shield_middleware'), + // () => import('@adonisjs/inertia/inertia_middleware'), + () => import('@adonisjs/auth/initialize_auth_middleware'), + () => import('#middleware/stardust_middleware'), + () => import('#middleware/normalize_newlines_middleware'), ]); -/* -|-------------------------------------------------------------------------- -| Named middleware -|-------------------------------------------------------------------------- -| -| Named middleware are defined as key-value pair. The value is the namespace -| or middleware function and key is the alias. Later you can use these -| alias on individual routes. For example: -| -| { auth: () => import('App/Middleware/Auth') } -| -| and then use it as follows -| -| Route.get('dashboard', 'UserController.dashboard').middleware('auth') -| -*/ -Server.middleware.registerNamed({ - auth: 'App/Middleware/Auth', - // is: () => import('App/Middleware/Is'), - // can: () => import('App/Middleware/Can'), - // is: "Adonis/Acl/Is", - // can: "Adonis/Acl/Can" - is: () => import('App/Middleware/Role'), - can: () => import('App/Middleware/Can'), +/** + * Named middleware collection must be explicitly assigned to + * the routes or the routes group. + */ +export const middleware = router.named({ + guest: () => import('#middleware/guest_middleware'), + auth: () => import('#middleware/auth_middleware'), + is: () => import('#middleware/role_middleware'), + can: () => import('#middleware/can_middleware'), }); diff --git a/start/routes.ts b/start/routes.ts index ce04ffa..ad28a87 100644 --- a/start/routes.ts +++ b/start/routes.ts @@ -18,168 +18,448 @@ | */ -import Route from '@ioc:Adonis/Core/Route'; -// import Inertia from '@ioc:EidelLev/Inertia'; -import AuthValidator from 'App/Validators/AuthValidator'; -import HealthCheck from '@ioc:Adonis/Core/HealthCheck'; -import User from 'App/Models/User'; -// import AuthController from 'App/Controllers/Http/Auth/AuthController'; -import './routes/api'; +import OaiController from '#controllers/Http/Oai/OaiController'; +import router from '@adonisjs/core/services/router'; +import type { HttpContext } from '@adonisjs/core/http'; +import { authValidator } from '#validators/auth'; +import User from '#models/user'; +import AuthController from '#controllers/Http/Auth/AuthController'; +import UserController from '#controllers/Http/Auth/UserController'; +import AdminuserController from '#controllers/Http/Admin/AdminuserController'; +import RoleController from '#controllers/Http/Admin/RoleController'; +import LicenseController from '#controllers/Http/Admin/LicenseController'; +import MimetypeController from '#controllers/Http/Admin/MimetypeController'; +import MailSettingsController from '#controllers/Http/Admin/mailsettings_controller'; +import DatasetController from '#app/Controllers/Http/Submitter/DatasetController'; +import PersonController from '#app/Controllers/Http/Submitter/PersonController'; +import EditorDatasetController from '#app/Controllers/Http/Editor/DatasetController'; +import ReviewerDatasetController from '#app/Controllers/Http/Reviewer/DatasetController'; +import './routes/api.js'; +import { middleware } from './kernel.js'; +import db from '@adonisjs/lucid/services/db'; // Import the DB service -Route.get('health', async ({ response }) => { - const report = await HealthCheck.getReport(); - return report.healthy ? response.ok(report) : response.badRequest(report); -}); +router.get('/health', ({ response }: HttpContext) => response.noContent()); -Route.get('/', async ({ view }) => { - return view.render('welcome'); -}).as('dashboard2'); +// OAI routes +router + .group(() => { + router.get('/oai', [OaiController, 'index']).as('get'); + router.post('/oai', [OaiController, 'index']).as('post'); + }) + .as('oai'); -// Route.get( '/oai', 'Oai/RequestController.index').as('oai'); -Route.group(() => { - Route.get('/oai', 'Oai/OaiController.index').as('get'); - Route.post('/oai', 'Oai/OaiController.index').as('post'); -}).as('oai'); -// Route.inertia('/about', 'App'); +// Welcome route +router + .get('/welcome', async ({ view }: HttpContext) => { + return view.render('welcome'); + }) + .as('welcome'); -Route.group(() => { - Route.get('/', async ({ inertia }) => { - const users = await User.query().orderBy('login'); - return inertia.render('App', { - testing: 'this is a test', - users: users, - }); - }).as('index'); +// Dashboard route +router + .get('/', async ({ response }: HttpContext) => { + return response.redirect().toRoute('apps.dashboard'); + }) + .as('dashboard'); - // Route.get('/login', async ({ inertia }) => { - // return inertia.render('Auth/Login'); - // }).as('login.show'); +// Apps group +router + .group(() => { + router + .get('/dashboard', async ({ inertia }: HttpContext) => { + return inertia.render('Dashboard'); + }) + .as('dashboard'); - Route.get('/register', async ({ inertia }) => { - return inertia.render('register-view/register-view-component'); - }).as('register.show'); + router + .get('/map', async ({ inertia }: HttpContext) => { + return inertia.render('Map'); + }) + .as('map'); - Route.post('/register', async ({ request, response }) => { - console.log({ - registerBody: request.body(), - }); + router + .get('/', async ({ inertia }: HttpContext) => { + const users = await User.query().orderBy('login'); + return inertia.render('App', { + testing: 'this is a test', + users: users, + }); + }) + .as('index'); - const data = await request.validate(AuthValidator); - console.log({ data }); + router + .get('/register', async ({ inertia }: HttpContext) => { + return inertia.render('register-view/register-view-component'); + }) + .as('register.show'); - return response.redirect().toRoute('app.index'); - }).as('register.store'); -}) - .prefix('app') - .as('app'); + router + .post('/register', async ({ request, response }: HttpContext) => { + await request.validateUsing(authValidator); + return response.redirect().toRoute('app.index'); + }) + .as('register.store'); + }) + .prefix('apps') + .as('apps') + .use(middleware.auth()); -Route.get('/dashboard', async ({ inertia }) => { - return inertia.render('Dashboard'); -}) - .as('dashboard') - .middleware('auth'); +// Auth routes +router + .get('/app/login', async ({ inertia }: HttpContext) => { + try { + await db.connection().rawQuery('SELECT 1'); + } catch (error) { + if (error.code === 'ECONNREFUSED') { + throw error; + } + } + return inertia.render('Auth/Login'); + }) + .as('app.login.show'); -// Route.on("/login").render("signin"); -Route.get('/app/login', async ({ inertia }) => { - return inertia.render('Auth/Login'); -}).as('app.login.show'); +router.post('/app/login', [AuthController, 'login']).as('login.store'); +router.post('/app/twoFactorChallenge', [AuthController, 'twoFactorChallenge']).as('login.twoFactorChallenge'); +router.post('/signout', [AuthController, 'logout']).as('logout'); -// Route.post("/login", "Users/AuthController.login"); -Route.post('/app/login', 'Auth/AuthController.login').as('login.store'); -// Route.on("/signup").render("signup"); -// Route.post("/signup", "AuthController.signup"); -Route.post('/signout', 'Auth/AuthController.logout').as('logout'); +// Administrator routes +router + .group(() => { + router + .get('/settings', async ({ inertia }: HttpContext) => { + const updatedConfigValue = await db + .from('appconfigs') + .select('configvalue') + .where('appid', 'backgroundjob') + .where('configkey', 'lastjob') + .first(); + return inertia.render('Admin/Settings', { + lastCron: updatedConfigValue?.configvalue || '', + }); + }) + .as('overview'); -Route.group(() => { - Route.get('/settings', async ({ inertia }) => { - return inertia.render('Admin/Settings'); - }).as('settings'); + router + .post('/mail/store', [MailSettingsController, 'setMailSettings']) + .as('mail.store') + .use(middleware.can(['user-create'])); + router + .post('/mail/send', [MailSettingsController, 'sendTestMail']) + .as('mail.send') + .use(middleware.can(['user-create'])); - Route.get('/user', 'UsersController.index').as('user.index').middleware(['can:user-list']); - Route.get('/user/create', 'UsersController.create').as('user.create').middleware(['can:user-create']); - Route.post('/user/store', 'UsersController.store').as('user.store').middleware(['can:user-create']); - Route.get('/user/:id', 'UsersController.show').as('user.show').where('id', Route.matchers.number()); - Route.get('/user/:id/edit', 'UsersController.edit').as('user.edit').where('id', Route.matchers.number()).middleware(['can:user-edit']); - Route.put('/user/:id/update', 'UsersController.update') - .as('user.update') - .where('id', Route.matchers.number()) - .middleware(['can:user-edit']); - Route.delete('/user/:id', 'UsersController.destroy') - .as('user.destroy') - .where('id', Route.matchers.number()) - .middleware(['can:user-delete']); - // Route.resource('user', 'UsersController'); + // User routes + router + .get('/user', [AdminuserController, 'index']) + .as('user.index') + .use(middleware.can(['user-list'])); + router + .get('/user/create', [AdminuserController, 'create']) + .as('user.create') + .use(middleware.can(['user-create'])); + router + .post('/user/store', [AdminuserController, 'store']) + .as('user.store') + .use(middleware.can(['user-create'])); + router.get('/user/:id', [AdminuserController, 'show']).as('user.show').where('id', router.matchers.number()); + router + .get('/user/:id/edit', [AdminuserController, 'edit']) + .as('user.edit') + .where('id', router.matchers.number()) + .use(middleware.can(['user-edit'])); + router + .put('/user/:id/update', [AdminuserController, 'update']) + .as('user.update') + .where('id', router.matchers.number()) + .use(middleware.can(['user-edit'])); + router + .delete('/user/:id', [AdminuserController, 'destroy']) + .as('user.destroy') + .where('id', router.matchers.number()) + .use(middleware.can(['user-delete'])); - Route.get('/role', 'RoleController.index').as('role.index').middleware(['can:user-list']); - Route.get('/role/create', 'RoleController.create').as('role.create').middleware(['can:user-create']); - Route.post('/role/store', 'RoleController.store').as('role.store').middleware(['can:user-create']); - Route.get('/role/:id', 'RoleController.show').as('role.show').where('id', Route.matchers.number()); - Route.get('/role/:id/edit', 'RoleController.edit').as('role.edit').where('id', Route.matchers.number()).middleware(['can:user-edit']); - Route.put('/role/:id/update', 'RoleController.update') - .as('role.update') - .where('id', Route.matchers.number()) - .middleware(['can:user-edit']); - Route.delete('/role/:id', 'RoleController.destroy') - .as('role.destroy') - .where('id', Route.matchers.number()) - .middleware(['can:user-delete']); -}) - .namespace('App/Controllers/Http/Admin') + // Role routes + router + .get('/role', [RoleController, 'index']) + .as('role.index') + .use(middleware.can(['user-list'])); + router + .get('/role/create', [RoleController, 'create']) + .as('role.create') + .use(middleware.can(['user-create'])); + router + .post('/role/store', [RoleController, 'store']) + .as('role.store') + .use(middleware.can(['user-create'])); + router.get('/role/:id', [RoleController, 'show']).as('role.show').where('id', router.matchers.number()); + router + .get('/role/:id/edit', [RoleController, 'edit']) + .as('role.edit') + .where('id', router.matchers.number()) + .use(middleware.can(['user-edit'])); + router + .put('/role/:id/update', [RoleController, 'update']) + .as('role.update') + .where('id', router.matchers.number()) + .use(middleware.can(['user-edit'])); + + // License routes + router.get('/license', [LicenseController, 'index']).as('license.index'); + router + .get('/license/:id/down', [LicenseController, 'down']) + .as('license.down') + .where('id', router.matchers.number()) + .use(middleware.can(['settings'])); + router + .get('/license/:id/up', [LicenseController, 'up']) + .as('license.up') + .where('id', router.matchers.number()) + .use(middleware.can(['settings'])); + + // Mimetype routes + router.get('/mimetype', [MimetypeController, 'index']).as('mimetype.index'); + router + .get('/mimetype/create', [MimetypeController, 'create']) + .as('mimetype.create') + .use(middleware.can(['settings'])); + router + .post('/mimetype/store', [MimetypeController, 'store']) + .as('mimetype.store') + .use(middleware.can(['settings'])); + router + .get('/mimetype/:id/down', [MimetypeController, 'down']) + .as('mimetype.down') + .where('id', router.matchers.number()) + .use(middleware.can(['settings'])); + router + .get('/mimetype/:id/up', [MimetypeController, 'up']) + .as('mimetype.up') + .where('id', router.matchers.number()) + .use(middleware.can(['settings'])); + router + .get('/mimetype/:id/delete', [MimetypeController, 'delete']) + .as('mimetype.delete') + .use([middleware.auth(), middleware.can(['dataset-delete'])]); + router + .delete('/mimetype/:id/deleteStore', [MimetypeController, 'deleteStore']) + .as('mimetype.deleteStore') + .use([middleware.auth(), middleware.can(['settings'])]); + }) .prefix('admin') - // .middleware(['auth', 'can:dataset-list,dataset-publish']); - .middleware(['auth', 'is:administrator,moderator']); + .as('settings') + .use([middleware.auth(), middleware.is(['administrator', 'moderator'])]); -Route.get('/edit-account-info', 'UsersController.accountInfo') - .as('admin.account.info') - .namespace('App/Controllers/Http/Admin') - .middleware(['auth']); +router.get('/settings/user/security', [UserController, 'accountInfo']).as('settings.user').use(middleware.auth()); +router.post('/settings/user/store', [UserController, 'accountInfoStore']).as('account.password.store').use(middleware.auth()); +router.get('/settings/profile/edit', [UserController, 'profile']).as('settings.profile.edit').use(middleware.auth()); +router + .put('/settings/profile/:id/update', [UserController, 'profileUpdate']) + .as('settings.profile.update') + .where('id', router.matchers.number()) + .use(middleware.auth()); +router.put('/settings/password/update', [UserController, 'passwordUpdate']).as('settings.password.update').use(middleware.auth()); -Route.post('/edit-account-info/store/:id', 'UsersController.accountInfoStore') - .as('admin.account.info.store') - .where('id', Route.matchers.number()) - .namespace('App/Controllers/Http/Admin') - .middleware(['auth']); -// Route::post('change-password', 'UserController@changePasswordStore')->name('admin.account.password.store'); - -Route.group(() => { - // Route.get('/user', 'UsersController.index').as('user.index'); - Route.get('/dataset', 'DatasetController.index').as('dataset.list').middleware(['auth']); //.middleware(['can:dataset-list']); - Route.get('/dataset/create', 'DatasetController.create').as('dataset.create').middleware(['auth', 'can:dataset-submit']); - Route.post('/dataset/first/first-step', 'DatasetController.firstStep') - .as('dataset.first.step') - .middleware(['auth', 'can:dataset-submit']); - Route.post('/dataset/second/second-step', 'DatasetController.secondStep') - .as('dataset.second.step') - .middleware(['auth', 'can:dataset-submit']); - Route.post('/dataset/second/third-step', 'DatasetController.thirdStep') - .as('dataset.third.step') - .middleware(['auth', 'can:dataset-submit']); - - Route.post('/dataset/submit', 'DatasetController.store').as('dataset.submit').middleware(['auth', 'can:dataset-submit']); - - Route.get('/dataset/:id/release', 'DatasetController.release') - .as('dataset.release') - .where('id', Route.matchers.number()) - .middleware(['auth']); //, 'can:dataset-submit']); - Route.put('/dataset/:id/releaseupdate', 'DatasetController.releaseUpdate') - .as('dataset.releaseUpdate') - .middleware(['auth', 'can:dataset-submit']); - Route.get('/dataset/:id/edit', 'DatasetController.edit') - .as('dataset.edit') - .where('id', Route.matchers.number()) - .middleware(['auth', 'can:dataset-submit']); - Route.get('/dataset/:id/delete', 'DatasetController.delete').as('dataset.delete').middleware(['auth', 'can:dataset-delete']); - Route.put('/dataset/:id/deleteupdate', 'DatasetController.deleteUpdate') - .as('dataset.deleteUpdate') - .middleware(['auth', 'can:dataset-delete']); - - Route.get('/person', 'PersonController.index').as('person.index').middleware(['auth']); - // Route.get('/user/:id/edit', 'UsersController.edit').as('user.edit').where('id', Route.matchers.number()); - // Route.put('/user/:id/update', 'UsersController.update').as('user.update').where('id', Route.matchers.number()); - // Route.delete('/user/:id', 'UsersController.destroy').as('user.destroy').where('id', Route.matchers.number()); - // Route.resource('user', 'DatasetController'); -}) - .namespace('App/Controllers/Http/Submitter') +// Submitter routes +router + .group(() => { + router + .get('/dataset', [DatasetController, 'index']) + .as('dataset.list') + .use([middleware.auth(), middleware.can(['dataset-list'])]); + router + .get('/dataset/create', [DatasetController, 'create']) + .as('dataset.create') + .use([middleware.auth(), middleware.can(['dataset-submit'])]); + router + .post('/dataset/first/first-step', [DatasetController, 'firstStep']) + .as('dataset.first.step') + .use([middleware.auth(), middleware.can(['dataset-submit'])]); + router + .post('/dataset/second/second-step', [DatasetController, 'secondStep']) + .as('dataset.second.step') + .use([middleware.auth(), middleware.can(['dataset-submit'])]); + router + .post('/dataset/second/third-step', [DatasetController, 'thirdStep']) + .as('dataset.third.step') + .use([middleware.auth(), middleware.can(['dataset-submit'])]); + router + .post('/dataset/submit', [DatasetController, 'store']) + .as('dataset.submit') + .use([middleware.auth(), middleware.can(['dataset-submit'])]); + router + .get('/dataset/:id/release', [DatasetController, 'release']) + .as('dataset.release') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-edit'])]); + router + .put('/dataset/:id/releaseupdate', [DatasetController, 'releaseUpdate']) + .as('dataset.releaseUpdate') + .use([middleware.auth(), middleware.can(['dataset-edit'])]); + router + .get('/dataset/:id/edit', [DatasetController, 'edit']) + .as('dataset.edit') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-edit'])]); + router + .put('/dataset/:id/update', [DatasetController, 'update']) + .as('dataset.update') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-edit'])]); + router + .get('/dataset/:id/delete', [DatasetController, 'delete']) + .as('dataset.delete') + .use([middleware.auth(), middleware.can(['dataset-delete'])]); + router + .put('/dataset/:id/deleteupdate', [DatasetController, 'deleteUpdate']) + .as('dataset.deleteUpdate') + .use([middleware.auth(), middleware.can(['dataset-delete'])]); + router.get('/person', [PersonController, 'index']).as('person.index').use([middleware.auth()]); + router + .get('/dataset/:id/categorize', [DatasetController, 'categorize']) + .as('dataset.categorize') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-edit'])]); + router + .put('/dataset/:id/categorizeUpdate', [DatasetController, 'categorizeUpdate']) + .as('dataset.categorizeUpdate') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-edit'])]); + }) .prefix('submitter'); -// .middleware(['auth', 'can:dataset-list,dataset-publish']); -// .middleware(['auth', 'is:submitter']); + +// Editor routes +router + .group(() => { + router + .get('/dataset', [EditorDatasetController, 'index']) + .as('editor.dataset.list') + .use([middleware.auth(), middleware.can(['dataset-editor-list'])]); + router + .get('dataset/:id/receive', [EditorDatasetController, 'receive']) + .as('editor.dataset.receive') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-receive'])]); + router + .put('dataset/:id/receive', [EditorDatasetController, 'receiveUpdate']) + .as('editor.dataset.receiveUpdate') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-receive'])]); + router + .get('dataset/:id/approve', [EditorDatasetController, 'approve']) + .as('editor.dataset.approve') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-approve'])]); + router + .put('dataset/:id/approve', [EditorDatasetController, 'approveUpdate']) + .as('editor.dataset.approveUpdate') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-approve'])]); + router + .get('dataset/:id/reject', [EditorDatasetController, 'reject']) + .as('editor.dataset.reject') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-editor-reject'])]); + router + .put('dataset/:id/reject', [EditorDatasetController, 'rejectUpdate']) + .as('editor.dataset.rejectUpdate') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-editor-reject'])]); + + router + .get('/dataset/:id/edit', [EditorDatasetController, 'edit']) + .as('editor.dataset.edit') + // .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-editor-update'])]); + router + .put('/dataset/:id/update', [EditorDatasetController, 'update']) + .as('editor.dataset.update') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-editor-update'])]); + + router + .get('/dataset/:id/categorize', [EditorDatasetController, 'categorize']) + .as('editor.dataset.categorize') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-editor-update'])]); + router + .put('/dataset/:id/categorizeUpdate', [EditorDatasetController, 'categorizeUpdate']) + .as('editor.dataset.categorizeUpdate') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-editor-update'])]); + + router + .get('/file/download/:id', [EditorDatasetController, 'download']) + .as('editor.file.download') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-editor-update'])]); + router + .get('dataset/:id/rejectToReviewer', [EditorDatasetController, 'rejectToReviewer']) + .as('editor.dataset.rejectToReviewer') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-editor-reject'])]); + router + .put('dataset/:id/rejectToReviewer', [EditorDatasetController, 'rejectToReviewerUpdate']) + .as('editor.dataset.rejectToReviewerUpdate') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-editor-reject'])]); + router + .get('dataset/:id/publish', [EditorDatasetController, 'publish']) + .as('editor.dataset.publish') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-publish'])]); + router + .put('dataset/:id/publish', [EditorDatasetController, 'publishUpdate']) + .as('editor.dataset.publishUpdate') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-publish'])]); + router + .get('dataset/:id/doi', [EditorDatasetController, 'doiCreate']) + .as('editor.dataset.doi') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-publish'])]); + router + .put('dataset/:publish_id/doi', [EditorDatasetController, 'doiStore']) + .as('editor.dataset.doiStore') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-publish'])]); + // router + // .put('/dataset/:id/update', [EditorDatasetController, 'update']) + // .as('editor.dataset.update') + // .use([middleware.auth(), middleware.can(['dataset-editor-edit'])]); + }) + .prefix('editor'); + +// Reviewer routes +router + .group(() => { + router + .get('/dataset', [ReviewerDatasetController, 'index']) + .as('reviewer.dataset.list') + .use([middleware.auth(), middleware.can(['dataset-review-list'])]); + router + .get('dataset/:id/review', [ReviewerDatasetController, 'review']) + .as('reviewer.dataset.review') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-review'])]); + router + .put('dataset/:id/review', [ReviewerDatasetController, 'reviewUpdate']) + .as('reviewer.dataset.reviewUpdate') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-review'])]); + router + .get('/file/download/:id', [ReviewerDatasetController, 'download']) + .as('reviewer.file.download') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-review'])]); + router + .get('dataset/:id/reject', [ReviewerDatasetController, 'reject']) + .as('reviewer.dataset.reject') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-review-reject'])]); + router + .put('dataset/:id/reject', [ReviewerDatasetController, 'rejectUpdate']) + .as('reviewer.dataset.rejectUpdate') + .where('id', router.matchers.number()) + .use([middleware.auth(), middleware.can(['dataset-review-reject'])]); + }) + .prefix('reviewer'); diff --git a/start/routes/api.ts b/start/routes/api.ts index fbcf59e..55fccc5 100644 --- a/start/routes/api.ts +++ b/start/routes/api.ts @@ -1,23 +1,41 @@ -import Route from '@ioc:Adonis/Core/Route'; +import router from '@adonisjs/core/services/router'; +import AuthorsController from '#controllers/Http/Api/AuthorsController'; +import DatasetController from '#controllers/Http/Api/DatasetController'; +import HomeController from '#controllers/Http/Api/HomeController'; +import FileController from '#controllers/Http/Api/FileController'; +import AvatarController from '#controllers/Http/Api/AvatarController'; +import UserController from '#controllers/Http/Api/UserController'; +import CollectionsController from '#controllers/Http/Api/collections_controller'; +import { middleware } from '../kernel.js'; // API -Route.group(() => { - // Route.post("register", "AuthController.register"); - // Route.post("login", "AuthController.login"); +router + .group(() => { + router.get('clients', [UserController, 'getSubmitters']).as('client.index').use(middleware.auth());; + router.get('authors', [AuthorsController, 'index']).as('author.index').use(middleware.auth());; + router.get('datasets', [DatasetController, 'index']).as('dataset.index'); + router.get('persons', [AuthorsController, 'persons']).as('author.persons'); - Route.group(() => { - Route.get('authors', 'AuthorsController.index').as('author.index'); - Route.get('datasets', 'DatasetController.index').as('dataset.index'); - Route.get('persons', 'AuthorsController.persons').as('author.persons'); - // Route.get("author/:id", "TodosController.show"); - // Route.put("author/update", "TodosController.update"); - // Route.post("author", "TodosController.store"); - Route.get('/dataset', 'DatasetController.findAll').as('dataset.findAll'); - Route.get('/dataset/:publish_id', 'DatasetController.findOne').as('dataset.findOne'); - Route.get('/sitelinks/:year', 'HomeController.findDocumentsPerYear'); - Route.get('/years', 'HomeController.findYears'); - }); - // .middleware("auth:api"); -}) - .namespace('App/Controllers/Http/Api') + router.get('/dataset', [DatasetController, 'findAll']).as('dataset.findAll'); + router.get('/dataset/:publish_id', [DatasetController, 'findOne']).as('dataset.findOne'); + router.get('/sitelinks/:year', [HomeController, 'findDocumentsPerYear']); + router.get('/years', [HomeController, 'findYears']); + router.get('/statistic', [HomeController, 'findPublicationsPerMonth']); + + router.get('/file/download/:id', [FileController, 'findOne']).as('file.findOne'); + + router.get('/avatar/:name/:background?/:textColor?/:size?', [AvatarController, 'generateAvatar']); + + router + .post('/twofactor_totp/settings/enable/:state/:code?', [UserController, 'enable']) + .as('apps.twofactor_totp.enable') + .use(middleware.auth()); + router + .post('/twofactor_backupcodes/settings/create', [UserController, 'createCodes']) + .as('apps.twofactor_backupcodes.create') + .use(middleware.auth()); + + router.get('collections/:id', [CollectionsController, 'show']).as('collection.show') + }) + // .namespace('App/Controllers/Http/Api') .prefix('api'); diff --git a/start/rules/allowed_extensions_mimetypes.ts b/start/rules/allowed_extensions_mimetypes.ts new file mode 100644 index 0000000..88ff43e --- /dev/null +++ b/start/rules/allowed_extensions_mimetypes.ts @@ -0,0 +1,89 @@ +/* +|-------------------------------------------------------------------------- +| Preloaded File - node ace make:preload rules/allowedExtensionsMimetypes +|-------------------------------------------------------------------------- +|*/ + +import { FieldContext } from '@vinejs/vine/types'; +import vine from '@vinejs/vine'; +// import { VineString } from '@vinejs/vine'; +import { VineMultipartFile, isBodyParserFile } from '#providers/vinejs_provider'; +import type { MultipartFile } from '@adonisjs/core/bodyparser'; +import MimeType from '#models/mime_type'; + +/** + * Options accepted by the unique rule + */ +type Options = { + // size: string | number; + // extnames: string[]; + // clientNameSizeLimit?: number; + allowedExtensions: string[]; + allowedMimeTypes?: string[]; +}; + +// async function allowedMimetypeExtensions(file: VineMultipartFile | unknown, options: Options | unknown, field: FieldContext) { +async function allowedMimetypeExtensions(file: VineMultipartFile | unknown, options: Options, field: FieldContext) { + if (!isBodyParserFile(file)) { + return; + } + const validatedFile = file as MultipartFile; + const mimeType = validatedFile?.headers['content-type']; // Get MIME type from the file + const fileExtension = validatedFile?.extname?.toLocaleLowerCase() as string; // Get file extension from the file + + // validate if file extension is allowed in combination with mimetype + let mimeRecord = await MimeType.query().select('file_extension').where('name', mimeType).andWhere('enabled', true).first(); + + if (!mimeRecord) { + mimeRecord = await MimeType.query() + .select('file_extension') + .whereRaw("? = ANY (string_to_array(alternate_mimetype, '|'))", [mimeType]) + .andWhere('enabled', true) + .first(); + } + + if (!mimeRecord) { + const allowedMimetypes = await MimeType.query().select('name').where('enabled', true); + // Transform allowed MIME types to a concatenated string + const allowedMimetypesString = allowedMimetypes.map((mime) => mime.name).join(', '); + // throw new Error('Invalid MIME type'); + // Report error with the concatenated allowed MIME types + field.report( + `Invalid MIME type ${mimeType}. Allowed MIME types are: ${allowedMimetypesString}`, + 'allowedMimetypeExtensions', + field, + ); + } else { + let allowedExtensions: string[] = []; + if (options && options.allowedExtensions) { + allowedExtensions = options.allowedExtensions; + } else { + allowedExtensions = mimeRecord.file_extension.split('|'); + } + // Validate if the file's extension is in the allowed extensions + if (!allowedExtensions.includes(fileExtension)) { + //throw new Error(`File extension ${fileExtension} is not allowed for MIME type ${mimeType}`); + field.report( + `File extension ${fileExtension} is not allowed for MIME type ${mimeType}. Allowed extensions are: ${mimeRecord.file_extension}`, + 'allowedMimetypeExtensions', + field, + ); + } + // if (validatedFile.clientName.length > options.clientNameSizeLimit) { + + // field.report(`Filename length should be less or equal than ${options.clientNameSizeLimit} characters`, 'filenameLength', field); + // } + } +} + +export const allowedMimetypeExtensionsRule = vine.createRule(allowedMimetypeExtensions); + +declare module '#providers/vinejs_provider' { + interface VineMultipartFile { + allowedMimetypeExtensions(options?: Options): this; + } +} + +VineMultipartFile.macro('allowedMimetypeExtensions', function (this: VineMultipartFile, options: Options) { + return this.use(allowedMimetypeExtensionsRule(options)); +}); diff --git a/start/rules/array_contains_types.ts b/start/rules/array_contains_types.ts new file mode 100644 index 0000000..1fe5994 --- /dev/null +++ b/start/rules/array_contains_types.ts @@ -0,0 +1,80 @@ +import { FieldContext } from '@vinejs/vine/types'; +import vine, { VineArray } from '@vinejs/vine'; +import { SchemaTypes } from '@vinejs/vine/types'; + +type Options = { + typeA: string; + typeB: string; +}; + +/** + * Custom rule to validate an array of titles contains at least one title + * with type 'main' and one with type 'translated'. + * + * This rule expects the validated value to be an array of objects, + * where each object has a "type" property. + */ +async function arrayContainsTypes(value: unknown, options: Options, field: FieldContext) { + if (!Array.isArray(value)) { + field.report(`The {{field}} must be an array of titles.`, 'array.titlesContainsMainAndTranslated', field); + return false; + } + + const typeAExpected = options.typeA.toLowerCase(); + const typeBExpected = options.typeB.toLowerCase(); + + // const hasMain = value.some((title: any) => { + // return typeof title === 'object' && title !== null && String(title.type).toLowerCase() === 'main'; + // }); + + // const hasTranslated = value.some((title: any) => { + // return typeof title === 'object' && title !== null && String(title.type).toLowerCase() === 'translated'; + // }); + const hasTypeA = value.some((item: any) => { + return typeof item === 'object' && item !== null && String(item.type).toLowerCase() === typeAExpected; + }); + + const hasTypeB = value.some((item: any) => { + return typeof item === 'object' && item !== null && String(item.type).toLowerCase() === typeBExpected; + }); + if (!hasTypeA || !hasTypeB) { + let errorMessage = `The ${field.getFieldPath()} array must have at least one '${options.typeA}' item and one '${options.typeB}' item.`; + + // Check for specific field names to produce a more readable message. + if (field.getFieldPath() === 'titles') { + // For titles we expect one main and minimum one translated title. + if (!hasTypeA && !hasTypeB) { + errorMessage = 'For titles, define at least one main title and at least one Translated title as MAIN TITLE.'; + } else if (!hasTypeA) { + errorMessage = 'For titles, define at least one main title.'; + } else if (!hasTypeB) { + errorMessage = 'For Titles, define at least one Translated title as MAIN TITLE.'; + } + } else if (field.getFieldPath() === 'descriptions') { + // For descriptions we expect one abstracts description and minimum one translated description. + if (!hasTypeA && !hasTypeB) { + errorMessage = 'For descriptions, define at least one abstract and at least one Translated description as MAIN ABSTRACT.'; + } else if (!hasTypeA) { + errorMessage = 'For descriptions, define at least one abstract.'; + } else if (!hasTypeB) { + errorMessage = 'For Descriptions, define at least one Translated description as MAIN ABSTRACT.'; + } + } + + field.report(errorMessage, 'array.containsTypes', field, options); + return false; + } + return true; +} + +export const arrayContainsMainAndTranslatedRule = vine.createRule(arrayContainsTypes); + +declare module '@vinejs/vine' { + interface VineArray { + arrayContainsTypes(options: Options): this; + } +} + +VineArray.macro('arrayContainsTypes', function (this: VineArray, options: Options) { + return this.use(arrayContainsMainAndTranslatedRule(options)); +}); diff --git a/start/rules/dependent_array_min_length.ts b/start/rules/dependent_array_min_length.ts new file mode 100644 index 0000000..504363a --- /dev/null +++ b/start/rules/dependent_array_min_length.ts @@ -0,0 +1,61 @@ +/* +|-------------------------------------------------------------------------- +| Preloaded File - node ace make:preload rules/dependentArrayMinLength +|-------------------------------------------------------------------------- +|*/ + +import { FieldContext } from '@vinejs/vine/types'; +import vine, { VineArray } from '@vinejs/vine'; +import { SchemaTypes } from '@vinejs/vine/types'; + +/** + * Options accepted by the dependentArrayMinLength rule + */ +type Options = { + min: number; + dependentArray: string; +}; + +async function dependentArrayMinLength(value: unknown, options: Options, field: FieldContext) { + const fileInputs = field.data[options.dependentArray]; // Access the dependent array + const isArrayValue = Array.isArray(value); + const isArrayFileInputs = Array.isArray(fileInputs); + + if (isArrayValue && isArrayFileInputs) { + if (value.length >= options.min) { + return true; // Valid if the main array length meets the minimum + } else if (value.length === 0 && fileInputs.length >= options.min) { + return true; // Valid if the main array is empty and the dependent array meets the minimum + } else { + field.report( + `At least {{ min }} item for {{field}} field must be defined`, + 'array.dependentArrayMinLength', + field, + options, + ); + } + } else { + // Report if either value or dependentArray is not an array + field.report( + `Both the {{field}} field and dependent array {{dependentArray}} must be arrays.`, + 'array.dependentArrayMinLength', + field, + options, + ); + } + + return false; // Invalid if none of the conditions are met +} + +export const dependentArrayMinLengthRule = vine.createRule(dependentArrayMinLength); + +// Extend the VineArray interface with the same type parameters +declare module '@vinejs/vine' { + interface VineArray { + dependentArrayMinLength(options: Options): this; + } +} + +VineArray.macro('dependentArrayMinLength', function (this: VineArray, options: Options) { + return this.use(dependentArrayMinLengthRule(options)); +}); diff --git a/start/rules/file_length.ts b/start/rules/file_length.ts new file mode 100644 index 0000000..5df6664 --- /dev/null +++ b/start/rules/file_length.ts @@ -0,0 +1,51 @@ +/* +|-------------------------------------------------------------------------- +| Preloaded File - node ace make:preload rules/fileLength +|-------------------------------------------------------------------------- +|*/ + +import { FieldContext } from '@vinejs/vine/types'; +import vine from '@vinejs/vine'; +// import { VineString } from '@vinejs/vine'; +import { VineMultipartFile, isBodyParserFile } from '#providers/vinejs_provider'; +import type { MultipartFile } from '@adonisjs/core/bodyparser'; + +/** + * Options accepted by the unique rule + */ +// type Options = { +// mainLanguageField: string; +// typeField: string; +// }; +type Options = { + // size: string | number; + // extnames: string[]; + clientNameSizeLimit: number +}; + +async function filenameLength(file: VineMultipartFile | unknown, options: Options, field: FieldContext) { + // if (typeof value !== 'string' && typeof value != 'number') { + // return; + // } + if (!isBodyParserFile(file)) { + return; + } + const validatedFile = file as MultipartFile; + + if (validatedFile.clientName.length > options.clientNameSizeLimit) { + + field.report(`Filename length should be less or equal than ${options.clientNameSizeLimit} characters`, 'filenameLength', field); + } +} + +export const filenameLengthRule = vine.createRule(filenameLength); + +declare module '#providers/vinejs_provider' { + interface VineMultipartFile { + filenameLength(options: Options): this; + } +} + +VineMultipartFile.macro('filenameLength', function (this: VineMultipartFile, options: Options) { + return this.use(filenameLengthRule(options)); +}); diff --git a/start/rules/file_scan.ts b/start/rules/file_scan.ts new file mode 100644 index 0000000..53383ea --- /dev/null +++ b/start/rules/file_scan.ts @@ -0,0 +1,88 @@ +/* +|-------------------------------------------------------------------------- +| Preloaded File - node ace make:preload rules/fileScan +|-------------------------------------------------------------------------- +|*/ +import { FieldContext } from '@vinejs/vine/types'; +import vine, { errors } from '@vinejs/vine'; +import { VineMultipartFile, isBodyParserFile } from '#providers/vinejs_provider'; +import type { MultipartFile } from '@adonisjs/core/bodyparser'; +import ClamScan from 'clamscan'; + +type Options = { + removeInfected: boolean; + host?: string; + port?: number; +}; + +async function fileScan(file: VineMultipartFile | unknown, options: Options, field: FieldContext) { + // if (typeof value !== 'string' && typeof value != 'number') { + // return; + // } + if (!isBodyParserFile(file)) { + return; + } + const validatedFile = file as MultipartFile; + + try { + await scanFileForViruses(validatedFile.tmpPath, options); + } catch (error) { + // If the file is infected or there's an error scanning the file, throw a validation exception + // throw error; + field.report(`Upload error. Code: ${error.code} message: ${error.messages.uploadError}`, 'fileScan', field); + } +} + +async function scanFileForViruses(filePath: string | undefined, options: Options): Promise { + if (!filePath) { + throw new errors.E_VALIDATION_ERROR({ uploadError: 'File path is undefined!' }); + } + const opts: ClamScan.Options = { + removeInfected: options.removeInfected, // If true, removes infected files + debugMode: false, // If true, deep scan folders recursively + scanRecursively: true, // If true, deep scan folders recursively + clamdscan: { + active: true, // If true, this module will consider using the clamdscan binary + host: options.host, + port: options.port, + multiscan: true, // Scan using all available cores! Yay! + }, + }; + + const clamscan = await new ClamScan().init(opts); + return new Promise(async (resolve, reject) => { + try { + // You can re-use the `clamscan` object as many times as you want + // const version = await clamscan.getVersion(); + // console.log(`ClamAV Version: ${version}`); + const result = await clamscan.isInfected(filePath); + if (!result || typeof result.isInfected === 'undefined') { + reject(new errors.E_VALIDATION_ERROR({ uploadError: 'Unexpected response from virus scan!' })); + return; + } + const { file, isInfected, viruses } = result; + if (isInfected) { + console.log(`${file} is infected with ${viruses}!`); // reject(new ValidationException(true, { 'upload error': `File ${file} is infected!` })); + reject(new errors.E_VALIDATION_ERROR({ uploadError: `File ${file} is infected with ${viruses}!` })); + } else { + resolve(); + } + } catch (error) { + // If there's an error scanning the file, throw a validation exception + // reject(new ValidationException(true, { 'upload error': `${error.message}` })); + reject(new errors.E_VALIDATION_ERROR({ uploadError: `${error.message}!` })); + } + }); +} + +export const fileScanRule = vine.createRule(fileScan); + +declare module '#providers/vinejs_provider' { + interface VineMultipartFile { + fileScan(options: Options): this; + } +} + +VineMultipartFile.macro('fileScan', function (this: VineMultipartFile, options: Options) { + return this.use(fileScanRule(options)); +}); diff --git a/start/rules/referenceValidation.ts b/start/rules/referenceValidation.ts new file mode 100644 index 0000000..dd4030a --- /dev/null +++ b/start/rules/referenceValidation.ts @@ -0,0 +1,166 @@ +import { FieldContext } from '@vinejs/vine/types'; +import vine from '@vinejs/vine'; +import { VineString } from '@vinejs/vine'; +import { default as axios } from 'axios'; +import { ReferenceIdentifierTypes } from '#contracts/enums'; + +type Options = { + typeField: string; +}; + +// Function to check if DOI exists using the DOI API +async function checkDoiExists(doi: string): Promise { + try { + const response = await axios.get(`${doi}`); + return response.status === 200; // If status is 200, DOI is valid + } catch (error) { + return false; // If request fails, DOI does not exist + } +} + +// Function to check if ISBN exists using the Open Library API +// async function checkIsbnExists(isbn: string): Promise { +// try { +// const response = await axios.get(`https://isbnsearch.org/isbn/${isbn}`); +// return response.status === 200 && response.data.includes('ISBN'); // Check if response contains ISBN information +// } catch (error) { +// return false; // If request fails, ISBN does not exist +// } +// } + +async function checkIsbnExists(isbn: string): Promise { + // Try Open Library first + try { + const response = await axios.get(`https://openlibrary.org/api/books?bibkeys=ISBN:${isbn}&format=json&jscmd=data`); + const data = response.data; + if (Object.keys(data).length > 0) { + return true; + } + } catch (error) { + // If an error occurs, continue to the next API + } + + // Fallback to Google Books API + try { + const response = await axios.get(`https://www.googleapis.com/books/v1/volumes?q=isbn:${isbn}`); + const data = response.data; + if (data.totalItems > 0) { + return true; + } + } catch (error) { + // If an error occurs, continue to the next API + } + + // Lastly use the Koha library by scraping HTML + try { + const response = await axios.get(`https://bibliothek.geosphere.at/cgi-bin/koha/opac-search.pl?idx=nb&q=${isbn}`); + const html = response.data; + // Check if zero results are explicitly indicated (German or English) + if (html.includes('Keine Treffer gefunden!') || html.includes('Your search returned 0 results')) { + return false; + } + // Try to extract the count from German message + let match = html.match(/Ihre Suche erzielte\s*(\d+)\s*Treffer/); + + // If not found, try the English equivalent + if (!match) { + match = html.match(/Your search returned\s*(\d+)\s*results/); + } + + if (match && match[1]) { + const count = parseInt(match[1], 10); + return count > 0; + } + + // Fallback: if no match is found, return false + return false; + } catch (error) { + return false; + } +} + +async function validateReference(value: unknown, options: Options, field: FieldContext) { + if (typeof value !== 'string') { + return; + } + + const type = field.parent[options.typeField]; + + if (type === ReferenceIdentifierTypes.URL) { + if (!/^https?:\/\/[^\s$.?#].[^\s]*$/.test(value)) { + field.report('The {{ field }} must be a valid URL', 'validateReference', field); + } else { + try { + const exists = await checkDoiExists(value); + if (!exists) { + field.report('The {{ field }} must be an existing URL', 'validateReference', field); + } + } catch (error) { + field.report('Error checking URL existence: ' + error.message, 'validateReference', field); + } + } + } + // Check if the value does not match the DOI pattern + // The regex pattern ^10.\d{4,9}\/[-._;()/:a-zA-Z0-9]+$ is designed to match valid DOI formats. + // - ^10. ensures that the string starts with "10." + // - \d{4,9} matches a sequence of 4 to 9 digits. + // - \/ matches the literal forward slash character. + // - [-._;()/:a-zA-Z0-9]+ matches one or more characters that can include uppercase and lowercase letters, digits, and a set of special characters. + // The i flag at the end of the regex makes the matching case-insensitive, meaning it will match both uppercase and lowercase letters. + // If the value does not match this pattern, the code inside the if block will execute. + else if (type === ReferenceIdentifierTypes.DOI) { + // Extract the DOI from the URL if it starts with 'https://doi.org/' + const doiPattern = /^https:\/\/doi\.org\/(10.\d{4,9}\/[-._;()/:a-zA-Z0-9]+)$/i; + const match = value.match(doiPattern); + const doi = match ? match[1] : value; + // Check if the extracted DOI or the value itself matches the DOI patter + if (!/^10.\d{4,9}\/[-._;()/:a-zA-Z0-9]+$/i.test(doi)) { + field.report('The {{ field }} must be a valid DOI', 'validateReference', field); + } else { + try { + const exists = await checkDoiExists(value); + if (!exists) { + field.report('The {{ field }} must be an existing DOI', 'validateReference', field); + } + } catch (error) { + field.report('Error checking DOI existence: ' + error.message, 'validateReference', field); + } + } + } else if (type === ReferenceIdentifierTypes.ISBN) { + const isbnRegex = /^(?:\d{1,5}-\d{1,7}-\d{1,7}-[\dX]$|97[89]-\d{1,5}-\d{1,7}-\d{1,7}-\d)$/; + if (!isbnRegex.test(value)) { + field.report('Invalid {{ field }}. Expected format: 978-3-16-148410-0 or similar.', 'validateReference', field); + } else { + try { + const exists = await checkIsbnExists(value); + if (!exists) { + field.report('The {{ field }} must be an existing ISBN', 'validateReference', field); + } + } catch (error) { + field.report('Error checking ISBN existence: ' + error.message, 'validateReference', field); + } + } + } else if (type === ReferenceIdentifierTypes.Handle && !/^\d{2,}.\d{4,9}\/[-._;()/:a-zA-Z0-9]+$/.test(value)) { + /// Extract the Handle from the URL if it contains '/handle/' + field.report('The {{ field }} must be a valid Handle', 'validateReference', field); + } else if ( + type === ReferenceIdentifierTypes.URN && + !/^urn:[a-zA-Z0-9][a-zA-Z0-9-]{0,31}:[a-zA-Z0-9()+,\-.:=@;$_!*'%/?#]+$/.test(value) + ) { + field.report('The {{ field }} must be a valid URN', 'validateReference', field); + } else if (type === ReferenceIdentifierTypes.ISSN && !/^\d{4}-\d{3}[\dxX]$/.test(value)) { + field.report('The {{ field }} must be a valid ISSN', 'validateReference', field); + } +} + +export const validateReferenceRule = vine.createRule(validateReference); + +declare module '@vinejs/vine' { + interface VineString { + validateReference(options: Options): this; + } +} + +VineString.macro('validateReference', function (this: VineString, options: Options) { + return this.use(validateReferenceRule(options)); +}); diff --git a/start/rules/translated_language.ts b/start/rules/translated_language.ts new file mode 100644 index 0000000..08b6b23 --- /dev/null +++ b/start/rules/translated_language.ts @@ -0,0 +1,48 @@ +/* +|-------------------------------------------------------------------------- +| Preloaded File - node ace make:preload rules/translatedLanguage +|-------------------------------------------------------------------------- +|*/ + +import { FieldContext } from '@vinejs/vine/types'; +import vine from '@vinejs/vine'; +import { VineString } from '@vinejs/vine'; + +/** + * Options accepted by the unique rule + */ +type Options = { + mainLanguageField: string; + typeField: string; +}; + +async function translatedLanguage(value: unknown, options: Options, field: FieldContext) { + if (typeof value !== 'string' && typeof value !== 'number') { + return; + } + + // const type = validator.helpers.getFieldValue(typeField, root, tip); //'type' = 'Translated' + const typeValue = vine.helpers.getNestedValue(options.typeField, field); //'Main' or 'Translated' + + // const mainLanguage = validator.helpers.getFieldValue(mainLanguageField, root, tip); + const mainLanguage = field.data[options.mainLanguageField]; // 'en' or 'de' + + if (typeValue === 'Translated') { + if (value === mainLanguage) { + // report thattranlated language field is same as main language field of dataset + field.report('The tranlated {{ field }} hast the same language as dataset language', 'translatedLanguage', field); + } + } +} + +export const translatedLanguageRule = vine.createRule(translatedLanguage); + +declare module '@vinejs/vine' { + interface VineString { + translatedLanguage(options: Options): this; + } +} + +VineString.macro('translatedLanguage', function (this: VineString, options: Options) { + return this.use(translatedLanguageRule(options)); +}); diff --git a/start/rules/unique.ts b/start/rules/unique.ts new file mode 100644 index 0000000..f9a2b25 --- /dev/null +++ b/start/rules/unique.ts @@ -0,0 +1,59 @@ +/* +|-------------------------------------------------------------------------- +| Preloaded File - node ace make:preload rules/unique +|-------------------------------------------------------------------------- +|*/ + +import { FieldContext } from '@vinejs/vine/types'; +import db from '@adonisjs/lucid/services/db'; +import vine from '@vinejs/vine'; +import { VineString, VineNumber } from '@vinejs/vine'; + +/** + * Options accepted by the unique rule + */ +type Options = { + table: string; + column: string; + whereNot?: (field: FieldContext) => string; +}; + +async function isUnique(value: unknown, options: Options, field: FieldContext) { + if (typeof value !== 'string' && typeof value !== 'number') { + return; + } + + let ignoreId: string | undefined; + if (options.whereNot) { + ignoreId = options.whereNot(field); + } + + const builder = db.from(options.table).select(options.column).where(options.column, value); + if (ignoreId) { + builder.whereNot('id', '=', ignoreId); + } + const result = await builder.first(); + if (result) { + // report that value is NOT unique + field.report('The {{ field }} field is not unique', 'isUnique', field); + // field.report(messages.unique, "isUnique", field); + } +} + +export const isUniqueRule = vine.createRule(isUnique); + +declare module '@vinejs/vine' { + interface VineString { + isUnique(options: Options): this; + } + interface VineNumber { + isUnique(options: Options): this; + } +} + +VineString.macro('isUnique', function (this: VineString, options: Options) { + return this.use(isUniqueRule(options)); +}); +VineNumber.macro('isUnique', function (this: VineNumber, options: Options) { + return this.use(isUniqueRule(options)); +}); diff --git a/start/rules/unique_person.ts b/start/rules/unique_person.ts new file mode 100644 index 0000000..747bdbc --- /dev/null +++ b/start/rules/unique_person.ts @@ -0,0 +1,61 @@ +/* +|-------------------------------------------------------------------------- +| Preloaded File - node ace make:preload rules/uniquePerson +|-------------------------------------------------------------------------- +|*/ + +import { FieldContext } from '@vinejs/vine/types'; +import db from '@adonisjs/lucid/services/db'; +import vine from '@vinejs/vine'; +import { VineString, VineNumber } from '@vinejs/vine'; + +/** + * Options accepted by the unique rule + */ +type Options = { + table: string; + column: string; + // whereNot?: ((field: FieldContext) => string); + idField: string; +}; + +async function isUniquePerson(value: unknown, options: Options, field: FieldContext) { + if (typeof value !== 'string' && typeof value !== 'number') { + return; + } + + // let ignoreId: string | undefined; + // if (options.whereNot) { + // ignoreId = options.whereNot(field); + // } + const idValue = vine.helpers.getNestedValue(options.idField, field); //'Main' or 'Translated' + + const builder = db.from(options.table).select(options.column).where(options.column, value); + // if existent id, exclide it from validating + if (idValue) { + builder.whereNot('id', '=', idValue); + } + const result = await builder.first(); + if (result) { + // report that value is NOT unique + field.report('The {{ field }} field is not unique', 'isUnique', field); + } +} + +export const isUniquePersonRule = vine.createRule(isUniquePerson); + +declare module '@vinejs/vine' { + interface VineString { + isUniquePerson(options: Options): this; + } + interface VineNumber { + isUniquePerson(options: Options): this; + } +} + +VineString.macro('isUniquePerson', function (this: VineString, options: Options) { + return this.use(isUniquePersonRule(options)); +}); +VineNumber.macro('isUniquePerson', function (this: VineNumber, options: Options) { + return this.use(isUniquePersonRule(options)); +}); diff --git a/start/rules/valid_mimetype.ts b/start/rules/valid_mimetype.ts new file mode 100644 index 0000000..4a9eeea --- /dev/null +++ b/start/rules/valid_mimetype.ts @@ -0,0 +1,29 @@ +import { FieldContext } from '@vinejs/vine/types'; +import vine from '@vinejs/vine'; +import { VineString } from '@vinejs/vine'; + +async function isValidMimetype(value: unknown, options: unknown, field: FieldContext) { + if (typeof value !== 'string') { + return; + } + + // Regex pattern to match valid mimetypes (e.g., "application/json", "text/html") + const mimetypePattern = /^[a-zA-Z0-9!#$&^_.+-]+\/[a-zA-Z0-9!#$&^_.+-]+$/; + if (!mimetypePattern.test(value)) { + field.report('The given value is not a valid mimetype', 'isValidMimetype', field); + } +} + +export const isValidMimetypeRule = vine.createRule(isValidMimetype); + +declare module '@vinejs/vine' { + interface VineString { + isValidMimetype(): this; + } +} + +VineString.macro('isValidMimetype', function (this: VineString) { + return this.use(isValidMimetypeRule()); +}); + + diff --git a/start/validator.ts b/start/validator.ts index bca3fdf..6ac9133 100644 --- a/start/validator.ts +++ b/start/validator.ts @@ -1,6 +1,6 @@ /* |-------------------------------------------------------------------------- -| Preloaded File +| Preloaded File - node ace make:preload validator |-------------------------------------------------------------------------- | | Any code written inside this file will be executed during the application @@ -8,133 +8,67 @@ https://issuehunt.io/r/adonisjs/validator/issues/84 | */ -// import { string } from '@ioc:Adonis/Core/Helpers'; -import { validator } from '@ioc:Adonis/Core/Validator'; +import vine from '@vinejs/vine'; +// import { FieldContext } from '@vinejs/vine/types'; +// import db from '@adonisjs/lucid/services/db'; +import { VanillaErrorReporter } from '#validators/vanilla_error_reporter'; -validator.rule('uniqueArray', (dataArray, [field], { pointer, arrayExpressionPointer, errorReporter }) => { - const array = dataArray; //validator.helpers.getFieldValue(data, field, tip); +// vine.messagesProvider = new SimpleMessagesProvider({ +// // Applicable for all fields +// 'required': 'The {{ field }} field is required', +// 'string': 'The value of {{ field }} field must be a string', +// 'email': 'The value is not a valid email address', - if (!Array.isArray(array)) { - throw new Error(`The ${pointer} must be an array.`); - } +// // 'contacts.0.email.required': 'The primary email of the contact is required', +// // 'contacts.*.email.required': 'Contact email is required', +// 'permissions.minLength': 'at least {{ options.minLength }} permission must be defined', +// 'permissions.*.number': 'Define permissions as valid numbers', +// }) +vine.errorReporter = () => new VanillaErrorReporter(); - const uniqueValues = new Set(); - for (let i = 0; i < array.length; i++) { - const item = array[i]; - const attributeValue = item[field]; // Extract the attribute value for uniqueness check +// /** +// * Options accepted by the unique rule +// */ +// type Options = { +// table: string; +// column: string; +// }; - if (uniqueValues.has(attributeValue)) { - // throw new Error(`The ${field} array contains duplicate values for the ${field} attribute.`) - errorReporter.report( - pointer, - 'uniqueArray', // Keep an eye on this - `The ${pointer} array contains duplicate values for the ${field} attribute.`, - arrayExpressionPointer, - { field, array: pointer }, - ); - return; - } +// /** +// * Implementation +// */ +// async function unique(value: unknown, options: Options, field: FieldContext) { +// /** +// * We do not want to deal with non-string +// * values. The "string" rule will handle the +// * the validation. +// */ +// if (typeof value !== 'string') { +// return; +// } - uniqueValues.add(attributeValue); - } -}); +// const builder = await db +// .from(options.table) +// .select(options.column) +// .where(options.column, value).first(); +// const row = await builder.first(); -validator.rule( - 'translatedLanguage', - (value, [mainLanguageField, typeField], { root, tip, pointer, arrayExpressionPointer, errorReporter }) => { - if (typeof value !== 'string') { - return; - } - // const fieldValue = validator. getValue(data, field) - // this should return the "category_id" value present in "root", but i got undefined - const mainLanguage = validator.helpers.getFieldValue(mainLanguageField, root, tip); - const type = validator.helpers.getFieldValue(typeField, root, tip); +// if (row) { +// field.report('The {{ field }} field is not unique', 'unique', field); +// } +// } - if (type && type === 'Translated') { - if (value === mainLanguage) { - errorReporter.report( - pointer, - 'translatedLanguage', // Keep an eye on this - 'translatedLanguage validation failed', - arrayExpressionPointer, - { mainLanguage }, - ); - } - } +// /** +// * Converting a function to a VineJS rule +// */ +// export const uniqueRule = vine.createRule(unique); - // if (value !== string.camelCase(value)) { - // options.errorReporter.report( - // options.pointer, - // 'camelCase', - // 'camelCase validation failed', - // options.arrayExpressionPointer - // ); - // } - }, -); - -validator.rule('fileExtension', async (value, [extensions], { pointer, arrayExpressionPointer, errorReporter }) => { - const allowedExtensions = extensions.map((ext: string) => ext.toLowerCase()); - const uploadedFile = value; - - if (!uploadedFile) { - return; - } - - const extension = uploadedFile.extname.toLowerCase().replace('.', ''); - - if (!allowedExtensions.includes(extension)) { - errorReporter.report( - pointer, - 'fileExtension', - 'Invalid file extension. Only {{ extensions }} files are allowed.', - arrayExpressionPointer, - ); - } -}); - -// validator.rule( -// 'clamavScan', -// (value, [field], { root, tip, pointer, arrayExpressionPointer, errorReporter }) => { -// if (typeof value !== 'object') { -// return; -// } -// const uploadedFile = validator.helpers.getFieldValue(field, root, tip); -// // return rules.file({}, [ -// // async (file) => { -// // const clamdhost = process.env['CLAMD_HOST'] ?? '127.0.0.1'; -// // const clamdport = Number(process.env['CLAMD_PORT']) ?? '3310'; -// // try { -// // var isInfected = await scanFileForViruses(file.tmpPath, clamdhost, clamdport); -// // } catch (error) { -// // throw new Error(`${pointer}: ${error.message}`); -// // } -// // }, -// // ]); +// VineString.macro('unique', function (this: VineString, options: Options) { +// return this.use(uniqueRule(options)); // }); -// async function scanFileForViruses(filePath, host, port): Promise { -// // const clamscan = await (new ClamScan().init()); -// const opts: ClamScan.Options = { -// preference: 'clamdscan', -// clamdscan: { -// active: true, -// host, -// port, -// multiscan: true, -// }, -// }; -// const clamscan = await new ClamScan().init(opts); - -// return new Promise((resolve, reject) => { -// clamscan.isInfected(filePath, (err, file, isInfected: boolean) => { -// if (err) { -// reject(err); -// } else if (isInfected) { -// reject(new Error(`File ${file} is infected!`)); -// } else { -// resolve(isInfected); -// } -// }); -// }); -// } +// // declare module '@vinejs/vine' { +// // interface VineString { +// // unique(options: Options): this; +// // } +// // } diff --git a/tailwind.config.js b/tailwind.config.js index d4e87f2..e41b62d 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,6 +1,7 @@ /** @type {import('tailwindcss').Config} */ const plugin = require('tailwindcss/plugin'); const defaultTheme = require('tailwindcss/defaultTheme'); +const { registerables } = require('chart.js'); module.exports = { content: ['./resources/**/*.{edge,js,ts,jsx,tsx,vue}'], @@ -11,9 +12,35 @@ module.exports = { gray: 'gray', }, extend: { + backgroundImage: { + 'radio-checked': "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z' /%3E%3C/svg%3E\")", + 'checkbox-checked': "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1 1'%3E%3Cpath style='fill:%23fff' d='M 0.04038059,0.6267767 0.14644661,0.52071068 0.42928932,0.80355339 0.3232233,0.90961941 z M 0.21715729,0.80355339 0.85355339,0.16715729 0.95961941,0.2732233 0.3232233,0.90961941 z'%3E%3C/path%3E%3C/svg%3E\")", + }, colors: { - 'primary': '#22C55E', - 'primary-dark': '#DCFCE7', + 'primary': '#22C55E', + 'inprogress': 'rgb(94 234 212)', + 'released': 'rgb(52 211 153)', + 'editor-accepted': 'rgb(125 211 252)', + 'approved': '#FFEB3B', //A lighter yellow, which is cheerful and can indicate that something is in a pending state. + 'rejected-editor': '#f97316', + 'rejected-reviewer': '#f97316', + 'reviewed': '#FFC107', // warm amber, suggesting caution but still positive + 'published': '#8BC34A', // lighter green, which is also fresh and positive + 'primary-dark': '#DCFCE7', + 'lime': { + DEFAULT: '#BFCE40', + dark: 'rgba(5,46,55,0.7)', + 50: '#FBFCF7', + 100: '#F8FBE1', + 200: '#EEF69E', + 300: '#DCEC53', + 400: '#A8D619', + 500: '#65DC21', + 600: '#429E04', + 700: '#357C06', + 800: '#295B09', + 900: '#20450A', + }, }, fontFamily: { sans: ['Inter', ...defaultTheme.fontFamily.sans], @@ -79,7 +106,19 @@ module.exports = { { values: theme('asideScrollbars') }, ); }), + plugin(function({ addUtilities }) { + const newUtilities = { + '.drag-none': { + '-webkit-user-drag': 'none', + '-khtml-user-drag': 'none', + '-moz-user-drag': 'none', + '-o-user-drag': 'none', + 'user-drag': 'none', + }, + } + addUtilities(newUtilities) + }), // As of Tailwind CSS v3.3, the `@tailwindcss/line-clamp` plugin is now included by default // require('@tailwindcss/line-clamp'), ], -}; +}; \ No newline at end of file diff --git a/test.ts b/test.ts deleted file mode 100644 index 012ef64..0000000 --- a/test.ts +++ /dev/null @@ -1,45 +0,0 @@ -/* -|-------------------------------------------------------------------------- -| Tests -|-------------------------------------------------------------------------- -| -| The contents in this file boots the AdonisJS application and configures -| the Japa tests runner. -| -| For the most part you will never edit this file. The configuration -| for the tests can be controlled via ".adonisrc.json" and -| "tests/bootstrap.ts" files. -| -*/ - -process.env.NODE_ENV = 'test'; - -import 'reflect-metadata'; -import sourceMapSupport from 'source-map-support'; -import { Ignitor } from '@adonisjs/core/build/standalone'; -import { configure, processCliArgs, run, RunnerHooksHandler } from '@japa/runner'; - -sourceMapSupport.install({ handleUncaughtExceptions: false }); - -const kernel = new Ignitor(__dirname).kernel('test'); - -kernel - .boot() - .then(() => import('./tests/bootstrap')) - .then(({ runnerHooks, ...config }) => { - const app: RunnerHooksHandler[] = [() => kernel.start()]; - - configure({ - ...kernel.application.rcFile.tests, - ...processCliArgs(process.argv.slice(2)), - ...config, - ...{ - importer: (filePath) => import(filePath), - setup: app.concat(runnerHooks.setup), - teardown: runnerHooks.teardown, - }, - cwd: kernel.application.appRoot, - }); - - run(); - }); diff --git a/tests/bootstrap.ts b/tests/bootstrap.ts index bc4446a..0cd357c 100644 --- a/tests/bootstrap.ts +++ b/tests/bootstrap.ts @@ -5,10 +5,17 @@ * file. */ -import type { Config } from '@japa/runner'; -import TestUtils from '@ioc:Adonis/Core/TestUtils'; -import { assert, runFailedTests, specReporter, apiClient } from '@japa/preset-adonis'; +// import type { Config } from '@japa/runner'; +import type { Config } from '@japa/runner/types'; +// import TestUtils from '@ioc:Adonis/Core/TestUtils'; +import testUtils from '@adonisjs/core/services/test_utils'; +// import { assert, runFailedTests, specReporter, apiClient } from '@japa/preset-adonis'; +import { assert } from '@japa/assert'; +// import { apiClient } from '@japa/api-client'; +import { pluginAdonisJS } from '@japa/plugin-adonisjs'; +import app from '@adonisjs/core/services/app'; +// import env from '#start/env' /* |-------------------------------------------------------------------------- | Japa Plugins @@ -20,7 +27,14 @@ import { assert, runFailedTests, specReporter, apiClient } from '@japa/preset-ad | Feel free to remove existing plugins or add more. | */ -export const plugins: Required['plugins'] = [assert(), runFailedTests(), apiClient()]; +// export const plugins: Required['plugins'] = [assert(), runFailedTests(), apiClient()]; +export const plugins: Config['plugins'] = [ + assert(), + // apiClient({ + // baseURL: `http://${env.get('HOST')}:${env.get('PORT')}`, + // }), + pluginAdonisJS(app), +]; /* |-------------------------------------------------------------------------- @@ -32,7 +46,10 @@ export const plugins: Required['plugins'] = [assert(), runFailedTests(), | of tests on the terminal. | */ -export const reporters: Required['reporters'] = [specReporter()]; +// export const reporters: Required['reporters'] = [specReporter()]; +export const reporters: Required['reporters'] = { + activated: ['spec'], +}; /* |-------------------------------------------------------------------------- @@ -47,8 +64,19 @@ export const reporters: Required['reporters'] = [specReporter()]; | */ export const runnerHooks: Pick, 'setup' | 'teardown'> = { - setup: [() => TestUtils.ace().loadCommands(), () => TestUtils.db().migrate()], - teardown: [], + setup: [ + () => { + console.log('running before all the tests'); + }, + // () => testUtils.ace().loadCommands(), + () => testUtils.db().migrate(), + // () => testUtils.httpServer().start(), + ], + teardown: [ + () => { + console.log('running after all the tests'); + }, + ], }; /* @@ -64,6 +92,6 @@ export const runnerHooks: Pick, 'setup' | 'teardown'> = { */ export const configureSuite: Required['configureSuite'] = (suite) => { if (suite.name === 'functional') { - suite.setup(() => TestUtils.httpServer().start()); + suite.setup(() => testUtils.httpServer().start()); } }; diff --git a/tests/functional/dataset_controller.spec.ts b/tests/functional/dataset_controller.spec.ts index 71d2cb9..68ea9aa 100644 --- a/tests/functional/dataset_controller.spec.ts +++ b/tests/functional/dataset_controller.spec.ts @@ -1,9 +1,14 @@ import { test } from '@japa/runner'; import supertest from 'supertest'; -import Database from '@ioc:Adonis/Lucid/Database'; -import Dataset from 'App/Models/Dataset'; -import server from '@ioc:Adonis/Core/Server'; // Import the server instance -import User from 'App/Models/User'; +import db from '@adonisjs/lucid/services/db'; +import Dataset from '#models/dataset'; +// import server from '@adonisjs/core/services/server'; // Import the server instance +// import { Server } from '@adonisjs/core/http'; +import User from '#models/user'; +import Role from '#models/role'; +import Permission from '#models/permission'; +import { TestContext } from '@japa/runner/core'; +const BASE_URL = `http://${process.env.HOST}:${process.env.PORT}`; test.group('DatasetController', (group) => { // Write your test here @@ -12,12 +17,15 @@ test.group('DatasetController', (group) => { // }); // In the following example, we start a global transaction before all the tests and roll back it after the tests. group.each.setup(async () => { - await Database.beginGlobalTransaction(); - return () => Database.rollbackGlobalTransaction(); + await db.beginGlobalTransaction(); + return () => db.rollbackGlobalTransaction(); }); + // group.setup(async () => { + // server = await supertest(BASE_URL); + // }); - test('should render dataset release page', async ({ assert }) => { - // var agent = supertest(server.instance); + test('should render dataset release page', async ({ assert }: TestContext) => { + var testAgent = supertest(BASE_URL); // const user = await loginUser(agent); const user = await User.create({ @@ -26,17 +34,30 @@ test.group('DatasetController', (group) => { password: 'password', }); + const role = await Role.create({ + name: 'administrator', + display_name: 'admin', + description: 'User has access to all system functionality', + }); + await user.related('roles').attach([role.id]); + + const permission = await Permission.create({ + name: 'dataset-edit', + display_name: 'edit dataset', + description: 'allow role to edit datasets', + }); + await role.related('permissions').attach([permission.id]); + const dataset = new Dataset(); dataset.type = 'analysisdata'; - dataset.creatingCorporation = 'Tethys RDR'; + dataset.creating_corporation = 'Tethys RDR'; dataset.language = 'de'; dataset.server_state = 'inprogress'; // Set the desired server state here - await dataset.save(); - + // await dataset.save(); await user.related('datasets').save(dataset); // Perform the login request to establish the session - const loginResponse = await supertest(server.instance) + const loginResponse = await testAgent .post('/app/login') // .field('email', user.email) // .field('password', user.password) @@ -46,38 +67,38 @@ test.group('DatasetController', (group) => { .expect(302); // Assuming the login endpoint redirects, if succesful // Extract the session cookies from the login response assert.exists(loginResponse.headers['set-cookie']); - const cookie = loginResponse.headers['set-cookie']; + // const cookie = loginResponse.headers['set-cookie']; - // const response = await supertest(server.instance).get(`/submitter/dataset/${dataset.id}/release`).expect(302); //302 if authenticated, else 200 - const response = await supertest(server.instance) - .get(`/submitter/dataset/${dataset.id}/release`) - .set('Cookie', cookie) - .set('X-Requested-With', 'XMLHttpRequest') // Set the X-Requested-With header to mimic an AJAX request - .set('X-Inertia', 'true') - // .set('X-Inertia-Version', '97c0899ca6e04e77a69f1ad5320e4ebe') - .set('Accept', 'text/html, application/xhtml+xml') - .set('Accept-Encoding', 'gzip, deflate, br') - .set('Connection', 'keep-alive') - .set( - 'User-Agent', - 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', - ) - // .set('Host', 'localhost:4001') - // .set('Referer', 'http://localhost:3333/submitter/dataset') - // .set('Authorization', `Bearer ${authToken}`) // Set the Authorization header with the authentication token . + // // const response = await supertest(server.instance).get(`/submitter/dataset/${dataset.id}/release`).expect(302); //302 if authenticated, else 200 + // const response = await testAgent + // .get(`/submitter/dataset/${dataset.id}/release`) + // .set('Cookie', cookie) + // .set('X-Requested-With', 'XMLHttpRequest') // Set the X-Requested-With header to mimic an AJAX request + // .set('X-Inertia', 'true') + // // .set('X-Inertia-Version', '97c0899ca6e04e77a69f1ad5320e4ebe') + // .set('Accept', 'text/html, application/xhtml+xml') + // .set('Accept-Encoding', 'gzip, deflate, br') + // .set('Connection', 'keep-alive') + // .set( + // 'User-Agent', + // 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', + // ) + // // .set('Host', 'localhost:4001') + // // .set('Referer', 'http://localhost:3333/submitter/dataset') + // // .set('Authorization', `Bearer ${authToken}`) // Set the Authorization header with the authentication token . - .expect(200); + // .expect(200); - // assert.equal(response.statusCode, 302); + // // assert.equal(response.statusCode, 302); - // Add more assertions based on the expected behavior - // assert.equal(response.header('X-Inertia'), 'true'); - // assert.equal(response.header('Content-Type'), 'application/json'); - assert.equal(response.headers['x-inertia'], 'true'); - assert.equal(response.headers['content-type'], 'application/json; charset=utf-8'); + // // Add more assertions based on the expected behavior + // // assert.equal(response.header('X-Inertia'), 'true'); + // // assert.equal(response.header('Content-Type'), 'application/json'); + // assert.equal(response.headers['x-inertia'], 'true'); + // assert.equal(response.headers['content-type'], 'application/json; charset=utf-8'); - const responseData = response.body as { component: string; props: { dataset: any }; url: string }; - // assert.equal(responseData.component, 'DatasetReleasePage'); - assert.equal(responseData.props.dataset.id, dataset.id); + // const responseData = response.body as { component: string; props: { dataset: any }; url: string }; + // // assert.equal(responseData.component, 'DatasetReleasePage'); + // assert.equal(responseData.props.dataset.id, dataset.id); }); }); diff --git a/tests/functional/hello_world.spec.ts b/tests/functional/hello_world.spec.ts index 2fd5c27..2f3721e 100644 --- a/tests/functional/hello_world.spec.ts +++ b/tests/functional/hello_world.spec.ts @@ -1,8 +1,8 @@ -import { test } from '@japa/runner'; +// import { test } from '@japa/runner'; -test('display welcome page', async ({ client }) => { - const response = await client.get('/'); +// test('display welcome page', async ({ client }) => { +// const response = await client.get('/welcome'); - response.assertStatus(200); - response.assertTextIncludes('

It Works!

'); -}); +// response.assertStatus(200); +// response.assertTextIncludes('

It Works!

'); +// }); diff --git a/tests/functional/referenceValidation.spec.ts b/tests/functional/referenceValidation.spec.ts new file mode 100644 index 0000000..17648ab --- /dev/null +++ b/tests/functional/referenceValidation.spec.ts @@ -0,0 +1,215 @@ +import { test } from '@japa/runner'; +import { ReferenceIdentifierTypes } from '#contracts/enums'; +import vine from '@vinejs/vine'; + +// node ace test functional --groups "ReferenceValidation" +test.group('ReferenceValidation', () => { + test('validate valid DOI', async ({ assert }) => { + const validator = vine.compile( + vine.object({ + reference: vine.string().validateReference({ typeField: 'type' }), + type: vine.enum(Object.values(ReferenceIdentifierTypes)), + }), + ); + + const data = { + reference: 'https://doi.org/10.24341/tethys.236', + type: ReferenceIdentifierTypes.DOI, + }; + + try { + const payload = await validator.validate(data); + assert.deepEqual(payload, data); + } catch { + assert.isTrue(false); + } + }); + + test('validate invalid DOI', async ({ assert }) => { + const validator = vine.compile( + vine.object({ + reference: vine.string().validateReference({ typeField: 'type' }), + type: vine.enum(Object.values(ReferenceIdentifierTypes)), + }), + ); + + const data = { + reference: 'https://doi.org/invalid-doi', + type: ReferenceIdentifierTypes.DOI, + }; + + let payload = {}; + try { + payload = await validator.validate(data); + } catch { + assert.notDeepEqual(payload, data); + } + }); + + test('validate valid Handle', async ({ assert }) => { + const validator = vine.compile( + vine.object({ + reference: vine.string().validateReference({ typeField: 'type' }), + type: vine.enum(Object.values(ReferenceIdentifierTypes)), + }), + ); + + const data = { + reference: '20.5000/abc123', + type: ReferenceIdentifierTypes.Handle, + }; + + try { + const payload = await validator.validate(data); + assert.deepEqual(payload, data); + } catch { + assert.isTrue(false); + } + }); + test('validate valid ISBN', async ({ assert }) => { + const validator = vine.compile( + vine.object({ + reference: vine.string().validateReference({ typeField: 'type' }), + type: vine.enum(Object.values(ReferenceIdentifierTypes)), + }), + ); + + const data = { + // reference: '978-3-85316-090-9', + // reference: '9783853160909', + // reference: '978-3-900312-64-0', // Geologische Karte der Republik Österreich 1 : 50.000 + reference: '3-90031-264-8', // Geologische Karte der Republik Österreich 1 : 50.000 + type: ReferenceIdentifierTypes.ISBN, + }; + + try { + const payload = await validator.validate(data); + assert.deepEqual(payload, data); + } catch { + assert.isTrue(false); + } + }); + + test('validate invalid ISBN', async ({ assert }) => { + const validator = vine.compile( + vine.object({ + reference: vine.string().validateReference({ typeField: 'type' }), + type: vine.enum(Object.values(ReferenceIdentifierTypes)), + }), + ); + + const data = { + reference: 'invalid-isbn', + type: ReferenceIdentifierTypes.ISBN, + }; + + let payload = {}; + try { + payload = await validator.validate(data); + } catch { + assert.notDeepEqual(payload, data); + } + }); + + test('validate valid URN', async ({ assert }) => { + const validator = vine.compile( + vine.object({ + reference: vine.string().validateReference({ typeField: 'type' }), + type: vine.enum(Object.values(ReferenceIdentifierTypes)), + }), + ); + + const data = { + reference: 'urn:isbn:0451450523', + type: ReferenceIdentifierTypes.URN, + }; + + try { + const payload = await validator.validate(data); + assert.deepEqual(payload, data); + } catch { + assert.isTrue(false); + } + }); + + test('validate invalid URN', async ({ assert }) => { + const validator = vine.compile( + vine.object({ + reference: vine.string().validateReference({ typeField: 'type' }), + type: vine.enum(Object.values(ReferenceIdentifierTypes)), + }), + ); + + const data = { + reference: 'invalid-urn', + type: ReferenceIdentifierTypes.URN, + }; + + let payload = {}; + try { + payload = await validator.validate(data); + } catch { + assert.notDeepEqual(payload, data); + } + }); + + test('validate valid ISSN', async ({ assert }) => { + const validator = vine.compile( + vine.object({ + reference: vine.string().validateReference({ typeField: 'type' }), + type: vine.enum(Object.values(ReferenceIdentifierTypes)), + }), + ); + + const data = { + reference: '1234-567X', + type: ReferenceIdentifierTypes.ISSN, + }; + + try { + const payload = await validator.validate(data); + assert.deepEqual(payload, data); + } catch { + assert.isTrue(false); + } + }); + + test('validate invalid ISSN', async ({ assert }) => { + const validator = vine.compile( + vine.object({ + reference: vine.string().validateReference({ typeField: 'type' }), + type: vine.enum(Object.values(ReferenceIdentifierTypes)), + }), + ); + + const data = { + reference: 'invalid-issn', + type: ReferenceIdentifierTypes.ISSN, + }; + + let payload = {}; + try { + payload = await validator.validate(data); + } catch { + assert.notDeepEqual(payload, data); + } + }); + // test('validate invalid Handle', async ({ assert }) => { + // const validator = vine.compile( + // vine.object({ + // reference: vine.string().validateReference({ typeField: 'type' }), + // type: vine.enum(Object.values(ReferenceIdentifierTypes)), + // }) + // ); + + // const data = { + // reference: 'invalid-handle', + // type: ReferenceIdentifierTypes.Handle, + // }; + + // const result = await validator.validate(data); + // assert.isFalse(result.valid); + // }); + + // Add more tests for other reference types as needed +}); diff --git a/tsconfig.json b/tsconfig.json index b4c3e52..7def8a0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,67 +1,82 @@ -{ - "extends": "adonis-preset-ts/tsconfig.json", +{ + "extends": "@adonisjs/tsconfig/tsconfig.app.json", "include": [ - // "**/*", "**/*", - // "./resources/js/**/*" - // "./resources/js/**/*.vue", - // "./resources/js/**/*.ts", - // "./resources/js/**/*.vue", + // "resources/**/*.ts", + // "resources/**/*.d.ts", + // "resources/**/*.vue" ], "exclude": [ "node_modules", "build", - "public" - // "src/**/js/*.js" + "public", + "./resources/js/**/*", + // "./resources/js/**/*.ts" ], + // "exclude": ["./inertia/**/*"] "compilerOptions": { "allowJs": true, "outDir": "build", "rootDir": "./", "sourceMap": true, - // "moduleResolution": "node", //neu - "experimentalDecorators": true, //neu - "strictPropertyInitialization": false, //neu - // Target latest language version 'esnext' of ECMAScript or minimal 'es6'. - "target": "esnext", //neu - //what module code is generated - // "module": "NodeNext", //neu - "skipLibCheck": true, //neu - "esModuleInterop": true, //neu - "allowSyntheticDefaultImports": true, //neu, + "sourceRoot": "./build", + "experimentalDecorators": true, + "strictPropertyInitialization": false, + "target": "esnext", // Update to a version that supports top-level await + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, "paths": { - "App/*": [ - "./app/*" + // "@/*": ["./resources/js/*.js"], + // "#resources/*": [ + // "./resources/js/*.js" + // ], + "#controllers/*": [ + "./app/controllers/*.js" ], - "Config/*": [ - "./config/*" + "#exceptions/*": [ + "./app/exceptions/*.js" ], - "Contracts/*": [ - "./contracts/*" + "#models/*": [ + "./app/models/*.js" ], - "Database/*": [ - "./database/*" + "#services/*": [ + "./app/services/*.js" ], - // "@/*": ["./resources/js/"], - "@/*": [ - "./resources/js/*" + "#listeners/*": [ + "./app/listeners/*.js" + ], + "#events/*": [ + "./app/events/*.js" + ], + "#middleware/*": [ + "./app/middleware/*.js" + ], + "#validators/*": [ + "./app/validators/*.js" + ], + + "#start/*": [ + "./start/*.js" + ], + "#config/*": [ + "./config/*.js" + ], + "#app/*": [ + "./app/*.js" + ], + "#database/*": [ + "./database/*.js" + ], + "#contracts/*": [ + "./contracts/*.js" ] - // "vue$": ["vue/dist/vue.runtime.esm-bundler.js"], }, "types": [ - "@adonisjs/core", - "@adonisjs/repl", - "@adonisjs/session", - "@adonisjs/view", - "@adonisjs/shield", - "@japa/preset-adonis/build/adonis-typings", - "@eidellev/inertia-adonisjs", - "naive-ui/volar", - "@adonisjs/lucid", - "@adonisjs/auth" + // "@eidellev/inertia-adonisjs", + // "naive-ui/volar" ] }, - "files": [ - "index.d.ts" - ] -} + + "files": ["./index.d.ts"] +} \ No newline at end of file diff --git a/tsconfig.vue.json b/tsconfig.vue.json deleted file mode 100644 index 4d40140..0000000 --- a/tsconfig.vue.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - // tsconfig.vue.json - "extends": "@vue/tsconfig/tsconfig.json", - "include": ["./resources/js/**/*"], - - "compilerOptions": { - // "module": "commonjs", //for tehys.api...alos nodenext - // Process & infer types from .js files. - "allowJs": true, - //javascript language version: Target latest version 'esnext' of ECMAScript or minimal 'es6'. - "target": "ESNext", //neu - // //what module code is generated - "module": "ESNext", //neu - "experimentalDecorators": true, //neu - "strictPropertyInitialization": false //neu - }, - "paths": { - "App/*": ["./app/*"], // for App/modles/User - "@/*": ["./resources/js/*"] - }, - "files": ["./index.d.ts"] -} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..24889bb --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,78 @@ +import { defineConfig } from 'vite'; +import adonisjs from '@adonisjs/vite/client'; +// import { getDirname } from '@adonisjs/core/helpers'; +import vue from '@vitejs/plugin-vue'; +import path from 'path'; +// import tailwind from '@tailwindcss/postcss'; +// import autoprefixer from 'autoprefixer'; +// import postcssNesting from 'postcss-nesting'; +import inertia from '@adonisjs/inertia/client'; + +export default defineConfig({ + plugins: [ + inertia(), + vue(), + adonisjs({ + /** + * Entrypoints of your application. Each entrypoint will + * result in a separate bundle. + */ + entrypoints: ['resources/js/app.ts', 'resources/css/app.css'], + + /** + * Paths to watch and reload the browser on file change + */ + reload: ['resources/views/**/*.edge'], + }), + ], + server: { + port: 5173, + // host: '127.0.0.1' + }, + + // css: { + // postcss: { + // plugins: [ + // postcssNesting(), + // tailwind(), + // autoprefixer(), + // ], + // }, + // }, + /** + * Define aliases for importing modules from + * your frontend code + */ + resolve: { + alias: { + '@': path.resolve('./resources/js/'), + '~': path.resolve(__dirname, 'node_modules/'), + }, + }, + + // optimizeDeps: { + // esbuildOptions: { + // target: 'esnext' + // }, + // include: ['resources/js/**/*.{vue,js,jsx,ts,tsx}'], + // exclude: ['node_modules', 'app'], + // }, + + build: { + sourcemap: true, + outDir: 'public/assets', + emptyOutDir: true, + manifest: true, + rollupOptions: { + input: 'resources/js/app.ts', + }, + }, + // build: { + // outDir: 'public/assets', + // emptyOutDir: true, + // manifest: true, + // rollupOptions: { + // input: path.resolve(__dirname, 'resources/js/app.ts'), + // }, + // }, +}); diff --git a/webpack.config.js b/webpack.config.cjs similarity index 92% rename from webpack.config.js rename to webpack.config.cjs index f9d63db..83ed320 100644 --- a/webpack.config.js +++ b/webpack.config.cjs @@ -1,6 +1,17 @@ const { join, resolve, dirname } = require('path'); const Encore = require('@symfony/webpack-encore'); const { VueLoaderPlugin } = require('vue-loader'); +const dotenv = require('dotenv-webpack'); + +// Load the environment variables from the.env file +Encore.addPlugin( + new dotenv({ + path: ".env", + defaults: ".env", + systemvars: true, + allowEmptyValues: true, + }) + ) const babelLoader = { // test: /\.js$/, @@ -47,7 +58,7 @@ const babelLoader = { |-------------------------------------------------------------------------- */ if (!Encore.isRuntimeEnvironmentConfigured()) { - Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev'); + Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'development'); } /* @@ -85,7 +96,8 @@ Encore.setPublicPath('/assets'); | entrypoints. | */ -Encore.addEntry('app', './resources/js/app.js'); +Encore.addEntry('app', './resources/js/app.ts'); + /* |-------------------------------------------------------------------------- @@ -210,6 +222,13 @@ Encore.configureDevServerOptions((options) => { | */ Encore.enablePostCssLoader(); +// Pass options +// Encore.enablePostCssLoader((options) => { +// options.postcssOptions = { +// config: resolve(__dirname, 'custom.config.js') +// } +// }) + // Encore.configureCssLoader(() => {}) /* @@ -283,18 +302,18 @@ Encore.addLoader({ // vue$: 'vue/dist/vue.runtime.esm-bundler.js', // }); -Encore.addLoader(babelLoader) - // Encore.enableTypeScriptLoader(config => { - // // Loader-specific options - // config.configFile = 'tsconfig.vue.json'; - // config.appendTsSuffixTo = [/\.vue$/]; - // config.transpileOnly = true; - // config.happyPackMode = false; - // }, { - // // Directly change the exclude rule - // exclude: /node_modules/, +// Encore.addLoader(babelLoader) + Encore.enableTypeScriptLoader(config => { + // Loader-specific options + config.configFile = 'resources/js/tsconfig.json'; + config.appendTsSuffixTo = [/\.vue$/]; + config.transpileOnly = true; + config.happyPackMode = false; + }, { + // Directly change the exclude rule + exclude: /node_modules/, - // }) + }) .addAliases({ '@': join(__dirname, 'resources/js'), 'vue$': 'vue/dist/vue.runtime.esm-bundler.js', @@ -302,6 +321,7 @@ Encore.addLoader(babelLoader) .configureDefinePlugin((options) => { options['__VUE_OPTIONS_API__'] = true; options['__VUE_PROD_DEVTOOLS__'] = false; + options['__VUE_PROD_HYDRATION_MISMATCH_DETAILS__'] = false; }); // Encore.addAliases({