From e62f545bbf3ce93151b8e99491244829fbcc6c4b Mon Sep 17 00:00:00 2001 From: jyoes Date: Fri, 8 Sep 2023 12:52:04 -0700 Subject: [PATCH 01/18] Initial reactotron-apollo-client --- lib/reactotron-apollo-client/.babelrc | 6 + lib/reactotron-apollo-client/.gitignore | 7 + lib/reactotron-apollo-client/.prettierignore | 9 + lib/reactotron-apollo-client/.prettierrc | 5 + lib/reactotron-apollo-client/CHANGELOG.md | 14 ++ lib/reactotron-apollo-client/LICENSE | 21 ++ lib/reactotron-apollo-client/README.md | 45 ++++ lib/reactotron-apollo-client/package.json | 83 +++++++ lib/reactotron-apollo-client/project.json | 8 + lib/reactotron-apollo-client/rollup.config.ts | 39 +++ .../src/reactotron-apollo-client.ts | 235 ++++++++++++++++++ lib/reactotron-apollo-client/tsconfig.json | 24 ++ 12 files changed, 496 insertions(+) create mode 100644 lib/reactotron-apollo-client/.babelrc create mode 100644 lib/reactotron-apollo-client/.gitignore create mode 100644 lib/reactotron-apollo-client/.prettierignore create mode 100644 lib/reactotron-apollo-client/.prettierrc create mode 100644 lib/reactotron-apollo-client/CHANGELOG.md create mode 100644 lib/reactotron-apollo-client/LICENSE create mode 100644 lib/reactotron-apollo-client/README.md create mode 100644 lib/reactotron-apollo-client/package.json create mode 100644 lib/reactotron-apollo-client/project.json create mode 100644 lib/reactotron-apollo-client/rollup.config.ts create mode 100644 lib/reactotron-apollo-client/src/reactotron-apollo-client.ts create mode 100644 lib/reactotron-apollo-client/tsconfig.json diff --git a/lib/reactotron-apollo-client/.babelrc b/lib/reactotron-apollo-client/.babelrc new file mode 100644 index 000000000..c0993b53f --- /dev/null +++ b/lib/reactotron-apollo-client/.babelrc @@ -0,0 +1,6 @@ +{ + "presets": [ + "@babel/preset-env", + "@babel/preset-typescript" + ] +} diff --git a/lib/reactotron-apollo-client/.gitignore b/lib/reactotron-apollo-client/.gitignore new file mode 100644 index 000000000..697066da6 --- /dev/null +++ b/lib/reactotron-apollo-client/.gitignore @@ -0,0 +1,7 @@ +node_modules +npm-debug.log +coverage +.nyc_output +dist +yarn-error.log +.idea diff --git a/lib/reactotron-apollo-client/.prettierignore b/lib/reactotron-apollo-client/.prettierignore new file mode 100644 index 000000000..e70c5e979 --- /dev/null +++ b/lib/reactotron-apollo-client/.prettierignore @@ -0,0 +1,9 @@ +**/.vscode +**/android +**/build +**/compiled +**/dist +**/ios +**/package.json +**/release +CHANGELOG.md diff --git a/lib/reactotron-apollo-client/.prettierrc b/lib/reactotron-apollo-client/.prettierrc new file mode 100644 index 000000000..1d44c3a9c --- /dev/null +++ b/lib/reactotron-apollo-client/.prettierrc @@ -0,0 +1,5 @@ +{ + "printWidth": 100, + "semi": false, + "trailingComma": "es5" +} diff --git a/lib/reactotron-apollo-client/CHANGELOG.md b/lib/reactotron-apollo-client/CHANGELOG.md new file mode 100644 index 000000000..48dde279a --- /dev/null +++ b/lib/reactotron-apollo-client/CHANGELOG.md @@ -0,0 +1,14 @@ +# Changelog + +This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver). + +### [0.1.2](https://github.com/infinitered/reactotron/compare/reactotron-@apollo/client@0.1.1...reactotron-@apollo/client@0.1.2) (2023-07-06) + +### [0.1.1](https://github.com/infinitered/reactotron/compare/reactotron-@apollo/client@0.1.0...reactotron-@apollo/client@0.1.1) (2023-06-15) + +## 0.1.0 (2023-06-15) + + +### Features + +* **lib:** add `@apollo/client` plugin ([#1291](https://github.com/infinitered/reactotron/issues/1291)) ([a5637fa](https://github.com/infinitered/reactotron/commit/a5637fae2a3eabcea27cc491d13d0174c46be9e9)) diff --git a/lib/reactotron-apollo-client/LICENSE b/lib/reactotron-apollo-client/LICENSE new file mode 100644 index 000000000..7325864d1 --- /dev/null +++ b/lib/reactotron-apollo-client/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 - 3016 Infinite Red LLC. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/lib/reactotron-apollo-client/README.md b/lib/reactotron-apollo-client/README.md new file mode 100644 index 000000000..77bf19bed --- /dev/null +++ b/lib/reactotron-apollo-client/README.md @@ -0,0 +1,45 @@ +# reactotron-apollo-client + +Log updates to your [@apollo/client](https://github.com/mrousavy/@apollo/client) store in the Reactotron timeline. + +# Installing + +```bash +npm i --save-dev reactotron-apollo-client +# or +yarn add -D reactotron-apollo-client +``` + +## Usage + +Import your mmkv storage instance: + +```js +import { MMKV } from "@apollo/client" +export const storage = new MMKV() +``` + +To use the `mmkvPlugin`, add the additional plugin on the `import` line. + +```js +import Reactotron from "reactotron-react-native" +import mmkvPlugin from "reactotron-apollo-client" +import { storage } from "./mmkv/storage/instance/location" // <--- update this location +... +Reactotron.configure() + .use(mmkvPlugin({ storage })) // <--- here we go! + .connect() +``` + +And you're done! Now you can see your MMKV in Reactotron. + +## Advanced Usage + +`mmkvPlugin()` accepts an object with an `ignore` key. The value is an array of strings you would like to prevent sending to Reactotron. + +```js +mmkvPlugin({ + storage, + ignore: ["secret"], +}) +``` diff --git a/lib/reactotron-apollo-client/package.json b/lib/reactotron-apollo-client/package.json new file mode 100644 index 000000000..738af9ba2 --- /dev/null +++ b/lib/reactotron-apollo-client/package.json @@ -0,0 +1,83 @@ +{ + "name": "reactotron-apollo-client", + "version": "0.0.1", + "description": "A Reactotron plugin for @apollo/client.", + "author": "Infinite Red", + "license": "MIT", + "bugs": { + "url": "https://github.com/infinitered/reactotron/issues" + }, + "homepage": "https://github.com/infinitered/reactotron/tree/beta/lib/reactotron-apollo-client", + "repository": "https://github.com/infinitered/reactotron/tree/beta/lib/reactotron-apollo-client", + "files": [ + "dist", + "LICENSE" + ], + "main": "dist/reactotron-apollo-client.umd.js", + "module": "dist/reactotron-apollo-client.es5.js", + "typings": "dist/types/reactotron-apollo-client.d.ts", + "scripts": { + "test": "jest --passWithNoTests", + "test:watch": "jest --watch --notify", + "format": "prettier '*.{js,ts,tsx,json,md,css,yml}|**/*.{js,ts,tsx,json,md,css,yml}'", + "format:check": "yarn format --check", + "format:write": "yarn format --write", + "prebuild": "yarn clean", + "build": "yarn tsc && yarn compile", + "prebuild:dev": "yarn clean", + "build:dev": "yarn tsc && yarn compile:dev", + "clean": "trash dist", + "lint": "eslint 'src/**/**.{ts,tsx}'", + "compile": "NODE_ENV=production rollup -c rollup.config.ts", + "compile:dev": "NODE_ENV=development rollup -c rollup.config.ts", + "tsc": "tsc", + "typecheck": "tsc", + "ci:test": "yarn test --runInBand" + }, + "peerDependencies": { + "@apollo/client": "*", + "reactotron-core-client": "*" + }, + "dependencies": { + "ramda": "^0.25.0" + }, + "devDependencies": { + "@apollo/client": "^3.8.3", + "@babel/core": "^7.21.0", + "@babel/preset-env": "^7.20.2", + "@babel/preset-typescript": "^7.21.0", + "@types/jest": "^29.4.0", + "@types/node": "^11.9.5", + "@types/ramda": "^0.25.50", + "@typescript-eslint/eslint-plugin": "^5.54.0", + "@typescript-eslint/parser": "^5.54.0", + "babel-eslint": "^10.1.0", + "babel-jest": "^29.4.3", + "eslint": "^8.35.0", + "eslint-config-prettier": "^8.6.0", + "eslint-config-standard": "^17.0.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-react": "^7.32.2", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-standard": "^5.0.0", + "graphql": "^16.8.0", + "jest": "^29.4.3", + "prettier": "^2.8.4", + "reactotron-core-client": "workspace:*", + "rollup": "^1.1.2", + "rollup-plugin-babel": "^4.3.2", + "rollup-plugin-babel-minify": "^7.0.0", + "rollup-plugin-filesize": "^6.0.1", + "rollup-plugin-node-resolve": "^4.0.0", + "rollup-plugin-resolve": "^0.0.1-predev.1", + "testdouble": "^3.16.8", + "trash-cli": "^5.0.0", + "ts-jest": "^29.0.5", + "typescript": "4.9.5" + }, + "eslintConfig": { + "root": false + } +} diff --git a/lib/reactotron-apollo-client/project.json b/lib/reactotron-apollo-client/project.json new file mode 100644 index 000000000..dffa26c03 --- /dev/null +++ b/lib/reactotron-apollo-client/project.json @@ -0,0 +1,8 @@ +{ + "name": "reactotron-apollo-client", + "targets": { + "version": { + "executor": "@jscutlery/semver:version" + } + } +} diff --git a/lib/reactotron-apollo-client/rollup.config.ts b/lib/reactotron-apollo-client/rollup.config.ts new file mode 100644 index 000000000..424ce623b --- /dev/null +++ b/lib/reactotron-apollo-client/rollup.config.ts @@ -0,0 +1,39 @@ +import resolve from "rollup-plugin-node-resolve" +import babel from "rollup-plugin-babel" +import filesize from "rollup-plugin-filesize" +import minify from "rollup-plugin-babel-minify" + +const pkg = require("./package.json") + +const LIBRARY_NAME = "reactotron-apollo-client" +const GLOBALS = ["@apollo/client", "graphql"] + +export default { + input: "src/reactotron-apollo-client.ts", + output: [ + { + file: pkg.main, + name: LIBRARY_NAME, + format: "umd", + sourcemap: true, + globals: GLOBALS, + }, + { + file: pkg.module, + format: "es", + sourcemap: true, + globals: GLOBALS, + }, + ], + plugins: [ + resolve({ extensions: [".ts"] }), + babel({ extensions: [".ts"], runtimeHelpers: true }), + process.env.NODE_ENV === "production" + ? minify({ + comments: false, + }) + : null, + filesize(), + ], + external: ["@apollo/client", "reactotron-core-client", "graphql"], +} diff --git a/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts b/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts new file mode 100644 index 000000000..bd95d283d --- /dev/null +++ b/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts @@ -0,0 +1,235 @@ +/* eslint-disable no-invalid-this */ +/* eslint-disable func-style */ +import { ApolloClient, ObservableQuery } from "@apollo/client" +import { + ReactotronCore, + Plugin, + assertHasLoggerPlugin, + InferFeatures, + LoggerPlugin, +} from "reactotron-core-client" + +import type { DocumentNode, NormalizedCacheObject } from "@apollo/client" +import { getOperationName } from "@apollo/client/utilities" +import type { QueryInfo } from "@apollo/client/core/QueryInfo" + +import type { ASTNode } from "graphql" +import { print } from "graphql" + +type ApolloClientType = ApolloClient + +type Variables = QueryInfo["variables"] + +type RawQueryData = { + document: ASTNode + variables: Variables + observableQuery: ObservableQuery + lastDiff: any + diff: any + queryId: string +} + +type QueryData = { + id: string + queryString: string + variables: Variables + cachedData: string + name: string | undefined +} + +type MutationData = { + id: string + name: string | null + variables: object + loading: boolean + error: object + body: string | undefined +} + +type Callback = () => any + +type ArrayOfQuery = Array +type ArrayOfMutations = Array + +type ApolloClientState = { + id: number + lastUpdateAt: string + queries: ArrayOfQuery + mutations: ArrayOfMutations + cache: object +} + +type RawMutationBody = { + id: string + name: string | null + body: string + variables: object +} + +type RawQueryBody = { + id: string + name: string | null + cachedData: object +} + +type RawData = { + id: string + lastUpdateAt: Date + queries: ArrayOfQuery + mutations: ArrayOfMutations + cache: Array +} + +type Data = { + id: string + lastUpdateAt: Date + queries: Array + mutations: Array + cache: Array +} + +type BlockType = { + id?: string + operationType?: string + name?: string | null + blocks?: Array<{ + blockType: string + blockLabel: string + blockValue: any + }> +} + +let tick = 0 + +function getTime(): string { + const date = new Date() + return `${date.getHours()}:${date.getMinutes()}` +} + +function extractQueries(client: ApolloClientType): Map { + // @ts-expect-error queryManager is private method + if (!client || !client.queryManager) { + return new Map() + } + // @ts-expect-error queryManager is private method + return client.queryManager.queries +} + +function getQueries(queryMap: Map): ArrayOfQuery { + const queries: ArrayOfQuery = [] + + if (queryMap) { + ;[...queryMap.values()].forEach( + ({ document, variables, observableQuery, diff, lastDiff }, queryId) => { + if (document && observableQuery) { + queries.push({ + queryString: print(document), + variables, + cachedData: diff?.result || lastDiff?.diff?.result, + name: observableQuery?.queryName, + id: queryId?.toString(), + }) + } + } + ) + } + return queries +} + +function getAllQueries(client: ApolloClientType): ArrayOfQuery { + const queryMap = extractQueries(client) + const allQueries = getQueries(queryMap) + return allQueries +} + +type MutationObject = { + mutation: DocumentNode + variables: object + loading: boolean + error: object +} +function getMutationData(allMutations: Record): Array { + return [...Object.keys(allMutations)]?.map((key) => { + const { mutation, variables, loading, error } = allMutations[key] + + return { + id: key, + name: getOperationName(mutation), + variables, + loading, + error, + body: mutation?.loc?.source?.body, + } + }) +} + +function getAllMutations(client: ApolloClientType): ArrayOfMutations { + // @ts-expect-error private method + const allMutations = client.queryManager.mutationStore || {} + + const final = getMutationData(allMutations) + + return final +} + +async function getCurrentState(client: ApolloClientType): Promise { + tick++ + + let currentState: ApolloClientState + + return new Promise((res) => { + setTimeout(() => { + currentState = { + id: tick, + lastUpdateAt: getTime(), + queries: getAllQueries(client), + mutations: getAllMutations(client), + cache: client.cache.extract(true), + } + res(currentState) + }, 0) + }).then(() => { + return currentState + }) +} + +function debounce(func: (...args: any) => any, timeout = 500): () => any { + let timer: NodeJS.Timeout + return (...args) => { + clearTimeout(timer) + timer = setTimeout(() => { + // @ts-expect-error add typings for this + func.apply(this, args) + }, timeout) + } +} + +interface ApolloPluginConfig { + apolloClient: ApolloClient +} + +const apolloPlugin = + (options: ApolloPluginConfig) => + (reactotronClient: Client) => { + const { apolloClient } = options + assertHasLoggerPlugin(reactotronClient) + const reactotron = reactotronClient as unknown as ReactotronCore & + InferFeatures + + return { + onConnect() { + reactotron.log("Apollo Client Connected") + const poll = () => + getCurrentState(apolloClient).then((state) => { + reactotron.display({ + name: "APOLLO CLIENT", + preview: `Apollo client updated at ${state.lastUpdateAt}`, + value: state, + }) + }) + apolloClient.__actionHookForDevTools(debounce(poll)) + }, + } satisfies Plugin + } + +export default apolloPlugin diff --git a/lib/reactotron-apollo-client/tsconfig.json b/lib/reactotron-apollo-client/tsconfig.json new file mode 100644 index 000000000..12a27623a --- /dev/null +++ b/lib/reactotron-apollo-client/tsconfig.json @@ -0,0 +1,24 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "allowJs": false, + "declaration": true, + "declarationDir": "dist/types", + "rootDir": "src", + "emitDeclarationOnly": true, + "emitDecoratorMetadata": true, + "allowSyntheticDefaultImports": true, + "experimentalDecorators": true, + "module": "es2015", + "moduleResolution": "node", + "noImplicitAny": false, + "noImplicitReturns": true, + "noImplicitThis": true, + "noUnusedLocals": true, + "sourceMap": true, + "target": "es5", + "skipLibCheck": true // Temp? + }, + "exclude": ["node_modules"], + "include": ["src"] +} From 325cd838e4bb01255d472abaa50324d1f9fb70c5 Mon Sep 17 00:00:00 2001 From: Frank Calise Date: Sun, 15 Oct 2023 10:13:53 -0400 Subject: [PATCH 02/18] fix(apollo-client): get build working --- lib/reactotron-apollo-client/rollup.config.ts | 14 ++-- .../src/reactotron-apollo-client.ts | 84 ++++++++++--------- 2 files changed, 51 insertions(+), 47 deletions(-) diff --git a/lib/reactotron-apollo-client/rollup.config.ts b/lib/reactotron-apollo-client/rollup.config.ts index 424ce623b..d0ce8b473 100644 --- a/lib/reactotron-apollo-client/rollup.config.ts +++ b/lib/reactotron-apollo-client/rollup.config.ts @@ -1,7 +1,7 @@ import resolve from "rollup-plugin-node-resolve" import babel from "rollup-plugin-babel" import filesize from "rollup-plugin-filesize" -import minify from "rollup-plugin-babel-minify" +// import minify from "rollup-plugin-babel-minify" const pkg = require("./package.json") @@ -28,11 +28,13 @@ export default { plugins: [ resolve({ extensions: [".ts"] }), babel({ extensions: [".ts"], runtimeHelpers: true }), - process.env.NODE_ENV === "production" - ? minify({ - comments: false, - }) - : null, + // TODO fix minification via rollup-plugin-terser? + // rollout-plugin-babel-minify is deprecated and causing build to fail + // process.env.NODE_ENV === "production" + // ? minify({ + // comments: false, + // }) + // : null, filesize(), ], external: ["@apollo/client", "reactotron-core-client", "graphql"], diff --git a/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts b/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts index bd95d283d..8b16b9b64 100644 --- a/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts +++ b/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts @@ -46,7 +46,7 @@ type MutationData = { body: string | undefined } -type Callback = () => any +// type Callback = () => any type ArrayOfQuery = Array type ArrayOfMutations = Array @@ -59,45 +59,46 @@ type ApolloClientState = { cache: object } -type RawMutationBody = { - id: string - name: string | null - body: string - variables: object -} - -type RawQueryBody = { - id: string - name: string | null - cachedData: object -} - -type RawData = { - id: string - lastUpdateAt: Date - queries: ArrayOfQuery - mutations: ArrayOfMutations - cache: Array -} - -type Data = { - id: string - lastUpdateAt: Date - queries: Array - mutations: Array - cache: Array -} - -type BlockType = { - id?: string - operationType?: string - name?: string | null - blocks?: Array<{ - blockType: string - blockLabel: string - blockValue: any - }> -} +// TODO utilize when we do Queries and Mutations +// type RawMutationBody = { +// id: string +// name: string | null +// body: string +// variables: object +// } + +// type RawQueryBody = { +// id: string +// name: string | null +// cachedData: object +// } + +// type RawData = { +// id: string +// lastUpdateAt: Date +// queries: ArrayOfQuery +// mutations: ArrayOfMutations +// cache: Array +// } + +// type Data = { +// id: string +// lastUpdateAt: Date +// queries: Array +// mutations: Array +// cache: Array +// } + +// type BlockType = { +// id?: string +// operationType?: string +// name?: string | null +// blocks?: Array<{ +// blockType: string +// blockLabel: string +// blockValue: any +// }> +// } let tick = 0 @@ -119,6 +120,7 @@ function getQueries(queryMap: Map): ArrayOfQuery { const queries: ArrayOfQuery = [] if (queryMap) { + // @ts-expect-error Type 'IterableIterator' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher ;[...queryMap.values()].forEach( ({ document, variables, observableQuery, diff, lastDiff }, queryId) => { if (document && observableQuery) { @@ -194,7 +196,7 @@ async function getCurrentState(client: ApolloClientType): Promise any, timeout = 500): () => any { - let timer: NodeJS.Timeout + let timer return (...args) => { clearTimeout(timer) timer = setTimeout(() => { From 0c984ca22be0da3ca8d268b199cf64b1c8b90264 Mon Sep 17 00:00:00 2001 From: Frank Calise Date: Sun, 15 Oct 2023 10:33:31 -0400 Subject: [PATCH 03/18] chore: lint fixes --- lib/reactotron-apollo-client/src/reactotron-apollo-client.ts | 4 ++-- lib/reactotron-mst/src/reactotron-mst.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts b/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts index 8b16b9b64..21e4002d7 100644 --- a/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts +++ b/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts @@ -179,7 +179,7 @@ async function getCurrentState(client: ApolloClientType): Promise { + return new Promise((resolve) => { setTimeout(() => { currentState = { id: tick, @@ -188,7 +188,7 @@ async function getCurrentState(client: ApolloClientType): Promise { return currentState diff --git a/lib/reactotron-mst/src/reactotron-mst.ts b/lib/reactotron-mst/src/reactotron-mst.ts index 9eed8dc04..5782e1fd7 100644 --- a/lib/reactotron-mst/src/reactotron-mst.ts +++ b/lib/reactotron-mst/src/reactotron-mst.ts @@ -238,7 +238,7 @@ export function mst(opts: MstPluginOptions = {}) { const path = getPath(call.context) // action related data - const action = { args: args, name: call.name, path } + const action = { args, name: call.name, path } // mst internal data const mstPayload = { From a028397ef606e3712e1fcb169263c809a0230f6f Mon Sep 17 00:00:00 2001 From: Frank Calise Date: Tue, 17 Oct 2023 17:11:56 -0400 Subject: [PATCH 04/18] feat(search): search obj values from display cmd --- .../filterCommands/filterCommands.test.ts | 43 +++++++++++++++++++ .../src/utils/filterCommands/index.ts | 4 +- 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/lib/reactotron-core-ui/src/utils/filterCommands/filterCommands.test.ts b/lib/reactotron-core-ui/src/utils/filterCommands/filterCommands.test.ts index 08bcca1cd..6bf19e865 100644 --- a/lib/reactotron-core-ui/src/utils/filterCommands/filterCommands.test.ts +++ b/lib/reactotron-core-ui/src/utils/filterCommands/filterCommands.test.ts @@ -1,6 +1,31 @@ import filterCommands, { filterSearch, filterHidden } from "./index" import { CommandType } from "reactotron-core-contract" +const EXAMPLE_VALUE_OBJECT = { + id: 1, + lastUpdateAt: "13:44", + queries: [], + mutations: [], + cache: { + "Launch:5eb87cd9ffd86e000604b32aSEARCHCACHE": { + __typename: "Launch", + id: "5eb87cd9ffd86e000604b32a", + mission_name: "FalconSat", + launch_date_unix: 1143239400, + launch_success: null, + upcoming: false, + }, + "Launch:5eb87cdaffd86e000604b32b": { + __typename: "Launch", + id: "5eb87cdaffd86e000604b32b", + mission_name: "DemoSat", + launch_date_unix: 1174439400, + launch_success: null, + upcoming: false, + }, + }, +} + const TEST_COMMANDS = [ { type: "SEARCHTYPE" }, { type: "ADUMMYOBJ", payload: { message: "SEARCHMESSAGE" } }, @@ -12,6 +37,7 @@ const TEST_COMMANDS = [ { type: "ADUMMYOBJ", payload: { request: { url: "SEARCHURL" } } }, { type: "log", payload: { debug: "LOGDEBUG" } }, { type: "client.intro", payload: { connection: "SEARCHCONNECTION" } }, + { type: "display", payload: { value: EXAMPLE_VALUE_OBJECT } }, ] const TESTS = [ @@ -71,6 +97,23 @@ const TESTS = [ search: "connection", result: [{ type: "client.intro", payload: { connection: "SEARCHCONNECTION" } }], }, + { + name: "display => apollo client", + search: "FalconSat", + result: [ + { + type: "display", + payload: { + value: EXAMPLE_VALUE_OBJECT, + }, + }, + ], + }, + { + name: "display => apollo client", + search: "Falcon 9", + result: [], + }, { name: "multiple results", search: "ADUMMYOBJ", diff --git a/lib/reactotron-core-ui/src/utils/filterCommands/index.ts b/lib/reactotron-core-ui/src/utils/filterCommands/index.ts index 004d54ef8..611e2d3fd 100644 --- a/lib/reactotron-core-ui/src/utils/filterCommands/index.ts +++ b/lib/reactotron-core-ui/src/utils/filterCommands/index.ts @@ -24,6 +24,7 @@ const COMMON_MATCHING_PATHS = [ path("payload", "triggerType"), path("payload", "description"), path("payload", "request", "url"), + path("payload", "value"), ] export function filterSearch(commands: any[], search: string) { @@ -34,7 +35,7 @@ export function filterSearch(commands: any[], search: string) { const searchRegex = new RegExp(trimmedSearch.replace(/\s/, "."), "i") const matching = (value: string) => { - if(!value) { + if (!value) { return false } @@ -61,6 +62,7 @@ export function filterSearch(commands: any[], search: string) { ) return true if (command.type === CommandType.ClientIntro && matching("connection")) return true + if (command.type === CommandType.Display && matchingObj(command.payload.value)) return true return false }).length > 0 ) From 9d80011f21c41f3615e61857680fd02c3adb0f80 Mon Sep 17 00:00:00 2001 From: Frank Calise Date: Tue, 17 Oct 2023 17:17:02 -0400 Subject: [PATCH 05/18] feat(app): apollo client ui and routes --- apps/reactotron-app/src/renderer/App.tsx | 8 ++ .../renderer/components/SideBar/Sidebar.tsx | 8 ++ .../src/renderer/pages/apolloClient/Cache.tsx | 118 +++++++++++++++++ .../renderer/pages/apolloClient/Mutations.tsx | 117 +++++++++++++++++ .../renderer/pages/apolloClient/Queries.tsx | 120 ++++++++++++++++++ 5 files changed, 371 insertions(+) create mode 100644 apps/reactotron-app/src/renderer/pages/apolloClient/Cache.tsx create mode 100644 apps/reactotron-app/src/renderer/pages/apolloClient/Mutations.tsx create mode 100644 apps/reactotron-app/src/renderer/pages/apolloClient/Queries.tsx diff --git a/apps/reactotron-app/src/renderer/App.tsx b/apps/reactotron-app/src/renderer/App.tsx index b5778c4b1..3c9c85a32 100644 --- a/apps/reactotron-app/src/renderer/App.tsx +++ b/apps/reactotron-app/src/renderer/App.tsx @@ -15,6 +15,9 @@ import Overlay from "./pages/reactNative/Overlay" import Storybook from "./pages/reactNative/Storybook" import CustomCommands from "./pages/customCommands" import Help from "./pages/help" +import Cache from "./pages/apolloClient/Cache" +import Mutations from "./pages/apolloClient/Mutations" +import Queries from "./pages/apolloClient/Queries" const AppContainer = styled.div` position: absolute; @@ -68,6 +71,11 @@ function App() { {/* Custom Commands */} } /> + {/* TODO: Load custom UI pages from installed plugins */} + } /> + } /> + } /> + {/* Help */} } /> diff --git a/apps/reactotron-app/src/renderer/components/SideBar/Sidebar.tsx b/apps/reactotron-app/src/renderer/components/SideBar/Sidebar.tsx index 2ff34b503..71dc61123 100644 --- a/apps/reactotron-app/src/renderer/components/SideBar/Sidebar.tsx +++ b/apps/reactotron-app/src/renderer/components/SideBar/Sidebar.tsx @@ -9,6 +9,7 @@ import { MdMobiledataOff, } from "react-icons/md" import { FaMagic } from "react-icons/fa" +import { SiApollographql } from "react-icons/si" import styled from "styled-components" import SideBarButton from "../SideBarButton" @@ -72,6 +73,13 @@ function SideBar({ isOpen, serverStatus }: { isOpen: boolean; serverStatus: Serv /> + + props.theme.warning}; + background-color: ${(props) => props.theme.backgroundDarker}; + border-top: 1px solid ${(props) => props.theme.chromeLine}; + align-items: center; + padding: 0 20px; +` +const WarningDescription = styled.div` + margin-left: 20px; +` + +function Cache() { + return ( + +
{}, + }, + { + text: "Queries", + icon: HiDocumentSearch, + isActive: false, + onClick: () => { + // TODO: Couldn't get react-router-dom to do it for me so I forced it. + window.location.hash = "#/apolloClient/queries" + }, + }, + { + text: "Mutations", + icon: HiOutlinePencilAlt, + isActive: false, + onClick: () => { + // TODO: Couldn't get react-router-dom to do it for me so I forced it. + window.location.hash = "#/apolloClient/mutations" + }, + }, + ]} + // actions={[ + // { + // tip: "Search", + // icon: MdSearch, + // onClick: () => { + // toggleSearch() + // }, + // }, + // { + // tip: "Filter", + // icon: MdFilterList, + // onClick: () => { + // openFilter() + // }, + // }, + // { + // tip: "Reverse Order", + // icon: MdSwapVert, + // onClick: () => { + // toggleReverse() + // }, + // }, + // { + // tip: "Clear", + // icon: MdDeleteSweep, + // onClick: () => { + // clearSelectedConnectionCommands() + // }, + // }, + // ]} + /> + + + TODO (utilize state subscription for right now) + + + + This is preview feature. + + + + ) +} + +export default Cache diff --git a/apps/reactotron-app/src/renderer/pages/apolloClient/Mutations.tsx b/apps/reactotron-app/src/renderer/pages/apolloClient/Mutations.tsx new file mode 100644 index 000000000..fc758610d --- /dev/null +++ b/apps/reactotron-app/src/renderer/pages/apolloClient/Mutations.tsx @@ -0,0 +1,117 @@ +import React from "react" +import styled from "styled-components" +import { Header } from "reactotron-core-ui" +import { MdWarning } from "react-icons/md" +import { HiDocumentSearch, HiOutlinePencilAlt } from "react-icons/hi" +import { TbDatabaseDollar } from "react-icons/tb" +import { Title } from "../reactNative/components/Shared" + +const Container = styled.div` + display: flex; + flex-direction: column; + width: 100%; +` + +const StorybookContainer = styled.div` + display: flex; + flex-direction: column; + height: 100%; +` + +const TopSection = styled.div` + flex: 1; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +` + +const WarningContainer = styled.div` + display: flex; + color: ${(props) => props.theme.warning}; + background-color: ${(props) => props.theme.backgroundDarker}; + border-top: 1px solid ${(props) => props.theme.chromeLine}; + align-items: center; + padding: 0 20px; +` +const WarningDescription = styled.div` + margin-left: 20px; +` + +function Mutations() { + return ( + +
{ + // TODO: Couldn't get react-router-dom to do it for me so I forced it. + window.location.hash = "#/apolloClient/cache" + }, + }, + { + text: "Queries", + icon: HiDocumentSearch, + isActive: false, + onClick: () => { + // TODO: Couldn't get react-router-dom to do it for me so I forced it. + window.location.hash = "#/apolloClient/queries" + }, + }, + { + text: "Mutations", + icon: HiOutlinePencilAlt, + isActive: true, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onClick: () => {}, + }, + ]} + // actions={[ + // { + // tip: "Search", + // icon: MdSearch, + // onClick: () => { + // toggleSearch() + // }, + // }, + // { + // tip: "Filter", + // icon: MdFilterList, + // onClick: () => { + // openFilter() + // }, + // }, + // { + // tip: "Reverse Order", + // icon: MdSwapVert, + // onClick: () => { + // toggleReverse() + // }, + // }, + // { + // tip: "Clear", + // icon: MdDeleteSweep, + // onClick: () => { + // clearSelectedConnectionCommands() + // }, + // }, + // ]} + /> + + + TODO + + + + This is preview feature. + + + + ) +} + +export default Mutations diff --git a/apps/reactotron-app/src/renderer/pages/apolloClient/Queries.tsx b/apps/reactotron-app/src/renderer/pages/apolloClient/Queries.tsx new file mode 100644 index 000000000..c5a55ceac --- /dev/null +++ b/apps/reactotron-app/src/renderer/pages/apolloClient/Queries.tsx @@ -0,0 +1,120 @@ +import React from "react" +import styled from "styled-components" +import { Header } from "reactotron-core-ui" +import { MdWarning } from "react-icons/md" +import { HiDocumentSearch, HiOutlinePencilAlt } from "react-icons/hi" +import { TbDatabaseDollar } from "react-icons/tb" +import { Title } from "../reactNative/components/Shared" + +const Container = styled.div` + display: flex; + flex-direction: column; + width: 100%; +` + +const StorybookContainer = styled.div` + display: flex; + flex-direction: column; + height: 100%; +` + +const TopSection = styled.div` + flex: 1; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +` + +const WarningContainer = styled.div` + display: flex; + color: ${(props) => props.theme.warning}; + background-color: ${(props) => props.theme.backgroundDarker}; + border-top: 1px solid ${(props) => props.theme.chromeLine}; + align-items: center; + padding: 0 20px; +` +const WarningDescription = styled.div` + margin-left: 20px; +` + +function Queries() { + return ( + +
{ + // TODO: Couldn't get react-router-dom to do it for me so I forced it. + window.location.hash = "#/apolloClient/cache" + }, + }, + { + text: "Queries", + icon: HiDocumentSearch, + isActive: true, + + onClick: () => { + // TODO: Couldn't get react-router-dom to do it for me so I forced it. + window.location.hash = "#/apolloClient/queries" + }, + }, + { + text: "Mutations", + icon: HiOutlinePencilAlt, + isActive: false, + onClick: () => { + // TODO: Couldn't get react-router-dom to do it for me so I forced it. + window.location.hash = "#/apolloClient/mutations" + }, + }, + ]} + // actions={[ + // { + // tip: "Search", + // icon: MdSearch, + // onClick: () => { + // toggleSearch() + // }, + // }, + // { + // tip: "Filter", + // icon: MdFilterList, + // onClick: () => { + // openFilter() + // }, + // }, + // { + // tip: "Reverse Order", + // icon: MdSwapVert, + // onClick: () => { + // toggleReverse() + // }, + // }, + // { + // tip: "Clear", + // icon: MdDeleteSweep, + // onClick: () => { + // clearSelectedConnectionCommands() + // }, + // }, + // ]} + /> + + + TODO + + + + This is preview feature. + + + + ) +} + +export default Queries From 4a31bd4ace69e60491842aa73d34170c605a514d Mon Sep 17 00:00:00 2001 From: Frank Calise Date: Tue, 17 Oct 2023 17:17:26 -0400 Subject: [PATCH 06/18] feat(apollo-client): cache subscriptions --- .../src/helpers/pathObject.ts | 19 +++ .../src/reactotron-apollo-client.ts | 111 ++++++++++++++++-- 2 files changed, 123 insertions(+), 7 deletions(-) create mode 100644 lib/reactotron-apollo-client/src/helpers/pathObject.ts diff --git a/lib/reactotron-apollo-client/src/helpers/pathObject.ts b/lib/reactotron-apollo-client/src/helpers/pathObject.ts new file mode 100644 index 000000000..d998d6074 --- /dev/null +++ b/lib/reactotron-apollo-client/src/helpers/pathObject.ts @@ -0,0 +1,19 @@ +export default function pathObject(path: string, obj: any) { + if (!path) return obj + + const splitPaths = path.split(".") + + let pathedObj = obj + + for (let i = 0; i < splitPaths.length; i++) { + const curPath = splitPaths[i] + pathedObj = pathedObj[curPath] + + if (i < splitPaths.length - 1 && typeof pathedObj !== "object") { + pathedObj = undefined + break + } + } + + return pathedObj +} diff --git a/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts b/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts index 21e4002d7..865039665 100644 --- a/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts +++ b/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts @@ -7,8 +7,10 @@ import { assertHasLoggerPlugin, InferFeatures, LoggerPlugin, + assertHasStateResponsePlugin, + StateResponsePlugin, } from "reactotron-core-client" - +import type { Command } from "reactotron-core-contract" import type { DocumentNode, NormalizedCacheObject } from "@apollo/client" import { getOperationName } from "@apollo/client/utilities" import type { QueryInfo } from "@apollo/client/core/QueryInfo" @@ -16,6 +18,9 @@ import type { QueryInfo } from "@apollo/client/core/QueryInfo" import type { ASTNode } from "graphql" import { print } from "graphql" +import { flatten, uniq } from "ramda" +import pathObject from "./helpers/pathObject" + type ApolloClientType = ApolloClient type Variables = QueryInfo["variables"] @@ -206,31 +211,123 @@ function debounce(func: (...args: any) => any, timeout = 500): () => any { } } -interface ApolloPluginConfig { +export interface ApolloPluginConfig { apolloClient: ApolloClient } -const apolloPlugin = +export const apolloPlugin = (options: ApolloPluginConfig) => (reactotronClient: Client) => { const { apolloClient } = options assertHasLoggerPlugin(reactotronClient) - const reactotron = reactotronClient as unknown as ReactotronCore & - InferFeatures + assertHasStateResponsePlugin(reactotronClient) + const reactotron = reactotronClient as Client & + InferFeatures & + InferFeatures + + // --- Plugin-scoped variables --------------------------------- + + // hang on to the apollo state + let apolloData = { cache: {}, queries: {}, mutations: {} } + + // a list of subscriptions the client is subscribing to + let subscriptions: string[] = [] + + function subscribe(command: Command<"state.values.subscribe">) { + const paths: string[] = (command && command.payload && command.payload.paths) || [] + + if (paths) { + // TODO ditch ramda + subscriptions = uniq(flatten(paths)) + } + + sendSubscriptions() + } + + function getChanges() { + // TODO also check if cache state is empty + if (!reactotron) return [] + + const changes = [] + + const state = apolloData.cache + + subscriptions.forEach((path) => { + let cleanedPath = path + let starredPath = false + + if (path && path.endsWith("*")) { + // Handle the star! + starredPath = true + cleanedPath = path.substring(0, path.length - 2) + } + + const values = pathObject(cleanedPath, state) + + if (starredPath && cleanedPath && values) { + changes.push( + ...Object.entries(values).map((val) => ({ + path: `${cleanedPath}.${val[0]}`, + value: val[1], + })) + ) + } else { + changes.push({ path: cleanedPath, value: state[cleanedPath] }) + } + }) + + return changes + } + + function sendSubscriptions() { + const changes = getChanges() + reactotron.stateValuesChange(changes) + } + + // --- Reactotron Hooks --------------------------------- + + // maps inbound commands to functions to run + // TODO clear cache command? + const COMMAND_MAP = { + "state.values.subscribe": subscribe, + } satisfies { [name: string]: (command: Command) => void } + + /** + * Fires when we receive a command from the reactotron app. + */ + function onCommand(command: Command) { + // lookup the command and execute + const handler = COMMAND_MAP[command && command.type] + handler && handler(command) + } + + // --- Reactotron plugin interface --------------------------------- return { + // Fires when we receive a command from the Reactotron app. + onCommand, + onConnect() { - reactotron.log("Apollo Client Connected") + reactotron.display({ name: "APOLLO CLIENT", preview: "Connected" }) + const poll = () => getCurrentState(apolloClient).then((state) => { + apolloData = state + + sendSubscriptions() + reactotron.display({ name: "APOLLO CLIENT", - preview: `Apollo client updated at ${state.lastUpdateAt}`, + preview: `State Updated`, value: state, }) }) apolloClient.__actionHookForDevTools(debounce(poll)) }, + onDisconnect() { + // Does this do anything? How do we clean up? + apolloClient.__actionHookForDevTools(null) + }, } satisfies Plugin } From 1f278a48d7bb9eaabdca7ee7ea1c3671dfe5a590 Mon Sep 17 00:00:00 2001 From: Mark Rickert Date: Wed, 14 Feb 2024 09:56:16 -0700 Subject: [PATCH 07/18] Add apollo to the reactotron example app. --- apps/example-app/app/app.tsx | 30 +- .../app/devtools/ReactotronConfig.ts | 5 +- .../app/navigators/AppNavigator.tsx | 2 + apps/example-app/app/screens/ApolloScreen.tsx | 99 + .../app/screens/ErrorGeneratorScreen.tsx | 4 +- .../app/screens/MobxStateTreeScreen.tsx | 2 +- apps/example-app/app/screens/ReduxScreen.tsx | 6 +- .../example-app/app/screens/WelcomeScreen.tsx | 6 + apps/example-app/app/screens/index.ts | 1 + apps/example-app/app/stores/apollo/index.tsx | 9 + .../{ => stores}/mobxStateTree/LogoStore.ts | 0 .../{ => stores}/mobxStateTree/RepoStore.ts | 0 .../{ => stores}/mobxStateTree/RootStore.ts | 0 .../mobxStateTree/helpers/getRootStore.ts | 0 .../mobxStateTree/helpers/setupRootStore.ts | 2 +- .../mobxStateTree/helpers/useStores.ts | 0 .../app/{ => stores}/mobxStateTree/index.ts | 0 .../app/{ => stores}/redux/errorSlice.ts | 0 .../app/{ => stores}/redux/index.ts | 8 +- .../app/{ => stores}/redux/logoSlice.ts | 0 .../app/{ => stores}/redux/repoSlice.ts | 0 apps/example-app/package.json | 3 + yarn.lock | 1709 ++++++++++++++++- 23 files changed, 1803 insertions(+), 83 deletions(-) create mode 100644 apps/example-app/app/screens/ApolloScreen.tsx create mode 100644 apps/example-app/app/stores/apollo/index.tsx rename apps/example-app/app/{ => stores}/mobxStateTree/LogoStore.ts (100%) rename apps/example-app/app/{ => stores}/mobxStateTree/RepoStore.ts (100%) rename apps/example-app/app/{ => stores}/mobxStateTree/RootStore.ts (100%) rename apps/example-app/app/{ => stores}/mobxStateTree/helpers/getRootStore.ts (100%) rename apps/example-app/app/{ => stores}/mobxStateTree/helpers/setupRootStore.ts (97%) rename apps/example-app/app/{ => stores}/mobxStateTree/helpers/useStores.ts (100%) rename apps/example-app/app/{ => stores}/mobxStateTree/index.ts (100%) rename apps/example-app/app/{ => stores}/redux/errorSlice.ts (100%) rename apps/example-app/app/{ => stores}/redux/index.ts (74%) rename apps/example-app/app/{ => stores}/redux/logoSlice.ts (100%) rename apps/example-app/app/{ => stores}/redux/repoSlice.ts (100%) diff --git a/apps/example-app/app/app.tsx b/apps/example-app/app/app.tsx index 44901200d..07b81bf68 100644 --- a/apps/example-app/app/app.tsx +++ b/apps/example-app/app/app.tsx @@ -22,7 +22,7 @@ import { useFonts } from "expo-font" import React from "react" import { initialWindowMetrics, SafeAreaProvider } from "react-native-safe-area-context" import * as Linking from "expo-linking" -import { useInitialRootStore } from "app/mobxStateTree" +import { useInitialRootStore } from "app/stores/mobxStateTree" import { AppNavigator, useNavigationPersistence } from "app/navigators" import { ErrorBoundary } from "app/screens/ErrorScreen/ErrorBoundary" import * as storage from "app/utils/storage" @@ -30,8 +30,10 @@ import { customFontsToLoad } from "app/theme" import Config from "app/config" import { GestureHandlerRootView } from "react-native-gesture-handler" import { StatusBar, ViewStyle } from "react-native" -import { store } from "app/redux" +import { store } from "app/stores/redux" import { Provider as ReduxProvider } from "react-redux" +import { ApolloProvider } from "@apollo/client" +import { client as apolloClient } from "app/stores/apollo" export const NAVIGATION_PERSISTENCE_KEY = "NAVIGATION_STATE" @@ -101,17 +103,19 @@ function App(props: AppProps) { // otherwise, we're ready to render the app return ( - - - - - - - + + + + + + + + + ) } diff --git a/apps/example-app/app/devtools/ReactotronConfig.ts b/apps/example-app/app/devtools/ReactotronConfig.ts index e8f931d60..ee4f222bc 100644 --- a/apps/example-app/app/devtools/ReactotronConfig.ts +++ b/apps/example-app/app/devtools/ReactotronConfig.ts @@ -10,11 +10,13 @@ import { ArgType } from "reactotron-core-client" import { mst } from "reactotron-mst" import apisaucePlugin from "reactotron-apisauce" import { reactotronRedux } from "reactotron-redux" +import apolloPlugin from "reactotron-apollo-client" import { clear } from "app/utils/storage" import { goBack, resetRoot, navigate } from "app/navigators/navigationUtilities" import { Reactotron } from "./ReactotronClient" +import { client } from "../stores/apollo" // <--- update this location const reactotron = Reactotron.configure({ name: require("../../package.json").name, @@ -29,8 +31,9 @@ const reactotron = Reactotron.configure({ mst({ /** ignore some chatty `mobx-state-tree` actions */ filter: (event) => /postProcessSnapshot|@APPLY_SNAPSHOT/.test(event.name) === false, - }), + }) ) + .use(apolloPlugin({ apolloClient: client })) if (Platform.OS !== "web") { reactotron.setAsyncStorageHandler?.(AsyncStorage) diff --git a/apps/example-app/app/navigators/AppNavigator.tsx b/apps/example-app/app/navigators/AppNavigator.tsx index b72d59ced..4c7167e04 100644 --- a/apps/example-app/app/navigators/AppNavigator.tsx +++ b/apps/example-app/app/navigators/AppNavigator.tsx @@ -37,6 +37,7 @@ export type AppStackParamList = { MobxStateTree: undefined AsyncStorage: undefined Redux: undefined + Apollo: undefined } /** @@ -103,6 +104,7 @@ const AppStack = function AppStack() { options={{ title: "Async Storage" }} /> + ) diff --git a/apps/example-app/app/screens/ApolloScreen.tsx b/apps/example-app/app/screens/ApolloScreen.tsx new file mode 100644 index 000000000..cb1b5f57f --- /dev/null +++ b/apps/example-app/app/screens/ApolloScreen.tsx @@ -0,0 +1,99 @@ +import React from "react" +import { FlatList, TextStyle, View, ViewStyle } from "react-native" +import { ListItem, Text } from "app/components" +import { AppStackScreenProps } from "app/navigators" +import { colors, spacing } from "app/theme" +import { useSafeAreaInsetsStyle } from "app/utils/useSafeAreaInsetsStyle" +import { gql, useQuery } from "@apollo/client" + +const CHAPTERS_QUERY = gql` + query Chapters { + chapters { + id + number + title + } + } +` + +const ChapterItem = ({ + chapter, + onPress, +}: { + chapter: { id: number; number: number; title: string } + onPress?: () => void +}) => { + const { number, title } = chapter + let header, subheader + + if (number) { + header = `Chapter ${number}` + subheader = ` - ${title}` + } else { + header = title + subheader = "" + } + + return ( + + ) +} + +interface ApolloScreenProps extends AppStackScreenProps<"Apollo"> {} + +export const ApolloScreen: React.FC = function ApolloScreen() { + const { data, loading } = useQuery(CHAPTERS_QUERY) + + const $bottomContainerInsets = useSafeAreaInsetsStyle(["bottom"]) + + return ( + ( + navigation.navigate("Chapter", { chapter: item })} + /> + )} + ListHeaderComponent={() => { + return ( + + + + + + ) + }} + keyExtractor={(chapter) => chapter.id.toString()} + /> + ) +} + +const $container: ViewStyle = { + flex: 1, + backgroundColor: colors.background, +} + +const $text: TextStyle = { + color: colors.text, +} +const $subheading: TextStyle = { + ...$text, + margin: spacing.sm, +} + +const $bottomBorder: ViewStyle = { + borderBottomWidth: 1, + borderBottomColor: colors.text, + marginHorizontal: spacing.sm, +} diff --git a/apps/example-app/app/screens/ErrorGeneratorScreen.tsx b/apps/example-app/app/screens/ErrorGeneratorScreen.tsx index 95440e0ae..3df6f456c 100644 --- a/apps/example-app/app/screens/ErrorGeneratorScreen.tsx +++ b/apps/example-app/app/screens/ErrorGeneratorScreen.tsx @@ -4,8 +4,8 @@ import { useDispatch } from "react-redux" import { Button, Text } from "app/components" import type { AppStackScreenProps } from "app/navigators" import { colors, spacing } from "app/theme" -import type { AppDispatch } from "app/redux" -import { throwAnError, throwErrorAsync } from "app/redux/errorSlice" +import type { AppDispatch } from "app/stores/redux" +import { throwAnError, throwErrorAsync } from "app/stores/redux/errorSlice" import { useSafeAreaInsetsStyle } from "app/utils/useSafeAreaInsetsStyle" interface ErrorGeneratorScreenProps extends AppStackScreenProps<"ErrorGenerator"> {} diff --git a/apps/example-app/app/screens/MobxStateTreeScreen.tsx b/apps/example-app/app/screens/MobxStateTreeScreen.tsx index 2b44d3fe7..3a6bf0ec9 100644 --- a/apps/example-app/app/screens/MobxStateTreeScreen.tsx +++ b/apps/example-app/app/screens/MobxStateTreeScreen.tsx @@ -4,7 +4,7 @@ import { ScrollView, TextStyle, View, ViewStyle } from "react-native" import { Button, Text } from "app/components" import { AppStackScreenProps } from "app/navigators" import { colors, spacing } from "app/theme" -import { useStores } from "app/mobxStateTree" +import { useStores } from "app/stores/mobxStateTree" import { Repo } from "app/components/Repo" import { useSafeAreaInsetsStyle } from "app/utils/useSafeAreaInsetsStyle" diff --git a/apps/example-app/app/screens/ReduxScreen.tsx b/apps/example-app/app/screens/ReduxScreen.tsx index 628103caf..1dd48b6ed 100644 --- a/apps/example-app/app/screens/ReduxScreen.tsx +++ b/apps/example-app/app/screens/ReduxScreen.tsx @@ -5,9 +5,9 @@ import { Button, Text } from "app/components" import { Repo } from "app/components/Repo" import { AppStackScreenProps } from "app/navigators" import { colors, spacing } from "app/theme" -import type { AppDispatch, RootState } from "app/redux" -import { fetchAsync, reset as repoReset } from "app/redux/repoSlice" -import { changeSize, changeSpeed, reset as logoReset } from "app/redux/logoSlice" +import type { AppDispatch, RootState } from "app/stores/redux" +import { fetchAsync, reset as repoReset } from "app/stores/redux/repoSlice" +import { changeSize, changeSpeed, reset as logoReset } from "app/stores/redux/logoSlice" import { useSafeAreaInsetsStyle } from "app/utils/useSafeAreaInsetsStyle" interface ReduxScreenProps extends AppStackScreenProps<"Redux"> {} diff --git a/apps/example-app/app/screens/WelcomeScreen.tsx b/apps/example-app/app/screens/WelcomeScreen.tsx index d6219da14..e9ad76c3c 100644 --- a/apps/example-app/app/screens/WelcomeScreen.tsx +++ b/apps/example-app/app/screens/WelcomeScreen.tsx @@ -72,6 +72,12 @@ export const WelcomeScreen: React.FC = function WelcomeScree navigation.navigate("Redux") }} /> + { + navigation.navigate("Apollo") + }} + /> diff --git a/apps/example-app/app/screens/index.ts b/apps/example-app/app/screens/index.ts index f9bdc3c61..035095a5b 100644 --- a/apps/example-app/app/screens/index.ts +++ b/apps/example-app/app/screens/index.ts @@ -7,6 +7,7 @@ export * from "./MobxStateTreeScreen" export * from "./ReduxScreen" export * from "./ErrorGeneratorScreen" export * from "./AsyncStorageScreen" +export * from "./ApolloScreen" export * from "./ErrorScreen/ErrorBoundary" // export other screens here diff --git a/apps/example-app/app/stores/apollo/index.tsx b/apps/example-app/app/stores/apollo/index.tsx new file mode 100644 index 000000000..07c89abd5 --- /dev/null +++ b/apps/example-app/app/stores/apollo/index.tsx @@ -0,0 +1,9 @@ +import { ApolloClient, InMemoryCache } from "@apollo/client" + +const cache = new InMemoryCache() + +export const client = new ApolloClient({ + uri: "https://api.graphql.guide/graphql", + cache, + defaultOptions: { watchQuery: { fetchPolicy: "cache-and-network" } }, +}) diff --git a/apps/example-app/app/mobxStateTree/LogoStore.ts b/apps/example-app/app/stores/mobxStateTree/LogoStore.ts similarity index 100% rename from apps/example-app/app/mobxStateTree/LogoStore.ts rename to apps/example-app/app/stores/mobxStateTree/LogoStore.ts diff --git a/apps/example-app/app/mobxStateTree/RepoStore.ts b/apps/example-app/app/stores/mobxStateTree/RepoStore.ts similarity index 100% rename from apps/example-app/app/mobxStateTree/RepoStore.ts rename to apps/example-app/app/stores/mobxStateTree/RepoStore.ts diff --git a/apps/example-app/app/mobxStateTree/RootStore.ts b/apps/example-app/app/stores/mobxStateTree/RootStore.ts similarity index 100% rename from apps/example-app/app/mobxStateTree/RootStore.ts rename to apps/example-app/app/stores/mobxStateTree/RootStore.ts diff --git a/apps/example-app/app/mobxStateTree/helpers/getRootStore.ts b/apps/example-app/app/stores/mobxStateTree/helpers/getRootStore.ts similarity index 100% rename from apps/example-app/app/mobxStateTree/helpers/getRootStore.ts rename to apps/example-app/app/stores/mobxStateTree/helpers/getRootStore.ts diff --git a/apps/example-app/app/mobxStateTree/helpers/setupRootStore.ts b/apps/example-app/app/stores/mobxStateTree/helpers/setupRootStore.ts similarity index 97% rename from apps/example-app/app/mobxStateTree/helpers/setupRootStore.ts rename to apps/example-app/app/stores/mobxStateTree/helpers/setupRootStore.ts index aea5d36a0..dd3bded63 100644 --- a/apps/example-app/app/mobxStateTree/helpers/setupRootStore.ts +++ b/apps/example-app/app/stores/mobxStateTree/helpers/setupRootStore.ts @@ -11,7 +11,7 @@ */ import { applySnapshot, IDisposer, onSnapshot } from "mobx-state-tree" import { RootStore, RootStoreSnapshot } from "../RootStore" -import * as storage from "../../utils/storage" +import * as storage from "app/utils/storage" /** * The key we'll be saving our state as within async storage. diff --git a/apps/example-app/app/mobxStateTree/helpers/useStores.ts b/apps/example-app/app/stores/mobxStateTree/helpers/useStores.ts similarity index 100% rename from apps/example-app/app/mobxStateTree/helpers/useStores.ts rename to apps/example-app/app/stores/mobxStateTree/helpers/useStores.ts diff --git a/apps/example-app/app/mobxStateTree/index.ts b/apps/example-app/app/stores/mobxStateTree/index.ts similarity index 100% rename from apps/example-app/app/mobxStateTree/index.ts rename to apps/example-app/app/stores/mobxStateTree/index.ts diff --git a/apps/example-app/app/redux/errorSlice.ts b/apps/example-app/app/stores/redux/errorSlice.ts similarity index 100% rename from apps/example-app/app/redux/errorSlice.ts rename to apps/example-app/app/stores/redux/errorSlice.ts diff --git a/apps/example-app/app/redux/index.ts b/apps/example-app/app/stores/redux/index.ts similarity index 74% rename from apps/example-app/app/redux/index.ts rename to apps/example-app/app/stores/redux/index.ts index 4a83c83d2..5ab9e7419 100644 --- a/apps/example-app/app/redux/index.ts +++ b/apps/example-app/app/stores/redux/index.ts @@ -1,12 +1,12 @@ import { configureStore } from "@reduxjs/toolkit" import type { GetDefaultEnhancers } from "@reduxjs/toolkit/dist/getDefaultEnhancers" -import logoReducer from "../redux/logoSlice" -import repoReducer from "../redux/repoSlice" -import errorReducer from "../redux/errorSlice" +import logoReducer from "./logoSlice" +import repoReducer from "./repoSlice" +import errorReducer from "./errorSlice" const createEnhancers = (getDefaultEnhancers: GetDefaultEnhancers) => { if (__DEV__) { - const reactotron = require("../devtools/ReactotronConfig").default + const reactotron = require("../../devtools/ReactotronConfig").default return getDefaultEnhancers().concat(reactotron.createEnhancer()) } else { return getDefaultEnhancers() diff --git a/apps/example-app/app/redux/logoSlice.ts b/apps/example-app/app/stores/redux/logoSlice.ts similarity index 100% rename from apps/example-app/app/redux/logoSlice.ts rename to apps/example-app/app/stores/redux/logoSlice.ts diff --git a/apps/example-app/app/redux/repoSlice.ts b/apps/example-app/app/stores/redux/repoSlice.ts similarity index 100% rename from apps/example-app/app/redux/repoSlice.ts rename to apps/example-app/app/stores/redux/repoSlice.ts diff --git a/apps/example-app/package.json b/apps/example-app/package.json index 0273c3fa6..5c9fd836f 100644 --- a/apps/example-app/package.json +++ b/apps/example-app/package.json @@ -33,6 +33,7 @@ "prebuild": "npx expo prebuild" }, "dependencies": { + "@apollo/client": "^3.9.4", "@expo-google-fonts/space-grotesk": "^0.2.2", "@react-native-async-storage/async-storage": "1.18.2", "@react-navigation/native": "^6.0.2", @@ -49,6 +50,7 @@ "expo-localization": "~14.3.0", "expo-splash-screen": "~0.20.4", "expo-status-bar": "~1.6.0", + "graphql": "^16.8.1", "i18n-js": "3.9.2", "mobx": "6.10.2", "mobx-react-lite": "4.0.5", @@ -98,6 +100,7 @@ "postinstall-prepare": "1.0.1", "prettier": "2.8.8", "react-test-renderer": "18.2.0", + "reactotron-apollo-client": "workspace:*", "reactotron-core-client": "workspace:*", "reactotron-mst": "workspace:*", "reactotron-react-js": "workspace:*", diff --git a/yarn.lock b/yarn.lock index 667cafc23..caa636897 100644 --- a/yarn.lock +++ b/yarn.lock @@ -50,6 +50,43 @@ __metadata: languageName: node linkType: hard +"@apollo/client@npm:^3.8.3, @apollo/client@npm:^3.9.4": + version: 3.9.4 + resolution: "@apollo/client@npm:3.9.4" + dependencies: + "@graphql-typed-document-node/core": "npm:^3.1.1" + "@wry/caches": "npm:^1.0.0" + "@wry/equality": "npm:^0.5.6" + "@wry/trie": "npm:^0.5.0" + graphql-tag: "npm:^2.12.6" + hoist-non-react-statics: "npm:^3.3.2" + optimism: "npm:^0.18.0" + prop-types: "npm:^15.7.2" + rehackt: "npm:0.0.4" + response-iterator: "npm:^0.2.6" + symbol-observable: "npm:^4.0.0" + ts-invariant: "npm:^0.10.3" + tslib: "npm:^2.3.0" + zen-observable-ts: "npm:^1.2.5" + peerDependencies: + graphql: ^15.0.0 || ^16.0.0 + graphql-ws: ^5.5.5 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + subscriptions-transport-ws: ^0.9.0 || ^0.11.0 + peerDependenciesMeta: + graphql-ws: + optional: true + react: + optional: true + react-dom: + optional: true + subscriptions-transport-ws: + optional: true + checksum: 0654342fc67f94b598e83e940f1c295e97afb387c308c7d07703436903d7e056990fe8cb2105df1e3f6eecf5a85779e657787dcf89f08aee90a72931352a28fa + languageName: node + linkType: hard + "@babel/code-frame@npm:7.10.4, @babel/code-frame@npm:~7.10.4": version: 7.10.4 resolution: "@babel/code-frame@npm:7.10.4" @@ -78,6 +115,16 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.24.1, @babel/code-frame@npm:^7.24.2": + version: 7.24.2 + resolution: "@babel/code-frame@npm:7.24.2" + dependencies: + "@babel/highlight": ^7.24.2 + picocolors: ^1.0.0 + checksum: 70e867340cfe09ca5488b2f36372c45cabf43c79a5b6426e6df5ef0611ff5dfa75a57dda841895693de6008f32c21a7c97027a8c7bcabd63a7d17416cbead6f8 + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": version: 7.23.5 resolution: "@babel/compat-data@npm:7.23.5" @@ -108,6 +155,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.21.0": + version: 7.24.3 + resolution: "@babel/core@npm:7.24.3" + dependencies: + "@ampproject/remapping": ^2.2.0 + "@babel/code-frame": ^7.24.2 + "@babel/generator": ^7.24.1 + "@babel/helper-compilation-targets": ^7.23.6 + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helpers": ^7.24.1 + "@babel/parser": ^7.24.1 + "@babel/template": ^7.24.0 + "@babel/traverse": ^7.24.1 + "@babel/types": ^7.24.0 + convert-source-map: ^2.0.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.3 + semver: ^6.3.1 + checksum: 1a33460794f4122cf255b656f4d6586913f41078a1afdf1bcf0365ddbd99c1ddb68f904062f9079445ab26b507c36bc297055192bc26e5c8e6e3def42195f9ab + languageName: node + linkType: hard + "@babel/eslint-parser@npm:^7.22.15": version: 7.23.3 resolution: "@babel/eslint-parser@npm:7.23.3" @@ -134,6 +204,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/generator@npm:7.24.1" + dependencies: + "@babel/types": ^7.24.0 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + jsesc: ^2.5.1 + checksum: 98c6ce5ec7a1cba2bdf35cdf607273b90cf7cf82bbe75cd0227363fb84d7e1bd8efa74f40247d5900c8c009123f10132ad209a05283757698de918278c3c6700 + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" @@ -227,6 +309,21 @@ __metadata: languageName: node linkType: hard +"@babel/helper-define-polyfill-provider@npm:^0.6.1": + version: 0.6.1 + resolution: "@babel/helper-define-polyfill-provider@npm:0.6.1" + dependencies: + "@babel/helper-compilation-targets": ^7.22.6 + "@babel/helper-plugin-utils": ^7.22.5 + debug: ^4.1.1 + lodash.debounce: ^4.0.8 + resolve: ^1.14.2 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: b45deb37ce1342d862422e81a3d25ff55f9c7ca52fe303405641e2add8db754091aaaa2119047a0f0b85072221fbddaa92adf53104274661d2795783b56bea2c + languageName: node + linkType: hard + "@babel/helper-environment-visitor@npm:^7.18.9, @babel/helper-environment-visitor@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-environment-visitor@npm:7.22.20" @@ -408,6 +505,17 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/helpers@npm:7.24.1" + dependencies: + "@babel/template": ^7.24.0 + "@babel/traverse": ^7.24.1 + "@babel/types": ^7.24.0 + checksum: 0643b8ccf3358682303aea65f0798e482b2c3642040d32ffe130a245f4a46d0d23fe575a5e06e3cda4e8ec4af89d52b94ff1c444a74465d47ccc27da6ddbbb9f + languageName: node + linkType: hard + "@babel/highlight@npm:^7.0.0, @babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.23.4": version: 7.23.4 resolution: "@babel/highlight@npm:7.23.4" @@ -419,6 +527,18 @@ __metadata: languageName: node linkType: hard +"@babel/highlight@npm:^7.24.2": + version: 7.24.2 + resolution: "@babel/highlight@npm:7.24.2" + dependencies: + "@babel/helper-validator-identifier": ^7.22.20 + chalk: ^2.4.2 + js-tokens: ^4.0.0 + picocolors: ^1.0.0 + checksum: 5f17b131cc3ebf3ab285a62cf98a404aef1bd71a6be045e748f8d5bf66d6a6e1aefd62f5972c84369472e8d9f22a614c58a89cd331eb60b7ba965b31b1bbeaf5 + languageName: node + linkType: hard + "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.6, @babel/parser@npm:^7.7.0": version: 7.23.6 resolution: "@babel/parser@npm:7.23.6" @@ -428,6 +548,15 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.24.0, @babel/parser@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/parser@npm:7.24.1" + bin: + parser: ./bin/babel-parser.js + checksum: a1068941dddf82ffdf572565b8b7b2cddb963ff9ddf97e6e28f50e843d820b4285e6def8f59170104a94e2a91ae2e3b326489886d77a57ea29d468f6a5e79bf9 + languageName: node + linkType: hard + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.23.3" @@ -902,6 +1031,20 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-async-generator-functions@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.9" + dependencies: + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-remap-async-to-generator": "npm:^7.22.20" + "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d402494087a6b803803eb5ab46b837aab100a04c4c5148e38bfa943ea1bbfc1ecfb340f1ced68972564312d3580f550c125f452372e77607a558fbbaf98c31c0 + languageName: node + linkType: hard + "@babel/plugin-transform-async-to-generator@npm:^7.20.0, @babel/plugin-transform-async-to-generator@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-async-to-generator@npm:7.23.3" @@ -1184,6 +1327,20 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-systemjs@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.9" + dependencies: + "@babel/helper-hoist-variables": "npm:^7.22.5" + "@babel/helper-module-transforms": "npm:^7.23.3" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-validator-identifier": "npm:^7.22.20" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cec6abeae6be66fd1a5940c482fe9ff94b689c71fcf4147e179119e4accd09d17d476e36528bc9cb4ab0ec6728fedf48b1c49d0551ea707fb192575d8eac9167 + languageName: node + linkType: hard + "@babel/plugin-transform-modules-umd@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-modules-umd@npm:7.23.3" @@ -1682,6 +1839,96 @@ __metadata: languageName: node linkType: hard +"@babel/preset-env@npm:^7.20.2": + version: 7.23.9 + resolution: "@babel/preset-env@npm:7.23.9" + dependencies: + "@babel/compat-data": "npm:^7.23.5" + "@babel/helper-compilation-targets": "npm:^7.23.6" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-validator-option": "npm:^7.23.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.23.3" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.23.7" + "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + "@babel/plugin-syntax-class-properties": "npm:^7.12.13" + "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" + "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" + "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" + "@babel/plugin-syntax-import-assertions": "npm:^7.23.3" + "@babel/plugin-syntax-import-attributes": "npm:^7.23.3" + "@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" + "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" + "@babel/plugin-transform-arrow-functions": "npm:^7.23.3" + "@babel/plugin-transform-async-generator-functions": "npm:^7.23.9" + "@babel/plugin-transform-async-to-generator": "npm:^7.23.3" + "@babel/plugin-transform-block-scoped-functions": "npm:^7.23.3" + "@babel/plugin-transform-block-scoping": "npm:^7.23.4" + "@babel/plugin-transform-class-properties": "npm:^7.23.3" + "@babel/plugin-transform-class-static-block": "npm:^7.23.4" + "@babel/plugin-transform-classes": "npm:^7.23.8" + "@babel/plugin-transform-computed-properties": "npm:^7.23.3" + "@babel/plugin-transform-destructuring": "npm:^7.23.3" + "@babel/plugin-transform-dotall-regex": "npm:^7.23.3" + "@babel/plugin-transform-duplicate-keys": "npm:^7.23.3" + "@babel/plugin-transform-dynamic-import": "npm:^7.23.4" + "@babel/plugin-transform-exponentiation-operator": "npm:^7.23.3" + "@babel/plugin-transform-export-namespace-from": "npm:^7.23.4" + "@babel/plugin-transform-for-of": "npm:^7.23.6" + "@babel/plugin-transform-function-name": "npm:^7.23.3" + "@babel/plugin-transform-json-strings": "npm:^7.23.4" + "@babel/plugin-transform-literals": "npm:^7.23.3" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.23.4" + "@babel/plugin-transform-member-expression-literals": "npm:^7.23.3" + "@babel/plugin-transform-modules-amd": "npm:^7.23.3" + "@babel/plugin-transform-modules-commonjs": "npm:^7.23.3" + "@babel/plugin-transform-modules-systemjs": "npm:^7.23.9" + "@babel/plugin-transform-modules-umd": "npm:^7.23.3" + "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.22.5" + "@babel/plugin-transform-new-target": "npm:^7.23.3" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.23.4" + "@babel/plugin-transform-numeric-separator": "npm:^7.23.4" + "@babel/plugin-transform-object-rest-spread": "npm:^7.23.4" + "@babel/plugin-transform-object-super": "npm:^7.23.3" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.23.4" + "@babel/plugin-transform-optional-chaining": "npm:^7.23.4" + "@babel/plugin-transform-parameters": "npm:^7.23.3" + "@babel/plugin-transform-private-methods": "npm:^7.23.3" + "@babel/plugin-transform-private-property-in-object": "npm:^7.23.4" + "@babel/plugin-transform-property-literals": "npm:^7.23.3" + "@babel/plugin-transform-regenerator": "npm:^7.23.3" + "@babel/plugin-transform-reserved-words": "npm:^7.23.3" + "@babel/plugin-transform-shorthand-properties": "npm:^7.23.3" + "@babel/plugin-transform-spread": "npm:^7.23.3" + "@babel/plugin-transform-sticky-regex": "npm:^7.23.3" + "@babel/plugin-transform-template-literals": "npm:^7.23.3" + "@babel/plugin-transform-typeof-symbol": "npm:^7.23.3" + "@babel/plugin-transform-unicode-escapes": "npm:^7.23.3" + "@babel/plugin-transform-unicode-property-regex": "npm:^7.23.3" + "@babel/plugin-transform-unicode-regex": "npm:^7.23.3" + "@babel/plugin-transform-unicode-sets-regex": "npm:^7.23.3" + "@babel/preset-modules": "npm:0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2: "npm:^0.4.8" + babel-plugin-polyfill-corejs3: "npm:^0.9.0" + babel-plugin-polyfill-regenerator: "npm:^0.5.5" + core-js-compat: "npm:^3.31.0" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 23a48468ba820c68ba34ea2c1dbc62fd2ff9cf858cfb69e159cabb0c85c72dc4c2266ce20ca84318d8742de050cb061e7c66902fbfddbcb09246afd248847933 + languageName: node + linkType: hard + "@babel/preset-flow@npm:^7.0.0, @babel/preset-flow@npm:^7.12.1, @babel/preset-flow@npm:^7.13.13": version: 7.23.3 resolution: "@babel/preset-flow@npm:7.23.3" @@ -1740,7 +1987,7 @@ __metadata: languageName: node linkType: hard -"@babel/preset-typescript@npm:^7.12.1, @babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.16.7, @babel/preset-typescript@npm:^7.23.2": +"@babel/preset-typescript@npm:^7.12.1, @babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.16.7, @babel/preset-typescript@npm:^7.21.0, @babel/preset-typescript@npm:^7.23.2": version: 7.23.3 resolution: "@babel/preset-typescript@npm:7.23.3" dependencies: @@ -1797,6 +2044,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/template@npm:7.24.0" + dependencies: + "@babel/code-frame": ^7.23.5 + "@babel/parser": ^7.24.0 + "@babel/types": ^7.24.0 + checksum: f257b003c071a0cecdbfceca74185f18fe62c055469ab5c1d481aab12abeebed328e67e0a19fd978a2a8de97b28953fa4bc3da6d038a7345fdf37923b9fcdec8 + languageName: node + linkType: hard + "@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.20.0, @babel/traverse@npm:^7.23.7, @babel/traverse@npm:^7.7.0, @babel/traverse@npm:^7.7.4": version: 7.23.7 resolution: "@babel/traverse@npm:7.23.7" @@ -1815,6 +2073,24 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/traverse@npm:7.24.1" + dependencies: + "@babel/code-frame": ^7.24.1 + "@babel/generator": ^7.24.1 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-hoist-variables": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/parser": ^7.24.1 + "@babel/types": ^7.24.0 + debug: ^4.3.1 + globals: ^11.1.0 + checksum: 92a5ca906abfba9df17666d2001ab23f18600035f706a687055a0e392a690ae48d6fec67c8bd4ef19ba18699a77a5b7f85727e36b83f7d110141608fe0c24fe9 + languageName: node + linkType: hard + "@babel/types@npm:7.0.0-beta.35": version: 7.0.0-beta.35 resolution: "@babel/types@npm:7.0.0-beta.35" @@ -1837,6 +2113,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/types@npm:7.24.0" + dependencies: + "@babel/helper-string-parser": ^7.23.4 + "@babel/helper-validator-identifier": ^7.22.20 + to-fast-properties: ^2.0.0 + checksum: 4b574a37d490f621470ff36a5afaac6deca5546edcb9b5e316d39acbb20998e9c2be42f3fc0bf2b55906fc49ff2a5a6a097e8f5a726ee3f708a0b0ca93aed807 + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -2196,6 +2483,13 @@ __metadata: languageName: node linkType: hard +"@eslint/js@npm:8.57.0": + version: 8.57.0 + resolution: "@eslint/js@npm:8.57.0" + checksum: 315dc65b0e9893e2bff139bddace7ea601ad77ed47b4550e73da8c9c2d2766c7a575c3cddf17ef85b8fd6a36ff34f91729d0dcca56e73ca887c10df91a41b0bb + languageName: node + linkType: hard + "@expo-google-fonts/space-grotesk@npm:^0.2.2": version: 0.2.3 resolution: "@expo-google-fonts/space-grotesk@npm:0.2.3" @@ -2606,7 +2900,7 @@ __metadata: languageName: node linkType: hard -"@graphql-typed-document-node/core@npm:^3.1.0": +"@graphql-typed-document-node/core@npm:^3.1.0, @graphql-typed-document-node/core@npm:^3.1.1": version: 3.2.0 resolution: "@graphql-typed-document-node/core@npm:3.2.0" peerDependencies: @@ -2631,7 +2925,7 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.13": +"@humanwhocodes/config-array@npm:^0.11.13, @humanwhocodes/config-array@npm:^0.11.14": version: 0.11.14 resolution: "@humanwhocodes/config-array@npm:0.11.14" dependencies: @@ -3013,6 +3307,17 @@ __metadata: languageName: node linkType: hard +"@jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.5 + resolution: "@jridgewell/gen-mapping@npm:0.3.5" + dependencies: + "@jridgewell/set-array": ^1.2.1 + "@jridgewell/sourcemap-codec": ^1.4.10 + "@jridgewell/trace-mapping": ^0.3.24 + checksum: ff7a1764ebd76a5e129c8890aa3e2f46045109dabde62b0b6c6a250152227647178ff2069ea234753a690d8f3c4ac8b5e7b267bbee272bffb7f3b0a370ab6e52 + languageName: node + linkType: hard + "@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": version: 3.1.1 resolution: "@jridgewell/resolve-uri@npm:3.1.1" @@ -3027,6 +3332,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/set-array@npm:^1.2.1": + version: 1.2.1 + resolution: "@jridgewell/set-array@npm:1.2.1" + checksum: 832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10 + languageName: node + linkType: hard + "@jridgewell/source-map@npm:^0.3.3": version: 0.3.5 resolution: "@jridgewell/source-map@npm:0.3.5" @@ -3064,6 +3376,16 @@ __metadata: languageName: node linkType: hard +"@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: + "@jridgewell/resolve-uri": ^3.1.0 + "@jridgewell/sourcemap-codec": ^1.4.14 + checksum: 9d3c40d225e139987b50c48988f8717a54a8c994d8a948ee42e1412e08988761d0754d7d10b803061cc3aebf35f92a5dbbab493bd0e1a9ef9e89a2130e83ba34 + languageName: node + linkType: hard + "@jscutlery/semver@npm:^2.30.1": version: 2.30.1 resolution: "@jscutlery/semver@npm:2.30.1" @@ -4002,6 +4324,29 @@ __metadata: languageName: node linkType: hard +"@sindresorhus/chunkify@npm:^0.2.0": + version: 0.2.0 + resolution: "@sindresorhus/chunkify@npm:0.2.0" + checksum: a17d8a385f1c2381d98eaa69d7fb543b65445a4b990750f1e3e78e3ae5fbcb70ebd2e93da8c11a3ac0cbd7e496e72e594c4519967eb15b1abea5b101acee243e + languageName: node + linkType: hard + +"@sindresorhus/df@npm:^1.0.1": + version: 1.0.1 + resolution: "@sindresorhus/df@npm:1.0.1" + checksum: 0cb43b4ed9fc41e28124362dd4735c1f067d3c8963ccc3cf1684da050c5263bb5f5193e510ca8869e13b782fe4eb6f7ee23e4372193afea932cd0535f4c9ee2b + languageName: node + linkType: hard + +"@sindresorhus/df@npm:^3.1.1": + version: 3.1.1 + resolution: "@sindresorhus/df@npm:3.1.1" + dependencies: + execa: "npm:^2.0.1" + checksum: 6378a8c62a9df024571b655a9f83d5e55351769dc581ed58a2a0a7b25683b7e644540edda7095bf38208b84ccf9cbc7c519fa7bef6a1129a2d8f7c6cbc618023 + languageName: node + linkType: hard + "@sindresorhus/is@npm:^4.0.0": version: 4.6.0 resolution: "@sindresorhus/is@npm:4.6.0" @@ -5297,6 +5642,13 @@ __metadata: languageName: node linkType: hard +"@stroncium/procfs@npm:^1.2.1": + version: 1.2.1 + resolution: "@stroncium/procfs@npm:1.2.1" + checksum: cb09a4a4780f97a4677964930a70597747eb480578a38b63148084d1ab1d6f71e7bd92c8918e12d0ec992ebc48f7761bce1f5e6ac8b4437add0b86b55fde844b + languageName: node + linkType: hard + "@svgr/babel-plugin-add-jsx-attribute@npm:^4.2.0": version: 4.2.0 resolution: "@svgr/babel-plugin-add-jsx-attribute@npm:4.2.0" @@ -5816,6 +6168,16 @@ __metadata: languageName: node linkType: hard +"@types/jest@npm:^29.4.0": + version: 29.5.12 + resolution: "@types/jest@npm:29.5.12" + dependencies: + expect: ^29.0.0 + pretty-format: ^29.0.0 + checksum: 19b1efdeed9d9a60a81edc8226cdeae5af7479e493eaed273e01243891c9651f7b8b4c08fc633a7d0d1d379b091c4179bbaa0807af62542325fd72f2dd17ce1c + languageName: node + linkType: hard + "@types/jsdom@npm:^20.0.0": version: 20.0.1 resolution: "@types/jsdom@npm:20.0.1" @@ -5967,6 +6329,13 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^11.9.5": + version: 11.15.54 + resolution: "@types/node@npm:11.15.54" + checksum: d65c15001070c5df893876bb7637024a1a412d8ccfd803c61b4ee3293aafb85d69e278cd27dc28f66c8d21018d85fa50f93ade0937a187c16c8dad23fb1598d8 + languageName: node + linkType: hard + "@types/node@npm:^18.11.18, @types/node@npm:^18.16.3, @types/node@npm:^18.18.8": version: 18.19.8 resolution: "@types/node@npm:18.19.8" @@ -6044,6 +6413,13 @@ __metadata: languageName: node linkType: hard +"@types/ramda@npm:^0.25.50": + version: 0.25.51 + resolution: "@types/ramda@npm:0.25.51" + checksum: 11e9f7941620fd9af4b62674edb906f1012ea90a9e51553bcacd05741d8719976fbbc4f29085bce670dd9fcb964103a8536d16aff4bbe702b3ea7d9051cfc31f + languageName: node + linkType: hard + "@types/ramda@npm:^0.28.0": version: 0.28.25 resolution: "@types/ramda@npm:0.28.25" @@ -6406,7 +6782,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^5.59.0": +"@typescript-eslint/eslint-plugin@npm:^5.54.0, @typescript-eslint/eslint-plugin@npm:^5.59.0": version: 5.62.0 resolution: "@typescript-eslint/eslint-plugin@npm:5.62.0" dependencies: @@ -6455,7 +6831,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/parser@npm:^5.59.0": +"@typescript-eslint/parser@npm:^5.54.0, @typescript-eslint/parser@npm:^5.59.0": version: 5.62.0 resolution: "@typescript-eslint/parser@npm:5.62.0" dependencies: @@ -6872,6 +7248,51 @@ __metadata: languageName: node linkType: hard +"@wry/caches@npm:^1.0.0": + version: 1.0.1 + resolution: "@wry/caches@npm:1.0.1" + dependencies: + tslib: "npm:^2.3.0" + checksum: 9e89aa8e9e08577b2e4acbe805f406b141ae49c2ac4a2e22acf21fbee68339fa0550e0dee28cf2158799f35bb812326e80212e49e2afd169f39f02ad56ae4ef4 + languageName: node + linkType: hard + +"@wry/context@npm:^0.7.0": + version: 0.7.4 + resolution: "@wry/context@npm:0.7.4" + dependencies: + tslib: "npm:^2.3.0" + checksum: 9bc8c30a31f9c7d36b616e89daa9280c03d196576a4f9fef800e9bd5de9434ba70216322faeeacc7ef1ab95f59185599d702538114045df729a5ceea50aef4e2 + languageName: node + linkType: hard + +"@wry/equality@npm:^0.5.6": + version: 0.5.7 + resolution: "@wry/equality@npm:0.5.7" + dependencies: + tslib: "npm:^2.3.0" + checksum: 892f262fae362df80f199b12658ea6966949539d4a3a50c1acf00d94a367d673a38f8efa1abcb726ae9e5cc5e62fce50c540c70f797b7c8a2c4308b401dfd903 + languageName: node + linkType: hard + +"@wry/trie@npm:^0.4.3": + version: 0.4.3 + resolution: "@wry/trie@npm:0.4.3" + dependencies: + tslib: "npm:^2.3.0" + checksum: 106e021125cfafd22250a6631a0438a6a3debae7bd73f6db87fe42aa0757fe67693db0dfbe200ae1f60ba608c3e09ddb8a4e2b3527d56ed0a7e02aa0ee4c94e1 + languageName: node + linkType: hard + +"@wry/trie@npm:^0.5.0": + version: 0.5.0 + resolution: "@wry/trie@npm:0.5.0" + dependencies: + tslib: "npm:^2.3.0" + checksum: 92aeea34152bd8485184236fe328d3d05fc98ee3b431d82ee60cf3584dbf68155419c3d65d0ff3731b204ee79c149440a9b7672784a545afddc8d4342fbf21c9 + languageName: node + linkType: hard + "@xmldom/xmldom@npm:^0.8.8": version: 0.8.10 resolution: "@xmldom/xmldom@npm:0.8.10" @@ -7091,6 +7512,16 @@ __metadata: languageName: node linkType: hard +"aggregate-error@npm:^4.0.0": + version: 4.0.1 + resolution: "aggregate-error@npm:4.0.1" + dependencies: + clean-stack: "npm:^4.0.0" + indent-string: "npm:^5.0.0" + checksum: bb3ffdfd13447800fff237c2cba752c59868ee669104bb995dfbbe0b8320e967d679e683dabb640feb32e4882d60258165cde0baafc4cd467cc7d275a13ad6b5 + languageName: node + linkType: hard + "airbnb-js-shims@npm:^2.2.1": version: 2.2.1 resolution: "airbnb-js-shims@npm:2.2.1" @@ -7534,6 +7965,16 @@ __metadata: languageName: node linkType: hard +"array-buffer-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "array-buffer-byte-length@npm:1.0.1" + dependencies: + call-bind: ^1.0.5 + is-array-buffer: ^3.0.4 + checksum: 53524e08f40867f6a9f35318fafe467c32e45e9c682ba67b11943e167344d2febc0f6977a17e699b05699e805c3e8f073d876f8bbf1b559ed494ad2cd0fae09e + languageName: node + linkType: hard + "array-flatten@npm:1.1.1": version: 1.1.1 resolution: "array-flatten@npm:1.1.1" @@ -7598,6 +8039,20 @@ __metadata: languageName: node linkType: hard +"array.prototype.findlast@npm:^1.2.4": + version: 1.2.5 + resolution: "array.prototype.findlast@npm:1.2.5" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.2 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + es-shim-unscopables: ^1.0.2 + checksum: 83ce4ad95bae07f136d316f5a7c3a5b911ac3296c3476abe60225bc4a17938bf37541972fcc37dd5adbc99cbb9c928c70bbbfc1c1ce549d41a415144030bb446 + languageName: node + linkType: hard + "array.prototype.findlastindex@npm:^1.2.3": version: 1.2.3 resolution: "array.prototype.findlastindex@npm:1.2.3" @@ -7661,6 +8116,18 @@ __metadata: languageName: node linkType: hard +"array.prototype.toreversed@npm:^1.1.2": + version: 1.1.2 + resolution: "array.prototype.toreversed@npm:1.1.2" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + es-shim-unscopables: ^1.0.0 + checksum: 58598193426282155297bedf950dc8d464624a0d81659822fb73124286688644cb7e0e4927a07f3ab2daaeb6617b647736cc3a5e6ca7ade5bb8e573b284e6240 + languageName: node + linkType: hard + "array.prototype.tosorted@npm:^1.1.1": version: 1.1.2 resolution: "array.prototype.tosorted@npm:1.1.2" @@ -7674,6 +8141,19 @@ __metadata: languageName: node linkType: hard +"array.prototype.tosorted@npm:^1.1.3": + version: 1.1.3 + resolution: "array.prototype.tosorted@npm:1.1.3" + dependencies: + call-bind: ^1.0.5 + define-properties: ^1.2.1 + es-abstract: ^1.22.3 + es-errors: ^1.1.0 + es-shim-unscopables: ^1.0.2 + checksum: 555e8808086bbde9e634c5dc5a8c0a2f1773075447b43b2fa76ab4f94f4e90f416d2a4f881024e1ce1a2931614caf76cd6b408af901c9d7cd13061d0d268f5af + languageName: node + linkType: hard + "arraybuffer.prototype.slice@npm:^1.0.2": version: 1.0.2 resolution: "arraybuffer.prototype.slice@npm:1.0.2" @@ -7689,6 +8169,22 @@ __metadata: languageName: node linkType: hard +"arraybuffer.prototype.slice@npm:^1.0.3": + version: 1.0.3 + resolution: "arraybuffer.prototype.slice@npm:1.0.3" + dependencies: + array-buffer-byte-length: ^1.0.1 + call-bind: ^1.0.5 + define-properties: ^1.2.1 + es-abstract: ^1.22.3 + es-errors: ^1.2.1 + get-intrinsic: ^1.2.3 + is-array-buffer: ^3.0.4 + is-shared-array-buffer: ^1.0.2 + checksum: 352259cba534dcdd969c92ab002efd2ba5025b2e3b9bead3973150edbdf0696c629d7f4b3f061c5931511e8207bdc2306da614703c820b45dabce39e3daf7e3e + languageName: node + linkType: hard + "arrify@npm:^1.0.1": version: 1.0.1 resolution: "arrify@npm:1.0.1" @@ -7887,6 +8383,15 @@ __metadata: languageName: node linkType: hard +"available-typed-arrays@npm:^1.0.7": + version: 1.0.7 + resolution: "available-typed-arrays@npm:1.0.7" + dependencies: + possible-typed-array-names: ^1.0.0 + checksum: 1aa3ffbfe6578276996de660848b6e95669d9a95ad149e3dd0c0cda77db6ee1dbd9d1dd723b65b6d277b882dd0c4b91a654ae9d3cf9e1254b7e93e4908d78fd3 + languageName: node + linkType: hard + "aws-sign2@npm:~0.7.0": version: 0.7.0 resolution: "aws-sign2@npm:0.7.0" @@ -7997,7 +8502,7 @@ __metadata: languageName: node linkType: hard -"babel-jest@npm:^29.2.1, babel-jest@npm:^29.7.0": +"babel-jest@npm:^29.2.1, babel-jest@npm:^29.4.3, babel-jest@npm:^29.7.0": version: 29.7.0 resolution: "babel-jest@npm:29.7.0" dependencies: @@ -8119,10 +8624,10 @@ __metadata: version: 0.5.2 resolution: "babel-plugin-minify-dead-code-elimination@npm:0.5.2" dependencies: - babel-helper-evaluate-path: ^0.5.0 - babel-helper-mark-eval-scopes: ^0.4.3 - babel-helper-remove-or-void: ^0.4.3 - lodash: ^4.17.11 + babel-helper-evaluate-path: "npm:^0.5.0" + babel-helper-mark-eval-scopes: "npm:^0.4.3" + babel-helper-remove-or-void: "npm:^0.4.3" + lodash: "npm:^4.17.11" checksum: ed4c683aa9dac021f08bf46a9a8dae28428e32e0beb0cb0e1923e195490019c5169c42e8211ecc9e23c9e2ce6ac54a809af7b9f9d8cece57eebb51b07b9f2e64 languageName: node linkType: hard @@ -8244,6 +8749,19 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-corejs2@npm:^0.4.8": + version: 0.4.10 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.10" + dependencies: + "@babel/compat-data": ^7.22.6 + "@babel/helper-define-polyfill-provider": ^0.6.1 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 2c0e4868789152f50db306f4957fa7934876cefb51d5d86436595f0b091539e45ce0e9c0125b5db2d71f913b29cd48ae76b8e942ba28fcf2273e084f54664a1c + languageName: node + linkType: hard + "babel-plugin-polyfill-corejs3@npm:^0.8.7": version: 0.8.7 resolution: "babel-plugin-polyfill-corejs3@npm:0.8.7" @@ -8256,7 +8774,19 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.5.4": +"babel-plugin-polyfill-corejs3@npm:^0.9.0": + version: 0.9.0 + resolution: "babel-plugin-polyfill-corejs3@npm:0.9.0" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.5.0 + core-js-compat: ^3.34.0 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 65bbf59fc0145c7a264822777403632008dce00015b4b5c7ec359125ef4faf9e8f494ae5123d2992104feb6f19a3cff85631992862e48b6d7bd64eb7e755ee1f + languageName: node + linkType: hard + +"babel-plugin-polyfill-regenerator@npm:^0.5.4, babel-plugin-polyfill-regenerator@npm:^0.5.5": version: 0.5.5 resolution: "babel-plugin-polyfill-regenerator@npm:0.5.5" dependencies: @@ -9017,6 +9547,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.23.0": + version: 4.23.0 + resolution: "browserslist@npm:4.23.0" + dependencies: + caniuse-lite: ^1.0.30001587 + electron-to-chromium: ^1.4.668 + node-releases: ^2.0.14 + update-browserslist-db: ^1.0.13 + bin: + browserslist: cli.js + checksum: 436f49e796782ca751ebab7edc010cfc9c29f68536f387666cd70ea22f7105563f04dd62c6ff89cb24cc3254d17cba385f979eeeb3484d43e012412ff7e75def + languageName: node + linkType: hard + "bs-logger@npm:0.x": version: 0.2.6 resolution: "bs-logger@npm:0.2.6" @@ -9360,6 +9904,19 @@ __metadata: languageName: node linkType: hard +"call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": + version: 1.0.7 + resolution: "call-bind@npm:1.0.7" + dependencies: + es-define-property: ^1.0.0 + es-errors: ^1.3.0 + function-bind: ^1.1.2 + get-intrinsic: ^1.2.4 + set-function-length: ^1.2.1 + checksum: 295c0c62b90dd6522e6db3b0ab1ce26bdf9e7404215bda13cfee25b626b5ff1a7761324d58d38b1ef1607fc65aca2d06e44d2e18d0dfc6c14b465b00d8660029 + languageName: node + linkType: hard + "call-me-maybe@npm:^1.0.1": version: 1.0.2 resolution: "call-me-maybe@npm:1.0.2" @@ -9420,14 +9977,26 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:^5.0.0, camelcase@npm:^5.3.1": - version: 5.3.1 +"camelcase-keys@npm:^7.0.0": + version: 7.0.2 + resolution: "camelcase-keys@npm:7.0.2" + dependencies: + camelcase: "npm:^6.3.0" + map-obj: "npm:^4.1.0" + quick-lru: "npm:^5.1.1" + type-fest: "npm:^1.2.1" + checksum: b5821cc48dd00e8398a30c5d6547f06837ab44de123f1b3a603d0a03399722b2fc67a485a7e47106eb02ef543c3b50c5ebaabc1242cde4b63a267c3258d2365b + languageName: node + linkType: hard + +"camelcase@npm:^5.0.0, camelcase@npm:^5.3.1": + version: 5.3.1 resolution: "camelcase@npm:5.3.1" checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b languageName: node linkType: hard -"camelcase@npm:^6.2.0": +"camelcase@npm:^6.2.0, camelcase@npm:^6.3.0": version: 6.3.0 resolution: "camelcase@npm:6.3.0" checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d @@ -9455,6 +10024,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001587": + version: 1.0.30001600 + resolution: "caniuse-lite@npm:1.0.30001600" + checksum: 1aae03be0e9f96163e88b9305531ef8db0e01f224aff545c61a32ce0b0ca323e22531bf680bacac3e34f98e23f71ac31a21b328fa0fcbbecea65a2c2638c70c4 + languageName: node + linkType: hard + "case-sensitive-paths-webpack-plugin@npm:^2.2.0": version: 2.4.0 resolution: "case-sensitive-paths-webpack-plugin@npm:2.4.0" @@ -9705,6 +10281,15 @@ __metadata: languageName: node linkType: hard +"clean-stack@npm:^4.0.0": + version: 4.2.0 + resolution: "clean-stack@npm:4.2.0" + dependencies: + escape-string-regexp: "npm:5.0.0" + checksum: 373f656a31face5c615c0839213b9b542a0a48057abfb1df66900eab4dc2a5c6097628e4a0b5aa559cdfc4e66f8a14ea47be9681773165a44470ef5fb8ccc172 + languageName: node + linkType: hard + "cli-boxes@npm:^2.2.0, cli-boxes@npm:^2.2.1": version: 2.2.1 resolution: "cli-boxes@npm:2.2.1" @@ -10570,6 +11155,15 @@ __metadata: languageName: node linkType: hard +"core-js-compat@npm:^3.34.0": + version: 3.36.1 + resolution: "core-js-compat@npm:3.36.1" + dependencies: + browserslist: ^4.23.0 + checksum: c9109bd599a97b5d20f25fc8b8339b8c7f3fca5f9a1bebd397805383ff7699e117786c7ffe0f7a95058a6fa5e0e1435d4c10e5cda6ad86ce1957986bb6580562 + languageName: node + linkType: hard + "core-js-pure@npm:^3.0.1": version: 3.35.0 resolution: "core-js-pure@npm:3.35.0" @@ -11090,6 +11684,39 @@ __metadata: languageName: node linkType: hard +"data-view-buffer@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-buffer@npm:1.0.1" + dependencies: + call-bind: ^1.0.6 + es-errors: ^1.3.0 + is-data-view: ^1.0.1 + checksum: ce24348f3c6231223b216da92e7e6a57a12b4af81a23f27eff8feabdf06acfb16c00639c8b705ca4d167f761cfc756e27e5f065d0a1f840c10b907fdaf8b988c + languageName: node + linkType: hard + +"data-view-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-byte-length@npm:1.0.1" + dependencies: + call-bind: ^1.0.7 + es-errors: ^1.3.0 + is-data-view: ^1.0.1 + checksum: dbb3200edcb7c1ef0d68979834f81d64fd8cab2f7691b3a4c6b97e67f22182f3ec2c8602efd7b76997b55af6ff8bce485829c1feda4fa2165a6b71fb7baa4269 + languageName: node + linkType: hard + +"data-view-byte-offset@npm:^1.0.0": + version: 1.0.0 + resolution: "data-view-byte-offset@npm:1.0.0" + dependencies: + call-bind: ^1.0.6 + es-errors: ^1.3.0 + is-data-view: ^1.0.1 + checksum: 7f0bf8720b7414ca719eedf1846aeec392f2054d7af707c5dc9a753cc77eb8625f067fa901e0b5127e831f9da9056138d894b9c2be79c27a21f6db5824f009c2 + languageName: node + linkType: hard + "date-fns@npm:2.30.0, date-fns@npm:^2.30.0": version: 2.30.0 resolution: "date-fns@npm:2.30.0" @@ -11178,6 +11805,13 @@ __metadata: languageName: node linkType: hard +"decamelize@npm:^5.0.0": + version: 5.0.1 + resolution: "decamelize@npm:5.0.1" + checksum: 7c3b1ed4b3e60e7fbc00a35fb248298527c1cdfe603e41dfcf05e6c4a8cb9efbee60630deb677ed428908fb4e74e322966c687a094d1478ddc9c3a74e9dc7140 + languageName: node + linkType: hard + "decimal.js@npm:^10.4.2": version: 10.4.3 resolution: "decimal.js@npm:10.4.3" @@ -11325,6 +11959,17 @@ __metadata: languageName: node linkType: hard +"define-data-property@npm:^1.1.4": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" + dependencies: + es-define-property: ^1.0.0 + es-errors: ^1.3.0 + gopd: ^1.0.1 + checksum: 8068ee6cab694d409ac25936eb861eea704b7763f7f342adbdfe337fc27c78d7ae0eff2364b2917b58c508d723c7a074326d068eef2e45c4edcd85cf94d0313b + languageName: node + linkType: hard + "define-lazy-prop@npm:^2.0.0": version: 2.0.0 resolution: "define-lazy-prop@npm:2.0.0" @@ -11594,7 +12239,7 @@ __metadata: languageName: node linkType: hard -"dir-glob@npm:^2.2.2": +"dir-glob@npm:^2.0.0, dir-glob@npm:^2.2.2": version: 2.2.2 resolution: "dir-glob@npm:2.2.2" dependencies: @@ -12068,6 +12713,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.4.668": + version: 1.4.715 + resolution: "electron-to-chromium@npm:1.4.715" + checksum: b3ccbd571ecaa3b74b2c098b705416e15e36f9338f75fea062ba48397ac379972f915c29437286914d05ea9d3454b0fa74e9606becd6c221879c6fc139a09284 + languageName: node + linkType: hard + "electron-updater@npm:^6.1.7": version: 6.1.8 resolution: "electron-updater@npm:6.1.8" @@ -12475,6 +13127,60 @@ __metadata: languageName: node linkType: hard +"es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.2": + version: 1.23.2 + resolution: "es-abstract@npm:1.23.2" + dependencies: + array-buffer-byte-length: ^1.0.1 + arraybuffer.prototype.slice: ^1.0.3 + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.7 + data-view-buffer: ^1.0.1 + data-view-byte-length: ^1.0.1 + data-view-byte-offset: ^1.0.0 + es-define-property: ^1.0.0 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + es-set-tostringtag: ^2.0.3 + es-to-primitive: ^1.2.1 + function.prototype.name: ^1.1.6 + get-intrinsic: ^1.2.4 + get-symbol-description: ^1.0.2 + globalthis: ^1.0.3 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.2 + has-proto: ^1.0.3 + has-symbols: ^1.0.3 + hasown: ^2.0.2 + internal-slot: ^1.0.7 + is-array-buffer: ^3.0.4 + is-callable: ^1.2.7 + is-data-view: ^1.0.1 + is-negative-zero: ^2.0.3 + is-regex: ^1.1.4 + is-shared-array-buffer: ^1.0.3 + is-string: ^1.0.7 + is-typed-array: ^1.1.13 + is-weakref: ^1.0.2 + object-inspect: ^1.13.1 + object-keys: ^1.1.1 + object.assign: ^4.1.5 + regexp.prototype.flags: ^1.5.2 + safe-array-concat: ^1.1.2 + safe-regex-test: ^1.0.3 + string.prototype.trim: ^1.2.9 + string.prototype.trimend: ^1.0.8 + string.prototype.trimstart: ^1.0.7 + typed-array-buffer: ^1.0.2 + typed-array-byte-length: ^1.0.1 + typed-array-byte-offset: ^1.0.2 + typed-array-length: ^1.0.5 + unbox-primitive: ^1.0.2 + which-typed-array: ^1.1.15 + checksum: cc6410cb58ba90e3f0f84d83297c372ca545017b94e50fd0020119e82b26f0dbf9885c72335f0063b93669393c505712c6fe82bef7ae4d3d29d770c0dbfb1340 + languageName: node + linkType: hard + "es-array-method-boxes-properly@npm:^1.0.0": version: 1.0.0 resolution: "es-array-method-boxes-properly@npm:1.0.0" @@ -12482,6 +13188,22 @@ __metadata: languageName: node linkType: hard +"es-define-property@npm:^1.0.0": + version: 1.0.0 + resolution: "es-define-property@npm:1.0.0" + dependencies: + get-intrinsic: ^1.2.4 + checksum: f66ece0a887b6dca71848fa71f70461357c0e4e7249696f81bad0a1f347eed7b31262af4a29f5d726dc026426f085483b6b90301855e647aa8e21936f07293c6 + languageName: node + linkType: hard + +"es-errors@npm:^1.1.0, es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: ec1414527a0ccacd7f15f4a3bc66e215f04f595ba23ca75cdae0927af099b5ec865f9f4d33e9d7e86f512f252876ac77d4281a7871531a50678132429b1271b5 + languageName: node + linkType: hard + "es-get-iterator@npm:^1.0.2, es-get-iterator@npm:^1.1.3": version: 1.1.3 resolution: "es-get-iterator@npm:1.1.3" @@ -12521,6 +13243,37 @@ __metadata: languageName: node linkType: hard +"es-iterator-helpers@npm:^1.0.17": + version: 1.0.18 + resolution: "es-iterator-helpers@npm:1.0.18" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.0 + es-errors: ^1.3.0 + es-set-tostringtag: ^2.0.3 + function-bind: ^1.1.2 + get-intrinsic: ^1.2.4 + globalthis: ^1.0.3 + has-property-descriptors: ^1.0.2 + has-proto: ^1.0.3 + has-symbols: ^1.0.3 + internal-slot: ^1.0.7 + iterator.prototype: ^1.1.2 + safe-array-concat: ^1.1.2 + checksum: 1594324ff3ca8890fe30c98b2419d3007d2b14b35f9773f188114408ff973e13c526f6045d88209e932f58dc0c55fc9a4ae1554636f8938ed7d926ffc27d3e1a + languageName: node + linkType: hard + +"es-object-atoms@npm:^1.0.0": + version: 1.0.0 + resolution: "es-object-atoms@npm:1.0.0" + dependencies: + es-errors: ^1.3.0 + checksum: 26f0ff78ab93b63394e8403c353842b2272836968de4eafe97656adfb8a7c84b9099bf0fe96ed58f4a4cddc860f6e34c77f91649a58a5daa4a9c40b902744e3c + languageName: node + linkType: hard + "es-set-tostringtag@npm:^2.0.1": version: 2.0.2 resolution: "es-set-tostringtag@npm:2.0.2" @@ -12532,7 +13285,18 @@ __metadata: languageName: node linkType: hard -"es-shim-unscopables@npm:^1.0.0": +"es-set-tostringtag@npm:^2.0.3": + version: 2.0.3 + resolution: "es-set-tostringtag@npm:2.0.3" + dependencies: + get-intrinsic: ^1.2.4 + has-tostringtag: ^1.0.2 + hasown: ^2.0.1 + checksum: 7227fa48a41c0ce83e0377b11130d324ac797390688135b8da5c28994c0165be8b252e15cd1de41e1325e5a5412511586960213e88f9ab4a5e7d028895db5129 + languageName: node + linkType: hard + +"es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2": version: 1.0.2 resolution: "es-shim-unscopables@npm:1.0.2" dependencies: @@ -12601,6 +13365,13 @@ __metadata: languageName: node linkType: hard +"escape-string-regexp@npm:5.0.0": + version: 5.0.0 + resolution: "escape-string-regexp@npm:5.0.0" + checksum: 20daabe197f3cb198ec28546deebcf24b3dbb1a5a269184381b3116d12f0532e06007f4bc8da25669d6a7f8efb68db0758df4cd981f57bc5b57f521a3e12c59e + languageName: node + linkType: hard + "escape-string-regexp@npm:^4.0.0": version: 4.0.0 resolution: "escape-string-regexp@npm:4.0.0" @@ -12646,6 +13417,17 @@ __metadata: languageName: node linkType: hard +"eslint-config-prettier@npm:^8.6.0": + version: 8.10.0 + resolution: "eslint-config-prettier@npm:8.10.0" + peerDependencies: + eslint: ">=7.0.0" + bin: + eslint-config-prettier: bin/cli.js + checksum: 153266badd477e49b0759816246b2132f1dbdb6c7f313ca60a9af5822fd1071c2bc5684a3720d78b725452bbac04bb130878b2513aea5e72b1b792de5a69fec8 + languageName: node + linkType: hard + "eslint-config-prettier@npm:^9.0.0": version: 9.1.0 resolution: "eslint-config-prettier@npm:9.1.0" @@ -12669,7 +13451,7 @@ __metadata: languageName: node linkType: hard -"eslint-config-standard@npm:^17.1.0": +"eslint-config-standard@npm:^17.0.0, eslint-config-standard@npm:^17.1.0": version: 17.1.0 resolution: "eslint-config-standard@npm:17.1.0" peerDependencies: @@ -12764,7 +13546,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import@npm:^2.29.0": +"eslint-plugin-import@npm:^2.27.5, eslint-plugin-import@npm:^2.29.0": version: 2.29.1 resolution: "eslint-plugin-import@npm:2.29.1" dependencies: @@ -12830,7 +13612,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-node@npm:11.1.0": +"eslint-plugin-node@npm:11.1.0, eslint-plugin-node@npm:^11.1.0": version: 11.1.0 resolution: "eslint-plugin-node@npm:11.1.0" dependencies: @@ -12916,6 +13698,34 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-react@npm:^7.32.2": + version: 7.34.1 + resolution: "eslint-plugin-react@npm:7.34.1" + dependencies: + array-includes: ^3.1.7 + array.prototype.findlast: ^1.2.4 + array.prototype.flatmap: ^1.3.2 + array.prototype.toreversed: ^1.1.2 + array.prototype.tosorted: ^1.1.3 + doctrine: ^2.1.0 + es-iterator-helpers: ^1.0.17 + estraverse: ^5.3.0 + jsx-ast-utils: ^2.4.1 || ^3.0.0 + minimatch: ^3.1.2 + object.entries: ^1.1.7 + object.fromentries: ^2.0.7 + object.hasown: ^1.1.3 + object.values: ^1.1.7 + prop-types: ^15.8.1 + resolve: ^2.0.0-next.5 + semver: ^6.3.1 + string.prototype.matchall: ^4.0.10 + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + checksum: 82f391c5a093235c3bc2f664c54e009c49460778ee7d1b86c1536df9ac4d2a80d1dedc9241ac797df4a9dced936e955d9c89042fb3ac8d017b5359d1320d3c0f + languageName: node + linkType: hard + "eslint-plugin-react@npm:^7.33.2": version: 7.33.2 resolution: "eslint-plugin-react@npm:7.33.2" @@ -13107,6 +13917,54 @@ __metadata: languageName: node linkType: hard +"eslint@npm:^8.35.0": + version: 8.57.0 + resolution: "eslint@npm:8.57.0" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@eslint-community/regexpp": ^4.6.1 + "@eslint/eslintrc": ^2.1.4 + "@eslint/js": 8.57.0 + "@humanwhocodes/config-array": ^0.11.14 + "@humanwhocodes/module-importer": ^1.0.1 + "@nodelib/fs.walk": ^1.2.8 + "@ungap/structured-clone": ^1.2.0 + ajv: ^6.12.4 + chalk: ^4.0.0 + cross-spawn: ^7.0.2 + debug: ^4.3.2 + doctrine: ^3.0.0 + escape-string-regexp: ^4.0.0 + eslint-scope: ^7.2.2 + eslint-visitor-keys: ^3.4.3 + espree: ^9.6.1 + esquery: ^1.4.2 + esutils: ^2.0.2 + fast-deep-equal: ^3.1.3 + file-entry-cache: ^6.0.1 + find-up: ^5.0.0 + glob-parent: ^6.0.2 + globals: ^13.19.0 + graphemer: ^1.4.0 + ignore: ^5.2.0 + imurmurhash: ^0.1.4 + is-glob: ^4.0.0 + is-path-inside: ^3.0.3 + js-yaml: ^4.1.0 + json-stable-stringify-without-jsonify: ^1.0.1 + levn: ^0.4.1 + lodash.merge: ^4.6.2 + minimatch: ^3.1.2 + natural-compare: ^1.4.0 + optionator: ^0.9.3 + strip-ansi: ^6.0.1 + text-table: ^0.2.0 + bin: + eslint: bin/eslint.js + checksum: 3a48d7ff85ab420a8447e9810d8087aea5b1df9ef68c9151732b478de698389ee656fd895635b5f2871c89ee5a2652b3f343d11e9db6f8486880374ebc74a2d9 + languageName: node + linkType: hard + "eslint@npm:^8.53.0": version: 8.56.0 resolution: "eslint@npm:8.56.0" @@ -13305,6 +14163,7 @@ __metadata: version: 0.0.0-use.local resolution: "example-app@workspace:apps/example-app" dependencies: + "@apollo/client": ^3.9.4 "@babel/core": ^7.20.0 "@babel/plugin-proposal-export-namespace-from": ^7.18.9 "@babel/plugin-proposal-nullish-coalescing-operator": ^7.0.0 @@ -13348,6 +14207,7 @@ __metadata: expo-localization: ~14.3.0 expo-splash-screen: ~0.20.4 expo-status-bar: ~1.6.0 + graphql: ^16.8.1 i18n-js: 3.9.2 jest: ^29.2.1 jest-expo: 49.0.0 @@ -13368,6 +14228,7 @@ __metadata: react-native-web: ~0.19.6 react-redux: ^9.1.0 react-test-renderer: 18.2.0 + reactotron-apollo-client: "workspace:*" reactotron-core-client: "workspace:*" reactotron-mst: "workspace:*" reactotron-react-js: "workspace:*" @@ -13401,6 +14262,23 @@ __metadata: languageName: node linkType: hard +"execa@npm:^2.0.1": + version: 2.1.0 + resolution: "execa@npm:2.1.0" + dependencies: + cross-spawn: "npm:^7.0.0" + get-stream: "npm:^5.0.0" + is-stream: "npm:^2.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^3.0.0" + onetime: "npm:^5.1.0" + p-finally: "npm:^2.0.0" + signal-exit: "npm:^3.0.2" + strip-final-newline: "npm:^2.0.0" + checksum: 93af9b816a555d0944e0876f4ccd97e0f4593d2049e713518fd5458a7699836449c516c6bb7e6357e11431ec40cce3150625b86d1b1254180faaa0d744265eca + languageName: node + linkType: hard + "execa@npm:^5.0.0": version: 5.1.1 resolution: "execa@npm:5.1.1" @@ -14749,6 +15627,19 @@ __metadata: languageName: node linkType: hard +"get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": + version: 1.2.4 + resolution: "get-intrinsic@npm:1.2.4" + dependencies: + es-errors: ^1.3.0 + function-bind: ^1.1.2 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + hasown: ^2.0.0 + checksum: 414e3cdf2c203d1b9d7d33111df746a4512a1aa622770b361dadddf8ed0b5aeb26c560f49ca077e24bfafb0acb55ca908d1f709216ccba33ffc548ec8a79a951 + languageName: node + linkType: hard + "get-own-enumerable-keys@npm:^1.0.0": version: 1.0.0 resolution: "get-own-enumerable-keys@npm:1.0.0" @@ -14800,7 +15691,7 @@ __metadata: languageName: node linkType: hard -"get-stream@npm:^5.1.0": +"get-stream@npm:^5.0.0, get-stream@npm:^5.1.0": version: 5.2.0 resolution: "get-stream@npm:5.2.0" dependencies: @@ -14826,6 +15717,17 @@ __metadata: languageName: node linkType: hard +"get-symbol-description@npm:^1.0.2": + version: 1.0.2 + resolution: "get-symbol-description@npm:1.0.2" + dependencies: + call-bind: ^1.0.5 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.4 + checksum: e1cb53bc211f9dbe9691a4f97a46837a553c4e7caadd0488dc24ac694db8a390b93edd412b48dcdd0b4bbb4c595de1709effc75fc87c0839deedc6968f5bd973 + languageName: node + linkType: hard + "get-tsconfig@npm:^4.7.0": version: 4.7.2 resolution: "get-tsconfig@npm:4.7.2" @@ -15214,6 +16116,20 @@ __metadata: languageName: node linkType: hard +"globby@npm:^7.1.1": + version: 7.1.1 + resolution: "globby@npm:7.1.1" + dependencies: + array-union: "npm:^1.0.1" + dir-glob: "npm:^2.0.0" + glob: "npm:^7.1.2" + ignore: "npm:^3.3.5" + pify: "npm:^3.0.0" + slash: "npm:^1.0.0" + checksum: f0eba08a08ae7c98149a4411661c0bf08c4717d81e6f355cf624fb01880b249737eb8e951bf86124cb3af8ea1c793c0a9d363ed5cdec99bb2c6b68f8a323025f + languageName: node + linkType: hard + "globby@npm:^9.2.0": version: 9.2.0 resolution: "globby@npm:9.2.0" @@ -15281,7 +16197,7 @@ __metadata: languageName: node linkType: hard -"graphql-tag@npm:^2.10.1": +"graphql-tag@npm:^2.10.1, graphql-tag@npm:^2.12.6": version: 2.12.6 resolution: "graphql-tag@npm:2.12.6" dependencies: @@ -15299,6 +16215,13 @@ __metadata: languageName: node linkType: hard +"graphql@npm:^16.8.0, graphql@npm:^16.8.1": + version: 16.8.1 + resolution: "graphql@npm:16.8.1" + checksum: 8d304b7b6f708c8c5cc164b06e92467dfe36aff6d4f2cf31dd19c4c2905a0e7b89edac4b7e225871131fd24e21460836b369de0c06532644d15b461d55b1ccc0 + languageName: node + linkType: hard + "gud@npm:^1.0.0": version: 1.0.0 resolution: "gud@npm:1.0.0" @@ -15422,6 +16345,15 @@ __metadata: languageName: node linkType: hard +"has-property-descriptors@npm:^1.0.2": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" + dependencies: + es-define-property: ^1.0.0 + checksum: fcbb246ea2838058be39887935231c6d5788babed499d0e9d0cc5737494c48aba4fe17ba1449e0d0fbbb1e36175442faa37f9c427ae357d6ccb1d895fbcd3de3 + languageName: node + linkType: hard + "has-proto@npm:^1.0.1": version: 1.0.1 resolution: "has-proto@npm:1.0.1" @@ -15429,6 +16361,13 @@ __metadata: languageName: node linkType: hard +"has-proto@npm:^1.0.3": + version: 1.0.3 + resolution: "has-proto@npm:1.0.3" + checksum: fe7c3d50b33f50f3933a04413ed1f69441d21d2d2944f81036276d30635cad9279f6b43bc8f32036c31ebdfcf6e731150f46c1907ad90c669ffe9b066c3ba5c4 + languageName: node + linkType: hard + "has-symbols@npm:^1.0.1, has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": version: 1.0.3 resolution: "has-symbols@npm:1.0.3" @@ -15445,6 +16384,15 @@ __metadata: languageName: node linkType: hard +"has-tostringtag@npm:^1.0.2": + version: 1.0.2 + resolution: "has-tostringtag@npm:1.0.2" + dependencies: + has-symbols: ^1.0.3 + checksum: 999d60bb753ad714356b2c6c87b7fb74f32463b8426e159397da4bde5bca7e598ab1073f4d8d4deafac297f2eb311484cd177af242776bf05f0d11565680468d + languageName: node + linkType: hard + "has-unicode@npm:^2.0.0": version: 2.0.1 resolution: "has-unicode@npm:2.0.1" @@ -15528,6 +16476,15 @@ __metadata: languageName: node linkType: hard +"hasown@npm:^2.0.1, hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: ^1.1.2 + checksum: e8516f776a15149ca6c6ed2ae3110c417a00b62260e222590e54aa367cbcd6ed99122020b37b7fbdf05748df57b265e70095d7bf35a47660587619b15ffb93db + languageName: node + linkType: hard + "hast-util-parse-selector@npm:^2.0.0": version: 2.2.5 resolution: "hast-util-parse-selector@npm:2.2.5" @@ -15626,7 +16583,7 @@ __metadata: languageName: node linkType: hard -"hoist-non-react-statics@npm:^3.3.0": +"hoist-non-react-statics@npm:^3.3.0, hoist-non-react-statics@npm:^3.3.2": version: 3.3.2 resolution: "hoist-non-react-statics@npm:3.3.2" dependencies: @@ -16170,6 +17127,13 @@ __metadata: languageName: node linkType: hard +"indent-string@npm:^5.0.0": + version: 5.0.0 + resolution: "indent-string@npm:5.0.0" + checksum: e466c27b6373440e6d84fbc19e750219ce25865cb82d578e41a6053d727e5520dc5725217d6eb1cc76005a1bb1696a0f106d84ce7ebda3033b963a38583fb3b3 + languageName: node + linkType: hard + "infer-owner@npm:^1.0.3, infer-owner@npm:^1.0.4": version: 1.0.4 resolution: "infer-owner@npm:1.0.4" @@ -16304,6 +17268,17 @@ __metadata: languageName: node linkType: hard +"internal-slot@npm:^1.0.7": + version: 1.0.7 + resolution: "internal-slot@npm:1.0.7" + dependencies: + es-errors: ^1.3.0 + hasown: ^2.0.0 + side-channel: ^1.0.4 + checksum: cadc5eea5d7d9bc2342e93aae9f31f04c196afebb11bde97448327049f492cd7081e18623ae71388aac9cd237b692ca3a105be9c68ac39c1dec679d7409e33eb + languageName: node + linkType: hard + "interpret@npm:^1.0.0, interpret@npm:^1.4.0": version: 1.4.0 resolution: "interpret@npm:1.4.0" @@ -16409,6 +17384,16 @@ __metadata: languageName: node linkType: hard +"is-array-buffer@npm:^3.0.4": + version: 3.0.4 + resolution: "is-array-buffer@npm:3.0.4" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.2.1 + checksum: e4e3e6ef0ff2239e75371d221f74bc3c26a03564a22efb39f6bb02609b598917ddeecef4e8c877df2a25888f247a98198959842a5e73236bc7f22cabdf6351a7 + languageName: node + linkType: hard + "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" @@ -16532,6 +17517,15 @@ __metadata: languageName: node linkType: hard +"is-data-view@npm:^1.0.1": + version: 1.0.1 + resolution: "is-data-view@npm:1.0.1" + dependencies: + is-typed-array: ^1.1.13 + checksum: 4ba4562ac2b2ec005fefe48269d6bd0152785458cd253c746154ffb8a8ab506a29d0cfb3b74af87513843776a88e4981ae25c89457bf640a33748eab1a7216b5 + languageName: node + linkType: hard + "is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5": version: 1.0.5 resolution: "is-date-object@npm:1.0.5" @@ -16757,6 +17751,13 @@ __metadata: languageName: node linkType: hard +"is-negative-zero@npm:^2.0.3": + version: 2.0.3 + resolution: "is-negative-zero@npm:2.0.3" + checksum: c1e6b23d2070c0539d7b36022d5a94407132411d01aba39ec549af824231f3804b1aea90b5e4e58e807a65d23ceb538ed6e355ce76b267bdd86edb757ffcbdcd + languageName: node + linkType: hard + "is-number-object@npm:^1.0.4": version: 1.0.7 resolution: "is-number-object@npm:1.0.7" @@ -16835,6 +17836,13 @@ __metadata: languageName: node linkType: hard +"is-path-inside@npm:^4.0.0": + version: 4.0.0 + resolution: "is-path-inside@npm:4.0.0" + checksum: 8810fa11c58e6360b82c3e0d6cd7d9c7d0392d3ac9eb10f980b81f9839f40ac6d1d6d6f05d069db0d227759801228f0b072e1b6c343e4469b065ab5fe0b68fe5 + languageName: node + linkType: hard + "is-plain-obj@npm:^1.0.0, is-plain-obj@npm:^1.1.0": version: 1.1.0 resolution: "is-plain-obj@npm:1.1.0" @@ -16933,6 +17941,15 @@ __metadata: languageName: node linkType: hard +"is-shared-array-buffer@npm:^1.0.3": + version: 1.0.3 + resolution: "is-shared-array-buffer@npm:1.0.3" + dependencies: + call-bind: ^1.0.7 + checksum: a4fff602c309e64ccaa83b859255a43bb011145a42d3f56f67d9268b55bc7e6d98a5981a1d834186ad3105d6739d21547083fe7259c76c0468483fc538e716d8 + languageName: node + linkType: hard + "is-stream@npm:^1.1.0": version: 1.1.0 resolution: "is-stream@npm:1.1.0" @@ -16983,6 +18000,15 @@ __metadata: languageName: node linkType: hard +"is-typed-array@npm:^1.1.13": + version: 1.1.13 + resolution: "is-typed-array@npm:1.1.13" + dependencies: + which-typed-array: ^1.1.14 + checksum: 150f9ada183a61554c91e1c4290086d2c100b0dff45f60b028519be72a8db964da403c48760723bf5253979b8dffe7b544246e0e5351dcd05c5fdb1dcc1dc0f0 + languageName: node + linkType: hard + "is-typedarray@npm:~1.0.0": version: 1.0.0 resolution: "is-typedarray@npm:1.0.0" @@ -17805,7 +18831,7 @@ __metadata: languageName: node linkType: hard -"jest@npm:^29.2.1, jest@npm:^29.7.0": +"jest@npm:^29.2.1, jest@npm:^29.4.3, jest@npm:^29.7.0": version: 29.7.0 resolution: "jest@npm:29.7.0" dependencies: @@ -18874,7 +19900,7 @@ __metadata: languageName: node linkType: hard -"map-obj@npm:^4.0.0": +"map-obj@npm:^4.0.0, map-obj@npm:^4.1.0": version: 4.3.0 resolution: "map-obj@npm:4.3.0" checksum: fbc554934d1a27a1910e842bc87b177b1a556609dd803747c85ece420692380827c6ae94a95cce4407c054fa0964be3bf8226f7f2cb2e9eeee432c7c1985684e @@ -19070,12 +20096,32 @@ __metadata: languageName: node linkType: hard -"meow@npm:^8.0.0": - version: 8.1.2 - resolution: "meow@npm:8.1.2" +"meow@npm:^10.1.2": + version: 10.1.5 + resolution: "meow@npm:10.1.5" dependencies: - "@types/minimist": ^1.2.0 - camelcase-keys: ^6.2.2 + "@types/minimist": ^1.2.2 + camelcase-keys: ^7.0.0 + decamelize: ^5.0.0 + decamelize-keys: ^1.1.0 + hard-rejection: ^2.1.0 + minimist-options: 4.1.0 + normalize-package-data: ^3.0.2 + read-pkg-up: ^8.0.0 + redent: ^4.0.0 + trim-newlines: ^4.0.2 + type-fest: ^1.2.2 + yargs-parser: ^20.2.9 + checksum: dd5f0caa4af18517813547dc66741dcbf52c4c23def5062578d39b11189fd9457aee5c1f2263a5cd6592a465023df8357e8ac876b685b64dbcf545e3f66c23a7 + languageName: node + linkType: hard + +"meow@npm:^8.0.0": + version: 8.1.2 + resolution: "meow@npm:8.1.2" + dependencies: + "@types/minimist": ^1.2.0 + camelcase-keys: ^6.2.2 decamelize-keys: ^1.1.0 hard-rejection: ^2.1.0 minimist-options: 4.1.0 @@ -19600,7 +20646,7 @@ __metadata: languageName: node linkType: hard -"min-indent@npm:^1.0.0": +"min-indent@npm:^1.0.0, min-indent@npm:^1.0.1": version: 1.0.1 resolution: "min-indent@npm:1.0.1" checksum: bfc6dd03c5eaf623a4963ebd94d087f6f4bbbfd8c41329a7f09706b0cb66969c4ddd336abeb587bc44bc6f08e13bf90f0b374f9d71f9f01e04adc2cd6f083ef1 @@ -19698,9 +20744,9 @@ __metadata: version: 4.1.0 resolution: "minimist-options@npm:4.1.0" dependencies: - arrify: ^1.0.1 - is-plain-obj: ^1.1.0 - kind-of: ^6.0.3 + arrify: "npm:^1.0.1" + is-plain-obj: "npm:^1.1.0" + kind-of: "npm:^6.0.3" checksum: 8c040b3068811e79de1140ca2b708d3e203c8003eb9a414c1ab3cd467fc5f17c9ca02a5aef23bedc51a7f8bfbe77f87e9a7e31ec81fba304cda675b019496f4e languageName: node linkType: hard @@ -19966,6 +21012,17 @@ __metadata: languageName: node linkType: hard +"mount-point@npm:^3.0.0": + version: 3.0.0 + resolution: "mount-point@npm:3.0.0" + dependencies: + "@sindresorhus/df": "npm:^1.0.1" + pify: "npm:^2.3.0" + pinkie-promise: "npm:^2.0.1" + checksum: edb588e613020271add5a368404af569d8f5cfc48121be3ebb142ffc939f97de0c407fdd03ae972a7eff0cb880584a71e767993f719a6998cd90f1272def4c25 + languageName: node + linkType: hard + "move-concurrently@npm:^1.0.1": version: 1.0.1 resolution: "move-concurrently@npm:1.0.1" @@ -19980,6 +21037,15 @@ __metadata: languageName: node linkType: hard +"move-file@npm:^3.0.0": + version: 3.1.0 + resolution: "move-file@npm:3.1.0" + dependencies: + path-exists: "npm:^5.0.0" + checksum: 22585798101f7e5e645fdbe69ac915db362d27e2e0afcb3f049d23bf4e2a7a746ce6cc8f5b9956941cd8a683bf50fc9d0b3ac55ee5d22c93161cef4d8f86e13b + languageName: node + linkType: hard + "ms@npm:2.0.0": version: 2.0.0 resolution: "ms@npm:2.0.0" @@ -20411,7 +21477,7 @@ __metadata: languageName: node linkType: hard -"normalize-package-data@npm:^3.0.0": +"normalize-package-data@npm:^3.0.0, normalize-package-data@npm:^3.0.2": version: 3.0.3 resolution: "normalize-package-data@npm:3.0.3" dependencies: @@ -20583,6 +21649,15 @@ __metadata: languageName: node linkType: hard +"npm-run-path@npm:^3.0.0": + version: 3.1.0 + resolution: "npm-run-path@npm:3.1.0" + dependencies: + path-key: "npm:^3.0.0" + checksum: 141e0b8f0e3b137347a2896572c9a84701754dda0670d3ceb8c56a87702ee03c26227e4517ab93f2904acfc836547315e740b8289bb24ca0cd8ba2b198043b0f + languageName: node + linkType: hard + "npm-run-path@npm:^4.0.1": version: 4.0.1 resolution: "npm-run-path@npm:4.0.1" @@ -20800,7 +21875,7 @@ __metadata: languageName: node linkType: hard -"object.assign@npm:^4.1.4": +"object.assign@npm:^4.1.4, object.assign@npm:^4.1.5": version: 4.1.5 resolution: "object.assign@npm:4.1.5" dependencies: @@ -20823,6 +21898,17 @@ __metadata: languageName: node linkType: hard +"object.entries@npm:^1.1.7": + version: 1.1.8 + resolution: "object.entries@npm:1.1.8" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-object-atoms: ^1.0.0 + checksum: 5314877cb637ef3437a30bba61d9bacdb3ce74bf73ac101518be0633c37840c8cc67407edb341f766e8093b3d7516d5c3358f25adfee4a2c697c0ec4c8491907 + languageName: node + linkType: hard + "object.fromentries@npm:^2.0.0 || ^1.0.0, object.fromentries@npm:^2.0.5, object.fromentries@npm:^2.0.6, object.fromentries@npm:^2.0.7": version: 2.0.7 resolution: "object.fromentries@npm:2.0.7" @@ -20859,7 +21945,7 @@ __metadata: languageName: node linkType: hard -"object.hasown@npm:^1.1.1, object.hasown@npm:^1.1.2": +"object.hasown@npm:^1.1.1, object.hasown@npm:^1.1.2, object.hasown@npm:^1.1.3": version: 1.1.3 resolution: "object.hasown@npm:1.1.3" dependencies: @@ -20994,6 +22080,18 @@ __metadata: languageName: node linkType: hard +"optimism@npm:^0.18.0": + version: 0.18.0 + resolution: "optimism@npm:0.18.0" + dependencies: + "@wry/caches": ^1.0.0 + "@wry/context": ^0.7.0 + "@wry/trie": ^0.4.3 + tslib: ^2.3.0 + checksum: d6ed6a90b05ee886dadfe556c7a30227c66843f51278e51eb843977a6a9368b6c50297fcc63fa514f53d8a5a58f8ddc8049c2356bd4ffac32f8961bcb806254d + languageName: node + linkType: hard + "optionator@npm:^0.9.1, optionator@npm:^0.9.3": version: 0.9.3 resolution: "optionator@npm:0.9.3" @@ -21118,6 +22216,13 @@ __metadata: languageName: node linkType: hard +"p-finally@npm:^2.0.0": + version: 2.0.1 + resolution: "p-finally@npm:2.0.1" + checksum: 6306a2851c3b28f8b603624f395ae84dce76970498fed8aa6aae2d930595053746edf1e4ee0c4b78a97410d84aa4504d63179f5310d555511ecd226f53ed1e8e + languageName: node + linkType: hard + "p-limit@npm:^1.1.0": version: 1.3.0 resolution: "p-limit@npm:1.3.0" @@ -21206,6 +22311,15 @@ __metadata: languageName: node linkType: hard +"p-map@npm:^5.1.0": + version: 5.5.0 + resolution: "p-map@npm:5.5.0" + dependencies: + aggregate-error: "npm:^4.0.0" + checksum: 065cb6fca6b78afbd070dd9224ff160dc23eea96e57863c09a0c8ea7ce921043f76854be7ee0abc295cff1ac9adcf700e79a1fbe3b80b625081087be58e7effb + languageName: node + linkType: hard + "p-retry@npm:^3.0.1": version: 3.0.1 resolution: "p-retry@npm:3.0.1" @@ -21484,6 +22598,13 @@ __metadata: languageName: node linkType: hard +"path-exists@npm:^5.0.0": + version: 5.0.0 + resolution: "path-exists@npm:5.0.0" + checksum: 8ca842868cab09423994596eb2c5ec2a971c17d1a3cb36dbf060592c730c725cd524b9067d7d2a1e031fef9ba7bd2ac6dc5ec9fb92aa693265f7be3987045254 + languageName: node + linkType: hard + "path-is-absolute@npm:^1.0.0": version: 1.0.1 resolution: "path-is-absolute@npm:1.0.1" @@ -21655,7 +22776,7 @@ __metadata: languageName: node linkType: hard -"pinkie-promise@npm:^2.0.0": +"pinkie-promise@npm:^2.0.0, pinkie-promise@npm:^2.0.1": version: 2.0.1 resolution: "pinkie-promise@npm:2.0.1" dependencies: @@ -21809,6 +22930,13 @@ __metadata: languageName: node linkType: hard +"possible-typed-array-names@npm:^1.0.0": + version: 1.0.0 + resolution: "possible-typed-array-names@npm:1.0.0" + checksum: b32d403ece71e042385cc7856385cecf1cd8e144fa74d2f1de40d1e16035dba097bc189715925e79b67bdd1472796ff168d3a90d296356c9c94d272d5b95f3ae + languageName: node + linkType: hard + "postcss-flexbugs-fixes@npm:^4.1.0": version: 4.2.1 resolution: "postcss-flexbugs-fixes@npm:4.2.1" @@ -21951,7 +23079,7 @@ __metadata: languageName: node linkType: hard -"prettier@npm:2.8.8": +"prettier@npm:2.8.8, prettier@npm:^2.8.4": version: 2.8.8 resolution: "prettier@npm:2.8.8" bin: @@ -22401,6 +23529,16 @@ __metadata: languageName: node linkType: hard +"quibble@npm:^0.9.2": + version: 0.9.2 + resolution: "quibble@npm:0.9.2" + dependencies: + lodash: ^4.17.21 + resolve: ^1.22.8 + checksum: b1523912304770da3309a08be8182be82802589cce9870df1405c7cfadba7632650dffb374969e37aed3a3125f03fd7787acf294a3668ae0c810091bd3d1adcf + languageName: node + linkType: hard + "quick-lru@npm:^4.0.1": version: 4.0.1 resolution: "quick-lru@npm:4.0.1" @@ -22431,6 +23569,13 @@ __metadata: languageName: node linkType: hard +"ramda@npm:^0.25.0": + version: 0.25.0 + resolution: "ramda@npm:0.25.0" + checksum: 008abbcc69aefd89a2a4a0c9f4cf9f8da2ec490a0e1e261b4c88de8540ef0c383d469bfdf71b758b559377c71bfa8efea164fdb1779169359a86b46f7cb23cb1 + languageName: node + linkType: hard + "randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5, randombytes@npm:^2.1.0": version: 2.1.0 resolution: "randombytes@npm:2.1.0" @@ -23414,6 +24559,51 @@ __metadata: languageName: unknown linkType: soft +"reactotron-apollo-client@workspace:*, reactotron-apollo-client@workspace:lib/reactotron-apollo-client": + version: 0.0.0-use.local + resolution: "reactotron-apollo-client@workspace:lib/reactotron-apollo-client" + dependencies: + "@apollo/client": ^3.8.3 + "@babel/core": ^7.21.0 + "@babel/preset-env": ^7.20.2 + "@babel/preset-typescript": ^7.21.0 + "@types/jest": ^29.4.0 + "@types/node": ^11.9.5 + "@types/ramda": ^0.25.50 + "@typescript-eslint/eslint-plugin": ^5.54.0 + "@typescript-eslint/parser": ^5.54.0 + babel-eslint: ^10.1.0 + babel-jest: ^29.4.3 + eslint: ^8.35.0 + eslint-config-prettier: ^8.6.0 + eslint-config-standard: ^17.0.0 + eslint-plugin-import: ^2.27.5 + eslint-plugin-node: ^11.1.0 + eslint-plugin-promise: ^6.1.1 + eslint-plugin-react: ^7.32.2 + eslint-plugin-react-hooks: ^4.6.0 + eslint-plugin-standard: ^5.0.0 + graphql: ^16.8.0 + jest: ^29.4.3 + prettier: ^2.8.4 + ramda: ^0.25.0 + reactotron-core-client: "workspace:*" + rollup: ^1.1.2 + rollup-plugin-babel: ^4.3.2 + rollup-plugin-babel-minify: ^7.0.0 + rollup-plugin-filesize: ^6.0.1 + rollup-plugin-node-resolve: ^4.0.0 + rollup-plugin-resolve: ^0.0.1-predev.1 + testdouble: ^3.16.8 + trash-cli: ^5.0.0 + ts-jest: ^29.0.5 + typescript: 4.9.5 + peerDependencies: + "@apollo/client": "*" + reactotron-core-client: "*" + languageName: unknown + linkType: soft + "reactotron-app@workspace:apps/reactotron-app": version: 0.0.0-use.local resolution: "reactotron-app@workspace:apps/reactotron-app" @@ -23967,6 +25157,17 @@ __metadata: languageName: node linkType: hard +"read-pkg-up@npm:^8.0.0": + version: 8.0.0 + resolution: "read-pkg-up@npm:8.0.0" + dependencies: + find-up: "npm:^5.0.0" + read-pkg: "npm:^6.0.0" + type-fest: "npm:^1.0.1" + checksum: fe4c80401656b40b408884457fffb5a8015c03b1018cfd8e48f8d82a5e9023e24963603aeb2755608d964593e046c15b34d29b07d35af9c7aa478be81805209c + languageName: node + linkType: hard + "read-pkg@npm:^3.0.0": version: 3.0.0 resolution: "read-pkg@npm:3.0.0" @@ -23990,6 +25191,18 @@ __metadata: languageName: node linkType: hard +"read-pkg@npm:^6.0.0": + version: 6.0.0 + resolution: "read-pkg@npm:6.0.0" + dependencies: + "@types/normalize-package-data": ^2.4.0 + normalize-package-data: ^3.0.2 + parse-json: ^5.2.0 + type-fest: ^1.0.1 + checksum: 0cebdff381128e923815c643074a87011070e5fc352bee575d327d6485da3317fab6d802a7b03deeb0be7be8d3ad1640397b3d5d2f044452caf4e8d1736bf94f + languageName: node + linkType: hard + "readable-stream@npm:1 || 2, readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.6, readable-stream@npm:^2.1.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" @@ -24097,6 +25310,16 @@ __metadata: languageName: node linkType: hard +"redent@npm:^4.0.0": + version: 4.0.0 + resolution: "redent@npm:4.0.0" + dependencies: + indent-string: "npm:^5.0.0" + strip-indent: "npm:^4.0.0" + checksum: 6944e7b1d8f3fd28c2515f5c605b9f7f0ea0f4edddf41890bbbdd4d9ee35abb7540c3b278f03ff827bd278bb6ff4a5bd8692ca406b748c5c1c3ce7355e9fbf8f + languageName: node + linkType: hard + "redux-thunk@npm:^3.1.0": version: 3.1.0 resolution: "redux-thunk@npm:3.1.0" @@ -24218,6 +25441,18 @@ __metadata: languageName: node linkType: hard +"regexp.prototype.flags@npm:^1.5.2": + version: 1.5.2 + resolution: "regexp.prototype.flags@npm:1.5.2" + dependencies: + call-bind: ^1.0.6 + define-properties: ^1.2.1 + es-errors: ^1.3.0 + set-function-name: ^2.0.1 + checksum: d7f333667d5c564e2d7a97c56c3075d64c722c9bb51b2b4df6822b2e8096d623a5e63088fb4c83df919b6951ef8113841de8b47de7224872fa6838bc5d8a7d64 + languageName: node + linkType: hard + "regexpp@npm:^3.0.0, regexpp@npm:^3.2.0": version: 3.2.0 resolution: "regexpp@npm:3.2.0" @@ -24250,6 +25485,21 @@ __metadata: languageName: node linkType: hard +"rehackt@npm:0.0.4": + version: 0.0.4 + resolution: "rehackt@npm:0.0.4" + peerDependencies: + "@types/react": "*" + react: "*" + peerDependenciesMeta: + "@types/react": + optional: true + react: + optional: true + checksum: f2811c24847f7a03935c3b2093a01439f883550f6022e6d220574d0f4333fc24dd1bd746bb579038723eef1c48a2ce3002dd91aea9c2e15d2bd105ed6786f8c1 + languageName: node + linkType: hard + "relateurl@npm:^0.2.7": version: 0.2.7 resolution: "relateurl@npm:0.2.7" @@ -24476,7 +25726,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^2.0.0-next.3, resolve@npm:^2.0.0-next.4": +"resolve@npm:^2.0.0-next.3, resolve@npm:^2.0.0-next.4, resolve@npm:^2.0.0-next.5": version: 2.0.0-next.5 resolution: "resolve@npm:2.0.0-next.5" dependencies: @@ -24511,7 +25761,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^2.0.0-next.3#~builtin, resolve@patch:resolve@^2.0.0-next.4#~builtin": +"resolve@patch:resolve@^2.0.0-next.3#~builtin, resolve@patch:resolve@^2.0.0-next.4#~builtin, resolve@patch:resolve@^2.0.0-next.5#~builtin": version: 2.0.0-next.5 resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#~builtin::version=2.0.0-next.5&hash=c3c19d" dependencies: @@ -24533,6 +25783,13 @@ __metadata: languageName: node linkType: hard +"response-iterator@npm:^0.2.6": + version: 0.2.6 + resolution: "response-iterator@npm:0.2.6" + checksum: b0db3c0665a0d698d65512951de9623c086b9c84ce015a76076d4bd0bf733779601d0b41f0931d16ae38132fba29e1ce291c1f8e6550fc32daaa2dc3ab4f338d + languageName: node + linkType: hard + "responselike@npm:^2.0.0": version: 2.0.1 resolution: "responselike@npm:2.0.1" @@ -24705,7 +25962,7 @@ __metadata: languageName: node linkType: hard -"rollup-plugin-babel@npm:4.4.0, rollup-plugin-babel@npm:^4.4.0": +"rollup-plugin-babel@npm:4.4.0, rollup-plugin-babel@npm:^4.3.2, rollup-plugin-babel@npm:^4.4.0": version: 4.4.0 resolution: "rollup-plugin-babel@npm:4.4.0" dependencies: @@ -24975,6 +26232,18 @@ __metadata: languageName: node linkType: hard +"safe-array-concat@npm:^1.1.2": + version: 1.1.2 + resolution: "safe-array-concat@npm:1.1.2" + dependencies: + call-bind: ^1.0.7 + get-intrinsic: ^1.2.4 + has-symbols: ^1.0.3 + isarray: ^2.0.5 + checksum: a3b259694754ddfb73ae0663829e396977b99ff21cbe8607f35a469655656da8e271753497e59da8a7575baa94d2e684bea3e10ddd74ba046c0c9b4418ffa0c4 + languageName: node + linkType: hard + "safe-buffer@npm:5.1.1": version: 5.1.1 resolution: "safe-buffer@npm:5.1.1" @@ -25014,6 +26283,17 @@ __metadata: languageName: node linkType: hard +"safe-regex-test@npm:^1.0.3": + version: 1.0.3 + resolution: "safe-regex-test@npm:1.0.3" + dependencies: + call-bind: ^1.0.6 + es-errors: ^1.3.0 + is-regex: ^1.1.4 + checksum: 6c7d392ff1ae7a3ae85273450ed02d1d131f1d2c76e177d6b03eb88e6df8fa062639070e7d311802c1615f351f18dc58f9454501c58e28d5ffd9b8f502ba6489 + languageName: node + linkType: hard + "safe-regex@npm:^1.1.0": version: 1.1.0 resolution: "safe-regex@npm:1.1.0" @@ -25191,7 +26471,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.1.3, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4": +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.1.3, semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4": version: 7.5.4 resolution: "semver@npm:7.5.4" dependencies: @@ -25202,6 +26482,17 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.3.4": + version: 7.6.0 + resolution: "semver@npm:7.6.0" + dependencies: + lru-cache: "npm:^6.0.0" + bin: + semver: bin/semver.js + checksum: 7427f05b70786c696640edc29fdd4bc33b2acf3bbe1740b955029044f80575fc664e1a512e4113c3af21e767154a94b4aa214bf6cd6e42a1f6dba5914e0b208c + languageName: node + linkType: hard + "send@npm:0.18.0, send@npm:^0.18.0": version: 0.18.0 resolution: "send@npm:0.18.0" @@ -25324,6 +26615,20 @@ __metadata: languageName: node linkType: hard +"set-function-length@npm:^1.2.1": + version: 1.2.2 + resolution: "set-function-length@npm:1.2.2" + dependencies: + define-data-property: ^1.1.4 + es-errors: ^1.3.0 + function-bind: ^1.1.2 + get-intrinsic: ^1.2.4 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.2 + checksum: a8248bdacdf84cb0fab4637774d9fb3c7a8e6089866d04c817583ff48e14149c87044ce683d7f50759a8c50fb87c7a7e173535b06169c87ef76f5fb276dfff72 + languageName: node + linkType: hard + "set-function-name@npm:^2.0.0, set-function-name@npm:^2.0.1": version: 2.0.1 resolution: "set-function-name@npm:2.0.1" @@ -25335,6 +26640,18 @@ __metadata: languageName: node linkType: hard +"set-function-name@npm:^2.0.2": + version: 2.0.2 + resolution: "set-function-name@npm:2.0.2" + dependencies: + define-data-property: ^1.1.4 + es-errors: ^1.3.0 + functions-have-names: ^1.2.3 + has-property-descriptors: ^1.0.2 + checksum: d6229a71527fd0404399fc6227e0ff0652800362510822a291925c9d7b48a1ca1a468b11b281471c34cd5a2da0db4f5d7ff315a61d26655e77f6e971e6d0c80f + languageName: node + linkType: hard + "set-value@npm:^2.0.0, set-value@npm:^2.0.1": version: 2.0.1 resolution: "set-value@npm:2.0.1" @@ -25485,6 +26802,18 @@ __metadata: languageName: node linkType: hard +"side-channel@npm:^1.0.6": + version: 1.0.6 + resolution: "side-channel@npm:1.0.6" + dependencies: + call-bind: ^1.0.7 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.4 + object-inspect: ^1.13.1 + checksum: bfc1afc1827d712271453e91b7cd3878ac0efd767495fd4e594c4c2afaa7963b7b510e249572bfd54b0527e66e4a12b61b80c061389e129755f34c493aad9b97 + languageName: node + linkType: hard + "signal-exit@npm:^3.0.0, 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" @@ -26299,6 +27628,26 @@ __metadata: languageName: node linkType: hard +"string.prototype.matchall@npm:^4.0.10": + version: 4.0.11 + resolution: "string.prototype.matchall@npm:4.0.11" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.2 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + get-intrinsic: ^1.2.4 + gopd: ^1.0.1 + has-symbols: ^1.0.3 + internal-slot: ^1.0.7 + regexp.prototype.flags: ^1.5.2 + set-function-name: ^2.0.2 + side-channel: ^1.0.6 + checksum: 6ac6566ed065c0c8489c91156078ca077db8ff64d683fda97ae652d00c52dfa5f39aaab0a710d8243031a857fd2c7c511e38b45524796764d25472d10d7075ae + languageName: node + linkType: hard + "string.prototype.padend@npm:^3.0.0": version: 3.1.5 resolution: "string.prototype.padend@npm:3.1.5" @@ -26332,6 +27681,18 @@ __metadata: languageName: node linkType: hard +"string.prototype.trim@npm:^1.2.9": + version: 1.2.9 + resolution: "string.prototype.trim@npm:1.2.9" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.0 + es-object-atoms: ^1.0.0 + checksum: ea2df6ec1e914c9d4e2dc856fa08228e8b1be59b59e50b17578c94a66a176888f417264bb763d4aac638ad3b3dad56e7a03d9317086a178078d131aa293ba193 + languageName: node + linkType: hard + "string.prototype.trimend@npm:^1.0.7": version: 1.0.7 resolution: "string.prototype.trimend@npm:1.0.7" @@ -26343,6 +27704,17 @@ __metadata: languageName: node linkType: hard +"string.prototype.trimend@npm:^1.0.8": + version: 1.0.8 + resolution: "string.prototype.trimend@npm:1.0.8" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-object-atoms: ^1.0.0 + checksum: cc3bd2de08d8968a28787deba9a3cb3f17ca5f9f770c91e7e8fa3e7d47f079bad70fadce16f05dda9f261788be2c6e84a942f618c3bed31e42abc5c1084f8dfd + languageName: node + linkType: hard + "string.prototype.trimstart@npm:^1.0.7": version: 1.0.7 resolution: "string.prototype.trimstart@npm:1.0.7" @@ -26484,6 +27856,15 @@ __metadata: languageName: node linkType: hard +"strip-indent@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-indent@npm:4.0.0" + dependencies: + min-indent: ^1.0.1 + checksum: 06cbcd93da721c46bc13caeb1c00af93a9b18146a1c95927672d2decab6a25ad83662772417cea9317a2507fb143253ecc23c4415b64f5828cef9b638a744598 + languageName: node + linkType: hard + "strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" @@ -26709,6 +28090,13 @@ __metadata: languageName: node linkType: hard +"symbol-observable@npm:^4.0.0": + version: 4.0.0 + resolution: "symbol-observable@npm:4.0.0" + checksum: 212c7edce6186634d671336a88c0e0bbd626c2ab51ed57498dc90698cce541839a261b969c2a1e8dd43762133d47672e8b62e0b1ce9cf4157934ba45fd172ba8 + languageName: node + linkType: hard + "symbol-tree@npm:^3.2.4": version: 3.2.4 resolution: "symbol-tree@npm:3.2.4" @@ -26963,6 +28351,18 @@ __metadata: languageName: node linkType: hard +"testdouble@npm:^3.16.8": + version: 3.20.2 + resolution: "testdouble@npm:3.20.2" + dependencies: + lodash: ^4.17.21 + quibble: ^0.9.2 + stringify-object-es5: ^2.5.0 + theredoc: ^1.0.0 + checksum: 2a8b96b84d106125ca27acb6304dbc6c6999f8640b3f11afead71629d1da15bea8e064b333aa6f59b0b715016a41217d294eb1b0d6a090599c3c52b352b8a97b + languageName: node + linkType: hard + "testdouble@npm:^3.20.0": version: 3.20.1 resolution: "testdouble@npm:3.20.1" @@ -27240,6 +28640,34 @@ __metadata: languageName: node linkType: hard +"trash-cli@npm:^5.0.0": + version: 5.0.0 + resolution: "trash-cli@npm:5.0.0" + dependencies: + meow: "npm:^10.1.2" + trash: "npm:^8.0.0" + bin: + trash: cli.js + checksum: b987156abbbc36b60f29da3666c8ca80dddafbe2b0e8c00641e739160b287f88341fafbd5ba457f5ad15d4cb97e94fa2e58f848cf0c0f2c6441c6f3dbdba529e + languageName: node + linkType: hard + +"trash@npm:^8.0.0": + version: 8.1.1 + resolution: "trash@npm:8.1.1" + dependencies: + "@sindresorhus/chunkify": "npm:^0.2.0" + "@stroncium/procfs": "npm:^1.2.1" + globby: "npm:^7.1.1" + is-path-inside: "npm:^4.0.0" + move-file: "npm:^3.0.0" + p-map: "npm:^5.1.0" + uuid: "npm:^8.3.2" + xdg-trashdir: "npm:^3.1.0" + checksum: ffb831a5ca62dd2b9362c619dab2a7cec356f7dc3304070b5c08f8161651cf72bf921785d12ec858a6ddaaed1cdb9385d074c89d0767a3a8a48ffc81dc1790bc + languageName: node + linkType: hard + "traverse@npm:~0.6.6": version: 0.6.8 resolution: "traverse@npm:0.6.8" @@ -27254,6 +28682,13 @@ __metadata: languageName: node linkType: hard +"trim-newlines@npm:^4.0.2": + version: 4.1.1 + resolution: "trim-newlines@npm:4.1.1" + checksum: 5b09f8e329e8f33c1111ef26906332ba7ba7248cde3e26fc054bb3d69f2858bf5feedca9559c572ff91f33e52977c28e0d41c387df6a02a633cbb8c2d8238627 + languageName: node + linkType: hard + "truncate-utf8-bytes@npm:^1.0.0": version: 1.0.2 resolution: "truncate-utf8-bytes@npm:1.0.2" @@ -27293,6 +28728,48 @@ __metadata: languageName: node linkType: hard +"ts-invariant@npm:^0.10.3": + version: 0.10.3 + resolution: "ts-invariant@npm:0.10.3" + dependencies: + tslib: ^2.1.0 + checksum: bb07d56fe4aae69d8860e0301dfdee2d375281159054bc24bf1e49e513fb0835bf7f70a11351344d213a79199c5e695f37ebbf5a447188a377ce0cd81d91ddb5 + languageName: node + linkType: hard + +"ts-jest@npm:^29.0.5": + version: 29.1.2 + resolution: "ts-jest@npm:29.1.2" + dependencies: + bs-logger: 0.x + fast-json-stable-stringify: 2.x + jest-util: ^29.0.0 + json5: ^2.2.3 + lodash.memoize: 4.x + make-error: 1.x + semver: ^7.5.3 + yargs-parser: ^21.0.1 + peerDependencies: + "@babel/core": ">=7.0.0-beta.0 <8" + "@jest/types": ^29.0.0 + babel-jest: ^29.0.0 + jest: ^29.0.0 + typescript: ">=4.3 <6" + peerDependenciesMeta: + "@babel/core": + optional: true + "@jest/types": + optional: true + babel-jest: + optional: true + esbuild: + optional: true + bin: + ts-jest: cli.js + checksum: a0ce0affc1b716c78c9ab55837829c42cb04b753d174a5c796bb1ddf9f0379fc20647b76fbe30edb30d9b23181908138d6b4c51ef2ae5e187b66635c295cefd5 + languageName: node + linkType: hard + "ts-jest@npm:^29.1.1": version: 29.1.1 resolution: "ts-jest@npm:29.1.1" @@ -27559,6 +29036,13 @@ __metadata: languageName: node linkType: hard +"type-fest@npm:^1.0.1, type-fest@npm:^1.2.1, type-fest@npm:^1.2.2": + version: 1.4.0 + resolution: "type-fest@npm:1.4.0" + checksum: b011c3388665b097ae6a109a437a04d6f61d81b7357f74cbcb02246f2f5bd72b888ae33631b99871388122ba0a87f4ff1c94078e7119ff22c70e52c0ff828201 + languageName: node + linkType: hard + "type-fest@npm:^2.17.0": version: 2.19.0 resolution: "type-fest@npm:2.19.0" @@ -27594,6 +29078,17 @@ __metadata: languageName: node linkType: hard +"typed-array-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "typed-array-buffer@npm:1.0.2" + dependencies: + call-bind: ^1.0.7 + es-errors: ^1.3.0 + is-typed-array: ^1.1.13 + checksum: 02ffc185d29c6df07968272b15d5319a1610817916ec8d4cd670ded5d1efe72901541ff2202fcc622730d8a549c76e198a2f74e312eabbfb712ed907d45cbb0b + languageName: node + linkType: hard + "typed-array-byte-length@npm:^1.0.0": version: 1.0.0 resolution: "typed-array-byte-length@npm:1.0.0" @@ -27606,6 +29101,19 @@ __metadata: languageName: node linkType: hard +"typed-array-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "typed-array-byte-length@npm:1.0.1" + dependencies: + call-bind: ^1.0.7 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-proto: ^1.0.3 + is-typed-array: ^1.1.13 + checksum: f65e5ecd1cf76b1a2d0d6f631f3ea3cdb5e08da106c6703ffe687d583e49954d570cc80434816d3746e18be889ffe53c58bf3e538081ea4077c26a41055b216d + languageName: node + linkType: hard + "typed-array-byte-offset@npm:^1.0.0": version: 1.0.0 resolution: "typed-array-byte-offset@npm:1.0.0" @@ -27619,6 +29127,20 @@ __metadata: languageName: node linkType: hard +"typed-array-byte-offset@npm:^1.0.2": + version: 1.0.2 + resolution: "typed-array-byte-offset@npm:1.0.2" + dependencies: + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.7 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-proto: ^1.0.3 + is-typed-array: ^1.1.13 + checksum: c8645c8794a621a0adcc142e0e2c57b1823bbfa4d590ad2c76b266aa3823895cf7afb9a893bf6685e18454ab1b0241e1a8d885a2d1340948efa4b56add4b5f67 + languageName: node + linkType: hard + "typed-array-length@npm:^1.0.4": version: 1.0.4 resolution: "typed-array-length@npm:1.0.4" @@ -27630,6 +29152,20 @@ __metadata: languageName: node linkType: hard +"typed-array-length@npm:^1.0.5": + version: 1.0.6 + resolution: "typed-array-length@npm:1.0.6" + dependencies: + call-bind: ^1.0.7 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-proto: ^1.0.3 + is-typed-array: ^1.1.13 + possible-typed-array-names: ^1.0.0 + checksum: f0315e5b8f0168c29d390ff410ad13e4d511c78e6006df4a104576844812ee447fcc32daab1f3a76c9ef4f64eff808e134528b5b2439de335586b392e9750e5c + languageName: node + linkType: hard + "typed-styles@npm:^0.0.7": version: 0.0.7 resolution: "typed-styles@npm:0.0.7" @@ -27644,23 +29180,23 @@ __metadata: languageName: node linkType: hard -"typescript@npm:5.3.2": - version: 5.3.2 - resolution: "typescript@npm:5.3.2" +"typescript@npm:4.9.5, typescript@npm:^4.9.5": + version: 4.9.5 + resolution: "typescript@npm:4.9.5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: d92534dda639eb825db013203404c1fabca8ac630564283c9e7dc9e64fd9c9346c2de95ecebdf3e6e8c1c32941bca1cfe0da37877611feb9daf8feeaea58d230 + checksum: ee000bc26848147ad423b581bd250075662a354d84f0e06eb76d3b892328d8d4440b7487b5a83e851b12b255f55d71835b008a66cbf8f255a11e4400159237db languageName: node linkType: hard -"typescript@npm:^4.9.5": - version: 4.9.5 - resolution: "typescript@npm:4.9.5" +"typescript@npm:5.3.2": + version: 5.3.2 + resolution: "typescript@npm:5.3.2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: ee000bc26848147ad423b581bd250075662a354d84f0e06eb76d3b892328d8d4440b7487b5a83e851b12b255f55d71835b008a66cbf8f255a11e4400159237db + checksum: d92534dda639eb825db013203404c1fabca8ac630564283c9e7dc9e64fd9c9346c2de95ecebdf3e6e8c1c32941bca1cfe0da37877611feb9daf8feeaea58d230 languageName: node linkType: hard @@ -27674,23 +29210,23 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@5.3.2#~builtin": - version: 5.3.2 - resolution: "typescript@patch:typescript@npm%3A5.3.2#~builtin::version=5.3.2&hash=f3b441" +"typescript@patch:typescript@4.9.5#~builtin, typescript@patch:typescript@^4.9.5#~builtin": + version: 4.9.5 + resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin::version=4.9.5&hash=289587" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: c034461079fbfde3cb584ddee52afccb15b6e32a0ce186d0b2719968786f7ca73e1b07f71fac4163088790b16811c6ccf79680de190664ef66ff0ba9c1fe4a23 + checksum: 1f8f3b6aaea19f0f67cba79057674ba580438a7db55057eb89cc06950483c5d632115c14077f6663ea76fd09fce3c190e6414bb98582ec80aa5a4eaf345d5b68 languageName: node linkType: hard -"typescript@patch:typescript@^4.9.5#~builtin": - version: 4.9.5 - resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin::version=4.9.5&hash=289587" +"typescript@patch:typescript@5.3.2#~builtin": + version: 5.3.2 + resolution: "typescript@patch:typescript@npm%3A5.3.2#~builtin::version=5.3.2&hash=f3b441" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 1f8f3b6aaea19f0f67cba79057674ba580438a7db55057eb89cc06950483c5d632115c14077f6663ea76fd09fce3c190e6414bb98582ec80aa5a4eaf345d5b68 + checksum: c034461079fbfde3cb584ddee52afccb15b6e32a0ce186d0b2719968786f7ca73e1b07f71fac4163088790b16811c6ccf79680de190664ef66ff0ba9c1fe4a23 languageName: node linkType: hard @@ -28103,6 +29639,15 @@ __metadata: languageName: node linkType: hard +"user-home@npm:^2.0.0": + version: 2.0.0 + resolution: "user-home@npm:2.0.0" + dependencies: + os-homedir: "npm:^1.0.0" + checksum: a3329faa959fcd9e3e01a03347ca974f7f6b8896e6a634f29c61d8d5b61557d853c6fc5a6dff1a28e2da85b400d0e4490368a28de452ba8c41a2bf3a92cb110a + languageName: node + linkType: hard + "utf8-byte-length@npm:^1.0.1": version: 1.0.4 resolution: "utf8-byte-length@npm:1.0.4" @@ -28762,6 +30307,19 @@ __metadata: languageName: node linkType: hard +"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15": + version: 1.1.15 + resolution: "which-typed-array@npm:1.1.15" + dependencies: + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.7 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-tostringtag: ^1.0.2 + checksum: 65227dcbfadf5677aacc43ec84356d17b5500cb8b8753059bb4397de5cd0c2de681d24e1a7bd575633f976a95f88233abfd6549c2105ef4ebd58af8aa1807c75 + languageName: node + linkType: hard + "which@npm:^1.2.14, which@npm:^1.2.9, which@npm:^1.3.1": version: 1.3.1 resolution: "which@npm:1.3.1" @@ -28984,6 +30542,25 @@ __metadata: languageName: node linkType: hard +"xdg-basedir@npm:^4.0.0": + version: 4.0.0 + resolution: "xdg-basedir@npm:4.0.0" + checksum: 0073d5b59a37224ed3a5ac0dd2ec1d36f09c49f0afd769008a6e9cd3cd666bd6317bd1c7ce2eab47e1de285a286bad11a9b038196413cd753b79770361855f3c + languageName: node + linkType: hard + +"xdg-trashdir@npm:^3.1.0": + version: 3.1.0 + resolution: "xdg-trashdir@npm:3.1.0" + dependencies: + "@sindresorhus/df": "npm:^3.1.1" + mount-point: "npm:^3.0.0" + user-home: "npm:^2.0.0" + xdg-basedir: "npm:^4.0.0" + checksum: 1b8ed9229af43fa17fcc2cbfd7b470459b2286da5eb141046817e25ba78eeee07d3a4ae28d5c32e2106641dd2c23cc18b46a77b813706ff85f6618c1f61b1827 + languageName: node + linkType: hard + "xml-name-validator@npm:^4.0.0": version: 4.0.0 resolution: "xml-name-validator@npm:4.0.0" @@ -29210,6 +30787,22 @@ __metadata: languageName: node linkType: hard +"zen-observable-ts@npm:^1.2.5": + version: 1.2.5 + resolution: "zen-observable-ts@npm:1.2.5" + dependencies: + zen-observable: "npm:0.8.15" + checksum: 3b707b7a0239a9bc40f73ba71b27733a689a957c1f364fabb9fa9cbd7d04b7c2faf0d517bf17004e3ed3f4330ac613e84c0d32313e450ddaa046f3350af44541 + languageName: node + linkType: hard + +"zen-observable@npm:0.8.15": + version: 0.8.15 + resolution: "zen-observable@npm:0.8.15" + checksum: b7289084bc1fc74a559b7259faa23d3214b14b538a8843d2b001a35e27147833f4107590b1b44bf5bc7f6dfe6f488660d3a3725f268e09b3925b3476153b7821 + languageName: node + linkType: hard + "zx@npm:^7.2.3": version: 7.2.3 resolution: "zx@npm:7.2.3" From 490f5447879729a0c6c6540b3f8f9cccb2db976b Mon Sep 17 00:00:00 2001 From: Mark Rickert Date: Wed, 14 Feb 2024 09:59:03 -0700 Subject: [PATCH 08/18] Readme update for reactotron-apollo-client --- lib/reactotron-apollo-client/.prettierignore | 9 ------ lib/reactotron-apollo-client/.prettierrc | 5 --- lib/reactotron-apollo-client/README.md | 33 +++++++++----------- lib/reactotron-apollo-client/src/index.ts | 1 + 4 files changed, 15 insertions(+), 33 deletions(-) delete mode 100644 lib/reactotron-apollo-client/.prettierignore delete mode 100644 lib/reactotron-apollo-client/.prettierrc create mode 100644 lib/reactotron-apollo-client/src/index.ts diff --git a/lib/reactotron-apollo-client/.prettierignore b/lib/reactotron-apollo-client/.prettierignore deleted file mode 100644 index e70c5e979..000000000 --- a/lib/reactotron-apollo-client/.prettierignore +++ /dev/null @@ -1,9 +0,0 @@ -**/.vscode -**/android -**/build -**/compiled -**/dist -**/ios -**/package.json -**/release -CHANGELOG.md diff --git a/lib/reactotron-apollo-client/.prettierrc b/lib/reactotron-apollo-client/.prettierrc deleted file mode 100644 index 1d44c3a9c..000000000 --- a/lib/reactotron-apollo-client/.prettierrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "printWidth": 100, - "semi": false, - "trailingComma": "es5" -} diff --git a/lib/reactotron-apollo-client/README.md b/lib/reactotron-apollo-client/README.md index 77bf19bed..1edb1e5b4 100644 --- a/lib/reactotron-apollo-client/README.md +++ b/lib/reactotron-apollo-client/README.md @@ -12,34 +12,29 @@ yarn add -D reactotron-apollo-client ## Usage -Import your mmkv storage instance: +Create your Apollo Client as you normally would, and then add the `reactotron-apollo-client` plugin:: ```js -import { MMKV } from "@apollo/client" -export const storage = new MMKV() +import { ApolloClient, InMemoryCache } from "@apollo/client" + +const cache = new InMemoryCache() +export const client = new ApolloClient({ + uri: "https://api.graphql.guide/graphql", + cache, + defaultOptions: { watchQuery: { fetchPolicy: "cache-and-network" } }, +}) ``` -To use the `mmkvPlugin`, add the additional plugin on the `import` line. +To use the `apolloPlugin`, add the additional plugin on the `import` line. ```js import Reactotron from "reactotron-react-native" -import mmkvPlugin from "reactotron-apollo-client" -import { storage } from "./mmkv/storage/instance/location" // <--- update this location +import apolloPlugin from "reactotron-apollo-client" +import { client } from "./apolloClient/location" // <--- update this location ... Reactotron.configure() - .use(mmkvPlugin({ storage })) // <--- here we go! + .use(apolloPlugin({ apolloClient: client })) // <--- here we go! .connect() ``` -And you're done! Now you can see your MMKV in Reactotron. - -## Advanced Usage - -`mmkvPlugin()` accepts an object with an `ignore` key. The value is an array of strings you would like to prevent sending to Reactotron. - -```js -mmkvPlugin({ - storage, - ignore: ["secret"], -}) -``` +And you're done! Now you can see your Apollo caches, queries, and mutations in Reactotron. diff --git a/lib/reactotron-apollo-client/src/index.ts b/lib/reactotron-apollo-client/src/index.ts new file mode 100644 index 000000000..58ce7e42a --- /dev/null +++ b/lib/reactotron-apollo-client/src/index.ts @@ -0,0 +1 @@ +export * from "./reactotron-apollo-client" From 0f5281eec583bf9254bca5118b9d7bdd74e49469 Mon Sep 17 00:00:00 2001 From: Mark Rickert Date: Wed, 14 Feb 2024 10:02:03 -0700 Subject: [PATCH 09/18] feat(reactotron-app): Each client now has an explicit list of plugins. Developers can now toggle interface features based on what plugins the user has installed and active within their ecosystem. Part of this was updating each library to have a `name` property. See example in the sidebar component for conditionally showing the Apollo sidebar button. --- apps/reactotron-app/package.json | 1 + .../renderer/components/SideBar/Sidebar.tsx | 50 +++++++++++++++--- .../src/renderer/components/SideBar/index.tsx | 12 ++++- .../contexts/Standalone/useStandalone.ts | 1 + .../src/reactotron-apollo-client.ts | 1 + .../src/plugins/api-response.ts | 1 + .../src/plugins/benchmark.ts | 1 + .../src/plugins/clear.ts | 1 + .../src/plugins/image.ts | 1 + .../src/plugins/logger.ts | 1 + .../src/plugins/repl.ts | 1 + .../src/plugins/state-responses.ts | 1 + .../src/reactotron-core-client.ts | 2 + lib/reactotron-mst/src/reactotron-mst.ts | 3 +- .../src/plugins/asyncStorage.ts | 1 + .../src/plugins/devTools.ts | 1 + .../src/plugins/networking.ts | 1 + .../src/plugins/openInEditor.ts | 1 + .../src/plugins/overlay/index.tsx | 14 ++--- .../src/plugins/storybook/index.tsx | 1 + .../src/plugins/trackGlobalErrors.ts | 1 + .../src/plugins/trackGlobalLogs.ts | 1 + lib/reactotron-redux/src/reactotron-redux.ts | 51 +++++++++++++++++++ yarn.lock | 2 +- 24 files changed, 133 insertions(+), 18 deletions(-) create mode 100644 lib/reactotron-redux/src/reactotron-redux.ts diff --git a/apps/reactotron-app/package.json b/apps/reactotron-app/package.json index 58ed4961c..3b1d1114a 100644 --- a/apps/reactotron-app/package.json +++ b/apps/reactotron-app/package.json @@ -65,6 +65,7 @@ "react-motion": "0.5.2", "react-router-dom": "^6.18.0", "react-tooltip": "4.5.1", + "react-transition-group": "^4.4.5", "reactotron-core-contract": "workspace:*", "reactotron-core-server": "workspace:*", "reactotron-core-ui": "workspace:*", diff --git a/apps/reactotron-app/src/renderer/components/SideBar/Sidebar.tsx b/apps/reactotron-app/src/renderer/components/SideBar/Sidebar.tsx index 71dc61123..2b3e1ff7c 100644 --- a/apps/reactotron-app/src/renderer/components/SideBar/Sidebar.tsx +++ b/apps/reactotron-app/src/renderer/components/SideBar/Sidebar.tsx @@ -15,6 +15,12 @@ import styled from "styled-components" import SideBarButton from "../SideBarButton" import { reactotronLogo } from "../../images" import { ServerStatus } from "../../contexts/Standalone/useStandalone" +import { + Transition, + CSSTransition, + SwitchTransition, + TransitionGroup, +} from "react-transition-group" interface SideBarContainerProps { $isOpen: boolean @@ -34,7 +40,20 @@ const Spacer = styled.div` flex: 1; ` -function SideBar({ isOpen, serverStatus }: { isOpen: boolean; serverStatus: ServerStatus }) { +const transitionStyles = { + entering: { opacity: 0 }, + entered: { opacity: 1 }, + exiting: { opacity: 1 }, + exited: { opacity: 0 }, +} + +interface SideBarProps { + isOpen: boolean + serverStatus: ServerStatus + plugins: string[] +} + +function SideBar({ isOpen, serverStatus, plugins }: SideBarProps) { let serverIcon = MdMobiledataOff let iconColor let serverText = "Stopped" @@ -55,6 +74,11 @@ function SideBar({ isOpen, serverStatus }: { isOpen: boolean; serverStatus: Serv } } + const hasApolloClient = React.useMemo( + () => plugins.find((plugin) => plugin === "apollo-client"), + [plugins] + ) + return ( @@ -73,12 +97,24 @@ function SideBar({ isOpen, serverStatus }: { isOpen: boolean; serverStatus: Serv /> - + + {(state) => ( +
+ +
+ )} +
diff --git a/apps/reactotron-app/src/renderer/components/SideBar/index.tsx b/apps/reactotron-app/src/renderer/components/SideBar/index.tsx index d39efe754..150cf18ef 100644 --- a/apps/reactotron-app/src/renderer/components/SideBar/index.tsx +++ b/apps/reactotron-app/src/renderer/components/SideBar/index.tsx @@ -6,9 +6,17 @@ import SidebarStateless from "./Sidebar" function SideBar() { const { isSideBarOpen } = useContext(LayoutContext) - const { serverStatus } = useContext(StandaloneContext) - return + const standaloneContext = useContext(StandaloneContext) + const { serverStatus, selectedConnection } = standaloneContext + + return ( + + ) } export default SideBar diff --git a/apps/reactotron-app/src/renderer/contexts/Standalone/useStandalone.ts b/apps/reactotron-app/src/renderer/contexts/Standalone/useStandalone.ts index 96c6d5b2e..e569e15ac 100644 --- a/apps/reactotron-app/src/renderer/contexts/Standalone/useStandalone.ts +++ b/apps/reactotron-app/src/renderer/contexts/Standalone/useStandalone.ts @@ -26,6 +26,7 @@ export interface ReactotronConnection { platformVersion?: string osRelease?: string userAgent?: string + plugins: string[] } export interface Connection extends ReactotronConnection { diff --git a/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts b/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts index 865039665..b507d9506 100644 --- a/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts +++ b/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts @@ -304,6 +304,7 @@ export const apolloPlugin = // --- Reactotron plugin interface --------------------------------- return { + name: "apollo-client", // Fires when we receive a command from the Reactotron app. onCommand, diff --git a/lib/reactotron-core-client/src/plugins/api-response.ts b/lib/reactotron-core-client/src/plugins/api-response.ts index 8ada9cd06..a2d677b20 100644 --- a/lib/reactotron-core-client/src/plugins/api-response.ts +++ b/lib/reactotron-core-client/src/plugins/api-response.ts @@ -5,6 +5,7 @@ import type { ReactotronCore, Plugin } from "../reactotron-core-client" */ const apiResponse = () => (reactotron: ReactotronCore) => { return { + name: "api-response", features: { apiResponse: (request: { status: number }, response: any, duration: number) => { const ok = diff --git a/lib/reactotron-core-client/src/plugins/benchmark.ts b/lib/reactotron-core-client/src/plugins/benchmark.ts index 37e71f7aa..98c9ac5c1 100644 --- a/lib/reactotron-core-client/src/plugins/benchmark.ts +++ b/lib/reactotron-core-client/src/plugins/benchmark.ts @@ -23,6 +23,7 @@ const benchmark = () => (reactotron: ReactotronCore) => { } return { + name: "benchmark", features: { benchmark }, } satisfies Plugin } diff --git a/lib/reactotron-core-client/src/plugins/clear.ts b/lib/reactotron-core-client/src/plugins/clear.ts index 54d049941..72a627afc 100644 --- a/lib/reactotron-core-client/src/plugins/clear.ts +++ b/lib/reactotron-core-client/src/plugins/clear.ts @@ -5,6 +5,7 @@ import type { ReactotronCore, Plugin } from "../reactotron-core-client" */ const clear = () => (reactotron: ReactotronCore) => { return { + name: "clear", features: { clear: () => reactotron.send("clear"), }, diff --git a/lib/reactotron-core-client/src/plugins/image.ts b/lib/reactotron-core-client/src/plugins/image.ts index 0b886a8c9..89f03e198 100644 --- a/lib/reactotron-core-client/src/plugins/image.ts +++ b/lib/reactotron-core-client/src/plugins/image.ts @@ -14,6 +14,7 @@ export interface ImagePayload { */ const image = () => (reactotron: ReactotronCore) => { return { + name: "image", features: { // expanded just to show the specs image: (payload: ImagePayload) => { diff --git a/lib/reactotron-core-client/src/plugins/logger.ts b/lib/reactotron-core-client/src/plugins/logger.ts index a1056543f..1e7f08ad0 100644 --- a/lib/reactotron-core-client/src/plugins/logger.ts +++ b/lib/reactotron-core-client/src/plugins/logger.ts @@ -5,6 +5,7 @@ import type { ReactotronCore, Plugin, InferFeatures } from "../reactotron-core-c */ const logger = () => (reactotron: ReactotronCore) => { return { + name: "logger", features: { log: (...args) => { const content = args && args.length === 1 ? args[0] : args diff --git a/lib/reactotron-core-client/src/plugins/repl.ts b/lib/reactotron-core-client/src/plugins/repl.ts index 61278b347..bc5095d5f 100644 --- a/lib/reactotron-core-client/src/plugins/repl.ts +++ b/lib/reactotron-core-client/src/plugins/repl.ts @@ -7,6 +7,7 @@ const repl = () => (reactotron: ReactotronCore) => { const myRepls: { [key: string]: AcceptableRepls } = {} // let currentContext = null return { + name: "repl", onCommand: ({ type, payload }) => { if (type.substr(0, 5) !== "repl.") return diff --git a/lib/reactotron-core-client/src/plugins/state-responses.ts b/lib/reactotron-core-client/src/plugins/state-responses.ts index d7256c3b7..221e4a6b8 100644 --- a/lib/reactotron-core-client/src/plugins/state-responses.ts +++ b/lib/reactotron-core-client/src/plugins/state-responses.ts @@ -12,6 +12,7 @@ import type { ReactotronCore, Plugin, InferFeatures } from "../reactotron-core-c */ const stateResponse = () => (reactotron: ReactotronCore) => { return { + name: "state-response", features: { stateActionComplete: ( name: StateActionCompletePayload["name"], diff --git a/lib/reactotron-core-client/src/reactotron-core-client.ts b/lib/reactotron-core-client/src/reactotron-core-client.ts index d522a61ac..5b0e366dd 100644 --- a/lib/reactotron-core-client/src/reactotron-core-client.ts +++ b/lib/reactotron-core-client/src/reactotron-core-client.ts @@ -36,6 +36,7 @@ export interface LifeCycleMethods { type AnyFunction = (...args: any[]) => any export interface Plugin extends LifeCycleMethods { + name: string features?: { [key: string]: AnyFunction } @@ -291,6 +292,7 @@ export class ReactotronImpl implements ReactotronCore { name, clientId, reactotronCoreClientVersion: "REACTOTRON_CORE_CLIENT_VERSION", + plugins: this.plugins.map((f) => f.name).filter((s) => Boolean(s)), }) // flush the send queue diff --git a/lib/reactotron-mst/src/reactotron-mst.ts b/lib/reactotron-mst/src/reactotron-mst.ts index 5782e1fd7..599e083fb 100644 --- a/lib/reactotron-mst/src/reactotron-mst.ts +++ b/lib/reactotron-mst/src/reactotron-mst.ts @@ -238,7 +238,7 @@ export function mst(opts: MstPluginOptions = {}) { const path = getPath(call.context) // action related data - const action = { args, name: call.name, path } + const action = { args: args, name: call.name, path } // mst internal data const mstPayload = { @@ -484,6 +484,7 @@ export function mst(opts: MstPluginOptions = {}) { // --- Reactotron plugin interface --------------------------------- return { + name: "mst", // Fires when we receive a command from the Reactotron app. onCommand, diff --git a/lib/reactotron-react-native/src/plugins/asyncStorage.ts b/lib/reactotron-react-native/src/plugins/asyncStorage.ts index 0a998e205..3870bfd05 100644 --- a/lib/reactotron-react-native/src/plugins/asyncStorage.ts +++ b/lib/reactotron-react-native/src/plugins/asyncStorage.ts @@ -188,6 +188,7 @@ const asyncStorage = (options?: AsyncStorageOptions) => (reactotron: ReactotronC } return { + name: "async-storage", features: { trackAsyncStorage, untrackAsyncStorage, diff --git a/lib/reactotron-react-native/src/plugins/devTools.ts b/lib/reactotron-react-native/src/plugins/devTools.ts index acce7fa03..d1c8bea68 100644 --- a/lib/reactotron-react-native/src/plugins/devTools.ts +++ b/lib/reactotron-react-native/src/plugins/devTools.ts @@ -3,6 +3,7 @@ import { NativeModules } from "react-native" const devTools = () => () => { return { + name: "dev-tools", onCommand: (command) => { if (command.type !== "devtools.open" && command.type !== "devtools.reload") return diff --git a/lib/reactotron-react-native/src/plugins/networking.ts b/lib/reactotron-react-native/src/plugins/networking.ts index ea1049004..2b1cfc590 100644 --- a/lib/reactotron-react-native/src/plugins/networking.ts +++ b/lib/reactotron-react-native/src/plugins/networking.ts @@ -148,6 +148,7 @@ const networking = } return { + name: "networking", onConnect: () => { // register our monkey-patch XHRInterceptor.setSendCallback(onSend) diff --git a/lib/reactotron-react-native/src/plugins/openInEditor.ts b/lib/reactotron-react-native/src/plugins/openInEditor.ts index 1b2bfec04..892a336a1 100644 --- a/lib/reactotron-react-native/src/plugins/openInEditor.ts +++ b/lib/reactotron-react-native/src/plugins/openInEditor.ts @@ -14,6 +14,7 @@ const openInEditor = const options = Object.assign({}, DEFAULTS, pluginConfig) return { + name: "open-in-editor", onCommand: (command) => { if (command.type !== "editor.open") return const { payload } = command diff --git a/lib/reactotron-react-native/src/plugins/overlay/index.tsx b/lib/reactotron-react-native/src/plugins/overlay/index.tsx index 69b41ff73..5e5561cf1 100644 --- a/lib/reactotron-react-native/src/plugins/overlay/index.tsx +++ b/lib/reactotron-react-native/src/plugins/overlay/index.tsx @@ -10,6 +10,7 @@ export default function OverlayCreator() { const emitter = mitt() return { + name: "overlay", /** * Fires when any Reactotron message arrives. */ @@ -22,13 +23,12 @@ export default function OverlayCreator() { features: { overlay: (WrappedComponent: React.ComponentType) => - (props: Record = {}) => - ( - - - - - ), + (props: Record = {}) => ( + + + + + ), }, } satisfies Plugin } diff --git a/lib/reactotron-react-native/src/plugins/storybook/index.tsx b/lib/reactotron-react-native/src/plugins/storybook/index.tsx index f6ff98685..6fcd24681 100644 --- a/lib/reactotron-react-native/src/plugins/storybook/index.tsx +++ b/lib/reactotron-react-native/src/plugins/storybook/index.tsx @@ -11,6 +11,7 @@ export default () => () => { const emitter = mitt() return { + name: "storybook", onCommand: (command) => { if (command.type !== "storybook") return // relay this payload on to the emitter diff --git a/lib/reactotron-react-native/src/plugins/trackGlobalErrors.ts b/lib/reactotron-react-native/src/plugins/trackGlobalErrors.ts index 6e5be2096..4913d628c 100644 --- a/lib/reactotron-react-native/src/plugins/trackGlobalErrors.ts +++ b/lib/reactotron-react-native/src/plugins/trackGlobalErrors.ts @@ -121,6 +121,7 @@ const trackGlobalErrors = (options?: TrackGlobalErrorsOptions) => (reactotron: R // the reactotron plugin interface return { + name: "track-global-errors", onConnect: () => { LogBox.addException = new Proxy(LogBox.addException, { apply: function (target, thisArg, argumentsList: Parameters) { diff --git a/lib/reactotron-react-native/src/plugins/trackGlobalLogs.ts b/lib/reactotron-react-native/src/plugins/trackGlobalLogs.ts index e6e6c1290..11feb5fbb 100644 --- a/lib/reactotron-react-native/src/plugins/trackGlobalLogs.ts +++ b/lib/reactotron-react-native/src/plugins/trackGlobalLogs.ts @@ -14,6 +14,7 @@ const trackGlobalLogs = () => (reactotron: ReactotronCore) => { const client = reactotron as ReactotronCore & InferFeatures return { + name: "track-global-logs", onConnect: () => { const originalConsoleLog = console.log console.log = (...args: Parameters) => { diff --git a/lib/reactotron-redux/src/reactotron-redux.ts b/lib/reactotron-redux/src/reactotron-redux.ts new file mode 100644 index 000000000..b0789c664 --- /dev/null +++ b/lib/reactotron-redux/src/reactotron-redux.ts @@ -0,0 +1,51 @@ +import type { Plugin, ReactotronCore } from "reactotron-core-client" + +import createCommandHander from "./commandHandler" +import createSendAction from "./sendAction" +import createEnhancer from "./enhancer" +import { DEFAULT_REPLACER_TYPE } from "./reducer" +import { PluginConfig } from "./pluginConfig" + +function reactotronRedux(pluginConfig: PluginConfig = {}) { + const mergedPluginConfig: PluginConfig = { + ...pluginConfig, + restoreActionType: pluginConfig.restoreActionType || DEFAULT_REPLACER_TYPE, + } + + const storeCreationHandlers: (() => void)[] = [] + const onReduxStoreCreation = (func: () => void) => { + storeCreationHandlers.push(func) + } + const handleStoreCreation = () => { + storeCreationHandlers.forEach((func) => { + func() + }) + } + + function plugin(reactotron: Client) { + return { + name: "redux", + // Fires when we receive a command from the Reactotron app. + onCommand: createCommandHander(reactotron, mergedPluginConfig, onReduxStoreCreation), + + // All keys in this object will be attached to the main Reactotron instance + // and available to be called directly. + features: { + createEnhancer: createEnhancer(reactotron, mergedPluginConfig, handleStoreCreation), + setReduxStore: (store) => { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore shhhhhh -- this is a private API + reactotron.reduxStore = store + handleStoreCreation() + }, + reportReduxAction: createSendAction(reactotron), + }, + } satisfies Plugin + } + + return plugin +} + +export type ReactotronReduxPlugin = ReturnType + +export { reactotronRedux } diff --git a/yarn.lock b/yarn.lock index caa636897..ee681455f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -24476,7 +24476,7 @@ __metadata: languageName: node linkType: hard -"react-transition-group@npm:^4.3.0": +"react-transition-group@npm:^4.3.0, react-transition-group@npm:^4.4.5": version: 4.4.5 resolution: "react-transition-group@npm:4.4.5" dependencies: From 467392e7847d2c066350bd10c1927480475b0452 Mon Sep 17 00:00:00 2001 From: Mark Rickert Date: Wed, 14 Feb 2024 10:29:42 -0700 Subject: [PATCH 10/18] Fix some linting issues in reactotron-apollo-client --- lib/reactotron-apollo-client/package.json | 21 ++++++++++++++------- lib/reactotron-apollo-client/tsconfig.json | 6 +++--- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/lib/reactotron-apollo-client/package.json b/lib/reactotron-apollo-client/package.json index 738af9ba2..b55403582 100644 --- a/lib/reactotron-apollo-client/package.json +++ b/lib/reactotron-apollo-client/package.json @@ -7,19 +7,26 @@ "bugs": { "url": "https://github.com/infinitered/reactotron/issues" }, - "homepage": "https://github.com/infinitered/reactotron/tree/beta/lib/reactotron-apollo-client", - "repository": "https://github.com/infinitered/reactotron/tree/beta/lib/reactotron-apollo-client", + "homepage": "https://github.com/infinitered/reactotron/tree/master/lib/reactotron-apollo-client", + "repository": "https://github.com/infinitered/reactotron/tree/master/lib/reactotron-apollo-client", "files": [ "dist", - "LICENSE" + "src" ], - "main": "dist/reactotron-apollo-client.umd.js", - "module": "dist/reactotron-apollo-client.es5.js", - "typings": "dist/types/reactotron-apollo-client.d.ts", + "main": "dist/index.js", + "module": "dist/index.esm.js", + "types": "dist/types/src/index.d.ts", + "react-native": "src/index.ts", + "exports": { + "import": "./dist/index.esm.js", + "types": "./dist/types/src/index.d.ts", + "react-native": "./src/index.ts", + "default": "./dist/index.js" + }, "scripts": { "test": "jest --passWithNoTests", "test:watch": "jest --watch --notify", - "format": "prettier '*.{js,ts,tsx,json,md,css,yml}|**/*.{js,ts,tsx,json,md,css,yml}'", + "format": "prettier '*.{js,ts,tsx,json,md,css,yml}|**/*.{js,ts,tsx,json,md,css,yml}' --config ../../.prettierrc --ignore-path ../../.prettierignore", "format:check": "yarn format --check", "format:write": "yarn format --write", "prebuild": "yarn clean", diff --git a/lib/reactotron-apollo-client/tsconfig.json b/lib/reactotron-apollo-client/tsconfig.json index 12a27623a..1052dea71 100644 --- a/lib/reactotron-apollo-client/tsconfig.json +++ b/lib/reactotron-apollo-client/tsconfig.json @@ -4,7 +4,7 @@ "allowJs": false, "declaration": true, "declarationDir": "dist/types", - "rootDir": "src", + "rootDir": ".", "emitDeclarationOnly": true, "emitDecoratorMetadata": true, "allowSyntheticDefaultImports": true, @@ -17,8 +17,8 @@ "noUnusedLocals": true, "sourceMap": true, "target": "es5", - "skipLibCheck": true // Temp? + "esModuleInterop": true, }, "exclude": ["node_modules"], - "include": ["src"] + "include": ["src", "test"], } From 6308fcf9629e56c9568e5c60d7414f17504ac7ab Mon Sep 17 00:00:00 2001 From: Mark Rickert Date: Wed, 14 Feb 2024 11:19:57 -0700 Subject: [PATCH 11/18] Reapply changes from #1439 to the reactotron-apollo-client --- lib/reactotron-apollo-client/package.json | 25 +- .../rollup.config.cjs | 30 + lib/reactotron-apollo-client/rollup.config.ts | 41 - scripts/generate-plugin.mjs | 2 +- yarn.lock | 1234 ++++++++++++----- 5 files changed, 907 insertions(+), 425 deletions(-) create mode 100644 lib/reactotron-apollo-client/rollup.config.cjs delete mode 100644 lib/reactotron-apollo-client/rollup.config.ts diff --git a/lib/reactotron-apollo-client/package.json b/lib/reactotron-apollo-client/package.json index b55403582..58c7111d5 100644 --- a/lib/reactotron-apollo-client/package.json +++ b/lib/reactotron-apollo-client/package.json @@ -35,8 +35,8 @@ "build:dev": "yarn tsc && yarn compile:dev", "clean": "trash dist", "lint": "eslint 'src/**/**.{ts,tsx}'", - "compile": "NODE_ENV=production rollup -c rollup.config.ts", - "compile:dev": "NODE_ENV=development rollup -c rollup.config.ts", + "compile": "NODE_ENV=production rollup -c --strictDeprecations --bundleConfigAsCjs", + "compile:dev": "NODE_ENV=development rollup -c --strictDeprecations --bundleConfigAsCjs", "tsc": "tsc", "typecheck": "tsc", "ci:test": "yarn test --runInBand" @@ -50,10 +50,12 @@ }, "devDependencies": { "@apollo/client": "^3.8.3", - "@babel/core": "^7.21.0", - "@babel/preset-env": "^7.20.2", - "@babel/preset-typescript": "^7.21.0", - "@types/jest": "^29.4.0", + "@babel/core": "^7.23.2", + "@babel/eslint-parser": "^7.23.10", + "@babel/preset-typescript": "^7.23.2", + "@rollup/plugin-replace": "^5.0.5", + "@rollup/plugin-typescript": "11.1.1", + "@types/jest": "^29.5.12", "@types/node": "^11.9.5", "@types/ramda": "^0.25.50", "@typescript-eslint/eslint-plugin": "^5.54.0", @@ -70,15 +72,12 @@ "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-standard": "^5.0.0", "graphql": "^16.8.0", - "jest": "^29.4.3", + "jest": "^29.7.0", "prettier": "^2.8.4", "reactotron-core-client": "workspace:*", - "rollup": "^1.1.2", - "rollup-plugin-babel": "^4.3.2", - "rollup-plugin-babel-minify": "^7.0.0", - "rollup-plugin-filesize": "^6.0.1", - "rollup-plugin-node-resolve": "^4.0.0", - "rollup-plugin-resolve": "^0.0.1-predev.1", + "rollup": "^4.9.6", + "rollup-plugin-filesize": "^10.0.0", + "rollup-plugin-terser": "^7.0.2", "testdouble": "^3.16.8", "trash-cli": "^5.0.0", "ts-jest": "^29.0.5", diff --git a/lib/reactotron-apollo-client/rollup.config.cjs b/lib/reactotron-apollo-client/rollup.config.cjs new file mode 100644 index 000000000..ba244acd8 --- /dev/null +++ b/lib/reactotron-apollo-client/rollup.config.cjs @@ -0,0 +1,30 @@ +import replace from "@rollup/plugin-replace" +import filesize from "rollup-plugin-filesize" +import { terser } from "rollup-plugin-terser" +import typescript from "@rollup/plugin-typescript" + +const pkg = require("./package.json") + +/** @type {import('rollup').RollupOptions} */ +export default { + input: "src/reactotron-apollo-client.ts", + output: [ + { + file: pkg.main, + format: "cjs", + }, + { + file: pkg.module, + format: "esm", + }, + ], + plugins: [ + typescript(), + replace({ + REACTOTRON_CORE_CLIENT_VERSION: pkg.version, + }), + process.env.NODE_ENV === "production" ? terser() : null, + filesize(), + ], + external: ["@apollo/client", "reactotron-core-client", "graphql"], +} diff --git a/lib/reactotron-apollo-client/rollup.config.ts b/lib/reactotron-apollo-client/rollup.config.ts deleted file mode 100644 index d0ce8b473..000000000 --- a/lib/reactotron-apollo-client/rollup.config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import resolve from "rollup-plugin-node-resolve" -import babel from "rollup-plugin-babel" -import filesize from "rollup-plugin-filesize" -// import minify from "rollup-plugin-babel-minify" - -const pkg = require("./package.json") - -const LIBRARY_NAME = "reactotron-apollo-client" -const GLOBALS = ["@apollo/client", "graphql"] - -export default { - input: "src/reactotron-apollo-client.ts", - output: [ - { - file: pkg.main, - name: LIBRARY_NAME, - format: "umd", - sourcemap: true, - globals: GLOBALS, - }, - { - file: pkg.module, - format: "es", - sourcemap: true, - globals: GLOBALS, - }, - ], - plugins: [ - resolve({ extensions: [".ts"] }), - babel({ extensions: [".ts"], runtimeHelpers: true }), - // TODO fix minification via rollup-plugin-terser? - // rollout-plugin-babel-minify is deprecated and causing build to fail - // process.env.NODE_ENV === "production" - // ? minify({ - // comments: false, - // }) - // : null, - filesize(), - ], - external: ["@apollo/client", "reactotron-core-client", "graphql"], -} diff --git a/scripts/generate-plugin.mjs b/scripts/generate-plugin.mjs index 9bf93fea1..2d1cbea86 100644 --- a/scripts/generate-plugin.mjs +++ b/scripts/generate-plugin.mjs @@ -53,7 +53,7 @@ fs.writeFileSync( ); fs.writeFileSync( - path.join(targetDir, `rollup.config.ts`), + path.join(targetDir, `rollup.config.cjs`), createTemplateRollupConfig({ pluginName }) ); diff --git a/yarn.lock b/yarn.lock index ee681455f..ce30694cf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -115,16 +115,6 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.24.1, @babel/code-frame@npm:^7.24.2": - version: 7.24.2 - resolution: "@babel/code-frame@npm:7.24.2" - dependencies: - "@babel/highlight": ^7.24.2 - picocolors: ^1.0.0 - checksum: 70e867340cfe09ca5488b2f36372c45cabf43c79a5b6426e6df5ef0611ff5dfa75a57dda841895693de6008f32c21a7c97027a8c7bcabd63a7d17416cbead6f8 - languageName: node - linkType: hard - "@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": version: 7.23.5 resolution: "@babel/compat-data@npm:7.23.5" @@ -155,29 +145,6 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.21.0": - version: 7.24.3 - resolution: "@babel/core@npm:7.24.3" - dependencies: - "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.24.2 - "@babel/generator": ^7.24.1 - "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helpers": ^7.24.1 - "@babel/parser": ^7.24.1 - "@babel/template": ^7.24.0 - "@babel/traverse": ^7.24.1 - "@babel/types": ^7.24.0 - convert-source-map: ^2.0.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.2.3 - semver: ^6.3.1 - checksum: 1a33460794f4122cf255b656f4d6586913f41078a1afdf1bcf0365ddbd99c1ddb68f904062f9079445ab26b507c36bc297055192bc26e5c8e6e3def42195f9ab - languageName: node - linkType: hard - "@babel/eslint-parser@npm:^7.22.15": version: 7.23.3 resolution: "@babel/eslint-parser@npm:7.23.3" @@ -192,6 +159,20 @@ __metadata: languageName: node linkType: hard +"@babel/eslint-parser@npm:^7.23.10": + version: 7.23.10 + resolution: "@babel/eslint-parser@npm:7.23.10" + dependencies: + "@nicolo-ribaudo/eslint-scope-5-internals": "npm:5.1.1-v1" + eslint-visitor-keys: "npm:^2.1.0" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.11.0 + eslint: ^7.5.0 || ^8.0.0 + checksum: 81249edee14f95720044f393b5b0a681a230ac2bde3d656b0c55b1cec4c5cb99ce0584ef6acd2e5413acc7905daee1b2e1db8e3fab18a3a74c508098a584ec9a + languageName: node + linkType: hard + "@babel/generator@npm:^7.12.11, @babel/generator@npm:^7.20.0, @babel/generator@npm:^7.23.6, @babel/generator@npm:^7.7.2": version: 7.23.6 resolution: "@babel/generator@npm:7.23.6" @@ -204,18 +185,6 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/generator@npm:7.24.1" - dependencies: - "@babel/types": ^7.24.0 - "@jridgewell/gen-mapping": ^0.3.5 - "@jridgewell/trace-mapping": ^0.3.25 - jsesc: ^2.5.1 - checksum: 98c6ce5ec7a1cba2bdf35cdf607273b90cf7cf82bbe75cd0227363fb84d7e1bd8efa74f40247d5900c8c009123f10132ad209a05283757698de918278c3c6700 - languageName: node - linkType: hard - "@babel/helper-annotate-as-pure@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" @@ -309,21 +278,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.6.1": - version: 0.6.1 - resolution: "@babel/helper-define-polyfill-provider@npm:0.6.1" - dependencies: - "@babel/helper-compilation-targets": ^7.22.6 - "@babel/helper-plugin-utils": ^7.22.5 - debug: ^4.1.1 - lodash.debounce: ^4.0.8 - resolve: ^1.14.2 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: b45deb37ce1342d862422e81a3d25ff55f9c7ca52fe303405641e2add8db754091aaaa2119047a0f0b85072221fbddaa92adf53104274661d2795783b56bea2c - languageName: node - linkType: hard - "@babel/helper-environment-visitor@npm:^7.18.9, @babel/helper-environment-visitor@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-environment-visitor@npm:7.22.20" @@ -505,17 +459,6 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/helpers@npm:7.24.1" - dependencies: - "@babel/template": ^7.24.0 - "@babel/traverse": ^7.24.1 - "@babel/types": ^7.24.0 - checksum: 0643b8ccf3358682303aea65f0798e482b2c3642040d32ffe130a245f4a46d0d23fe575a5e06e3cda4e8ec4af89d52b94ff1c444a74465d47ccc27da6ddbbb9f - languageName: node - linkType: hard - "@babel/highlight@npm:^7.0.0, @babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.23.4": version: 7.23.4 resolution: "@babel/highlight@npm:7.23.4" @@ -527,18 +470,6 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.24.2": - version: 7.24.2 - resolution: "@babel/highlight@npm:7.24.2" - dependencies: - "@babel/helper-validator-identifier": ^7.22.20 - chalk: ^2.4.2 - js-tokens: ^4.0.0 - picocolors: ^1.0.0 - checksum: 5f17b131cc3ebf3ab285a62cf98a404aef1bd71a6be045e748f8d5bf66d6a6e1aefd62f5972c84369472e8d9f22a614c58a89cd331eb60b7ba965b31b1bbeaf5 - languageName: node - linkType: hard - "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.6, @babel/parser@npm:^7.7.0": version: 7.23.6 resolution: "@babel/parser@npm:7.23.6" @@ -548,15 +479,6 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.24.0, @babel/parser@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/parser@npm:7.24.1" - bin: - parser: ./bin/babel-parser.js - checksum: a1068941dddf82ffdf572565b8b7b2cddb963ff9ddf97e6e28f50e843d820b4285e6def8f59170104a94e2a91ae2e3b326489886d77a57ea29d468f6a5e79bf9 - languageName: node - linkType: hard - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.23.3" @@ -1031,20 +953,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.9" - dependencies: - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-plugin-utils": "npm:^7.22.5" - "@babel/helper-remap-async-to-generator": "npm:^7.22.20" - "@babel/plugin-syntax-async-generators": "npm:^7.8.4" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d402494087a6b803803eb5ab46b837aab100a04c4c5148e38bfa943ea1bbfc1ecfb340f1ced68972564312d3580f550c125f452372e77607a558fbbaf98c31c0 - languageName: node - linkType: hard - "@babel/plugin-transform-async-to-generator@npm:^7.20.0, @babel/plugin-transform-async-to-generator@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-async-to-generator@npm:7.23.3" @@ -1327,20 +1235,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.9" - dependencies: - "@babel/helper-hoist-variables": "npm:^7.22.5" - "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helper-plugin-utils": "npm:^7.22.5" - "@babel/helper-validator-identifier": "npm:^7.22.20" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: cec6abeae6be66fd1a5940c482fe9ff94b689c71fcf4147e179119e4accd09d17d476e36528bc9cb4ab0ec6728fedf48b1c49d0551ea707fb192575d8eac9167 - languageName: node - linkType: hard - "@babel/plugin-transform-modules-umd@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-modules-umd@npm:7.23.3" @@ -1839,96 +1733,6 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:^7.20.2": - version: 7.23.9 - resolution: "@babel/preset-env@npm:7.23.9" - dependencies: - "@babel/compat-data": "npm:^7.23.5" - "@babel/helper-compilation-targets": "npm:^7.23.6" - "@babel/helper-plugin-utils": "npm:^7.22.5" - "@babel/helper-validator-option": "npm:^7.23.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.23.3" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.23.3" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.23.7" - "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-async-generators": "npm:^7.8.4" - "@babel/plugin-syntax-class-properties": "npm:^7.12.13" - "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" - "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" - "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" - "@babel/plugin-syntax-import-assertions": "npm:^7.23.3" - "@babel/plugin-syntax-import-attributes": "npm:^7.23.3" - "@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" - "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" - "@babel/plugin-transform-arrow-functions": "npm:^7.23.3" - "@babel/plugin-transform-async-generator-functions": "npm:^7.23.9" - "@babel/plugin-transform-async-to-generator": "npm:^7.23.3" - "@babel/plugin-transform-block-scoped-functions": "npm:^7.23.3" - "@babel/plugin-transform-block-scoping": "npm:^7.23.4" - "@babel/plugin-transform-class-properties": "npm:^7.23.3" - "@babel/plugin-transform-class-static-block": "npm:^7.23.4" - "@babel/plugin-transform-classes": "npm:^7.23.8" - "@babel/plugin-transform-computed-properties": "npm:^7.23.3" - "@babel/plugin-transform-destructuring": "npm:^7.23.3" - "@babel/plugin-transform-dotall-regex": "npm:^7.23.3" - "@babel/plugin-transform-duplicate-keys": "npm:^7.23.3" - "@babel/plugin-transform-dynamic-import": "npm:^7.23.4" - "@babel/plugin-transform-exponentiation-operator": "npm:^7.23.3" - "@babel/plugin-transform-export-namespace-from": "npm:^7.23.4" - "@babel/plugin-transform-for-of": "npm:^7.23.6" - "@babel/plugin-transform-function-name": "npm:^7.23.3" - "@babel/plugin-transform-json-strings": "npm:^7.23.4" - "@babel/plugin-transform-literals": "npm:^7.23.3" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.23.4" - "@babel/plugin-transform-member-expression-literals": "npm:^7.23.3" - "@babel/plugin-transform-modules-amd": "npm:^7.23.3" - "@babel/plugin-transform-modules-commonjs": "npm:^7.23.3" - "@babel/plugin-transform-modules-systemjs": "npm:^7.23.9" - "@babel/plugin-transform-modules-umd": "npm:^7.23.3" - "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.22.5" - "@babel/plugin-transform-new-target": "npm:^7.23.3" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.23.4" - "@babel/plugin-transform-numeric-separator": "npm:^7.23.4" - "@babel/plugin-transform-object-rest-spread": "npm:^7.23.4" - "@babel/plugin-transform-object-super": "npm:^7.23.3" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.23.4" - "@babel/plugin-transform-optional-chaining": "npm:^7.23.4" - "@babel/plugin-transform-parameters": "npm:^7.23.3" - "@babel/plugin-transform-private-methods": "npm:^7.23.3" - "@babel/plugin-transform-private-property-in-object": "npm:^7.23.4" - "@babel/plugin-transform-property-literals": "npm:^7.23.3" - "@babel/plugin-transform-regenerator": "npm:^7.23.3" - "@babel/plugin-transform-reserved-words": "npm:^7.23.3" - "@babel/plugin-transform-shorthand-properties": "npm:^7.23.3" - "@babel/plugin-transform-spread": "npm:^7.23.3" - "@babel/plugin-transform-sticky-regex": "npm:^7.23.3" - "@babel/plugin-transform-template-literals": "npm:^7.23.3" - "@babel/plugin-transform-typeof-symbol": "npm:^7.23.3" - "@babel/plugin-transform-unicode-escapes": "npm:^7.23.3" - "@babel/plugin-transform-unicode-property-regex": "npm:^7.23.3" - "@babel/plugin-transform-unicode-regex": "npm:^7.23.3" - "@babel/plugin-transform-unicode-sets-regex": "npm:^7.23.3" - "@babel/preset-modules": "npm:0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2: "npm:^0.4.8" - babel-plugin-polyfill-corejs3: "npm:^0.9.0" - babel-plugin-polyfill-regenerator: "npm:^0.5.5" - core-js-compat: "npm:^3.31.0" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 23a48468ba820c68ba34ea2c1dbc62fd2ff9cf858cfb69e159cabb0c85c72dc4c2266ce20ca84318d8742de050cb061e7c66902fbfddbcb09246afd248847933 - languageName: node - linkType: hard - "@babel/preset-flow@npm:^7.0.0, @babel/preset-flow@npm:^7.12.1, @babel/preset-flow@npm:^7.13.13": version: 7.23.3 resolution: "@babel/preset-flow@npm:7.23.3" @@ -1987,7 +1791,7 @@ __metadata: languageName: node linkType: hard -"@babel/preset-typescript@npm:^7.12.1, @babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.16.7, @babel/preset-typescript@npm:^7.21.0, @babel/preset-typescript@npm:^7.23.2": +"@babel/preset-typescript@npm:^7.12.1, @babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.16.7, @babel/preset-typescript@npm:^7.23.2": version: 7.23.3 resolution: "@babel/preset-typescript@npm:7.23.3" dependencies: @@ -2044,17 +1848,6 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.24.0": - version: 7.24.0 - resolution: "@babel/template@npm:7.24.0" - dependencies: - "@babel/code-frame": ^7.23.5 - "@babel/parser": ^7.24.0 - "@babel/types": ^7.24.0 - checksum: f257b003c071a0cecdbfceca74185f18fe62c055469ab5c1d481aab12abeebed328e67e0a19fd978a2a8de97b28953fa4bc3da6d038a7345fdf37923b9fcdec8 - languageName: node - linkType: hard - "@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.20.0, @babel/traverse@npm:^7.23.7, @babel/traverse@npm:^7.7.0, @babel/traverse@npm:^7.7.4": version: 7.23.7 resolution: "@babel/traverse@npm:7.23.7" @@ -2073,24 +1866,6 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/traverse@npm:7.24.1" - dependencies: - "@babel/code-frame": ^7.24.1 - "@babel/generator": ^7.24.1 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-function-name": ^7.23.0 - "@babel/helper-hoist-variables": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/parser": ^7.24.1 - "@babel/types": ^7.24.0 - debug: ^4.3.1 - globals: ^11.1.0 - checksum: 92a5ca906abfba9df17666d2001ab23f18600035f706a687055a0e392a690ae48d6fec67c8bd4ef19ba18699a77a5b7f85727e36b83f7d110141608fe0c24fe9 - languageName: node - linkType: hard - "@babel/types@npm:7.0.0-beta.35": version: 7.0.0-beta.35 resolution: "@babel/types@npm:7.0.0-beta.35" @@ -2113,17 +1888,6 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.24.0": - version: 7.24.0 - resolution: "@babel/types@npm:7.24.0" - dependencies: - "@babel/helper-string-parser": ^7.23.4 - "@babel/helper-validator-identifier": ^7.22.20 - to-fast-properties: ^2.0.0 - checksum: 4b574a37d490f621470ff36a5afaac6deca5546edcb9b5e316d39acbb20998e9c2be42f3fc0bf2b55906fc49ff2a5a6a097e8f5a726ee3f708a0b0ca93aed807 - languageName: node - linkType: hard - "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -2893,7 +2657,7 @@ __metadata: languageName: node linkType: hard -"@gar/promisify@npm:^1.0.1": +"@gar/promisify@npm:^1.0.1, @gar/promisify@npm:^1.1.3": version: 1.1.3 resolution: "@gar/promisify@npm:1.1.3" checksum: 4059f790e2d07bf3c3ff3e0fec0daa8144fe35c1f6e0111c9921bd32106adaa97a4ab096ad7dab1e28ee6a9060083c4d1a4ada42a7f5f3f7a96b8812e2b757c1 @@ -3307,17 +3071,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.3.5": - version: 0.3.5 - resolution: "@jridgewell/gen-mapping@npm:0.3.5" - dependencies: - "@jridgewell/set-array": ^1.2.1 - "@jridgewell/sourcemap-codec": ^1.4.10 - "@jridgewell/trace-mapping": ^0.3.24 - checksum: ff7a1764ebd76a5e129c8890aa3e2f46045109dabde62b0b6c6a250152227647178ff2069ea234753a690d8f3c4ac8b5e7b267bbee272bffb7f3b0a370ab6e52 - languageName: node - linkType: hard - "@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": version: 3.1.1 resolution: "@jridgewell/resolve-uri@npm:3.1.1" @@ -3332,13 +3085,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/set-array@npm:^1.2.1": - version: 1.2.1 - resolution: "@jridgewell/set-array@npm:1.2.1" - checksum: 832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10 - languageName: node - linkType: hard - "@jridgewell/source-map@npm:^0.3.3": version: 0.3.5 resolution: "@jridgewell/source-map@npm:0.3.5" @@ -3349,7 +3095,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15": version: 1.4.15 resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 @@ -3376,16 +3122,6 @@ __metadata: languageName: node linkType: hard -"@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: - "@jridgewell/resolve-uri": ^3.1.0 - "@jridgewell/sourcemap-codec": ^1.4.14 - checksum: 9d3c40d225e139987b50c48988f8717a54a8c994d8a948ee42e1412e08988761d0754d7d10b803061cc3aebf35f92a5dbbab493bd0e1a9ef9e89a2130e83ba34 - languageName: node - linkType: hard - "@jscutlery/semver@npm:^2.30.1": version: 2.30.1 resolution: "@jscutlery/semver@npm:2.30.1" @@ -3499,6 +3235,16 @@ __metadata: languageName: node linkType: hard +"@npmcli/fs@npm:^2.1.0": + version: 2.1.2 + resolution: "@npmcli/fs@npm:2.1.2" + dependencies: + "@gar/promisify": ^1.1.3 + semver: ^7.3.5 + checksum: 405074965e72d4c9d728931b64d2d38e6ea12066d4fad651ac253d175e413c06fe4350970c783db0d749181da8fe49c42d3880bd1cbc12cd68e3a7964d820225 + languageName: node + linkType: hard + "@npmcli/fs@npm:^3.1.0": version: 3.1.0 resolution: "@npmcli/fs@npm:3.1.0" @@ -3524,6 +3270,22 @@ __metadata: languageName: node linkType: hard +"@npmcli/git@npm:^4.0.0": + version: 4.1.0 + resolution: "@npmcli/git@npm:4.1.0" + dependencies: + "@npmcli/promise-spawn": ^6.0.0 + lru-cache: ^7.4.4 + npm-pick-manifest: ^8.0.0 + proc-log: ^3.0.0 + promise-inflight: ^1.0.1 + promise-retry: ^2.0.1 + semver: ^7.3.5 + which: ^3.0.0 + checksum: 37efb926593f294eb263297cdfffec9141234f977b89a7a6b95ff7a72576c1d7f053f4961bc4b5e79dea6476fe08e0f3c1ed9e4aeb84169e357ff757a6a70073 + languageName: node + linkType: hard + "@npmcli/installed-package-contents@npm:^1.0.6": version: 1.0.7 resolution: "@npmcli/installed-package-contents@npm:1.0.7" @@ -3536,6 +3298,18 @@ __metadata: languageName: node linkType: hard +"@npmcli/installed-package-contents@npm:^2.0.1": + version: 2.0.2 + resolution: "@npmcli/installed-package-contents@npm:2.0.2" + dependencies: + npm-bundled: ^3.0.0 + npm-normalize-package-bin: ^3.0.0 + bin: + installed-package-contents: lib/index.js + checksum: 60789d5ed209ee5df479232f62d9d38ecec36e95701cae88320b828b8651351b32d7b47d16d4c36cc7ce5000db4bf1f3e6981bed6381bdc5687ff4bc0795682d + languageName: node + linkType: hard + "@npmcli/move-file@npm:^1.0.1": version: 1.1.2 resolution: "@npmcli/move-file@npm:1.1.2" @@ -3546,6 +3320,16 @@ __metadata: languageName: node linkType: hard +"@npmcli/move-file@npm:^2.0.0": + version: 2.0.1 + resolution: "@npmcli/move-file@npm:2.0.1" + dependencies: + mkdirp: ^1.0.4 + rimraf: ^3.0.2 + checksum: 52dc02259d98da517fae4cb3a0a3850227bdae4939dda1980b788a7670636ca2b4a01b58df03dd5f65c1e3cb70c50fa8ce5762b582b3f499ec30ee5ce1fd9380 + languageName: node + linkType: hard + "@npmcli/node-gyp@npm:^1.0.2": version: 1.0.3 resolution: "@npmcli/node-gyp@npm:1.0.3" @@ -3553,6 +3337,13 @@ __metadata: languageName: node linkType: hard +"@npmcli/node-gyp@npm:^3.0.0": + version: 3.0.0 + resolution: "@npmcli/node-gyp@npm:3.0.0" + checksum: fe3802b813eecb4ade7ad77c9396cb56721664275faab027e3bd8a5e15adfbbe39e2ecc19f7885feb3cfa009b96632741cc81caf7850ba74440c6a2eee7b4ffc + languageName: node + linkType: hard + "@npmcli/promise-spawn@npm:^1.2.0, @npmcli/promise-spawn@npm:^1.3.2": version: 1.3.2 resolution: "@npmcli/promise-spawn@npm:1.3.2" @@ -3562,6 +3353,15 @@ __metadata: languageName: node linkType: hard +"@npmcli/promise-spawn@npm:^6.0.0, @npmcli/promise-spawn@npm:^6.0.1": + version: 6.0.2 + resolution: "@npmcli/promise-spawn@npm:6.0.2" + dependencies: + which: ^3.0.0 + checksum: aa725780c13e1f97ab32ed7bcb5a207a3fb988e1d7ecdc3d22a549a22c8034740366b351c4dde4b011bcffcd8c4a7be6083d9cf7bc7e897b88837150de018528 + languageName: node + linkType: hard + "@npmcli/run-script@npm:^1.8.2": version: 1.8.6 resolution: "@npmcli/run-script@npm:1.8.6" @@ -3574,6 +3374,19 @@ __metadata: languageName: node linkType: hard +"@npmcli/run-script@npm:^6.0.0": + version: 6.0.2 + resolution: "@npmcli/run-script@npm:6.0.2" + dependencies: + "@npmcli/node-gyp": ^3.0.0 + "@npmcli/promise-spawn": ^6.0.0 + node-gyp: ^9.0.0 + read-package-json-fast: ^3.0.0 + which: ^3.0.0 + checksum: 7a671d7dbeae376496e1c6242f02384928617dc66cd22881b2387272205c3668f8490ec2da4ad63e1abf979efdd2bdf4ea0926601d78578e07d83cfb233b3a1a + languageName: node + linkType: hard + "@nrwl/devkit@npm:17.0.3": version: 17.0.3 resolution: "@nrwl/devkit@npm:17.0.3" @@ -4270,6 +4083,147 @@ __metadata: languageName: node linkType: hard +"@rollup/plugin-replace@npm:^5.0.5": + version: 5.0.5 + resolution: "@rollup/plugin-replace@npm:5.0.5" + dependencies: + "@rollup/pluginutils": ^5.0.1 + magic-string: ^0.30.3 + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 5559b48fa098a842ddb3a25b23d9902d75496bed807d4cabac304bb7e75b06374ad4a44f7871ddcd1bfcf23e6015a0274d44564b42af54c722af0a514c247ec1 + languageName: node + linkType: hard + +"@rollup/plugin-typescript@npm:11.1.1": + version: 11.1.1 + resolution: "@rollup/plugin-typescript@npm:11.1.1" + dependencies: + "@rollup/pluginutils": ^5.0.1 + resolve: ^1.22.1 + peerDependencies: + rollup: ^2.14.0||^3.0.0 + tslib: "*" + typescript: ">=3.7.0" + peerDependenciesMeta: + rollup: + optional: true + tslib: + optional: true + checksum: 0e82ef17ded026060bbc237ed2552e227d5b514cd58c1f624afeb65704a24048e38918e6242bcf29960612dc9925fbf1bb0625475ec691330cd144e4a84e3065 + languageName: node + linkType: hard + +"@rollup/pluginutils@npm:^5.0.1": + version: 5.1.0 + resolution: "@rollup/pluginutils@npm:5.1.0" + dependencies: + "@types/estree": ^1.0.0 + estree-walker: ^2.0.2 + picomatch: ^2.3.1 + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 3cc5a6d91452a6eabbfd1ae79b4dd1f1e809d2eecda6e175deb784e75b0911f47e9ecce73f8dd315d6a8b3f362582c91d3c0f66908b6ced69345b3cbe28f8ce8 + languageName: node + linkType: hard + +"@rollup/rollup-android-arm-eabi@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.13.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-android-arm64@npm:4.13.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.13.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.13.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.13.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.13.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.13.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.13.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.13.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.13.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.13.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.13.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.13.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@segment/loosely-validate-event@npm:^2.0.0": version: 2.0.0 resolution: "@segment/loosely-validate-event@npm:2.0.0" @@ -4317,6 +4271,43 @@ __metadata: languageName: node linkType: hard +"@sigstore/bundle@npm:^1.1.0": + version: 1.1.0 + resolution: "@sigstore/bundle@npm:1.1.0" + dependencies: + "@sigstore/protobuf-specs": ^0.2.0 + checksum: 9bdd829f2867de6c03a19c5a7cff2c864887a9ed6e1c3438eb6659e838fde0b449fe83b1ca21efa00286a80c71e0144e20c0d9c415eead12e97d149285245c5a + languageName: node + linkType: hard + +"@sigstore/protobuf-specs@npm:^0.2.0": + version: 0.2.1 + resolution: "@sigstore/protobuf-specs@npm:0.2.1" + checksum: ddb7c829c7bf4148eccb571ede07cf9fda62f46b7b4d3a5ca02c0308c950ee90b4206b61082ee8d5753f24098632a8b24c147117bef8c68791bf5da537b55db9 + languageName: node + linkType: hard + +"@sigstore/sign@npm:^1.0.0": + version: 1.0.0 + resolution: "@sigstore/sign@npm:1.0.0" + dependencies: + "@sigstore/bundle": ^1.1.0 + "@sigstore/protobuf-specs": ^0.2.0 + make-fetch-happen: ^11.0.1 + checksum: cbdf409c39219d310f398e6a96b3ed7f422a58cfc0d8a40dd5b94996f805f189fdedf51afd559882bc18eb17054bf9d4f1a584b6af7b26c2f807636bceca5b19 + languageName: node + linkType: hard + +"@sigstore/tuf@npm:^1.0.3": + version: 1.0.3 + resolution: "@sigstore/tuf@npm:1.0.3" + dependencies: + "@sigstore/protobuf-specs": ^0.2.0 + tuf-js: ^1.1.7 + checksum: 0a32594b73ce3b3a4dfeec438ff98866a952a48ee6c020ddf57795062d9d328bc4327bb0e0c8d24011e3870c7d4670bc142a47025cbe7218c776f08084085421 + languageName: node + linkType: hard + "@sinclair/typebox@npm:^0.27.8": version: 0.27.8 resolution: "@sinclair/typebox@npm:0.27.8" @@ -5861,6 +5852,23 @@ __metadata: languageName: node linkType: hard +"@tufjs/canonical-json@npm:1.0.0": + version: 1.0.0 + resolution: "@tufjs/canonical-json@npm:1.0.0" + checksum: 9ff3bcd12988fb23643690da3e009f9130b7b10974f8e7af4bd8ad230a228119de8609aa76d75264fe80f152b50872dea6ea53def69534436a4c24b4fcf6a447 + languageName: node + linkType: hard + +"@tufjs/models@npm:1.0.4": + version: 1.0.4 + resolution: "@tufjs/models@npm:1.0.4" + dependencies: + "@tufjs/canonical-json": 1.0.0 + minimatch: ^9.0.0 + checksum: b489baa854abce6865f360591c20d5eb7d8dde3fb150f42840c12bb7ee3e5e7a69eab9b2e44ea82ae1f8cd95b586963c5a5c5af8ba4ffa3614b3ddccbc306779 + languageName: node + linkType: hard + "@types/aria-query@npm:^5.0.1": version: 5.0.4 resolution: "@types/aria-query@npm:5.0.4" @@ -5989,7 +5997,7 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*": +"@types/estree@npm:*, @types/estree@npm:1.0.5, @types/estree@npm:^1.0.0": version: 1.0.5 resolution: "@types/estree@npm:1.0.5" checksum: dd8b5bed28e6213b7acd0fb665a84e693554d850b0df423ac8076cc3ad5823a6bc26b0251d080bdc545af83179ede51dd3f6fa78cad2c46ed1f29624ddf3e41a @@ -6168,7 +6176,7 @@ __metadata: languageName: node linkType: hard -"@types/jest@npm:^29.4.0": +"@types/jest@npm:^29.5.12": version: 29.5.12 resolution: "@types/jest@npm:29.5.12" dependencies: @@ -7368,7 +7376,7 @@ __metadata: languageName: node linkType: hard -"abbrev@npm:1": +"abbrev@npm:1, abbrev@npm:^1.0.0": version: 1.1.1 resolution: "abbrev@npm:1.1.1" checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 @@ -7493,7 +7501,7 @@ __metadata: languageName: node linkType: hard -"agentkeepalive@npm:^4.1.3": +"agentkeepalive@npm:^4.1.3, agentkeepalive@npm:^4.2.1": version: 4.5.0 resolution: "agentkeepalive@npm:4.5.0" dependencies: @@ -7878,6 +7886,13 @@ __metadata: languageName: node linkType: hard +"aproba@npm:^1.0.3 || ^2.0.0": + version: 2.0.0 + resolution: "aproba@npm:2.0.0" + checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 + languageName: node + linkType: hard + "aproba@npm:^1.0.3, aproba@npm:^1.1.1": version: 1.2.0 resolution: "aproba@npm:1.2.0" @@ -7885,6 +7900,16 @@ __metadata: languageName: node linkType: hard +"are-we-there-yet@npm:^3.0.0": + version: 3.0.1 + resolution: "are-we-there-yet@npm:3.0.1" + dependencies: + delegates: ^1.0.0 + readable-stream: ^3.6.0 + checksum: 52590c24860fa7173bedeb69a4c05fb573473e860197f618b9a28432ee4379049336727ae3a1f9c4cb083114601c1140cee578376164d0e651217a9843f9fe83 + languageName: node + linkType: hard + "are-we-there-yet@npm:~1.1.2": version: 1.1.7 resolution: "are-we-there-yet@npm:1.1.7" @@ -8749,19 +8774,6 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.4.8": - version: 0.4.10 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.10" - dependencies: - "@babel/compat-data": ^7.22.6 - "@babel/helper-define-polyfill-provider": ^0.6.1 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 2c0e4868789152f50db306f4957fa7934876cefb51d5d86436595f0b091539e45ce0e9c0125b5db2d71f913b29cd48ae76b8e942ba28fcf2273e084f54664a1c - languageName: node - linkType: hard - "babel-plugin-polyfill-corejs3@npm:^0.8.7": version: 0.8.7 resolution: "babel-plugin-polyfill-corejs3@npm:0.8.7" @@ -8774,19 +8786,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.9.0": - version: 0.9.0 - resolution: "babel-plugin-polyfill-corejs3@npm:0.9.0" - dependencies: - "@babel/helper-define-polyfill-provider": ^0.5.0 - core-js-compat: ^3.34.0 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 65bbf59fc0145c7a264822777403632008dce00015b4b5c7ec359125ef4faf9e8f494ae5123d2992104feb6f19a3cff85631992862e48b6d7bd64eb7e755ee1f - languageName: node - linkType: hard - -"babel-plugin-polyfill-regenerator@npm:^0.5.4, babel-plugin-polyfill-regenerator@npm:^0.5.5": +"babel-plugin-polyfill-regenerator@npm:^0.5.4": version: 0.5.5 resolution: "babel-plugin-polyfill-regenerator@npm:0.5.5" dependencies: @@ -9547,20 +9547,6 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.23.0": - version: 4.23.0 - resolution: "browserslist@npm:4.23.0" - dependencies: - caniuse-lite: ^1.0.30001587 - electron-to-chromium: ^1.4.668 - node-releases: ^2.0.14 - update-browserslist-db: ^1.0.13 - bin: - browserslist: cli.js - checksum: 436f49e796782ca751ebab7edc010cfc9c29f68536f387666cd70ea22f7105563f04dd62c6ff89cb24cc3254d17cba385f979eeeb3484d43e012412ff7e75def - languageName: node - linkType: hard - "bs-logger@npm:0.x": version: 0.2.6 resolution: "bs-logger@npm:0.2.6" @@ -9714,7 +9700,7 @@ __metadata: languageName: node linkType: hard -"builtins@npm:^5.0.1": +"builtins@npm:^5.0.0, builtins@npm:^5.0.1": version: 5.0.1 resolution: "builtins@npm:5.0.1" dependencies: @@ -9834,6 +9820,52 @@ __metadata: languageName: node linkType: hard +"cacache@npm:^16.1.0": + version: 16.1.3 + resolution: "cacache@npm:16.1.3" + dependencies: + "@npmcli/fs": ^2.1.0 + "@npmcli/move-file": ^2.0.0 + chownr: ^2.0.0 + fs-minipass: ^2.1.0 + glob: ^8.0.1 + infer-owner: ^1.0.4 + lru-cache: ^7.7.1 + minipass: ^3.1.6 + minipass-collect: ^1.0.2 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + mkdirp: ^1.0.4 + p-map: ^4.0.0 + promise-inflight: ^1.0.1 + rimraf: ^3.0.2 + ssri: ^9.0.0 + tar: ^6.1.11 + unique-filename: ^2.0.0 + checksum: d91409e6e57d7d9a3a25e5dcc589c84e75b178ae8ea7de05cbf6b783f77a5fae938f6e8fda6f5257ed70000be27a681e1e44829251bfffe4c10216002f8f14e6 + languageName: node + linkType: hard + +"cacache@npm:^17.0.0": + version: 17.1.4 + resolution: "cacache@npm:17.1.4" + dependencies: + "@npmcli/fs": ^3.1.0 + fs-minipass: ^3.0.0 + glob: ^10.2.2 + lru-cache: ^7.7.1 + minipass: ^7.0.3 + minipass-collect: ^1.0.2 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + p-map: ^4.0.0 + ssri: ^10.0.0 + tar: ^6.1.11 + unique-filename: ^3.0.0 + checksum: b7751df756656954a51201335addced8f63fc53266fa56392c9f5ae83c8d27debffb4458ac2d168a744a4517ec3f2163af05c20097f93d17bdc2dc8a385e14a6 + languageName: node + linkType: hard + "cacache@npm:^18.0.0": version: 18.0.2 resolution: "cacache@npm:18.0.2" @@ -10024,13 +10056,6 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001587": - version: 1.0.30001600 - resolution: "caniuse-lite@npm:1.0.30001600" - checksum: 1aae03be0e9f96163e88b9305531ef8db0e01f224aff545c61a32ce0b0ca323e22531bf680bacac3e34f98e23f71ac31a21b328fa0fcbbecea65a2c2638c70c4 - languageName: node - linkType: hard - "case-sensitive-paths-webpack-plugin@npm:^2.2.0": version: 2.4.0 resolution: "case-sensitive-paths-webpack-plugin@npm:2.4.0" @@ -10605,6 +10630,15 @@ __metadata: languageName: node linkType: hard +"color-support@npm:^1.1.3": + version: 1.1.3 + resolution: "color-support@npm:1.1.3" + bin: + color-support: bin.js + checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b + languageName: node + linkType: hard + "color@npm:^3.2.1": version: 3.2.1 resolution: "color@npm:3.2.1" @@ -10622,7 +10656,7 @@ __metadata: languageName: node linkType: hard -"colors@npm:^1.1.2, colors@npm:^1.3.3, colors@npm:^1.4.0": +"colors@npm:1.4.0, colors@npm:^1.1.2, colors@npm:^1.3.3, colors@npm:^1.4.0": version: 1.4.0 resolution: "colors@npm:1.4.0" checksum: 98aa2c2418ad87dedf25d781be69dc5fc5908e279d9d30c34d8b702e586a0474605b3a189511482b9d5ed0d20c867515d22749537f7bc546256c6014f3ebdcec @@ -10862,7 +10896,7 @@ __metadata: languageName: node linkType: hard -"console-control-strings@npm:^1.0.0, console-control-strings@npm:~1.1.0": +"console-control-strings@npm:^1.0.0, console-control-strings@npm:^1.1.0, console-control-strings@npm:~1.1.0": version: 1.1.0 resolution: "console-control-strings@npm:1.1.0" checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed @@ -11155,15 +11189,6 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.34.0": - version: 3.36.1 - resolution: "core-js-compat@npm:3.36.1" - dependencies: - browserslist: ^4.23.0 - checksum: c9109bd599a97b5d20f25fc8b8339b8c7f3fca5f9a1bebd397805383ff7699e117786c7ffe0f7a95058a6fa5e0e1435d4c10e5cda6ad86ce1957986bb6580562 - languageName: node - linkType: hard - "core-js-pure@npm:^3.0.1": version: 3.35.0 resolution: "core-js-pure@npm:3.35.0" @@ -12713,13 +12738,6 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.668": - version: 1.4.715 - resolution: "electron-to-chromium@npm:1.4.715" - checksum: b3ccbd571ecaa3b74b2c098b705416e15e36f9338f75fea062ba48397ac379972f915c29437286914d05ea9d3454b0fa74e9606becd6c221879c6fc139a09284 - languageName: node - linkType: hard - "electron-updater@npm:^6.1.7": version: 6.1.8 resolution: "electron-updater@npm:6.1.8" @@ -14084,6 +14102,13 @@ __metadata: languageName: node linkType: hard +"estree-walker@npm:^2.0.2": + version: 2.0.2 + resolution: "estree-walker@npm:2.0.2" + checksum: 6151e6f9828abe2259e57f5fd3761335bb0d2ebd76dc1a01048ccee22fabcfef3c0859300f6d83ff0d1927849368775ec5a6d265dde2f6de5a1be1721cd94efc + languageName: node + linkType: hard + "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -15585,6 +15610,22 @@ __metadata: languageName: node linkType: hard +"gauge@npm:^4.0.3": + version: 4.0.4 + resolution: "gauge@npm:4.0.4" + dependencies: + aproba: ^1.0.3 || ^2.0.0 + color-support: ^1.1.3 + console-control-strings: ^1.1.0 + has-unicode: ^2.0.1 + signal-exit: ^3.0.7 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + wide-align: ^1.1.5 + checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d + languageName: node + linkType: hard + "gauge@npm:~2.7.3": version: 2.7.4 resolution: "gauge@npm:2.7.4" @@ -15941,7 +15982,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^8.0.3": +"glob@npm:^8.0.1, glob@npm:^8.0.3": version: 8.1.0 resolution: "glob@npm:8.1.0" dependencies: @@ -16393,7 +16434,7 @@ __metadata: languageName: node linkType: hard -"has-unicode@npm:^2.0.0": +"has-unicode@npm:^2.0.0, has-unicode@npm:^2.0.1": version: 2.0.1 resolution: "has-unicode@npm:2.0.1" checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 @@ -16626,6 +16667,15 @@ __metadata: languageName: node linkType: hard +"hosted-git-info@npm:^6.0.0": + version: 6.1.1 + resolution: "hosted-git-info@npm:6.1.1" + dependencies: + lru-cache: ^7.5.1 + checksum: fcd3ca2eaa05f3201425ccbb8aa47f88cdda4a3a6d79453f8e269f7171356278bd1db08f059d8439eb5eaa91c6a8a20800fc49cca6e9e4e899b202a332d5ba6b + languageName: node + linkType: hard + "hpack.js@npm:^2.1.6": version: 2.1.6 resolution: "hpack.js@npm:2.1.6" @@ -16998,6 +17048,15 @@ __metadata: languageName: node linkType: hard +"ignore-walk@npm:^6.0.0": + version: 6.0.4 + resolution: "ignore-walk@npm:6.0.4" + dependencies: + minimatch: ^9.0.0 + checksum: 8161bb3232eee92367049b186a02ad35e3a47edda2de0c0eb216aa89cf6183c33c46aef22b25e1bf5105c643bd2cc2bb722f474870a93a3c56ef8cca22eb64a1 + languageName: node + linkType: hard + "ignore@npm:^3.3.5": version: 3.3.10 resolution: "ignore@npm:3.3.10" @@ -18831,7 +18890,7 @@ __metadata: languageName: node linkType: hard -"jest@npm:^29.2.1, jest@npm:^29.4.3, jest@npm:^29.7.0": +"jest@npm:^29.2.1, jest@npm:^29.7.0": version: 29.7.0 resolution: "jest@npm:29.7.0" dependencies: @@ -19051,6 +19110,13 @@ __metadata: languageName: node linkType: hard +"json-parse-even-better-errors@npm:^3.0.0": + version: 3.0.1 + resolution: "json-parse-even-better-errors@npm:3.0.1" + checksum: bf74fa3f715e56699ccd68b80a7d20908de432a3fae2d5aa2ed530a148e9d9ccdf8e6983b93d9966a553aa70dcf003ce3a7ffec2c0ce74d2a6173e3691a426f0 + languageName: node + linkType: hard + "json-parse-helpfulerror@npm:^1.0.3": version: 1.0.3 resolution: "json-parse-helpfulerror@npm:1.0.3" @@ -19781,6 +19847,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^7.4.4, lru-cache@npm:^7.5.1, lru-cache@npm:^7.7.1": + version: 7.18.3 + resolution: "lru-cache@npm:7.18.3" + checksum: e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356 + languageName: node + linkType: hard + "lz-string@npm:^1.5.0": version: 1.5.0 resolution: "lz-string@npm:1.5.0" @@ -19799,6 +19872,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.30.3": + version: 0.30.8 + resolution: "magic-string@npm:0.30.8" + dependencies: + "@jridgewell/sourcemap-codec": ^1.4.15 + checksum: 79922f4500d3932bb587a04440d98d040170decf432edc0f91c0bf8d41db16d364189bf800e334170ac740918feda62cd39dcc170c337dc18050cfcf00a5f232 + languageName: node + linkType: hard + "make-dir@npm:^2.0.0, make-dir@npm:^2.1.0": version: 2.1.0 resolution: "make-dir@npm:2.1.0" @@ -19834,6 +19916,53 @@ __metadata: languageName: node linkType: hard +"make-fetch-happen@npm:^10.0.3": + version: 10.2.1 + resolution: "make-fetch-happen@npm:10.2.1" + dependencies: + agentkeepalive: ^4.2.1 + cacache: ^16.1.0 + http-cache-semantics: ^4.1.0 + http-proxy-agent: ^5.0.0 + https-proxy-agent: ^5.0.0 + is-lambda: ^1.0.1 + lru-cache: ^7.7.1 + minipass: ^3.1.6 + minipass-collect: ^1.0.2 + minipass-fetch: ^2.0.3 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + negotiator: ^0.6.3 + promise-retry: ^2.0.1 + socks-proxy-agent: ^7.0.0 + ssri: ^9.0.0 + checksum: 2332eb9a8ec96f1ffeeea56ccefabcb4193693597b132cd110734d50f2928842e22b84cfa1508e921b8385cdfd06dda9ad68645fed62b50fff629a580f5fb72c + languageName: node + linkType: hard + +"make-fetch-happen@npm:^11.0.0, make-fetch-happen@npm:^11.0.1, make-fetch-happen@npm:^11.1.1": + version: 11.1.1 + resolution: "make-fetch-happen@npm:11.1.1" + dependencies: + agentkeepalive: ^4.2.1 + cacache: ^17.0.0 + http-cache-semantics: ^4.1.1 + http-proxy-agent: ^5.0.0 + https-proxy-agent: ^5.0.0 + is-lambda: ^1.0.1 + lru-cache: ^7.7.1 + minipass: ^5.0.0 + minipass-fetch: ^3.0.0 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + negotiator: ^0.6.3 + promise-retry: ^2.0.1 + socks-proxy-agent: ^7.0.0 + ssri: ^10.0.0 + checksum: 7268bf274a0f6dcf0343829489a4506603ff34bd0649c12058753900b0eb29191dce5dba12680719a5d0a983d3e57810f594a12f3c18494e93a1fbc6348a4540 + languageName: node + linkType: hard + "make-fetch-happen@npm:^13.0.0": version: 13.0.0 resolution: "make-fetch-happen@npm:13.0.0" @@ -20722,7 +20851,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:9.0.3, minimatch@npm:^9.0.1": +"minimatch@npm:9.0.3, minimatch@npm:^9.0.0, minimatch@npm:^9.0.1": version: 9.0.3 resolution: "minimatch@npm:9.0.3" dependencies: @@ -20791,6 +20920,21 @@ __metadata: languageName: node linkType: hard +"minipass-fetch@npm:^2.0.3": + version: 2.1.2 + resolution: "minipass-fetch@npm:2.1.2" + dependencies: + encoding: ^0.1.13 + minipass: ^3.1.6 + minipass-sized: ^1.0.3 + minizlib: ^2.1.2 + dependenciesMeta: + encoding: + optional: true + checksum: 3f216be79164e915fc91210cea1850e488793c740534985da017a4cbc7a5ff50506956d0f73bb0cb60e4fe91be08b6b61ef35101706d3ef5da2c8709b5f08f91 + languageName: node + linkType: hard + "minipass-fetch@npm:^3.0.0": version: 3.0.4 resolution: "minipass-fetch@npm:3.0.4" @@ -20852,7 +20996,7 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^3.0.0, minipass@npm:^3.1.0, minipass@npm:^3.1.1, minipass@npm:^3.1.3": +"minipass@npm:^3.0.0, minipass@npm:^3.1.0, minipass@npm:^3.1.1, minipass@npm:^3.1.3, minipass@npm:^3.1.6": version: 3.3.6 resolution: "minipass@npm:3.3.6" dependencies: @@ -21350,6 +21494,27 @@ __metadata: languageName: node linkType: hard +"node-gyp@npm:^9.0.0": + version: 9.4.1 + resolution: "node-gyp@npm:9.4.1" + dependencies: + env-paths: ^2.2.0 + exponential-backoff: ^3.1.1 + glob: ^7.1.4 + graceful-fs: ^4.2.6 + make-fetch-happen: ^10.0.3 + nopt: ^6.0.0 + npmlog: ^6.0.0 + rimraf: ^3.0.2 + semver: ^7.3.5 + tar: ^6.1.2 + which: ^2.0.2 + bin: + node-gyp: bin/node-gyp.js + checksum: 8576c439e9e925ab50679f87b7dfa7aa6739e42822e2ad4e26c36341c0ba7163fdf5a946f0a67a476d2f24662bc40d6c97bd9e79ced4321506738e6b760a1577 + languageName: node + linkType: hard + "node-gyp@npm:latest": version: 10.0.1 resolution: "node-gyp@npm:10.0.1" @@ -21454,6 +21619,17 @@ __metadata: languageName: node linkType: hard +"nopt@npm:^6.0.0": + version: 6.0.0 + resolution: "nopt@npm:6.0.0" + dependencies: + abbrev: ^1.0.0 + bin: + nopt: bin/nopt.js + checksum: 82149371f8be0c4b9ec2f863cc6509a7fd0fa729929c009f3a58e4eb0c9e4cae9920e8f1f8eb46e7d032fec8fb01bede7f0f41a67eb3553b7b8e14fa53de1dac + languageName: node + linkType: hard + "nopt@npm:^7.0.0": version: 7.2.0 resolution: "nopt@npm:7.2.0" @@ -21489,6 +21665,18 @@ __metadata: languageName: node linkType: hard +"normalize-package-data@npm:^5.0.0": + version: 5.0.0 + resolution: "normalize-package-data@npm:5.0.0" + dependencies: + hosted-git-info: ^6.0.0 + is-core-module: ^2.8.1 + semver: ^7.3.5 + validate-npm-package-license: ^3.0.4 + checksum: a459f05eaf7c2b643c61234177f08e28064fde97da15800e3d3ac0404e28450d43ac46fc95fbf6407a9bf20af4c58505ad73458a912dc1517f8c1687b1d68c27 + languageName: node + linkType: hard + "normalize-path@npm:^2.1.1": version: 2.1.1 resolution: "normalize-path@npm:2.1.1" @@ -21540,6 +21728,15 @@ __metadata: languageName: node linkType: hard +"npm-bundled@npm:^3.0.0": + version: 3.0.0 + resolution: "npm-bundled@npm:3.0.0" + dependencies: + npm-normalize-package-bin: ^3.0.0 + checksum: 110859c2d6dcd7941dac0932a29171cbde123060486a4b6e897aaf5e025abeb3d9ffcdfe9e9271992e6396b2986c2c534f1029a45a7c196f1257fa244305dbf8 + languageName: node + linkType: hard + "npm-install-checks@npm:^4.0.0": version: 4.0.0 resolution: "npm-install-checks@npm:4.0.0" @@ -21549,6 +21746,15 @@ __metadata: languageName: node linkType: hard +"npm-install-checks@npm:^6.0.0": + version: 6.3.0 + resolution: "npm-install-checks@npm:6.3.0" + dependencies: + semver: ^7.1.1 + checksum: 6c20dadb878a0d2f1f777405217b6b63af1299d0b43e556af9363ee6eefaa98a17dfb7b612a473a473e96faf7e789c58b221e0d8ffdc1d34903c4f71618df3b4 + languageName: node + linkType: hard + "npm-normalize-package-bin@npm:^1.0.1": version: 1.0.1 resolution: "npm-normalize-package-bin@npm:1.0.1" @@ -21556,6 +21762,25 @@ __metadata: languageName: node linkType: hard +"npm-normalize-package-bin@npm:^3.0.0": + version: 3.0.1 + resolution: "npm-normalize-package-bin@npm:3.0.1" + checksum: de416d720ab22137a36292ff8a333af499ea0933ef2320a8c6f56a73b0f0448227fec4db5c890d702e26d21d04f271415eab6580b5546456861cc0c19498a4bf + languageName: node + linkType: hard + +"npm-package-arg@npm:^10.0.0": + version: 10.1.0 + resolution: "npm-package-arg@npm:10.1.0" + dependencies: + hosted-git-info: ^6.0.0 + proc-log: ^3.0.0 + semver: ^7.3.5 + validate-npm-package-name: ^5.0.0 + checksum: 8fe4b6a742502345e4836ed42fdf26c544c9f75563c476c67044a481ada6e81f71b55462489c7e1899d516e4347150e58028036a90fa11d47e320bcc9365fd30 + languageName: node + linkType: hard + "npm-package-arg@npm:^7.0.0": version: 7.0.0 resolution: "npm-package-arg@npm:7.0.0" @@ -21593,6 +21818,15 @@ __metadata: languageName: node linkType: hard +"npm-packlist@npm:^7.0.0": + version: 7.0.4 + resolution: "npm-packlist@npm:7.0.4" + dependencies: + ignore-walk: ^6.0.0 + checksum: 5ffa1f8f0b32141a60a66713fa3ed03b8ee4800b1ed6b59194d03c3c85da88f3fc21e1de29b665f322678bae85198732b16aa76c0a7cb0e283f9e0db50752233 + languageName: node + linkType: hard + "npm-pick-manifest@npm:^6.0.0, npm-pick-manifest@npm:^6.1.1": version: 6.1.1 resolution: "npm-pick-manifest@npm:6.1.1" @@ -21605,6 +21839,18 @@ __metadata: languageName: node linkType: hard +"npm-pick-manifest@npm:^8.0.0": + version: 8.0.2 + resolution: "npm-pick-manifest@npm:8.0.2" + dependencies: + npm-install-checks: ^6.0.0 + npm-normalize-package-bin: ^3.0.0 + npm-package-arg: ^10.0.0 + semver: ^7.3.5 + checksum: c9f71b57351a3a241a7e56148332f2f341a09dff2a1b1f4ffb1517eac25f1888ac7fbce4939e522cbd533577448c307d05fff0c32430cc03c8c6179fac320cd4 + languageName: node + linkType: hard + "npm-registry-fetch@npm:^11.0.0": version: 11.0.0 resolution: "npm-registry-fetch@npm:11.0.0" @@ -21619,6 +21865,21 @@ __metadata: languageName: node linkType: hard +"npm-registry-fetch@npm:^14.0.0": + version: 14.0.5 + resolution: "npm-registry-fetch@npm:14.0.5" + dependencies: + make-fetch-happen: ^11.0.0 + minipass: ^5.0.0 + minipass-fetch: ^3.0.0 + minipass-json-stream: ^1.0.1 + minizlib: ^2.1.2 + npm-package-arg: ^10.0.0 + proc-log: ^3.0.0 + checksum: c63649642955b424bc1baaff5955027144af312ae117ba8c24829e74484f859482591fe89687c6597d83e930c8054463eef23020ac69146097a72cc62ff10986 + languageName: node + linkType: hard + "npm-run-all@npm:4.1.5": version: 4.1.5 resolution: "npm-run-all@npm:4.1.5" @@ -21679,6 +21940,18 @@ __metadata: languageName: node linkType: hard +"npmlog@npm:^6.0.0": + version: 6.0.2 + resolution: "npmlog@npm:6.0.2" + dependencies: + are-we-there-yet: ^3.0.0 + console-control-strings: ^1.1.0 + gauge: ^4.0.3 + set-blocking: ^2.0.0 + checksum: ae238cd264a1c3f22091cdd9e2b106f684297d3c184f1146984ecbe18aaa86343953f26b9520dedd1b1372bc0316905b736c1932d778dbeb1fcf5a1001390e2a + languageName: node + linkType: hard + "nth-check@npm:^1.0.2": version: 1.0.2 resolution: "nth-check@npm:1.0.2" @@ -22381,6 +22654,34 @@ __metadata: languageName: node linkType: hard +"pacote@npm:^15.1.1": + version: 15.2.0 + resolution: "pacote@npm:15.2.0" + dependencies: + "@npmcli/git": ^4.0.0 + "@npmcli/installed-package-contents": ^2.0.1 + "@npmcli/promise-spawn": ^6.0.1 + "@npmcli/run-script": ^6.0.0 + cacache: ^17.0.0 + fs-minipass: ^3.0.0 + minipass: ^5.0.0 + npm-package-arg: ^10.0.0 + npm-packlist: ^7.0.0 + npm-pick-manifest: ^8.0.0 + npm-registry-fetch: ^14.0.0 + proc-log: ^3.0.0 + promise-retry: ^2.0.1 + read-package-json: ^6.0.0 + read-package-json-fast: ^3.0.0 + sigstore: ^1.3.0 + ssri: ^10.0.0 + tar: ^6.1.11 + bin: + pacote: lib/bin.js + checksum: c731572be2bf226b117eba076d242bd4cd8be7aa01e004af3374a304ad7ab330539e22644bc33de12d2a7d45228ccbcbf4d710f59c84414f3d09a1a95ee6f0bf + languageName: node + linkType: hard + "pako@npm:~1.0.5": version: 1.0.11 resolution: "pako@npm:1.0.11" @@ -24564,10 +24865,12 @@ __metadata: resolution: "reactotron-apollo-client@workspace:lib/reactotron-apollo-client" dependencies: "@apollo/client": ^3.8.3 - "@babel/core": ^7.21.0 - "@babel/preset-env": ^7.20.2 - "@babel/preset-typescript": ^7.21.0 - "@types/jest": ^29.4.0 + "@babel/core": ^7.23.2 + "@babel/eslint-parser": ^7.23.10 + "@babel/preset-typescript": ^7.23.2 + "@rollup/plugin-replace": ^5.0.5 + "@rollup/plugin-typescript": 11.1.1 + "@types/jest": ^29.5.12 "@types/node": ^11.9.5 "@types/ramda": ^0.25.50 "@typescript-eslint/eslint-plugin": ^5.54.0 @@ -24584,16 +24887,13 @@ __metadata: eslint-plugin-react-hooks: ^4.6.0 eslint-plugin-standard: ^5.0.0 graphql: ^16.8.0 - jest: ^29.4.3 + jest: ^29.7.0 prettier: ^2.8.4 ramda: ^0.25.0 reactotron-core-client: "workspace:*" - rollup: ^1.1.2 - rollup-plugin-babel: ^4.3.2 - rollup-plugin-babel-minify: ^7.0.0 - rollup-plugin-filesize: ^6.0.1 - rollup-plugin-node-resolve: ^4.0.0 - rollup-plugin-resolve: ^0.0.1-predev.1 + rollup: ^4.9.6 + rollup-plugin-filesize: ^10.0.0 + rollup-plugin-terser: ^7.0.2 testdouble: ^3.16.8 trash-cli: ^5.0.0 ts-jest: ^29.0.5 @@ -24655,6 +24955,7 @@ __metadata: react-router-dom: ^6.18.0 react-test-renderer: 18.2.0 react-tooltip: 4.5.1 + react-transition-group: ^4.4.5 reactotron-core-contract: "workspace:*" reactotron-core-server: "workspace:*" reactotron-core-ui: "workspace:*" @@ -25136,6 +25437,28 @@ __metadata: languageName: node linkType: hard +"read-package-json-fast@npm:^3.0.0": + version: 3.0.2 + resolution: "read-package-json-fast@npm:3.0.2" + dependencies: + json-parse-even-better-errors: ^3.0.0 + npm-normalize-package-bin: ^3.0.0 + checksum: 8d406869f045f1d76e2a99865a8fd1c1af9c1dc06200b94d2b07eef87ed734b22703a8d72e1cd36ea36cc48e22020bdd187f88243c7dd0563f72114d38c17072 + languageName: node + linkType: hard + +"read-package-json@npm:^6.0.0": + version: 6.0.4 + resolution: "read-package-json@npm:6.0.4" + dependencies: + glob: ^10.2.2 + json-parse-even-better-errors: ^3.0.0 + normalize-package-data: ^5.0.0 + npm-normalize-package-bin: ^3.0.0 + checksum: ce40c4671299753f1349aebe44693cd250d6936c4bacfb31cd884c87f24a0174ba5f651ee2866cf5e57365451cba38bc1db9c2a371e4ba7502fb46dcad50f1d7 + languageName: node + linkType: hard + "read-pkg-up@npm:^3.0.0": version: 3.0.0 resolution: "read-pkg-up@npm:3.0.0" @@ -25962,7 +26285,7 @@ __metadata: languageName: node linkType: hard -"rollup-plugin-babel@npm:4.4.0, rollup-plugin-babel@npm:^4.3.2, rollup-plugin-babel@npm:^4.4.0": +"rollup-plugin-babel@npm:4.4.0, rollup-plugin-babel@npm:^4.4.0": version: 4.4.0 resolution: "rollup-plugin-babel@npm:4.4.0" dependencies: @@ -25991,6 +26314,22 @@ __metadata: languageName: node linkType: hard +"rollup-plugin-filesize@npm:^10.0.0": + version: 10.0.0 + resolution: "rollup-plugin-filesize@npm:10.0.0" + dependencies: + "@babel/runtime": ^7.13.8 + boxen: ^5.0.0 + brotli-size: 4.0.0 + colors: 1.4.0 + filesize: ^6.1.0 + gzip-size: ^6.0.0 + pacote: ^15.1.1 + terser: ^5.6.0 + checksum: 156dfafe64016866ce65a4d749cdfe4d3260eb170b9ad740cc707865190c83b0ad98c5050f7d3e5777e20a374be811911f39f6250b1455a00b57f382b47f4535 + languageName: node + linkType: hard + "rollup-plugin-filesize@npm:^6.0.1": version: 6.2.1 resolution: "rollup-plugin-filesize@npm:6.2.1" @@ -26070,6 +26409,20 @@ __metadata: languageName: node linkType: hard +"rollup-plugin-terser@npm:^7.0.2": + version: 7.0.2 + resolution: "rollup-plugin-terser@npm:7.0.2" + dependencies: + "@babel/code-frame": ^7.10.4 + jest-worker: ^26.2.1 + serialize-javascript: ^4.0.0 + terser: ^5.0.0 + peerDependencies: + rollup: ^2.0.0 + checksum: af84bb7a7a894cd00852b6486528dfb8653cf94df4c126f95f389a346f401d054b08c46bee519a2ab6a22b33804d1d6ac6d8c90b1b2bf8fffb097eed73fc3c72 + languageName: node + linkType: hard + "rollup-pluginutils@npm:^2.3.0, rollup-pluginutils@npm:^2.6.0, rollup-pluginutils@npm:^2.8.1": version: 2.8.2 resolution: "rollup-pluginutils@npm:2.8.2" @@ -26161,6 +26514,60 @@ __metadata: languageName: node linkType: hard +"rollup@npm:^4.9.6": + version: 4.13.0 + resolution: "rollup@npm:4.13.0" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.13.0 + "@rollup/rollup-android-arm64": 4.13.0 + "@rollup/rollup-darwin-arm64": 4.13.0 + "@rollup/rollup-darwin-x64": 4.13.0 + "@rollup/rollup-linux-arm-gnueabihf": 4.13.0 + "@rollup/rollup-linux-arm64-gnu": 4.13.0 + "@rollup/rollup-linux-arm64-musl": 4.13.0 + "@rollup/rollup-linux-riscv64-gnu": 4.13.0 + "@rollup/rollup-linux-x64-gnu": 4.13.0 + "@rollup/rollup-linux-x64-musl": 4.13.0 + "@rollup/rollup-win32-arm64-msvc": 4.13.0 + "@rollup/rollup-win32-ia32-msvc": 4.13.0 + "@rollup/rollup-win32-x64-msvc": 4.13.0 + "@types/estree": 1.0.5 + fsevents: ~2.3.2 + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: c2c35bee0a71ceb0df37c170c2b73a500bf9ebdffb747487d77831348603d50dcfcdd9d0a937362d3a87edda559c9d1e017fba2d75f05f0c594634d9b8dde9a4 + languageName: node + linkType: hard + "rtl-detect@npm:^1.0.2": version: 1.1.2 resolution: "rtl-detect@npm:1.1.2" @@ -26828,6 +27235,21 @@ __metadata: languageName: node linkType: hard +"sigstore@npm:^1.3.0": + version: 1.9.0 + resolution: "sigstore@npm:1.9.0" + dependencies: + "@sigstore/bundle": ^1.1.0 + "@sigstore/protobuf-specs": ^0.2.0 + "@sigstore/sign": ^1.0.0 + "@sigstore/tuf": ^1.0.3 + make-fetch-happen: ^11.0.1 + bin: + sigstore: bin/sigstore.js + checksum: b3f1ccf4d2d5e6af294ad851981cc9dc4c01b6b5b7aeb98582765f5d2e75aa2b9221133b8e572179bb305e16ce589339d9617b26b9fa0bea0c38c9adef792912 + languageName: node + linkType: hard + "simple-plist@npm:^1.1.0": version: 1.4.0 resolution: "simple-plist@npm:1.4.0" @@ -27047,6 +27469,17 @@ __metadata: languageName: node linkType: hard +"socks-proxy-agent@npm:^7.0.0": + version: 7.0.0 + resolution: "socks-proxy-agent@npm:7.0.0" + dependencies: + agent-base: ^6.0.2 + debug: ^4.3.3 + socks: ^2.6.2 + checksum: 720554370154cbc979e2e9ce6a6ec6ced205d02757d8f5d93fe95adae454fc187a5cbfc6b022afab850a5ce9b4c7d73e0f98e381879cf45f66317a4895953846 + languageName: node + linkType: hard + "socks-proxy-agent@npm:^8.0.1": version: 8.0.2 resolution: "socks-proxy-agent@npm:8.0.2" @@ -27349,6 +27782,15 @@ __metadata: languageName: node linkType: hard +"ssri@npm:^9.0.0": + version: 9.0.1 + resolution: "ssri@npm:9.0.1" + dependencies: + minipass: ^3.1.1 + checksum: fb58f5e46b6923ae67b87ad5ef1c5ab6d427a17db0bead84570c2df3cd50b4ceb880ebdba2d60726588272890bae842a744e1ecce5bd2a2a582fccd5068309eb + languageName: node + linkType: hard + "stable@npm:^0.1.8": version: 0.1.8 resolution: "stable@npm:0.1.8" @@ -28326,6 +28768,20 @@ __metadata: languageName: node linkType: hard +"terser@npm:^5.0.0": + version: 5.29.2 + resolution: "terser@npm:5.29.2" + dependencies: + "@jridgewell/source-map": ^0.3.3 + acorn: ^8.8.2 + commander: ^2.20.0 + source-map-support: ~0.5.20 + bin: + terser: bin/terser + checksum: 2310d04e530903ed4da6168c4c90ab65965c5f1f8919733772119ff560e9e9be2def070c9659f7d96f2e28489c4378241c4cef1917f05b9524587436fdd5a802 + languageName: node + linkType: hard + "terser@npm:^5.15.0, terser@npm:^5.6.0": version: 5.27.0 resolution: "terser@npm:5.27.0" @@ -28934,6 +29390,17 @@ __metadata: languageName: node linkType: hard +"tuf-js@npm:^1.1.7": + version: 1.1.7 + resolution: "tuf-js@npm:1.1.7" + dependencies: + "@tufjs/models": 1.0.4 + debug: ^4.3.4 + make-fetch-happen: ^11.1.1 + checksum: 089fc0dabe1fcaeca8b955b358b34272f23237ac9e074b5f983349eb44d9688fd137f28f493bbd8dfd865d1af4e76e0cc869d307eadd054d1b404914c3124ae5 + languageName: node + linkType: hard + "tunnel-agent@npm:^0.6.0": version: 0.6.0 resolution: "tunnel-agent@npm:0.6.0" @@ -29346,6 +29813,15 @@ __metadata: languageName: node linkType: hard +"unique-filename@npm:^2.0.0": + version: 2.0.1 + resolution: "unique-filename@npm:2.0.1" + dependencies: + unique-slug: ^3.0.0 + checksum: 807acf3381aff319086b64dc7125a9a37c09c44af7620bd4f7f3247fcd5565660ac12d8b80534dcbfd067e6fe88a67e621386dd796a8af828d1337a8420a255f + languageName: node + linkType: hard + "unique-filename@npm:^3.0.0": version: 3.0.0 resolution: "unique-filename@npm:3.0.0" @@ -29364,6 +29840,15 @@ __metadata: languageName: node linkType: hard +"unique-slug@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-slug@npm:3.0.0" + dependencies: + imurmurhash: ^0.1.4 + checksum: 49f8d915ba7f0101801b922062ee46b7953256c93ceca74303bd8e6413ae10aa7e8216556b54dc5382895e8221d04f1efaf75f945c2e4a515b4139f77aa6640c + languageName: node + linkType: hard + "unique-slug@npm:^4.0.0": version: 4.0.0 resolution: "unique-slug@npm:4.0.0" @@ -29791,7 +30276,7 @@ __metadata: languageName: node linkType: hard -"validate-npm-package-license@npm:^3.0.1": +"validate-npm-package-license@npm:^3.0.1, validate-npm-package-license@npm:^3.0.4": version: 3.0.4 resolution: "validate-npm-package-license@npm:3.0.4" dependencies: @@ -29810,6 +30295,15 @@ __metadata: languageName: node linkType: hard +"validate-npm-package-name@npm:^5.0.0": + version: 5.0.0 + resolution: "validate-npm-package-name@npm:5.0.0" + dependencies: + builtins: ^5.0.0 + checksum: 5342a994986199b3c28e53a8452a14b2bb5085727691ea7aa0d284a6606b127c371e0925ae99b3f1ef7cc7d2c9de75f52eb61a3d1cc45e39bca1e3a9444cbb4e + languageName: node + linkType: hard + "vary@npm:^1, vary@npm:~1.1.2": version: 1.1.2 resolution: "vary@npm:1.1.2" @@ -30364,7 +30858,7 @@ __metadata: languageName: node linkType: hard -"wide-align@npm:^1.1.0": +"wide-align@npm:^1.1.0, wide-align@npm:^1.1.5": version: 1.1.5 resolution: "wide-align@npm:1.1.5" dependencies: From 13664a1cb48ef48c1e29d068a3d7d84282bbdefe Mon Sep 17 00:00:00 2001 From: Mark Rickert Date: Wed, 14 Feb 2024 11:38:00 -0700 Subject: [PATCH 12/18] Export the apollo-client properly. --- lib/reactotron-apisauce/rollup.config.cjs | 29 +++++++++++++++++++ .../rollup.config.cjs | 2 +- lib/reactotron-apollo-client/src/index.ts | 2 ++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 lib/reactotron-apisauce/rollup.config.cjs diff --git a/lib/reactotron-apisauce/rollup.config.cjs b/lib/reactotron-apisauce/rollup.config.cjs new file mode 100644 index 000000000..0b42c02f1 --- /dev/null +++ b/lib/reactotron-apisauce/rollup.config.cjs @@ -0,0 +1,29 @@ +import replace from "@rollup/plugin-replace" +import filesize from "rollup-plugin-filesize" +import { terser } from "rollup-plugin-terser" +import typescript from "@rollup/plugin-typescript" + +const pkg = require("./package.json") + +/** @type {import('rollup').RollupOptions} */ +export default { + input: "src/index.ts", + output: [ + { + file: pkg.main, + format: "cjs", + }, + { + file: pkg.module, + format: "esm", + }, + ], + plugins: [ + typescript(), + replace({ + REACTOTRON_CORE_CLIENT_VERSION: pkg.version, + }), + process.env.NODE_ENV === "production" ? terser() : null, + filesize(), + ], +} diff --git a/lib/reactotron-apollo-client/rollup.config.cjs b/lib/reactotron-apollo-client/rollup.config.cjs index ba244acd8..c26b84d94 100644 --- a/lib/reactotron-apollo-client/rollup.config.cjs +++ b/lib/reactotron-apollo-client/rollup.config.cjs @@ -7,7 +7,7 @@ const pkg = require("./package.json") /** @type {import('rollup').RollupOptions} */ export default { - input: "src/reactotron-apollo-client.ts", + input: "src/index.ts", output: [ { file: pkg.main, diff --git a/lib/reactotron-apollo-client/src/index.ts b/lib/reactotron-apollo-client/src/index.ts index 58ce7e42a..6a473801c 100644 --- a/lib/reactotron-apollo-client/src/index.ts +++ b/lib/reactotron-apollo-client/src/index.ts @@ -1 +1,3 @@ +import apolloClient from "./reactotron-apollo-client" export * from "./reactotron-apollo-client" +export default apolloClient From 76e59421a1ea8c82b8a73c74767a9194b1b3d046 Mon Sep 17 00:00:00 2001 From: Frank Calise Date: Fri, 22 Mar 2024 10:16:37 -0400 Subject: [PATCH 13/18] refactor: remove prev deleted files --- lib/reactotron-apisauce/rollup.config.cjs | 29 ----------- lib/reactotron-redux/src/reactotron-redux.ts | 51 -------------------- 2 files changed, 80 deletions(-) delete mode 100644 lib/reactotron-apisauce/rollup.config.cjs delete mode 100644 lib/reactotron-redux/src/reactotron-redux.ts diff --git a/lib/reactotron-apisauce/rollup.config.cjs b/lib/reactotron-apisauce/rollup.config.cjs deleted file mode 100644 index 0b42c02f1..000000000 --- a/lib/reactotron-apisauce/rollup.config.cjs +++ /dev/null @@ -1,29 +0,0 @@ -import replace from "@rollup/plugin-replace" -import filesize from "rollup-plugin-filesize" -import { terser } from "rollup-plugin-terser" -import typescript from "@rollup/plugin-typescript" - -const pkg = require("./package.json") - -/** @type {import('rollup').RollupOptions} */ -export default { - input: "src/index.ts", - output: [ - { - file: pkg.main, - format: "cjs", - }, - { - file: pkg.module, - format: "esm", - }, - ], - plugins: [ - typescript(), - replace({ - REACTOTRON_CORE_CLIENT_VERSION: pkg.version, - }), - process.env.NODE_ENV === "production" ? terser() : null, - filesize(), - ], -} diff --git a/lib/reactotron-redux/src/reactotron-redux.ts b/lib/reactotron-redux/src/reactotron-redux.ts deleted file mode 100644 index b0789c664..000000000 --- a/lib/reactotron-redux/src/reactotron-redux.ts +++ /dev/null @@ -1,51 +0,0 @@ -import type { Plugin, ReactotronCore } from "reactotron-core-client" - -import createCommandHander from "./commandHandler" -import createSendAction from "./sendAction" -import createEnhancer from "./enhancer" -import { DEFAULT_REPLACER_TYPE } from "./reducer" -import { PluginConfig } from "./pluginConfig" - -function reactotronRedux(pluginConfig: PluginConfig = {}) { - const mergedPluginConfig: PluginConfig = { - ...pluginConfig, - restoreActionType: pluginConfig.restoreActionType || DEFAULT_REPLACER_TYPE, - } - - const storeCreationHandlers: (() => void)[] = [] - const onReduxStoreCreation = (func: () => void) => { - storeCreationHandlers.push(func) - } - const handleStoreCreation = () => { - storeCreationHandlers.forEach((func) => { - func() - }) - } - - function plugin(reactotron: Client) { - return { - name: "redux", - // Fires when we receive a command from the Reactotron app. - onCommand: createCommandHander(reactotron, mergedPluginConfig, onReduxStoreCreation), - - // All keys in this object will be attached to the main Reactotron instance - // and available to be called directly. - features: { - createEnhancer: createEnhancer(reactotron, mergedPluginConfig, handleStoreCreation), - setReduxStore: (store) => { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore shhhhhh -- this is a private API - reactotron.reduxStore = store - handleStoreCreation() - }, - reportReduxAction: createSendAction(reactotron), - }, - } satisfies Plugin - } - - return plugin -} - -export type ReactotronReduxPlugin = ReturnType - -export { reactotronRedux } From adea63d090fef7068ce9144bae3cdbb1498f2e70 Mon Sep 17 00:00:00 2001 From: Frank Calise Date: Fri, 22 Mar 2024 12:09:24 -0400 Subject: [PATCH 14/18] chore: fix bad merge --- lib/reactotron-core-ui/src/utils/filterCommands/index.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/reactotron-core-ui/src/utils/filterCommands/index.ts b/lib/reactotron-core-ui/src/utils/filterCommands/index.ts index 611e2d3fd..7422368af 100644 --- a/lib/reactotron-core-ui/src/utils/filterCommands/index.ts +++ b/lib/reactotron-core-ui/src/utils/filterCommands/index.ts @@ -24,7 +24,6 @@ const COMMON_MATCHING_PATHS = [ path("payload", "triggerType"), path("payload", "description"), path("payload", "request", "url"), - path("payload", "value"), ] export function filterSearch(commands: any[], search: string) { @@ -62,7 +61,6 @@ export function filterSearch(commands: any[], search: string) { ) return true if (command.type === CommandType.ClientIntro && matching("connection")) return true - if (command.type === CommandType.Display && matchingObj(command.payload.value)) return true return false }).length > 0 ) From ed6688e0808679643aca27de6b8beaaa0dc5ed80 Mon Sep 17 00:00:00 2001 From: Frank Calise Date: Fri, 22 Mar 2024 12:16:16 -0400 Subject: [PATCH 15/18] feat(example-app): apollo detail screen --- .../app/navigators/AppNavigator.tsx | 9 ++ .../app/screens/ApolloDetailScreen.tsx | 98 +++++++++++++++++++ apps/example-app/app/screens/ApolloScreen.tsx | 7 +- apps/example-app/app/screens/index.ts | 1 + .../renderer/components/SideBar/Sidebar.tsx | 9 +- 5 files changed, 113 insertions(+), 11 deletions(-) create mode 100644 apps/example-app/app/screens/ApolloDetailScreen.tsx diff --git a/apps/example-app/app/navigators/AppNavigator.tsx b/apps/example-app/app/navigators/AppNavigator.tsx index 4c7167e04..aeda8655e 100644 --- a/apps/example-app/app/navigators/AppNavigator.tsx +++ b/apps/example-app/app/navigators/AppNavigator.tsx @@ -38,6 +38,14 @@ export type AppStackParamList = { AsyncStorage: undefined Redux: undefined Apollo: undefined + ApolloDetail: { + item: { + __typename: string + id: number + number: number | null + title: string + } + } } /** @@ -105,6 +113,7 @@ const AppStack = function AppStack() { /> + ) diff --git a/apps/example-app/app/screens/ApolloDetailScreen.tsx b/apps/example-app/app/screens/ApolloDetailScreen.tsx new file mode 100644 index 000000000..f9212b84f --- /dev/null +++ b/apps/example-app/app/screens/ApolloDetailScreen.tsx @@ -0,0 +1,98 @@ +import React from "react" +import { FlatList, TextStyle, View, ViewStyle } from "react-native" +import { ListItem, Text } from "app/components" +import { AppStackScreenProps } from "app/navigators" +import { colors, spacing } from "app/theme" +import { useSafeAreaInsetsStyle } from "app/utils/useSafeAreaInsetsStyle" +import { gql, useQuery } from "@apollo/client" + +const SECTIONS_QUERY = gql` + query Sections($id: Int!) { + chapter(id: $id) { + sections { + number + title + } + } + } +` + +interface Section { + number: number + title: string +} + +interface SectionItemProps { + chapter: { + __typename: string + id: number + number: number | null + title: string + } + section: Section + onPress?: () => void +} + +const SectionItem: React.FC = ({ chapter, section, onPress }) => ( + +) + +interface ApolloDetailScreenProps extends AppStackScreenProps<"ApolloDetail"> {} + +export const ApolloDetailScreen: React.FC = function ApolloScreen({ + route, +}) { + const id = route.params.item.id + + const { data, loading } = useQuery(SECTIONS_QUERY, { + variables: { id }, + }) + + const $bottomContainerInsets = useSafeAreaInsetsStyle(["bottom"]) + + return ( + } + ListHeaderComponent={() => { + return ( + + + + + + ) + }} + keyExtractor={(section) => section.number.toString()} + /> + ) +} + +const $container: ViewStyle = { + flex: 1, + backgroundColor: colors.background, +} + +const $text: TextStyle = { + color: colors.text, +} +const $subheading: TextStyle = { + ...$text, + margin: spacing.sm, +} + +const $bottomBorder: ViewStyle = { + borderBottomWidth: 1, + borderBottomColor: colors.text, + marginHorizontal: spacing.sm, +} diff --git a/apps/example-app/app/screens/ApolloScreen.tsx b/apps/example-app/app/screens/ApolloScreen.tsx index cb1b5f57f..307f5f8f3 100644 --- a/apps/example-app/app/screens/ApolloScreen.tsx +++ b/apps/example-app/app/screens/ApolloScreen.tsx @@ -5,6 +5,7 @@ import { AppStackScreenProps } from "app/navigators" import { colors, spacing } from "app/theme" import { useSafeAreaInsetsStyle } from "app/utils/useSafeAreaInsetsStyle" import { gql, useQuery } from "@apollo/client" +import { useNavigation } from "@react-navigation/native" const CHAPTERS_QUERY = gql` query Chapters { @@ -47,6 +48,7 @@ interface ApolloScreenProps extends AppStackScreenProps<"Apollo"> {} export const ApolloScreen: React.FC = function ApolloScreen() { const { data, loading } = useQuery(CHAPTERS_QUERY) + const navigation = useNavigation() const $bottomContainerInsets = useSafeAreaInsetsStyle(["bottom"]) @@ -56,10 +58,7 @@ export const ApolloScreen: React.FC = function ApolloScreen() contentContainerStyle={$bottomContainerInsets} data={loading ? [] : data.chapters} renderItem={({ item }) => ( - navigation.navigate("Chapter", { chapter: item })} - /> + navigation.navigate("ApolloDetail", { item })} /> )} ListHeaderComponent={() => { return ( diff --git a/apps/example-app/app/screens/index.ts b/apps/example-app/app/screens/index.ts index 035095a5b..72afb2a29 100644 --- a/apps/example-app/app/screens/index.ts +++ b/apps/example-app/app/screens/index.ts @@ -8,6 +8,7 @@ export * from "./ReduxScreen" export * from "./ErrorGeneratorScreen" export * from "./AsyncStorageScreen" export * from "./ApolloScreen" +export * from "./ApolloDetailScreen" export * from "./ErrorScreen/ErrorBoundary" // export other screens here diff --git a/apps/reactotron-app/src/renderer/components/SideBar/Sidebar.tsx b/apps/reactotron-app/src/renderer/components/SideBar/Sidebar.tsx index 2b3e1ff7c..fb7b95f04 100644 --- a/apps/reactotron-app/src/renderer/components/SideBar/Sidebar.tsx +++ b/apps/reactotron-app/src/renderer/components/SideBar/Sidebar.tsx @@ -15,12 +15,7 @@ import styled from "styled-components" import SideBarButton from "../SideBarButton" import { reactotronLogo } from "../../images" import { ServerStatus } from "../../contexts/Standalone/useStandalone" -import { - Transition, - CSSTransition, - SwitchTransition, - TransitionGroup, -} from "react-transition-group" +import { Transition } from "react-transition-group" interface SideBarContainerProps { $isOpen: boolean @@ -108,7 +103,7 @@ function SideBar({ isOpen, serverStatus, plugins }: SideBarProps) { > From 3c40be816681a71606d55cd78bf13b0f20bbaa94 Mon Sep 17 00:00:00 2001 From: Frank Calise Date: Fri, 22 Mar 2024 12:16:28 -0400 Subject: [PATCH 16/18] chore(apollo-client): add some debug --- .../src/reactotron-apollo-client.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts b/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts index b507d9506..1bf87c519 100644 --- a/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts +++ b/lib/reactotron-apollo-client/src/reactotron-apollo-client.ts @@ -311,7 +311,13 @@ export const apolloPlugin = onConnect() { reactotron.display({ name: "APOLLO CLIENT", preview: "Connected" }) - const poll = () => + const poll = () => { + // TODO remove + reactotron.display({ + name: "APOLLO CLIENT", + preview: `Poll`, + }) + getCurrentState(apolloClient).then((state) => { apolloData = state @@ -323,6 +329,7 @@ export const apolloPlugin = value: state, }) }) + } apolloClient.__actionHookForDevTools(debounce(poll)) }, onDisconnect() { From ae12112a4e97167d1b2d7be719a4b9927f2fee3d Mon Sep 17 00:00:00 2001 From: Nick Morgan Date: Fri, 22 Mar 2024 15:24:58 -0400 Subject: [PATCH 17/18] Adding name to redux plugin to fix build error --- lib/reactotron-redux/src/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/reactotron-redux/src/index.ts b/lib/reactotron-redux/src/index.ts index 3ae3b822f..b0789c664 100644 --- a/lib/reactotron-redux/src/index.ts +++ b/lib/reactotron-redux/src/index.ts @@ -24,6 +24,7 @@ function reactotronRedux(pluginConfig: PluginConfig = {}) { function plugin(reactotron: Client) { return { + name: "redux", // Fires when we receive a command from the Reactotron app. onCommand: createCommandHander(reactotron, mergedPluginConfig, onReduxStoreCreation), From 86371c940f0ebe643459cc7884d6dded4211c7f9 Mon Sep 17 00:00:00 2001 From: Frank Calise Date: Fri, 22 Mar 2024 17:08:24 -0400 Subject: [PATCH 18/18] fix(example-app): observer apollo screens --- .../app/screens/ApolloDetailScreen.tsx | 63 ++++++++++--------- apps/example-app/app/screens/ApolloScreen.tsx | 5 +- 2 files changed, 35 insertions(+), 33 deletions(-) diff --git a/apps/example-app/app/screens/ApolloDetailScreen.tsx b/apps/example-app/app/screens/ApolloDetailScreen.tsx index f9212b84f..6bca4ad08 100644 --- a/apps/example-app/app/screens/ApolloDetailScreen.tsx +++ b/apps/example-app/app/screens/ApolloDetailScreen.tsx @@ -5,6 +5,7 @@ import { AppStackScreenProps } from "app/navigators" import { colors, spacing } from "app/theme" import { useSafeAreaInsetsStyle } from "app/utils/useSafeAreaInsetsStyle" import { gql, useQuery } from "@apollo/client" +import { observer } from "mobx-react-lite" const SECTIONS_QUERY = gql` query Sections($id: Int!) { @@ -43,40 +44,40 @@ const SectionItem: React.FC = ({ chapter, section, onPress }) interface ApolloDetailScreenProps extends AppStackScreenProps<"ApolloDetail"> {} -export const ApolloDetailScreen: React.FC = function ApolloScreen({ - route, -}) { - const id = route.params.item.id +export const ApolloDetailScreen: React.FC = observer( + function ApolloScreen({ route }) { + const id = route.params.item.id - const { data, loading } = useQuery(SECTIONS_QUERY, { - variables: { id }, - }) + const { data, loading } = useQuery(SECTIONS_QUERY, { + variables: { id }, + }) - const $bottomContainerInsets = useSafeAreaInsetsStyle(["bottom"]) + const $bottomContainerInsets = useSafeAreaInsetsStyle(["bottom"]) - return ( - } - ListHeaderComponent={() => { - return ( - - - - - - ) - }} - keyExtractor={(section) => section.number.toString()} - /> - ) -} + return ( + } + ListHeaderComponent={() => { + return ( + + + + + + ) + }} + keyExtractor={(section) => section.number.toString()} + /> + ) + } +) const $container: ViewStyle = { flex: 1, diff --git a/apps/example-app/app/screens/ApolloScreen.tsx b/apps/example-app/app/screens/ApolloScreen.tsx index 307f5f8f3..d31bc77c8 100644 --- a/apps/example-app/app/screens/ApolloScreen.tsx +++ b/apps/example-app/app/screens/ApolloScreen.tsx @@ -6,6 +6,7 @@ import { colors, spacing } from "app/theme" import { useSafeAreaInsetsStyle } from "app/utils/useSafeAreaInsetsStyle" import { gql, useQuery } from "@apollo/client" import { useNavigation } from "@react-navigation/native" +import { observer } from "mobx-react-lite" const CHAPTERS_QUERY = gql` query Chapters { @@ -46,7 +47,7 @@ const ChapterItem = ({ interface ApolloScreenProps extends AppStackScreenProps<"Apollo"> {} -export const ApolloScreen: React.FC = function ApolloScreen() { +export const ApolloScreen: React.FC = observer(function ApolloScreen() { const { data, loading } = useQuery(CHAPTERS_QUERY) const navigation = useNavigation() @@ -76,7 +77,7 @@ export const ApolloScreen: React.FC = function ApolloScreen() keyExtractor={(chapter) => chapter.id.toString()} /> ) -} +}) const $container: ViewStyle = { flex: 1,