diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 53bf401..f7c346c 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -35,3 +35,31 @@ jobs:
with:
name: strapi-plugin-imagekit-package
path: strapi-plugin-imagekit-*.tgz
+
+ test:
+ runs-on: ubuntu-latest
+ needs: pack
+ if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
+
+ steps:
+ - name: ⬇️ Check out code
+ uses: actions/checkout@v4
+
+ - name: 🟢 Enable Corepack
+ run: corepack enable
+
+ - name: 🟢 Set up Node 20
+ uses: actions/setup-node@v4
+ with:
+ node-version: 20.x
+ cache: yarn
+
+ - name: 📦 Install deps, build
+ run: |
+ yarn install --frozen-lockfile
+ yarn build
+ env:
+ CI: true
+
+ - name: 🧪 Run tests
+ run: yarn test:unit:ci
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index 3a99421..826514a 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -24,10 +24,12 @@ jobs:
cache: yarn
registry-url: 'https://registry.npmjs.org'
- - name: Build and Publish
+ - name: Build, Test and Publish
run: |
yarn install --frozen-lockfile
+ yarn test:unit:ci
+
yarn build
# print the NPM user name for validation
diff --git a/jest.config.ts b/jest.config.ts
new file mode 100644
index 0000000..2860d43
--- /dev/null
+++ b/jest.config.ts
@@ -0,0 +1,21 @@
+import type { JestConfigWithTsJest } from 'ts-jest';
+import { defaults as tsjPreset } from 'ts-jest/presets';
+
+const config: JestConfigWithTsJest = {
+ testMatch: ['**/tests/**/?(*.)+(spec|test).(t|j)s'],
+ transform: {
+ ...tsjPreset.transform,
+ },
+ preset: 'ts-jest',
+ coverageDirectory: './coverage/',
+ collectCoverage: true,
+ reporters: ['default', 'jest-junit'],
+ collectCoverageFrom: ['server/src/**/*.{js,jsx,ts,tsx}'],
+ globals: {
+ 'ts-jest': {
+ tsconfig: './tsconfig.test.json',
+ },
+ },
+};
+
+export default config;
diff --git a/junit.xml b/junit.xml
new file mode 100644
index 0000000..36197e6
--- /dev/null
+++ b/junit.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/package.json b/package.json
index 74f9c94..63a35b0 100644
--- a/package.json
+++ b/package.json
@@ -30,6 +30,9 @@
"clean": "rm -rf dist",
"lint": "prettier --check .",
"format": "prettier --write .",
+ "test:unit": "jest --coverage",
+ "test:unit:watch": "jest --watch",
+ "test:unit:ci": "CI=true jest --ci --runInBand --verbose --coverage",
"watch": "strapi-plugin watch",
"watch:link": "strapi-plugin watch:link",
"verify": "strapi-plugin verify",
@@ -52,14 +55,20 @@
"@strapi/strapi": "^5.13.0",
"@strapi/typescript-utils": "^5.13.0",
"@strapi/upload": "^5.13.0",
+ "@types/jest": "^29.5.14",
"@types/react": "^19.1.3",
"@types/react-dom": "^19.1.4",
"husky": "^9.1.7",
+ "jest": "^29.7.0",
+ "jest-cli": "^29.7.0",
+ "jest-junit": "^16.0.0",
"prettier": "^3.5.3",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-router-dom": "^6.30.0",
"styled-components": "^6.1.18",
+ "ts-jest": "^29.3.4",
+ "ts-node": "^10.9.2",
"typescript": "^5.8.3"
},
"peerDependencies": {
@@ -98,7 +107,7 @@
"packageManager": "yarn@4.9.1",
"husky": {
"hooks": {
- "pre-commit": "yarn format"
+ "pre-commit": "yarn format && yarn test:unit"
}
}
-}
+}
\ No newline at end of file
diff --git a/server/src/bootstrap.ts b/server/src/bootstrap.ts
index f6ae5fa..7a956a5 100644
--- a/server/src/bootstrap.ts
+++ b/server/src/bootstrap.ts
@@ -103,3 +103,6 @@ const bootstrap = async ({ strapi }: { strapi: Core.Strapi }) => {
};
export default bootstrap;
+
+// Export functions for testing
+export { addPermissions, registerUploadProvider, saveConfig };
diff --git a/server/tests/bootstrap.test.ts b/server/tests/bootstrap.test.ts
new file mode 100644
index 0000000..3311185
--- /dev/null
+++ b/server/tests/bootstrap.test.ts
@@ -0,0 +1,200 @@
+import { permissions, PLUGIN_ID } from '../../common';
+import bootstrap from '../src/bootstrap';
+import { imagekitMock } from './utils/plugins/imagekit';
+import { uploadServiceMock } from './utils/plugins/imagekit/services';
+import { getStrapiMock } from './utils/strapi';
+
+describe('Bootstrap', () => {
+ beforeEach(() => {
+ jest.clearAllMocks();
+ });
+
+ describe('saveConfig', () => {
+ describe('when config does not exist in store', () => {
+ const strapiMock = getStrapiMock();
+
+ beforeEach(() => bootstrap({ strapi: strapiMock }));
+ it('should save default config if no config exists', async () => {
+ expect(strapiMock.store).toHaveBeenCalledTimes(1);
+ expect(strapiMock.store).toHaveBeenCalledWith({ type: 'plugin', name: PLUGIN_ID });
+
+ const get = strapiMock.store.mock.results.find((_) => _.type === 'return')?.value.get;
+
+ expect(get).toHaveBeenCalledTimes(1);
+ expect(get).toHaveBeenCalledWith({ key: 'config' });
+
+ expect(imagekitMock.config).toHaveBeenCalledTimes(14);
+
+ const set = strapiMock.store.mock.results.find((_) => _.type === 'return')?.value.set;
+ expect(set).toHaveBeenCalledTimes(1);
+ expect(set).toHaveBeenCalledWith({
+ key: 'config',
+ value: {
+ enabled: false,
+ publicKey: '',
+ privateKey: '',
+ urlEndpoint: '',
+ useSignedUrls: false,
+ expiry: 0,
+ uploadEnabled: false,
+ uploadOptions: {
+ tags: [],
+ folder: '',
+ overwriteTags: false,
+ overwriteCustomMetadata: false,
+ checks: '',
+ isPrivateFile: false,
+ },
+ useTransformUrls: false,
+ },
+ });
+
+ expect(imagekitMock.config.mock.calls).toEqual([
+ ['enabled', false],
+ ['publicKey', ''],
+ ['privateKey', ''],
+ ['urlEndpoint', ''],
+ ['useSignedUrls', false],
+ ['expiry', 0],
+ ['uploadEnabled', false],
+ ['useTransformUrls', false],
+ ['uploadOptions.tags', []],
+ ['uploadOptions.folder', ''],
+ ['uploadOptions.overwriteTags', false],
+ ['uploadOptions.overwriteCustomMetadata', false],
+ ['uploadOptions.checks', ''],
+ ['uploadOptions.isPrivateFile', false],
+ ]);
+ });
+ });
+
+ describe('when config exists in store', () => {
+ const strapiMock = getStrapiMock({ storeConfig: {} });
+
+ beforeEach(() => bootstrap({ strapi: strapiMock }));
+ it('should not overwrite existing config', async () => {
+ expect(strapiMock.store).toHaveBeenCalledTimes(1);
+ expect(strapiMock.store).toHaveBeenCalledWith({ type: 'plugin', name: PLUGIN_ID });
+
+ const get = strapiMock.store.mock.results.find((_) => _.type === 'return')?.value.get;
+
+ expect(get).toHaveBeenCalledTimes(1);
+ expect(get).toHaveBeenCalledWith({ key: 'config' });
+
+ expect(imagekitMock.config).toHaveBeenCalledTimes(0);
+ const set = strapiMock.store.mock.results.find((_) => _.type === 'return')?.value.set;
+ expect(set).toHaveBeenCalledTimes(0);
+ });
+ });
+ });
+
+ describe('addPermissions', () => {
+ const strapiMock = getStrapiMock();
+
+ beforeEach(() => bootstrap({ strapi: strapiMock }));
+ it('should register all permissions', async () => {
+ expect(
+ strapiMock.admin.services.permission.actionProvider.registerMany
+ ).toHaveBeenCalledTimes(1);
+ expect(strapiMock.admin.services.permission.actionProvider.registerMany).toHaveBeenCalledWith(
+ [
+ {
+ section: 'plugins',
+ displayName: 'Access ImageKit Media Library',
+ uid: permissions.mediaLibrary.read,
+ pluginName: PLUGIN_ID,
+ },
+ {
+ section: 'plugins',
+ displayName: 'Settings: Read',
+ uid: permissions.settings.read,
+ subCategory: 'settings',
+ pluginName: PLUGIN_ID,
+ },
+ {
+ section: 'plugins',
+ displayName: 'Settings: Change',
+ uid: permissions.settings.change,
+ subCategory: 'settings',
+ pluginName: PLUGIN_ID,
+ },
+ ]
+ );
+ });
+ });
+
+ describe('registerUploadProvider', () => {
+ const strapiMock = getStrapiMock({
+ storeConfig: { uploadEnabled: true },
+ config: { uploadEnabled: true },
+ });
+
+ describe('upload is enabled', () => {
+ beforeEach(() => {
+ bootstrap({ strapi: strapiMock });
+ strapiMock
+ .plugin('imagekit')
+ .service('settings')
+ .getSettings.mockResolvedValue({ uploadEnabled: true });
+ });
+
+ it('upload is called from provider', async () => {
+ expect(uploadServiceMock.upload).toHaveBeenCalledTimes(0);
+ await strapiMock.plugin('upload').provider.upload({});
+ expect(uploadServiceMock.upload).toHaveBeenCalledTimes(1);
+ });
+
+ it('uploadStream is called from provider', async () => {
+ expect(uploadServiceMock.uploadStream).toHaveBeenCalledTimes(0);
+ await strapiMock.plugin('upload').provider.uploadStream({});
+ expect(uploadServiceMock.uploadStream).toHaveBeenCalledTimes(1);
+ });
+
+ it('delete is called from provider', async () => {
+ expect(uploadServiceMock.delete).toHaveBeenCalledTimes(0);
+ await strapiMock.plugin('upload').provider.delete({});
+ expect(uploadServiceMock.delete).toHaveBeenCalledTimes(1);
+ });
+
+ it('isPrivate is called from provider', async () => {
+ expect(uploadServiceMock.isPrivate).toHaveBeenCalledTimes(0);
+ await strapiMock.plugin('upload').provider.isPrivate({});
+ expect(uploadServiceMock.isPrivate).toHaveBeenCalledTimes(1);
+ });
+ });
+
+ describe('upload is disabled', () => {
+ beforeEach(() => {
+ bootstrap({ strapi: strapiMock });
+ strapiMock
+ .plugin('imagekit')
+ .service('settings')
+ .getSettings.mockResolvedValue({ uploadEnabled: false });
+ });
+
+ it('upload is called from provider', async () => {
+ expect(uploadServiceMock.upload).toHaveBeenCalledTimes(0);
+ await strapiMock.plugin('upload').provider.upload({});
+ expect(uploadServiceMock.upload).toHaveBeenCalledTimes(0);
+ });
+
+ it('uploadStream is called from provider', async () => {
+ expect(uploadServiceMock.uploadStream).toHaveBeenCalledTimes(0);
+ await strapiMock.plugin('upload').provider.uploadStream({});
+ expect(uploadServiceMock.uploadStream).toHaveBeenCalledTimes(0);
+ });
+
+ it('delete is called from provider', async () => {
+ expect(uploadServiceMock.delete).toHaveBeenCalledTimes(0);
+ await strapiMock.plugin('upload').provider.delete({});
+ expect(uploadServiceMock.delete).toHaveBeenCalledTimes(0);
+ });
+
+ it('isPrivate is called from provider', async () => {
+ expect(uploadServiceMock.isPrivate).toHaveBeenCalledTimes(0);
+ await strapiMock.plugin('upload').provider.isPrivate({});
+ expect(uploadServiceMock.isPrivate).toHaveBeenCalledTimes(0);
+ });
+ });
+ });
+});
diff --git a/server/tests/register.test.ts b/server/tests/register.test.ts
new file mode 100644
index 0000000..c9cd44e
--- /dev/null
+++ b/server/tests/register.test.ts
@@ -0,0 +1,188 @@
+import ImageKit from 'imagekit';
+import register from '../src/register';
+import baseEntityMock from './utils/entity';
+import schemaMock from './utils/schema';
+import { getStrapiMock } from './utils/strapi';
+
+describe('Register', () => {
+ beforeEach(() => {
+ jest.clearAllMocks();
+ });
+
+ describe('registerSanitizer', () => {
+ describe('sanitizer is registered', () => {
+ const strapiMock = getStrapiMock();
+
+ beforeEach(() => register({ strapi: strapiMock }));
+ it('sanitizer is registered', async () => {
+ expect(strapiMock.sanitizers.add).toHaveBeenCalledTimes(1);
+ expect(strapiMock.sanitizers.add).toHaveBeenCalledWith(
+ 'content-api.output',
+ expect.any(Function)
+ );
+ });
+ });
+
+ describe('sanitizer tests', () => {
+ let sanitizerFn: any;
+ let strapiMock: ReturnType;
+
+ beforeEach(() => {
+ strapiMock = getStrapiMock();
+ register({ strapi: strapiMock });
+
+ global.strapi = strapiMock;
+
+ sanitizerFn = strapiMock.sanitizers.add.mock.calls[0][1];
+ });
+
+ it('should not convert to imagekit url', async () => {
+ strapiMock
+ .plugin('imagekit')
+ .service('settings')
+ .getSettings.mockResolvedValue({ enabled: false });
+
+ const entity = {
+ ...baseEntityMock,
+ url: '/testing/381.jpg?updatedAt=1725532500672',
+ };
+
+ const response = await sanitizerFn(schemaMock, entity);
+
+ expect(response.url).toBe('/testing/381.jpg?updatedAt=1725532500672');
+ });
+
+ it('should not convert to imagekit url', async () => {
+ strapiMock
+ .plugin('imagekit')
+ .service('settings')
+ .getSettings.mockResolvedValue({ enabled: true });
+
+ const entity = {
+ ...baseEntityMock,
+ url: '/testing/381.jpg?updatedAt=1725532500672',
+ };
+
+ const response = await sanitizerFn(schemaMock, entity);
+
+ expect(response.url).toBe('/testing/381.jpg?updatedAt=1725532500672');
+ });
+
+ it('should convert to imagekit url', async () => {
+ strapiMock.plugin('imagekit').service('settings').getSettings.mockResolvedValue({
+ enabled: true,
+ urlEndpoint: 'https://ik.imagekit.io/your-endpoint',
+ });
+
+ strapiMock
+ .plugin('imagekit')
+ .service('upload')
+ .getClient.mockResolvedValue(
+ new ImageKit({
+ publicKey: 'publicKey',
+ privateKey: 'privateKey',
+ urlEndpoint: 'https://ik.imagekit.io/your-endpoint',
+ })
+ );
+
+ const entity = {
+ ...baseEntityMock,
+ url: '/testing/381.jpg',
+ };
+
+ const response = await sanitizerFn(schemaMock, entity);
+
+ expect(response.url).toBe('https://ik.imagekit.io/your-endpoint/testing/381.jpg');
+ });
+
+ it('should convert to imagekit url including formats', async () => {
+ strapiMock.plugin('imagekit').service('settings').getSettings.mockResolvedValue({
+ enabled: true,
+ urlEndpoint: 'https://ik.imagekit.io/your-endpoint',
+ });
+
+ strapiMock
+ .plugin('imagekit')
+ .service('upload')
+ .getClient.mockResolvedValue(
+ new ImageKit({
+ publicKey: 'publicKey',
+ privateKey: 'privateKey',
+ urlEndpoint: 'https://ik.imagekit.io/your-endpoint',
+ })
+ );
+
+ const entity = {
+ ...baseEntityMock,
+ url: '/uploads/36950.jpg',
+ formats: {
+ thumbnail: {
+ name: 'thumbnail_36950.jpg',
+ hash: 'thumbnail_36950_4ba52a0b2a',
+ ext: '.jpg',
+ mime: 'image/jpeg',
+ path: null,
+ width: 245,
+ height: 153,
+ size: 8.81,
+ sizeInBytes: 8812,
+ url: '/uploads/thumbnail_36950_4ba52a0b2a.jpg',
+ },
+ medium: {
+ name: 'medium_36950.jpg',
+ hash: 'medium_36950_4ba52a0b2a',
+ ext: '.jpg',
+ mime: 'image/jpeg',
+ path: null,
+ width: 750,
+ height: 469,
+ size: 52.35,
+ sizeInBytes: 52349,
+ url: '/uploads/medium_36950_4ba52a0b2a.jpg',
+ },
+ small: {
+ name: 'small_36950.jpg',
+ hash: 'small_36950_4ba52a0b2a',
+ ext: '.jpg',
+ mime: 'image/jpeg',
+ path: null,
+ width: 500,
+ height: 313,
+ size: 27.51,
+ sizeInBytes: 27512,
+ url: '/uploads/small_36950_4ba52a0b2a.jpg',
+ },
+ large: {
+ name: 'large_36950.jpg',
+ hash: 'large_36950_4ba52a0b2a',
+ ext: '.jpg',
+ mime: 'image/jpeg',
+ path: null,
+ width: 1000,
+ height: 625,
+ size: 83.6,
+ sizeInBytes: 83598,
+ url: '/uploads/large_36950_4ba52a0b2a.jpg',
+ },
+ },
+ };
+
+ const response = await sanitizerFn(schemaMock, entity);
+
+ expect(response.url).toBe('https://ik.imagekit.io/your-endpoint/uploads/36950.jpg');
+ expect(response.formats.thumbnail.url).toBe(
+ 'https://ik.imagekit.io/your-endpoint/uploads/thumbnail_36950_4ba52a0b2a.jpg'
+ );
+ expect(response.formats.medium.url).toBe(
+ 'https://ik.imagekit.io/your-endpoint/uploads/medium_36950_4ba52a0b2a.jpg'
+ );
+ expect(response.formats.small.url).toBe(
+ 'https://ik.imagekit.io/your-endpoint/uploads/small_36950_4ba52a0b2a.jpg'
+ );
+ expect(response.formats.large.url).toBe(
+ 'https://ik.imagekit.io/your-endpoint/uploads/large_36950_4ba52a0b2a.jpg'
+ );
+ });
+ });
+ });
+});
diff --git a/server/tests/utils/entity.ts b/server/tests/utils/entity.ts
new file mode 100644
index 0000000..792e74d
--- /dev/null
+++ b/server/tests/utils/entity.ts
@@ -0,0 +1,21 @@
+const baseEntityMock = {
+ id: 76,
+ documentId: 'd234cf2858a94fc8b362be04',
+ name: '381 (43).jpg',
+ alternativeText: null,
+ caption: null,
+ width: 1680,
+ height: 1050,
+ formats: {},
+ hash: '381_(43)_66d98954',
+ ext: '.jpg',
+ mime: 'image/jpeg',
+ size: 333.103515625,
+ provider: 'imagekit',
+ provider_metadata: { fileId: '66d98954e375273f60401bac' },
+ createdAt: '2024-09-05T10:34:59.977Z',
+ updatedAt: '2024-09-05T10:35:00.672Z',
+ publishedAt: '2025-05-15T21:29:41.210Z',
+};
+
+export default baseEntityMock;
diff --git a/server/tests/utils/plugins/imagekit/index.ts b/server/tests/utils/plugins/imagekit/index.ts
new file mode 100644
index 0000000..ab7b43d
--- /dev/null
+++ b/server/tests/utils/plugins/imagekit/index.ts
@@ -0,0 +1,20 @@
+import { settingsServiceMock, uploadServiceMock, webhookServiceMock } from './services';
+
+export const imagekitMock = {
+ service(name: 'upload' | 'webhook' | 'settings') {
+ switch (name) {
+ case 'upload':
+ return uploadServiceMock;
+ case 'webhook':
+ return webhookServiceMock;
+ case 'settings':
+ return settingsServiceMock;
+ default: {
+ throw new Error(`Unknown service: ${name}`);
+ }
+ }
+ },
+ config: jest.fn((_path: string, defaultValue: any) => {
+ return defaultValue;
+ }),
+};
diff --git a/server/tests/utils/plugins/imagekit/services.ts b/server/tests/utils/plugins/imagekit/services.ts
new file mode 100644
index 0000000..4cbf759
--- /dev/null
+++ b/server/tests/utils/plugins/imagekit/services.ts
@@ -0,0 +1,19 @@
+export const settingsServiceMock = {
+ getSettings: jest.fn(),
+ updateSettings: jest.fn(),
+ restoreConfig: jest.fn(),
+};
+
+export const uploadServiceMock = {
+ upload: jest.fn(),
+ uploadStream: jest.fn(),
+ delete: jest.fn(),
+ isPrivate: jest.fn(),
+ getSignedUrl: jest.fn(),
+ getClient: jest.fn(),
+};
+
+export const webhookServiceMock = {
+ processWebhook: jest.fn(),
+ importFileToStrapi: jest.fn(),
+};
diff --git a/server/tests/utils/plugins/upload/index.ts b/server/tests/utils/plugins/upload/index.ts
new file mode 100644
index 0000000..f969b81
--- /dev/null
+++ b/server/tests/utils/plugins/upload/index.ts
@@ -0,0 +1,8 @@
+export const uploadMock = {
+ provider: {
+ upload: jest.fn(() => Promise.resolve()),
+ uploadStream: jest.fn(() => Promise.resolve()),
+ delete: jest.fn(() => Promise.resolve()),
+ isPrivate: jest.fn(() => Promise.resolve()),
+ },
+};
diff --git a/server/tests/utils/schema.ts b/server/tests/utils/schema.ts
new file mode 100644
index 0000000..96fadb6
--- /dev/null
+++ b/server/tests/utils/schema.ts
@@ -0,0 +1,147 @@
+const schema = {
+ collectionName: 'files',
+ info: { singularName: 'file', pluralName: 'files', displayName: 'File', description: '' },
+ options: { draftAndPublish: false },
+ pluginOptions: {
+ 'content-manager': { visible: false },
+ 'content-type-builder': { visible: false },
+ },
+ attributes: {
+ name: { type: 'string', configurable: false, required: true },
+ alternativeText: { type: 'string', configurable: false },
+ caption: { type: 'string', configurable: false },
+ width: { type: 'integer', configurable: false },
+ height: { type: 'integer', configurable: false },
+ formats: { type: 'json', configurable: false },
+ hash: { type: 'string', configurable: false, required: true },
+ ext: { type: 'string', configurable: false },
+ mime: { type: 'string', configurable: false, required: true },
+ size: { type: 'decimal', configurable: false, required: true },
+ url: { type: 'string', configurable: false, required: true },
+ previewUrl: { type: 'string', configurable: false },
+ provider: { type: 'string', configurable: false, required: true },
+ provider_metadata: { type: 'json', configurable: false },
+ related: { type: 'relation', relation: 'morphToMany', configurable: false },
+ folder: {
+ type: 'relation',
+ relation: 'manyToOne',
+ target: 'plugin::upload.folder',
+ inversedBy: 'files',
+ private: true,
+ },
+ folderPath: {
+ type: 'string',
+ minLength: 1,
+ required: true,
+ private: true,
+ searchable: false,
+ },
+ createdAt: { type: 'datetime' },
+ updatedAt: { type: 'datetime' },
+ publishedAt: { type: 'datetime', configurable: false, writable: true, visible: false },
+ createdBy: {
+ type: 'relation',
+ relation: 'oneToOne',
+ target: 'admin::user',
+ configurable: false,
+ writable: false,
+ visible: false,
+ useJoinTable: false,
+ private: true,
+ },
+ updatedBy: {
+ type: 'relation',
+ relation: 'oneToOne',
+ target: 'admin::user',
+ configurable: false,
+ writable: false,
+ visible: false,
+ useJoinTable: false,
+ private: true,
+ },
+ locale: {
+ writable: true,
+ private: true,
+ configurable: false,
+ visible: false,
+ type: 'string',
+ },
+ localizations: {
+ type: 'relation',
+ relation: 'oneToMany',
+ target: 'plugin::upload.file',
+ writable: false,
+ private: true,
+ configurable: false,
+ visible: false,
+ unstable_virtual: true,
+ joinColumn: {
+ name: 'document_id',
+ referencedColumn: 'document_id',
+ referencedTable: 'files',
+ },
+ },
+ },
+ indexes: [
+ { name: 'upload_files_folder_path_index', columns: ['folder_path'], type: null },
+ { name: 'upload_files_created_at_index', columns: ['created_at'], type: null },
+ { name: 'upload_files_updated_at_index', columns: ['updated_at'], type: null },
+ { name: 'upload_files_name_index', columns: ['name'], type: null },
+ { name: 'upload_files_size_index', columns: ['size'], type: null },
+ { name: 'upload_files_ext_index', columns: ['ext'], type: null },
+ ],
+ plugin: 'upload',
+ globalId: 'UploadFile',
+ uid: 'plugin::upload.file',
+ modelType: 'contentType',
+ kind: 'collectionType',
+ __schema__: {
+ collectionName: 'files',
+ info: {
+ singularName: 'file',
+ pluralName: 'files',
+ displayName: 'File',
+ description: '',
+ },
+ options: {},
+ pluginOptions: {
+ 'content-manager': { visible: false },
+ 'content-type-builder': { visible: false },
+ },
+ attributes: {
+ name: { type: 'string', configurable: false, required: true },
+ alternativeText: { type: 'string', configurable: false },
+ caption: { type: 'string', configurable: false },
+ width: { type: 'integer', configurable: false },
+ height: { type: 'integer', configurable: false },
+ formats: { type: 'json', configurable: false },
+ hash: { type: 'string', configurable: false, required: true },
+ ext: { type: 'string', configurable: false },
+ mime: { type: 'string', configurable: false, required: true },
+ size: { type: 'decimal', configurable: false, required: true },
+ url: { type: 'string', configurable: false, required: true },
+ previewUrl: { type: 'string', configurable: false },
+ provider: { type: 'string', configurable: false, required: true },
+ provider_metadata: { type: 'json', configurable: false },
+ related: { type: 'relation', relation: 'morphToMany', configurable: false },
+ folder: {
+ type: 'relation',
+ relation: 'manyToOne',
+ target: 'plugin::upload.folder',
+ inversedBy: 'files',
+ private: true,
+ },
+ folderPath: {
+ type: 'string',
+ minLength: 1,
+ required: true,
+ private: true,
+ searchable: false,
+ },
+ },
+ kind: 'collectionType',
+ },
+ modelName: 'file',
+};
+
+export default schema;
diff --git a/server/tests/utils/strapi.ts b/server/tests/utils/strapi.ts
new file mode 100644
index 0000000..3a8b6f1
--- /dev/null
+++ b/server/tests/utils/strapi.ts
@@ -0,0 +1,57 @@
+import { Core } from '@strapi/strapi';
+import { imagekitMock } from './plugins/imagekit';
+import { uploadMock } from './plugins/upload';
+
+type StrapiMockConfig = {
+ storeConfig?: any;
+ config?: any;
+ log?: any;
+ imagekitPlugin?: any;
+ uploadPlugin?: any;
+ query?: any;
+};
+
+type StrapiMock = Core.Strapi & { store: jest.Mock };
+
+export const getStrapiMock = ({
+ storeConfig,
+ config,
+ log,
+ imagekitPlugin = imagekitMock,
+ uploadPlugin = uploadMock,
+ query,
+}: StrapiMockConfig = {}) =>
+ ({
+ config,
+ log,
+ query,
+ store: jest.fn().mockImplementation(() => ({
+ get: jest.fn(() => Promise.resolve(storeConfig)),
+ set: jest.fn(() => Promise.resolve()),
+ delete: jest.fn(() => Promise.resolve()),
+ })),
+ plugin(name: 'upload' | 'imagekit') {
+ switch (name) {
+ case 'upload':
+ return uploadPlugin;
+ case 'imagekit':
+ return imagekitPlugin;
+ default:
+ throw new Error(`Unknown plugin: ${name}`);
+ }
+ },
+ controllers: {},
+ admin: {
+ services: {
+ permission: {
+ actionProvider: {
+ registerMany: jest.fn(() => Promise.resolve()),
+ },
+ },
+ },
+ },
+ sanitizers: {
+ add: jest.fn(),
+ },
+ getModel: jest.fn(),
+ }) as unknown as StrapiMock;
diff --git a/server/tsconfig.json b/server/tsconfig.json
index 2d8bbf8..b2e5854 100644
--- a/server/tsconfig.json
+++ b/server/tsconfig.json
@@ -1,6 +1,7 @@
{
"extends": "@strapi/typescript-utils/tsconfigs/server",
"include": ["./src"],
+ "exclude": ["**/*.test.ts"],
"compilerOptions": {
"rootDir": "../",
"baseUrl": ".",
diff --git a/tsconfig.test.json b/tsconfig.test.json
new file mode 100644
index 0000000..bf53803
--- /dev/null
+++ b/tsconfig.test.json
@@ -0,0 +1,12 @@
+{
+ "extends": "@strapi/typescript-utils/tsconfigs/server",
+ "include": ["./src"],
+ "exclude": ["**/*.test.ts"],
+ "compilerOptions": {
+ "rootDir": "../",
+ "baseUrl": ".",
+ "module": "NodeNext",
+ "moduleResolution": "NodeNext",
+ "isolatedModules": true
+ }
+}
diff --git a/yarn.lock b/yarn.lock
index bba17ef..125ebb7 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5,7 +5,17 @@ __metadata:
version: 8
cacheKey: 10c0
-"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.27.1":
+"@ampproject/remapping@npm:^2.2.0":
+ version: 2.3.0
+ resolution: "@ampproject/remapping@npm:2.3.0"
+ dependencies:
+ "@jridgewell/gen-mapping": "npm:^0.3.5"
+ "@jridgewell/trace-mapping": "npm:^0.3.24"
+ checksum: 10c0/81d63cca5443e0f0c72ae18b544cc28c7c0ec2cea46e7cb888bb0e0f411a1191d0d6b7af798d54e30777d8d1488b2ec0732aac2be342d3d7d3ffd271c6f489ed
+ languageName: node
+ linkType: hard
+
+"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.27.1":
version: 7.27.1
resolution: "@babel/code-frame@npm:7.27.1"
dependencies:
@@ -16,7 +26,37 @@ __metadata:
languageName: node
linkType: hard
-"@babel/generator@npm:^7.27.1":
+"@babel/compat-data@npm:^7.27.2":
+ version: 7.27.2
+ resolution: "@babel/compat-data@npm:7.27.2"
+ checksum: 10c0/077c9e01af3b90decee384a6a44dcf353898e980cee22ec7941f9074655dbbe97ec317345536cdc7ef7391521e1497930c522a3816af473076dd524be7fccd32
+ languageName: node
+ linkType: hard
+
+"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9":
+ version: 7.27.1
+ resolution: "@babel/core@npm:7.27.1"
+ dependencies:
+ "@ampproject/remapping": "npm:^2.2.0"
+ "@babel/code-frame": "npm:^7.27.1"
+ "@babel/generator": "npm:^7.27.1"
+ "@babel/helper-compilation-targets": "npm:^7.27.1"
+ "@babel/helper-module-transforms": "npm:^7.27.1"
+ "@babel/helpers": "npm:^7.27.1"
+ "@babel/parser": "npm:^7.27.1"
+ "@babel/template": "npm:^7.27.1"
+ "@babel/traverse": "npm:^7.27.1"
+ "@babel/types": "npm:^7.27.1"
+ convert-source-map: "npm:^2.0.0"
+ debug: "npm:^4.1.0"
+ gensync: "npm:^1.0.0-beta.2"
+ json5: "npm:^2.2.3"
+ semver: "npm:^6.3.1"
+ checksum: 10c0/0fc31f87f5401ac5d375528cb009f4ea5527fc8c5bb5b64b5b22c033b60fd0ad723388933a5f3f5db14e1edd13c958e9dd7e5c68f9b68c767aeb496199c8a4bb
+ languageName: node
+ linkType: hard
+
+"@babel/generator@npm:^7.27.1, @babel/generator@npm:^7.7.2":
version: 7.27.1
resolution: "@babel/generator@npm:7.27.1"
dependencies:
@@ -29,7 +69,20 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-module-imports@npm:^7.16.7":
+"@babel/helper-compilation-targets@npm:^7.27.1":
+ version: 7.27.2
+ resolution: "@babel/helper-compilation-targets@npm:7.27.2"
+ dependencies:
+ "@babel/compat-data": "npm:^7.27.2"
+ "@babel/helper-validator-option": "npm:^7.27.1"
+ browserslist: "npm:^4.24.0"
+ lru-cache: "npm:^5.1.1"
+ semver: "npm:^6.3.1"
+ checksum: 10c0/f338fa00dcfea931804a7c55d1a1c81b6f0a09787e528ec580d5c21b3ecb3913f6cb0f361368973ce953b824d910d3ac3e8a8ee15192710d3563826447193ad1
+ languageName: node
+ linkType: hard
+
+"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.27.1":
version: 7.27.1
resolution: "@babel/helper-module-imports@npm:7.27.1"
dependencies:
@@ -39,6 +92,26 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-module-transforms@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/helper-module-transforms@npm:7.27.1"
+ dependencies:
+ "@babel/helper-module-imports": "npm:^7.27.1"
+ "@babel/helper-validator-identifier": "npm:^7.27.1"
+ "@babel/traverse": "npm:^7.27.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10c0/196ab29635fe6eb5ba6ead2972d41b1c0d40f400f99bd8fc109cef21440de24c26c972fabf932585e618694d590379ab8d22def8da65a54459d38ec46112ead7
+ languageName: node
+ linkType: hard
+
+"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.27.1, @babel/helper-plugin-utils@npm:^7.8.0":
+ version: 7.27.1
+ resolution: "@babel/helper-plugin-utils@npm:7.27.1"
+ checksum: 10c0/94cf22c81a0c11a09b197b41ab488d416ff62254ce13c57e62912c85700dc2e99e555225787a4099ff6bae7a1812d622c80fbaeda824b79baa10a6c5ac4cf69b
+ languageName: node
+ linkType: hard
+
"@babel/helper-string-parser@npm:^7.27.1":
version: 7.27.1
resolution: "@babel/helper-string-parser@npm:7.27.1"
@@ -53,7 +126,24 @@ __metadata:
languageName: node
linkType: hard
-"@babel/parser@npm:^7.27.1, @babel/parser@npm:^7.27.2":
+"@babel/helper-validator-option@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/helper-validator-option@npm:7.27.1"
+ checksum: 10c0/6fec5f006eba40001a20f26b1ef5dbbda377b7b68c8ad518c05baa9af3f396e780bdfded24c4eef95d14bb7b8fd56192a6ed38d5d439b97d10efc5f1a191d148
+ languageName: node
+ linkType: hard
+
+"@babel/helpers@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/helpers@npm:7.27.1"
+ dependencies:
+ "@babel/template": "npm:^7.27.1"
+ "@babel/types": "npm:^7.27.1"
+ checksum: 10c0/e078257b9342dae2c041ac050276c5a28701434ad09478e6dc6976abd99f721a5a92e4bebddcbca6b1c3a7e8acace56a946340c701aad5e7507d2c87446459ba
+ languageName: node
+ linkType: hard
+
+"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.27.1, @babel/parser@npm:^7.27.2":
version: 7.27.2
resolution: "@babel/parser@npm:7.27.2"
dependencies:
@@ -64,6 +154,193 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-syntax-async-generators@npm:^7.8.4":
+ version: 7.8.4
+ resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.8.0"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/d13efb282838481348c71073b6be6245b35d4f2f964a8f71e4174f235009f929ef7613df25f8d2338e2d3e44bc4265a9f8638c6aaa136d7a61fe95985f9725c8
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-bigint@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-bigint@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.8.0"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/686891b81af2bc74c39013655da368a480f17dd237bf9fbc32048e5865cb706d5a8f65438030da535b332b1d6b22feba336da8fa931f663b6b34e13147d12dde
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-class-properties@npm:^7.12.13":
+ version: 7.12.13
+ resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.12.13"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/95168fa186416195280b1264fb18afcdcdcea780b3515537b766cb90de6ce042d42dd6a204a39002f794ae5845b02afb0fd4861a3308a861204a55e68310a120
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-class-static-block@npm:^7.14.5":
+ version: 7.14.5
+ resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.14.5"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/4464bf9115f4a2d02ce1454411baf9cfb665af1da53709c5c56953e5e2913745b0fcce82982a00463d6facbdd93445c691024e310b91431a1e2f024b158f6371
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-import-attributes@npm:^7.24.7":
+ version: 7.27.1
+ resolution: "@babel/plugin-syntax-import-attributes@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.27.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/e66f7a761b8360419bbb93ab67d87c8a97465ef4637a985ff682ce7ba6918b34b29d81190204cf908d0933058ee7b42737423cd8a999546c21b3aabad4affa9a
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-import-meta@npm:^7.10.4":
+ version: 7.10.4
+ resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.10.4"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/0b08b5e4c3128523d8e346f8cfc86824f0da2697b1be12d71af50a31aff7a56ceb873ed28779121051475010c28d6146a6bfea8518b150b71eeb4e46190172ee
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-json-strings@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.8.0"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/e98f31b2ec406c57757d115aac81d0336e8434101c224edd9a5c93cefa53faf63eacc69f3138960c8b25401315af03df37f68d316c151c4b933136716ed6906e
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-jsx@npm:^7.7.2":
+ version: 7.27.1
+ resolution: "@babel/plugin-syntax-jsx@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.27.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/bc5afe6a458d5f0492c02a54ad98c5756a0c13bd6d20609aae65acd560a9e141b0876da5f358dce34ea136f271c1016df58b461184d7ae9c4321e0f98588bc84
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4":
+ version: 7.10.4
+ resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.10.4"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/2594cfbe29411ad5bc2ad4058de7b2f6a8c5b86eda525a993959438615479e59c012c14aec979e538d60a584a1a799b60d1b8942c3b18468cb9d99b8fd34cd0b
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.8.0"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/2024fbb1162899094cfc81152449b12bd0cc7053c6d4bda8ac2852545c87d0a851b1b72ed9560673cbf3ef6248257262c3c04aabf73117215c1b9cc7dd2542ce
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-numeric-separator@npm:^7.10.4":
+ version: 7.10.4
+ resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.10.4"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/c55a82b3113480942c6aa2fcbe976ff9caa74b7b1109ff4369641dfbc88d1da348aceb3c31b6ed311c84d1e7c479440b961906c735d0ab494f688bf2fd5b9bb9
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.8.0"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/ee1eab52ea6437e3101a0a7018b0da698545230015fc8ab129d292980ec6dff94d265e9e90070e8ae5fed42f08f1622c14c94552c77bcac784b37f503a82ff26
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.8.0"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/27e2493ab67a8ea6d693af1287f7e9acec206d1213ff107a928e85e173741e1d594196f99fec50e9dde404b09164f39dec5864c767212154ffe1caa6af0bc5af
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-optional-chaining@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.8.0"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/46edddf2faa6ebf94147b8e8540dfc60a5ab718e2de4d01b2c0bdf250a4d642c2bd47cbcbb739febcb2bf75514dbcefad3c52208787994b8d0f8822490f55e81
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5":
+ version: 7.14.5
+ resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.14.5"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/69822772561706c87f0a65bc92d0772cea74d6bc0911537904a676d5ff496a6d3ac4e05a166d8125fce4a16605bace141afc3611074e170a994e66e5397787f3
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-top-level-await@npm:^7.14.5":
+ version: 7.14.5
+ resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.14.5"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/14bf6e65d5bc1231ffa9def5f0ef30b19b51c218fcecaa78cd1bdf7939dfdf23f90336080b7f5196916368e399934ce5d581492d8292b46a2fb569d8b2da106f
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-typescript@npm:^7.7.2":
+ version: 7.27.1
+ resolution: "@babel/plugin-syntax-typescript@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.27.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/11589b4c89c66ef02d57bf56c6246267851ec0c361f58929327dc3e070b0dab644be625bbe7fb4c4df30c3634bfdfe31244e1f517be397d2def1487dbbe3c37d
+ languageName: node
+ linkType: hard
+
"@babel/runtime-corejs3@npm:^7.9.2":
version: 7.27.1
resolution: "@babel/runtime-corejs3@npm:7.27.1"
@@ -80,7 +357,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/template@npm:^7.27.1":
+"@babel/template@npm:^7.27.1, @babel/template@npm:^7.3.3":
version: 7.27.2
resolution: "@babel/template@npm:7.27.2"
dependencies:
@@ -106,7 +383,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/types@npm:^7.27.1":
+"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.27.1, @babel/types@npm:^7.3.3":
version: 7.27.1
resolution: "@babel/types@npm:7.27.1"
dependencies:
@@ -116,6 +393,13 @@ __metadata:
languageName: node
linkType: hard
+"@bcoe/v8-coverage@npm:^0.2.3":
+ version: 0.2.3
+ resolution: "@bcoe/v8-coverage@npm:0.2.3"
+ checksum: 10c0/6b80ae4cb3db53f486da2dc63b6e190a74c8c3cca16bb2733f234a0b6a9382b09b146488ae08e2b22cf00f6c83e20f3e040a2f7894f05c045c946d6a090b1d52
+ languageName: node
+ linkType: hard
+
"@casl/ability@npm:6.5.0":
version: 6.5.0
resolution: "@casl/ability@npm:6.5.0"
@@ -241,6 +525,15 @@ __metadata:
languageName: node
linkType: hard
+"@cspotcode/source-map-support@npm:^0.8.0":
+ version: 0.8.1
+ resolution: "@cspotcode/source-map-support@npm:0.8.1"
+ dependencies:
+ "@jridgewell/trace-mapping": "npm:0.3.9"
+ checksum: 10c0/05c5368c13b662ee4c122c7bfbe5dc0b613416672a829f3e78bc49a357a197e0218d6e74e7c66cfcd04e15a179acab080bd3c69658c9fbefd0e1ccd950a07fc6
+ languageName: node
+ linkType: hard
+
"@dabh/diagnostics@npm:^2.0.2":
version: 2.0.3
resolution: "@dabh/diagnostics@npm:2.0.3"
@@ -1345,6 +1638,256 @@ __metadata:
languageName: node
linkType: hard
+"@istanbuljs/load-nyc-config@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "@istanbuljs/load-nyc-config@npm:1.1.0"
+ dependencies:
+ camelcase: "npm:^5.3.1"
+ find-up: "npm:^4.1.0"
+ get-package-type: "npm:^0.1.0"
+ js-yaml: "npm:^3.13.1"
+ resolve-from: "npm:^5.0.0"
+ checksum: 10c0/dd2a8b094887da5a1a2339543a4933d06db2e63cbbc2e288eb6431bd832065df0c099d091b6a67436e71b7d6bf85f01ce7c15f9253b4cbebcc3b9a496165ba42
+ languageName: node
+ linkType: hard
+
+"@istanbuljs/schema@npm:^0.1.2, @istanbuljs/schema@npm:^0.1.3":
+ version: 0.1.3
+ resolution: "@istanbuljs/schema@npm:0.1.3"
+ checksum: 10c0/61c5286771676c9ca3eb2bd8a7310a9c063fb6e0e9712225c8471c582d157392c88f5353581c8c9adbe0dff98892317d2fdfc56c3499aa42e0194405206a963a
+ languageName: node
+ linkType: hard
+
+"@jest/console@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/console@npm:29.7.0"
+ dependencies:
+ "@jest/types": "npm:^29.6.3"
+ "@types/node": "npm:*"
+ chalk: "npm:^4.0.0"
+ jest-message-util: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ slash: "npm:^3.0.0"
+ checksum: 10c0/7be408781d0a6f657e969cbec13b540c329671819c2f57acfad0dae9dbfe2c9be859f38fe99b35dba9ff1536937dc6ddc69fdcd2794812fa3c647a1619797f6c
+ languageName: node
+ linkType: hard
+
+"@jest/core@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/core@npm:29.7.0"
+ dependencies:
+ "@jest/console": "npm:^29.7.0"
+ "@jest/reporters": "npm:^29.7.0"
+ "@jest/test-result": "npm:^29.7.0"
+ "@jest/transform": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ "@types/node": "npm:*"
+ ansi-escapes: "npm:^4.2.1"
+ chalk: "npm:^4.0.0"
+ ci-info: "npm:^3.2.0"
+ exit: "npm:^0.1.2"
+ graceful-fs: "npm:^4.2.9"
+ jest-changed-files: "npm:^29.7.0"
+ jest-config: "npm:^29.7.0"
+ jest-haste-map: "npm:^29.7.0"
+ jest-message-util: "npm:^29.7.0"
+ jest-regex-util: "npm:^29.6.3"
+ jest-resolve: "npm:^29.7.0"
+ jest-resolve-dependencies: "npm:^29.7.0"
+ jest-runner: "npm:^29.7.0"
+ jest-runtime: "npm:^29.7.0"
+ jest-snapshot: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ jest-validate: "npm:^29.7.0"
+ jest-watcher: "npm:^29.7.0"
+ micromatch: "npm:^4.0.4"
+ pretty-format: "npm:^29.7.0"
+ slash: "npm:^3.0.0"
+ strip-ansi: "npm:^6.0.0"
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ checksum: 10c0/934f7bf73190f029ac0f96662c85cd276ec460d407baf6b0dbaec2872e157db4d55a7ee0b1c43b18874602f662b37cb973dda469a4e6d88b4e4845b521adeeb2
+ languageName: node
+ linkType: hard
+
+"@jest/environment@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/environment@npm:29.7.0"
+ dependencies:
+ "@jest/fake-timers": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ "@types/node": "npm:*"
+ jest-mock: "npm:^29.7.0"
+ checksum: 10c0/c7b1b40c618f8baf4d00609022d2afa086d9c6acc706f303a70bb4b67275868f620ad2e1a9efc5edd418906157337cce50589a627a6400bbdf117d351b91ef86
+ languageName: node
+ linkType: hard
+
+"@jest/expect-utils@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/expect-utils@npm:29.7.0"
+ dependencies:
+ jest-get-type: "npm:^29.6.3"
+ checksum: 10c0/60b79d23a5358dc50d9510d726443316253ecda3a7fb8072e1526b3e0d3b14f066ee112db95699b7a43ad3f0b61b750c72e28a5a1cac361d7a2bb34747fa938a
+ languageName: node
+ linkType: hard
+
+"@jest/expect@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/expect@npm:29.7.0"
+ dependencies:
+ expect: "npm:^29.7.0"
+ jest-snapshot: "npm:^29.7.0"
+ checksum: 10c0/b41f193fb697d3ced134349250aed6ccea075e48c4f803159db102b826a4e473397c68c31118259868fd69a5cba70e97e1c26d2c2ff716ca39dc73a2ccec037e
+ languageName: node
+ linkType: hard
+
+"@jest/fake-timers@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/fake-timers@npm:29.7.0"
+ dependencies:
+ "@jest/types": "npm:^29.6.3"
+ "@sinonjs/fake-timers": "npm:^10.0.2"
+ "@types/node": "npm:*"
+ jest-message-util: "npm:^29.7.0"
+ jest-mock: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ checksum: 10c0/cf0a8bcda801b28dc2e2b2ba36302200ee8104a45ad7a21e6c234148932f826cb3bc57c8df3b7b815aeea0861d7b6ca6f0d4778f93b9219398ef28749e03595c
+ languageName: node
+ linkType: hard
+
+"@jest/globals@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/globals@npm:29.7.0"
+ dependencies:
+ "@jest/environment": "npm:^29.7.0"
+ "@jest/expect": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ jest-mock: "npm:^29.7.0"
+ checksum: 10c0/a385c99396878fe6e4460c43bd7bb0a5cc52befb462cc6e7f2a3810f9e7bcce7cdeb51908fd530391ee452dc856c98baa2c5f5fa8a5b30b071d31ef7f6955cea
+ languageName: node
+ linkType: hard
+
+"@jest/reporters@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/reporters@npm:29.7.0"
+ dependencies:
+ "@bcoe/v8-coverage": "npm:^0.2.3"
+ "@jest/console": "npm:^29.7.0"
+ "@jest/test-result": "npm:^29.7.0"
+ "@jest/transform": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ "@jridgewell/trace-mapping": "npm:^0.3.18"
+ "@types/node": "npm:*"
+ chalk: "npm:^4.0.0"
+ collect-v8-coverage: "npm:^1.0.0"
+ exit: "npm:^0.1.2"
+ glob: "npm:^7.1.3"
+ graceful-fs: "npm:^4.2.9"
+ istanbul-lib-coverage: "npm:^3.0.0"
+ istanbul-lib-instrument: "npm:^6.0.0"
+ istanbul-lib-report: "npm:^3.0.0"
+ istanbul-lib-source-maps: "npm:^4.0.0"
+ istanbul-reports: "npm:^3.1.3"
+ jest-message-util: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ jest-worker: "npm:^29.7.0"
+ slash: "npm:^3.0.0"
+ string-length: "npm:^4.0.1"
+ strip-ansi: "npm:^6.0.0"
+ v8-to-istanbul: "npm:^9.0.1"
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ checksum: 10c0/a754402a799541c6e5aff2c8160562525e2a47e7d568f01ebfc4da66522de39cbb809bbb0a841c7052e4270d79214e70aec3c169e4eae42a03bc1a8a20cb9fa2
+ languageName: node
+ linkType: hard
+
+"@jest/schemas@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "@jest/schemas@npm:29.6.3"
+ dependencies:
+ "@sinclair/typebox": "npm:^0.27.8"
+ checksum: 10c0/b329e89cd5f20b9278ae1233df74016ebf7b385e0d14b9f4c1ad18d096c4c19d1e687aa113a9c976b16ec07f021ae53dea811fb8c1248a50ac34fbe009fdf6be
+ languageName: node
+ linkType: hard
+
+"@jest/source-map@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "@jest/source-map@npm:29.6.3"
+ dependencies:
+ "@jridgewell/trace-mapping": "npm:^0.3.18"
+ callsites: "npm:^3.0.0"
+ graceful-fs: "npm:^4.2.9"
+ checksum: 10c0/a2f177081830a2e8ad3f2e29e20b63bd40bade294880b595acf2fc09ec74b6a9dd98f126a2baa2bf4941acd89b13a4ade5351b3885c224107083a0059b60a219
+ languageName: node
+ linkType: hard
+
+"@jest/test-result@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/test-result@npm:29.7.0"
+ dependencies:
+ "@jest/console": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ "@types/istanbul-lib-coverage": "npm:^2.0.0"
+ collect-v8-coverage: "npm:^1.0.0"
+ checksum: 10c0/7de54090e54a674ca173470b55dc1afdee994f2d70d185c80236003efd3fa2b753fff51ffcdda8e2890244c411fd2267529d42c4a50a8303755041ee493e6a04
+ languageName: node
+ linkType: hard
+
+"@jest/test-sequencer@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/test-sequencer@npm:29.7.0"
+ dependencies:
+ "@jest/test-result": "npm:^29.7.0"
+ graceful-fs: "npm:^4.2.9"
+ jest-haste-map: "npm:^29.7.0"
+ slash: "npm:^3.0.0"
+ checksum: 10c0/593a8c4272797bb5628984486080cbf57aed09c7cfdc0a634e8c06c38c6bef329c46c0016e84555ee55d1cd1f381518cf1890990ff845524c1123720c8c1481b
+ languageName: node
+ linkType: hard
+
+"@jest/transform@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/transform@npm:29.7.0"
+ dependencies:
+ "@babel/core": "npm:^7.11.6"
+ "@jest/types": "npm:^29.6.3"
+ "@jridgewell/trace-mapping": "npm:^0.3.18"
+ babel-plugin-istanbul: "npm:^6.1.1"
+ chalk: "npm:^4.0.0"
+ convert-source-map: "npm:^2.0.0"
+ fast-json-stable-stringify: "npm:^2.1.0"
+ graceful-fs: "npm:^4.2.9"
+ jest-haste-map: "npm:^29.7.0"
+ jest-regex-util: "npm:^29.6.3"
+ jest-util: "npm:^29.7.0"
+ micromatch: "npm:^4.0.4"
+ pirates: "npm:^4.0.4"
+ slash: "npm:^3.0.0"
+ write-file-atomic: "npm:^4.0.2"
+ checksum: 10c0/7f4a7f73dcf45dfdf280c7aa283cbac7b6e5a904813c3a93ead7e55873761fc20d5c4f0191d2019004fac6f55f061c82eb3249c2901164ad80e362e7a7ede5a6
+ languageName: node
+ linkType: hard
+
+"@jest/types@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "@jest/types@npm:29.6.3"
+ dependencies:
+ "@jest/schemas": "npm:^29.6.3"
+ "@types/istanbul-lib-coverage": "npm:^2.0.0"
+ "@types/istanbul-reports": "npm:^3.0.0"
+ "@types/node": "npm:*"
+ "@types/yargs": "npm:^17.0.8"
+ chalk: "npm:^4.0.0"
+ checksum: 10c0/ea4e493dd3fb47933b8ccab201ae573dcc451f951dc44ed2a86123cd8541b82aa9d2b1031caf9b1080d6673c517e2dcc25a44b2dc4f3fbc37bfc965d444888c0
+ languageName: node
+ linkType: hard
+
"@jridgewell/gen-mapping@npm:^0.3.5":
version: 0.3.8
resolution: "@jridgewell/gen-mapping@npm:0.3.8"
@@ -1356,7 +1899,7 @@ __metadata:
languageName: node
linkType: hard
-"@jridgewell/resolve-uri@npm:^3.1.0":
+"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0":
version: 3.1.2
resolution: "@jridgewell/resolve-uri@npm:3.1.2"
checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e
@@ -1387,7 +1930,17 @@ __metadata:
languageName: node
linkType: hard
-"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25":
+"@jridgewell/trace-mapping@npm:0.3.9":
+ version: 0.3.9
+ resolution: "@jridgewell/trace-mapping@npm:0.3.9"
+ dependencies:
+ "@jridgewell/resolve-uri": "npm:^3.0.3"
+ "@jridgewell/sourcemap-codec": "npm:^1.4.10"
+ checksum: 10c0/fa425b606d7c7ee5bfa6a31a7b050dd5814b4082f318e0e4190f991902181b4330f43f4805db1dd4f2433fd0ed9cc7a7b9c2683f1deeab1df1b0a98b1e24055b
+ languageName: node
+ linkType: hard
+
+"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25":
version: 0.3.25
resolution: "@jridgewell/trace-mapping@npm:0.3.25"
dependencies:
@@ -2887,6 +3440,13 @@ __metadata:
languageName: node
linkType: hard
+"@sinclair/typebox@npm:^0.27.8":
+ version: 0.27.8
+ resolution: "@sinclair/typebox@npm:0.27.8"
+ checksum: 10c0/ef6351ae073c45c2ac89494dbb3e1f87cc60a93ce4cde797b782812b6f97da0d620ae81973f104b43c9b7eaa789ad20ba4f6a1359f1cc62f63729a55a7d22d4e
+ languageName: node
+ linkType: hard
+
"@sindresorhus/is@npm:^4.0.0":
version: 4.6.0
resolution: "@sindresorhus/is@npm:4.6.0"
@@ -2921,6 +3481,24 @@ __metadata:
languageName: node
linkType: hard
+"@sinonjs/commons@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "@sinonjs/commons@npm:3.0.1"
+ dependencies:
+ type-detect: "npm:4.0.8"
+ checksum: 10c0/1227a7b5bd6c6f9584274db996d7f8cee2c8c350534b9d0141fc662eaf1f292ea0ae3ed19e5e5271c8fd390d27e492ca2803acd31a1978be2cdc6be0da711403
+ languageName: node
+ linkType: hard
+
+"@sinonjs/fake-timers@npm:^10.0.2":
+ version: 10.3.0
+ resolution: "@sinonjs/fake-timers@npm:10.3.0"
+ dependencies:
+ "@sinonjs/commons": "npm:^3.0.0"
+ checksum: 10c0/2e2fb6cc57f227912814085b7b01fede050cd4746ea8d49a1e44d5a0e56a804663b0340ae2f11af7559ea9bf4d087a11f2f646197a660ea3cb04e19efc04aa63
+ languageName: node
+ linkType: hard
+
"@strapi/admin@npm:5.13.0":
version: 5.13.0
resolution: "@strapi/admin@npm:5.13.0"
@@ -3910,6 +4488,34 @@ __metadata:
languageName: node
linkType: hard
+"@tsconfig/node10@npm:^1.0.7":
+ version: 1.0.11
+ resolution: "@tsconfig/node10@npm:1.0.11"
+ checksum: 10c0/28a0710e5d039e0de484bdf85fee883bfd3f6a8980601f4d44066b0a6bcd821d31c4e231d1117731c4e24268bd4cf2a788a6787c12fc7f8d11014c07d582783c
+ languageName: node
+ linkType: hard
+
+"@tsconfig/node12@npm:^1.0.7":
+ version: 1.0.11
+ resolution: "@tsconfig/node12@npm:1.0.11"
+ checksum: 10c0/dddca2b553e2bee1308a056705103fc8304e42bb2d2cbd797b84403a223b25c78f2c683ec3e24a095e82cd435387c877239bffcb15a590ba817cd3f6b9a99fd9
+ languageName: node
+ linkType: hard
+
+"@tsconfig/node14@npm:^1.0.0":
+ version: 1.0.3
+ resolution: "@tsconfig/node14@npm:1.0.3"
+ checksum: 10c0/67c1316d065fdaa32525bc9449ff82c197c4c19092b9663b23213c8cbbf8d88b6ed6a17898e0cbc2711950fbfaf40388938c1c748a2ee89f7234fc9e7fe2bf44
+ languageName: node
+ linkType: hard
+
+"@tsconfig/node16@npm:^1.0.2":
+ version: 1.0.4
+ resolution: "@tsconfig/node16@npm:1.0.4"
+ checksum: 10c0/05f8f2734e266fb1839eb1d57290df1664fe2aa3b0fdd685a9035806daa635f7519bf6d5d9b33f6e69dd545b8c46bd6e2b5c79acb2b1f146e885f7f11a42a5bb
+ languageName: node
+ linkType: hard
+
"@types/accepts@npm:*":
version: 1.3.7
resolution: "@types/accepts@npm:1.3.7"
@@ -3933,6 +4539,47 @@ __metadata:
languageName: node
linkType: hard
+"@types/babel__core@npm:^7.1.14":
+ version: 7.20.5
+ resolution: "@types/babel__core@npm:7.20.5"
+ dependencies:
+ "@babel/parser": "npm:^7.20.7"
+ "@babel/types": "npm:^7.20.7"
+ "@types/babel__generator": "npm:*"
+ "@types/babel__template": "npm:*"
+ "@types/babel__traverse": "npm:*"
+ checksum: 10c0/bdee3bb69951e833a4b811b8ee9356b69a61ed5b7a23e1a081ec9249769117fa83aaaf023bb06562a038eb5845155ff663e2d5c75dd95c1d5ccc91db012868ff
+ languageName: node
+ linkType: hard
+
+"@types/babel__generator@npm:*":
+ version: 7.27.0
+ resolution: "@types/babel__generator@npm:7.27.0"
+ dependencies:
+ "@babel/types": "npm:^7.0.0"
+ checksum: 10c0/9f9e959a8792df208a9d048092fda7e1858bddc95c6314857a8211a99e20e6830bdeb572e3587ae8be5429e37f2a96fcf222a9f53ad232f5537764c9e13a2bbd
+ languageName: node
+ linkType: hard
+
+"@types/babel__template@npm:*":
+ version: 7.4.4
+ resolution: "@types/babel__template@npm:7.4.4"
+ dependencies:
+ "@babel/parser": "npm:^7.1.0"
+ "@babel/types": "npm:^7.0.0"
+ checksum: 10c0/cc84f6c6ab1eab1427e90dd2b76ccee65ce940b778a9a67be2c8c39e1994e6f5bbc8efa309f6cea8dc6754994524cd4d2896558df76d92e7a1f46ecffee7112b
+ languageName: node
+ linkType: hard
+
+"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6":
+ version: 7.20.7
+ resolution: "@types/babel__traverse@npm:7.20.7"
+ dependencies:
+ "@babel/types": "npm:^7.20.7"
+ checksum: 10c0/5386f0af44f8746b063b87418f06129a814e16bb2686965a575e9d7376b360b088b89177778d8c426012abc43dd1a2d8ec3218bfc382280c898682746ce2ffbd
+ languageName: node
+ linkType: hard
+
"@types/body-parser@npm:*":
version: 1.19.5
resolution: "@types/body-parser@npm:1.19.5"
@@ -4102,6 +4749,15 @@ __metadata:
languageName: node
linkType: hard
+"@types/graceful-fs@npm:^4.1.3":
+ version: 4.1.9
+ resolution: "@types/graceful-fs@npm:4.1.9"
+ dependencies:
+ "@types/node": "npm:*"
+ checksum: 10c0/235d2fc69741448e853333b7c3d1180a966dd2b8972c8cbcd6b2a0c6cd7f8d582ab2b8e58219dbc62cce8f1b40aa317ff78ea2201cdd8249da5025adebed6f0b
+ languageName: node
+ linkType: hard
+
"@types/hoist-non-react-statics@npm:^3.3.1":
version: 3.3.6
resolution: "@types/hoist-non-react-statics@npm:3.3.6"
@@ -4167,6 +4823,41 @@ __metadata:
languageName: node
linkType: hard
+"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1":
+ version: 2.0.6
+ resolution: "@types/istanbul-lib-coverage@npm:2.0.6"
+ checksum: 10c0/3948088654f3eeb45363f1db158354fb013b362dba2a5c2c18c559484d5eb9f6fd85b23d66c0a7c2fcfab7308d0a585b14dadaca6cc8bf89ebfdc7f8f5102fb7
+ languageName: node
+ linkType: hard
+
+"@types/istanbul-lib-report@npm:*":
+ version: 3.0.3
+ resolution: "@types/istanbul-lib-report@npm:3.0.3"
+ dependencies:
+ "@types/istanbul-lib-coverage": "npm:*"
+ checksum: 10c0/247e477bbc1a77248f3c6de5dadaae85ff86ac2d76c5fc6ab1776f54512a745ff2a5f791d22b942e3990ddbd40f3ef5289317c4fca5741bedfaa4f01df89051c
+ languageName: node
+ linkType: hard
+
+"@types/istanbul-reports@npm:^3.0.0":
+ version: 3.0.4
+ resolution: "@types/istanbul-reports@npm:3.0.4"
+ dependencies:
+ "@types/istanbul-lib-report": "npm:*"
+ checksum: 10c0/1647fd402aced5b6edac87274af14ebd6b3a85447ef9ad11853a70fd92a98d35f81a5d3ea9fcb5dbb5834e800c6e35b64475e33fcae6bfa9acc70d61497c54ee
+ languageName: node
+ linkType: hard
+
+"@types/jest@npm:^29.5.14":
+ version: 29.5.14
+ resolution: "@types/jest@npm:29.5.14"
+ dependencies:
+ expect: "npm:^29.0.0"
+ pretty-format: "npm:^29.0.0"
+ checksum: 10c0/18e0712d818890db8a8dab3d91e9ea9f7f19e3f83c2e50b312f557017dc81466207a71f3ed79cf4428e813ba939954fa26ffa0a9a7f153181ba174581b1c2aed
+ languageName: node
+ linkType: hard
+
"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9":
version: 7.0.15
resolution: "@types/json-schema@npm:7.0.15"
@@ -4402,6 +5093,13 @@ __metadata:
languageName: node
linkType: hard
+"@types/stack-utils@npm:^2.0.0":
+ version: 2.0.3
+ resolution: "@types/stack-utils@npm:2.0.3"
+ checksum: 10c0/1f4658385ae936330581bcb8aa3a066df03867d90281cdf89cc356d404bd6579be0f11902304e1f775d92df22c6dd761d4451c804b0a4fba973e06211e9bd77c
+ languageName: node
+ linkType: hard
+
"@types/stylis@npm:4.2.5":
version: 4.2.5
resolution: "@types/stylis@npm:4.2.5"
@@ -4432,6 +5130,22 @@ __metadata:
languageName: node
linkType: hard
+"@types/yargs-parser@npm:*":
+ version: 21.0.3
+ resolution: "@types/yargs-parser@npm:21.0.3"
+ checksum: 10c0/e71c3bd9d0b73ca82e10bee2064c384ab70f61034bbfb78e74f5206283fc16a6d85267b606b5c22cb2a3338373586786fed595b2009825d6a9115afba36560a0
+ languageName: node
+ linkType: hard
+
+"@types/yargs@npm:^17.0.8":
+ version: 17.0.33
+ resolution: "@types/yargs@npm:17.0.33"
+ dependencies:
+ "@types/yargs-parser": "npm:*"
+ checksum: 10c0/d16937d7ac30dff697801c3d6f235be2166df42e4a88bf730fa6dc09201de3727c0a9500c59a672122313341de5f24e45ee0ff579c08ce91928e519090b7906b
+ languageName: node
+ linkType: hard
+
"@ucast/core@npm:^1.0.0, @ucast/core@npm:^1.4.1, @ucast/core@npm:^1.6.1":
version: 1.10.2
resolution: "@ucast/core@npm:1.10.2"
@@ -4724,7 +5438,7 @@ __metadata:
languageName: node
linkType: hard
-"acorn-walk@npm:^8.0.0":
+"acorn-walk@npm:^8.0.0, acorn-walk@npm:^8.1.1":
version: 8.3.4
resolution: "acorn-walk@npm:8.3.4"
dependencies:
@@ -4733,7 +5447,7 @@ __metadata:
languageName: node
linkType: hard
-"acorn@npm:^8.0.4, acorn@npm:^8.11.0, acorn@npm:^8.14.0, acorn@npm:^8.8.2":
+"acorn@npm:^8.0.4, acorn@npm:^8.11.0, acorn@npm:^8.14.0, acorn@npm:^8.4.1, acorn@npm:^8.8.2":
version: 8.14.1
resolution: "acorn@npm:8.14.1"
bin:
@@ -4971,7 +5685,7 @@ __metadata:
languageName: node
linkType: hard
-"anymatch@npm:~3.1.2":
+"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2":
version: 3.1.3
resolution: "anymatch@npm:3.1.3"
dependencies:
@@ -4981,6 +5695,13 @@ __metadata:
languageName: node
linkType: hard
+"arg@npm:^4.1.0":
+ version: 4.1.3
+ resolution: "arg@npm:4.1.3"
+ checksum: 10c0/070ff801a9d236a6caa647507bdcc7034530604844d64408149a26b9e87c2f97650055c0f049abd1efc024b334635c01f29e0b632b371ac3f26130f4cf65997a
+ languageName: node
+ linkType: hard
+
"argparse@npm:^1.0.7, argparse@npm:~1.0.9":
version: 1.0.10
resolution: "argparse@npm:1.0.10"
@@ -5079,6 +5800,48 @@ __metadata:
languageName: node
linkType: hard
+"babel-jest@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "babel-jest@npm:29.7.0"
+ dependencies:
+ "@jest/transform": "npm:^29.7.0"
+ "@types/babel__core": "npm:^7.1.14"
+ babel-plugin-istanbul: "npm:^6.1.1"
+ babel-preset-jest: "npm:^29.6.3"
+ chalk: "npm:^4.0.0"
+ graceful-fs: "npm:^4.2.9"
+ slash: "npm:^3.0.0"
+ peerDependencies:
+ "@babel/core": ^7.8.0
+ checksum: 10c0/2eda9c1391e51936ca573dd1aedfee07b14c59b33dbe16ef347873ddd777bcf6e2fc739681e9e9661ab54ef84a3109a03725be2ac32cd2124c07ea4401cbe8c1
+ languageName: node
+ linkType: hard
+
+"babel-plugin-istanbul@npm:^6.1.1":
+ version: 6.1.1
+ resolution: "babel-plugin-istanbul@npm:6.1.1"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.0.0"
+ "@istanbuljs/load-nyc-config": "npm:^1.0.0"
+ "@istanbuljs/schema": "npm:^0.1.2"
+ istanbul-lib-instrument: "npm:^5.0.4"
+ test-exclude: "npm:^6.0.0"
+ checksum: 10c0/1075657feb705e00fd9463b329921856d3775d9867c5054b449317d39153f8fbcebd3e02ebf00432824e647faff3683a9ca0a941325ef1afe9b3c4dd51b24beb
+ languageName: node
+ linkType: hard
+
+"babel-plugin-jest-hoist@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "babel-plugin-jest-hoist@npm:29.6.3"
+ dependencies:
+ "@babel/template": "npm:^7.3.3"
+ "@babel/types": "npm:^7.3.3"
+ "@types/babel__core": "npm:^7.1.14"
+ "@types/babel__traverse": "npm:^7.0.6"
+ checksum: 10c0/7e6451caaf7dce33d010b8aafb970e62f1b0c0b57f4978c37b0d457bbcf0874d75a395a102daf0bae0bd14eafb9f6e9a165ee5e899c0a4f1f3bb2e07b304ed2e
+ languageName: node
+ linkType: hard
+
"babel-plugin-macros@npm:^3.1.0":
version: 3.1.0
resolution: "babel-plugin-macros@npm:3.1.0"
@@ -5090,6 +5853,43 @@ __metadata:
languageName: node
linkType: hard
+"babel-preset-current-node-syntax@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "babel-preset-current-node-syntax@npm:1.1.0"
+ dependencies:
+ "@babel/plugin-syntax-async-generators": "npm:^7.8.4"
+ "@babel/plugin-syntax-bigint": "npm:^7.8.3"
+ "@babel/plugin-syntax-class-properties": "npm:^7.12.13"
+ "@babel/plugin-syntax-class-static-block": "npm:^7.14.5"
+ "@babel/plugin-syntax-import-attributes": "npm:^7.24.7"
+ "@babel/plugin-syntax-import-meta": "npm:^7.10.4"
+ "@babel/plugin-syntax-json-strings": "npm:^7.8.3"
+ "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4"
+ "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3"
+ "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4"
+ "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3"
+ "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3"
+ "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3"
+ "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5"
+ "@babel/plugin-syntax-top-level-await": "npm:^7.14.5"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10c0/0b838d4412e3322cb4436f246e24e9c00bebcedfd8f00a2f51489db683bd35406bbd55a700759c28d26959c6e03f84dd6a1426f576f440267c1d7a73c5717281
+ languageName: node
+ linkType: hard
+
+"babel-preset-jest@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "babel-preset-jest@npm:29.6.3"
+ dependencies:
+ babel-plugin-jest-hoist: "npm:^29.6.3"
+ babel-preset-current-node-syntax: "npm:^1.0.0"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10c0/ec5fd0276b5630b05f0c14bb97cc3815c6b31600c683ebb51372e54dcb776cff790bdeeabd5b8d01ede375a040337ccbf6a3ccd68d3a34219125945e167ad943
+ languageName: node
+ linkType: hard
+
"balanced-match@npm:^1.0.0":
version: 1.0.2
resolution: "balanced-match@npm:1.0.2"
@@ -5240,6 +6040,24 @@ __metadata:
languageName: node
linkType: hard
+"bs-logger@npm:^0.2.6":
+ version: 0.2.6
+ resolution: "bs-logger@npm:0.2.6"
+ dependencies:
+ fast-json-stable-stringify: "npm:2.x"
+ checksum: 10c0/80e89aaaed4b68e3374ce936f2eb097456a0dddbf11f75238dbd53140b1e39259f0d248a5089ed456f1158984f22191c3658d54a713982f676709fbe1a6fa5a0
+ languageName: node
+ linkType: hard
+
+"bser@npm:2.1.1":
+ version: 2.1.1
+ resolution: "bser@npm:2.1.1"
+ dependencies:
+ node-int64: "npm:^0.4.0"
+ checksum: 10c0/24d8dfb7b6d457d73f32744e678a60cc553e4ec0e9e1a01cf614b44d85c3c87e188d3cc78ef0442ce5032ee6818de20a0162ba1074725c0d08908f62ea979227
+ languageName: node
+ linkType: hard
+
"buffer-equal-constant-time@npm:^1.0.1":
version: 1.0.1
resolution: "buffer-equal-constant-time@npm:1.0.1"
@@ -5391,6 +6209,13 @@ __metadata:
languageName: node
linkType: hard
+"camelcase@npm:^5.3.1":
+ version: 5.3.1
+ resolution: "camelcase@npm:5.3.1"
+ checksum: 10c0/92ff9b443bfe8abb15f2b1513ca182d16126359ad4f955ebc83dc4ddcc4ef3fdd2c078bc223f2673dc223488e75c99b16cc4d056624374b799e6a1555cf61b23
+ languageName: node
+ linkType: hard
+
"camelcase@npm:^6.2.0":
version: 6.3.0
resolution: "camelcase@npm:6.3.0"
@@ -5441,7 +6266,7 @@ __metadata:
languageName: node
linkType: hard
-"chalk@npm:4.1.2, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2":
+"chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2":
version: 4.1.2
resolution: "chalk@npm:4.1.2"
dependencies:
@@ -5504,6 +6329,13 @@ __metadata:
languageName: node
linkType: hard
+"char-regex@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "char-regex@npm:1.0.2"
+ checksum: 10c0/57a09a86371331e0be35d9083ba429e86c4f4648ecbe27455dbfb343037c16ee6fdc7f6b61f433a57cc5ded5561d71c56a150e018f40c2ffb7bc93a26dae341e
+ languageName: node
+ linkType: hard
+
"chardet@npm:^0.7.0":
version: 0.7.0
resolution: "chardet@npm:0.7.0"
@@ -5574,6 +6406,20 @@ __metadata:
languageName: node
linkType: hard
+"ci-info@npm:^3.2.0":
+ version: 3.9.0
+ resolution: "ci-info@npm:3.9.0"
+ checksum: 10c0/6f0109e36e111684291d46123d491bc4e7b7a1934c3a20dea28cba89f1d4a03acd892f5f6a81ed3855c38647e285a150e3c9ba062e38943bef57fee6c1554c3a
+ languageName: node
+ linkType: hard
+
+"cjs-module-lexer@npm:^1.0.0":
+ version: 1.4.3
+ resolution: "cjs-module-lexer@npm:1.4.3"
+ checksum: 10c0/076b3af85adc4d65dbdab1b5b240fe5b45d44fcf0ef9d429044dd94d19be5589376805c44fb2d4b3e684e5fe6a9b7cf3e426476a6507c45283c5fc6ff95240be
+ languageName: node
+ linkType: hard
+
"clean-css@npm:^5.2.2":
version: 5.3.3
resolution: "clean-css@npm:5.3.3"
@@ -5760,6 +6606,13 @@ __metadata:
languageName: node
linkType: hard
+"collect-v8-coverage@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "collect-v8-coverage@npm:1.0.2"
+ checksum: 10c0/ed7008e2e8b6852c5483b444a3ae6e976e088d4335a85aa0a9db2861c5f1d31bd2d7ff97a60469b3388deeba661a619753afbe201279fb159b4b9548ab8269a1
+ languageName: node
+ linkType: hard
+
"color-convert@npm:^1.9.3":
version: 1.9.3
resolution: "color-convert@npm:1.9.3"
@@ -6001,6 +6854,13 @@ __metadata:
languageName: node
linkType: hard
+"convert-source-map@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "convert-source-map@npm:2.0.0"
+ checksum: 10c0/8f2f7a27a1a011cc6cc88cc4da2d7d0cfa5ee0369508baae3d98c260bb3ac520691464e5bbe4ae7cdf09860c1d69ecc6f70c63c6e7c7f7e3f18ec08484dc7d9b
+ languageName: node
+ linkType: hard
+
"cookies@npm:~0.9.0":
version: 0.9.1
resolution: "cookies@npm:0.9.1"
@@ -6065,6 +6925,30 @@ __metadata:
languageName: node
linkType: hard
+"create-jest@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "create-jest@npm:29.7.0"
+ dependencies:
+ "@jest/types": "npm:^29.6.3"
+ chalk: "npm:^4.0.0"
+ exit: "npm:^0.1.2"
+ graceful-fs: "npm:^4.2.9"
+ jest-config: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ prompts: "npm:^2.0.1"
+ bin:
+ create-jest: bin/create-jest.js
+ checksum: 10c0/e7e54c280692470d3398f62a6238fd396327e01c6a0757002833f06d00afc62dd7bfe04ff2b9cd145264460e6b4d1eb8386f2925b7e567f97939843b7b0e812f
+ languageName: node
+ linkType: hard
+
+"create-require@npm:^1.1.0":
+ version: 1.1.1
+ resolution: "create-require@npm:1.1.1"
+ checksum: 10c0/157cbc59b2430ae9a90034a5f3a1b398b6738bf510f713edc4d4e45e169bc514d3d99dd34d8d01ca7ae7830b5b8b537e46ae8f3c8f932371b0875c0151d7ec91
+ languageName: node
+ linkType: hard
+
"crelt@npm:^1.0.5":
version: 1.0.6
resolution: "crelt@npm:1.0.6"
@@ -6235,7 +7119,7 @@ __metadata:
languageName: node
linkType: hard
-"debug@npm:4":
+"debug@npm:4, debug@npm:^4.1.0":
version: 4.4.1
resolution: "debug@npm:4.4.1"
dependencies:
@@ -6305,6 +7189,18 @@ __metadata:
languageName: node
linkType: hard
+"dedent@npm:^1.0.0":
+ version: 1.6.0
+ resolution: "dedent@npm:1.6.0"
+ peerDependencies:
+ babel-plugin-macros: ^3.1.0
+ peerDependenciesMeta:
+ babel-plugin-macros:
+ optional: true
+ checksum: 10c0/671b8f5e390dd2a560862c4511dd6d2638e71911486f78cb32116551f8f2aa6fcaf50579ffffb2f866d46b5b80fd72470659ca5760ede8f967619ef7df79e8a5
+ languageName: node
+ linkType: hard
+
"deep-equal@npm:~1.0.1":
version: 1.0.1
resolution: "deep-equal@npm:1.0.1"
@@ -6480,6 +7376,13 @@ __metadata:
languageName: node
linkType: hard
+"detect-newline@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "detect-newline@npm:3.1.0"
+ checksum: 10c0/c38cfc8eeb9fda09febb44bcd85e467c970d4e3bf526095394e5a4f18bc26dd0cf6b22c69c1fa9969261521c593836db335c2795218f6d781a512aea2fb8209d
+ languageName: node
+ linkType: hard
+
"detect-newline@npm:^4.0.0":
version: 4.0.1
resolution: "detect-newline@npm:4.0.1"
@@ -6511,6 +7414,20 @@ __metadata:
languageName: node
linkType: hard
+"diff-sequences@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "diff-sequences@npm:29.6.3"
+ checksum: 10c0/32e27ac7dbffdf2fb0eb5a84efd98a9ad084fbabd5ac9abb8757c6770d5320d2acd172830b28c4add29bb873d59420601dfc805ac4064330ce59b1adfd0593b2
+ languageName: node
+ linkType: hard
+
+"diff@npm:^4.0.1":
+ version: 4.0.2
+ resolution: "diff@npm:4.0.2"
+ checksum: 10c0/81b91f9d39c4eaca068eb0c1eb0e4afbdc5bb2941d197f513dd596b820b956fef43485876226d65d497bebc15666aa2aa82c679e84f65d5f2bfbf14ee46e32c1
+ languageName: node
+ linkType: hard
+
"dir-glob@npm:^3.0.1":
version: 3.0.1
resolution: "dir-glob@npm:3.0.1"
@@ -6720,6 +7637,17 @@ __metadata:
languageName: node
linkType: hard
+"ejs@npm:^3.1.10":
+ version: 3.1.10
+ resolution: "ejs@npm:3.1.10"
+ dependencies:
+ jake: "npm:^10.8.5"
+ bin:
+ ejs: bin/cli.js
+ checksum: 10c0/52eade9e68416ed04f7f92c492183340582a36482836b11eab97b159fcdcfdedc62233a1bf0bf5e5e1851c501f2dca0e2e9afd111db2599e4e7f53ee29429ae1
+ languageName: node
+ linkType: hard
+
"electron-to-chromium@npm:^1.5.149":
version: 1.5.151
resolution: "electron-to-chromium@npm:1.5.151"
@@ -6727,7 +7655,7 @@ __metadata:
languageName: node
linkType: hard
-"emittery@npm:^0.13.0":
+"emittery@npm:^0.13.0, emittery@npm:^0.13.1":
version: 0.13.1
resolution: "emittery@npm:0.13.1"
checksum: 10c0/1573d0ae29ab34661b6c63251ff8f5facd24ccf6a823f19417ae8ba8c88ea450325788c67f16c99edec8de4b52ce93a10fe441ece389fd156e88ee7dab9bfa35
@@ -7283,7 +8211,7 @@ __metadata:
languageName: node
linkType: hard
-"execa@npm:5.1.1":
+"execa@npm:5.1.1, execa@npm:^5.0.0":
version: 5.1.1
resolution: "execa@npm:5.1.1"
dependencies:
@@ -7320,6 +8248,13 @@ __metadata:
languageName: node
linkType: hard
+"exit@npm:^0.1.2":
+ version: 0.1.2
+ resolution: "exit@npm:0.1.2"
+ checksum: 10c0/71d2ad9b36bc25bb8b104b17e830b40a08989be7f7d100b13269aaae7c3784c3e6e1e88a797e9e87523993a25ba27c8958959a554535370672cfb4d824af8989
+ languageName: node
+ linkType: hard
+
"expand-tilde@npm:^2.0.0, expand-tilde@npm:^2.0.2":
version: 2.0.2
resolution: "expand-tilde@npm:2.0.2"
@@ -7329,6 +8264,19 @@ __metadata:
languageName: node
linkType: hard
+"expect@npm:^29.0.0, expect@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "expect@npm:29.7.0"
+ dependencies:
+ "@jest/expect-utils": "npm:^29.7.0"
+ jest-get-type: "npm:^29.6.3"
+ jest-matcher-utils: "npm:^29.7.0"
+ jest-message-util: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ checksum: 10c0/2eddeace66e68b8d8ee5f7be57f3014b19770caaf6815c7a08d131821da527fb8c8cb7b3dcd7c883d2d3d8d184206a4268984618032d1e4b16dc8d6596475d41
+ languageName: node
+ linkType: hard
+
"exponential-backoff@npm:^3.1.1":
version: 3.1.2
resolution: "exponential-backoff@npm:3.1.2"
@@ -7374,7 +8322,7 @@ __metadata:
languageName: node
linkType: hard
-"fast-json-stable-stringify@npm:^2.0.0":
+"fast-json-stable-stringify@npm:2.x, fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0":
version: 2.1.0
resolution: "fast-json-stable-stringify@npm:2.1.0"
checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b
@@ -7404,6 +8352,15 @@ __metadata:
languageName: node
linkType: hard
+"fb-watchman@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "fb-watchman@npm:2.0.2"
+ dependencies:
+ bser: "npm:2.1.1"
+ checksum: 10c0/feae89ac148adb8f6ae8ccd87632e62b13563e6fb114cacb5265c51f585b17e2e268084519fb2edd133872f1d47a18e6bfd7e5e08625c0d41b93149694187581
+ languageName: node
+ linkType: hard
+
"fdir@npm:^6.4.4":
version: 6.4.4
resolution: "fdir@npm:6.4.4"
@@ -7441,6 +8398,15 @@ __metadata:
languageName: node
linkType: hard
+"filelist@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "filelist@npm:1.0.4"
+ dependencies:
+ minimatch: "npm:^5.0.1"
+ checksum: 10c0/426b1de3944a3d153b053f1c0ebfd02dccd0308a4f9e832ad220707a6d1f1b3c9784d6cadf6b2f68f09a57565f63ebc7bcdc913ccf8012d834f472c46e596f41
+ languageName: node
+ linkType: hard
+
"fill-range@npm:^7.1.1":
version: 7.1.1
resolution: "fill-range@npm:7.1.1"
@@ -7751,7 +8717,7 @@ __metadata:
languageName: node
linkType: hard
-"fsevents@npm:*, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3":
+"fsevents@npm:*, fsevents@npm:^2.3.2, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3":
version: 2.3.3
resolution: "fsevents@npm:2.3.3"
dependencies:
@@ -7761,7 +8727,7 @@ __metadata:
languageName: node
linkType: hard
-"fsevents@patch:fsevents@npm%3A*#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin":
+"fsevents@patch:fsevents@npm%3A*#optional!builtin, fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin":
version: 2.3.3
resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"
dependencies:
@@ -7777,6 +8743,13 @@ __metadata:
languageName: node
linkType: hard
+"gensync@npm:^1.0.0-beta.2":
+ version: 1.0.0-beta.2
+ resolution: "gensync@npm:1.0.0-beta.2"
+ checksum: 10c0/782aba6cba65b1bb5af3b095d96249d20edbe8df32dbf4696fd49be2583faf676173bf4809386588828e4dd76a3354fcbeb577bab1c833ccd9fc4577f26103f8
+ languageName: node
+ linkType: hard
+
"get-caller-file@npm:^2.0.5":
version: 2.0.5
resolution: "get-caller-file@npm:2.0.5"
@@ -8121,7 +9094,7 @@ __metadata:
languageName: node
linkType: hard
-"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.5, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.10, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6":
+"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.5, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.10, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9":
version: 4.2.11
resolution: "graceful-fs@npm:4.2.11"
checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2
@@ -8292,7 +9265,7 @@ __metadata:
languageName: node
linkType: hard
-"html-escaper@npm:^2.0.2":
+"html-escaper@npm:^2.0.0, html-escaper@npm:^2.0.2":
version: 2.0.2
resolution: "html-escaper@npm:2.0.2"
checksum: 10c0/208e8a12de1a6569edbb14544f4567e6ce8ecc30b9394fcaa4e7bb1e60c12a7c9a1ed27e31290817157e8626f3a4f29e76c8747030822eb84a6abb15c255f0a0
@@ -8585,6 +9558,18 @@ __metadata:
languageName: node
linkType: hard
+"import-local@npm:^3.0.2":
+ version: 3.2.0
+ resolution: "import-local@npm:3.2.0"
+ dependencies:
+ pkg-dir: "npm:^4.2.0"
+ resolve-cwd: "npm:^3.0.0"
+ bin:
+ import-local-fixture: fixtures/cli.js
+ checksum: 10c0/94cd6367a672b7e0cb026970c85b76902d2710a64896fa6de93bd5c571dd03b228c5759308959de205083e3b1c61e799f019c9e36ee8e9c523b993e1057f0433
+ languageName: node
+ linkType: hard
+
"imurmurhash@npm:^0.1.4":
version: 0.1.4
resolution: "imurmurhash@npm:0.1.4"
@@ -8851,6 +9836,13 @@ __metadata:
languageName: node
linkType: hard
+"is-generator-fn@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "is-generator-fn@npm:2.1.0"
+ checksum: 10c0/2957cab387997a466cd0bf5c1b6047bd21ecb32bdcfd8996b15747aa01002c1c88731802f1b3d34ac99f4f6874b626418bd118658cf39380fe5fff32a3af9c4d
+ languageName: node
+ linkType: hard
+
"is-generator-function@npm:^1.0.7":
version: 1.1.0
resolution: "is-generator-function@npm:1.1.0"
@@ -9073,101 +10065,600 @@ __metadata:
languageName: node
linkType: hard
-"is-windows@npm:^1.0.1":
- version: 1.0.2
- resolution: "is-windows@npm:1.0.2"
- checksum: 10c0/b32f418ab3385604a66f1b7a3ce39d25e8881dee0bd30816dc8344ef6ff9df473a732bcc1ec4e84fe99b2f229ae474f7133e8e93f9241686cfcf7eebe53ba7a5
+"is-windows@npm:^1.0.1":
+ version: 1.0.2
+ resolution: "is-windows@npm:1.0.2"
+ checksum: 10c0/b32f418ab3385604a66f1b7a3ce39d25e8881dee0bd30816dc8344ef6ff9df473a732bcc1ec4e84fe99b2f229ae474f7133e8e93f9241686cfcf7eebe53ba7a5
+ languageName: node
+ linkType: hard
+
+"is-wsl@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "is-wsl@npm:2.2.0"
+ dependencies:
+ is-docker: "npm:^2.0.0"
+ checksum: 10c0/a6fa2d370d21be487c0165c7a440d567274fbba1a817f2f0bfa41cc5e3af25041d84267baa22df66696956038a43973e72fca117918c91431920bdef490fa25e
+ languageName: node
+ linkType: hard
+
+"isarray@npm:0.0.1":
+ version: 0.0.1
+ resolution: "isarray@npm:0.0.1"
+ checksum: 10c0/ed1e62da617f71fe348907c71743b5ed550448b455f8d269f89a7c7ddb8ae6e962de3dab6a74a237b06f5eb7f6ece7a45ada8ce96d87fe972926530f91ae3311
+ languageName: node
+ linkType: hard
+
+"isarray@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "isarray@npm:1.0.0"
+ checksum: 10c0/18b5be6669be53425f0b84098732670ed4e727e3af33bc7f948aac01782110eb9a18b3b329c5323bcdd3acdaae547ee077d3951317e7f133bff7105264b3003d
+ languageName: node
+ linkType: hard
+
+"isbinaryfile@npm:^4.0.2":
+ version: 4.0.10
+ resolution: "isbinaryfile@npm:4.0.10"
+ checksum: 10c0/0703d8cfeb69ed79e6d173120f327450011a066755150a6bbf97ffecec1069a5f2092777868315b21359098c84b54984871cad1abce877ad9141fb2caf3dcabf
+ languageName: node
+ linkType: hard
+
+"isbinaryfile@npm:^5.0.0":
+ version: 5.0.4
+ resolution: "isbinaryfile@npm:5.0.4"
+ checksum: 10c0/fea255bfae67ff4827e8dd2238d6700d4803d02b4d892b72eeac4541487284e901251a3427966af5018d4eb29fa155b036dcb75dd217634146a072991afbc2c2
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "isexe@npm:2.0.0"
+ checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "isexe@npm:3.1.1"
+ checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7
+ languageName: node
+ linkType: hard
+
+"isobject@npm:^3.0.0, isobject@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "isobject@npm:3.0.1"
+ checksum: 10c0/03344f5064a82f099a0cd1a8a407f4c0d20b7b8485e8e816c39f249e9416b06c322e8dec5b842b6bb8a06de0af9cb48e7bc1b5352f0fadc2f0abac033db3d4db
+ languageName: node
+ linkType: hard
+
+"isstream@npm:~0.1.2":
+ version: 0.1.2
+ resolution: "isstream@npm:0.1.2"
+ checksum: 10c0/a6686a878735ca0a48e0d674dd6d8ad31aedfaf70f07920da16ceadc7577b46d67179a60b313f2e6860cb097a2c2eb3cbd0b89e921ae89199a59a17c3273d66f
+ languageName: node
+ linkType: hard
+
+"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0":
+ version: 3.2.2
+ resolution: "istanbul-lib-coverage@npm:3.2.2"
+ checksum: 10c0/6c7ff2106769e5f592ded1fb418f9f73b4411fd5a084387a5410538332b6567cd1763ff6b6cadca9b9eb2c443cce2f7ea7d7f1b8d315f9ce58539793b1e0922b
+ languageName: node
+ linkType: hard
+
+"istanbul-lib-instrument@npm:^5.0.4":
+ version: 5.2.1
+ resolution: "istanbul-lib-instrument@npm:5.2.1"
+ dependencies:
+ "@babel/core": "npm:^7.12.3"
+ "@babel/parser": "npm:^7.14.7"
+ "@istanbuljs/schema": "npm:^0.1.2"
+ istanbul-lib-coverage: "npm:^3.2.0"
+ semver: "npm:^6.3.0"
+ checksum: 10c0/8a1bdf3e377dcc0d33ec32fe2b6ecacdb1e4358fd0eb923d4326bb11c67622c0ceb99600a680f3dad5d29c66fc1991306081e339b4d43d0b8a2ab2e1d910a6ee
+ languageName: node
+ linkType: hard
+
+"istanbul-lib-instrument@npm:^6.0.0":
+ version: 6.0.3
+ resolution: "istanbul-lib-instrument@npm:6.0.3"
+ dependencies:
+ "@babel/core": "npm:^7.23.9"
+ "@babel/parser": "npm:^7.23.9"
+ "@istanbuljs/schema": "npm:^0.1.3"
+ istanbul-lib-coverage: "npm:^3.2.0"
+ semver: "npm:^7.5.4"
+ checksum: 10c0/a1894e060dd2a3b9f046ffdc87b44c00a35516f5e6b7baf4910369acca79e506fc5323a816f811ae23d82334b38e3ddeb8b3b331bd2c860540793b59a8689128
+ languageName: node
+ linkType: hard
+
+"istanbul-lib-report@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "istanbul-lib-report@npm:3.0.1"
+ dependencies:
+ istanbul-lib-coverage: "npm:^3.0.0"
+ make-dir: "npm:^4.0.0"
+ supports-color: "npm:^7.1.0"
+ checksum: 10c0/84323afb14392de8b6a5714bd7e9af845cfbd56cfe71ed276cda2f5f1201aea673c7111901227ee33e68e4364e288d73861eb2ed48f6679d1e69a43b6d9b3ba7
+ languageName: node
+ linkType: hard
+
+"istanbul-lib-source-maps@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "istanbul-lib-source-maps@npm:4.0.1"
+ dependencies:
+ debug: "npm:^4.1.1"
+ istanbul-lib-coverage: "npm:^3.0.0"
+ source-map: "npm:^0.6.1"
+ checksum: 10c0/19e4cc405016f2c906dff271a76715b3e881fa9faeb3f09a86cb99b8512b3a5ed19cadfe0b54c17ca0e54c1142c9c6de9330d65506e35873994e06634eebeb66
+ languageName: node
+ linkType: hard
+
+"istanbul-reports@npm:^3.1.3":
+ version: 3.1.7
+ resolution: "istanbul-reports@npm:3.1.7"
+ dependencies:
+ html-escaper: "npm:^2.0.0"
+ istanbul-lib-report: "npm:^3.0.0"
+ checksum: 10c0/a379fadf9cf8dc5dfe25568115721d4a7eb82fbd50b005a6672aff9c6989b20cc9312d7865814e0859cd8df58cbf664482e1d3604be0afde1f7fc3ccc1394a51
+ languageName: node
+ linkType: hard
+
+"jackspeak@npm:^2.3.5":
+ version: 2.3.6
+ resolution: "jackspeak@npm:2.3.6"
+ dependencies:
+ "@isaacs/cliui": "npm:^8.0.2"
+ "@pkgjs/parseargs": "npm:^0.11.0"
+ dependenciesMeta:
+ "@pkgjs/parseargs":
+ optional: true
+ checksum: 10c0/f01d8f972d894cd7638bc338e9ef5ddb86f7b208ce177a36d718eac96ec86638a6efa17d0221b10073e64b45edc2ce15340db9380b1f5d5c5d000cbc517dc111
+ languageName: node
+ linkType: hard
+
+"jackspeak@npm:^3.1.2":
+ version: 3.4.3
+ resolution: "jackspeak@npm:3.4.3"
+ dependencies:
+ "@isaacs/cliui": "npm:^8.0.2"
+ "@pkgjs/parseargs": "npm:^0.11.0"
+ dependenciesMeta:
+ "@pkgjs/parseargs":
+ optional: true
+ checksum: 10c0/6acc10d139eaefdbe04d2f679e6191b3abf073f111edf10b1de5302c97ec93fffeb2fdd8681ed17f16268aa9dd4f8c588ed9d1d3bffbbfa6e8bf897cbb3149b9
+ languageName: node
+ linkType: hard
+
+"jake@npm:^10.8.5":
+ version: 10.9.2
+ resolution: "jake@npm:10.9.2"
+ dependencies:
+ async: "npm:^3.2.3"
+ chalk: "npm:^4.0.2"
+ filelist: "npm:^1.0.4"
+ minimatch: "npm:^3.1.2"
+ bin:
+ jake: bin/cli.js
+ checksum: 10c0/c4597b5ed9b6a908252feab296485a4f87cba9e26d6c20e0ca144fb69e0c40203d34a2efddb33b3d297b8bd59605e6c1f44f6221ca1e10e69175ecbf3ff5fe31
+ languageName: node
+ linkType: hard
+
+"jest-changed-files@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-changed-files@npm:29.7.0"
+ dependencies:
+ execa: "npm:^5.0.0"
+ jest-util: "npm:^29.7.0"
+ p-limit: "npm:^3.1.0"
+ checksum: 10c0/e071384d9e2f6bb462231ac53f29bff86f0e12394c1b49ccafbad225ce2ab7da226279a8a94f421949920bef9be7ef574fd86aee22e8adfa149be73554ab828b
+ languageName: node
+ linkType: hard
+
+"jest-circus@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-circus@npm:29.7.0"
+ dependencies:
+ "@jest/environment": "npm:^29.7.0"
+ "@jest/expect": "npm:^29.7.0"
+ "@jest/test-result": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ "@types/node": "npm:*"
+ chalk: "npm:^4.0.0"
+ co: "npm:^4.6.0"
+ dedent: "npm:^1.0.0"
+ is-generator-fn: "npm:^2.0.0"
+ jest-each: "npm:^29.7.0"
+ jest-matcher-utils: "npm:^29.7.0"
+ jest-message-util: "npm:^29.7.0"
+ jest-runtime: "npm:^29.7.0"
+ jest-snapshot: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ p-limit: "npm:^3.1.0"
+ pretty-format: "npm:^29.7.0"
+ pure-rand: "npm:^6.0.0"
+ slash: "npm:^3.0.0"
+ stack-utils: "npm:^2.0.3"
+ checksum: 10c0/8d15344cf7a9f14e926f0deed64ed190c7a4fa1ed1acfcd81e4cc094d3cc5bf7902ebb7b874edc98ada4185688f90c91e1747e0dfd7ac12463b097968ae74b5e
+ languageName: node
+ linkType: hard
+
+"jest-cli@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-cli@npm:29.7.0"
+ dependencies:
+ "@jest/core": "npm:^29.7.0"
+ "@jest/test-result": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ chalk: "npm:^4.0.0"
+ create-jest: "npm:^29.7.0"
+ exit: "npm:^0.1.2"
+ import-local: "npm:^3.0.2"
+ jest-config: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ jest-validate: "npm:^29.7.0"
+ yargs: "npm:^17.3.1"
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ bin:
+ jest: bin/jest.js
+ checksum: 10c0/a658fd55050d4075d65c1066364595962ead7661711495cfa1dfeecf3d6d0a8ffec532f3dbd8afbb3e172dd5fd2fb2e813c5e10256e7cf2fea766314942fb43a
+ languageName: node
+ linkType: hard
+
+"jest-config@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-config@npm:29.7.0"
+ dependencies:
+ "@babel/core": "npm:^7.11.6"
+ "@jest/test-sequencer": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ babel-jest: "npm:^29.7.0"
+ chalk: "npm:^4.0.0"
+ ci-info: "npm:^3.2.0"
+ deepmerge: "npm:^4.2.2"
+ glob: "npm:^7.1.3"
+ graceful-fs: "npm:^4.2.9"
+ jest-circus: "npm:^29.7.0"
+ jest-environment-node: "npm:^29.7.0"
+ jest-get-type: "npm:^29.6.3"
+ jest-regex-util: "npm:^29.6.3"
+ jest-resolve: "npm:^29.7.0"
+ jest-runner: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ jest-validate: "npm:^29.7.0"
+ micromatch: "npm:^4.0.4"
+ parse-json: "npm:^5.2.0"
+ pretty-format: "npm:^29.7.0"
+ slash: "npm:^3.0.0"
+ strip-json-comments: "npm:^3.1.1"
+ peerDependencies:
+ "@types/node": "*"
+ ts-node: ">=9.0.0"
+ peerDependenciesMeta:
+ "@types/node":
+ optional: true
+ ts-node:
+ optional: true
+ checksum: 10c0/bab23c2eda1fff06e0d104b00d6adfb1d1aabb7128441899c9bff2247bd26710b050a5364281ce8d52b46b499153bf7e3ee88b19831a8f3451f1477a0246a0f1
+ languageName: node
+ linkType: hard
+
+"jest-diff@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-diff@npm:29.7.0"
+ dependencies:
+ chalk: "npm:^4.0.0"
+ diff-sequences: "npm:^29.6.3"
+ jest-get-type: "npm:^29.6.3"
+ pretty-format: "npm:^29.7.0"
+ checksum: 10c0/89a4a7f182590f56f526443dde69acefb1f2f0c9e59253c61d319569856c4931eae66b8a3790c443f529267a0ddba5ba80431c585deed81827032b2b2a1fc999
+ languageName: node
+ linkType: hard
+
+"jest-docblock@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-docblock@npm:29.7.0"
+ dependencies:
+ detect-newline: "npm:^3.0.0"
+ checksum: 10c0/d932a8272345cf6b6142bb70a2bb63e0856cc0093f082821577ea5bdf4643916a98744dfc992189d2b1417c38a11fa42466f6111526bc1fb81366f56410f3be9
+ languageName: node
+ linkType: hard
+
+"jest-each@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-each@npm:29.7.0"
+ dependencies:
+ "@jest/types": "npm:^29.6.3"
+ chalk: "npm:^4.0.0"
+ jest-get-type: "npm:^29.6.3"
+ jest-util: "npm:^29.7.0"
+ pretty-format: "npm:^29.7.0"
+ checksum: 10c0/f7f9a90ebee80cc688e825feceb2613627826ac41ea76a366fa58e669c3b2403d364c7c0a74d862d469b103c843154f8456d3b1c02b487509a12afa8b59edbb4
+ languageName: node
+ linkType: hard
+
+"jest-environment-node@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-environment-node@npm:29.7.0"
+ dependencies:
+ "@jest/environment": "npm:^29.7.0"
+ "@jest/fake-timers": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ "@types/node": "npm:*"
+ jest-mock: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ checksum: 10c0/61f04fec077f8b1b5c1a633e3612fc0c9aa79a0ab7b05600683428f1e01a4d35346c474bde6f439f9fcc1a4aa9a2861ff852d079a43ab64b02105d1004b2592b
+ languageName: node
+ linkType: hard
+
+"jest-get-type@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "jest-get-type@npm:29.6.3"
+ checksum: 10c0/552e7a97a983d3c2d4e412a44eb7de0430ff773dd99f7500962c268d6dfbfa431d7d08f919c9d960530e5f7f78eb47f267ad9b318265e5092b3ff9ede0db7c2b
+ languageName: node
+ linkType: hard
+
+"jest-haste-map@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-haste-map@npm:29.7.0"
+ dependencies:
+ "@jest/types": "npm:^29.6.3"
+ "@types/graceful-fs": "npm:^4.1.3"
+ "@types/node": "npm:*"
+ anymatch: "npm:^3.0.3"
+ fb-watchman: "npm:^2.0.0"
+ fsevents: "npm:^2.3.2"
+ graceful-fs: "npm:^4.2.9"
+ jest-regex-util: "npm:^29.6.3"
+ jest-util: "npm:^29.7.0"
+ jest-worker: "npm:^29.7.0"
+ micromatch: "npm:^4.0.4"
+ walker: "npm:^1.0.8"
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ checksum: 10c0/2683a8f29793c75a4728787662972fedd9267704c8f7ef9d84f2beed9a977f1cf5e998c07b6f36ba5603f53cb010c911fe8cd0ac9886e073fe28ca66beefd30c
+ languageName: node
+ linkType: hard
+
+"jest-junit@npm:^16.0.0":
+ version: 16.0.0
+ resolution: "jest-junit@npm:16.0.0"
+ dependencies:
+ mkdirp: "npm:^1.0.4"
+ strip-ansi: "npm:^6.0.1"
+ uuid: "npm:^8.3.2"
+ xml: "npm:^1.0.1"
+ checksum: 10c0/d813d4d142341c2b51b634db7ad6ceb9849514cb58f96ec5e7e4cf4031a557133490452710c2d9dec9b1dd546334d9ca663e042d3070c3e8f102ce6217bd8e2e
+ languageName: node
+ linkType: hard
+
+"jest-leak-detector@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-leak-detector@npm:29.7.0"
+ dependencies:
+ jest-get-type: "npm:^29.6.3"
+ pretty-format: "npm:^29.7.0"
+ checksum: 10c0/71bb9f77fc489acb842a5c7be030f2b9acb18574dc9fb98b3100fc57d422b1abc55f08040884bd6e6dbf455047a62f7eaff12aa4058f7cbdc11558718ca6a395
languageName: node
linkType: hard
-"is-wsl@npm:^2.2.0":
- version: 2.2.0
- resolution: "is-wsl@npm:2.2.0"
+"jest-matcher-utils@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-matcher-utils@npm:29.7.0"
dependencies:
- is-docker: "npm:^2.0.0"
- checksum: 10c0/a6fa2d370d21be487c0165c7a440d567274fbba1a817f2f0bfa41cc5e3af25041d84267baa22df66696956038a43973e72fca117918c91431920bdef490fa25e
+ chalk: "npm:^4.0.0"
+ jest-diff: "npm:^29.7.0"
+ jest-get-type: "npm:^29.6.3"
+ pretty-format: "npm:^29.7.0"
+ checksum: 10c0/0d0e70b28fa5c7d4dce701dc1f46ae0922102aadc24ed45d594dd9b7ae0a8a6ef8b216718d1ab79e451291217e05d4d49a82666e1a3cc2b428b75cd9c933244e
languageName: node
linkType: hard
-"isarray@npm:0.0.1":
- version: 0.0.1
- resolution: "isarray@npm:0.0.1"
- checksum: 10c0/ed1e62da617f71fe348907c71743b5ed550448b455f8d269f89a7c7ddb8ae6e962de3dab6a74a237b06f5eb7f6ece7a45ada8ce96d87fe972926530f91ae3311
+"jest-message-util@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-message-util@npm:29.7.0"
+ dependencies:
+ "@babel/code-frame": "npm:^7.12.13"
+ "@jest/types": "npm:^29.6.3"
+ "@types/stack-utils": "npm:^2.0.0"
+ chalk: "npm:^4.0.0"
+ graceful-fs: "npm:^4.2.9"
+ micromatch: "npm:^4.0.4"
+ pretty-format: "npm:^29.7.0"
+ slash: "npm:^3.0.0"
+ stack-utils: "npm:^2.0.3"
+ checksum: 10c0/850ae35477f59f3e6f27efac5215f706296e2104af39232bb14e5403e067992afb5c015e87a9243ec4d9df38525ef1ca663af9f2f4766aa116f127247008bd22
languageName: node
linkType: hard
-"isarray@npm:~1.0.0":
- version: 1.0.0
- resolution: "isarray@npm:1.0.0"
- checksum: 10c0/18b5be6669be53425f0b84098732670ed4e727e3af33bc7f948aac01782110eb9a18b3b329c5323bcdd3acdaae547ee077d3951317e7f133bff7105264b3003d
+"jest-mock@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-mock@npm:29.7.0"
+ dependencies:
+ "@jest/types": "npm:^29.6.3"
+ "@types/node": "npm:*"
+ jest-util: "npm:^29.7.0"
+ checksum: 10c0/7b9f8349ee87695a309fe15c46a74ab04c853369e5c40952d68061d9dc3159a0f0ed73e215f81b07ee97a9faaf10aebe5877a9d6255068a0977eae6a9ff1d5ac
languageName: node
linkType: hard
-"isbinaryfile@npm:^4.0.2":
- version: 4.0.10
- resolution: "isbinaryfile@npm:4.0.10"
- checksum: 10c0/0703d8cfeb69ed79e6d173120f327450011a066755150a6bbf97ffecec1069a5f2092777868315b21359098c84b54984871cad1abce877ad9141fb2caf3dcabf
+"jest-pnp-resolver@npm:^1.2.2":
+ version: 1.2.3
+ resolution: "jest-pnp-resolver@npm:1.2.3"
+ peerDependencies:
+ jest-resolve: "*"
+ peerDependenciesMeta:
+ jest-resolve:
+ optional: true
+ checksum: 10c0/86eec0c78449a2de733a6d3e316d49461af6a858070e113c97f75fb742a48c2396ea94150cbca44159ffd4a959f743a47a8b37a792ef6fdad2cf0a5cba973fac
languageName: node
linkType: hard
-"isbinaryfile@npm:^5.0.0":
- version: 5.0.4
- resolution: "isbinaryfile@npm:5.0.4"
- checksum: 10c0/fea255bfae67ff4827e8dd2238d6700d4803d02b4d892b72eeac4541487284e901251a3427966af5018d4eb29fa155b036dcb75dd217634146a072991afbc2c2
+"jest-regex-util@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "jest-regex-util@npm:29.6.3"
+ checksum: 10c0/4e33fb16c4f42111159cafe26397118dcfc4cf08bc178a67149fb05f45546a91928b820894572679d62559839d0992e21080a1527faad65daaae8743a5705a3b
languageName: node
linkType: hard
-"isexe@npm:^2.0.0":
- version: 2.0.0
- resolution: "isexe@npm:2.0.0"
- checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d
+"jest-resolve-dependencies@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-resolve-dependencies@npm:29.7.0"
+ dependencies:
+ jest-regex-util: "npm:^29.6.3"
+ jest-snapshot: "npm:^29.7.0"
+ checksum: 10c0/b6e9ad8ae5b6049474118ea6441dfddd385b6d1fc471db0136f7c8fbcfe97137a9665e4f837a9f49f15a29a1deb95a14439b7aec812f3f99d08f228464930f0d
languageName: node
linkType: hard
-"isexe@npm:^3.1.1":
- version: 3.1.1
- resolution: "isexe@npm:3.1.1"
- checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7
+"jest-resolve@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-resolve@npm:29.7.0"
+ dependencies:
+ chalk: "npm:^4.0.0"
+ graceful-fs: "npm:^4.2.9"
+ jest-haste-map: "npm:^29.7.0"
+ jest-pnp-resolver: "npm:^1.2.2"
+ jest-util: "npm:^29.7.0"
+ jest-validate: "npm:^29.7.0"
+ resolve: "npm:^1.20.0"
+ resolve.exports: "npm:^2.0.0"
+ slash: "npm:^3.0.0"
+ checksum: 10c0/59da5c9c5b50563e959a45e09e2eace783d7f9ac0b5dcc6375dea4c0db938d2ebda97124c8161310082760e8ebbeff9f6b177c15ca2f57fb424f637a5d2adb47
languageName: node
linkType: hard
-"isobject@npm:^3.0.0, isobject@npm:^3.0.1":
- version: 3.0.1
- resolution: "isobject@npm:3.0.1"
- checksum: 10c0/03344f5064a82f099a0cd1a8a407f4c0d20b7b8485e8e816c39f249e9416b06c322e8dec5b842b6bb8a06de0af9cb48e7bc1b5352f0fadc2f0abac033db3d4db
+"jest-runner@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-runner@npm:29.7.0"
+ dependencies:
+ "@jest/console": "npm:^29.7.0"
+ "@jest/environment": "npm:^29.7.0"
+ "@jest/test-result": "npm:^29.7.0"
+ "@jest/transform": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ "@types/node": "npm:*"
+ chalk: "npm:^4.0.0"
+ emittery: "npm:^0.13.1"
+ graceful-fs: "npm:^4.2.9"
+ jest-docblock: "npm:^29.7.0"
+ jest-environment-node: "npm:^29.7.0"
+ jest-haste-map: "npm:^29.7.0"
+ jest-leak-detector: "npm:^29.7.0"
+ jest-message-util: "npm:^29.7.0"
+ jest-resolve: "npm:^29.7.0"
+ jest-runtime: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ jest-watcher: "npm:^29.7.0"
+ jest-worker: "npm:^29.7.0"
+ p-limit: "npm:^3.1.0"
+ source-map-support: "npm:0.5.13"
+ checksum: 10c0/2194b4531068d939f14c8d3274fe5938b77fa73126aedf9c09ec9dec57d13f22c72a3b5af01ac04f5c1cf2e28d0ac0b4a54212a61b05f10b5d6b47f2a1097bb4
+ languageName: node
+ linkType: hard
+
+"jest-runtime@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-runtime@npm:29.7.0"
+ dependencies:
+ "@jest/environment": "npm:^29.7.0"
+ "@jest/fake-timers": "npm:^29.7.0"
+ "@jest/globals": "npm:^29.7.0"
+ "@jest/source-map": "npm:^29.6.3"
+ "@jest/test-result": "npm:^29.7.0"
+ "@jest/transform": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ "@types/node": "npm:*"
+ chalk: "npm:^4.0.0"
+ cjs-module-lexer: "npm:^1.0.0"
+ collect-v8-coverage: "npm:^1.0.0"
+ glob: "npm:^7.1.3"
+ graceful-fs: "npm:^4.2.9"
+ jest-haste-map: "npm:^29.7.0"
+ jest-message-util: "npm:^29.7.0"
+ jest-mock: "npm:^29.7.0"
+ jest-regex-util: "npm:^29.6.3"
+ jest-resolve: "npm:^29.7.0"
+ jest-snapshot: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ slash: "npm:^3.0.0"
+ strip-bom: "npm:^4.0.0"
+ checksum: 10c0/7cd89a1deda0bda7d0941835434e44f9d6b7bd50b5c5d9b0fc9a6c990b2d4d2cab59685ab3cb2850ed4cc37059f6de903af5a50565d7f7f1192a77d3fd6dd2a6
+ languageName: node
+ linkType: hard
+
+"jest-snapshot@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-snapshot@npm:29.7.0"
+ dependencies:
+ "@babel/core": "npm:^7.11.6"
+ "@babel/generator": "npm:^7.7.2"
+ "@babel/plugin-syntax-jsx": "npm:^7.7.2"
+ "@babel/plugin-syntax-typescript": "npm:^7.7.2"
+ "@babel/types": "npm:^7.3.3"
+ "@jest/expect-utils": "npm:^29.7.0"
+ "@jest/transform": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ babel-preset-current-node-syntax: "npm:^1.0.0"
+ chalk: "npm:^4.0.0"
+ expect: "npm:^29.7.0"
+ graceful-fs: "npm:^4.2.9"
+ jest-diff: "npm:^29.7.0"
+ jest-get-type: "npm:^29.6.3"
+ jest-matcher-utils: "npm:^29.7.0"
+ jest-message-util: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ natural-compare: "npm:^1.4.0"
+ pretty-format: "npm:^29.7.0"
+ semver: "npm:^7.5.3"
+ checksum: 10c0/6e9003c94ec58172b4a62864a91c0146513207bedf4e0a06e1e2ac70a4484088a2683e3a0538d8ea913bcfd53dc54a9b98a98cdfa562e7fe1d1339aeae1da570
languageName: node
linkType: hard
-"isstream@npm:~0.1.2":
- version: 0.1.2
- resolution: "isstream@npm:0.1.2"
- checksum: 10c0/a6686a878735ca0a48e0d674dd6d8ad31aedfaf70f07920da16ceadc7577b46d67179a60b313f2e6860cb097a2c2eb3cbd0b89e921ae89199a59a17c3273d66f
+"jest-util@npm:^29.0.0, jest-util@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-util@npm:29.7.0"
+ dependencies:
+ "@jest/types": "npm:^29.6.3"
+ "@types/node": "npm:*"
+ chalk: "npm:^4.0.0"
+ ci-info: "npm:^3.2.0"
+ graceful-fs: "npm:^4.2.9"
+ picomatch: "npm:^2.2.3"
+ checksum: 10c0/bc55a8f49fdbb8f51baf31d2a4f312fb66c9db1483b82f602c9c990e659cdd7ec529c8e916d5a89452ecbcfae4949b21b40a7a59d4ffc0cd813a973ab08c8150
languageName: node
linkType: hard
-"jackspeak@npm:^2.3.5":
- version: 2.3.6
- resolution: "jackspeak@npm:2.3.6"
+"jest-validate@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-validate@npm:29.7.0"
dependencies:
- "@isaacs/cliui": "npm:^8.0.2"
- "@pkgjs/parseargs": "npm:^0.11.0"
- dependenciesMeta:
- "@pkgjs/parseargs":
- optional: true
- checksum: 10c0/f01d8f972d894cd7638bc338e9ef5ddb86f7b208ce177a36d718eac96ec86638a6efa17d0221b10073e64b45edc2ce15340db9380b1f5d5c5d000cbc517dc111
+ "@jest/types": "npm:^29.6.3"
+ camelcase: "npm:^6.2.0"
+ chalk: "npm:^4.0.0"
+ jest-get-type: "npm:^29.6.3"
+ leven: "npm:^3.1.0"
+ pretty-format: "npm:^29.7.0"
+ checksum: 10c0/a20b930480c1ed68778c739f4739dce39423131bc070cd2505ddede762a5570a256212e9c2401b7ae9ba4d7b7c0803f03c5b8f1561c62348213aba18d9dbece2
languageName: node
linkType: hard
-"jackspeak@npm:^3.1.2":
- version: 3.4.3
- resolution: "jackspeak@npm:3.4.3"
+"jest-watcher@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-watcher@npm:29.7.0"
dependencies:
- "@isaacs/cliui": "npm:^8.0.2"
- "@pkgjs/parseargs": "npm:^0.11.0"
- dependenciesMeta:
- "@pkgjs/parseargs":
- optional: true
- checksum: 10c0/6acc10d139eaefdbe04d2f679e6191b3abf073f111edf10b1de5302c97ec93fffeb2fdd8681ed17f16268aa9dd4f8c588ed9d1d3bffbbfa6e8bf897cbb3149b9
+ "@jest/test-result": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ "@types/node": "npm:*"
+ ansi-escapes: "npm:^4.2.1"
+ chalk: "npm:^4.0.0"
+ emittery: "npm:^0.13.1"
+ jest-util: "npm:^29.7.0"
+ string-length: "npm:^4.0.1"
+ checksum: 10c0/ec6c75030562fc8f8c727cb8f3b94e75d831fc718785abfc196e1f2a2ebc9a2e38744a15147170039628a853d77a3b695561ce850375ede3a4ee6037a2574567
languageName: node
linkType: hard
@@ -9182,6 +10673,37 @@ __metadata:
languageName: node
linkType: hard
+"jest-worker@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-worker@npm:29.7.0"
+ dependencies:
+ "@types/node": "npm:*"
+ jest-util: "npm:^29.7.0"
+ merge-stream: "npm:^2.0.0"
+ supports-color: "npm:^8.0.0"
+ checksum: 10c0/5570a3a005b16f46c131968b8a5b56d291f9bbb85ff4217e31c80bd8a02e7de799e59a54b95ca28d5c302f248b54cbffde2d177c2f0f52ffcee7504c6eabf660
+ languageName: node
+ linkType: hard
+
+"jest@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest@npm:29.7.0"
+ dependencies:
+ "@jest/core": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ import-local: "npm:^3.0.2"
+ jest-cli: "npm:^29.7.0"
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ bin:
+ jest: bin/jest.js
+ checksum: 10c0/f40eb8171cf147c617cc6ada49d062fbb03b4da666cb8d39cdbfb739a7d75eea4c3ca150fb072d0d273dce0c753db4d0467d54906ad0293f59c54f9db4a09d8b
+ languageName: node
+ linkType: hard
+
"jju@npm:~1.4.0":
version: 1.4.0
resolution: "jju@npm:1.4.0"
@@ -9210,7 +10732,7 @@ __metadata:
languageName: node
linkType: hard
-"js-yaml@npm:^3.13.0":
+"js-yaml@npm:^3.13.0, js-yaml@npm:^3.13.1":
version: 3.14.1
resolution: "js-yaml@npm:3.14.1"
dependencies:
@@ -9273,7 +10795,7 @@ __metadata:
languageName: node
linkType: hard
-"json5@npm:^2.1.2":
+"json5@npm:^2.1.2, json5@npm:^2.2.3":
version: 2.2.3
resolution: "json5@npm:2.2.3"
bin:
@@ -9618,6 +11140,13 @@ __metadata:
languageName: node
linkType: hard
+"leven@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "leven@npm:3.1.0"
+ checksum: 10c0/cd778ba3fbab0f4d0500b7e87d1f6e1f041507c56fdcd47e8256a3012c98aaee371d4c15e0a76e0386107af2d42e2b7466160a2d80688aaa03e66e49949f42df
+ languageName: node
+ linkType: hard
+
"libbase64@npm:0.1.0":
version: 0.1.0
resolution: "libbase64@npm:0.1.0"
@@ -9786,6 +11315,13 @@ __metadata:
languageName: node
linkType: hard
+"lodash.memoize@npm:^4.1.2":
+ version: 4.1.2
+ resolution: "lodash.memoize@npm:4.1.2"
+ checksum: 10c0/c8713e51eccc650422716a14cece1809cfe34bc5ab5e242b7f8b4e2241c2483697b971a604252807689b9dd69bfe3a98852e19a5b89d506b000b4187a1285df8
+ languageName: node
+ linkType: hard
+
"lodash@npm:4.17.21, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4":
version: 4.17.21
resolution: "lodash@npm:4.17.21"
@@ -9893,6 +11429,15 @@ __metadata:
languageName: node
linkType: hard
+"lru-cache@npm:^5.1.1":
+ version: 5.1.1
+ resolution: "lru-cache@npm:5.1.1"
+ dependencies:
+ yallist: "npm:^3.0.2"
+ checksum: 10c0/89b2ef2ef45f543011e38737b8a8622a2f8998cddf0e5437174ef8f1f70a8b9d14a918ab3e232cb3ba343b7abddffa667f0b59075b2b80e6b4d63c3de6127482
+ languageName: node
+ linkType: hard
+
"lru-memoizer@npm:^2.2.0":
version: 2.3.0
resolution: "lru-memoizer@npm:2.3.0"
@@ -9945,6 +11490,22 @@ __metadata:
languageName: node
linkType: hard
+"make-dir@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "make-dir@npm:4.0.0"
+ dependencies:
+ semver: "npm:^7.5.3"
+ checksum: 10c0/69b98a6c0b8e5c4fe9acb61608a9fbcfca1756d910f51e5dbe7a9e5cfb74fca9b8a0c8a0ffdf1294a740826c1ab4871d5bf3f62f72a3049e5eac6541ddffed68
+ languageName: node
+ linkType: hard
+
+"make-error@npm:^1.1.1, make-error@npm:^1.3.6":
+ version: 1.3.6
+ resolution: "make-error@npm:1.3.6"
+ checksum: 10c0/171e458d86854c6b3fc46610cfacf0b45149ba043782558c6875d9f42f222124384ad0b468c92e996d815a8a2003817a710c0a160e49c1c394626f76fa45396f
+ languageName: node
+ linkType: hard
+
"make-fetch-happen@npm:^14.0.3":
version: 14.0.3
resolution: "make-fetch-happen@npm:14.0.3"
@@ -9973,6 +11534,15 @@ __metadata:
languageName: node
linkType: hard
+"makeerror@npm:1.0.12":
+ version: 1.0.12
+ resolution: "makeerror@npm:1.0.12"
+ dependencies:
+ tmpl: "npm:1.0.5"
+ checksum: 10c0/b0e6e599780ce6bab49cc413eba822f7d1f0dfebd1c103eaa3785c59e43e22c59018323cf9e1708f0ef5329e94a745d163fcbb6bff8e4c6742f9be9e86f3500c
+ languageName: node
+ linkType: hard
+
"map-cache@npm:^0.2.0":
version: 0.2.2
resolution: "map-cache@npm:0.2.2"
@@ -10272,6 +11842,15 @@ __metadata:
languageName: node
linkType: hard
+"minimatch@npm:^5.0.1":
+ version: 5.1.6
+ resolution: "minimatch@npm:5.1.6"
+ dependencies:
+ brace-expansion: "npm:^2.0.1"
+ checksum: 10c0/3defdfd230914f22a8da203747c42ee3c405c39d4d37ffda284dac5e45b7e1f6c49aa8be606509002898e73091ff2a3bbfc59c2c6c71d4660609f63aa92f98e3
+ languageName: node
+ linkType: hard
+
"minimatch@npm:^9.0.1, minimatch@npm:^9.0.3, minimatch@npm:^9.0.4":
version: 9.0.5
resolution: "minimatch@npm:9.0.5"
@@ -10488,6 +12067,13 @@ __metadata:
languageName: node
linkType: hard
+"natural-compare@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "natural-compare@npm:1.4.0"
+ checksum: 10c0/f5f9a7974bfb28a91afafa254b197f0f22c684d4a1731763dda960d2c8e375b36c7d690e0d9dc8fba774c537af14a7e979129bca23d88d052fbeb9466955e447
+ languageName: node
+ linkType: hard
+
"negotiator@npm:0.6.3":
version: 0.6.3
resolution: "negotiator@npm:0.6.3"
@@ -10555,6 +12141,13 @@ __metadata:
languageName: node
linkType: hard
+"node-int64@npm:^0.4.0":
+ version: 0.4.0
+ resolution: "node-int64@npm:0.4.0"
+ checksum: 10c0/a6a4d8369e2f2720e9c645255ffde909c0fbd41c92ea92a5607fc17055955daac99c1ff589d421eee12a0d24e99f7bfc2aabfeb1a4c14742f6c099a51863f31a
+ languageName: node
+ linkType: hard
+
"node-machine-id@npm:1.1.12":
version: 1.1.12
resolution: "node-machine-id@npm:1.1.12"
@@ -10988,7 +12581,7 @@ __metadata:
languageName: node
linkType: hard
-"p-limit@npm:^3.0.2":
+"p-limit@npm:^3.0.2, p-limit@npm:^3.1.0":
version: 3.1.0
resolution: "p-limit@npm:3.1.0"
dependencies:
@@ -11123,7 +12716,7 @@ __metadata:
languageName: node
linkType: hard
-"parse-json@npm:^5.0.0":
+"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0":
version: 5.2.0
resolution: "parse-json@npm:5.2.0"
dependencies:
@@ -11350,7 +12943,7 @@ __metadata:
languageName: node
linkType: hard
-"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1":
+"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1":
version: 2.3.1
resolution: "picomatch@npm:2.3.1"
checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be
@@ -11371,6 +12964,13 @@ __metadata:
languageName: node
linkType: hard
+"pirates@npm:^4.0.4":
+ version: 4.0.7
+ resolution: "pirates@npm:4.0.7"
+ checksum: 10c0/a51f108dd811beb779d58a76864bbd49e239fa40c7984cd11596c75a121a8cc789f1c8971d8bb15f0dbf9d48b76c05bb62fcbce840f89b688c0fa64b37e8478a
+ languageName: node
+ linkType: hard
+
"pkg-dir@npm:^4.2.0":
version: 4.2.0
resolution: "pkg-dir@npm:4.2.0"
@@ -11588,6 +13188,17 @@ __metadata:
languageName: node
linkType: hard
+"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "pretty-format@npm:29.7.0"
+ dependencies:
+ "@jest/schemas": "npm:^29.6.3"
+ ansi-styles: "npm:^5.0.0"
+ react-is: "npm:^18.0.0"
+ checksum: 10c0/edc5ff89f51916f036c62ed433506b55446ff739358de77207e63e88a28ca2894caac6e73dcb68166a606e51c8087d32d400473e6a9fdd2dbe743f46c9c0276f
+ languageName: node
+ linkType: hard
+
"pretty-ms@npm:^9.0.0":
version: 9.2.0
resolution: "pretty-ms@npm:9.2.0"
@@ -11628,7 +13239,7 @@ __metadata:
languageName: node
linkType: hard
-"prompts@npm:2.4.2":
+"prompts@npm:2.4.2, prompts@npm:^2.0.1":
version: 2.4.2
resolution: "prompts@npm:2.4.2"
dependencies:
@@ -11701,6 +13312,13 @@ __metadata:
languageName: node
linkType: hard
+"pure-rand@npm:^6.0.0":
+ version: 6.1.0
+ resolution: "pure-rand@npm:6.1.0"
+ checksum: 10c0/1abe217897bf74dcb3a0c9aba3555fe975023147b48db540aa2faf507aee91c03bf54f6aef0eb2bf59cc259a16d06b28eca37f0dc426d94f4692aeff02fb0e65
+ languageName: node
+ linkType: hard
+
"qs@npm:6.11.1":
version: 6.11.1
resolution: "qs@npm:6.11.1"
@@ -12326,7 +13944,7 @@ __metadata:
languageName: node
linkType: hard
-"resolve-cwd@npm:3.0.0":
+"resolve-cwd@npm:3.0.0, resolve-cwd@npm:^3.0.0":
version: 3.0.0
resolution: "resolve-cwd@npm:3.0.0"
dependencies:
@@ -12383,6 +14001,13 @@ __metadata:
languageName: node
linkType: hard
+"resolve.exports@npm:^2.0.0":
+ version: 2.0.3
+ resolution: "resolve.exports@npm:2.0.3"
+ checksum: 10c0/1ade1493f4642a6267d0a5e68faeac20b3d220f18c28b140343feb83694d8fed7a286852aef43689d16042c61e2ddb270be6578ad4a13990769e12065191200d
+ languageName: node
+ linkType: hard
+
"resolve@npm:^1.10.0, resolve@npm:^1.12.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.4, resolve@npm:~1.22.1":
version: 1.22.10
resolution: "resolve@npm:1.22.10"
@@ -12743,7 +14368,7 @@ __metadata:
languageName: node
linkType: hard
-"semver@npm:^6.0.0":
+"semver@npm:^6.0.0, semver@npm:^6.3.0, semver@npm:^6.3.1":
version: 6.3.1
resolution: "semver@npm:6.3.1"
bin:
@@ -12761,6 +14386,15 @@ __metadata:
languageName: node
linkType: hard
+"semver@npm:^7.7.2":
+ version: 7.7.2
+ resolution: "semver@npm:7.7.2"
+ bin:
+ semver: bin/semver.js
+ checksum: 10c0/aca305edfbf2383c22571cb7714f48cadc7ac95371b4b52362fb8eeffdfbc0de0669368b82b2b15978f8848f01d7114da65697e56cd8c37b0dab8c58e543f9ea
+ languageName: node
+ linkType: hard
+
"sendmail@npm:^1.6.1":
version: 1.6.1
resolution: "sendmail@npm:1.6.1"
@@ -12990,7 +14624,7 @@ __metadata:
languageName: node
linkType: hard
-"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3":
+"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7":
version: 3.0.7
resolution: "signal-exit@npm:3.0.7"
checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912
@@ -13190,6 +14824,16 @@ __metadata:
languageName: node
linkType: hard
+"source-map-support@npm:0.5.13":
+ version: 0.5.13
+ resolution: "source-map-support@npm:0.5.13"
+ dependencies:
+ buffer-from: "npm:^1.0.0"
+ source-map: "npm:^0.6.0"
+ checksum: 10c0/137539f8c453fa0f496ea42049ab5da4569f96781f6ac8e5bfda26937be9494f4e8891f523c5f98f0e85f71b35d74127a00c46f83f6a4f54672b58d53202565e
+ languageName: node
+ linkType: hard
+
"source-map-support@npm:~0.5.20":
version: 0.5.21
resolution: "source-map-support@npm:0.5.21"
@@ -13292,6 +14936,15 @@ __metadata:
languageName: node
linkType: hard
+"stack-utils@npm:^2.0.3":
+ version: 2.0.6
+ resolution: "stack-utils@npm:2.0.6"
+ dependencies:
+ escape-string-regexp: "npm:^2.0.0"
+ checksum: 10c0/651c9f87667e077584bbe848acaecc6049bc71979f1e9a46c7b920cad4431c388df0f51b8ad7cfd6eed3db97a2878d0fc8b3122979439ea8bac29c61c95eec8a
+ languageName: node
+ linkType: hard
+
"stackframe@npm:^1.3.4":
version: 1.3.4
resolution: "stackframe@npm:1.3.4"
@@ -13331,12 +14984,16 @@ __metadata:
"@strapi/typescript-utils": "npm:^5.13.0"
"@strapi/upload": "npm:^5.13.0"
"@tanstack/react-query": "npm:^5.76.0"
+ "@types/jest": "npm:^29.5.14"
"@types/react": "npm:^19.1.3"
"@types/react-dom": "npm:^19.1.4"
formik: "npm:^2.4.6"
husky: "npm:^9.1.7"
imagekit: "npm:^6.0.0"
imagekit-media-library-widget: "npm:^2.1.1"
+ jest: "npm:^29.7.0"
+ jest-cli: "npm:^29.7.0"
+ jest-junit: "npm:^16.0.0"
lodash: "npm:^4.17.21"
prettier: "npm:^3.5.3"
react: "npm:^18.3.1"
@@ -13344,6 +15001,8 @@ __metadata:
react-intl: "npm:^7.1.11"
react-router-dom: "npm:^6.30.0"
styled-components: "npm:^6.1.18"
+ ts-jest: "npm:^29.3.4"
+ ts-node: "npm:^10.9.2"
typescript: "npm:^5.8.3"
zod: "npm:^3.24.4"
peerDependencies:
@@ -13387,6 +15046,16 @@ __metadata:
languageName: node
linkType: hard
+"string-length@npm:^4.0.1":
+ version: 4.0.2
+ resolution: "string-length@npm:4.0.2"
+ dependencies:
+ char-regex: "npm:^1.0.2"
+ strip-ansi: "npm:^6.0.0"
+ checksum: 10c0/1cd77409c3d7db7bc59406f6bcc9ef0783671dcbabb23597a1177c166906ef2ee7c8290f78cae73a8aec858768f189d2cb417797df5e15ec4eb5e16b3346340c
+ languageName: node
+ linkType: hard
+
"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.0.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.2, string-width@npm:^4.2.3":
version: 4.2.3
resolution: "string-width@npm:4.2.3"
@@ -13470,6 +15139,13 @@ __metadata:
languageName: node
linkType: hard
+"strip-bom@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "strip-bom@npm:4.0.0"
+ checksum: 10c0/26abad1172d6bc48985ab9a5f96c21e440f6e7e476686de49be813b5a59b3566dccb5c525b831ec54fe348283b47f3ffb8e080bc3f965fde12e84df23f6bb7ef
+ languageName: node
+ linkType: hard
+
"strip-final-newline@npm:^2.0.0":
version: 2.0.0
resolution: "strip-final-newline@npm:2.0.0"
@@ -13484,6 +15160,13 @@ __metadata:
languageName: node
linkType: hard
+"strip-json-comments@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "strip-json-comments@npm:3.1.1"
+ checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd
+ languageName: node
+ linkType: hard
+
"strip-json-comments@npm:~2.0.1":
version: 2.0.1
resolution: "strip-json-comments@npm:2.0.1"
@@ -13686,6 +15369,17 @@ __metadata:
languageName: node
linkType: hard
+"test-exclude@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "test-exclude@npm:6.0.0"
+ dependencies:
+ "@istanbuljs/schema": "npm:^0.1.2"
+ glob: "npm:^7.1.4"
+ minimatch: "npm:^3.0.4"
+ checksum: 10c0/019d33d81adff3f9f1bfcff18125fb2d3c65564f437d9be539270ee74b994986abb8260c7c2ce90e8f30162178b09dbbce33c6389273afac4f36069c48521f57
+ languageName: node
+ linkType: hard
+
"text-hex@npm:1.0.x":
version: 1.0.0
resolution: "text-hex@npm:1.0.0"
@@ -13796,6 +15490,13 @@ __metadata:
languageName: node
linkType: hard
+"tmpl@npm:1.0.5":
+ version: 1.0.5
+ resolution: "tmpl@npm:1.0.5"
+ checksum: 10c0/f935537799c2d1922cb5d6d3805f594388f75338fe7a4a9dac41504dd539704ca4db45b883b52e7b0aa5b2fd5ddadb1452bf95cd23a69da2f793a843f9451cc9
+ languageName: node
+ linkType: hard
+
"to-regex-range@npm:^5.0.1":
version: 5.0.1
resolution: "to-regex-range@npm:5.0.1"
@@ -13851,6 +15552,82 @@ __metadata:
languageName: node
linkType: hard
+"ts-jest@npm:^29.3.4":
+ version: 29.3.4
+ resolution: "ts-jest@npm:29.3.4"
+ dependencies:
+ bs-logger: "npm:^0.2.6"
+ ejs: "npm:^3.1.10"
+ fast-json-stable-stringify: "npm:^2.1.0"
+ jest-util: "npm:^29.0.0"
+ json5: "npm:^2.2.3"
+ lodash.memoize: "npm:^4.1.2"
+ make-error: "npm:^1.3.6"
+ semver: "npm:^7.7.2"
+ type-fest: "npm:^4.41.0"
+ yargs-parser: "npm:^21.1.1"
+ peerDependencies:
+ "@babel/core": ">=7.0.0-beta.0 <8"
+ "@jest/transform": ^29.0.0
+ "@jest/types": ^29.0.0
+ babel-jest: ^29.0.0
+ jest: ^29.0.0
+ typescript: ">=4.3 <6"
+ peerDependenciesMeta:
+ "@babel/core":
+ optional: true
+ "@jest/transform":
+ optional: true
+ "@jest/types":
+ optional: true
+ babel-jest:
+ optional: true
+ esbuild:
+ optional: true
+ bin:
+ ts-jest: cli.js
+ checksum: 10c0/68ed5abbbdb16ff8a9df2ba7ebb8e19ea4fffe87db7e0b59d842d674e7935af8b375b51a69c2cc9215ef22a6325a9f99b80ab97f5c300c30910695000e3bfeee
+ languageName: node
+ linkType: hard
+
+"ts-node@npm:^10.9.2":
+ version: 10.9.2
+ resolution: "ts-node@npm:10.9.2"
+ dependencies:
+ "@cspotcode/source-map-support": "npm:^0.8.0"
+ "@tsconfig/node10": "npm:^1.0.7"
+ "@tsconfig/node12": "npm:^1.0.7"
+ "@tsconfig/node14": "npm:^1.0.0"
+ "@tsconfig/node16": "npm:^1.0.2"
+ acorn: "npm:^8.4.1"
+ acorn-walk: "npm:^8.1.1"
+ arg: "npm:^4.1.0"
+ create-require: "npm:^1.1.0"
+ diff: "npm:^4.0.1"
+ make-error: "npm:^1.1.1"
+ v8-compile-cache-lib: "npm:^3.0.1"
+ yn: "npm:3.1.1"
+ peerDependencies:
+ "@swc/core": ">=1.2.50"
+ "@swc/wasm": ">=1.2.50"
+ "@types/node": "*"
+ typescript: ">=2.7"
+ peerDependenciesMeta:
+ "@swc/core":
+ optional: true
+ "@swc/wasm":
+ optional: true
+ bin:
+ ts-node: dist/bin.js
+ ts-node-cwd: dist/bin-cwd.js
+ ts-node-esm: dist/bin-esm.js
+ ts-node-script: dist/bin-script.js
+ ts-node-transpile-only: dist/bin-transpile.js
+ ts-script: dist/bin-script-deprecated.js
+ checksum: 10c0/5f29938489f96982a25ba650b64218e83a3357d76f7bede80195c65ab44ad279c8357264639b7abdd5d7e75fc269a83daa0e9c62fd8637a3def67254ecc9ddc2
+ languageName: node
+ linkType: hard
+
"tslib@npm:2.6.2":
version: 2.6.2
resolution: "tslib@npm:2.6.2"
@@ -13888,6 +15665,13 @@ __metadata:
languageName: node
linkType: hard
+"type-detect@npm:4.0.8":
+ version: 4.0.8
+ resolution: "type-detect@npm:4.0.8"
+ checksum: 10c0/8fb9a51d3f365a7de84ab7f73b653534b61b622aa6800aecdb0f1095a4a646d3f5eb295322127b6573db7982afcd40ab492d038cf825a42093a58b1e1353e0bd
+ languageName: node
+ linkType: hard
+
"type-fest@npm:^0.13.1":
version: 0.13.1
resolution: "type-fest@npm:0.13.1"
@@ -13923,7 +15707,7 @@ __metadata:
languageName: node
linkType: hard
-"type-fest@npm:^4.0.0":
+"type-fest@npm:^4.0.0, type-fest@npm:^4.41.0":
version: 4.41.0
resolution: "type-fest@npm:4.41.0"
checksum: 10c0/f5ca697797ed5e88d33ac8f1fec21921839871f808dc59345c9cf67345bfb958ce41bd821165dbf3ae591cedec2bf6fe8882098dfdd8dc54320b859711a2c1e4
@@ -14311,6 +16095,24 @@ __metadata:
languageName: node
linkType: hard
+"v8-compile-cache-lib@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "v8-compile-cache-lib@npm:3.0.1"
+ checksum: 10c0/bdc36fb8095d3b41df197f5fb6f11e3a26adf4059df3213e3baa93810d8f0cc76f9a74aaefc18b73e91fe7e19154ed6f134eda6fded2e0f1c8d2272ed2d2d391
+ languageName: node
+ linkType: hard
+
+"v8-to-istanbul@npm:^9.0.1":
+ version: 9.3.0
+ resolution: "v8-to-istanbul@npm:9.3.0"
+ dependencies:
+ "@jridgewell/trace-mapping": "npm:^0.3.12"
+ "@types/istanbul-lib-coverage": "npm:^2.0.1"
+ convert-source-map: "npm:^2.0.0"
+ checksum: 10c0/968bcf1c7c88c04df1ffb463c179558a2ec17aa49e49376120504958239d9e9dad5281aa05f2a78542b8557f2be0b0b4c325710262f3b838b40d703d5ed30c23
+ languageName: node
+ linkType: hard
+
"v8flags@npm:^4.0.1":
version: 4.0.1
resolution: "v8flags@npm:4.0.1"
@@ -14442,6 +16244,15 @@ __metadata:
languageName: node
linkType: hard
+"walker@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "walker@npm:1.0.8"
+ dependencies:
+ makeerror: "npm:1.0.12"
+ checksum: 10c0/a17e037bccd3ca8a25a80cb850903facdfed0de4864bd8728f1782370715d679fa72e0a0f5da7c1c1379365159901e5935f35be531229da53bbfc0efdabdb48e
+ languageName: node
+ linkType: hard
+
"watchpack@npm:^2.4.1":
version: 2.4.2
resolution: "watchpack@npm:2.4.2"
@@ -14707,6 +16518,16 @@ __metadata:
languageName: node
linkType: hard
+"write-file-atomic@npm:^4.0.2":
+ version: 4.0.2
+ resolution: "write-file-atomic@npm:4.0.2"
+ dependencies:
+ imurmurhash: "npm:^0.1.4"
+ signal-exit: "npm:^3.0.7"
+ checksum: 10c0/a2c282c95ef5d8e1c27b335ae897b5eca00e85590d92a3fd69a437919b7b93ff36a69ea04145da55829d2164e724bc62202cdb5f4b208b425aba0807889375c7
+ languageName: node
+ linkType: hard
+
"ws@npm:8.17.1":
version: 8.17.1
resolution: "ws@npm:8.17.1"
@@ -14770,6 +16591,13 @@ __metadata:
languageName: node
linkType: hard
+"xml@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "xml@npm:1.0.1"
+ checksum: 10c0/04bcc9b8b5e7b49392072fbd9c6b0f0958bd8e8f8606fee460318e43991349a68cbc5384038d179ff15aef7d222285f69ca0f067f53d071084eb14c7fdb30411
+ languageName: node
+ linkType: hard
+
"xtend@npm:~4.0.1":
version: 4.0.2
resolution: "xtend@npm:4.0.2"
@@ -14802,6 +16630,13 @@ __metadata:
languageName: node
linkType: hard
+"yallist@npm:^3.0.2":
+ version: 3.1.1
+ resolution: "yallist@npm:3.1.1"
+ checksum: 10c0/c66a5c46bc89af1625476f7f0f2ec3653c1a1791d2f9407cfb4c2ba812a1e1c9941416d71ba9719876530e3340a99925f697142989371b72d93b9ee628afd8c1
+ languageName: node
+ linkType: hard
+
"yallist@npm:^4.0.0":
version: 4.0.0
resolution: "yallist@npm:4.0.0"
@@ -14852,7 +16687,7 @@ __metadata:
languageName: node
linkType: hard
-"yargs@npm:^17.7.2":
+"yargs@npm:^17.3.1, yargs@npm:^17.7.2":
version: 17.7.2
resolution: "yargs@npm:17.7.2"
dependencies:
@@ -14874,6 +16709,13 @@ __metadata:
languageName: node
linkType: hard
+"yn@npm:3.1.1":
+ version: 3.1.1
+ resolution: "yn@npm:3.1.1"
+ checksum: 10c0/0732468dd7622ed8a274f640f191f3eaf1f39d5349a1b72836df484998d7d9807fbea094e2f5486d6b0cd2414aad5775972df0e68f8604db89a239f0f4bf7443
+ languageName: node
+ linkType: hard
+
"yocto-queue@npm:^0.1.0":
version: 0.1.0
resolution: "yocto-queue@npm:0.1.0"