Merge branch 'master' into budi-8909-builder-crashes-when-incomplete-filters-are-saved
This commit is contained in:
commit
397fd9ada4
|
@ -1,13 +0,0 @@
|
||||||
node_modules
|
|
||||||
public
|
|
||||||
dist
|
|
||||||
packages/server/builder
|
|
||||||
packages/server/coverage
|
|
||||||
packages/worker/coverage
|
|
||||||
packages/backend-core/coverage
|
|
||||||
packages/server/client
|
|
||||||
packages/server/coverage
|
|
||||||
packages/builder/.routify
|
|
||||||
packages/sdk/sdk
|
|
||||||
**/*.ivm.bundle.js
|
|
||||||
packages/server/build/oldClientVersions/**/**
|
|
129
.eslintrc.json
129
.eslintrc.json
|
@ -1,129 +0,0 @@
|
||||||
{
|
|
||||||
"root": true,
|
|
||||||
"env": {
|
|
||||||
"browser": true,
|
|
||||||
"es6": true,
|
|
||||||
"jest": true,
|
|
||||||
"node": true
|
|
||||||
},
|
|
||||||
"parser": "@babel/eslint-parser",
|
|
||||||
"parserOptions": {
|
|
||||||
"ecmaVersion": 2019,
|
|
||||||
"sourceType": "module",
|
|
||||||
"allowImportExportEverywhere": true
|
|
||||||
},
|
|
||||||
"ignorePatterns": [
|
|
||||||
"node_modules",
|
|
||||||
"dist",
|
|
||||||
"public",
|
|
||||||
"*.spec.js",
|
|
||||||
"bundle.js"
|
|
||||||
],
|
|
||||||
"extends": ["eslint:recommended"],
|
|
||||||
"plugins": ["import", "eslint-plugin-local-rules"],
|
|
||||||
"overrides": [
|
|
||||||
{
|
|
||||||
"files": ["**/*.svelte"],
|
|
||||||
"extends": "plugin:svelte/recommended",
|
|
||||||
"parser": "svelte-eslint-parser",
|
|
||||||
"parserOptions": {
|
|
||||||
"parser": "@typescript-eslint/parser",
|
|
||||||
"ecmaVersion": 2019,
|
|
||||||
"allowImportExportEverywhere": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"files": ["**/*.ts"],
|
|
||||||
"parser": "@typescript-eslint/parser",
|
|
||||||
"plugins": ["@typescript-eslint"],
|
|
||||||
"extends": ["eslint:recommended"],
|
|
||||||
"globals": {
|
|
||||||
"NodeJS": true
|
|
||||||
},
|
|
||||||
"rules": {
|
|
||||||
"no-unused-vars": "off",
|
|
||||||
"local-rules/no-barrel-imports": "error",
|
|
||||||
"local-rules/no-budibase-imports": "error",
|
|
||||||
"local-rules/no-console-error": "error",
|
|
||||||
"@typescript-eslint/no-unused-vars": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
"varsIgnorePattern": "^_",
|
|
||||||
"argsIgnorePattern": "^_",
|
|
||||||
"destructuredArrayIgnorePattern": "^_",
|
|
||||||
"ignoreRestSiblings": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"no-redeclare": "off",
|
|
||||||
"@typescript-eslint/no-redeclare": "error",
|
|
||||||
// have to turn this off to allow function overloading in typescript
|
|
||||||
"no-dupe-class-members": "off"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"files": ["**/*.spec.ts"],
|
|
||||||
"parser": "@typescript-eslint/parser",
|
|
||||||
"plugins": ["jest", "@typescript-eslint"],
|
|
||||||
"extends": ["eslint:recommended", "plugin:jest/recommended"],
|
|
||||||
"env": {
|
|
||||||
"jest/globals": true
|
|
||||||
},
|
|
||||||
"globals": {
|
|
||||||
"NodeJS": true
|
|
||||||
},
|
|
||||||
"rules": {
|
|
||||||
"no-unused-vars": "off",
|
|
||||||
"@typescript-eslint/no-unused-vars": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
"varsIgnorePattern": "^_",
|
|
||||||
"argsIgnorePattern": "^_",
|
|
||||||
"destructuredArrayIgnorePattern": "^_",
|
|
||||||
"ignoreRestSiblings": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"local-rules/no-test-com": "error",
|
|
||||||
"local-rules/email-domain-example-com": "error",
|
|
||||||
"no-console": "warn",
|
|
||||||
// We have a lot of tests that don't have assertions, they use our test
|
|
||||||
// API client that does the assertions for them
|
|
||||||
"jest/expect-expect": "off",
|
|
||||||
// We do this in some tests where the behaviour of internal tables
|
|
||||||
// differs to external, but the API is broadly the same
|
|
||||||
"jest/no-conditional-expect": "off",
|
|
||||||
// have to turn this off to allow function overloading in typescript
|
|
||||||
"no-dupe-class-members": "off",
|
|
||||||
"no-redeclare": "off"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"files": [
|
|
||||||
"packages/builder/**/*",
|
|
||||||
"packages/client/**/*",
|
|
||||||
"packages/frontend-core/**/*"
|
|
||||||
],
|
|
||||||
"rules": {
|
|
||||||
"no-console": ["error", { "allow": ["warn", "error", "debug"] }]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"rules": {
|
|
||||||
"no-self-assign": "off",
|
|
||||||
"no-unused-vars": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
"varsIgnorePattern": "^_",
|
|
||||||
"argsIgnorePattern": "^_",
|
|
||||||
"destructuredArrayIgnorePattern": "^_",
|
|
||||||
"ignoreRestSiblings": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"import/no-relative-packages": "error",
|
|
||||||
"import/export": "error",
|
|
||||||
"import/no-duplicates": "error",
|
|
||||||
"import/newline-after-import": "error"
|
|
||||||
},
|
|
||||||
"globals": {
|
|
||||||
"GeolocationPositionError": true
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,197 @@
|
||||||
|
import globals from "globals"
|
||||||
|
import babelParser from "@babel/eslint-parser"
|
||||||
|
import svelteParser from "svelte-eslint-parser"
|
||||||
|
import tsParser from "@typescript-eslint/parser"
|
||||||
|
|
||||||
|
import eslintPluginJest from "eslint-plugin-jest"
|
||||||
|
import eslintPluginSvelte from "eslint-plugin-svelte"
|
||||||
|
import eslintPluginLocalRules from "eslint-plugin-local-rules"
|
||||||
|
import eslintPluginVitest from "@vitest/eslint-plugin"
|
||||||
|
|
||||||
|
import eslint from "@eslint/js"
|
||||||
|
import tseslint from "typescript-eslint"
|
||||||
|
|
||||||
|
export default [
|
||||||
|
eslint.configs.recommended,
|
||||||
|
{
|
||||||
|
ignores: [
|
||||||
|
"**/node_modules",
|
||||||
|
"**/dist",
|
||||||
|
"**/public",
|
||||||
|
"**/bundle.js",
|
||||||
|
"**/coverage",
|
||||||
|
"packages/server/builder",
|
||||||
|
"packages/server/client",
|
||||||
|
"packages/builder/.routify",
|
||||||
|
"packages/sdk/sdk",
|
||||||
|
"**/*.ivm.bundle.js",
|
||||||
|
"packages/server/build/oldClientVersions/**/**/*",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
plugins: {
|
||||||
|
"local-rules": eslintPluginLocalRules,
|
||||||
|
},
|
||||||
|
|
||||||
|
languageOptions: {
|
||||||
|
globals: {
|
||||||
|
...globals.browser,
|
||||||
|
...globals.jest,
|
||||||
|
...globals.node,
|
||||||
|
GeolocationPositionError: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
parser: babelParser,
|
||||||
|
ecmaVersion: 2019,
|
||||||
|
sourceType: "module",
|
||||||
|
|
||||||
|
parserOptions: {
|
||||||
|
allowImportExportEverywhere: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
rules: {
|
||||||
|
"no-self-compare": "error",
|
||||||
|
"no-template-curly-in-string": "error",
|
||||||
|
"no-unmodified-loop-condition": "error",
|
||||||
|
"no-unreachable-loop": "error",
|
||||||
|
"no-implied-eval": "error",
|
||||||
|
"no-extend-native": "error",
|
||||||
|
"no-labels": "error",
|
||||||
|
"no-lone-blocks": "error",
|
||||||
|
"no-new-wrappers": "error",
|
||||||
|
"no-octal-escape": "error",
|
||||||
|
"no-return-assign": "error",
|
||||||
|
"no-useless-concat": "error",
|
||||||
|
"no-useless-constructor": "error",
|
||||||
|
"no-useless-rename": "error",
|
||||||
|
"no-var": "error",
|
||||||
|
"no-void": "error",
|
||||||
|
|
||||||
|
"no-unused-vars": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
varsIgnorePattern: "^_",
|
||||||
|
argsIgnorePattern: "^_",
|
||||||
|
destructuredArrayIgnorePattern: "^_",
|
||||||
|
ignoreRestSiblings: true,
|
||||||
|
caughtErrors: "none",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
...eslintPluginSvelte.configs["flat/recommended"].map(config => ({
|
||||||
|
...config,
|
||||||
|
files: ["**/*.svelte"],
|
||||||
|
|
||||||
|
languageOptions: {
|
||||||
|
parser: svelteParser,
|
||||||
|
ecmaVersion: 2019,
|
||||||
|
sourceType: "script",
|
||||||
|
|
||||||
|
parserOptions: {
|
||||||
|
parser: "@typescript-eslint/parser",
|
||||||
|
allowImportExportEverywhere: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})),
|
||||||
|
...tseslint.configs.strict.map(config => ({
|
||||||
|
...config,
|
||||||
|
files: ["**/*.ts"],
|
||||||
|
|
||||||
|
languageOptions: {
|
||||||
|
globals: {
|
||||||
|
NodeJS: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
parser: tsParser,
|
||||||
|
},
|
||||||
|
|
||||||
|
rules: {
|
||||||
|
"local-rules/no-barrel-imports": "error",
|
||||||
|
"local-rules/no-budibase-imports": "error",
|
||||||
|
"local-rules/no-console-error": "error",
|
||||||
|
|
||||||
|
"@typescript-eslint/no-inferrable-types": "error",
|
||||||
|
"@typescript-eslint/adjacent-overload-signatures": "error",
|
||||||
|
"@typescript-eslint/class-literal-property-style": "error",
|
||||||
|
"@typescript-eslint/no-confusing-non-null-assertion": "error",
|
||||||
|
"@typescript-eslint/no-unnecessary-parameter-property-assignment":
|
||||||
|
"error",
|
||||||
|
"@typescript-eslint/no-useless-empty-export": "error",
|
||||||
|
|
||||||
|
"no-unused-vars": "off",
|
||||||
|
"@typescript-eslint/no-unused-vars": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
varsIgnorePattern: "^_",
|
||||||
|
argsIgnorePattern: "^_",
|
||||||
|
destructuredArrayIgnorePattern: "^_",
|
||||||
|
ignoreRestSiblings: true,
|
||||||
|
caughtErrors: "none",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
"no-redeclare": "off",
|
||||||
|
"@typescript-eslint/no-redeclare": "error",
|
||||||
|
|
||||||
|
// @typescript-eslint/no-dupe-class-members supersedes no-dupe-class-members
|
||||||
|
"no-dupe-class-members": "off",
|
||||||
|
"@typescript-eslint/no-dupe-class-members": "error",
|
||||||
|
|
||||||
|
"no-useless-constructor": "off",
|
||||||
|
"@typescript-eslint/no-useless-constructor": "error",
|
||||||
|
},
|
||||||
|
})),
|
||||||
|
{
|
||||||
|
files: ["**/*.spec.ts", "**/*.spec.js"],
|
||||||
|
|
||||||
|
plugins: {
|
||||||
|
jest: eslintPluginJest,
|
||||||
|
vitest: eslintPluginVitest,
|
||||||
|
},
|
||||||
|
|
||||||
|
languageOptions: {
|
||||||
|
globals: {
|
||||||
|
...eslintPluginJest.environments.globals.globals,
|
||||||
|
...eslintPluginVitest.environments.env.globals,
|
||||||
|
NodeJS: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
parser: tsParser,
|
||||||
|
},
|
||||||
|
|
||||||
|
rules: {
|
||||||
|
...eslintPluginVitest.configs.recommended.rules,
|
||||||
|
...eslintPluginJest.configs.recommended.rules,
|
||||||
|
|
||||||
|
"no-console": "warn",
|
||||||
|
|
||||||
|
"vitest/expect-expect": "off",
|
||||||
|
|
||||||
|
"jest/expect-expect": "off",
|
||||||
|
"jest/no-conditional-expect": "off",
|
||||||
|
"jest/no-disabled-tests": "off",
|
||||||
|
"jest/no-standalone-expect": "off",
|
||||||
|
|
||||||
|
"local-rules/no-test-com": "error",
|
||||||
|
"local-rules/email-domain-example-com": "error",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
files: [
|
||||||
|
"packages/builder/**/*",
|
||||||
|
"packages/client/**/*",
|
||||||
|
"packages/frontend-core/**/*",
|
||||||
|
],
|
||||||
|
|
||||||
|
rules: {
|
||||||
|
"no-console": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
allow: ["warn", "error", "debug"],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
const os = require("os")
|
const os = require("os")
|
||||||
const exec = require("child_process").exec
|
const exec = require("child_process").exec
|
||||||
const fs = require("fs")
|
|
||||||
const platform = os.platform()
|
const platform = os.platform()
|
||||||
|
|
||||||
const windows = platform === "win32"
|
const windows = platform === "win32"
|
||||||
|
@ -17,10 +16,11 @@ function execute(command) {
|
||||||
|
|
||||||
async function commandExistsUnix(command) {
|
async function commandExistsUnix(command) {
|
||||||
const unixCmd = `command -v ${command} 2>/dev/null && { echo >&1 ${command}; exit 0; }`
|
const unixCmd = `command -v ${command} 2>/dev/null && { echo >&1 ${command}; exit 0; }`
|
||||||
return execute(command)
|
return execute(unixCmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
async function commandExistsWindows(command) {
|
async function commandExistsWindows(command) {
|
||||||
|
// eslint-disable-next-line no-control-regex
|
||||||
if (/[\x00-\x1f<>:"|?*]/.test(command)) {
|
if (/[\x00-\x1f<>:"|?*]/.test(command)) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
21
package.json
21
package.json
|
@ -3,21 +3,21 @@
|
||||||
"private": true,
|
"private": true,
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.22.5",
|
"@babel/core": "^7.22.5",
|
||||||
"@babel/eslint-parser": "^7.22.5",
|
"@babel/eslint-parser": "7.25.9",
|
||||||
"@babel/preset-env": "^7.22.5",
|
"@babel/preset-env": "^7.22.5",
|
||||||
"@esbuild-plugins/tsconfig-paths": "^0.1.2",
|
"@esbuild-plugins/tsconfig-paths": "^0.1.2",
|
||||||
"@types/node": "20.10.0",
|
"@types/node": "20.10.0",
|
||||||
"@types/proper-lockfile": "^4.1.4",
|
"@types/proper-lockfile": "^4.1.4",
|
||||||
"@typescript-eslint/parser": "6.9.0",
|
"@typescript-eslint/parser": "8.17.0",
|
||||||
|
"@vitest/eslint-plugin": "^1.1.14",
|
||||||
"cross-spawn": "7.0.6",
|
"cross-spawn": "7.0.6",
|
||||||
"depcheck": "^1.4.7",
|
"depcheck": "^1.4.7",
|
||||||
"esbuild": "^0.18.17",
|
"esbuild": "^0.18.17",
|
||||||
"esbuild-node-externals": "^1.14.0",
|
"esbuild-node-externals": "^1.14.0",
|
||||||
"eslint": "^8.52.0",
|
"eslint": "9.16.0",
|
||||||
"eslint-plugin-import": "^2.29.0",
|
"eslint-plugin-jest": "28.9.0",
|
||||||
"eslint-plugin-jest": "^27.9.0",
|
"eslint-plugin-local-rules": "3.0.2",
|
||||||
"eslint-plugin-local-rules": "^2.0.0",
|
"eslint-plugin-svelte": "2.46.1",
|
||||||
"eslint-plugin-svelte": "^2.34.0",
|
|
||||||
"husky": "^8.0.3",
|
"husky": "^8.0.3",
|
||||||
"kill-port": "^1.6.1",
|
"kill-port": "^1.6.1",
|
||||||
"lerna": "7.4.2",
|
"lerna": "7.4.2",
|
||||||
|
@ -27,9 +27,9 @@
|
||||||
"prettier-plugin-svelte": "^2.3.0",
|
"prettier-plugin-svelte": "^2.3.0",
|
||||||
"proper-lockfile": "^4.1.2",
|
"proper-lockfile": "^4.1.2",
|
||||||
"svelte": "4.2.19",
|
"svelte": "4.2.19",
|
||||||
"svelte-eslint-parser": "^0.33.1",
|
"svelte-eslint-parser": "0.43.0",
|
||||||
"typescript": "5.7.2",
|
"typescript": "5.7.2",
|
||||||
"typescript-eslint": "^7.3.1",
|
"typescript-eslint": "8.17.0",
|
||||||
"yargs": "^17.7.2"
|
"yargs": "^17.7.2"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
@ -115,7 +115,8 @@
|
||||||
"passport": "0.6.0",
|
"passport": "0.6.0",
|
||||||
"fast-xml-parser": "4.4.1",
|
"fast-xml-parser": "4.4.1",
|
||||||
"@azure/identity": "4.2.1",
|
"@azure/identity": "4.2.1",
|
||||||
"kind-of": "6.0.3"
|
"kind-of": "6.0.3",
|
||||||
|
"globals": "15.13.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=20.0.0 <21.0.0"
|
"node": ">=20.0.0 <21.0.0"
|
||||||
|
|
|
@ -289,7 +289,7 @@ export class DatabaseImpl implements Database {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
let errorFound = false
|
let errorFound = false
|
||||||
let errorMessage: string = "Unable to bulk remove documents: "
|
let errorMessage = "Unable to bulk remove documents: "
|
||||||
for (let res of response) {
|
for (let res of response) {
|
||||||
if (res.error) {
|
if (res.error) {
|
||||||
errorFound = true
|
errorFound = true
|
||||||
|
|
|
@ -4,7 +4,7 @@ import { checkSlashesInUrl } from "../../helpers"
|
||||||
|
|
||||||
export async function directCouchCall(
|
export async function directCouchCall(
|
||||||
path: string,
|
path: string,
|
||||||
method: string = "GET",
|
method = "GET",
|
||||||
body?: any
|
body?: any
|
||||||
) {
|
) {
|
||||||
let { url, cookie } = getCouchInfo()
|
let { url, cookie } = getCouchInfo()
|
||||||
|
@ -43,7 +43,7 @@ export async function directCouchUrlCall({
|
||||||
|
|
||||||
export async function directCouchQuery(
|
export async function directCouchQuery(
|
||||||
path: string,
|
path: string,
|
||||||
method: string = "GET",
|
method = "GET",
|
||||||
body?: any
|
body?: any
|
||||||
) {
|
) {
|
||||||
const response = await directCouchCall(path, method, body)
|
const response = await directCouchCall(path, method, body)
|
||||||
|
|
|
@ -279,7 +279,7 @@ export class QueryBuilder<T> {
|
||||||
let query = allOr ? "" : "*:*"
|
let query = allOr ? "" : "*:*"
|
||||||
let allFiltersEmpty = true
|
let allFiltersEmpty = true
|
||||||
const allPreProcessingOpts = { escape: true, lowercase: true, wrap: true }
|
const allPreProcessingOpts = { escape: true, lowercase: true, wrap: true }
|
||||||
let tableId: string = ""
|
let tableId = ""
|
||||||
if (this.#query.equal!.tableId) {
|
if (this.#query.equal!.tableId) {
|
||||||
tableId = this.#query.equal!.tableId
|
tableId = this.#query.equal!.tableId
|
||||||
delete this.#query.equal!.tableId
|
delete this.#query.equal!.tableId
|
||||||
|
|
|
@ -2,7 +2,7 @@ import { Event, Identity, Group } from "@budibase/types"
|
||||||
import { EventProcessor } from "./types"
|
import { EventProcessor } from "./types"
|
||||||
|
|
||||||
export default class Processor implements EventProcessor {
|
export default class Processor implements EventProcessor {
|
||||||
initialised: boolean = false
|
initialised = false
|
||||||
processors: EventProcessor[] = []
|
processors: EventProcessor[] = []
|
||||||
|
|
||||||
constructor(processors: EventProcessor[]) {
|
constructor(processors: EventProcessor[]) {
|
||||||
|
|
|
@ -12,8 +12,6 @@ import {
|
||||||
QueriesRunEvent,
|
QueriesRunEvent,
|
||||||
} from "@budibase/types"
|
} from "@budibase/types"
|
||||||
|
|
||||||
/* eslint-disable */
|
|
||||||
|
|
||||||
const created = async (
|
const created = async (
|
||||||
datasource: Datasource,
|
datasource: Datasource,
|
||||||
query: Query,
|
query: Query,
|
||||||
|
|
|
@ -6,8 +6,6 @@ import {
|
||||||
Table,
|
Table,
|
||||||
} from "@budibase/types"
|
} from "@budibase/types"
|
||||||
|
|
||||||
/* eslint-disable */
|
|
||||||
|
|
||||||
const created = async (count: number, timestamp?: string | number) => {
|
const created = async (count: number, timestamp?: string | number) => {
|
||||||
const properties: RowsCreatedEvent = {
|
const properties: RowsCreatedEvent = {
|
||||||
count,
|
count,
|
||||||
|
|
|
@ -20,8 +20,6 @@ import {
|
||||||
ViewJoinCreatedEvent,
|
ViewJoinCreatedEvent,
|
||||||
} from "@budibase/types"
|
} from "@budibase/types"
|
||||||
|
|
||||||
/* eslint-disable */
|
|
||||||
|
|
||||||
async function created(view: ViewV2, timestamp?: string | number) {
|
async function created(view: ViewV2, timestamp?: string | number) {
|
||||||
const properties: ViewCreatedEvent = {
|
const properties: ViewCreatedEvent = {
|
||||||
name: view.name,
|
name: view.name,
|
||||||
|
|
|
@ -137,9 +137,9 @@ export default function (
|
||||||
}
|
}
|
||||||
|
|
||||||
const tenantId = getHeader(ctx, Header.TENANT_ID)
|
const tenantId = getHeader(ctx, Header.TENANT_ID)
|
||||||
let authenticated: boolean = false,
|
let authenticated = false,
|
||||||
user: User | { tenantId: string } | undefined = undefined,
|
user: User | { tenantId: string } | undefined = undefined,
|
||||||
internal: boolean = false,
|
internal = false,
|
||||||
loginMethod: LoginMethod | undefined = undefined
|
loginMethod: LoginMethod | undefined = undefined
|
||||||
if (authCookie && !apiKey) {
|
if (authCookie && !apiKey) {
|
||||||
const sessionId = authCookie.sessionId
|
const sessionId = authCookie.sessionId
|
||||||
|
|
|
@ -20,7 +20,7 @@ export const ssoSaveUserNoOp: SaveSSOUserFunction = (user: SSOUser) =>
|
||||||
*/
|
*/
|
||||||
export async function authenticate(
|
export async function authenticate(
|
||||||
details: SSOAuthDetails,
|
details: SSOAuthDetails,
|
||||||
requireLocalAccount: boolean = true,
|
requireLocalAccount = true,
|
||||||
done: any,
|
done: any,
|
||||||
saveUserFn: SaveSSOUserFunction
|
saveUserFn: SaveSSOUserFunction
|
||||||
) {
|
) {
|
||||||
|
|
|
@ -35,7 +35,7 @@ export const backPopulateMigrations = async (opts: MigrationNoOpOptions) => {
|
||||||
// filter migrations to the type and populate a no-op migration
|
// filter migrations to the type and populate a no-op migration
|
||||||
const migrations: Migration[] = DEFINITIONS.filter(
|
const migrations: Migration[] = DEFINITIONS.filter(
|
||||||
def => def.type === opts.type
|
def => def.type === opts.type
|
||||||
).map(d => ({ ...d, fn: () => {} }))
|
).map(d => ({ ...d, fn: async () => {} }))
|
||||||
await runMigrations(migrations, { noOp: opts })
|
await runMigrations(migrations, { noOp: opts })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -334,7 +334,7 @@ export async function listAllObjects(bucketName: string, path: string) {
|
||||||
export function getPresignedUrl(
|
export function getPresignedUrl(
|
||||||
bucketName: string,
|
bucketName: string,
|
||||||
key: string,
|
key: string,
|
||||||
durationSeconds: number = 3600
|
durationSeconds = 3600
|
||||||
) {
|
) {
|
||||||
const objectStore = ObjectStore(bucketName, { presigning: true })
|
const objectStore = ObjectStore(bucketName, { presigning: true })
|
||||||
const params = {
|
const params = {
|
||||||
|
|
|
@ -92,7 +92,7 @@ function getLockName(opts: LockOptions) {
|
||||||
// determine lock name
|
// determine lock name
|
||||||
// by default use the tenantId for uniqueness, unless using a system lock
|
// by default use the tenantId for uniqueness, unless using a system lock
|
||||||
const prefix = opts.systemLock ? "system" : context.getTenantId()
|
const prefix = opts.systemLock ? "system" : context.getTenantId()
|
||||||
let name: string = `lock:${prefix}_${opts.name}`
|
let name = `lock:${prefix}_${opts.name}`
|
||||||
// add additional unique name if required
|
// add additional unique name if required
|
||||||
if (opts.resource) {
|
if (opts.resource) {
|
||||||
name = name + `_${opts.resource}`
|
name = name + `_${opts.resource}`
|
||||||
|
|
|
@ -11,15 +11,15 @@ const { getCreatorCount } = require("../../../src/users/users")
|
||||||
|
|
||||||
describe("Users", () => {
|
describe("Users", () => {
|
||||||
let getGlobalDBMock
|
let getGlobalDBMock
|
||||||
let getGlobalUserParamsMock
|
|
||||||
let paginationMock
|
let paginationMock
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
jest.resetAllMocks()
|
jest.resetAllMocks()
|
||||||
|
|
||||||
getGlobalDBMock = jest.spyOn(context, "getGlobalDB")
|
getGlobalDBMock = jest.spyOn(context, "getGlobalDB")
|
||||||
getGlobalUserParamsMock = jest.spyOn(db, "getGlobalUserParams")
|
|
||||||
paginationMock = jest.spyOn(db, "pagination")
|
paginationMock = jest.spyOn(db, "pagination")
|
||||||
|
|
||||||
|
jest.spyOn(db, "getGlobalUserParams")
|
||||||
})
|
})
|
||||||
|
|
||||||
it("Retrieves the number of creators", async () => {
|
it("Retrieves the number of creators", async () => {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { MonthlyQuotaName, QuotaUsage } from "@budibase/types"
|
import { MonthlyQuotaName, QuotaUsage } from "@budibase/types"
|
||||||
|
|
||||||
export const usage = (users: number = 0, creators: number = 0): QuotaUsage => {
|
export const usage = (users = 0, creators = 0): QuotaUsage => {
|
||||||
return {
|
return {
|
||||||
_id: "usage_quota",
|
_id: "usage_quota",
|
||||||
quotaReset: new Date().toISOString(),
|
quotaReset: new Date().toISOString(),
|
||||||
|
|
|
@ -85,7 +85,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
const getPos = e => {
|
const getPos = e => {
|
||||||
var rect = canvasRef.getBoundingClientRect()
|
let rect = canvasRef.getBoundingClientRect()
|
||||||
const canvasX = e.offsetX || e.targetTouches?.[0].pageX - rect.left
|
const canvasX = e.offsetX || e.targetTouches?.[0].pageX - rect.left
|
||||||
const canvasY = e.offsetY || e.targetTouches?.[0].pageY - rect.top
|
const canvasY = e.offsetY || e.targetTouches?.[0].pageY - rect.top
|
||||||
|
|
||||||
|
|
|
@ -24,9 +24,9 @@
|
||||||
const j = 32 // Outer radius strength (higher is stronger)
|
const j = 32 // Outer radius strength (higher is stronger)
|
||||||
|
|
||||||
// Calculate unit vector
|
// Calculate unit vector
|
||||||
var dx = x1 - x2
|
let dx = x1 - x2
|
||||||
var dy = y1 - y2
|
let dy = y1 - y2
|
||||||
var len = Math.sqrt(dx * dx + dy * dy)
|
let len = Math.sqrt(dx * dx + dy * dy)
|
||||||
dx = dx / len
|
dx = dx / len
|
||||||
dy = dy / len
|
dy = dy / len
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,6 @@ vi.mock("stores/selectors", () => ({
|
||||||
describe("datasource creation store", () => {
|
describe("datasource creation store", () => {
|
||||||
beforeEach(ctx => {
|
beforeEach(ctx => {
|
||||||
vi.clearAllMocks()
|
vi.clearAllMocks()
|
||||||
// eslint-disable-next-line no-import-assign
|
|
||||||
ctx.store = createDatasourceCreationStore()
|
ctx.store = createDatasourceCreationStore()
|
||||||
|
|
||||||
ctx.integration = { data: "integration" }
|
ctx.integration = { data: "integration" }
|
||||||
|
|
|
@ -30,7 +30,7 @@ const FullScreenControl = L.Control.extend({
|
||||||
fullScreenTitle: "Enter Fullscreen",
|
fullScreenTitle: "Enter Fullscreen",
|
||||||
},
|
},
|
||||||
onAdd: function () {
|
onAdd: function () {
|
||||||
var fullScreenClassName = "leaflet-control-fullscreen",
|
let fullScreenClassName = "leaflet-control-fullscreen",
|
||||||
container = L.DomUtil.create("div", fullScreenClassName + " leaflet-bar"),
|
container = L.DomUtil.create("div", fullScreenClassName + " leaflet-bar"),
|
||||||
options = this.options
|
options = this.options
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ const FullScreenControl = L.Control.extend({
|
||||||
return container
|
return container
|
||||||
},
|
},
|
||||||
_fullScreen: function () {
|
_fullScreen: function () {
|
||||||
var map = this._map
|
let map = this._map
|
||||||
if (screenfull.isEnabled) {
|
if (screenfull.isEnabled) {
|
||||||
screenfull.toggle(map.getContainer())
|
screenfull.toggle(map.getContainer())
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,7 @@ const LocationControl = L.Control.extend({
|
||||||
locationTitle: "Show Your Location",
|
locationTitle: "Show Your Location",
|
||||||
},
|
},
|
||||||
onAdd: function () {
|
onAdd: function () {
|
||||||
var locationClassName = "leaflet-control-location",
|
let locationClassName = "leaflet-control-location",
|
||||||
container = L.DomUtil.create("div", locationClassName + " leaflet-bar"),
|
container = L.DomUtil.create("div", locationClassName + " leaflet-bar"),
|
||||||
options = this.options
|
options = this.options
|
||||||
|
|
||||||
|
@ -136,7 +136,7 @@ const LocationControl = L.Control.extend({
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
_getPosition: function () {
|
_getPosition: function () {
|
||||||
var options = {
|
let options = {
|
||||||
enableHighAccuracy: false,
|
enableHighAccuracy: false,
|
||||||
timeout: 5000,
|
timeout: 5000,
|
||||||
maximumAge: 30000,
|
maximumAge: 30000,
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
/* eslint-disable no-useless-concat */
|
||||||
import { derived } from "svelte/store"
|
import { derived } from "svelte/store"
|
||||||
import { appStore } from "./app"
|
import { appStore } from "./app"
|
||||||
import { builderStore } from "./builder"
|
import { builderStore } from "./builder"
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
|
|
||||||
async function checkMigrationsFinished() {
|
async function checkMigrationsFinished() {
|
||||||
let totalWaitMs = 0
|
let totalWaitMs = 0
|
||||||
// eslint-disable-next-line no-constant-condition
|
|
||||||
while (true) {
|
while (true) {
|
||||||
const waitForMs = 5000 + Math.random() * 5000
|
const waitForMs = 5000 + Math.random() * 5000
|
||||||
await new Promise(resolve => setTimeout(resolve, waitForMs))
|
await new Promise(resolve => setTimeout(resolve, waitForMs))
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 5321c7589257711cf153600597ef4e6a5f6b7162
|
Subproject commit 9d88d38d82b928f43005197e1a9ec9856572946b
|
|
@ -22,7 +22,7 @@ import {
|
||||||
async function redirect(
|
async function redirect(
|
||||||
ctx: any,
|
ctx: any,
|
||||||
method: "GET" | "POST" | "DELETE",
|
method: "GET" | "POST" | "DELETE",
|
||||||
path: string = "global"
|
path = "global"
|
||||||
) {
|
) {
|
||||||
const { devPath } = ctx.params
|
const { devPath } = ctx.params
|
||||||
const queryString = ctx.originalUrl.split("?")[1] || ""
|
const queryString = ctx.originalUrl.split("?")[1] || ""
|
||||||
|
|
|
@ -111,8 +111,8 @@ describe("Rest Importer", () => {
|
||||||
const importResult = await restImporter.importQueries(datasource._id)
|
const importResult = await restImporter.importQueries(datasource._id)
|
||||||
expect(importResult.errorQueries.length).toBe(0)
|
expect(importResult.errorQueries.length).toBe(0)
|
||||||
expect(importResult.queries.length).toBe(assertions[key].count)
|
expect(importResult.queries.length).toBe(assertions[key].count)
|
||||||
expect(events.query.imported).toBeCalledTimes(1)
|
expect(events.query.imported).toHaveBeenCalledTimes(1)
|
||||||
expect(events.query.imported).toBeCalledWith(
|
expect(events.query.imported).toHaveBeenCalledWith(
|
||||||
datasource,
|
datasource,
|
||||||
assertions[key].source,
|
assertions[key].source,
|
||||||
assertions[key].count
|
assertions[key].count
|
||||||
|
|
|
@ -378,7 +378,7 @@ export class ExternalRequest<T extends Operation> {
|
||||||
}
|
}
|
||||||
// many to one
|
// many to one
|
||||||
else {
|
else {
|
||||||
const thisKey: string = "id"
|
const thisKey = "id"
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
const otherKey: string = field.fieldName
|
const otherKey: string = field.fieldName
|
||||||
for (const relationship of row[key]) {
|
for (const relationship of row[key]) {
|
||||||
|
|
|
@ -45,7 +45,7 @@ export function getInternalRowId(row: Row, table: Table): string {
|
||||||
export function generateIdForRow(
|
export function generateIdForRow(
|
||||||
row: Row | undefined,
|
row: Row | undefined,
|
||||||
table: Table,
|
table: Table,
|
||||||
isLinked: boolean = false
|
isLinked = false
|
||||||
): string {
|
): string {
|
||||||
const primary = table.primary
|
const primary = table.primary
|
||||||
if (!row || !primary) {
|
if (!row || !primary) {
|
||||||
|
|
|
@ -16,7 +16,7 @@ function escapeCsvString(str: string) {
|
||||||
export function csv(
|
export function csv(
|
||||||
headers: string[],
|
headers: string[],
|
||||||
rows: Row[],
|
rows: Row[],
|
||||||
delimiter: string = ",",
|
delimiter = ",",
|
||||||
customHeaders: { [key: string]: string } = {}
|
customHeaders: { [key: string]: string } = {}
|
||||||
) {
|
) {
|
||||||
let csvRows = [getHeaders(headers, customHeaders)]
|
let csvRows = [getHeaders(headers, customHeaders)]
|
||||||
|
|
|
@ -4,14 +4,13 @@ const { events, constants } = require("@budibase/backend-core")
|
||||||
describe("/static", () => {
|
describe("/static", () => {
|
||||||
let request = setup.getRequest()
|
let request = setup.getRequest()
|
||||||
let config = setup.getConfig()
|
let config = setup.getConfig()
|
||||||
let app
|
|
||||||
|
|
||||||
const timezone = "Europe/London"
|
const timezone = "Europe/London"
|
||||||
|
|
||||||
afterAll(setup.afterAll)
|
afterAll(setup.afterAll)
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
app = await config.init()
|
await config.init()
|
||||||
})
|
})
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
@ -26,10 +25,10 @@ describe("/static", () => {
|
||||||
.set(config.defaultHeaders())
|
.set(config.defaultHeaders())
|
||||||
.expect(200)
|
.expect(200)
|
||||||
|
|
||||||
expect(events.serve.servedBuilder).toBeCalledTimes(1)
|
expect(events.serve.servedBuilder).toHaveBeenCalledTimes(1)
|
||||||
expect(events.serve.servedBuilder).toBeCalledWith(timezone)
|
expect(events.serve.servedBuilder).toHaveBeenCalledWith(timezone)
|
||||||
expect(events.serve.servedApp).not.toBeCalled()
|
expect(events.serve.servedApp).not.toHaveBeenCalled()
|
||||||
expect(events.serve.servedAppPreview).not.toBeCalled()
|
expect(events.serve.servedAppPreview).not.toHaveBeenCalled()
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should ping from app preview", async () => {
|
it("should ping from app preview", async () => {
|
||||||
|
@ -39,12 +38,12 @@ describe("/static", () => {
|
||||||
.set(config.defaultHeaders())
|
.set(config.defaultHeaders())
|
||||||
.expect(200)
|
.expect(200)
|
||||||
|
|
||||||
expect(events.serve.servedAppPreview).toBeCalledTimes(1)
|
expect(events.serve.servedAppPreview).toHaveBeenCalledTimes(1)
|
||||||
expect(events.serve.servedAppPreview).toBeCalledWith(
|
expect(events.serve.servedAppPreview).toHaveBeenCalledWith(
|
||||||
config.getApp(),
|
config.getApp(),
|
||||||
timezone
|
timezone
|
||||||
)
|
)
|
||||||
expect(events.serve.servedApp).not.toBeCalled()
|
expect(events.serve.servedApp).not.toHaveBeenCalled()
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should ping from app", async () => {
|
it("should ping from app", async () => {
|
||||||
|
@ -57,13 +56,13 @@ describe("/static", () => {
|
||||||
.set(headers)
|
.set(headers)
|
||||||
.expect(200)
|
.expect(200)
|
||||||
|
|
||||||
expect(events.serve.servedApp).toBeCalledTimes(1)
|
expect(events.serve.servedApp).toHaveBeenCalledTimes(1)
|
||||||
expect(events.serve.servedApp).toBeCalledWith(
|
expect(events.serve.servedApp).toHaveBeenCalledWith(
|
||||||
config.getProdApp(),
|
config.getProdApp(),
|
||||||
timezone,
|
timezone,
|
||||||
undefined
|
undefined
|
||||||
)
|
)
|
||||||
expect(events.serve.servedAppPreview).not.toBeCalled()
|
expect(events.serve.servedAppPreview).not.toHaveBeenCalled()
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should ping from an embedded app", async () => {
|
it("should ping from an embedded app", async () => {
|
||||||
|
@ -76,13 +75,13 @@ describe("/static", () => {
|
||||||
.set(headers)
|
.set(headers)
|
||||||
.expect(200)
|
.expect(200)
|
||||||
|
|
||||||
expect(events.serve.servedApp).toBeCalledTimes(1)
|
expect(events.serve.servedApp).toHaveBeenCalledTimes(1)
|
||||||
expect(events.serve.servedApp).toBeCalledWith(
|
expect(events.serve.servedApp).toHaveBeenCalledWith(
|
||||||
config.getProdApp(),
|
config.getProdApp(),
|
||||||
timezone,
|
timezone,
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
expect(events.serve.servedAppPreview).not.toBeCalled()
|
expect(events.serve.servedAppPreview).not.toHaveBeenCalled()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -208,7 +208,7 @@ describe("/applications", () => {
|
||||||
|
|
||||||
it("should reject with a known url", async () => {
|
it("should reject with a known url", async () => {
|
||||||
await config.api.application.create(
|
await config.api.application.create(
|
||||||
{ name: "made up", url: app?.url! },
|
{ name: "made up", url: app!.url! },
|
||||||
{ body: { message: "App URL is already in use." }, status: 400 }
|
{ body: { message: "App URL is already in use." }, status: 400 }
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
|
@ -19,7 +19,7 @@ describe("/dev", () => {
|
||||||
.set(config.defaultHeaders())
|
.set(config.defaultHeaders())
|
||||||
.expect("Content-Type", /json/)
|
.expect("Content-Type", /json/)
|
||||||
.expect(200)
|
.expect(200)
|
||||||
expect(events.app.reverted).toBeCalledTimes(1)
|
expect(events.app.reverted).toHaveBeenCalledTimes(1)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -32,8 +32,10 @@ describe("/dev", () => {
|
||||||
.expect(200)
|
.expect(200)
|
||||||
|
|
||||||
expect(res.body.version).toBe("0.0.0+jest")
|
expect(res.body.version).toBe("0.0.0+jest")
|
||||||
expect(events.installation.versionChecked).toBeCalledTimes(1)
|
expect(events.installation.versionChecked).toHaveBeenCalledTimes(1)
|
||||||
expect(events.installation.versionChecked).toBeCalledWith("0.0.0+jest")
|
expect(events.installation.versionChecked).toHaveBeenCalledWith(
|
||||||
|
"0.0.0+jest"
|
||||||
|
)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -25,7 +25,7 @@ describe("/layouts", () => {
|
||||||
.expect("Content-Type", /json/)
|
.expect("Content-Type", /json/)
|
||||||
.expect(200)
|
.expect(200)
|
||||||
expect(res.body._rev).toBeDefined()
|
expect(res.body._rev).toBeDefined()
|
||||||
expect(events.layout.created).toBeCalledTimes(1)
|
expect(events.layout.created).toHaveBeenCalledTimes(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should apply authorization to endpoint", async () => {
|
it("should apply authorization to endpoint", async () => {
|
||||||
|
@ -45,7 +45,7 @@ describe("/layouts", () => {
|
||||||
.expect("Content-Type", /json/)
|
.expect("Content-Type", /json/)
|
||||||
.expect(200)
|
.expect(200)
|
||||||
expect(res.body.message).toBeDefined()
|
expect(res.body.message).toBeDefined()
|
||||||
expect(events.layout.deleted).toBeCalledTimes(1)
|
expect(events.layout.deleted).toHaveBeenCalledTimes(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should apply authorization to endpoint", async () => {
|
it("should apply authorization to endpoint", async () => {
|
||||||
|
|
|
@ -314,9 +314,7 @@ if (descriptions.length) {
|
||||||
const cloned = cloneDeep(response)
|
const cloned = cloneDeep(response)
|
||||||
const foundRows = response.rows
|
const foundRows = response.rows
|
||||||
|
|
||||||
// eslint-disable-next-line jest/no-standalone-expect
|
|
||||||
expect(foundRows).toHaveLength(expectedRows.length)
|
expect(foundRows).toHaveLength(expectedRows.length)
|
||||||
// eslint-disable-next-line jest/no-standalone-expect
|
|
||||||
expect([...foundRows]).toEqual(
|
expect([...foundRows]).toEqual(
|
||||||
expectedRows.map((expectedRow: any) =>
|
expectedRows.map((expectedRow: any) =>
|
||||||
expect.objectContaining(this.popRow(expectedRow, foundRows))
|
expect.objectContaining(this.popRow(expectedRow, foundRows))
|
||||||
|
@ -333,9 +331,7 @@ if (descriptions.length) {
|
||||||
const cloned = cloneDeep(response)
|
const cloned = cloneDeep(response)
|
||||||
const foundRows = response.rows
|
const foundRows = response.rows
|
||||||
|
|
||||||
// eslint-disable-next-line jest/no-standalone-expect
|
|
||||||
expect(foundRows).toHaveLength(expectedRows.length)
|
expect(foundRows).toHaveLength(expectedRows.length)
|
||||||
// eslint-disable-next-line jest/no-standalone-expect
|
|
||||||
expect([...foundRows]).toEqual(
|
expect([...foundRows]).toEqual(
|
||||||
expect.arrayContaining(
|
expect.arrayContaining(
|
||||||
expectedRows.map((expectedRow: any) =>
|
expectedRows.map((expectedRow: any) =>
|
||||||
|
@ -358,10 +354,8 @@ if (descriptions.length) {
|
||||||
keyof SearchResponse<Row>
|
keyof SearchResponse<Row>
|
||||||
>
|
>
|
||||||
for (let key of keys) {
|
for (let key of keys) {
|
||||||
// eslint-disable-next-line jest/no-standalone-expect
|
|
||||||
expect(response[key]).toBeDefined()
|
expect(response[key]).toBeDefined()
|
||||||
if (properties[key]) {
|
if (properties[key]) {
|
||||||
// eslint-disable-next-line jest/no-standalone-expect
|
|
||||||
expect(response[key]).toEqual(properties[key])
|
expect(response[key]).toEqual(properties[key])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -375,7 +369,6 @@ if (descriptions.length) {
|
||||||
const response = await this.performSearch()
|
const response = await this.performSearch()
|
||||||
const cloned = cloneDeep(response)
|
const cloned = cloneDeep(response)
|
||||||
for (let property of properties) {
|
for (let property of properties) {
|
||||||
// eslint-disable-next-line jest/no-standalone-expect
|
|
||||||
expect(response[property]).toBeUndefined()
|
expect(response[property]).toBeUndefined()
|
||||||
}
|
}
|
||||||
return cloned
|
return cloned
|
||||||
|
@ -389,7 +382,6 @@ if (descriptions.length) {
|
||||||
const cloned = cloneDeep(response)
|
const cloned = cloneDeep(response)
|
||||||
const foundRows = response.rows
|
const foundRows = response.rows
|
||||||
|
|
||||||
// eslint-disable-next-line jest/no-standalone-expect
|
|
||||||
expect([...foundRows]).toEqual(
|
expect([...foundRows]).toEqual(
|
||||||
expect.arrayContaining(
|
expect.arrayContaining(
|
||||||
expectedRows.map((expectedRow: any) =>
|
expectedRows.map((expectedRow: any) =>
|
||||||
|
@ -409,7 +401,6 @@ if (descriptions.length) {
|
||||||
async toHaveLength(length: number) {
|
async toHaveLength(length: number) {
|
||||||
const { rows: foundRows } = await this.performSearch()
|
const { rows: foundRows } = await this.performSearch()
|
||||||
|
|
||||||
// eslint-disable-next-line jest/no-standalone-expect
|
|
||||||
expect(foundRows).toHaveLength(length)
|
expect(foundRows).toHaveLength(length)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2142,7 +2133,7 @@ if (descriptions.length) {
|
||||||
// repeat the search many times to check the first row is always the same
|
// repeat the search many times to check the first row is always the same
|
||||||
let bookmark: string | number | undefined,
|
let bookmark: string | number | undefined,
|
||||||
hasNextPage: boolean | undefined = true,
|
hasNextPage: boolean | undefined = true,
|
||||||
rowCount: number = 0
|
rowCount = 0
|
||||||
do {
|
do {
|
||||||
const response = await config.api.row.search(
|
const response = await config.api.row.search(
|
||||||
tableOrViewId,
|
tableOrViewId,
|
||||||
|
@ -2169,7 +2160,6 @@ if (descriptions.length) {
|
||||||
let bookmark: string | number = undefined
|
let bookmark: string | number = undefined
|
||||||
let rows: Row[] = []
|
let rows: Row[] = []
|
||||||
|
|
||||||
// eslint-disable-next-line no-constant-condition
|
|
||||||
while (true) {
|
while (true) {
|
||||||
const response = await config.api.row.search(
|
const response = await config.api.row.search(
|
||||||
tableOrViewId,
|
tableOrViewId,
|
||||||
|
|
|
@ -263,7 +263,7 @@ class AutomationBuilder extends BaseStepBuilder {
|
||||||
private automationConfig: Automation
|
private automationConfig: Automation
|
||||||
private config: TestConfiguration
|
private config: TestConfiguration
|
||||||
private triggerOutputs: any
|
private triggerOutputs: any
|
||||||
private triggerSet: boolean = false
|
private triggerSet = false
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
options: { name?: string; appId?: string; config?: TestConfiguration } = {}
|
options: { name?: string; appId?: string; config?: TestConfiguration } = {}
|
||||||
|
|
|
@ -107,7 +107,7 @@ if (mainDescriptions.length) {
|
||||||
const table = response.datasource.entities?.["binaryTable"]
|
const table = response.datasource.entities?.["binaryTable"]
|
||||||
expect(table).toBeDefined()
|
expect(table).toBeDefined()
|
||||||
expect(table?.schema.id.externalType).toBe("bytea")
|
expect(table?.schema.id.externalType).toBe("bytea")
|
||||||
const row = await config.api.row.save(table?._id!, {
|
const row = await config.api.row.save(table!._id!, {
|
||||||
id: "1111",
|
id: "1111",
|
||||||
column1: "hello",
|
column1: "hello",
|
||||||
column2: 222,
|
column2: 222,
|
||||||
|
|
|
@ -223,7 +223,7 @@ const COLUMN_DEFINITION_METADATA: Record<string, ColumnDefinitionMetadata> = {
|
||||||
|
|
||||||
class SqlServerIntegration extends Sql implements DatasourcePlus {
|
class SqlServerIntegration extends Sql implements DatasourcePlus {
|
||||||
private readonly config: MSSQLConfig
|
private readonly config: MSSQLConfig
|
||||||
private index: number = 0
|
private index = 0
|
||||||
private client?: sqlServer.ConnectionPool
|
private client?: sqlServer.ConnectionPool
|
||||||
|
|
||||||
MASTER_TABLES = [
|
MASTER_TABLES = [
|
||||||
|
|
|
@ -116,7 +116,7 @@ const OracleContraintTypes = {
|
||||||
|
|
||||||
class OracleIntegration extends Sql implements DatasourcePlus {
|
class OracleIntegration extends Sql implements DatasourcePlus {
|
||||||
private readonly config: OracleConfig
|
private readonly config: OracleConfig
|
||||||
private index: number = 1
|
private index = 1
|
||||||
|
|
||||||
private static readonly COLUMNS_SQL = `
|
private static readonly COLUMNS_SQL = `
|
||||||
SELECT
|
SELECT
|
||||||
|
|
|
@ -149,7 +149,7 @@ const SCHEMA: Integration = {
|
||||||
class PostgresIntegration extends Sql implements DatasourcePlus {
|
class PostgresIntegration extends Sql implements DatasourcePlus {
|
||||||
private readonly client: Client
|
private readonly client: Client
|
||||||
private readonly config: PostgresConfig
|
private readonly config: PostgresConfig
|
||||||
private index: number = 1
|
private index = 1
|
||||||
private open: boolean
|
private open: boolean
|
||||||
|
|
||||||
PRIMARY_KEYS_SQL = () => `
|
PRIMARY_KEYS_SQL = () => `
|
||||||
|
@ -252,7 +252,7 @@ class PostgresIntegration extends Sql implements DatasourcePlus {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
async internalQuery(query: SqlQuery, close: boolean = true) {
|
async internalQuery(query: SqlQuery, close = true) {
|
||||||
if (!this.open) {
|
if (!this.open) {
|
||||||
await this.openConnection()
|
await this.openConnection()
|
||||||
}
|
}
|
||||||
|
|
|
@ -129,7 +129,7 @@ class RedisIntegration {
|
||||||
return this.client.quit()
|
return this.client.quit()
|
||||||
}
|
}
|
||||||
|
|
||||||
async redisContext(query: Function) {
|
async redisContext<T>(query: () => Promise<T>) {
|
||||||
try {
|
try {
|
||||||
return await query()
|
return await query()
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|
|
@ -171,7 +171,7 @@ export class RestIntegration implements IntegrationBase {
|
||||||
path.basename(parse(contentDisposition).parameters?.filename) || ""
|
path.basename(parse(contentDisposition).parameters?.filename) || ""
|
||||||
}
|
}
|
||||||
|
|
||||||
let triedParsing: boolean = false,
|
let triedParsing = false,
|
||||||
responseTxt: string | undefined
|
responseTxt: string | undefined
|
||||||
try {
|
try {
|
||||||
if (filename) {
|
if (filename) {
|
||||||
|
@ -313,7 +313,9 @@ export class RestIntegration implements IntegrationBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Util to add pagination values to a certain body type
|
// Util to add pagination values to a certain body type
|
||||||
const addPaginationToBody = (insertFn: Function) => {
|
const addPaginationToBody = (
|
||||||
|
insertFn: (pageParam: string, page?: string | number) => void
|
||||||
|
) => {
|
||||||
if (pagination?.location === "body") {
|
if (pagination?.location === "body") {
|
||||||
if (pagination?.pageParam && paginationValues?.page != null) {
|
if (pagination?.pageParam && paginationValues?.page != null) {
|
||||||
insertFn(pagination.pageParam, paginationValues.page)
|
insertFn(pagination.pageParam, paginationValues.page)
|
||||||
|
|
|
@ -389,25 +389,24 @@ describe("Google Sheets Integration", () => {
|
||||||
})
|
})
|
||||||
|
|
||||||
// TODO: this gets the error "Sheet is not large enough to fit 27 columns. Resize the sheet first."
|
// TODO: this gets the error "Sheet is not large enough to fit 27 columns. Resize the sheet first."
|
||||||
// eslint-disable-next-line jest/no-commented-out-tests
|
it.skip("should be able to add a new column", async () => {
|
||||||
// it("should be able to add a new column", async () => {
|
const updatedTable = await config.api.table.save({
|
||||||
// const updatedTable = await config.api.table.save({
|
...table,
|
||||||
// ...table,
|
schema: {
|
||||||
// schema: {
|
...table.schema,
|
||||||
// ...table.schema,
|
newColumn: {
|
||||||
// newColumn: {
|
name: "newColumn",
|
||||||
// name: "newColumn",
|
type: FieldType.STRING,
|
||||||
// type: FieldType.STRING,
|
},
|
||||||
// },
|
},
|
||||||
// },
|
})
|
||||||
// })
|
|
||||||
|
|
||||||
// expect(updatedTable.schema.newColumn).toBeDefined()
|
expect(updatedTable.schema.newColumn).toBeDefined()
|
||||||
|
|
||||||
// expect(mock.cell("A1")).toEqual("name")
|
expect(mock.cell("A1")).toEqual("name")
|
||||||
// expect(mock.cell("B1")).toEqual("description")
|
expect(mock.cell("B1")).toEqual("description")
|
||||||
// expect(mock.cell("C1")).toEqual("newColumn")
|
expect(mock.cell("C1")).toEqual("newColumn")
|
||||||
// })
|
})
|
||||||
|
|
||||||
it("should be able to delete a column", async () => {
|
it("should be able to delete a column", async () => {
|
||||||
const row = await config.api.row.save(table._id!, {
|
const row = await config.api.row.save(table._id!, {
|
||||||
|
|
|
@ -3,6 +3,8 @@ import { RestIntegration } from "../rest"
|
||||||
import { BodyType, RestAuthType } from "@budibase/types"
|
import { BodyType, RestAuthType } from "@budibase/types"
|
||||||
import { Response } from "node-fetch"
|
import { Response } from "node-fetch"
|
||||||
import TestConfiguration from "../../../src/tests/utilities/TestConfiguration"
|
import TestConfiguration from "../../../src/tests/utilities/TestConfiguration"
|
||||||
|
import { createServer } from "http"
|
||||||
|
import { AddressInfo } from "net"
|
||||||
|
|
||||||
const UUID_REGEX =
|
const UUID_REGEX =
|
||||||
"[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}"
|
"[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}"
|
||||||
|
@ -455,29 +457,27 @@ describe("REST Integration", () => {
|
||||||
// NOTE(samwho): it seems like this code doesn't actually work because it requires
|
// NOTE(samwho): it seems like this code doesn't actually work because it requires
|
||||||
// node-fetch >=3, and we're not on that because upgrading to it produces errors to
|
// node-fetch >=3, and we're not on that because upgrading to it produces errors to
|
||||||
// do with ESM that are above my pay grade.
|
// do with ESM that are above my pay grade.
|
||||||
|
it.skip("doesn't fail when legacyHttpParser is set", async () => {
|
||||||
|
const server = createServer((req, res) => {
|
||||||
|
res.writeHead(200, {
|
||||||
|
"Transfer-Encoding": "chunked",
|
||||||
|
"Content-Length": "10",
|
||||||
|
})
|
||||||
|
res.end(JSON.stringify({ foo: "bar" }))
|
||||||
|
})
|
||||||
|
|
||||||
// eslint-disable-next-line jest/no-commented-out-tests
|
server.listen()
|
||||||
// it("doesn't fail when legacyHttpParser is set", async () => {
|
await new Promise(resolve => server.once("listening", resolve))
|
||||||
// const server = createServer((req, res) => {
|
|
||||||
// res.writeHead(200, {
|
|
||||||
// "Transfer-Encoding": "chunked",
|
|
||||||
// "Content-Length": "10",
|
|
||||||
// })
|
|
||||||
// res.end(JSON.stringify({ foo: "bar" }))
|
|
||||||
// })
|
|
||||||
|
|
||||||
// server.listen()
|
const address = server.address() as AddressInfo
|
||||||
// await new Promise(resolve => server.once("listening", resolve))
|
|
||||||
|
|
||||||
// const address = server.address() as AddressInfo
|
const integration = new RestIntegration({
|
||||||
|
url: `http://localhost:${address.port}`,
|
||||||
// const integration = new RestIntegration({
|
legacyHttpParser: true,
|
||||||
// url: `http://localhost:${address.port}`,
|
})
|
||||||
// legacyHttpParser: true,
|
const { data } = await integration.read({})
|
||||||
// })
|
expect(data).toEqual({ foo: "bar" })
|
||||||
// const { data } = await integration.read({})
|
})
|
||||||
// expect(data).toEqual({ foo: "bar" })
|
|
||||||
// })
|
|
||||||
|
|
||||||
it("doesn't fail when legacyHttpParser is true", async () => {
|
it("doesn't fail when legacyHttpParser is true", async () => {
|
||||||
nock("https://example.com").get("/").reply(200, { foo: "bar" })
|
nock("https://example.com").get("/").reply(200, { foo: "bar" })
|
||||||
|
|
|
@ -144,10 +144,10 @@ describe("Captures of real examples", () => {
|
||||||
queryJson
|
queryJson
|
||||||
)
|
)
|
||||||
const filters = queryJson.filters
|
const filters = queryJson.filters
|
||||||
const notEqualsValue = Object.values(filters?.notEqual!)[0]
|
const notEqualsValue = Object.values(filters!.notEqual!)[0]
|
||||||
const rangeValue: { high?: string | number; low?: string | number } =
|
const rangeValue: { high?: string | number; low?: string | number } =
|
||||||
Object.values(filters?.range!)[0]
|
Object.values(filters!.range!)[0]
|
||||||
const equalValue = Object.values(filters?.equal!)[0]
|
const equalValue = Object.values(filters!.equal!)[0]
|
||||||
|
|
||||||
expect(query).toEqual({
|
expect(query).toEqual({
|
||||||
bindings: [
|
bindings: [
|
||||||
|
@ -245,7 +245,7 @@ describe("Captures of real examples", () => {
|
||||||
tableNames.push(generator.guid())
|
tableNames.push(generator.guid())
|
||||||
}
|
}
|
||||||
const aliasing = new AliasTables(tableNames)
|
const aliasing = new AliasTables(tableNames)
|
||||||
let alias: string = ""
|
let alias = ""
|
||||||
for (let table of tableNames) {
|
for (let table of tableNames) {
|
||||||
alias = aliasing.getAlias(table)
|
alias = aliasing.getAlias(table)
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,7 +72,7 @@ export class IsolatedVM implements VM {
|
||||||
|
|
||||||
this.addToContext({
|
this.addToContext({
|
||||||
helpersStripProtocol: new ivm.Callback((str: string) => {
|
helpersStripProtocol: new ivm.Callback((str: string) => {
|
||||||
var parsed = url.parse(str) as any
|
let parsed = url.parse(str) as any
|
||||||
parsed.protocol = ""
|
parsed.protocol = ""
|
||||||
return parsed.format()
|
return parsed.format()
|
||||||
}),
|
}),
|
||||||
|
|
|
@ -50,7 +50,7 @@ async function updateAppUpdatedAt(ctx: UserCtx) {
|
||||||
const metadata = await db.get<any>(DocumentType.APP_METADATA)
|
const metadata = await db.get<any>(DocumentType.APP_METADATA)
|
||||||
metadata.updatedAt = new Date().toISOString()
|
metadata.updatedAt = new Date().toISOString()
|
||||||
|
|
||||||
metadata.updatedBy = getGlobalIDFromUserMetadataID(ctx.user?.userId!)
|
metadata.updatedBy = getGlobalIDFromUserMetadataID(ctx.user!.userId!)
|
||||||
|
|
||||||
const response = await db.put(metadata)
|
const response = await db.put(metadata)
|
||||||
metadata._rev = response.rev
|
metadata._rev = response.rev
|
||||||
|
@ -59,9 +59,7 @@ async function updateAppUpdatedAt(ctx: UserCtx) {
|
||||||
await setDebounce(appId, DEBOUNCE_TIME_SEC)
|
await setDebounce(appId, DEBOUNCE_TIME_SEC)
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
// if a 409 occurs, then multiple clients connected at the same time - ignore
|
// if a 409 occurs, then multiple clients connected at the same time - ignore
|
||||||
if (err?.status === 409) {
|
if (err && err.status !== 409) {
|
||||||
return
|
|
||||||
} else {
|
|
||||||
throw err
|
throw err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
export const runQuotaMigration = async (migration: Function) => {
|
export const runQuotaMigration = async (migration: () => Promise<void>) => {
|
||||||
await migration()
|
await migration()
|
||||||
}
|
}
|
||||||
|
|
|
@ -104,8 +104,6 @@ export async function getDependantResources(
|
||||||
return p
|
return p
|
||||||
}, {} as Record<string, number>)
|
}, {} as Record<string, number>)
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function updatePermissionOnRole(
|
export async function updatePermissionOnRole(
|
||||||
|
|
|
@ -437,7 +437,7 @@ export async function search(
|
||||||
)
|
)
|
||||||
|
|
||||||
// check for pagination final row
|
// check for pagination final row
|
||||||
let nextRow: boolean = false
|
let nextRow = false
|
||||||
if (paginate && params.limit && rows.length > params.limit) {
|
if (paginate && params.limit && rows.length > params.limit) {
|
||||||
// remove the extra row that confirmed if there is another row to move to
|
// remove the extra row that confirmed if there is another row to move to
|
||||||
nextRow = true
|
nextRow = true
|
||||||
|
|
|
@ -47,7 +47,7 @@ describe("check BB_ADMIN environment variables", () => {
|
||||||
})
|
})
|
||||||
expect(user).toBeDefined()
|
expect(user).toBeDefined()
|
||||||
expect(user?.password).toBeDefined()
|
expect(user?.password).toBeDefined()
|
||||||
expect(await utils.compare(PASSWORD, user?.password!)).toEqual(
|
expect(await utils.compare(PASSWORD, user!.password!)).toEqual(
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -535,7 +535,7 @@ export function basicRow(tableId: string) {
|
||||||
export function basicLinkedRow(
|
export function basicLinkedRow(
|
||||||
tableId: string,
|
tableId: string,
|
||||||
linkedRowId: string,
|
linkedRowId: string,
|
||||||
linkField: string = "link"
|
linkField = "link"
|
||||||
) {
|
) {
|
||||||
// this is based on the basic linked tables you get from the test configuration
|
// this is based on the basic linked tables you get from the test configuration
|
||||||
return {
|
return {
|
||||||
|
@ -586,14 +586,14 @@ export function basicUser(role: string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function basicScreen(route: string = "/") {
|
export function basicScreen(route = "/") {
|
||||||
return createHomeScreen({
|
return createHomeScreen({
|
||||||
roleId: BUILTIN_ROLE_IDS.BASIC,
|
roleId: BUILTIN_ROLE_IDS.BASIC,
|
||||||
route,
|
route,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function powerScreen(route: string = "/") {
|
export function powerScreen(route = "/") {
|
||||||
return createHomeScreen({
|
return createHomeScreen({
|
||||||
roleId: BUILTIN_ROLE_IDS.POWER,
|
roleId: BUILTIN_ROLE_IDS.POWER,
|
||||||
route,
|
route,
|
||||||
|
|
|
@ -78,7 +78,7 @@ export async function getCachedSelf(
|
||||||
// this has to be tenant aware, can't depend on the context to find it out
|
// this has to be tenant aware, can't depend on the context to find it out
|
||||||
// running some middlewares before the tenancy causes context to break
|
// running some middlewares before the tenancy causes context to break
|
||||||
const user = await cache.user.getUser({
|
const user = await cache.user.getUser({
|
||||||
userId: ctx.user?._id!,
|
userId: ctx.user!._id!,
|
||||||
})
|
})
|
||||||
return processUser(user, { appId })
|
return processUser(user, { appId })
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
export async function retry<T extends (...arg0: any[]) => any>(
|
export async function retry<T extends (...arg0: any[]) => any>(
|
||||||
fn: T,
|
fn: T,
|
||||||
maxTry: number = 5,
|
maxTry = 5,
|
||||||
retryCount = 1
|
retryCount = 1
|
||||||
): Promise<Awaited<ReturnType<T>>> {
|
): Promise<Awaited<ReturnType<T>>> {
|
||||||
const currRetry = typeof retryCount === "number" ? retryCount : 1
|
const currRetry = typeof retryCount === "number" ? retryCount : 1
|
||||||
|
|
|
@ -92,7 +92,7 @@ export default class BuilderSocket extends BaseSocket {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async updateUser(socket: Socket, patch: Object) {
|
async updateUser(socket: Socket, patch: object) {
|
||||||
await super.updateUser(socket, {
|
await super.updateUser(socket, {
|
||||||
builderMetadata: {
|
builderMetadata: {
|
||||||
...socket.data.builderMetadata,
|
...socket.data.builderMetadata,
|
||||||
|
|
|
@ -70,7 +70,7 @@ export default class GridSocket extends BaseSocket {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
async updateUser(socket: Socket, patch: Object) {
|
async updateUser(socket: Socket, patch: object) {
|
||||||
await super.updateUser(socket, {
|
await super.updateUser(socket, {
|
||||||
gridMetadata: {
|
gridMetadata: {
|
||||||
...socket.data.gridMetadata,
|
...socket.data.gridMetadata,
|
||||||
|
|
|
@ -58,7 +58,7 @@ export const createContext = (
|
||||||
export const runMiddlewares = async (
|
export const runMiddlewares = async (
|
||||||
ctx: any,
|
ctx: any,
|
||||||
middlewares: any[],
|
middlewares: any[],
|
||||||
callback: Function
|
callback: () => Promise<void>
|
||||||
) => {
|
) => {
|
||||||
if (!middlewares[0]) {
|
if (!middlewares[0]) {
|
||||||
await callback()
|
await callback()
|
||||||
|
|
|
@ -33,7 +33,7 @@ export class BaseSocket {
|
||||||
constructor(
|
constructor(
|
||||||
app: Koa,
|
app: Koa,
|
||||||
server: http.Server,
|
server: http.Server,
|
||||||
path: string = "/",
|
path = "/",
|
||||||
additionalMiddlewares?: any[]
|
additionalMiddlewares?: any[]
|
||||||
) {
|
) {
|
||||||
this.app = app
|
this.app = app
|
||||||
|
@ -57,7 +57,7 @@ export class BaseSocket {
|
||||||
const ctx = createContext(this.app, socket)
|
const ctx = createContext(this.app, socket)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await runMiddlewares(ctx, middlewares, () => {
|
await runMiddlewares(ctx, middlewares, async () => {
|
||||||
// Middlewares are finished
|
// Middlewares are finished
|
||||||
// Extract some data from our enriched koa context to persist
|
// Extract some data from our enriched koa context to persist
|
||||||
// as metadata for the socket
|
// as metadata for the socket
|
||||||
|
@ -250,7 +250,7 @@ export class BaseSocket {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Updates a connected user's metadata, assuming a room change is not required.
|
// Updates a connected user's metadata, assuming a room change is not required.
|
||||||
async updateUser(socket: Socket, patch: Object) {
|
async updateUser(socket: Socket, patch: object) {
|
||||||
socket.data = {
|
socket.data = {
|
||||||
...socket.data,
|
...socket.data,
|
||||||
...patch,
|
...patch,
|
||||||
|
|
|
@ -33,7 +33,7 @@ function improveErrors(errors: string[]): string[] {
|
||||||
|
|
||||||
export function getNextExecutionDates(
|
export function getNextExecutionDates(
|
||||||
cronExpression: string,
|
cronExpression: string,
|
||||||
limit: number = 4
|
limit = 4
|
||||||
): string[] {
|
): string[] {
|
||||||
const parsed = cronParser.parseExpression(cronExpression)
|
const parsed = cronParser.parseExpression(cronExpression)
|
||||||
const nextRuns = []
|
const nextRuns = []
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
/* eslint-disable no-template-curly-in-string */
|
||||||
import { convertToJS } from "../src/index"
|
import { convertToJS } from "../src/index"
|
||||||
|
|
||||||
function checkLines(response: string, lines: string[]) {
|
function checkLines(response: string, lines: string[]) {
|
||||||
|
|
|
@ -11,7 +11,7 @@ function tryParseJson(str: string) {
|
||||||
try {
|
try {
|
||||||
return JSON.parse(str.replace(/'/g, '"'))
|
return JSON.parse(str.replace(/'/g, '"'))
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return
|
// do nothing
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -128,13 +128,13 @@ export interface Database {
|
||||||
name: string
|
name: string
|
||||||
|
|
||||||
exists(): Promise<boolean>
|
exists(): Promise<boolean>
|
||||||
|
exists(docId: string): Promise<boolean>
|
||||||
/**
|
/**
|
||||||
* @deprecated the plan is to get everything using `tryGet` instead, then rename
|
* @deprecated the plan is to get everything using `tryGet` instead, then rename
|
||||||
* `tryGet` to `get`.
|
* `tryGet` to `get`.
|
||||||
*/
|
*/
|
||||||
get<T extends Document>(id?: string): Promise<T>
|
get<T extends Document>(id?: string): Promise<T>
|
||||||
tryGet<T extends Document>(id?: string): Promise<T | undefined>
|
tryGet<T extends Document>(id?: string): Promise<T | undefined>
|
||||||
exists(docId: string): Promise<boolean>
|
|
||||||
getMultiple<T extends Document>(
|
getMultiple<T extends Document>(
|
||||||
ids: string[],
|
ids: string[],
|
||||||
opts?: { allowMissing?: boolean; excludeDocs?: boolean }
|
opts?: { allowMissing?: boolean; excludeDocs?: boolean }
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
|
import { Database } from "./db"
|
||||||
|
|
||||||
export interface Migration extends MigrationDefinition {
|
export interface Migration extends MigrationDefinition {
|
||||||
appOpts?: object
|
appOpts?: object
|
||||||
fn: Function
|
fn: (db: Database) => Promise<void>
|
||||||
silent?: boolean
|
silent?: boolean
|
||||||
preventRetry?: boolean
|
preventRetry?: boolean
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,7 +54,7 @@ describe("/api/global/auth", () => {
|
||||||
describe("POST /api/global/auth/:tenantId/login", () => {
|
describe("POST /api/global/auth/:tenantId/login", () => {
|
||||||
it("logs in with correct credentials", async () => {
|
it("logs in with correct credentials", async () => {
|
||||||
const tenantId = config.tenantId!
|
const tenantId = config.tenantId!
|
||||||
const email = config.user?.email!
|
const email = config.user!.email!
|
||||||
const password = config.userPassword
|
const password = config.userPassword
|
||||||
|
|
||||||
const response = await config.api.auth.login(tenantId, email, password)
|
const response = await config.api.auth.login(tenantId, email, password)
|
||||||
|
@ -65,7 +65,7 @@ describe("/api/global/auth", () => {
|
||||||
|
|
||||||
it("should return 403 with incorrect credentials", async () => {
|
it("should return 403 with incorrect credentials", async () => {
|
||||||
const tenantId = config.tenantId!
|
const tenantId = config.tenantId!
|
||||||
const email = config.user?.email!
|
const email = config.user!.email!
|
||||||
const password = "incorrect123"
|
const password = "incorrect123"
|
||||||
|
|
||||||
const response = await config.api.auth.login(
|
const response = await config.api.auth.login(
|
||||||
|
|
|
@ -343,7 +343,7 @@ describe("/api/global/users", () => {
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should not allow a user to update their own admin/builder status", async () => {
|
it("should not allow a user to update their own admin/builder status", async () => {
|
||||||
const user = (await config.api.users.getUser(config.user?._id!))
|
const user = (await config.api.users.getUser(config.user!._id!))
|
||||||
.body as User
|
.body as User
|
||||||
await config.api.users.saveUser({
|
await config.api.users.saveUser({
|
||||||
...user,
|
...user,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { Ctx } from "@budibase/types"
|
import { Ctx } from "@budibase/types"
|
||||||
|
|
||||||
export const handleScimBody = (ctx: Ctx, next: any) => {
|
export const handleScimBody = (ctx: Ctx, next: any) => {
|
||||||
var type = ctx.req.headers["content-type"] || ""
|
let type = ctx.req.headers["content-type"] || ""
|
||||||
type = type.split(";")[0]
|
type = type.split(";")[0]
|
||||||
|
|
||||||
if (type === "application/scim+json") {
|
if (type === "application/scim+json") {
|
||||||
|
|
|
@ -40,10 +40,7 @@ export const getMetadata = async (
|
||||||
try {
|
try {
|
||||||
return await db.get(accountId)
|
return await db.get(accountId)
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
if (e.status === 404) {
|
if (e.status !== 404) {
|
||||||
// do nothing
|
|
||||||
return
|
|
||||||
} else {
|
|
||||||
throw e
|
throw e
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,7 @@
|
||||||
import { Account, AccountMetadata } from "@budibase/types"
|
import { Account, AccountMetadata } from "@budibase/types"
|
||||||
import TestConfiguration from "../TestConfiguration"
|
|
||||||
import { TestAPI } from "./base"
|
import { TestAPI } from "./base"
|
||||||
|
|
||||||
export class AccountAPI extends TestAPI {
|
export class AccountAPI extends TestAPI {
|
||||||
constructor(config: TestConfiguration) {
|
|
||||||
super(config)
|
|
||||||
}
|
|
||||||
|
|
||||||
saveMetadata = async (account: Account) => {
|
saveMetadata = async (account: Account) => {
|
||||||
const res = await this.request
|
const res = await this.request
|
||||||
.put(`/api/system/accounts/${account.accountId}/metadata`)
|
.put(`/api/system/accounts/${account.accountId}/metadata`)
|
||||||
|
|
|
@ -1,12 +1,7 @@
|
||||||
import { AuditLogSearchParams, SearchAuditLogsResponse } from "@budibase/types"
|
import { AuditLogSearchParams, SearchAuditLogsResponse } from "@budibase/types"
|
||||||
import TestConfiguration from "../TestConfiguration"
|
|
||||||
import { TestAPI } from "./base"
|
import { TestAPI } from "./base"
|
||||||
|
|
||||||
export class AuditLogAPI extends TestAPI {
|
export class AuditLogAPI extends TestAPI {
|
||||||
constructor(config: TestConfiguration) {
|
|
||||||
super(config)
|
|
||||||
}
|
|
||||||
|
|
||||||
search = async (search: AuditLogSearchParams) => {
|
search = async (search: AuditLogSearchParams) => {
|
||||||
const res = await this.request
|
const res = await this.request
|
||||||
.post("/api/global/auditlogs/search")
|
.post("/api/global/auditlogs/search")
|
||||||
|
|
|
@ -1,11 +1,6 @@
|
||||||
import TestConfiguration from "../TestConfiguration"
|
|
||||||
import { TestAPI, TestAPIOpts } from "./base"
|
import { TestAPI, TestAPIOpts } from "./base"
|
||||||
|
|
||||||
export class AuthAPI extends TestAPI {
|
export class AuthAPI extends TestAPI {
|
||||||
constructor(config: TestConfiguration) {
|
|
||||||
super(config)
|
|
||||||
}
|
|
||||||
|
|
||||||
updatePassword = (
|
updatePassword = (
|
||||||
resetCode: string,
|
resetCode: string,
|
||||||
password: string,
|
password: string,
|
||||||
|
|
|
@ -10,7 +10,7 @@ export abstract class TestAPI {
|
||||||
config: TestConfiguration
|
config: TestConfiguration
|
||||||
request: SuperTest<Test>
|
request: SuperTest<Test>
|
||||||
|
|
||||||
protected constructor(config: TestConfiguration) {
|
constructor(config: TestConfiguration) {
|
||||||
this.config = config
|
this.config = config
|
||||||
this.request = config.request
|
this.request = config.request
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,6 @@
|
||||||
import TestConfiguration from "../TestConfiguration"
|
|
||||||
import { TestAPI } from "./base"
|
import { TestAPI } from "./base"
|
||||||
|
|
||||||
export class ConfigAPI extends TestAPI {
|
export class ConfigAPI extends TestAPI {
|
||||||
constructor(config: TestConfiguration) {
|
|
||||||
super(config)
|
|
||||||
}
|
|
||||||
|
|
||||||
getConfigChecklist = () => {
|
getConfigChecklist = () => {
|
||||||
return this.request
|
return this.request
|
||||||
.get(`/api/global/configs/checklist`)
|
.get(`/api/global/configs/checklist`)
|
||||||
|
|
|
@ -1,12 +1,7 @@
|
||||||
import { EmailAttachment } from "@budibase/types"
|
import { EmailAttachment } from "@budibase/types"
|
||||||
import TestConfiguration from "../TestConfiguration"
|
|
||||||
import { TestAPI } from "./base"
|
import { TestAPI } from "./base"
|
||||||
|
|
||||||
export class EmailAPI extends TestAPI {
|
export class EmailAPI extends TestAPI {
|
||||||
constructor(config: TestConfiguration) {
|
|
||||||
super(config)
|
|
||||||
}
|
|
||||||
|
|
||||||
sendEmail = (purpose: string, attachments?: EmailAttachment[]) => {
|
sendEmail = (purpose: string, attachments?: EmailAttachment[]) => {
|
||||||
return this.request
|
return this.request
|
||||||
.post(`/api/global/email/send`)
|
.post(`/api/global/email/send`)
|
||||||
|
@ -15,7 +10,7 @@ export class EmailAPI extends TestAPI {
|
||||||
attachments,
|
attachments,
|
||||||
purpose,
|
purpose,
|
||||||
tenantId: this.config.getTenantId(),
|
tenantId: this.config.getTenantId(),
|
||||||
userId: this.config.user?._id!,
|
userId: this.config.user!._id!,
|
||||||
})
|
})
|
||||||
.set(this.config.defaultHeaders())
|
.set(this.config.defaultHeaders())
|
||||||
.expect("Content-Type", /json/)
|
.expect("Content-Type", /json/)
|
||||||
|
|
|
@ -1,11 +1,6 @@
|
||||||
import TestConfiguration from "../TestConfiguration"
|
|
||||||
import { TestAPI } from "./base"
|
import { TestAPI } from "./base"
|
||||||
|
|
||||||
export class EnvironmentAPI extends TestAPI {
|
export class EnvironmentAPI extends TestAPI {
|
||||||
constructor(config: TestConfiguration) {
|
|
||||||
super(config)
|
|
||||||
}
|
|
||||||
|
|
||||||
getEnvironment = () => {
|
getEnvironment = () => {
|
||||||
return this.request
|
return this.request
|
||||||
.get(`/api/system/environment`)
|
.get(`/api/system/environment`)
|
||||||
|
|
|
@ -1,12 +1,7 @@
|
||||||
import { UserGroup } from "@budibase/types"
|
import { UserGroup } from "@budibase/types"
|
||||||
import TestConfiguration from "../TestConfiguration"
|
|
||||||
import { TestAPI } from "./base"
|
import { TestAPI } from "./base"
|
||||||
|
|
||||||
export class GroupsAPI extends TestAPI {
|
export class GroupsAPI extends TestAPI {
|
||||||
constructor(config: TestConfiguration) {
|
|
||||||
super(config)
|
|
||||||
}
|
|
||||||
|
|
||||||
saveGroup = (
|
saveGroup = (
|
||||||
group: UserGroup,
|
group: UserGroup,
|
||||||
{ expect }: { expect: number | object } = { expect: 200 }
|
{ expect }: { expect: number | object } = { expect: 200 }
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
import TestConfiguration from "../TestConfiguration"
|
|
||||||
import { TestAPI } from "./base"
|
import { TestAPI } from "./base"
|
||||||
import {
|
import {
|
||||||
ActivateLicenseKeyRequest,
|
ActivateLicenseKeyRequest,
|
||||||
|
@ -6,10 +5,6 @@ import {
|
||||||
} from "@budibase/types"
|
} from "@budibase/types"
|
||||||
|
|
||||||
export class LicenseAPI extends TestAPI {
|
export class LicenseAPI extends TestAPI {
|
||||||
constructor(config: TestConfiguration) {
|
|
||||||
super(config)
|
|
||||||
}
|
|
||||||
|
|
||||||
refresh = async () => {
|
refresh = async () => {
|
||||||
return this.request
|
return this.request
|
||||||
.post("/api/global/license/refresh")
|
.post("/api/global/license/refresh")
|
||||||
|
|
|
@ -1,11 +1,6 @@
|
||||||
import TestConfiguration from "../TestConfiguration"
|
|
||||||
import { TestAPI, TestAPIOpts } from "./base"
|
import { TestAPI, TestAPIOpts } from "./base"
|
||||||
|
|
||||||
export class MigrationAPI extends TestAPI {
|
export class MigrationAPI extends TestAPI {
|
||||||
constructor(config: TestConfiguration) {
|
|
||||||
super(config)
|
|
||||||
}
|
|
||||||
|
|
||||||
runMigrations = (opts?: TestAPIOpts) => {
|
runMigrations = (opts?: TestAPIOpts) => {
|
||||||
return this.request
|
return this.request
|
||||||
.post(`/api/system/migrations/run`)
|
.post(`/api/system/migrations/run`)
|
||||||
|
|
|
@ -1,11 +1,6 @@
|
||||||
import TestConfiguration from "../TestConfiguration"
|
|
||||||
import { TestAPI, TestAPIOpts } from "./base"
|
import { TestAPI, TestAPIOpts } from "./base"
|
||||||
|
|
||||||
export class RestoreAPI extends TestAPI {
|
export class RestoreAPI extends TestAPI {
|
||||||
constructor(config: TestConfiguration) {
|
|
||||||
super(config)
|
|
||||||
}
|
|
||||||
|
|
||||||
restored = (opts?: TestAPIOpts) => {
|
restored = (opts?: TestAPIOpts) => {
|
||||||
return this.request
|
return this.request
|
||||||
.post(`/api/system/restored`)
|
.post(`/api/system/restored`)
|
||||||
|
|
|
@ -1,11 +1,6 @@
|
||||||
import TestConfiguration from "../TestConfiguration"
|
|
||||||
import { TestAPI, TestAPIOpts } from "./base"
|
import { TestAPI, TestAPIOpts } from "./base"
|
||||||
|
|
||||||
export class RolesAPI extends TestAPI {
|
export class RolesAPI extends TestAPI {
|
||||||
constructor(config: TestConfiguration) {
|
|
||||||
super(config)
|
|
||||||
}
|
|
||||||
|
|
||||||
get = (opts?: TestAPIOpts) => {
|
get = (opts?: TestAPIOpts) => {
|
||||||
return this.request
|
return this.request
|
||||||
.get(`/api/global/roles`)
|
.get(`/api/global/roles`)
|
||||||
|
|
|
@ -4,14 +4,9 @@ import {
|
||||||
ScimGroupResponse,
|
ScimGroupResponse,
|
||||||
ScimUpdateRequest,
|
ScimUpdateRequest,
|
||||||
} from "@budibase/types"
|
} from "@budibase/types"
|
||||||
import TestConfiguration from "../../TestConfiguration"
|
|
||||||
import { RequestSettings, ScimTestAPI } from "./shared"
|
import { RequestSettings, ScimTestAPI } from "./shared"
|
||||||
|
|
||||||
export class ScimGroupsAPI extends ScimTestAPI {
|
export class ScimGroupsAPI extends ScimTestAPI {
|
||||||
constructor(config: TestConfiguration) {
|
|
||||||
super(config)
|
|
||||||
}
|
|
||||||
|
|
||||||
get = async (
|
get = async (
|
||||||
requestSettings?: Partial<RequestSettings> & {
|
requestSettings?: Partial<RequestSettings> & {
|
||||||
params?: {
|
params?: {
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
import TestConfiguration from "../../TestConfiguration"
|
|
||||||
import { TestAPI } from "../base"
|
import { TestAPI } from "../base"
|
||||||
|
|
||||||
const defaultConfig: RequestSettings = {
|
const defaultConfig: RequestSettings = {
|
||||||
|
@ -14,10 +13,6 @@ export type RequestSettings = {
|
||||||
}
|
}
|
||||||
|
|
||||||
export abstract class ScimTestAPI extends TestAPI {
|
export abstract class ScimTestAPI extends TestAPI {
|
||||||
constructor(config: TestConfiguration) {
|
|
||||||
super(config)
|
|
||||||
}
|
|
||||||
|
|
||||||
call = (
|
call = (
|
||||||
url: string,
|
url: string,
|
||||||
method: "get" | "post" | "patch" | "delete",
|
method: "get" | "post" | "patch" | "delete",
|
||||||
|
|
|
@ -4,14 +4,9 @@ import {
|
||||||
ScimUserResponse,
|
ScimUserResponse,
|
||||||
ScimUpdateRequest,
|
ScimUpdateRequest,
|
||||||
} from "@budibase/types"
|
} from "@budibase/types"
|
||||||
import TestConfiguration from "../../TestConfiguration"
|
|
||||||
import { RequestSettings, ScimTestAPI } from "./shared"
|
import { RequestSettings, ScimTestAPI } from "./shared"
|
||||||
|
|
||||||
export class ScimUsersAPI extends ScimTestAPI {
|
export class ScimUsersAPI extends ScimTestAPI {
|
||||||
constructor(config: TestConfiguration) {
|
|
||||||
super(config)
|
|
||||||
}
|
|
||||||
|
|
||||||
get = async (
|
get = async (
|
||||||
requestSettings?: Partial<RequestSettings> & {
|
requestSettings?: Partial<RequestSettings> & {
|
||||||
params?: {
|
params?: {
|
||||||
|
|
|
@ -1,12 +1,7 @@
|
||||||
import TestConfiguration from "../TestConfiguration"
|
|
||||||
import { User } from "@budibase/types"
|
import { User } from "@budibase/types"
|
||||||
import { TestAPI } from "./base"
|
import { TestAPI } from "./base"
|
||||||
|
|
||||||
export class SelfAPI extends TestAPI {
|
export class SelfAPI extends TestAPI {
|
||||||
constructor(config: TestConfiguration) {
|
|
||||||
super(config)
|
|
||||||
}
|
|
||||||
|
|
||||||
updateSelf = (user: User, update: any) => {
|
updateSelf = (user: User, update: any) => {
|
||||||
return this.request
|
return this.request
|
||||||
.post(`/api/global/self`)
|
.post(`/api/global/self`)
|
||||||
|
|
|
@ -1,11 +1,6 @@
|
||||||
import TestConfiguration from "../TestConfiguration"
|
|
||||||
import { TestAPI } from "./base"
|
import { TestAPI } from "./base"
|
||||||
|
|
||||||
export class StatusAPI extends TestAPI {
|
export class StatusAPI extends TestAPI {
|
||||||
constructor(config: TestConfiguration) {
|
|
||||||
super(config)
|
|
||||||
}
|
|
||||||
|
|
||||||
getStatus = () => {
|
getStatus = () => {
|
||||||
return this.request.get(`/api/system/status`).expect(200)
|
return this.request.get(`/api/system/status`).expect(200)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,6 @@
|
||||||
import TestConfiguration from "../TestConfiguration"
|
|
||||||
import { TestAPI, TestAPIOpts } from "./base"
|
import { TestAPI, TestAPIOpts } from "./base"
|
||||||
|
|
||||||
export class TemplatesAPI extends TestAPI {
|
export class TemplatesAPI extends TestAPI {
|
||||||
constructor(config: TestConfiguration) {
|
|
||||||
super(config)
|
|
||||||
}
|
|
||||||
|
|
||||||
definitions = (opts?: TestAPIOpts) => {
|
definitions = (opts?: TestAPIOpts) => {
|
||||||
return this.request
|
return this.request
|
||||||
.get(`/api/global/template/definitions`)
|
.get(`/api/global/template/definitions`)
|
||||||
|
|
|
@ -9,14 +9,9 @@ import {
|
||||||
} from "@budibase/types"
|
} from "@budibase/types"
|
||||||
import structures from "../structures"
|
import structures from "../structures"
|
||||||
import { generator } from "@budibase/backend-core/tests"
|
import { generator } from "@budibase/backend-core/tests"
|
||||||
import TestConfiguration from "../TestConfiguration"
|
|
||||||
import { TestAPI, TestAPIOpts } from "./base"
|
import { TestAPI, TestAPIOpts } from "./base"
|
||||||
|
|
||||||
export class UserAPI extends TestAPI {
|
export class UserAPI extends TestAPI {
|
||||||
constructor(config: TestConfiguration) {
|
|
||||||
super(config)
|
|
||||||
}
|
|
||||||
|
|
||||||
// INVITE
|
// INVITE
|
||||||
|
|
||||||
sendUserInvite = async (sendMailMock: any, email: string, status = 200) => {
|
sendUserInvite = async (sendMailMock: any, email: string, status = 200) => {
|
||||||
|
@ -178,11 +173,7 @@ export class UserAPI extends TestAPI {
|
||||||
.expect(opts?.status ? opts.status : 200)
|
.expect(opts?.status ? opts.status : 200)
|
||||||
}
|
}
|
||||||
|
|
||||||
grantBuilderToApp = (
|
grantBuilderToApp = (userId: string, appId: string, statusCode = 200) => {
|
||||||
userId: string,
|
|
||||||
appId: string,
|
|
||||||
statusCode: number = 200
|
|
||||||
) => {
|
|
||||||
return this.request
|
return this.request
|
||||||
.post(`/api/global/users/${userId}/app/${appId}/builder`)
|
.post(`/api/global/users/${userId}/app/${appId}/builder`)
|
||||||
.set(this.config.defaultHeaders())
|
.set(this.config.defaultHeaders())
|
||||||
|
|
|
@ -42,7 +42,7 @@ const svelteCompilePlugin = {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
var { argv } = require("yargs")
|
let { argv } = require("yargs")
|
||||||
|
|
||||||
async function runBuild(entry, outfile) {
|
async function runBuild(entry, outfile) {
|
||||||
const isDev = process.env.NODE_ENV !== "production"
|
const isDev = process.env.NODE_ENV !== "production"
|
||||||
|
|
550
yarn.lock
550
yarn.lock
|
@ -964,10 +964,10 @@
|
||||||
json5 "^2.2.2"
|
json5 "^2.2.2"
|
||||||
semver "^6.3.0"
|
semver "^6.3.0"
|
||||||
|
|
||||||
"@babel/eslint-parser@^7.22.5":
|
"@babel/eslint-parser@7.25.9":
|
||||||
version "7.23.3"
|
version "7.25.9"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.23.3.tgz#7bf0db1c53b54da0c8a12627373554a0828479ca"
|
resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.25.9.tgz#603c68a63078796527bc9d0833f5e52dd5f9224c"
|
||||||
integrity sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==
|
integrity sha512-5UXfgpK0j0Xr/xIdgdLEhOFxaDZ0bRPWJJchRpqOSur/3rZoPbqqki5mm0p4NE2cs28krBEiSM2MB7//afRSQQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1"
|
"@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1"
|
||||||
eslint-visitor-keys "^2.1.0"
|
eslint-visitor-keys "^2.1.0"
|
||||||
|
@ -2670,6 +2670,27 @@
|
||||||
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae"
|
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae"
|
||||||
integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==
|
integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==
|
||||||
|
|
||||||
|
"@eslint-community/regexpp@^4.12.1":
|
||||||
|
version "4.12.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0"
|
||||||
|
integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
|
||||||
|
|
||||||
|
"@eslint/config-array@^0.19.0":
|
||||||
|
version "0.19.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.19.1.tgz#734aaea2c40be22bbb1f2a9dac687c57a6a4c984"
|
||||||
|
integrity sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==
|
||||||
|
dependencies:
|
||||||
|
"@eslint/object-schema" "^2.1.5"
|
||||||
|
debug "^4.3.1"
|
||||||
|
minimatch "^3.1.2"
|
||||||
|
|
||||||
|
"@eslint/core@^0.9.0":
|
||||||
|
version "0.9.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.9.1.tgz#31763847308ef6b7084a4505573ac9402c51f9d1"
|
||||||
|
integrity sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==
|
||||||
|
dependencies:
|
||||||
|
"@types/json-schema" "^7.0.15"
|
||||||
|
|
||||||
"@eslint/eslintrc@^2.1.4":
|
"@eslint/eslintrc@^2.1.4":
|
||||||
version "2.1.4"
|
version "2.1.4"
|
||||||
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad"
|
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad"
|
||||||
|
@ -2685,11 +2706,43 @@
|
||||||
minimatch "^3.1.2"
|
minimatch "^3.1.2"
|
||||||
strip-json-comments "^3.1.1"
|
strip-json-comments "^3.1.1"
|
||||||
|
|
||||||
|
"@eslint/eslintrc@^3.2.0":
|
||||||
|
version "3.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.2.0.tgz#57470ac4e2e283a6bf76044d63281196e370542c"
|
||||||
|
integrity sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==
|
||||||
|
dependencies:
|
||||||
|
ajv "^6.12.4"
|
||||||
|
debug "^4.3.2"
|
||||||
|
espree "^10.0.1"
|
||||||
|
globals "^14.0.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"
|
||||||
|
|
||||||
"@eslint/js@8.57.0":
|
"@eslint/js@8.57.0":
|
||||||
version "8.57.0"
|
version "8.57.0"
|
||||||
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f"
|
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f"
|
||||||
integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==
|
integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==
|
||||||
|
|
||||||
|
"@eslint/js@9.16.0":
|
||||||
|
version "9.16.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.16.0.tgz#3df2b2dd3b9163056616886c86e4082f45dbf3f4"
|
||||||
|
integrity sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==
|
||||||
|
|
||||||
|
"@eslint/object-schema@^2.1.5":
|
||||||
|
version "2.1.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.5.tgz#8670a8f6258a2be5b2c620ff314a1d984c23eb2e"
|
||||||
|
integrity sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==
|
||||||
|
|
||||||
|
"@eslint/plugin-kit@^0.2.3":
|
||||||
|
version "0.2.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz#2b78e7bb3755784bb13faa8932a1d994d6537792"
|
||||||
|
integrity sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==
|
||||||
|
dependencies:
|
||||||
|
levn "^0.4.1"
|
||||||
|
|
||||||
"@fastify/busboy@^2.0.0":
|
"@fastify/busboy@^2.0.0":
|
||||||
version "2.1.1"
|
version "2.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d"
|
resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d"
|
||||||
|
@ -2810,6 +2863,19 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@hapi/hoek" "^9.0.0"
|
"@hapi/hoek" "^9.0.0"
|
||||||
|
|
||||||
|
"@humanfs/core@^0.19.1":
|
||||||
|
version "0.19.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77"
|
||||||
|
integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==
|
||||||
|
|
||||||
|
"@humanfs/node@^0.16.6":
|
||||||
|
version "0.16.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.6.tgz#ee2a10eaabd1131987bf0488fd9b820174cd765e"
|
||||||
|
integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==
|
||||||
|
dependencies:
|
||||||
|
"@humanfs/core" "^0.19.1"
|
||||||
|
"@humanwhocodes/retry" "^0.3.0"
|
||||||
|
|
||||||
"@humanwhocodes/config-array@^0.11.14":
|
"@humanwhocodes/config-array@^0.11.14":
|
||||||
version "0.11.14"
|
version "0.11.14"
|
||||||
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b"
|
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b"
|
||||||
|
@ -2829,6 +2895,16 @@
|
||||||
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3"
|
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3"
|
||||||
integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==
|
integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==
|
||||||
|
|
||||||
|
"@humanwhocodes/retry@^0.3.0":
|
||||||
|
version "0.3.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a"
|
||||||
|
integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==
|
||||||
|
|
||||||
|
"@humanwhocodes/retry@^0.4.1":
|
||||||
|
version "0.4.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.1.tgz#9a96ce501bc62df46c4031fbd970e3cc6b10f07b"
|
||||||
|
integrity sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==
|
||||||
|
|
||||||
"@hutson/parse-repository-url@^3.0.0":
|
"@hutson/parse-repository-url@^3.0.0":
|
||||||
version "3.0.2"
|
version "3.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340"
|
resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340"
|
||||||
|
@ -5512,6 +5588,11 @@
|
||||||
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
|
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
|
||||||
integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
|
integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
|
||||||
|
|
||||||
|
"@types/estree@^1.0.6":
|
||||||
|
version "1.0.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50"
|
||||||
|
integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
|
||||||
|
|
||||||
"@types/express-serve-static-core@^4.17.33":
|
"@types/express-serve-static-core@^4.17.33":
|
||||||
version "4.17.33"
|
version "4.17.33"
|
||||||
resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz#de35d30a9d637dc1450ad18dd583d75d5733d543"
|
resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz#de35d30a9d637dc1450ad18dd583d75d5733d543"
|
||||||
|
@ -5594,7 +5675,7 @@
|
||||||
expect "^29.0.0"
|
expect "^29.0.0"
|
||||||
pretty-format "^29.0.0"
|
pretty-format "^29.0.0"
|
||||||
|
|
||||||
"@types/json-schema@^7.0.6", "@types/json-schema@^7.0.9":
|
"@types/json-schema@^7.0.15", "@types/json-schema@^7.0.6":
|
||||||
version "7.0.15"
|
version "7.0.15"
|
||||||
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
|
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
|
||||||
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
|
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
|
||||||
|
@ -6047,11 +6128,6 @@
|
||||||
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.7.tgz#b9eb89d7dfa70d5d1ce525bc1411a35347f533a3"
|
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.7.tgz#b9eb89d7dfa70d5d1ce525bc1411a35347f533a3"
|
||||||
integrity sha512-4g1jrL98mdOIwSOUh6LTlB0Cs9I0dQPwINUhBg7C6pN4HLr8GS8xsksJxilW6S6dQHVi2K/o+lQuQcg7LroCnw==
|
integrity sha512-4g1jrL98mdOIwSOUh6LTlB0Cs9I0dQPwINUhBg7C6pN4HLr8GS8xsksJxilW6S6dQHVi2K/o+lQuQcg7LroCnw==
|
||||||
|
|
||||||
"@types/semver@^7.3.12":
|
|
||||||
version "7.5.8"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e"
|
|
||||||
integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==
|
|
||||||
|
|
||||||
"@types/serve-static@*":
|
"@types/serve-static@*":
|
||||||
version "1.15.1"
|
version "1.15.1"
|
||||||
resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.1.tgz#86b1753f0be4f9a1bee68d459fcda5be4ea52b5d"
|
resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.1.tgz#86b1753f0be4f9a1bee68d459fcda5be4ea52b5d"
|
||||||
|
@ -6218,74 +6294,47 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/yargs-parser" "*"
|
"@types/yargs-parser" "*"
|
||||||
|
|
||||||
"@typescript-eslint/eslint-plugin@7.18.0":
|
"@typescript-eslint/eslint-plugin@8.17.0":
|
||||||
version "7.18.0"
|
version "8.17.0"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz#b16d3cf3ee76bf572fdf511e79c248bdec619ea3"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.17.0.tgz#2ee073c421f4e81e02d10e731241664b6253b23c"
|
||||||
integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==
|
integrity sha512-HU1KAdW3Tt8zQkdvNoIijfWDMvdSweFYm4hWh+KwhPstv+sCmWb89hCIP8msFm9N1R/ooh9honpSuvqKWlYy3w==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@eslint-community/regexpp" "^4.10.0"
|
"@eslint-community/regexpp" "^4.10.0"
|
||||||
"@typescript-eslint/scope-manager" "7.18.0"
|
"@typescript-eslint/scope-manager" "8.17.0"
|
||||||
"@typescript-eslint/type-utils" "7.18.0"
|
"@typescript-eslint/type-utils" "8.17.0"
|
||||||
"@typescript-eslint/utils" "7.18.0"
|
"@typescript-eslint/utils" "8.17.0"
|
||||||
"@typescript-eslint/visitor-keys" "7.18.0"
|
"@typescript-eslint/visitor-keys" "8.17.0"
|
||||||
graphemer "^1.4.0"
|
graphemer "^1.4.0"
|
||||||
ignore "^5.3.1"
|
ignore "^5.3.1"
|
||||||
natural-compare "^1.4.0"
|
natural-compare "^1.4.0"
|
||||||
ts-api-utils "^1.3.0"
|
ts-api-utils "^1.3.0"
|
||||||
|
|
||||||
"@typescript-eslint/parser@6.9.0":
|
"@typescript-eslint/parser@8.17.0":
|
||||||
version "6.9.0"
|
version "8.17.0"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.9.0.tgz#2b402cadeadd3f211c25820e5433413347b27391"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.17.0.tgz#2ee972bb12fa69ac625b85813dc8d9a5a053ff52"
|
||||||
integrity sha512-GZmjMh4AJ/5gaH4XF2eXA8tMnHWP+Pm1mjQR2QN4Iz+j/zO04b9TOvJYOX2sCNIQHtRStKTxRY1FX7LhpJT4Gw==
|
integrity sha512-Drp39TXuUlD49F7ilHHCG7TTg8IkA+hxCuULdmzWYICxGXvDXmDmWEjJYZQYgf6l/TFfYNE167m7isnc3xlIEg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/scope-manager" "6.9.0"
|
"@typescript-eslint/scope-manager" "8.17.0"
|
||||||
"@typescript-eslint/types" "6.9.0"
|
"@typescript-eslint/types" "8.17.0"
|
||||||
"@typescript-eslint/typescript-estree" "6.9.0"
|
"@typescript-eslint/typescript-estree" "8.17.0"
|
||||||
"@typescript-eslint/visitor-keys" "6.9.0"
|
"@typescript-eslint/visitor-keys" "8.17.0"
|
||||||
debug "^4.3.4"
|
debug "^4.3.4"
|
||||||
|
|
||||||
"@typescript-eslint/parser@7.18.0":
|
"@typescript-eslint/scope-manager@8.17.0":
|
||||||
version "7.18.0"
|
version "8.17.0"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.18.0.tgz#83928d0f1b7f4afa974098c64b5ce6f9051f96a0"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.17.0.tgz#a3f49bf3d4d27ff8d6b2ea099ba465ef4dbcaa3a"
|
||||||
integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==
|
integrity sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/scope-manager" "7.18.0"
|
"@typescript-eslint/types" "8.17.0"
|
||||||
"@typescript-eslint/types" "7.18.0"
|
"@typescript-eslint/visitor-keys" "8.17.0"
|
||||||
"@typescript-eslint/typescript-estree" "7.18.0"
|
|
||||||
"@typescript-eslint/visitor-keys" "7.18.0"
|
|
||||||
debug "^4.3.4"
|
|
||||||
|
|
||||||
"@typescript-eslint/scope-manager@5.62.0":
|
"@typescript-eslint/type-utils@8.17.0":
|
||||||
version "5.62.0"
|
version "8.17.0"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.17.0.tgz#d326569f498cdd0edf58d5bb6030b4ad914e63d3"
|
||||||
integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==
|
integrity sha512-q38llWJYPd63rRnJ6wY/ZQqIzPrBCkPdpIsaCfkR3Q4t3p6sb422zougfad4TFW9+ElIFLVDzWGiGAfbb/v2qw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/types" "5.62.0"
|
"@typescript-eslint/typescript-estree" "8.17.0"
|
||||||
"@typescript-eslint/visitor-keys" "5.62.0"
|
"@typescript-eslint/utils" "8.17.0"
|
||||||
|
|
||||||
"@typescript-eslint/scope-manager@6.9.0":
|
|
||||||
version "6.9.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.9.0.tgz#2626e9a7fe0e004c3e25f3b986c75f584431134e"
|
|
||||||
integrity sha512-1R8A9Mc39n4pCCz9o79qRO31HGNDvC7UhPhv26TovDsWPBDx+Sg3rOZdCELIA3ZmNoWAuxaMOT7aWtGRSYkQxw==
|
|
||||||
dependencies:
|
|
||||||
"@typescript-eslint/types" "6.9.0"
|
|
||||||
"@typescript-eslint/visitor-keys" "6.9.0"
|
|
||||||
|
|
||||||
"@typescript-eslint/scope-manager@7.18.0":
|
|
||||||
version "7.18.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz#c928e7a9fc2c0b3ed92ab3112c614d6bd9951c83"
|
|
||||||
integrity sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==
|
|
||||||
dependencies:
|
|
||||||
"@typescript-eslint/types" "7.18.0"
|
|
||||||
"@typescript-eslint/visitor-keys" "7.18.0"
|
|
||||||
|
|
||||||
"@typescript-eslint/type-utils@7.18.0":
|
|
||||||
version "7.18.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz#2165ffaee00b1fbbdd2d40aa85232dab6998f53b"
|
|
||||||
integrity sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==
|
|
||||||
dependencies:
|
|
||||||
"@typescript-eslint/typescript-estree" "7.18.0"
|
|
||||||
"@typescript-eslint/utils" "7.18.0"
|
|
||||||
debug "^4.3.4"
|
debug "^4.3.4"
|
||||||
ts-api-utils "^1.3.0"
|
ts-api-utils "^1.3.0"
|
||||||
|
|
||||||
|
@ -6299,51 +6348,20 @@
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f"
|
||||||
integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==
|
integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==
|
||||||
|
|
||||||
"@typescript-eslint/types@6.9.0":
|
"@typescript-eslint/types@8.17.0":
|
||||||
version "6.9.0"
|
version "8.17.0"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.9.0.tgz#86a0cbe7ac46c0761429f928467ff3d92f841098"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.17.0.tgz#ef84c709ef8324e766878834970bea9a7e3b72cf"
|
||||||
integrity sha512-+KB0lbkpxBkBSiVCuQvduqMJy+I1FyDbdwSpM3IoBS7APl4Bu15lStPjgBIdykdRqQNYqYNMa8Kuidax6phaEw==
|
integrity sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA==
|
||||||
|
|
||||||
"@typescript-eslint/types@7.18.0":
|
"@typescript-eslint/typescript-estree@8.17.0":
|
||||||
version "7.18.0"
|
version "8.17.0"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.17.0.tgz#40b5903bc929b1e8dd9c77db3cb52cfb199a2a34"
|
||||||
integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==
|
integrity sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw==
|
||||||
|
|
||||||
"@typescript-eslint/typescript-estree@5.62.0", "@typescript-eslint/typescript-estree@^5.13.0":
|
|
||||||
version "5.62.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b"
|
|
||||||
integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/types" "5.62.0"
|
"@typescript-eslint/types" "8.17.0"
|
||||||
"@typescript-eslint/visitor-keys" "5.62.0"
|
"@typescript-eslint/visitor-keys" "8.17.0"
|
||||||
debug "^4.3.4"
|
debug "^4.3.4"
|
||||||
globby "^11.1.0"
|
fast-glob "^3.3.2"
|
||||||
is-glob "^4.0.3"
|
|
||||||
semver "^7.3.7"
|
|
||||||
tsutils "^3.21.0"
|
|
||||||
|
|
||||||
"@typescript-eslint/typescript-estree@6.9.0":
|
|
||||||
version "6.9.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.9.0.tgz#d0601b245be873d8fe49f3737f93f8662c8693d4"
|
|
||||||
integrity sha512-NJM2BnJFZBEAbCfBP00zONKXvMqihZCrmwCaik0UhLr0vAgb6oguXxLX1k00oQyD+vZZ+CJn3kocvv2yxm4awQ==
|
|
||||||
dependencies:
|
|
||||||
"@typescript-eslint/types" "6.9.0"
|
|
||||||
"@typescript-eslint/visitor-keys" "6.9.0"
|
|
||||||
debug "^4.3.4"
|
|
||||||
globby "^11.1.0"
|
|
||||||
is-glob "^4.0.3"
|
|
||||||
semver "^7.5.4"
|
|
||||||
ts-api-utils "^1.0.1"
|
|
||||||
|
|
||||||
"@typescript-eslint/typescript-estree@7.18.0":
|
|
||||||
version "7.18.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz#b5868d486c51ce8f312309ba79bdb9f331b37931"
|
|
||||||
integrity sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==
|
|
||||||
dependencies:
|
|
||||||
"@typescript-eslint/types" "7.18.0"
|
|
||||||
"@typescript-eslint/visitor-keys" "7.18.0"
|
|
||||||
debug "^4.3.4"
|
|
||||||
globby "^11.1.0"
|
|
||||||
is-glob "^4.0.3"
|
is-glob "^4.0.3"
|
||||||
minimatch "^9.0.4"
|
minimatch "^9.0.4"
|
||||||
semver "^7.6.0"
|
semver "^7.6.0"
|
||||||
|
@ -6362,29 +6380,28 @@
|
||||||
semver "^7.3.5"
|
semver "^7.3.5"
|
||||||
tsutils "^3.21.0"
|
tsutils "^3.21.0"
|
||||||
|
|
||||||
"@typescript-eslint/utils@7.18.0":
|
"@typescript-eslint/typescript-estree@^5.13.0":
|
||||||
version "7.18.0"
|
version "5.62.0"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.18.0.tgz#bca01cde77f95fc6a8d5b0dbcbfb3d6ca4be451f"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b"
|
||||||
integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==
|
integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==
|
||||||
|
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"
|
||||||
|
|
||||||
|
"@typescript-eslint/utils@8.17.0", "@typescript-eslint/utils@^6.0.0 || ^7.0.0 || ^8.0.0":
|
||||||
|
version "8.17.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.17.0.tgz#41c05105a2b6ab7592f513d2eeb2c2c0236d8908"
|
||||||
|
integrity sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@eslint-community/eslint-utils" "^4.4.0"
|
"@eslint-community/eslint-utils" "^4.4.0"
|
||||||
"@typescript-eslint/scope-manager" "7.18.0"
|
"@typescript-eslint/scope-manager" "8.17.0"
|
||||||
"@typescript-eslint/types" "7.18.0"
|
"@typescript-eslint/types" "8.17.0"
|
||||||
"@typescript-eslint/typescript-estree" "7.18.0"
|
"@typescript-eslint/typescript-estree" "8.17.0"
|
||||||
|
|
||||||
"@typescript-eslint/utils@^5.10.0":
|
|
||||||
version "5.62.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86"
|
|
||||||
integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==
|
|
||||||
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"
|
|
||||||
|
|
||||||
"@typescript-eslint/visitor-keys@4.33.0":
|
"@typescript-eslint/visitor-keys@4.33.0":
|
||||||
version "4.33.0"
|
version "4.33.0"
|
||||||
|
@ -6402,27 +6419,24 @@
|
||||||
"@typescript-eslint/types" "5.62.0"
|
"@typescript-eslint/types" "5.62.0"
|
||||||
eslint-visitor-keys "^3.3.0"
|
eslint-visitor-keys "^3.3.0"
|
||||||
|
|
||||||
"@typescript-eslint/visitor-keys@6.9.0":
|
"@typescript-eslint/visitor-keys@8.17.0":
|
||||||
version "6.9.0"
|
version "8.17.0"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.9.0.tgz#cc69421c10c4ac997ed34f453027245988164e80"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.17.0.tgz#4dbcd0e28b9bf951f4293805bf34f98df45e1aa8"
|
||||||
integrity sha512-dGtAfqjV6RFOtIP8I0B4ZTBRrlTT8NHHlZZSchQx3qReaoDeXhYM++M4So2AgFK9ZB0emRPA6JI1HkafzA2Ibg==
|
integrity sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/types" "6.9.0"
|
"@typescript-eslint/types" "8.17.0"
|
||||||
eslint-visitor-keys "^3.4.1"
|
eslint-visitor-keys "^4.2.0"
|
||||||
|
|
||||||
"@typescript-eslint/visitor-keys@7.18.0":
|
|
||||||
version "7.18.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz#0564629b6124d67607378d0f0332a0495b25e7d7"
|
|
||||||
integrity sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==
|
|
||||||
dependencies:
|
|
||||||
"@typescript-eslint/types" "7.18.0"
|
|
||||||
eslint-visitor-keys "^3.4.3"
|
|
||||||
|
|
||||||
"@ungap/structured-clone@^1.2.0":
|
"@ungap/structured-clone@^1.2.0":
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
|
resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
|
||||||
integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
|
integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
|
||||||
|
|
||||||
|
"@vitest/eslint-plugin@^1.1.14":
|
||||||
|
version "1.1.14"
|
||||||
|
resolved "https://registry.yarnpkg.com/@vitest/eslint-plugin/-/eslint-plugin-1.1.14.tgz#dc3bb332461282cfab213b76e5e42bd2dad5929b"
|
||||||
|
integrity sha512-ej0cT5rUt7uvwxuu7Qxkm7fI+eaOq8vD34qGpuRoXCdvOybOlE5GDqtgvVCYbxLANkcRJfm5VDU1TnJmQRHi9g==
|
||||||
|
|
||||||
"@vitest/expect@0.29.8":
|
"@vitest/expect@0.29.8":
|
||||||
version "0.29.8"
|
version "0.29.8"
|
||||||
resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.29.8.tgz#6ecdd031b4ea8414717d10b65ccd800908384612"
|
resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.29.8.tgz#6ecdd031b4ea8414717d10b65ccd800908384612"
|
||||||
|
@ -6701,6 +6715,11 @@ acorn@^8.1.0, acorn@^8.10.0, acorn@^8.11.0, acorn@^8.11.3, acorn@^8.2.4, acorn@^
|
||||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248"
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248"
|
||||||
integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==
|
integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==
|
||||||
|
|
||||||
|
acorn@^8.14.0:
|
||||||
|
version "8.14.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0"
|
||||||
|
integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==
|
||||||
|
|
||||||
add-stream@^1.0.0:
|
add-stream@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa"
|
resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa"
|
||||||
|
@ -8797,7 +8816,7 @@ cron-validate@1.4.5:
|
||||||
dependencies:
|
dependencies:
|
||||||
yup "0.32.9"
|
yup "0.32.9"
|
||||||
|
|
||||||
cross-spawn@7.0.6:
|
cross-spawn@7.0.6, cross-spawn@^7.0.5:
|
||||||
version "7.0.6"
|
version "7.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
|
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
|
||||||
integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
|
integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
|
||||||
|
@ -10322,10 +10341,12 @@ escodegen@^2.0.0:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
source-map "~0.6.1"
|
source-map "~0.6.1"
|
||||||
|
|
||||||
eslint-compat-utils@^0.1.2:
|
eslint-compat-utils@^0.5.1:
|
||||||
version "0.1.2"
|
version "0.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz#f45e3b5ced4c746c127cf724fb074cd4e730d653"
|
resolved "https://registry.yarnpkg.com/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz#7fc92b776d185a70c4070d03fd26fde3d59652e4"
|
||||||
integrity sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==
|
integrity sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==
|
||||||
|
dependencies:
|
||||||
|
semver "^7.5.4"
|
||||||
|
|
||||||
eslint-config-airbnb-base@^15.0.0:
|
eslint-config-airbnb-base@^15.0.0:
|
||||||
version "15.0.0"
|
version "15.0.0"
|
||||||
|
@ -10353,7 +10374,7 @@ eslint-module-utils@^2.8.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
debug "^3.2.7"
|
debug "^3.2.7"
|
||||||
|
|
||||||
eslint-plugin-import@^2.26.0, eslint-plugin-import@^2.29.0:
|
eslint-plugin-import@^2.26.0:
|
||||||
version "2.29.1"
|
version "2.29.1"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643"
|
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643"
|
||||||
integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==
|
integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==
|
||||||
|
@ -10376,37 +10397,36 @@ eslint-plugin-import@^2.26.0, eslint-plugin-import@^2.29.0:
|
||||||
semver "^6.3.1"
|
semver "^6.3.1"
|
||||||
tsconfig-paths "^3.15.0"
|
tsconfig-paths "^3.15.0"
|
||||||
|
|
||||||
eslint-plugin-jest@^27.9.0:
|
eslint-plugin-jest@28.9.0:
|
||||||
version "27.9.0"
|
version "28.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz#7c98a33605e1d8b8442ace092b60e9919730000b"
|
resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-28.9.0.tgz#19168dfaed124339cd2252c4c4d1ac3688aeb243"
|
||||||
integrity sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==
|
integrity sha512-rLu1s1Wf96TgUUxSw6loVIkNtUjq1Re7A9QdCCHSohnvXEBAjuL420h0T/fMmkQlNsQP2GhQzEUpYHPfxBkvYQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/utils" "^5.10.0"
|
"@typescript-eslint/utils" "^6.0.0 || ^7.0.0 || ^8.0.0"
|
||||||
|
|
||||||
eslint-plugin-local-rules@^2.0.0:
|
eslint-plugin-local-rules@3.0.2:
|
||||||
version "2.0.0"
|
version "3.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-plugin-local-rules/-/eslint-plugin-local-rules-2.0.0.tgz#cda95d7616cc0e2609d76c347c187ca2be1e252e"
|
resolved "https://registry.yarnpkg.com/eslint-plugin-local-rules/-/eslint-plugin-local-rules-3.0.2.tgz#84c02ea1d604ecb00970779ad27f00738ff361ae"
|
||||||
integrity sha512-sWueme0kUcP0JC1+6OBDQ9edBDVFJR92WJHSRbhiRExlenMEuUisdaVBPR+ItFBFXo2Pdw6FD2UfGZWkz8e93g==
|
integrity sha512-IWME7GIYHXogTkFsToLdBCQVJ0U4kbSuVyDT+nKoR4UgtnVrrVeNWuAZkdEu1nxkvi9nsPccGehEEF6dgA28IQ==
|
||||||
|
|
||||||
eslint-plugin-svelte@^2.34.0:
|
eslint-plugin-svelte@2.46.1:
|
||||||
version "2.35.1"
|
version "2.46.1"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-plugin-svelte/-/eslint-plugin-svelte-2.35.1.tgz#7b1e3c263b09dbc9293c25fe02d03d309725d2b9"
|
resolved "https://registry.yarnpkg.com/eslint-plugin-svelte/-/eslint-plugin-svelte-2.46.1.tgz#22691c8685420cd4eabf0cbaa31a0cfb8395595b"
|
||||||
integrity sha512-IF8TpLnROSGy98Z3NrsKXWDSCbNY2ReHDcrYTuXZMbfX7VmESISR78TWgO9zdg4Dht1X8coub5jKwHzP0ExRug==
|
integrity sha512-7xYr2o4NID/f9OEYMqxsEQsCsj4KaMy4q5sANaKkAb6/QeCjYFxRmDm2S3YC3A3pl1kyPZ/syOx/i7LcWYSbIw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@eslint-community/eslint-utils" "^4.2.0"
|
"@eslint-community/eslint-utils" "^4.4.0"
|
||||||
"@jridgewell/sourcemap-codec" "^1.4.14"
|
"@jridgewell/sourcemap-codec" "^1.4.15"
|
||||||
debug "^4.3.1"
|
eslint-compat-utils "^0.5.1"
|
||||||
eslint-compat-utils "^0.1.2"
|
|
||||||
esutils "^2.0.3"
|
esutils "^2.0.3"
|
||||||
known-css-properties "^0.29.0"
|
known-css-properties "^0.35.0"
|
||||||
postcss "^8.4.5"
|
postcss "^8.4.38"
|
||||||
postcss-load-config "^3.1.4"
|
postcss-load-config "^3.1.4"
|
||||||
postcss-safe-parser "^6.0.0"
|
postcss-safe-parser "^6.0.0"
|
||||||
postcss-selector-parser "^6.0.11"
|
postcss-selector-parser "^6.1.0"
|
||||||
semver "^7.5.3"
|
semver "^7.6.2"
|
||||||
svelte-eslint-parser ">=0.33.0 <1.0.0"
|
svelte-eslint-parser "^0.43.0"
|
||||||
|
|
||||||
eslint-scope@5.1.1, eslint-scope@^5.1.1:
|
eslint-scope@5.1.1:
|
||||||
version "5.1.1"
|
version "5.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
|
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
|
||||||
integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
|
integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
|
||||||
|
@ -10414,7 +10434,7 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1:
|
||||||
esrecurse "^4.3.0"
|
esrecurse "^4.3.0"
|
||||||
estraverse "^4.1.1"
|
estraverse "^4.1.1"
|
||||||
|
|
||||||
eslint-scope@^7.0.0, eslint-scope@^7.2.2:
|
eslint-scope@^7.2.2:
|
||||||
version "7.2.2"
|
version "7.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f"
|
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f"
|
||||||
integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
|
integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
|
||||||
|
@ -10422,17 +10442,70 @@ eslint-scope@^7.0.0, eslint-scope@^7.2.2:
|
||||||
esrecurse "^4.3.0"
|
esrecurse "^4.3.0"
|
||||||
estraverse "^5.2.0"
|
estraverse "^5.2.0"
|
||||||
|
|
||||||
|
eslint-scope@^8.2.0:
|
||||||
|
version "8.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.2.0.tgz#377aa6f1cb5dc7592cfd0b7f892fd0cf352ce442"
|
||||||
|
integrity sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==
|
||||||
|
dependencies:
|
||||||
|
esrecurse "^4.3.0"
|
||||||
|
estraverse "^5.2.0"
|
||||||
|
|
||||||
eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0:
|
eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
|
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
|
||||||
integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
|
integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
|
||||||
|
|
||||||
eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
|
eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
|
||||||
version "3.4.3"
|
version "3.4.3"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
|
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
|
||||||
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
|
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
|
||||||
|
|
||||||
eslint@^8.52.0, eslint@^8.56.0:
|
eslint-visitor-keys@^4.2.0:
|
||||||
|
version "4.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45"
|
||||||
|
integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==
|
||||||
|
|
||||||
|
eslint@9.16.0:
|
||||||
|
version "9.16.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.16.0.tgz#66832e66258922ac0a626f803a9273e37747f2a6"
|
||||||
|
integrity sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==
|
||||||
|
dependencies:
|
||||||
|
"@eslint-community/eslint-utils" "^4.2.0"
|
||||||
|
"@eslint-community/regexpp" "^4.12.1"
|
||||||
|
"@eslint/config-array" "^0.19.0"
|
||||||
|
"@eslint/core" "^0.9.0"
|
||||||
|
"@eslint/eslintrc" "^3.2.0"
|
||||||
|
"@eslint/js" "9.16.0"
|
||||||
|
"@eslint/plugin-kit" "^0.2.3"
|
||||||
|
"@humanfs/node" "^0.16.6"
|
||||||
|
"@humanwhocodes/module-importer" "^1.0.1"
|
||||||
|
"@humanwhocodes/retry" "^0.4.1"
|
||||||
|
"@types/estree" "^1.0.6"
|
||||||
|
"@types/json-schema" "^7.0.15"
|
||||||
|
ajv "^6.12.4"
|
||||||
|
chalk "^4.0.0"
|
||||||
|
cross-spawn "^7.0.5"
|
||||||
|
debug "^4.3.2"
|
||||||
|
escape-string-regexp "^4.0.0"
|
||||||
|
eslint-scope "^8.2.0"
|
||||||
|
eslint-visitor-keys "^4.2.0"
|
||||||
|
espree "^10.3.0"
|
||||||
|
esquery "^1.5.0"
|
||||||
|
esutils "^2.0.2"
|
||||||
|
fast-deep-equal "^3.1.3"
|
||||||
|
file-entry-cache "^8.0.0"
|
||||||
|
find-up "^5.0.0"
|
||||||
|
glob-parent "^6.0.2"
|
||||||
|
ignore "^5.2.0"
|
||||||
|
imurmurhash "^0.1.4"
|
||||||
|
is-glob "^4.0.0"
|
||||||
|
json-stable-stringify-without-jsonify "^1.0.1"
|
||||||
|
lodash.merge "^4.6.2"
|
||||||
|
minimatch "^3.1.2"
|
||||||
|
natural-compare "^1.4.0"
|
||||||
|
optionator "^0.9.3"
|
||||||
|
|
||||||
|
eslint@^8.56.0:
|
||||||
version "8.57.0"
|
version "8.57.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668"
|
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668"
|
||||||
integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==
|
integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==
|
||||||
|
@ -10481,7 +10554,16 @@ esm@^3.2.25:
|
||||||
resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10"
|
resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10"
|
||||||
integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==
|
integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==
|
||||||
|
|
||||||
espree@^9.0.0, espree@^9.6.0, espree@^9.6.1:
|
espree@^10.0.1, espree@^10.3.0:
|
||||||
|
version "10.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/espree/-/espree-10.3.0.tgz#29267cf5b0cb98735b65e64ba07e0ed49d1eed8a"
|
||||||
|
integrity sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==
|
||||||
|
dependencies:
|
||||||
|
acorn "^8.14.0"
|
||||||
|
acorn-jsx "^5.3.2"
|
||||||
|
eslint-visitor-keys "^4.2.0"
|
||||||
|
|
||||||
|
espree@^9.6.0, espree@^9.6.1:
|
||||||
version "9.6.1"
|
version "9.6.1"
|
||||||
resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
|
resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
|
||||||
integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
|
integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
|
||||||
|
@ -10510,7 +10592,7 @@ esprima@~3.1.0:
|
||||||
resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
|
resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
|
||||||
integrity sha512-AWwVMNxwhN8+NIPQzAQZCm7RkLC4RbM3B1OobMuyp3i+w73X57KCKaVIxaRZb+DYCojq7rspo+fmuQfAboyhFg==
|
integrity sha512-AWwVMNxwhN8+NIPQzAQZCm7RkLC4RbM3B1OobMuyp3i+w73X57KCKaVIxaRZb+DYCojq7rspo+fmuQfAboyhFg==
|
||||||
|
|
||||||
esquery@^1.4.2:
|
esquery@^1.4.2, esquery@^1.5.0:
|
||||||
version "1.6.0"
|
version "1.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7"
|
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7"
|
||||||
integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==
|
integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==
|
||||||
|
@ -10739,6 +10821,17 @@ fast-glob@^3.2.11, fast-glob@^3.2.9:
|
||||||
merge2 "^1.3.0"
|
merge2 "^1.3.0"
|
||||||
micromatch "^4.0.4"
|
micromatch "^4.0.4"
|
||||||
|
|
||||||
|
fast-glob@^3.3.2:
|
||||||
|
version "3.3.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
|
||||||
|
integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
|
||||||
|
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"
|
||||||
|
|
||||||
fast-json-patch@^3.1.1:
|
fast-json-patch@^3.1.1:
|
||||||
version "3.1.1"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/fast-json-patch/-/fast-json-patch-3.1.1.tgz#85064ea1b1ebf97a3f7ad01e23f9337e72c66947"
|
resolved "https://registry.yarnpkg.com/fast-json-patch/-/fast-json-patch-3.1.1.tgz#85064ea1b1ebf97a3f7ad01e23f9337e72c66947"
|
||||||
|
@ -10872,6 +10965,13 @@ file-entry-cache@^6.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
flat-cache "^3.0.4"
|
flat-cache "^3.0.4"
|
||||||
|
|
||||||
|
file-entry-cache@^8.0.0:
|
||||||
|
version "8.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f"
|
||||||
|
integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==
|
||||||
|
dependencies:
|
||||||
|
flat-cache "^4.0.0"
|
||||||
|
|
||||||
file-type@^11.1.0:
|
file-type@^11.1.0:
|
||||||
version "11.1.0"
|
version "11.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/file-type/-/file-type-11.1.0.tgz#93780f3fed98b599755d846b99a1617a2ad063b8"
|
resolved "https://registry.yarnpkg.com/file-type/-/file-type-11.1.0.tgz#93780f3fed98b599755d846b99a1617a2ad063b8"
|
||||||
|
@ -11016,6 +11116,14 @@ flat-cache@^3.0.4:
|
||||||
flatted "^3.1.0"
|
flatted "^3.1.0"
|
||||||
rimraf "^3.0.2"
|
rimraf "^3.0.2"
|
||||||
|
|
||||||
|
flat-cache@^4.0.0:
|
||||||
|
version "4.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c"
|
||||||
|
integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==
|
||||||
|
dependencies:
|
||||||
|
flatted "^3.2.9"
|
||||||
|
keyv "^4.5.4"
|
||||||
|
|
||||||
flat@^5.0.2:
|
flat@^5.0.2:
|
||||||
version "5.0.2"
|
version "5.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241"
|
resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241"
|
||||||
|
@ -11026,6 +11134,11 @@ flatted@^3.1.0:
|
||||||
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a"
|
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a"
|
||||||
integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==
|
integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==
|
||||||
|
|
||||||
|
flatted@^3.2.9:
|
||||||
|
version "3.3.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.2.tgz#adba1448a9841bec72b42c532ea23dbbedef1a27"
|
||||||
|
integrity sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==
|
||||||
|
|
||||||
flatten@^1.0.2:
|
flatten@^1.0.2:
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b"
|
resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b"
|
||||||
|
@ -11674,17 +11787,10 @@ global@~4.4.0:
|
||||||
min-document "^2.19.0"
|
min-document "^2.19.0"
|
||||||
process "^0.11.10"
|
process "^0.11.10"
|
||||||
|
|
||||||
globals@^11.1.0:
|
globals@15.13.0, globals@^11.1.0, globals@^13.19.0, globals@^14.0.0:
|
||||||
version "11.12.0"
|
version "15.13.0"
|
||||||
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
|
resolved "https://registry.yarnpkg.com/globals/-/globals-15.13.0.tgz#bbec719d69aafef188ecd67954aae76a696010fc"
|
||||||
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
|
integrity sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==
|
||||||
|
|
||||||
globals@^13.19.0:
|
|
||||||
version "13.20.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82"
|
|
||||||
integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==
|
|
||||||
dependencies:
|
|
||||||
type-fest "^0.20.2"
|
|
||||||
|
|
||||||
globalthis@^1.0.1, globalthis@^1.0.3:
|
globalthis@^1.0.1, globalthis@^1.0.3:
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
|
@ -13770,6 +13876,11 @@ json-buffer@3.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
|
resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
|
||||||
integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==
|
integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==
|
||||||
|
|
||||||
|
json-buffer@3.0.1:
|
||||||
|
version "3.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
|
||||||
|
integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
|
||||||
|
|
||||||
json-format-highlight@^1.0.4:
|
json-format-highlight@^1.0.4:
|
||||||
version "1.0.4"
|
version "1.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/json-format-highlight/-/json-format-highlight-1.0.4.tgz#2e44277edabcec79a3d2c84e984c62e2258037b9"
|
resolved "https://registry.yarnpkg.com/json-format-highlight/-/json-format-highlight-1.0.4.tgz#2e44277edabcec79a3d2c84e984c62e2258037b9"
|
||||||
|
@ -13943,6 +14054,13 @@ keyv@^3.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
json-buffer "3.0.0"
|
json-buffer "3.0.0"
|
||||||
|
|
||||||
|
keyv@^4.5.4:
|
||||||
|
version "4.5.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
|
||||||
|
integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
|
||||||
|
dependencies:
|
||||||
|
json-buffer "3.0.1"
|
||||||
|
|
||||||
kill-port@^1.6.1:
|
kill-port@^1.6.1:
|
||||||
version "1.6.1"
|
version "1.6.1"
|
||||||
resolved "https://registry.yarnpkg.com/kill-port/-/kill-port-1.6.1.tgz#560fe79484583bdf3a5e908557dae614447618aa"
|
resolved "https://registry.yarnpkg.com/kill-port/-/kill-port-1.6.1.tgz#560fe79484583bdf3a5e908557dae614447618aa"
|
||||||
|
@ -13986,10 +14104,10 @@ knex@2.4.2:
|
||||||
tarn "^3.0.2"
|
tarn "^3.0.2"
|
||||||
tildify "2.0.0"
|
tildify "2.0.0"
|
||||||
|
|
||||||
known-css-properties@^0.29.0:
|
known-css-properties@^0.35.0:
|
||||||
version "0.29.0"
|
version "0.35.0"
|
||||||
resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.29.0.tgz#e8ba024fb03886f23cb882e806929f32d814158f"
|
resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.35.0.tgz#f6f8e40ab4e5700fa32f5b2ef5218a56bc853bd6"
|
||||||
integrity sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==
|
integrity sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==
|
||||||
|
|
||||||
koa-body@4.2.0:
|
koa-body@4.2.0:
|
||||||
version "4.2.0"
|
version "4.2.0"
|
||||||
|
@ -17129,15 +17247,15 @@ postcss-safe-parser@^6.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz#bb4c29894171a94bc5c996b9a30317ef402adaa1"
|
resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz#bb4c29894171a94bc5c996b9a30317ef402adaa1"
|
||||||
integrity sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==
|
integrity sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==
|
||||||
|
|
||||||
postcss-scss@^4.0.8:
|
postcss-scss@^4.0.9:
|
||||||
version "4.0.9"
|
version "4.0.9"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.9.tgz#a03c773cd4c9623cb04ce142a52afcec74806685"
|
resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.9.tgz#a03c773cd4c9623cb04ce142a52afcec74806685"
|
||||||
integrity sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==
|
integrity sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==
|
||||||
|
|
||||||
postcss-selector-parser@^6.0.11:
|
postcss-selector-parser@^6.1.0:
|
||||||
version "6.0.13"
|
version "6.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b"
|
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de"
|
||||||
integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==
|
integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==
|
||||||
dependencies:
|
dependencies:
|
||||||
cssesc "^3.0.0"
|
cssesc "^3.0.0"
|
||||||
util-deprecate "^1.0.2"
|
util-deprecate "^1.0.2"
|
||||||
|
@ -17160,7 +17278,7 @@ postcss-values-parser@^6.0.2:
|
||||||
is-url-superb "^4.0.0"
|
is-url-superb "^4.0.0"
|
||||||
quote-unquote "^1.0.0"
|
quote-unquote "^1.0.0"
|
||||||
|
|
||||||
postcss@^8.1.7, postcss@^8.3.11, postcss@^8.4.12, postcss@^8.4.27, postcss@^8.4.29, postcss@^8.4.5:
|
postcss@^8.1.7, postcss@^8.3.11, postcss@^8.4.12, postcss@^8.4.27:
|
||||||
version "8.4.41"
|
version "8.4.41"
|
||||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.41.tgz#d6104d3ba272d882fe18fc07d15dc2da62fa2681"
|
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.41.tgz#d6104d3ba272d882fe18fc07d15dc2da62fa2681"
|
||||||
integrity sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==
|
integrity sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==
|
||||||
|
@ -17169,7 +17287,7 @@ postcss@^8.1.7, postcss@^8.3.11, postcss@^8.4.12, postcss@^8.4.27, postcss@^8.4.
|
||||||
picocolors "^1.0.1"
|
picocolors "^1.0.1"
|
||||||
source-map-js "^1.2.0"
|
source-map-js "^1.2.0"
|
||||||
|
|
||||||
postcss@^8.4.48:
|
postcss@^8.4.38, postcss@^8.4.39, postcss@^8.4.48:
|
||||||
version "8.4.49"
|
version "8.4.49"
|
||||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.49.tgz#4ea479048ab059ab3ae61d082190fabfd994fe19"
|
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.49.tgz#4ea479048ab059ab3ae61d082190fabfd994fe19"
|
||||||
integrity sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==
|
integrity sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==
|
||||||
|
@ -18765,7 +18883,7 @@ semver-diff@^3.1.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
semver "^6.3.0"
|
semver "^6.3.0"
|
||||||
|
|
||||||
"semver@2 || 3 || 4 || 5", semver@7.5.3, semver@^5.6.0, semver@^5.7.1, semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1, semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@~2.3.1:
|
"semver@2 || 3 || 4 || 5", semver@7.5.3, semver@^5.6.0, semver@^5.7.1, semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1, semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.2, semver@~2.3.1:
|
||||||
version "7.5.3"
|
version "7.5.3"
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e"
|
||||||
integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==
|
integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==
|
||||||
|
@ -19753,16 +19871,16 @@ svelte-dnd-action@^0.9.8:
|
||||||
resolved "https://registry.yarnpkg.com/svelte-dnd-action/-/svelte-dnd-action-0.9.22.tgz#003eee9dddb31d8c782f6832aec8b1507fff194d"
|
resolved "https://registry.yarnpkg.com/svelte-dnd-action/-/svelte-dnd-action-0.9.22.tgz#003eee9dddb31d8c782f6832aec8b1507fff194d"
|
||||||
integrity sha512-lOQJsNLM1QWv5mdxIkCVtk6k4lHCtLgfE59y8rs7iOM6erchbLC9hMEFYSveZz7biJV0mpg7yDSs4bj/RT/YkA==
|
integrity sha512-lOQJsNLM1QWv5mdxIkCVtk6k4lHCtLgfE59y8rs7iOM6erchbLC9hMEFYSveZz7biJV0mpg7yDSs4bj/RT/YkA==
|
||||||
|
|
||||||
"svelte-eslint-parser@>=0.33.0 <1.0.0", svelte-eslint-parser@^0.33.1:
|
svelte-eslint-parser@0.43.0, svelte-eslint-parser@^0.43.0:
|
||||||
version "0.33.1"
|
version "0.43.0"
|
||||||
resolved "https://registry.yarnpkg.com/svelte-eslint-parser/-/svelte-eslint-parser-0.33.1.tgz#c64dbed2fad099577429b3c39377f6b8d36e5d97"
|
resolved "https://registry.yarnpkg.com/svelte-eslint-parser/-/svelte-eslint-parser-0.43.0.tgz#649e80f65183c4c1d1536d03dcb903e0632f4da4"
|
||||||
integrity sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==
|
integrity sha512-GpU52uPKKcVnh8tKN5P4UZpJ/fUDndmq7wfsvoVXsyP+aY0anol7Yqo01fyrlaWGMFfm4av5DyrjlaXdLRJvGA==
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint-scope "^7.0.0"
|
eslint-scope "^7.2.2"
|
||||||
eslint-visitor-keys "^3.0.0"
|
eslint-visitor-keys "^3.4.3"
|
||||||
espree "^9.0.0"
|
espree "^9.6.1"
|
||||||
postcss "^8.4.29"
|
postcss "^8.4.39"
|
||||||
postcss-scss "^4.0.8"
|
postcss-scss "^4.0.9"
|
||||||
|
|
||||||
svelte-hmr@^0.15.1:
|
svelte-hmr@^0.15.1:
|
||||||
version "0.15.3"
|
version "0.15.3"
|
||||||
|
@ -20334,7 +20452,7 @@ triple-beam@^1.3.0:
|
||||||
resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984"
|
resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984"
|
||||||
integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==
|
integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==
|
||||||
|
|
||||||
ts-api-utils@^1.0.1, ts-api-utils@^1.3.0:
|
ts-api-utils@^1.3.0:
|
||||||
version "1.3.0"
|
version "1.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1"
|
resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1"
|
||||||
integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==
|
integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==
|
||||||
|
@ -20598,14 +20716,14 @@ typeof@^1.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/typeof/-/typeof-1.0.0.tgz#9c84403f2323ae5399167275497638ea1d2f2440"
|
resolved "https://registry.yarnpkg.com/typeof/-/typeof-1.0.0.tgz#9c84403f2323ae5399167275497638ea1d2f2440"
|
||||||
integrity sha512-Pze0mIxYXhaJdpw1ayMzOA7rtGr1OmsTY/Z+FWtRKIqXFz6aoDLjqdbWE/tcIBSC8nhnVXiRrEXujodR/xiFAA==
|
integrity sha512-Pze0mIxYXhaJdpw1ayMzOA7rtGr1OmsTY/Z+FWtRKIqXFz6aoDLjqdbWE/tcIBSC8nhnVXiRrEXujodR/xiFAA==
|
||||||
|
|
||||||
typescript-eslint@^7.3.1:
|
typescript-eslint@8.17.0:
|
||||||
version "7.18.0"
|
version "8.17.0"
|
||||||
resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-7.18.0.tgz#e90d57649b2ad37a7475875fa3e834a6d9f61eb2"
|
resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.17.0.tgz#fa4033c26b3b40f778287bc12918d985481b220b"
|
||||||
integrity sha512-PonBkP603E3tt05lDkbOMyaxJjvKqQrXsnow72sVeOFINDE/qNmnnd+f9b4N+U7W6MXnnYyrhtmF2t08QWwUbA==
|
integrity sha512-409VXvFd/f1br1DCbuKNFqQpXICoTB+V51afcwG1pn1a3Cp92MqAUges3YjwEdQ0cMUoCIodjVDAYzyD8h3SYA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/eslint-plugin" "7.18.0"
|
"@typescript-eslint/eslint-plugin" "8.17.0"
|
||||||
"@typescript-eslint/parser" "7.18.0"
|
"@typescript-eslint/parser" "8.17.0"
|
||||||
"@typescript-eslint/utils" "7.18.0"
|
"@typescript-eslint/utils" "8.17.0"
|
||||||
|
|
||||||
typescript@5.7.2:
|
typescript@5.7.2:
|
||||||
version "5.7.2"
|
version "5.7.2"
|
||||||
|
|
Loading…
Reference in New Issue