diff --git a/.idea/aegis.iml b/.idea/aegis.iml
index 72b54572..790bbea6 100644
--- a/.idea/aegis.iml
+++ b/.idea/aegis.iml
@@ -5,12 +5,14 @@
+
+
diff --git a/packages/aegis/.eslintrc.json b/packages/aegis/.eslintrc.json
new file mode 100644
index 00000000..128cd29f
--- /dev/null
+++ b/packages/aegis/.eslintrc.json
@@ -0,0 +1,5 @@
+{
+ "extends": [
+ "../../.eslintrc.json"
+ ]
+}
diff --git a/packages/aegis/.gitignore b/packages/aegis/.gitignore
new file mode 100644
index 00000000..e3c0b53b
--- /dev/null
+++ b/packages/aegis/.gitignore
@@ -0,0 +1,3 @@
+# Generated files
+coverage
+dist
diff --git a/packages/aegis/.swcrc b/packages/aegis/.swcrc
new file mode 100644
index 00000000..17c7b024
--- /dev/null
+++ b/packages/aegis/.swcrc
@@ -0,0 +1,15 @@
+{
+ "jsc": {
+ "parser": {
+ "syntax": "typescript"
+ },
+ "target": "es2022",
+ "loose": true
+ },
+ "module": {
+ "type": "es6"
+ },
+ "env": {
+ "coreJs": "3.22"
+ }
+}
diff --git a/packages/aegis/LICENSE b/packages/aegis/LICENSE
new file mode 100644
index 00000000..fb8e1a2a
--- /dev/null
+++ b/packages/aegis/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 Julien Capellari
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/packages/aegis/README.md b/packages/aegis/README.md
new file mode 100644
index 00000000..e7404e28
--- /dev/null
+++ b/packages/aegis/README.md
@@ -0,0 +1,7 @@
+# @jujulego/aegis-api
+[![Version](https://img.shields.io/npm/v/@jujulego/aegis-api)](https://www.npmjs.com/package/@jujulego/aegis-api)
+![Licence](https://img.shields.io/github/license/jujulego/aegis)
+[![Bundled size](https://badgen.net/bundlephobia/minzip/@jujulego/aegis-api)](https://bundlephobia.com/package/@jujulego/aegis-api)
+[![Tree shaking](https://badgen.net/bundlephobia/tree-shaking/@jujulego/aegis-api)](https://bundlephobia.com/package/@jujulego/aegis-api)
+
+## Description
diff --git a/packages/aegis/gulpfile.ts b/packages/aegis/gulpfile.ts
new file mode 100644
index 00000000..e39dc037
--- /dev/null
+++ b/packages/aegis/gulpfile.ts
@@ -0,0 +1,45 @@
+import { flow, src, dest, swc, dts } from 'aegis-tools';
+import del from 'del';
+import gulp from 'gulp';
+import path from 'path';
+
+// Config
+const options = {
+ src: 'src/**/*.ts',
+ output: 'dist',
+ tsconfig: 'tsconfig.json',
+ deps: [
+ '../../.pnp.*',
+ '../core/dist/types/**/*.d.ts'
+ ]
+};
+
+// Tasks
+gulp.task('clean', () => del(options.output));
+
+gulp.task('build:esm', () => flow(
+ src(options.src, { since: gulp.lastRun('build:esm') }),
+ swc({ module: { type: 'es6' } }),
+ dest(path.join(options.output, 'esm'))
+));
+
+gulp.task('build:cjs', () => flow(
+ src(options.src, { since: gulp.lastRun('build:cjs') }),
+ swc({ module: { type: 'commonjs' } }),
+ dest(path.join(options.output, 'cjs'))
+));
+
+gulp.task('build:types', () => flow(
+ src(options.src, { since: gulp.lastRun('build:types') }),
+ dts(options.tsconfig),
+ dest(path.join(options.output, 'types'))
+));
+
+gulp.task('build', gulp.series(
+ 'clean',
+ gulp.parallel('build:cjs', 'build:esm', 'build:types'),
+));
+
+gulp.task('watch', () => gulp.watch([options.src, ...options.deps], { ignoreInitial: false },
+ gulp.parallel('build:cjs', 'build:esm', 'build:types'),
+));
diff --git a/packages/aegis/jest.config.ts b/packages/aegis/jest.config.ts
new file mode 100644
index 00000000..0b1e33da
--- /dev/null
+++ b/packages/aegis/jest.config.ts
@@ -0,0 +1,197 @@
+/*
+ * For a detailed explanation regarding each configuration property and type check, visit:
+ * https://jestjs.io/docs/configuration
+ */
+
+export default {
+ // All imported modules in your tests should be mocked automatically
+ // automock: false,
+
+ // Stop running tests after `n` failures
+ // bail: 0,
+
+ // The directory where Jest should store its cached dependency information
+ // cacheDirectory: "C:\\Users\\julie\\AppData\\Local\\Temp\\jest",
+
+ // Automatically clear mock calls, instances, contexts and results before every test
+ // clearMocks: false,
+
+ // Indicates whether the coverage information should be collected while executing the test
+ collectCoverage: true,
+
+ // An array of glob patterns indicating a set of files for which coverage information should be collected
+ collectCoverageFrom: ['src/**'],
+
+ // The directory where Jest should output its coverage files
+ coverageDirectory: 'coverage',
+
+ // An array of regexp pattern strings used to skip coverage collection
+ // coveragePathIgnorePatterns: [
+ // "\\\\node_modules\\\\"
+ // ],
+
+ // Indicates which provider should be used to instrument code for coverage
+ // coverageProvider: "v8",
+
+ // A list of reporter names that Jest uses when writing coverage reports
+ // coverageReporters: [
+ // "json",
+ // "text",
+ // "lcov",
+ // "clover"
+ // ],
+
+ // An object that configures minimum threshold enforcement for coverage results
+ // coverageThreshold: undefined,
+
+ // A path to a custom dependency extractor
+ // dependencyExtractor: undefined,
+
+ // Make calling deprecated APIs throw helpful error messages
+ // errorOnDeprecated: false,
+
+ // The default configuration for fake timers
+ // fakeTimers: {
+ // "enableGlobally": false
+ // },
+
+ // Force coverage collection from ignored files using an array of glob patterns
+ // forceCoverageMatch: [],
+
+ // A path to a module which exports an async function that is triggered once before all test suites
+ // globalSetup: undefined,
+
+ // A path to a module which exports an async function that is triggered once after all test suites
+ // globalTeardown: undefined,
+
+ // A set of global variables that need to be available in all test environments
+ // globals: {},
+
+ // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers.
+ // maxWorkers: "50%",
+
+ // An array of directory names to be searched recursively up from the requiring module's location
+ // moduleDirectories: [
+ // "node_modules"
+ // ],
+
+ // An array of file extensions your modules use
+ // moduleFileExtensions: [
+ // "js",
+ // "mjs",
+ // "cjs",
+ // "jsx",
+ // "ts",
+ // "tsx",
+ // "json",
+ // "node"
+ // ],
+
+ // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module
+ // moduleNameMapper: {},
+
+ // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader
+ // modulePathIgnorePatterns: [],
+
+ // Activates notifications for test results
+ // notify: false,
+
+ // An enum that specifies notification mode. Requires { notify: true }
+ // notifyMode: "failure-change",
+
+ // A preset that is used as a base for Jest's configuration
+ // preset: 'ts-jest',
+
+ // Run tests from one or more projects
+ // projects: undefined,
+
+ // Use this configuration option to add custom reporters to Jest
+ // reporters: undefined,
+
+ // Automatically reset mock state before every test
+ // resetMocks: false,
+
+ // Reset the module registry before running each individual test
+ // resetModules: false,
+
+ // A path to a custom resolver
+ // resolver: undefined,
+
+ // Automatically restore mock state and implementation before every test
+ // restoreMocks: false,
+
+ // The root directory that Jest should scan for tests and modules within
+ // rootDir: undefined,
+
+ // A list of paths to directories that Jest should use to search for files in
+ roots: [
+ '/tests'
+ ],
+
+ // Allows you to use a custom runner instead of Jest's default test runner
+ // runner: "jest-runner",
+
+ // The paths to modules that run some code to configure or set up the testing environment before each test
+ // setupFiles: [],
+
+ // A list of paths to modules that run some code to configure or set up the testing framework before each test
+ // setupFilesAfterEnv: [],
+
+ // The number of seconds after which a test is considered as slow and reported as such in the results.
+ // slowTestThreshold: 5,
+
+ // A list of paths to snapshot serializer modules Jest should use for snapshot testing
+ // snapshotSerializers: [],
+
+ // The test environment that will be used for testing
+ // testEnvironment: 'jsdom',
+
+ // Options that will be passed to the testEnvironment
+ // testEnvironmentOptions: {},
+
+ // Adds a location field to test results
+ // testLocationInResults: false,
+
+ // The glob patterns Jest uses to detect test files
+ // testMatch: [
+ // "**/__tests__/**/*.[jt]s?(x)",
+ // "**/?(*.)+(spec|test).[tj]s?(x)"
+ // ],
+
+ // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped
+ // testPathIgnorePatterns: [
+ // "\\\\node_modules\\\\"
+ // ],
+
+ // The regexp pattern or array of patterns that Jest uses to detect test files
+ // testRegex: [],
+
+ // This option allows the use of a custom results processor
+ // testResultsProcessor: undefined,
+
+ // This option allows use of a custom test runner
+ // testRunner: "jest-circus/runner",
+
+ // A map from regular expressions to paths to transformers
+ transform: {
+ '^.+\\.(t|j)sx?$': ['@swc/jest']
+ },
+
+ // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation
+ // transformIgnorePatterns: [
+ // "\\\\node_modules\\\\",
+ // "\\.pnp\\.[^\\\\]+$"
+ // ],
+
+ // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them
+ // unmockedModulePathPatterns: undefined,
+
+ // Indicates whether each individual test should be reported during the run
+ // verbose: undefined,
+
+ // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode
+ // watchPathIgnorePatterns: [],
+
+ // Whether to use watchman for file crawling
+ // watchman: true,
+};
diff --git a/packages/aegis/package.json b/packages/aegis/package.json
new file mode 100644
index 00000000..9de577e4
--- /dev/null
+++ b/packages/aegis/package.json
@@ -0,0 +1,63 @@
+{
+ "name": "@jujulego/aegis",
+ "version": "1.0.0-alpha.1",
+ "license": "MIT",
+ "author": "Julien Capellari ",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/jujulego/aegis",
+ "directory": "packages/aegis"
+ },
+ "publishConfig": {
+ "access": "public"
+ },
+ "sideEffects": false,
+ "files": [
+ "dist"
+ ],
+ "main": "./dist/cjs/index.js",
+ "module": "./dist/esm/index.js",
+ "types": "./dist/types/index.d.ts",
+ "exports": {
+ "types": "./dist/types/index.d.ts",
+ "import": "./dist/esm/index.js",
+ "require": "./dist/cjs/index.js",
+ "default": "./dist/esm/index.js"
+ },
+ "scripts": {
+ "lint": "eslint {src,tests}/**/*.*",
+ "clean": "gulp clean",
+ "build": "gulp build",
+ "watch": "gulp watch",
+ "test": "jest"
+ },
+ "peerDependencies": {
+ "regenerator-runtime": "^0.13.0"
+ },
+ "dependencies": {
+ "@jujulego/aegis-core": "^1.0.0-alpha.21"
+ },
+ "devDependencies": {
+ "@jujulego/flow": "1.1.0",
+ "@swc/cli": "0.1.57",
+ "@swc/core": "1.2.209",
+ "@swc/jest": "0.2.21",
+ "@types/gulp": "4.0.9",
+ "@types/jest": "28.1.4",
+ "@types/node": "16.11.43",
+ "@typescript-eslint/eslint-plugin": "5.30.4",
+ "@typescript-eslint/parser": "5.30.4",
+ "aegis-tools": "1.0.0",
+ "browserslist": "4.21.1",
+ "del": "6.1.1",
+ "eslint": "8.19.0",
+ "eslint-plugin-jest": "26.5.3",
+ "eslint-plugin-workspaces": "0.7.0",
+ "gulp": "4.0.2",
+ "gulp-cli": "2.3.0",
+ "jest": "28.1.2",
+ "regenerator-runtime": "0.13.9",
+ "ts-node": "10.8.2",
+ "typescript": "4.7.4"
+ }
+}
diff --git a/packages/core/src/entities/entity.builder.ts b/packages/aegis/src/entity.builder.ts
similarity index 95%
rename from packages/core/src/entities/entity.builder.ts
rename to packages/aegis/src/entity.builder.ts
index 8c6eb53c..f385b591 100644
--- a/packages/core/src/entities/entity.builder.ts
+++ b/packages/aegis/src/entity.builder.ts
@@ -1,12 +1,14 @@
-import { AegisQuery } from '../protocols';
-import { AegisStore } from '../stores';
-
-import { AegisItem } from './item';
-import { AegisList } from './list';
-
-import { AegisEntity, EntityIdExtractor, EntityMerge } from './entity';
-
-// Type
+import {
+ AegisEntity,
+ AegisItem,
+ AegisList,
+ AegisQuery,
+ AegisStore,
+ EntityIdExtractor,
+ EntityMerge
+} from '@jujulego/aegis-core';
+
+// Types
export type Aegis = M & {
$entity: AegisEntity;
diff --git a/packages/aegis/src/index.ts b/packages/aegis/src/index.ts
new file mode 100644
index 00000000..7d86b893
--- /dev/null
+++ b/packages/aegis/src/index.ts
@@ -0,0 +1,2 @@
+export * from './entity.builder';
+export * from './store.builder';
diff --git a/packages/core/src/stores/store.builder.ts b/packages/aegis/src/store.builder.ts
similarity index 71%
rename from packages/core/src/stores/store.builder.ts
rename to packages/aegis/src/store.builder.ts
index 53cc6357..2a9fec2d 100644
--- a/packages/core/src/stores/store.builder.ts
+++ b/packages/aegis/src/store.builder.ts
@@ -1,5 +1,5 @@
-import { AegisMemoryStore } from './memory.store';
-import { AegisStorageStore } from './storage.store';
+import { AegisMemoryStore } from '@jujulego/aegis-core/src/stores/memory.store';
+import { AegisStorageStore } from '@jujulego/aegis-core/src/stores/storage.store';
// Store builders
export const $store = {
diff --git a/packages/core/tests/entities/entity.builder.test.ts b/packages/aegis/tests/entity.builder.test.ts
similarity index 98%
rename from packages/core/tests/entities/entity.builder.test.ts
rename to packages/aegis/tests/entity.builder.test.ts
index 482dd9e6..2633d82d 100644
--- a/packages/core/tests/entities/entity.builder.test.ts
+++ b/packages/aegis/tests/entity.builder.test.ts
@@ -1,4 +1,6 @@
-import { $entity, $store, AegisEntity, AegisItem, AegisList, AegisQuery } from '../../src';
+import { $store, AegisEntity, AegisItem, AegisList, AegisQuery } from '@jujulego/aegis-core';
+
+import { $entity } from '../src';
// Types
interface TestEntity {
diff --git a/packages/core/tests/stores/store.builder.test.ts b/packages/aegis/tests/store.builder.test.ts
similarity index 87%
rename from packages/core/tests/stores/store.builder.test.ts
rename to packages/aegis/tests/store.builder.test.ts
index 1cc9fa92..0a7b576d 100644
--- a/packages/core/tests/stores/store.builder.test.ts
+++ b/packages/aegis/tests/store.builder.test.ts
@@ -1,4 +1,6 @@
-import { $store, AegisMemoryStore, AegisStorageStore } from '../../src';
+import { AegisMemoryStore, AegisStorageStore } from '@jujulego/aegis-core';
+
+import { $store } from '../src';
// Tests
describe('$store', () => {
diff --git a/packages/aegis/tsconfig.json b/packages/aegis/tsconfig.json
new file mode 100644
index 00000000..16100216
--- /dev/null
+++ b/packages/aegis/tsconfig.json
@@ -0,0 +1,11 @@
+{
+ "extends": "../../tsconfig.base.json",
+ "compilerOptions": {
+ "incremental": true,
+ "rootDir": ".",
+ "tsBuildInfoFile": "./dist/.tsbuildinfo"
+ },
+ "ts-node": {
+ "swc": true
+ }
+}
diff --git a/packages/api/package.json b/packages/api/package.json
index 77581e4e..46607062 100644
--- a/packages/api/package.json
+++ b/packages/api/package.json
@@ -45,7 +45,6 @@
"@types/gulp": "4.0.9",
"@types/jest": "28.1.4",
"@types/node": "16.11.43",
- "@types/use-sync-external-store": "0.0.3",
"@typescript-eslint/eslint-plugin": "5.30.5",
"@typescript-eslint/parser": "5.30.5",
"aegis-tools": "1.0.0",
diff --git a/packages/core/src/entities/index.ts b/packages/core/src/entities/index.ts
index 59352213..b61494e0 100644
--- a/packages/core/src/entities/index.ts
+++ b/packages/core/src/entities/index.ts
@@ -1,4 +1,3 @@
export * from './entity';
-export * from './entity.builder';
export * from './item';
export * from './list';
diff --git a/packages/core/src/stores/index.ts b/packages/core/src/stores/index.ts
index 4f534923..6586378f 100644
--- a/packages/core/src/stores/index.ts
+++ b/packages/core/src/stores/index.ts
@@ -1,4 +1,3 @@
export * from './memory.store';
export * from './storage.store';
export * from './store';
-export * from './store.builder';
diff --git a/packages/react/package.json b/packages/react/package.json
index bc351bfc..17a53570 100644
--- a/packages/react/package.json
+++ b/packages/react/package.json
@@ -32,6 +32,7 @@
"test": "jest"
},
"peerDependencies": {
+ "@jujulego/aegis": "^1.0.0-alpha.1",
"react": "^17.0.0 || ^18.0.0",
"regenerator-runtime": "^0.13.0"
},
@@ -41,6 +42,7 @@
"use-sync-external-store": "^1.1.0"
},
"devDependencies": {
+ "@jujulego/aegis": "^1.0.0-alpha.1",
"@jujulego/flow": "1.1.0",
"@swc/cli": "0.1.57",
"@swc/core": "1.2.209",
diff --git a/packages/react/src/hook.builder.ts b/packages/react/src/hook.builder.ts
index 3715b947..df047dbf 100644
--- a/packages/react/src/hook.builder.ts
+++ b/packages/react/src/hook.builder.ts
@@ -1,4 +1,5 @@
-import { Aegis, AegisItem, AegisList } from '@jujulego/aegis-core';
+import { Aegis } from '@jujulego/aegis';
+import { AegisItem, AegisList } from '@jujulego/aegis-core';
import { useCallback, useEffect, useMemo } from 'react';
import { useAegisItem, useAegisList, useDeepMemo } from './hooks';
diff --git a/yarn.lock b/yarn.lock
index 320c48a8..11180a45 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -848,7 +848,6 @@ __metadata:
"@types/gulp": 4.0.9
"@types/jest": 28.1.4
"@types/node": 16.11.43
- "@types/use-sync-external-store": 0.0.3
"@typescript-eslint/eslint-plugin": 5.30.5
"@typescript-eslint/parser": 5.30.5
aegis-tools: 1.0.0
@@ -906,6 +905,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "@jujulego/aegis-react@workspace:packages/react"
dependencies:
+ "@jujulego/aegis": ^1.0.0-alpha.1
"@jujulego/aegis-core": ^1.0.0-alpha.21
"@jujulego/flow": 1.1.0
"@swc/cli": 0.1.57
@@ -941,11 +941,43 @@ __metadata:
typescript: 4.7.4
use-sync-external-store: ^1.1.0
peerDependencies:
+ "@jujulego/aegis": ^1.0.0-alpha.1
react: ^17.0.0 || ^18.0.0
regenerator-runtime: ^0.13.0
languageName: unknown
linkType: soft
+"@jujulego/aegis@^1.0.0-alpha.1, @jujulego/aegis@workspace:packages/aegis":
+ version: 0.0.0-use.local
+ resolution: "@jujulego/aegis@workspace:packages/aegis"
+ dependencies:
+ "@jujulego/aegis-core": ^1.0.0-alpha.21
+ "@jujulego/flow": 1.1.0
+ "@swc/cli": 0.1.57
+ "@swc/core": 1.2.209
+ "@swc/jest": 0.2.21
+ "@types/gulp": 4.0.9
+ "@types/jest": 28.1.4
+ "@types/node": 16.11.43
+ "@typescript-eslint/eslint-plugin": 5.30.4
+ "@typescript-eslint/parser": 5.30.4
+ aegis-tools: 1.0.0
+ browserslist: 4.21.1
+ del: 6.1.1
+ eslint: 8.19.0
+ eslint-plugin-jest: 26.5.3
+ eslint-plugin-workspaces: 0.7.0
+ gulp: 4.0.2
+ gulp-cli: 2.3.0
+ jest: 28.1.2
+ regenerator-runtime: 0.13.9
+ ts-node: 10.8.2
+ typescript: 4.7.4
+ peerDependencies:
+ regenerator-runtime: ^0.13.0
+ languageName: unknown
+ linkType: soft
+
"@jujulego/flow@npm:1.1.0":
version: 1.1.0
resolution: "@jujulego/flow@npm:1.1.0"
@@ -1664,6 +1696,29 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/eslint-plugin@npm:5.30.4":
+ version: 5.30.4
+ resolution: "@typescript-eslint/eslint-plugin@npm:5.30.4"
+ dependencies:
+ "@typescript-eslint/scope-manager": 5.30.4
+ "@typescript-eslint/type-utils": 5.30.4
+ "@typescript-eslint/utils": 5.30.4
+ debug: ^4.3.4
+ functional-red-black-tree: ^1.0.1
+ ignore: ^5.2.0
+ regexpp: ^3.2.0
+ semver: ^7.3.7
+ tsutils: ^3.21.0
+ peerDependencies:
+ "@typescript-eslint/parser": ^5.0.0
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 9b9290448b3009b93dc9bbc263049103f48c006d395351695486f7ab156f24b3f3e9e83a9f68a8cf73afc036c2d1092005446085f171afc9cdcb0b1b475443e3
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/eslint-plugin@npm:5.30.5":
version: 5.30.5
resolution: "@typescript-eslint/eslint-plugin@npm:5.30.5"
@@ -1687,6 +1742,23 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/parser@npm:5.30.4":
+ version: 5.30.4
+ resolution: "@typescript-eslint/parser@npm:5.30.4"
+ dependencies:
+ "@typescript-eslint/scope-manager": 5.30.4
+ "@typescript-eslint/types": 5.30.4
+ "@typescript-eslint/typescript-estree": 5.30.4
+ debug: ^4.3.4
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: e13ffd0cbb691b5b82038a5a1475a7771409398bc90e0430e9b3818174926c5af7c637d5915f7c2949f38201c04bfe57dfc91f4d9052a48ee551faba3b8c7349
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/parser@npm:5.30.5":
version: 5.30.5
resolution: "@typescript-eslint/parser@npm:5.30.5"
@@ -1724,6 +1796,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/scope-manager@npm:5.30.4":
+ version: 5.30.4
+ resolution: "@typescript-eslint/scope-manager@npm:5.30.4"
+ dependencies:
+ "@typescript-eslint/types": 5.30.4
+ "@typescript-eslint/visitor-keys": 5.30.4
+ checksum: 3da442dc113ee821c6b1c4510ee4cfd6f6f34838587785b7c486d262af913dca66229a47ebb9a63ad605f8edbe57a8387be24c817c8091783b57c33b7862cbcc
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/scope-manager@npm:5.30.5":
version: 5.30.5
resolution: "@typescript-eslint/scope-manager@npm:5.30.5"
@@ -1734,6 +1816,22 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/type-utils@npm:5.30.4":
+ version: 5.30.4
+ resolution: "@typescript-eslint/type-utils@npm:5.30.4"
+ dependencies:
+ "@typescript-eslint/utils": 5.30.4
+ debug: ^4.3.4
+ tsutils: ^3.21.0
+ peerDependencies:
+ eslint: "*"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 552eb1a5b11787d3b98dc454a80153b05bcb6d58aeb97c861d6b006f3eb6af95d117a3f9a679b41a8b6d58ac0dceaaeafd23ce28d83881a363e51bbc1a088936
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/type-utils@npm:5.30.5":
version: 5.30.5
resolution: "@typescript-eslint/type-utils@npm:5.30.5"
@@ -1764,6 +1862,13 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/types@npm:5.30.4":
+ version: 5.30.4
+ resolution: "@typescript-eslint/types@npm:5.30.4"
+ checksum: 06181c33551850492ccfd48232f93083c6cf9205d26b26fe6e356b7a4ebb08beffd89ae3b84011da94ffd0e6948422d91d94df7005edeca1c8348117d4776715
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/types@npm:5.30.5":
version: 5.30.5
resolution: "@typescript-eslint/types@npm:5.30.5"
@@ -1807,6 +1912,24 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/typescript-estree@npm:5.30.4":
+ version: 5.30.4
+ resolution: "@typescript-eslint/typescript-estree@npm:5.30.4"
+ dependencies:
+ "@typescript-eslint/types": 5.30.4
+ "@typescript-eslint/visitor-keys": 5.30.4
+ debug: ^4.3.4
+ globby: ^11.1.0
+ is-glob: ^4.0.3
+ semver: ^7.3.7
+ tsutils: ^3.21.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 1aaa414993a4e35927e93f929d34a6e07cb8ec46c4ea9a58f018c36ff1fc3027ca5007e6abe922c5869557cd2d7f319e8c57cccd618517781979e669d3b704d0
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/typescript-estree@npm:5.30.5":
version: 5.30.5
resolution: "@typescript-eslint/typescript-estree@npm:5.30.5"
@@ -1825,6 +1948,22 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/utils@npm:5.30.4":
+ version: 5.30.4
+ resolution: "@typescript-eslint/utils@npm:5.30.4"
+ dependencies:
+ "@types/json-schema": ^7.0.9
+ "@typescript-eslint/scope-manager": 5.30.4
+ "@typescript-eslint/types": 5.30.4
+ "@typescript-eslint/typescript-estree": 5.30.4
+ eslint-scope: ^5.1.1
+ eslint-utils: ^3.0.0
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ checksum: 0f680d366701c6ca5a4e1fc53247876e6f6acaee498400d32a7cb767e6187d0d75bc4488350cf6dc6e7c373ea023d62e395ea14ba56ad246b458d6853b213782
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/utils@npm:5.30.5":
version: 5.30.5
resolution: "@typescript-eslint/utils@npm:5.30.5"
@@ -1893,6 +2032,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/visitor-keys@npm:5.30.4":
+ version: 5.30.4
+ resolution: "@typescript-eslint/visitor-keys@npm:5.30.4"
+ dependencies:
+ "@typescript-eslint/types": 5.30.4
+ eslint-visitor-keys: ^3.3.0
+ checksum: ec39680a89b058e8350adc084c2a957e83161e87ac9732c9fef8fd3045ce5004e059b2ddb0c366192806e3998bf3263c8bbb2cc74a4f2ad3313154ed35dd479a
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/visitor-keys@npm:5.30.5":
version: 5.30.5
resolution: "@typescript-eslint/visitor-keys@npm:5.30.5"