diff --git a/.eslintrc.js b/.eslintrc.js index a7613d4b4..6ba2c8c6e 100755 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -5,17 +5,14 @@ module.exports = { es6: true, jest: true, }, - // TODO: remove scene-composer related patterns after aligning scene-composer lint style ignorePatterns: [ 'cypress', 'stencil.config.ts', 'configuration', '__mocks__', - 'packages/scene-composer/src/three/*', - 'packages/scene-composer/src/typings.d.ts', - 'packages/scene-composer/translations/*', - 'packages/scene-composer/stories/*', - 'packages/scene-composer/jest.config.js', + // <<< Private repo additions + 'packages/scene-composer/src/three/tiles3d/*', + // >>> ], extends: [ 'eslint:recommended', diff --git a/packages/scene-composer/.eslintrc.js b/packages/scene-composer/.eslintrc.js index d692fda22..76f824ee5 100644 --- a/packages/scene-composer/.eslintrc.js +++ b/packages/scene-composer/.eslintrc.js @@ -9,7 +9,6 @@ module.exports = { extends: [ 'standard', 'standard-react', - 'eslint:recommended', 'plugin:import/recommended', 'plugin:import/typescript', 'plugin:@typescript-eslint/recommended', @@ -67,9 +66,5 @@ module.exports = { jest: true, es6: true, }, - ignorePatterns: [ - 'src/three/GLTFLoader.js', - 'src/three/tiles3d/TilesRenderer.js', - 'src/three/tiles3d/TilesRendererBase.js', - ], + ignorePatterns: ['src/three/GLTFLoader.js', 'src/three/tiles3d/*'], }; diff --git a/packages/scene-composer/.storybook/preview.js b/packages/scene-composer/.storybook/preview.js index 53c349cba..4d06071eb 100644 --- a/packages/scene-composer/.storybook/preview.js +++ b/packages/scene-composer/.storybook/preview.js @@ -1,18 +1,3 @@ -import AWS from 'aws-sdk'; - -function getCredentials() { - const chain = new AWS.CredentialProviderChain([ - function () { - return { - accessKeyId: process.env.STORYBOOK_ACCESS_KEY_ID, - secretAccessKey: process.env.STORYBOOK_SECRET_ACCESS_KEY, - sessionToken: process.env.STORYBOOK_SESSION_TOKEN, - }; - }, - ]); - return chain.resolvePromise(); -} - export const parameters = { // actions: { argTypesRegex: '^on[A-Z].*' }, controls: { @@ -22,9 +7,3 @@ export const parameters = { }, }, }; - -export const loaders = [ - async () => ({ - awsCredentials: await getCredentials(), - }), -]; diff --git a/packages/scene-composer/jest.config.js b/packages/scene-composer/jest.config.ts similarity index 86% rename from packages/scene-composer/jest.config.js rename to packages/scene-composer/jest.config.ts index 3cba806f7..c024ce319 100644 --- a/packages/scene-composer/jest.config.js +++ b/packages/scene-composer/jest.config.ts @@ -1,10 +1,12 @@ -const merge = require('merge'); -const tsPreset = require('ts-jest/jest-preset'); -const awsuiPreset = require('@awsui/jest-preset'); +import merge from 'merge'; +import tsPreset from 'ts-jest/jest-preset'; +import awsuiPreset from '@awsui/jest-preset'; -const { jest } = require('./package.json'); +import * as pkg from './package.json'; -module.exports = merge.recursive(tsPreset, awsuiPreset, { +const jest = pkg.jest; + +export default merge.recursive(tsPreset, awsuiPreset, { ...jest, verbose: true, collectCoverageFrom: [ diff --git a/packages/scene-composer/package.json b/packages/scene-composer/package.json index f9890ea48..c1a8b5c4c 100644 --- a/packages/scene-composer/package.json +++ b/packages/scene-composer/package.json @@ -31,15 +31,11 @@ "tttsc": "ttsc", "release": "run-s compile copy-assets", "copy-assets": "copyfiles -e \"**/*.tsx\" -e \"**/*.ts\" -e \"**/*.snap\" -e \"**/*.js\" -e \"**/*.jsx\" -e \"**/*.json\" \"src/**/*\" dist/", - "test": "jest --config jest.config.js --coverage", - "posttest": "npm run test:lint && jest-coverage-ratchet", - "test:build": "run-s build", - "test:lint": "eslint --ext js --ext jsx --ext ts --ext tsx src tests", - "test:update": "jest --config jest.config.js --updateSnapshot", - "test:unit": "jest --config jest.config.js", - "test:watch": "jest --config jest.config.js --watch", - "format:lint": "eslint --fix --ext js --ext jsx --ext ts --ext tsx src tests", - "format": "run-s format:lint", + "test": "jest --config jest.config.ts --coverage", + "posttest": "jest-coverage-ratchet", + "test:update": "jest --config jest.config.ts --updateSnapshot", + "test:unit": "jest --config jest.config.ts", + "test:watch": "jest --config jest.config.ts --watch", "storybook": "yarn run build-storybook && start-storybook -s ./dist -h 0.0.0.0 -p 6006", "build-storybook": "build-storybook", "extract-msgs": "formatjs extract 'src/**/*.ts*' --ignore='**/*.d.ts' --out-file translations/IotAppKitSceneComposer.en_US.json --id-interpolation-pattern '[sha512:contenthash:base64:6]' --format src/utils/totoro-formatter.js", @@ -56,7 +52,6 @@ }, "devDependencies": { "@awsui/jest-preset": "^2.0.3", - "@babel/core": "^7.12.1", "@babel/preset-env": "^7.12.1", "@babel/preset-react": "^7.12.1", "@babel/runtime": "^7.12.1", @@ -74,7 +69,6 @@ "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^9.5.0", "@testing-library/react-hooks": "^6.0.0", - "@testing-library/user-event": "^7.2.1", "@types/debug": "^4.1.7", "@types/jest": "^27.4.1", "@types/jexl": "^2.2.0", @@ -86,25 +80,20 @@ "@types/styled-components": "^5.1.12", "@types/three": "^0.131.0", "babel-jest": "^27.0.6", - "babel-loader": "^8.2.2", "babel-plugin-formatjs": "10.3.18", "copyfiles": "^2.4.1", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.6", - "eslint": "^7.12.1", - "eslint-config-prettier": "^8.3.0", "eslint-config-standard": "^16.0.3", "eslint-config-standard-react": "^11.0.1", "eslint-plugin-promise": "^4.3.1", "eslint-plugin-standard": "^4.1.0", "husky": "7.0.4", - "identity-obj-proxy": "^3.0.0", "jest": "^27.0.6", "jest-coverage-ratchet": "^0.2.3", "jest-styled-components": "^7.0.0", "lodash": "^4.17.21", "node-sass": "^7.0.0", - "npm-run-all": "^4.1.5", "postcss": "^8.3.6", "prettier": "^2.3.2", "prettier-eslint": "^13.0.0", @@ -134,7 +123,6 @@ "@react-three/test-renderer": "^7.0.6", "@tweenjs/tween.js": "^18.6.4", "arraybuffer-to-string": "1.0.2", - "aws-sdk": "^2.1043.0", "debug": "^4.3.4", "immer": "^9.0.6", "is-absolute-url": "^4.0.1", diff --git a/packages/scene-composer/src/three/TwinMakerTextureLoader.ts b/packages/scene-composer/src/three/TwinMakerTextureLoader.ts index 7e25570cd..16e123685 100644 --- a/packages/scene-composer/src/three/TwinMakerTextureLoader.ts +++ b/packages/scene-composer/src/three/TwinMakerTextureLoader.ts @@ -1,5 +1,4 @@ import * as THREE from 'three'; -import S3 from 'aws-sdk/clients/s3'; import { GetSceneObjectFunction } from '../interfaces/interfaces'; diff --git a/packages/scene-composer/src/typings.d.ts b/packages/scene-composer/src/typings.d.ts index 5522e2fb8..fe5f91d8e 100644 --- a/packages/scene-composer/src/typings.d.ts +++ b/packages/scene-composer/src/typings.d.ts @@ -7,8 +7,7 @@ declare module '*.css' { export default content; } -interface SvgrComponent - extends React.StatelessComponent> {} +interface SvgrComponent extends React.StatelessComponent> {} declare module '*.svg' { const svgUrl: string; diff --git a/packages/scene-composer/stories/SceneComposer.stories.tsx b/packages/scene-composer/stories/SceneComposer.stories.tsx index e4a871e75..74524f5ac 100644 --- a/packages/scene-composer/stories/SceneComposer.stories.tsx +++ b/packages/scene-composer/stories/SceneComposer.stories.tsx @@ -1,10 +1,9 @@ import React, { ChangeEvent } from 'react'; import { useToolbarActions } from 'storybook-addon-toolbar-actions'; import { boolean, select, text, withKnobs } from '@storybook/addon-knobs'; -import AWS from 'aws-sdk'; import { applyMode, Mode, applyDensity, Density } from '@awsui/global-styles'; import { ComponentStory, ComponentMeta, forceReRender } from '@storybook/react'; -import { initialize } from '@iot-app-kit/source-iottwinmaker'; +import { initialize } from '@iot-app-kit/source-iottwinmaker'; import { useCallback, useRef, useState } from '@storybook/addons'; import str2ab from 'string-to-arraybuffer'; @@ -43,7 +42,7 @@ const commonLoaders = [ async () => ({ configurations: await (async () => { const awsAccessKeyId = text('awsAccessKeyId', process.env.STORYBOOK_ACCESS_KEY_ID || ''); - const awsSecretAccessKey = text('awsSecretAccessKey', process.env.STORYBOOK_SECRET_ACCESS_KEY || ''); + const awsSecretAccessKey = text('awsSecretAccessKey', process.env.STORYBOOK_SECRET_ACCESS_KEY || ''); const awsSessionToken = text('awsSessionToken', process.env.STORYBOOK_SESSION_TOKEN || ''); const workspaceId = text('workspaceId', ''); const sceneId = text('sceneId', ''); @@ -62,11 +61,15 @@ const commonLoaders = [ accessKeyId: awsAccessKeyId, secretAccessKey: awsSecretAccessKey, sessionToken: awsSessionToken, - } as AWS.Credentials; + }; - const init = initialize(workspaceId, {awsCredentials: credentials, awsRegion: region, tmEndpoint: rociEndpoint}); + const init = initialize(workspaceId, { + awsCredentials: credentials, + awsRegion: region, + tmEndpoint: rociEndpoint, + }); const sceneLoader = init.s3SceneLoader(sceneId); - sceneContentUrl = await sceneLoader.getSceneUrl() || ''; + sceneContentUrl = (await sceneLoader.getSceneUrl()) || ''; return [sceneContentUrl, sceneLoader.getSceneObject as any]; }; @@ -113,8 +116,16 @@ const knobsConfigurationDecorator = [ const fileRef = useRef(null); const [sceneFileLocal, setSceneFileLocal] = useState(undefined); - const { loadFromAws, sceneContentUrl, uriModifier, theme, density, mode, valueDataBindingProvider, getSceneObjectFunction } = - configurations; + const { + loadFromAws, + sceneContentUrl, + uriModifier, + theme, + density, + mode, + valueDataBindingProvider, + getSceneObjectFunction, + } = configurations; const cameraTarget = text('camera target ref', ''); const anchorRef = text('anchor ref', ''); diff --git a/packages/scene-composer/stories/Trees.stories.tsx b/packages/scene-composer/stories/Trees.stories.tsx index 50eb2e6f0..9c2ac11ea 100644 --- a/packages/scene-composer/stories/Trees.stories.tsx +++ b/packages/scene-composer/stories/Trees.stories.tsx @@ -58,7 +58,7 @@ export const Basic = () => { }; export const Expandable = () => { - const [expanded, setExpanded] = useState([]) + const [expanded, setExpanded] = useState([]); return ( diff --git a/packages/scene-composer/stories/types.ts b/packages/scene-composer/stories/types.ts index 097d3ed1d..c125d2f3a 100644 --- a/packages/scene-composer/stories/types.ts +++ b/packages/scene-composer/stories/types.ts @@ -1,6 +1,4 @@ -import { - IValueDataBindingProviderState, -} from '../src/interfaces'; +import { IValueDataBindingProviderState } from '../src/interfaces'; export interface MockedValueDataBindingProviderStore { state: IValueDataBindingProviderState; diff --git a/packages/scene-composer/stories/useMockedValueDataBindingProvider.ts b/packages/scene-composer/stories/useMockedValueDataBindingProvider.ts index 6efc953fb..cc32a1cbb 100644 --- a/packages/scene-composer/stories/useMockedValueDataBindingProvider.ts +++ b/packages/scene-composer/stories/useMockedValueDataBindingProvider.ts @@ -10,6 +10,7 @@ import { IValueDataBindingProviderState, } from '../src/interfaces'; import { createDataFrameLabel } from '../src/utils/dataFrameLabelUtils'; + import { asyncLoadEntityOptions, asyncLoadComponentNameOptions, @@ -19,13 +20,7 @@ import { createIdenticalLabelOption, } from './useMockedValueDataBindingProviderUtils'; import { FIELD_NAME, MockedValueDataBindingProviderStore } from './types'; -import { - COMPONENT_NAME_INDEX, - ENTITY_ID_INDEX, - FIELDS, - MOCK_DELAY, - PROPERTY_NAME_INDEX, -} from './constants'; +import { COMPONENT_NAME_INDEX, ENTITY_ID_INDEX, FIELDS, MOCK_DELAY, PROPERTY_NAME_INDEX } from './constants'; export const propertyNames = Object.seal(['temperature']); export function useMockedValueDataBindingProvider(): IValueDataBindingProvider { @@ -45,7 +40,11 @@ export function useMockedValueDataBindingProvider(): IValueDataBindingProvider { }, []); return { - setBinding(key: string, binding?: IValueDataBinding, dataBindingConfig?: IDataBindingConfig): IValueDataBindingProviderState { + setBinding( + key: string, + binding?: IValueDataBinding, + dataBindingConfig?: IDataBindingConfig, + ): IValueDataBindingProviderState { // this is an optimization to avoid reinitialize if the state the provider is already synced if (lastKey.current !== key || !isEqual(binding, lastBinding.current)) { lastKey.current = key; @@ -72,7 +71,12 @@ export function useMockedValueDataBindingProvider(): IValueDataBindingProvider { } // initiate loading of entities - asyncLoadEntityOptions(storeRef.current, isDataBindingTemplateProvider, dataBindingConfig, notifyStateChange); + asyncLoadEntityOptions( + storeRef.current, + isDataBindingTemplateProvider, + dataBindingConfig, + notifyStateChange, + ); } return cloneStoreState(storeRef.current); @@ -86,7 +90,12 @@ export function useMockedValueDataBindingProvider(): IValueDataBindingProvider { storeRef.current.state.selectedOptions[PROPERTY_NAME_INDEX] = undefined as any; // load component - asyncLoadComponentNameOptions(storeRef.current, isDataBindingTemplateProvider, dataBindingConfig, notifyStateChange); + asyncLoadComponentNameOptions( + storeRef.current, + isDataBindingTemplateProvider, + dataBindingConfig, + notifyStateChange, + ); } else if (fieldName === 'componentName') { storeRef.current.state.selectedOptions[COMPONENT_NAME_INDEX] = selected; // clear propertyName selection @@ -125,7 +134,7 @@ export function useMockedValueDataBindingProvider(): IValueDataBindingProvider { setOnStateChangedListener(listener: (state: IValueDataBindingProviderState) => void | undefined) { storeRef.current.onStateChangedListener = listener; }, - } + }; }, - } + }; } diff --git a/packages/scene-composer/stories/useMockedValueDataBindingProviderUtils.ts b/packages/scene-composer/stories/useMockedValueDataBindingProviderUtils.ts index cfbec7be0..1a9219f02 100644 --- a/packages/scene-composer/stories/useMockedValueDataBindingProviderUtils.ts +++ b/packages/scene-composer/stories/useMockedValueDataBindingProviderUtils.ts @@ -1,11 +1,5 @@ -import { - IDataFieldOption, - IValueDataBindingProviderState, - IDataBindingConfig, -} from '../src/interfaces'; -import { - createDataBindingTemplateOptions, -} from '../src/utils/dataBindingTemplateUtils'; +import { IDataFieldOption, IValueDataBindingProviderState, IDataBindingConfig } from '../src/interfaces'; +import { createDataBindingTemplateOptions } from '../src/utils/dataBindingTemplateUtils'; import { componentNames, @@ -33,16 +27,21 @@ export function createIdenticalLabelOption(value: string) { export function createEmtpyStoreState(): IValueDataBindingProviderState { return { - definitions: FIELDS.map(fieldName => ({ + definitions: FIELDS.map((fieldName) => ({ fieldName, state: 'disabled', options: [], })), selectedOptions: [], - } + }; } -export async function asyncLoadEntityOptions(store: MockedValueDataBindingProviderStore, isDataBindingTemplateProvider: boolean, dataBindingConfig?: IDataBindingConfig, notifyStateChange?: () => void) { +export async function asyncLoadEntityOptions( + store: MockedValueDataBindingProviderStore, + isDataBindingTemplateProvider: boolean, + dataBindingConfig?: IDataBindingConfig, + notifyStateChange?: () => void, +) { store.state.definitions[ENTITY_ID_INDEX].state = 'loading'; store.state.definitions[COMPONENT_NAME_INDEX].state = 'disabled'; store.state.definitions[PROPERTY_NAME_INDEX].state = 'disabled'; @@ -58,10 +57,9 @@ export async function asyncLoadEntityOptions(store: MockedValueDataBindingProvid }, MOCK_DELAY); }); - store.state.definitions[ENTITY_ID_INDEX].options = !isDataBindingTemplateProvider ? [ - ...createDataBindingTemplateOptions('entityId', dataBindingConfig), - ...entityOptions, - ] : entityOptions; + store.state.definitions[ENTITY_ID_INDEX].options = !isDataBindingTemplateProvider + ? [...createDataBindingTemplateOptions('entityId', dataBindingConfig), ...entityOptions] + : entityOptions; store.state.definitions[ENTITY_ID_INDEX].state = 'ready'; // refresh selected entityName @@ -78,7 +76,12 @@ export async function asyncLoadEntityOptions(store: MockedValueDataBindingProvid } } -export async function asyncLoadComponentNameOptions(store: MockedValueDataBindingProviderStore, isDataBindingTemplateProvider: boolean, dataBindingConfig?: IDataBindingConfig, notifyStateChange?: () => void) { +export async function asyncLoadComponentNameOptions( + store: MockedValueDataBindingProviderStore, + isDataBindingTemplateProvider: boolean, + dataBindingConfig?: IDataBindingConfig, + notifyStateChange?: () => void, +) { store.state.definitions[COMPONENT_NAME_INDEX].state = 'loading'; store.state.definitions[PROPERTY_NAME_INDEX].state = 'disabled'; notifyStateChange?.(); @@ -93,10 +96,12 @@ export async function asyncLoadComponentNameOptions(store: MockedValueDataBindin }, MOCK_DELAY); }); - store.state.definitions[COMPONENT_NAME_INDEX].options = !isDataBindingTemplateProvider ? [ - ...createDataBindingTemplateOptions('componentName', dataBindingConfig, store.state.selectedOptions[0].value), - ...componentNameOptions, - ] : componentNameOptions; + store.state.definitions[COMPONENT_NAME_INDEX].options = !isDataBindingTemplateProvider + ? [ + ...createDataBindingTemplateOptions('componentName', dataBindingConfig, store.state.selectedOptions[0].value), + ...componentNameOptions, + ] + : componentNameOptions; store.state.definitions[COMPONENT_NAME_INDEX].state = 'ready'; notifyStateChange?.(); @@ -107,7 +112,11 @@ export async function asyncLoadComponentNameOptions(store: MockedValueDataBindin } } -export async function asyncLoadPropertyNameOptions(store: MockedValueDataBindingProviderStore, dataBindingConfig?: IDataBindingConfig, notifyStateChange?: () => void) { +export async function asyncLoadPropertyNameOptions( + store: MockedValueDataBindingProviderStore, + dataBindingConfig?: IDataBindingConfig, + notifyStateChange?: () => void, +) { store.state.definitions[PROPERTY_NAME_INDEX].state = 'loading'; notifyStateChange?.(); diff --git a/packages/scene-composer/tests/components/three-fiber/LoadingProgress.spec.tsx b/packages/scene-composer/tests/components/three-fiber/LoadingProgress.spec.tsx index a8bebd273..5cdcf2bb3 100644 --- a/packages/scene-composer/tests/components/three-fiber/LoadingProgress.spec.tsx +++ b/packages/scene-composer/tests/components/three-fiber/LoadingProgress.spec.tsx @@ -1,6 +1,7 @@ /* eslint-disable import/first */ import React from 'react'; import { render } from '@testing-library/react'; +import * as THREE from 'three'; import { mockReactIntl } from '../../__mocks__/MockReactIntl'; mockReactIntl(); diff --git a/packages/scene-composer/translations/index.ts b/packages/scene-composer/translations/index.ts index b7a3b9f1a..05f417517 100644 --- a/packages/scene-composer/translations/index.ts +++ b/packages/scene-composer/translations/index.ts @@ -14,19 +14,19 @@ import zhTWMessages from './IotAppKitSceneComposer.zh_TW.json'; export const defaultMessages = enMessages; export const messagesMap = { - de: deMessages, - en: enMessages, - en_US: enMessages, - en_GB: enUKMessages, - es: esMessages, - fr: frMessages, - id: idMessages, - it: itMessages, - ja: jaMessages, - ko: koMessages, - pt_BR: ptMessages, - pt: ptMessages, - zh_CN:zhCNMessages, - zh: zhCNMessages, - zh_TW: zhTWMessages, -} \ No newline at end of file + de: deMessages, + en: enMessages, + en_US: enMessages, + en_GB: enUKMessages, + es: esMessages, + fr: frMessages, + id: idMessages, + it: itMessages, + ja: jaMessages, + ko: koMessages, + pt_BR: ptMessages, + pt: ptMessages, + zh_CN: zhCNMessages, + zh: zhCNMessages, + zh_TW: zhTWMessages, +}; diff --git a/yarn.lock b/yarn.lock index 6c70e38c7..3126006b1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1778,7 +1778,7 @@ json5 "^2.2.1" semver "^6.3.0" -"@babel/core@^7.10.4", "@babel/core@^7.12.1": +"@babel/core@^7.10.4": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.6.tgz#54a107a3c298aee3fe5e1947a6464b9b6faca03d" integrity sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ== @@ -7785,11 +7785,6 @@ dependencies: "@babel/runtime" "^7.12.5" -"@testing-library/user-event@^7.2.1": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-7.2.1.tgz#2ad4e844175a3738cb9e7064be5ea070b8863a1c" - integrity sha512-oZ0Ib5I4Z2pUEcoo95cT1cr6slco9WY7yiPpG+RGNkj8YcYgJnM7pXmYmorNOReh8MIGcKSqXyeGjxnr8YiZbA== - "@tootallnate/once@1": version "1.1.2" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" @@ -10501,21 +10496,6 @@ autoprefixer@^9.8.6: postcss "^7.0.32" postcss-value-parser "^4.1.0" -aws-sdk@^2.1043.0: - version "2.1171.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1171.0.tgz#aa963da129ee26fe01ec7d373f0ec7cdb00d1c88" - integrity sha512-V1Tb6oQy7wtpMcd51RV2sjk1o+aaaAVJm26ZZZjwOxPqiYSZhVRFgj3eUQrwbUfhlCrqejVUp4nuxiIjmr8n6Q== - dependencies: - buffer "4.9.2" - events "1.1.1" - ieee754 "1.1.13" - jmespath "0.16.0" - querystring "0.2.0" - sax "1.2.1" - url "0.10.3" - uuid "8.0.0" - xml2js "0.4.19" - aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -11358,7 +11338,7 @@ buffer-xor@^1.0.3: resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= -buffer@4.9.2, buffer@^4.3.0: +buffer@^4.3.0: version "4.9.2" resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== @@ -14609,11 +14589,6 @@ eslint-config-prettier@8.3.0: resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a" integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew== -eslint-config-prettier@^8.3.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" - integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== - eslint-config-standard-react@^11.0.1: version "11.0.1" resolved "https://registry.yarnpkg.com/eslint-config-standard-react/-/eslint-config-standard-react-11.0.1.tgz#1f488e0062c1e21c4c8584551619f11750658f55" @@ -14816,7 +14791,7 @@ eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^7.12.1, eslint@^7.9.0: +eslint@^7.9.0: version "7.32.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== @@ -15008,11 +14983,6 @@ eventemitter3@^4.0.0, eventemitter3@^4.0.4: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - integrity sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw== - events@^3.0.0, events@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" @@ -17191,11 +17161,6 @@ identity-obj-proxy@^3.0.0: dependencies: harmony-reflect "^1.4.6" -ieee754@1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - ieee754@^1.1.13, ieee754@^1.1.4: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" @@ -19661,11 +19626,6 @@ jexl@^2.3.0: dependencies: "@babel/runtime" "^7.10.2" -jmespath@0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.16.0.tgz#b15b0a85dfd4d930d43e69ed605943c802785076" - integrity sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw== - js-base64@^2.4.3: version "2.6.4" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" @@ -25575,12 +25535,7 @@ sass@^1.30.0: immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" -sax@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" - integrity sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA== - -sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4: +sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -28132,14 +28087,6 @@ url-regex@^5.0.0: ip-regex "^4.1.0" tlds "^1.203.0" -url@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" - integrity sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ== - dependencies: - punycode "1.3.2" - querystring "0.2.0" - url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" @@ -28265,11 +28212,6 @@ uuid-browser@^3.1.0: resolved "https://registry.yarnpkg.com/uuid-browser/-/uuid-browser-3.1.0.tgz#0f05a40aef74f9e5951e20efbf44b11871e56410" integrity sha1-DwWkCu90+eWVHiDvv0SxGHHlZBA= -uuid@8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.0.0.tgz#bc6ccf91b5ff0ac07bbcdbf1c7c4e150db4dbb6c" - integrity sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw== - uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" @@ -29068,15 +29010,7 @@ xml-name-validator@^3.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== -xml2js@0.4.19: - version "0.4.19" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" - integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q== - dependencies: - sax ">=0.6.0" - xmlbuilder "~9.0.1" - -xmlbuilder@^9.0.7, xmlbuilder@~9.0.1: +xmlbuilder@^9.0.7: version "9.0.7" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=