diff --git a/packages/core/config/webpack.common.js b/packages/core/config/webpack.common.js index e5476c69d47b..9ce17b462a30 100644 --- a/packages/core/config/webpack.common.js +++ b/packages/core/config/webpack.common.js @@ -228,7 +228,7 @@ module.exports = (webpackEnv) => { */ app: redwoodPaths.web.index || - require.resolve('@redwoodjs/web/dist/entry/index.js'), + require.resolve('@redwoodjs/web/webpackEntry'), }, resolve: { extensions: ['.wasm', '.mjs', '.js', '.jsx', '.ts', '.tsx', '.json'], diff --git a/packages/internal/src/generate/typeDefinitions.ts b/packages/internal/src/generate/typeDefinitions.ts index 05224ea25a29..a77f8d1a6992 100644 --- a/packages/internal/src/generate/typeDefinitions.ts +++ b/packages/internal/src/generate/typeDefinitions.ts @@ -62,6 +62,7 @@ export const generateTypeDefs = async () => { ...generateTypeDefScenarios(), ...generateTypeDefTestMocks(), ...generateStubStorybookTypes(), + ...generateViteClientTypesDirective(), ...gqlApiTypeDefFiles, ...gqlWebTypeDefFiles, ], @@ -378,6 +379,22 @@ export const generateTypeDefGlobImports = () => { export const generateTypeDefGlobalContext = () => { return writeTypeDefIncludeFile('api-globalContext.d.ts.template') } +/** + * Typescript does not preserve triple slash directives when outputting js or d.ts files. + * This is a work around so that *.svg, *.png, etc. imports have types. + */ +export const generateViteClientTypesDirective = () => { + const viteClientDirective = `/// ` + const redwoodProjectPaths = getPaths() + + const viteClientDirectivePath = path.join( + redwoodProjectPaths.generated.types.includes, + 'web-vite-client.d.ts', + ) + fs.writeFileSync(viteClientDirectivePath, viteClientDirective) + + return [viteClientDirectivePath] +} function generateStubStorybookTypes() { const stubStorybookTypesFileContent = `\ diff --git a/packages/prerender/src/graphql/graphql.ts b/packages/prerender/src/graphql/graphql.ts index 6350b81b3ffe..985efb2fafe0 100644 --- a/packages/prerender/src/graphql/graphql.ts +++ b/packages/prerender/src/graphql/graphql.ts @@ -5,7 +5,7 @@ import { print } from 'graphql' import { getConfig, getPaths } from '@redwoodjs/project-config' // @MARK: have to do this, otherwise rwjs/web is loaded before shims -import { getOperationName } from '@redwoodjs/web/dist/graphql' +import { getOperationName } from '@redwoodjs/web/dist/graphql.js' import { GqlHandlerImportError } from '../errors' diff --git a/packages/testing/config/jest/web/jest-preset.js b/packages/testing/config/jest/web/jest-preset.js index b2ad05105777..e2ffc5d58349 100644 --- a/packages/testing/config/jest/web/jest-preset.js +++ b/packages/testing/config/jest/web/jest-preset.js @@ -54,7 +54,7 @@ module.exports = { NODE_MODULES_PATH, '@redwoodjs/testing/dist/web/MockRouter.js', ), - '^@redwoodjs/web$': path.join(NODE_MODULES_PATH, '@redwoodjs/web'), + '^@redwoodjs/web$': path.join(NODE_MODULES_PATH, '@redwoodjs/web/dist/cjs'), // This allows us to mock `createAuthentication` which is used by auth // clients, which in turn lets us mock `useAuth` in tests diff --git a/packages/testing/config/storybook/main.js b/packages/testing/config/storybook/main.js index a03ba6be846c..83d6b013b015 100644 --- a/packages/testing/config/storybook/main.js +++ b/packages/testing/config/storybook/main.js @@ -55,6 +55,14 @@ const baseConfig = { sbConfig.resolve.alias['@redwoodjs/auth$'] = require.resolve( '@redwoodjs/testing/dist/web/mockAuth.js', ) + + // Force loading the ESM version of ApolloProvider in Storybook + // I'm unsure why storybook-webpack does not work with the CJS version + // All other cases are fine with the CJS import. + sbConfig.resolve.alias['@redwoodjs/web/apollo$'] = require.resolve( + '@redwoodjs/web/forceEsmApollo', + ) + sbConfig.resolve.alias['~__REDWOOD__USER_ROUTES_FOR_MOCK'] = redwoodProjectPaths.web.routes sbConfig.resolve.alias['~__REDWOOD__USER_WEB_SRC'] = diff --git a/packages/vite/package.json b/packages/vite/package.json index 9f7d0e5f0d9d..53d8fa9d503f 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -94,6 +94,7 @@ "react-server-dom-webpack": "19.0.0-beta-04b058868c-20240508", "vite": "5.3.1", "vite-plugin-cjs-interop": "2.1.1", + "vite-plugin-node-polyfills": "^0.22.0", "yargs-parser": "21.1.1" }, "devDependencies": { diff --git a/packages/vite/src/devFeServer.ts b/packages/vite/src/devFeServer.ts index a142135588fe..30644f3e9f8e 100644 --- a/packages/vite/src/devFeServer.ts +++ b/packages/vite/src/devFeServer.ts @@ -67,7 +67,13 @@ async function createServer() { configFile: rwPaths.web.viteConfig, plugins: [ cjsInterop({ - dependencies: ['@redwoodjs/**'], + dependencies: [ + // Skip ESM modules: rwjs/auth, rwjs/web + '@redwoodjs/forms', + '@redwoodjs/prerender/*', + '@redwoodjs/router', + '@redwoodjs/auth-*', + ], }), rscEnabled && rscRoutesAutoLoader(), ], diff --git a/packages/vite/src/index.ts b/packages/vite/src/index.ts index de1663be514a..2d128913826e 100644 --- a/packages/vite/src/index.ts +++ b/packages/vite/src/index.ts @@ -4,6 +4,7 @@ import path from 'path' import react from '@vitejs/plugin-react' import type { PluginOption } from 'vite' import { normalizePath } from 'vite' +import { nodePolyfills } from 'vite-plugin-node-polyfills' import { getWebSideDefaultBabelConfig } from '@redwoodjs/babel-config' import { getConfig, getPaths } from '@redwoodjs/project-config' @@ -156,5 +157,16 @@ export default function redwoodPluginVite(): PluginOption[] { }), }, }), + // Only include the Buffer polyfill for non-rsc dev, for DevFatalErrorPage + // Including the polyfill plugin in any form in RSC breaks + !rscEnabled && { + ...nodePolyfills({ + include: ['buffer'], + globals: { + Buffer: true, + }, + }), + apply: 'serve', + }, ] } diff --git a/packages/vite/src/rsc/rscBuildForSsr.ts b/packages/vite/src/rsc/rscBuildForSsr.ts index 1f97b9aebcea..7506955100a0 100644 --- a/packages/vite/src/rsc/rscBuildForSsr.ts +++ b/packages/vite/src/rsc/rscBuildForSsr.ts @@ -61,7 +61,16 @@ export async function rscBuildForSsr({ ], }, plugins: [ - cjsInterop({ dependencies: ['@redwoodjs/**'] }), + cjsInterop({ + dependencies: [ + // Skip ESM modules: rwjs/auth, rwjs/web + '@redwoodjs/forms', + '@redwoodjs/prerender/*', + '@redwoodjs/router', + '@redwoodjs/router/*', + '@redwoodjs/auth-*', + ], + }), rscRoutesAutoLoader(), rscSsrRouterImport(), ], @@ -84,10 +93,11 @@ export async function rscBuildForSsr({ // for the client-only components. They get loaded once the page is // rendered ...clientEntryFiles, + // These import redirections are so that we don't bundle multiple versions of react __rwjs__react: 'react', __rwjs__location: '@redwoodjs/router/dist/location', __rwjs__server_auth_provider: '@redwoodjs/auth/ServerAuthProvider', - __rwjs__server_inject: '@redwoodjs/web/dist/components/ServerInject', + __rwjs__server_inject: '@redwoodjs/web/serverInject', '__rwjs__rsdw-client': 'react-server-dom-webpack/client.edge', // TODO (RSC): add __rwjs__ prefix to the entry below 'rd-server': 'react-dom/server.edge', diff --git a/packages/vite/src/streaming/buildForStreamingServer.ts b/packages/vite/src/streaming/buildForStreamingServer.ts index 38a8d1539990..56f644037c10 100644 --- a/packages/vite/src/streaming/buildForStreamingServer.ts +++ b/packages/vite/src/streaming/buildForStreamingServer.ts @@ -19,7 +19,13 @@ export async function buildForStreamingServer({ configFile: rwPaths.web.viteConfig, plugins: [ cjsInterop({ - dependencies: ['@redwoodjs/**'], + dependencies: [ + // Skip ESM modules: rwjs/auth, rwjs/web + '@redwoodjs/forms', + '@redwoodjs/prerender/*', + '@redwoodjs/router', + '@redwoodjs/auth-*', + ], }), ], build: { diff --git a/packages/vite/src/streaming/streamHelpers.ts b/packages/vite/src/streaming/streamHelpers.ts index 27002f0c9446..68b18f8ad141 100644 --- a/packages/vite/src/streaming/streamHelpers.ts +++ b/packages/vite/src/streaming/streamHelpers.ts @@ -102,13 +102,16 @@ export async function reactRenderToStreamResponse( const { createElement }: React = rscEnabled ? await importModule('__rwjs__react') : await import('react') + const { createInjector, ServerHtmlProvider, ServerInjectedHtml, }: ServerInjectType = rscEnabled ? await importModule('__rwjs__server_inject') - : await import('@redwoodjs/web/dist/components/ServerInject.js') + : // @ts-expect-error this is defined in packages/web/package.json exports. + // This package just doesn't have moduleResolution configured + await import('@redwoodjs/web/serverInject') const { renderToString }: RDServerType = rscEnabled ? await importModule('rd-server') : await import('react-dom/server') @@ -322,7 +325,8 @@ export async function importModule( } else if (mod === '__rwjs__server_auth_provider') { return await import(ServerAuthProviderPath) } else if (mod === '__rwjs__server_inject') { - return (await import(ServerInjectPath)).default + // Don't need default because rwjs/web is now ESM + return await import(ServerInjectPath) } throw new Error('Unknown module ' + mod) diff --git a/packages/web/apollo/index.js b/packages/web/apollo/index.js index 4cd7b24834fc..4f02affbabbb 100644 --- a/packages/web/apollo/index.js +++ b/packages/web/apollo/index.js @@ -1,2 +1,2 @@ /* eslint-env es6, commonjs */ -module.exports = require('../dist/apollo') +module.exports = require('../dist/cjs/apollo/index.js') diff --git a/packages/web/build.mts b/packages/web/build.mts index 942e976fa81b..ad8cc749bae7 100644 --- a/packages/web/build.mts +++ b/packages/web/build.mts @@ -1,37 +1,41 @@ -// import { writeFileSync } from 'node:fs' - import { build, defaultBuildOptions, defaultIgnorePatterns, } from '@redwoodjs/framework-tools' +import { writeFileSync } from 'node:fs' // CJS build +/** + * Notes: + * - we don't build the webpack entry point in CJS, because it produces a double wrapped module + * instead we use the ESM version (see ./webpackEntry in package.json). The double wrapping happens + * when you set type: module in package.json, and occurs on the App & Routes import from the project. + * - we build bins in CJS, until projects fully switch to ESM (or we produce .mts files) this is probably + * the better option + */ await build({ entryPointOptions: { - ignore: [...defaultIgnorePatterns], + ignore: [...defaultIgnorePatterns, 'src/__typetests__/**', 'src/entry/**'], }, buildOptions: { ...defaultBuildOptions, - // ⭐ No special tsconfig here - // outdir: 'dist/cjs', DONT DO THIS JUST YET - outdir: 'dist', + // ⭐ No special build tsconfig in this package + outdir: 'dist/cjs', packages: 'external', }, }) -/** THIS IS IN PART 2 ~ making this a dual module -Will enable in follow up PR - -ESM build +// ESM build await build({ entryPointOptions: { - ignore: [...defaultIgnorePatterns, 'src/entry/**'], + // @NOTE: building the cjs bins only... + // I haven't tried esm bins yet... + ignore: [...defaultIgnorePatterns, 'src/bins/**', 'src/__typetests__/**'], }, buildOptions: { ...defaultBuildOptions, - // ⭐ No special tsconfig here - // tsconfig: 'tsconfig.build.json', + // ⭐ No special build tsconfig in this package format: 'esm', packages: 'external', }, @@ -44,5 +48,3 @@ writeFileSync('dist/cjs/package.json', JSON.stringify({ type: 'commonjs' })) // Place a package.json file with `type: module` in the dist/esm folder so that // all .js files are treated as ES Module files. writeFileSync('dist/package.json', JSON.stringify({ type: 'module' })) - -*/ diff --git a/packages/web/package.json b/packages/web/package.json index 4924e2502de5..a65b2e5168b1 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,6 +1,7 @@ { "name": "@redwoodjs/web", "version": "7.0.0", + "type": "module", "repository": { "type": "git", "url": "git+https://github.com/redwoodjs/redwood.git", @@ -10,14 +11,66 @@ "main": "./dist/index.js", "types": "dist/index.d.ts", "bin": { - "cross-env": "./dist/bins/cross-env.js", - "msw": "./dist/bins/msw.js", - "redwood": "./dist/bins/redwood.js", - "rw": "./dist/bins/redwood.js", - "rwfw": "./dist/bins/rwfw.js", - "storybook": "./dist/bins/storybook.js", - "tsc": "./dist/bins/tsc.js", - "webpack": "./dist/bins/webpack.js" + "cross-env": "./dist/cjs/bins/cross-env.js", + "msw": "./dist/cjs/bins/msw.js", + "redwood": "./dist/cjs/bins/redwood.js", + "rw": "./dist/cjs/bins/redwood.js", + "rwfw": "./dist/cjs/bins/rwfw.js", + "storybook": "./dist/cjs/bins/storybook.js", + "tsc": "./dist/cjs/bins/tsc.js", + "webpack": "./dist/cjs/bins/webpack.js" + }, + "exports": { + ".": { + "import": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "require": { + "types": "./dist/cjs/index.d.ts", + "default": "./dist/cjs/index.js" + } + }, + "./serverInject": { + "require": "./dist/cjs/components/ServerInject.js", + "import": "./dist/components/ServerInject.js", + "types": "./dist/components/ServerInject.d.ts", + "default": "./dist/components/ServerInject.js" + }, + "./dist/components/*": { + "require": "./dist/cjs/components/*.js", + "import": "./dist/components/*.js" + }, + "./dist/apollo/suspense": { + "require": "./dist/cjs/apollo/suspense.js", + "import": "./dist/apollo/suspense.js" + }, + "./dist/apollo/sseLink": { + "require": "./dist/cjs/apollo/sseLink.js", + "import": "./dist/apollo/sseLink.js" + }, + "./dist/graphql.js": { + "require": "./dist/cjs/graphql.js", + "import": "./dist/graphql.js" + }, + "./webpackEntry": { + "default": "./dist/entry/index.js" + }, + "./toast": { + "require": "./dist/cjs/toast/index.js", + "import": "./dist/toast/index.js", + "types": "./dist/toast/index.d.ts" + }, + "./apollo": { + "require": "./dist/cjs/apollo/index.js", + "import": "./dist/apollo/index.js", + "types": "./dist/apollo/index.d.ts", + "default": "./dist/cjs/apollo/index.js" + }, + "./forceEsmApollo": { + "require": "./dist/apollo/index.js", + "import": "./dist/apollo/index.js" + } }, "files": [ "dist", @@ -28,7 +81,7 @@ "scripts": { "build": "tsx ./build.mts && yarn build:types", "build:pack": "yarn pack -o redwoodjs-web.tgz", - "build:types": "tsc --build --verbose tsconfig.json", + "build:types": "tsc --build --verbose ./tsconfig.json ./tsconfig.types-cjs.json", "build:watch": "nodemon --watch src --ext \"js,jsx,ts,tsx\" --ignore dist --exec \"yarn build\"", "prepublishOnly": "NODE_ENV=production yarn build", "test": "vitest run", diff --git a/packages/web/src/__typetests__/cellProps.test.tsx b/packages/web/src/__typetests__/cellProps.test.tsx index 6797e42bbcf6..1ff1ecf35ff7 100644 --- a/packages/web/src/__typetests__/cellProps.test.tsx +++ b/packages/web/src/__typetests__/cellProps.test.tsx @@ -1,7 +1,7 @@ // These are normally auto-imported by babel import React from 'react' -import gql from 'graphql-tag' +import { gql } from 'graphql-tag' import { describe, expect, test } from 'tstyche' import type { CellProps, CellSuccessProps } from '@redwoodjs/web' diff --git a/packages/web/src/apollo/fragmentRegistry.ts b/packages/web/src/apollo/fragmentRegistry.ts index ba26c2b387d5..40867e2c8aa4 100644 --- a/packages/web/src/apollo/fragmentRegistry.ts +++ b/packages/web/src/apollo/fragmentRegistry.ts @@ -1,8 +1,10 @@ import * as apolloClient from '@apollo/client' import type { UseFragmentResult } from '@apollo/client' -import type { FragmentRegistryAPI } from '@apollo/client/cache' -import { createFragmentRegistry } from '@apollo/client/cache' -import { getFragmentDefinitions } from '@apollo/client/utilities' +// @ts-expect-error Force import cjs module +import { createFragmentRegistry } from '@apollo/client/cache/cache.cjs' +import type { FragmentRegistryAPI } from '@apollo/client/cache/index.js' +// @ts-expect-error Force import cjs module +import { getFragmentDefinitions } from '@apollo/client/utilities/utilities.cjs' import type { DocumentNode } from 'graphql' export type FragmentIdentifier = string | number diff --git a/packages/web/src/apollo/index.tsx b/packages/web/src/apollo/index.tsx index 341b24875537..7942fa25994e 100644 --- a/packages/web/src/apollo/index.tsx +++ b/packages/web/src/apollo/index.tsx @@ -4,33 +4,42 @@ import type { ApolloClientOptions, setLogVerbosity, ApolloCache, + InMemoryCacheConfig, + HttpOptions, + DocumentNode, } from '@apollo/client' -import * as apolloClient from '@apollo/client' -import { setContext } from '@apollo/client/link/context' -import { createPersistedQueryLink } from '@apollo/client/link/persisted-queries' -import { getMainDefinition } from '@apollo/client/utilities' -import { fetch as crossFetch } from '@whatwg-node/fetch' -import { print } from 'graphql/language/printer' - -// Note: Importing directly from `apollo/client` doesn't work properly in Storybook. -const { +import { ApolloProvider, ApolloClient, ApolloLink, - HttpLink, InMemoryCache, + split, +} from '@apollo/client' +// @ts-expect-error Force import cjs module +import { setLogVerbosity as apolloSetLogVerbosity } from '@apollo/client/core/core.cjs' +// @ts-expect-error Force import cjs module +import { setContext } from '@apollo/client/link/context/context.cjs' +// @ts-expect-error Force import cjs module +import { HttpLink } from '@apollo/client/link/http/http.cjs' +// @ts-expect-error Force import cjs module +import { createPersistedQueryLink } from '@apollo/client/link/persisted-queries/persisted-queries.cjs' +import { useQuery, useMutation, useSubscription, useBackgroundQuery, useReadQuery, useSuspenseQuery, - setLogVerbosity: apolloSetLogVerbosity, -} = apolloClient + // @ts-expect-error Force import cjs module +} from '@apollo/client/react/hooks/hooks.cjs' +// @ts-expect-error Force import cjs module +import { getMainDefinition } from '@apollo/client/utilities/utilities.cjs' +import { fetch as crossFetch } from '@whatwg-node/fetch' +import { print } from 'graphql/language/printer.js' import type { UseAuth } from '@redwoodjs/auth' import { useNoAuth } from '@redwoodjs/auth' -import './typeOverride' +import './typeOverride.js' import { FetchConfigProvider, @@ -43,8 +52,10 @@ import { registerFragment, registerFragments, } from './fragmentRegistry.js' -import { SSELink } from './sseLink.js' +import * as SSELinkExports from './sseLink.js' import { useCache } from './useCache.js' +// Not sure why we need to import it this way for legacy builds to work +const { SSELink } = SSELinkExports export type { CacheKey, @@ -56,7 +67,7 @@ export { useCache } export { fragmentRegistry, registerFragment, registerFragments } -export type ApolloClientCacheConfig = apolloClient.InMemoryCacheConfig +export type ApolloClientCacheConfig = InMemoryCacheConfig export type RedwoodApolloLinkName = | 'withToken' @@ -66,7 +77,7 @@ export type RedwoodApolloLinkName = export type RedwoodApolloLink< Name extends RedwoodApolloLinkName, - Link extends apolloClient.ApolloLink = apolloClient.ApolloLink, + Link extends ApolloLink = ApolloLink, > = { name: Name link: Link @@ -76,15 +87,10 @@ export type RedwoodApolloLinks = [ RedwoodApolloLink<'withToken'>, RedwoodApolloLink<'authMiddleware'>, RedwoodApolloLink<'updateDataApolloLink'>, - RedwoodApolloLink< - 'httpLink', - apolloClient.ApolloLink | apolloClient.HttpLink - >, + RedwoodApolloLink<'httpLink', ApolloLink | HttpLink>, ] -export type RedwoodApolloLinkFactory = ( - links: RedwoodApolloLinks, -) => apolloClient.ApolloLink +export type RedwoodApolloLinkFactory = (links: RedwoodApolloLinks) => ApolloLink export type GraphQLClientConfigProp = Omit< ApolloClientOptions, @@ -108,7 +114,7 @@ export type GraphQLClientConfigProp = Omit< * }}> * ``` */ - httpLinkConfig?: apolloClient.HttpOptions + httpLinkConfig?: HttpOptions /** * Extend or overwrite `RedwoodApolloProvider`'s Apollo Link. * @@ -132,7 +138,7 @@ export type GraphQLClientConfigProp = Omit< * - your function should return a single link (e.g., using `ApolloLink.from`; see https://www.apollographql.com/docs/react/api/link/introduction/#additive-composition) * - the `HttpLink` should come last (https://www.apollographql.com/docs/react/api/link/introduction/#the-terminating-link) */ - link?: apolloClient.ApolloLink | RedwoodApolloLinkFactory + link?: ApolloLink | RedwoodApolloLinkFactory } const ApolloProviderWithFetchConfig: React.FunctionComponent<{ @@ -231,7 +237,7 @@ const ApolloProviderWithFetchConfig: React.FunctionComponent<{ // is subscription it needs to use the SSELink (server sent events link). const httpOrSSELink = typeof SSELink !== 'undefined' - ? apolloClient.split( + ? split( ({ query }) => { const definition = getMainDefinition(query) @@ -240,6 +246,7 @@ const ApolloProviderWithFetchConfig: React.FunctionComponent<{ definition.operation === 'subscription' ) }, + // @ts-expect-error Due to CJS imports new SSELink({ url: uri, auth: { authProviderType, tokenFn: getToken }, @@ -259,14 +266,14 @@ const ApolloProviderWithFetchConfig: React.FunctionComponent<{ * * See https://www.apollographql.com/docs/react/api/link/persisted-queries/ */ - interface DocumentNodeWithMeta extends apolloClient.DocumentNode { + interface DocumentNodeWithMeta extends DocumentNode { __meta__?: { hash: string } } // Check if the query made includes the hash, and if so then make the request with the persisted query link - const terminatingLink = apolloClient.split( + const terminatingLink = split( ({ query }) => { const documentQuery = query as DocumentNodeWithMeta return documentQuery?.['__meta__']?.['hash'] !== undefined @@ -348,7 +355,7 @@ class ErrorBoundary extends React.Component { export const RedwoodApolloProvider: React.FunctionComponent<{ graphQLClientConfig?: GraphQLClientConfigProp - fragments?: apolloClient.DocumentNode[] + fragments?: DocumentNode[] useAuth?: UseAuth logLevel?: ReturnType children: React.ReactNode diff --git a/packages/web/src/apollo/links.ts b/packages/web/src/apollo/links.ts index 6394b23df832..aace390c188e 100644 --- a/packages/web/src/apollo/links.ts +++ b/packages/web/src/apollo/links.ts @@ -1,7 +1,9 @@ import type { HttpOptions, Operation } from '@apollo/client' -import { ApolloLink, HttpLink, Observable } from '@apollo/client' -import { setContext } from '@apollo/client/link/context' -import { print } from 'graphql/language/printer' +import { Observable } from '@apollo/client/core/index.js' +import { setContext } from '@apollo/client/link/context/index.js' +import { ApolloLink } from '@apollo/client/link/core/index.js' +import { HttpLink } from '@apollo/client/link/http/index.js' +import { print } from 'graphql/language/printer.js' export function createHttpLink( uri: string, diff --git a/packages/web/src/apollo/sseLink.ts b/packages/web/src/apollo/sseLink.ts index 24e28d614443..307c98090a14 100644 --- a/packages/web/src/apollo/sseLink.ts +++ b/packages/web/src/apollo/sseLink.ts @@ -1,8 +1,11 @@ import type { HttpOptions } from '@apollo/client' import type { Operation, FetchResult } from '@apollo/client/core' -import { ApolloLink, Observable } from '@apollo/client/core' +// @ts-expect-error Force import cjs module +import { ApolloLink } from '@apollo/client/link/core/core.cjs' +// @ts-expect-error Force import cjs module +import { Observable } from '@apollo/client/utilities/utilities.cjs' import { print } from 'graphql' -import type { ClientOptions, Client } from 'graphql-sse' +import type { ClientOptions, Client, Sink } from 'graphql-sse' import { createClient } from 'graphql-sse' interface SSELinkOptions extends Partial { url: string @@ -60,7 +63,7 @@ const mapReferrerPolicyHeader = ( /** * GraphQL over Server-Sent Events (SSE) spec link for Apollo Client */ -export class SSELink extends ApolloLink { +class SSELink extends ApolloLink { private client: Client constructor(options: SSELinkOptions) { @@ -92,7 +95,7 @@ export class SSELink extends ApolloLink { } public request(operation: Operation): Observable { - return new Observable((sink) => { + return new Observable((sink: Sink) => { return this.client.subscribe( { ...operation, query: print(operation.query) }, { @@ -104,3 +107,5 @@ export class SSELink extends ApolloLink { }) } } + +export { SSELink } diff --git a/packages/web/src/apollo/suspense.tsx b/packages/web/src/apollo/suspense.tsx index 873fb99acfea..b111eaff5b07 100644 --- a/packages/web/src/apollo/suspense.tsx +++ b/packages/web/src/apollo/suspense.tsx @@ -6,7 +6,7 @@ * Done this way, to avoid making changes breaking on main, due to the experimental-nextjs import * Eventually we will have one ApolloProvider, not multiple. */ - +'use client' import React, { useContext } from 'react' import type { @@ -17,15 +17,15 @@ import type { InMemoryCacheConfig, setLogVerbosity, } from '@apollo/client' +import { setLogVerbosity as apolloSetLogVerbosity } from '@apollo/client/core/index.js' import { - setLogVerbosity as apolloSetLogVerbosity, useMutation, useSubscription, useBackgroundQuery, useQuery, useReadQuery, useSuspenseQuery, -} from '@apollo/client' +} from '@apollo/client/react/hooks/index.js' import { ApolloClient, InMemoryCache, @@ -36,28 +36,28 @@ import { buildManualDataTransport } from '@apollo/client-react-streaming/manual- import type { UseAuth } from '@redwoodjs/auth' import { useNoAuth } from '@redwoodjs/auth' import { ServerAuthContext } from '@redwoodjs/auth/dist/AuthProvider/ServerAuthProvider.js' -import './typeOverride' +import './typeOverride.js' import { FetchConfigProvider, useFetchConfig, -} from '../components/FetchConfigProvider' +} from '../components/FetchConfigProvider.js' import { GraphQLHooksProvider } from '../components/GraphQLHooksProvider.js' -import { ServerHtmlContext } from '../components/ServerInject' +import { ServerHtmlContext } from '../components/ServerInject.js' import type { RedwoodApolloLink, RedwoodApolloLinkFactory, RedwoodApolloLinkName, RedwoodApolloLinks, -} from './links' +} from './links.js' import { createAuthApolloLink, createFinalLink, createHttpLink, createTokenLink, createUpdateDataLink, -} from './links' +} from './links.js' export type ApolloClientCacheConfig = InMemoryCacheConfig diff --git a/packages/web/src/apollo/useCache.ts b/packages/web/src/apollo/useCache.ts index 92dcb70d18c1..9f29dec1168f 100644 --- a/packages/web/src/apollo/useCache.ts +++ b/packages/web/src/apollo/useCache.ts @@ -1,7 +1,8 @@ import type { ApolloCache, Reference, StoreObject } from '@apollo/client' -import { useApolloClient } from '@apollo/client' -import type { NormalizedCacheObject } from '@apollo/client/cache/inmemory/types' +import type { NormalizedCacheObject } from '@apollo/client/cache/inmemory/types.js' import type { ApolloQueryResult } from '@apollo/client/core' +// @ts-expect-error Force import cjs module +import { useApolloClient } from '@apollo/client/react/hooks/hooks.cjs' type useCacheType = { cache: ApolloCache diff --git a/packages/web/src/assetImports.ts b/packages/web/src/assetImports.ts deleted file mode 100644 index 6d5d7e39132b..000000000000 --- a/packages/web/src/assetImports.ts +++ /dev/null @@ -1,52 +0,0 @@ -// These declarations are based on the webpack bundler settings -// For svgs we use a babel-plugin -// see: redwood/packages/internal/src/build/babel/web.ts - -// For other assets, we're using webpack asset loader -// see: redwood/packages/core/config/webpack.common.js -// These declarations are the most common types - -declare module '*.svg' { - const content: string - export default content -} - -declare module '*.png' { - const content: string - export default content -} - -declare module '*.bmp' { - const content: string - export default content -} - -declare module '*.jpg' { - const content: string - export default content -} - -declare module '*.jpe?g' { - const content: string - export default content -} - -declare module '*.gif' { - const content: string - export default content -} - -declare module '*.webp' { - const content: string - export default content -} - -declare module '*.ico' { - const content: string - export default content -} - -declare module '*.pdf' { - const content: string - export default content -} diff --git a/packages/web/src/components/DevFatalErrorPage.tsx b/packages/web/src/components/DevFatalErrorPage.tsx index d43885a2e285..236bb7d84d3a 100644 --- a/packages/web/src/components/DevFatalErrorPage.tsx +++ b/packages/web/src/components/DevFatalErrorPage.tsx @@ -3,10 +3,6 @@ // making it fine for embedding inside this project. // Stacktracey requires buffer, which Vite does not polyfill by default -if (typeof window !== 'undefined') { - window.Buffer = window.Buffer || require('buffer').Buffer -} - import React, { useState } from 'react' import type { GraphQLError } from 'graphql' diff --git a/packages/web/src/components/FatalErrorBoundary.tsx b/packages/web/src/components/FatalErrorBoundary.tsx index 1ff1b024b30f..851ad18d10f6 100644 --- a/packages/web/src/components/FatalErrorBoundary.tsx +++ b/packages/web/src/components/FatalErrorBoundary.tsx @@ -57,4 +57,4 @@ class FatalErrorBoundary extends React.Component< } } -export default FatalErrorBoundary +export { FatalErrorBoundary } diff --git a/packages/web/src/components/MetaTags.tsx b/packages/web/src/components/MetaTags.tsx index 3da635364d94..57132e69b664 100644 --- a/packages/web/src/components/MetaTags.tsx +++ b/packages/web/src/components/MetaTags.tsx @@ -1,7 +1,8 @@ import React from 'react' -import { Helmet as HelmetHead } from 'react-helmet-async' +import * as helmetPkg from 'react-helmet-async' +const { Helmet: HelmetHead } = helmetPkg // Ideally we wouldn't include this for non experiment builds // But.... not worth the effort to remove it from bundle atm import PortalHead from './PortalHead.js' diff --git a/packages/web/src/components/Metadata.tsx b/packages/web/src/components/Metadata.tsx index c0722fa1541a..f33c75f85279 100644 --- a/packages/web/src/components/Metadata.tsx +++ b/packages/web/src/components/Metadata.tsx @@ -2,7 +2,9 @@ import React from 'react' -import { Helmet as HelmetHead } from 'react-helmet-async' +import * as helmetPkg from 'react-helmet-async' + +const { Helmet: HelmetHead } = helmetPkg // Ideally we wouldn't include this for non experiment builds // But.... not worth the effort to remove it from bundle atm diff --git a/packages/web/src/components/RedwoodProvider.tsx b/packages/web/src/components/RedwoodProvider.tsx index d1f0771e69e7..4d215a7fe17a 100644 --- a/packages/web/src/components/RedwoodProvider.tsx +++ b/packages/web/src/components/RedwoodProvider.tsx @@ -1,6 +1,8 @@ import React from 'react' -import { Helmet, HelmetProvider } from 'react-helmet-async' +// @NOTE: Helmet is not used in SSR & RSC +import * as helmetPkg from 'react-helmet-async' +const { Helmet, HelmetProvider } = helmetPkg interface RedwoodProviderProps { children: React.ReactNode @@ -21,8 +23,10 @@ export const RedwoodProvider = ({ return '' } - // @TODO (STREAMING): We can remove Helmet, HelmetProvider - // Once we've migrated to using the new PortalHead component + if (RWJS_ENV.RWJS_EXP_STREAMING_SSR) { + return <>{children} + } + return ( diff --git a/packages/web/src/components/__tests__/GraphQLHooksProvider.test.tsx b/packages/web/src/components/__tests__/GraphQLHooksProvider.test.tsx index fe9e4e949107..e1bef1281049 100644 --- a/packages/web/src/components/__tests__/GraphQLHooksProvider.test.tsx +++ b/packages/web/src/components/__tests__/GraphQLHooksProvider.test.tsx @@ -8,7 +8,7 @@ import { useQuery, useMutation, useSubscription, -} from '../GraphQLHooksProvider' +} from '../GraphQLHooksProvider.js' const TestUseQueryHook: React.FunctionComponent = () => { // @ts-expect-error - Purposefully not passing in a DocumentNode type here. diff --git a/packages/web/src/components/cell/createSuspendingCell.test.tsx b/packages/web/src/components/cell/createSuspendingCell.test.tsx index c368802649ed..f59b4f27f793 100644 --- a/packages/web/src/components/cell/createSuspendingCell.test.tsx +++ b/packages/web/src/components/cell/createSuspendingCell.test.tsx @@ -12,7 +12,7 @@ import { createSuspendingCell } from './createSuspendingCell.js' type ReadQueryHook = typeof useReadQuery type BgQueryHook = typeof useBackgroundQuery -vi.mock('@apollo/client', () => { +vi.mock('@apollo/client/react/hooks/hooks.cjs', () => { return { useApolloClient: vi.fn(), } diff --git a/packages/web/src/components/cell/createSuspendingCell.tsx b/packages/web/src/components/cell/createSuspendingCell.tsx index 888ba514dc5e..24b5ae63bfee 100644 --- a/packages/web/src/components/cell/createSuspendingCell.tsx +++ b/packages/web/src/components/cell/createSuspendingCell.tsx @@ -1,7 +1,8 @@ import React, { Suspense } from 'react' import type { OperationVariables, QueryReference } from '@apollo/client' -import { useApolloClient } from '@apollo/client' +// @ts-expect-error Force import cjs module +import { useApolloClient } from '@apollo/client/react/hooks/hooks.cjs' import { useBackgroundQuery, useReadQuery } from '../GraphQLHooksProvider.js' @@ -15,7 +16,7 @@ import type { DataObject, SuspendingSuccessProps, SuspenseCellQueryResult, -} from './cellTypes' +} from './cellTypes.js' import { isDataEmpty } from './isCellEmpty.js' type AnyObj = Record diff --git a/packages/web/src/index.ts b/packages/web/src/index.ts index 7335de935a1c..3a93867d291c 100644 --- a/packages/web/src/index.ts +++ b/packages/web/src/index.ts @@ -1,8 +1,8 @@ import './global.web-auto-imports.js' import './config.js' -import './assetImports.js' -export { default as FatalErrorBoundary } from './components/FatalErrorBoundary.js' +export { FatalErrorBoundary } from './components/FatalErrorBoundary.js' + export { FetchConfigProvider, useFetchConfig, @@ -18,7 +18,7 @@ export * from './components/cell/CellCacheContext.js' export { createCell } from './components/cell/createCell.js' -export { +export type { CellProps, CellFailureProps, CellLoadingProps, @@ -32,7 +32,10 @@ export * from './components/RedwoodProvider.js' export * from './components/MetaTags.js' export * from './components/Metadata.js' -export { Helmet as Head, Helmet } from 'react-helmet-async' +import * as helmetPkg from 'react-helmet-async' + +const { Helmet } = helmetPkg +export { Helmet as Head, Helmet } export * from './components/htmlTags.js' export * from './routeHooks.types.js' diff --git a/packages/web/tsconfig.json b/packages/web/tsconfig.json index b036d670c6fa..57fcd541165b 100644 --- a/packages/web/tsconfig.json +++ b/packages/web/tsconfig.json @@ -2,7 +2,10 @@ "extends": "../../tsconfig.compilerOption.json", "compilerOptions": { "rootDir": "src", - "outDir": "dist" + "outDir": "dist", + "esModuleInterop": true, + "moduleResolution": "NodeNext", + "module": "NodeNext", }, "include": ["./src/**/*", "ambient.d.ts", "testing-library.d.ts"], "references": [{ "path": "../auth/tsconfig.build.json" }] diff --git a/packages/web/tsconfig.types-cjs.json b/packages/web/tsconfig.types-cjs.json new file mode 100644 index 000000000000..f43f9cd1bd82 --- /dev/null +++ b/packages/web/tsconfig.types-cjs.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "dist/cjs", + "module": "commonjs", + "moduleResolution": "node", + }, +} diff --git a/packages/web/vitest.config.mts b/packages/web/vitest.config.mts index ab52b1743ced..ef908baf89b3 100644 --- a/packages/web/vitest.config.mts +++ b/packages/web/vitest.config.mts @@ -11,28 +11,6 @@ export default defineConfig({ define: { RWJS_ENV: {}, }, - plugins: [ - // @ts-expect-error plugin types do not seem happy with each other - babel({ - babelHelpers: 'runtime', - extensions: ['.ts', '.tsx', '.js'], - include: ['src/**/*'], - plugins: [ - [ - 'babel-plugin-auto-import', - { - declarations: [ - { - // import { React } from 'react' - default: 'React', - path: 'react', - }, - ], - }, - ] - ] - }) - ] }) diff --git a/yarn.lock b/yarn.lock index 05439bcccbcc..dbb8b494e85d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8707,6 +8707,7 @@ __metadata: typescript: "npm:5.4.5" vite: "npm:5.3.1" vite-plugin-cjs-interop: "npm:2.1.1" + vite-plugin-node-polyfills: "npm:^0.22.0" vitest: "npm:1.6.0" yargs-parser: "npm:21.1.1" bin: @@ -8774,14 +8775,14 @@ __metadata: react: 19.0.0-beta-04b058868c-20240508 react-dom: 19.0.0-beta-04b058868c-20240508 bin: - cross-env: ./dist/bins/cross-env.js - msw: ./dist/bins/msw.js - redwood: ./dist/bins/redwood.js - rw: ./dist/bins/redwood.js - rwfw: ./dist/bins/rwfw.js - storybook: ./dist/bins/storybook.js - tsc: ./dist/bins/tsc.js - webpack: ./dist/bins/webpack.js + cross-env: ./dist/cjs/bins/cross-env.js + msw: ./dist/cjs/bins/msw.js + redwood: ./dist/cjs/bins/redwood.js + rw: ./dist/cjs/bins/redwood.js + rwfw: ./dist/cjs/bins/rwfw.js + storybook: ./dist/cjs/bins/storybook.js + tsc: ./dist/cjs/bins/tsc.js + webpack: ./dist/cjs/bins/webpack.js languageName: unknown linkType: soft @@ -8811,6 +8812,22 @@ __metadata: languageName: node linkType: hard +"@rollup/plugin-inject@npm:^5.0.5": + version: 5.0.5 + resolution: "@rollup/plugin-inject@npm:5.0.5" + dependencies: + "@rollup/pluginutils": "npm:^5.0.1" + estree-walker: "npm:^2.0.2" + magic-string: "npm:^0.30.3" + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10c0/22d10cf44fa56a6683d5ac4df24a9003379b3dcaae9897f5c30c844afc2ebca83cfaa5557f13a1399b1c8a0d312c3217bcacd508b7ebc4b2cbee401bd1ec8be2 + languageName: node + linkType: hard + "@rollup/pluginutils@npm:^5.0.1, @rollup/pluginutils@npm:^5.0.2, @rollup/pluginutils@npm:^5.1.0": version: 5.1.0 resolution: "@rollup/pluginutils@npm:5.1.0" @@ -12886,6 +12903,17 @@ __metadata: languageName: node linkType: hard +"asn1.js@npm:^4.10.1": + version: 4.10.1 + resolution: "asn1.js@npm:4.10.1" + dependencies: + bn.js: "npm:^4.0.0" + inherits: "npm:^2.0.1" + minimalistic-assert: "npm:^1.0.0" + checksum: 10c0/afa7f3ab9e31566c80175a75b182e5dba50589dcc738aa485be42bdd787e2a07246a4b034d481861123cbe646a7656f318f4f1cad2e9e5e808a210d5d6feaa88 + languageName: node + linkType: hard + "asn1@npm:~0.2.3": version: 0.2.6 resolution: "asn1@npm:0.2.6" @@ -13495,6 +13523,20 @@ __metadata: languageName: node linkType: hard +"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.9": + version: 4.12.0 + resolution: "bn.js@npm:4.12.0" + checksum: 10c0/9736aaa317421b6b3ed038ff3d4491935a01419ac2d83ddcfebc5717385295fcfcf0c57311d90fe49926d0abbd7a9dbefdd8861e6129939177f7e67ebc645b21 + languageName: node + linkType: hard + +"bn.js@npm:^5.0.0, bn.js@npm:^5.2.1": + version: 5.2.1 + resolution: "bn.js@npm:5.2.1" + checksum: 10c0/bed3d8bd34ec89dbcf9f20f88bd7d4a49c160fda3b561c7bb227501f974d3e435a48fb9b61bc3de304acab9215a3bda0803f7017ffb4d0016a0c3a740a283caa + languageName: node + linkType: hard + "body-parser@npm:1.20.2": version: 1.20.2 resolution: "body-parser@npm:1.20.2" @@ -13587,6 +13629,13 @@ __metadata: languageName: node linkType: hard +"brorand@npm:^1.0.1, brorand@npm:^1.1.0": + version: 1.1.0 + resolution: "brorand@npm:1.1.0" + checksum: 10c0/6f366d7c4990f82c366e3878492ba9a372a73163c09871e80d82fb4ae0d23f9f8924cb8a662330308206e6b3b76ba1d528b4601c9ef73c2166b440b2ea3b7571 + languageName: node + linkType: hard + "browser-assert@npm:^1.2.1": version: 1.2.1 resolution: "browser-assert@npm:1.2.1" @@ -13594,6 +13643,80 @@ __metadata: languageName: node linkType: hard +"browser-resolve@npm:^2.0.0": + version: 2.0.0 + resolution: "browser-resolve@npm:2.0.0" + dependencies: + resolve: "npm:^1.17.0" + checksum: 10c0/06c43adf3cb1939825ab9a4ac355b23272820ee421a20d04f62e0dabd9ea305e497b97f3ac027f87d53c366483aafe8673bbe1aaa5e41cd69eeafa65ac5fda6e + languageName: node + linkType: hard + +"browserify-aes@npm:^1.0.4, browserify-aes@npm:^1.2.0": + version: 1.2.0 + resolution: "browserify-aes@npm:1.2.0" + dependencies: + buffer-xor: "npm:^1.0.3" + cipher-base: "npm:^1.0.0" + create-hash: "npm:^1.1.0" + evp_bytestokey: "npm:^1.0.3" + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.0.1" + checksum: 10c0/967f2ae60d610b7b252a4cbb55a7a3331c78293c94b4dd9c264d384ca93354c089b3af9c0dd023534efdc74ffbc82510f7ad4399cf82bc37bc07052eea485f18 + languageName: node + linkType: hard + +"browserify-cipher@npm:^1.0.0": + version: 1.0.1 + resolution: "browserify-cipher@npm:1.0.1" + dependencies: + browserify-aes: "npm:^1.0.4" + browserify-des: "npm:^1.0.0" + evp_bytestokey: "npm:^1.0.0" + checksum: 10c0/aa256dcb42bc53a67168bbc94ab85d243b0a3b56109dee3b51230b7d010d9b78985ffc1fb36e145c6e4db151f888076c1cfc207baf1525d3e375cbe8187fe27d + languageName: node + linkType: hard + +"browserify-des@npm:^1.0.0": + version: 1.0.2 + resolution: "browserify-des@npm:1.0.2" + dependencies: + cipher-base: "npm:^1.0.1" + des.js: "npm:^1.0.0" + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.1.2" + checksum: 10c0/943eb5d4045eff80a6cde5be4e5fbb1f2d5002126b5a4789c3c1aae3cdddb1eb92b00fb92277f512288e5c6af330730b1dbabcf7ce0923e749e151fcee5a074d + languageName: node + linkType: hard + +"browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.1.0": + version: 4.1.0 + resolution: "browserify-rsa@npm:4.1.0" + dependencies: + bn.js: "npm:^5.0.0" + randombytes: "npm:^2.0.1" + checksum: 10c0/fb2b5a8279d8a567a28d8ee03fb62e448428a906bab5c3dc9e9c3253ace551b5ea271db15e566ac78f1b1d71b243559031446604168b9235c351a32cae99d02a + languageName: node + linkType: hard + +"browserify-sign@npm:^4.0.0": + version: 4.2.3 + resolution: "browserify-sign@npm:4.2.3" + dependencies: + bn.js: "npm:^5.2.1" + browserify-rsa: "npm:^4.1.0" + create-hash: "npm:^1.2.0" + create-hmac: "npm:^1.1.7" + elliptic: "npm:^6.5.5" + hash-base: "npm:~3.0" + inherits: "npm:^2.0.4" + parse-asn1: "npm:^5.1.7" + readable-stream: "npm:^2.3.8" + safe-buffer: "npm:^5.2.1" + checksum: 10c0/30c0eba3f5970a20866a4d3fbba2c5bd1928cd24f47faf995f913f1499214c6f3be14bb4d6ec1ab5c6cafb1eca9cb76ba1c2e1c04ed018370634d4e659c77216 + languageName: node + linkType: hard + "browserify-zlib@npm:^0.1.4": version: 0.1.4 resolution: "browserify-zlib@npm:0.1.4" @@ -13603,6 +13726,15 @@ __metadata: languageName: node linkType: hard +"browserify-zlib@npm:^0.2.0": + version: 0.2.0 + resolution: "browserify-zlib@npm:0.2.0" + dependencies: + pako: "npm:~1.0.5" + checksum: 10c0/9ab10b6dc732c6c5ec8ebcbe5cb7fe1467f97402c9b2140113f47b5f187b9438f93a8e065d8baf8b929323c18324fbf1105af479ee86d9d36cab7d7ef3424ad9 + languageName: node + linkType: hard + "browserslist@npm:^4.0.0, browserslist@npm:^4.21.10, browserslist@npm:^4.21.4, browserslist@npm:^4.22.2, browserslist@npm:^4.23.0": version: 4.23.0 resolution: "browserslist@npm:4.23.0" @@ -13654,6 +13786,13 @@ __metadata: languageName: node linkType: hard +"buffer-xor@npm:^1.0.3": + version: 1.0.3 + resolution: "buffer-xor@npm:1.0.3" + checksum: 10c0/fd269d0e0bf71ecac3146187cfc79edc9dbb054e2ee69b4d97dfb857c6d997c33de391696d04bdd669272751fa48e7872a22f3a6c7b07d6c0bc31dbe02a4075c + languageName: node + linkType: hard + "buffer@npm:6.0.3, buffer@npm:^6.0.3": version: 6.0.3 resolution: "buffer@npm:6.0.3" @@ -13674,6 +13813,13 @@ __metadata: languageName: node linkType: hard +"builtin-status-codes@npm:^3.0.0": + version: 3.0.0 + resolution: "builtin-status-codes@npm:3.0.0" + checksum: 10c0/c37bbba11a34c4431e56bd681b175512e99147defbe2358318d8152b3a01df7bf25e0305873947e5b350073d5ef41a364a22b37e48f1fb6d2fe6d5286a0f348c + languageName: node + linkType: hard + "builtins@npm:^1.0.3": version: 1.0.3 resolution: "builtins@npm:1.0.3" @@ -14229,6 +14375,16 @@ __metadata: languageName: node linkType: hard +"cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3": + version: 1.0.4 + resolution: "cipher-base@npm:1.0.4" + dependencies: + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.0.1" + checksum: 10c0/d8d005f8b64d8a77b3d3ce531301ae7b45902c9cab4ec8b66bdbd2bf2a1d9fceb9a2133c293eb3c060b2d964da0f14c47fb740366081338aa3795dd1faa8984b + languageName: node + linkType: hard + "cjs-module-lexer@npm:^1.0.0, cjs-module-lexer@npm:^1.2.3": version: 1.2.3 resolution: "cjs-module-lexer@npm:1.2.3" @@ -14733,6 +14889,13 @@ __metadata: languageName: node linkType: hard +"console-browserify@npm:^1.1.0": + version: 1.2.0 + resolution: "console-browserify@npm:1.2.0" + checksum: 10c0/89b99a53b7d6cee54e1e64fa6b1f7ac24b844b4019c5d39db298637e55c1f4ffa5c165457ad984864de1379df2c8e1886cbbdac85d9dbb6876a9f26c3106f226 + languageName: node + linkType: hard + "console-control-strings@npm:^1.1.0": version: 1.1.0 resolution: "console-control-strings@npm:1.1.0" @@ -15027,6 +15190,43 @@ __metadata: languageName: node linkType: hard +"create-ecdh@npm:^4.0.0": + version: 4.0.4 + resolution: "create-ecdh@npm:4.0.4" + dependencies: + bn.js: "npm:^4.1.0" + elliptic: "npm:^6.5.3" + checksum: 10c0/77b11a51360fec9c3bce7a76288fc0deba4b9c838d5fb354b3e40c59194d23d66efe6355fd4b81df7580da0661e1334a235a2a5c040b7569ba97db428d466e7f + languageName: node + linkType: hard + +"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0": + version: 1.2.0 + resolution: "create-hash@npm:1.2.0" + dependencies: + cipher-base: "npm:^1.0.1" + inherits: "npm:^2.0.1" + md5.js: "npm:^1.3.4" + ripemd160: "npm:^2.0.1" + sha.js: "npm:^2.4.0" + checksum: 10c0/d402e60e65e70e5083cb57af96d89567954d0669e90550d7cec58b56d49c4b193d35c43cec8338bc72358198b8cbf2f0cac14775b651e99238e1cf411490f915 + languageName: node + linkType: hard + +"create-hmac@npm:^1.1.0, create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7": + version: 1.1.7 + resolution: "create-hmac@npm:1.1.7" + dependencies: + cipher-base: "npm:^1.0.3" + create-hash: "npm:^1.1.0" + inherits: "npm:^2.0.1" + ripemd160: "npm:^2.0.0" + safe-buffer: "npm:^5.0.1" + sha.js: "npm:^2.4.8" + checksum: 10c0/24332bab51011652a9a0a6d160eed1e8caa091b802335324ae056b0dcb5acbc9fcf173cf10d128eba8548c3ce98dfa4eadaa01bd02f44a34414baee26b651835 + languageName: node + linkType: hard + "create-jest@npm:^29.7.0": version: 29.7.0 resolution: "create-jest@npm:29.7.0" @@ -15078,7 +15278,7 @@ __metadata: languageName: unknown linkType: soft -"create-require@npm:^1.1.0": +"create-require@npm:^1.1.0, create-require@npm:^1.1.1": version: 1.1.1 resolution: "create-require@npm:1.1.1" checksum: 10c0/157cbc59b2430ae9a90034a5f3a1b398b6738bf510f713edc4d4e45e169bc514d3d99dd34d8d01ca7ae7830b5b8b537e46ae8f3c8f932371b0875c0151d7ec91 @@ -15133,6 +15333,25 @@ __metadata: languageName: node linkType: hard +"crypto-browserify@npm:^3.11.0": + version: 3.12.0 + resolution: "crypto-browserify@npm:3.12.0" + dependencies: + browserify-cipher: "npm:^1.0.0" + browserify-sign: "npm:^4.0.0" + create-ecdh: "npm:^4.0.0" + create-hash: "npm:^1.1.0" + create-hmac: "npm:^1.1.0" + diffie-hellman: "npm:^5.0.0" + inherits: "npm:^2.0.1" + pbkdf2: "npm:^3.0.3" + public-encrypt: "npm:^4.0.0" + randombytes: "npm:^2.0.0" + randomfill: "npm:^1.0.3" + checksum: 10c0/0c20198886576050a6aa5ba6ae42f2b82778bfba1753d80c5e7a090836890dc372bdc780986b2568b4fb8ed2a91c958e61db1f0b6b1cc96af4bd03ffc298ba92 + languageName: node + linkType: hard + "crypto-random-string@npm:^1.0.0": version: 1.0.0 resolution: "crypto-random-string@npm:1.0.0" @@ -15939,6 +16158,16 @@ __metadata: languageName: node linkType: hard +"des.js@npm:^1.0.0": + version: 1.1.0 + resolution: "des.js@npm:1.1.0" + dependencies: + inherits: "npm:^2.0.1" + minimalistic-assert: "npm:^1.0.0" + checksum: 10c0/671354943ad67493e49eb4c555480ab153edd7cee3a51c658082fcde539d2690ed2a4a0b5d1f401f9cde822edf3939a6afb2585f32c091f2d3a1b1665cd45236 + languageName: node + linkType: hard + "destroy@npm:1.2.0": version: 1.2.0 resolution: "destroy@npm:1.2.0" @@ -16040,6 +16269,17 @@ __metadata: languageName: node linkType: hard +"diffie-hellman@npm:^5.0.0": + version: 5.0.3 + resolution: "diffie-hellman@npm:5.0.3" + dependencies: + bn.js: "npm:^4.1.0" + miller-rabin: "npm:^4.0.0" + randombytes: "npm:^2.0.0" + checksum: 10c0/ce53ccafa9ca544b7fc29b08a626e23a9b6562efc2a98559a0c97b4718937cebaa9b5d7d0a05032cc9c1435e9b3c1532b9e9bf2e0ede868525922807ad6e1ecf + languageName: node + linkType: hard + "dir-glob@npm:^3.0.1": version: 3.0.1 resolution: "dir-glob@npm:3.0.1" @@ -16128,6 +16368,13 @@ __metadata: languageName: node linkType: hard +"domain-browser@npm:^4.22.0": + version: 4.23.0 + resolution: "domain-browser@npm:4.23.0" + checksum: 10c0/dfcc6ba070a2c968a4d922e7d99ef440d1076812af0d983404aadf64729f746bb4a0ad2c5e73ccd5d9cf41bc79037f2a1e4a915bdf33d07e0d77f487b635b5b2 + languageName: node + linkType: hard + "domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0, domelementtype@npm:^2.3.0": version: 2.3.0 resolution: "domelementtype@npm:2.3.0" @@ -16395,6 +16642,21 @@ __metadata: languageName: node linkType: hard +"elliptic@npm:^6.5.3, elliptic@npm:^6.5.5": + version: 6.5.5 + resolution: "elliptic@npm:6.5.5" + dependencies: + bn.js: "npm:^4.11.9" + brorand: "npm:^1.1.0" + hash.js: "npm:^1.0.0" + hmac-drbg: "npm:^1.0.1" + inherits: "npm:^2.0.4" + minimalistic-assert: "npm:^1.0.1" + minimalistic-crypto-utils: "npm:^1.0.1" + checksum: 10c0/3e591e93783a1b66f234ebf5bd3a8a9a8e063a75073a35a671e03e3b25253b6e33ac121f7efe9b8808890fffb17b40596cc19d01e6e8d1fa13b9a56ff65597c8 + languageName: node + linkType: hard + "emittery@npm:^0.13.1": version: 0.13.1 resolution: "emittery@npm:0.13.1" @@ -17449,6 +17711,17 @@ __metadata: languageName: node linkType: hard +"evp_bytestokey@npm:^1.0.0, evp_bytestokey@npm:^1.0.3": + version: 1.0.3 + resolution: "evp_bytestokey@npm:1.0.3" + dependencies: + md5.js: "npm:^1.3.4" + node-gyp: "npm:latest" + safe-buffer: "npm:^5.1.1" + checksum: 10c0/77fbe2d94a902a80e9b8f5a73dcd695d9c14899c5e82967a61b1fc6cbbb28c46552d9b127cff47c45fcf684748bdbcfa0a50410349109de87ceb4b199ef6ee99 + languageName: node + linkType: hard + "execa@npm:4.1.0": version: 4.1.0 resolution: "execa@npm:4.1.0" @@ -19288,6 +19561,37 @@ __metadata: languageName: node linkType: hard +"hash-base@npm:^3.0.0": + version: 3.1.0 + resolution: "hash-base@npm:3.1.0" + dependencies: + inherits: "npm:^2.0.4" + readable-stream: "npm:^3.6.0" + safe-buffer: "npm:^5.2.0" + checksum: 10c0/663eabcf4173326fbb65a1918a509045590a26cc7e0964b754eef248d281305c6ec9f6b31cb508d02ffca383ab50028180ce5aefe013e942b44a903ac8dc80d0 + languageName: node + linkType: hard + +"hash-base@npm:~3.0": + version: 3.0.4 + resolution: "hash-base@npm:3.0.4" + dependencies: + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.0.1" + checksum: 10c0/a13357dccb3827f0bb0b56bf928da85c428dc8670f6e4a1c7265e4f1653ce02d69030b40fd01b0f1d218a995a066eea279cded9cec72d207b593bcdfe309c2f0 + languageName: node + linkType: hard + +"hash.js@npm:^1.0.0, hash.js@npm:^1.0.3": + version: 1.1.7 + resolution: "hash.js@npm:1.1.7" + dependencies: + inherits: "npm:^2.0.3" + minimalistic-assert: "npm:^1.0.1" + checksum: 10c0/41ada59494eac5332cfc1ce6b7ebdd7b88a3864a6d6b08a3ea8ef261332ed60f37f10877e0c825aaa4bddebf164fbffa618286aeeec5296675e2671cbfa746c4 + languageName: node + linkType: hard + "hasown@npm:^2.0.0, hasown@npm:^2.0.1, hasown@npm:^2.0.2": version: 2.0.2 resolution: "hasown@npm:2.0.2" @@ -19323,6 +19627,17 @@ __metadata: languageName: node linkType: hard +"hmac-drbg@npm:^1.0.1": + version: 1.0.1 + resolution: "hmac-drbg@npm:1.0.1" + dependencies: + hash.js: "npm:^1.0.3" + minimalistic-assert: "npm:^1.0.0" + minimalistic-crypto-utils: "npm:^1.0.1" + checksum: 10c0/f3d9ba31b40257a573f162176ac5930109816036c59a09f901eb2ffd7e5e705c6832bedfff507957125f2086a0ab8f853c0df225642a88bf1fcaea945f20600d + languageName: node + linkType: hard + "hoist-non-react-statics@npm:^3.3.2": version: 3.3.2 resolution: "hoist-non-react-statics@npm:3.3.2" @@ -19681,6 +19996,13 @@ __metadata: languageName: node linkType: hard +"https-browserify@npm:^1.0.0": + version: 1.0.0 + resolution: "https-browserify@npm:1.0.0" + checksum: 10c0/e17b6943bc24ea9b9a7da5714645d808670af75a425f29baffc3284962626efdc1eb3aa9bbffaa6e64028a6ad98af5b09fabcb454a8f918fb686abfdc9e9b8ae + languageName: node + linkType: hard + "https-proxy-agent@npm:^4.0.0": version: 4.0.0 resolution: "https-proxy-agent@npm:4.0.0" @@ -19916,7 +20238,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3": +"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3, inherits@npm:~2.0.4": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 @@ -20730,6 +21052,13 @@ __metadata: languageName: node linkType: hard +"isomorphic-timers-promises@npm:^1.0.1": + version: 1.0.1 + resolution: "isomorphic-timers-promises@npm:1.0.1" + checksum: 10c0/3b4761d0012ebe6b6382246079fc667f3513f36fe4042638f2bfb7db1557e4f1acd33a9c9907706c04270890ec6434120f132f3f300161a42a7dd8628926c8a4 + languageName: node + linkType: hard + "isomorphic-ws@npm:5.0.0, isomorphic-ws@npm:^5.0.0": version: 5.0.0 resolution: "isomorphic-ws@npm:5.0.0" @@ -22709,7 +23038,7 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.30.0, magic-string@npm:^0.30.10, magic-string@npm:^0.30.5": +"magic-string@npm:^0.30.0, magic-string@npm:^0.30.10, magic-string@npm:^0.30.3, magic-string@npm:^0.30.5": version: 0.30.10 resolution: "magic-string@npm:0.30.10" dependencies: @@ -22869,6 +23198,17 @@ __metadata: languageName: node linkType: hard +"md5.js@npm:^1.3.4": + version: 1.3.5 + resolution: "md5.js@npm:1.3.5" + dependencies: + hash-base: "npm:^3.0.0" + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.1.2" + checksum: 10c0/b7bd75077f419c8e013fc4d4dada48be71882e37d69a44af65a2f2804b91e253441eb43a0614423a1c91bb830b8140b0dc906bc797245e2e275759584f4efcc5 + languageName: node + linkType: hard + "md5@npm:2.3.0": version: 2.3.0 resolution: "md5@npm:2.3.0" @@ -23059,6 +23399,18 @@ __metadata: languageName: node linkType: hard +"miller-rabin@npm:^4.0.0": + version: 4.0.1 + resolution: "miller-rabin@npm:4.0.1" + dependencies: + bn.js: "npm:^4.0.0" + brorand: "npm:^1.0.1" + bin: + miller-rabin: bin/miller-rabin + checksum: 10c0/26b2b96f6e49dbcff7faebb78708ed2f5f9ae27ac8cbbf1d7c08f83cf39bed3d418c0c11034dce997da70d135cc0ff6f3a4c15dc452f8e114c11986388a64346 + languageName: node + linkType: hard + "mime-db@npm:1.52.0, mime-db@npm:>= 1.43.0 < 2": version: 1.52.0 resolution: "mime-db@npm:1.52.0" @@ -23156,13 +23508,20 @@ __metadata: languageName: node linkType: hard -"minimalistic-assert@npm:^1.0.0": +"minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1": version: 1.0.1 resolution: "minimalistic-assert@npm:1.0.1" checksum: 10c0/96730e5601cd31457f81a296f521eb56036e6f69133c0b18c13fe941109d53ad23a4204d946a0d638d7f3099482a0cec8c9bb6d642604612ce43ee536be3dddd languageName: node linkType: hard +"minimalistic-crypto-utils@npm:^1.0.1": + version: 1.0.1 + resolution: "minimalistic-crypto-utils@npm:1.0.1" + checksum: 10c0/790ecec8c5c73973a4fbf2c663d911033e8494d5fb0960a4500634766ab05d6107d20af896ca2132e7031741f19888154d44b2408ada0852446705441383e9f8 + languageName: node + linkType: hard + "minimatch@npm:3.0.5": version: 3.0.5 resolution: "minimatch@npm:3.0.5" @@ -24185,6 +24544,41 @@ __metadata: languageName: node linkType: hard +"node-stdlib-browser@npm:^1.2.0": + version: 1.2.0 + resolution: "node-stdlib-browser@npm:1.2.0" + dependencies: + assert: "npm:^2.0.0" + browser-resolve: "npm:^2.0.0" + browserify-zlib: "npm:^0.2.0" + buffer: "npm:^5.7.1" + console-browserify: "npm:^1.1.0" + constants-browserify: "npm:^1.0.0" + create-require: "npm:^1.1.1" + crypto-browserify: "npm:^3.11.0" + domain-browser: "npm:^4.22.0" + events: "npm:^3.0.0" + https-browserify: "npm:^1.0.0" + isomorphic-timers-promises: "npm:^1.0.1" + os-browserify: "npm:^0.3.0" + path-browserify: "npm:^1.0.1" + pkg-dir: "npm:^5.0.0" + process: "npm:^0.11.10" + punycode: "npm:^1.4.1" + querystring-es3: "npm:^0.2.1" + readable-stream: "npm:^3.6.0" + stream-browserify: "npm:^3.0.0" + stream-http: "npm:^3.2.0" + string_decoder: "npm:^1.0.0" + timers-browserify: "npm:^2.0.4" + tty-browserify: "npm:0.0.1" + url: "npm:^0.11.0" + util: "npm:^0.12.4" + vm-browserify: "npm:^1.0.1" + checksum: 10c0/4da239ebabcba68e09b2620aaae02dd589045b101441beb90988bc60f1af3d286e9fab0c334503eaf74986e583923e7648a8fa081edc4981e4d738636773f32e + languageName: node + linkType: hard + "nodemailer@npm:6.9.14": version: 6.9.14 resolution: "nodemailer@npm:6.9.14" @@ -24909,6 +25303,13 @@ __metadata: languageName: node linkType: hard +"os-browserify@npm:^0.3.0": + version: 0.3.0 + resolution: "os-browserify@npm:0.3.0" + checksum: 10c0/6ff32cb1efe2bc6930ad0fd4c50e30c38010aee909eba8d65be60af55efd6cbb48f0287e3649b4e3f3a63dce5a667b23c187c4293a75e557f0d5489d735bcf52 + languageName: node + linkType: hard + "os-tmpdir@npm:~1.0.2": version: 1.0.2 resolution: "os-tmpdir@npm:1.0.2" @@ -25190,6 +25591,13 @@ __metadata: languageName: node linkType: hard +"pako@npm:~1.0.5": + version: 1.0.11 + resolution: "pako@npm:1.0.11" + checksum: 10c0/86dd99d8b34c3930345b8bbeb5e1cd8a05f608eeb40967b293f72fe469d0e9c88b783a8777e4cc7dc7c91ce54c5e93d88ff4b4f060e6ff18408fd21030d9ffbe + languageName: node + linkType: hard + "param-case@npm:^2.1.1": version: 2.1.1 resolution: "param-case@npm:2.1.1" @@ -25218,6 +25626,20 @@ __metadata: languageName: node linkType: hard +"parse-asn1@npm:^5.0.0, parse-asn1@npm:^5.1.7": + version: 5.1.7 + resolution: "parse-asn1@npm:5.1.7" + dependencies: + asn1.js: "npm:^4.10.1" + browserify-aes: "npm:^1.2.0" + evp_bytestokey: "npm:^1.0.3" + hash-base: "npm:~3.0" + pbkdf2: "npm:^3.1.2" + safe-buffer: "npm:^5.2.1" + checksum: 10c0/05eb5937405c904eb5a7f3633bab1acc11f4ae3478a07ef5c6d81ce88c3c0e505ff51f9c7b935ebc1265c868343793698fc91025755a895d0276f620f95e8a82 + languageName: node + linkType: hard + "parse-conflict-json@npm:^3.0.0": version: 3.0.1 resolution: "parse-conflict-json@npm:3.0.1" @@ -25493,6 +25915,19 @@ __metadata: languageName: node linkType: hard +"pbkdf2@npm:^3.0.3, pbkdf2@npm:^3.1.2": + version: 3.1.2 + resolution: "pbkdf2@npm:3.1.2" + dependencies: + create-hash: "npm:^1.1.2" + create-hmac: "npm:^1.1.4" + ripemd160: "npm:^2.0.1" + safe-buffer: "npm:^5.0.1" + sha.js: "npm:^2.4.8" + checksum: 10c0/5a30374e87d33fa080a92734d778cf172542cc7e41b96198c4c88763997b62d7850de3fbda5c3111ddf79805ee7c1da7046881c90ac4920b5e324204518b05fd + languageName: node + linkType: hard + "peberminta@npm:^0.8.0": version: 0.8.0 resolution: "peberminta@npm:0.8.0" @@ -26545,6 +26980,20 @@ __metadata: languageName: node linkType: hard +"public-encrypt@npm:^4.0.0": + version: 4.0.3 + resolution: "public-encrypt@npm:4.0.3" + dependencies: + bn.js: "npm:^4.1.0" + browserify-rsa: "npm:^4.0.0" + create-hash: "npm:^1.1.0" + parse-asn1: "npm:^5.0.0" + randombytes: "npm:^2.0.1" + safe-buffer: "npm:^5.1.2" + checksum: 10c0/6c2cc19fbb554449e47f2175065d6b32f828f9b3badbee4c76585ac28ae8641aafb9bb107afc430c33c5edd6b05dbe318df4f7d6d7712b1093407b11c4280700 + languageName: node + linkType: hard + "pump@npm:^2.0.0": version: 2.0.1 resolution: "pump@npm:2.0.1" @@ -26665,6 +27114,13 @@ __metadata: languageName: node linkType: hard +"querystring-es3@npm:^0.2.1": + version: 0.2.1 + resolution: "querystring-es3@npm:0.2.1" + checksum: 10c0/476938c1adb45c141f024fccd2ffd919a3746e79ed444d00e670aad68532977b793889648980e7ca7ff5ffc7bfece623118d0fbadcaf217495eeb7059ae51580 + languageName: node + linkType: hard + "querystringify@npm:^2.1.1": version: 2.2.0 resolution: "querystringify@npm:2.2.0" @@ -26721,7 +27177,7 @@ __metadata: languageName: node linkType: hard -"randombytes@npm:^2.1.0": +"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" dependencies: @@ -26730,6 +27186,16 @@ __metadata: languageName: node linkType: hard +"randomfill@npm:^1.0.3": + version: 1.0.4 + resolution: "randomfill@npm:1.0.4" + dependencies: + randombytes: "npm:^2.0.5" + safe-buffer: "npm:^5.1.0" + checksum: 10c0/11aeed35515872e8f8a2edec306734e6b74c39c46653607f03c68385ab8030e2adcc4215f76b5e4598e028c4750d820afd5c65202527d831d2a5f207fe2bc87c + languageName: node + linkType: hard + "range-parser@npm:^1.2.1, range-parser@npm:~1.2.1": version: 1.2.1 resolution: "range-parser@npm:1.2.1" @@ -27149,7 +27615,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.5, readable-stream@npm:^2.2.2, readable-stream@npm:~2.3.6": +"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.8, readable-stream@npm:~2.3.6": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" dependencies: @@ -27164,7 +27630,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^3.0.0, readable-stream@npm:^3.0.2, readable-stream@npm:^3.0.6, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": +"readable-stream@npm:^3.0.0, readable-stream@npm:^3.0.2, readable-stream@npm:^3.0.6, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.5.0, readable-stream@npm:^3.6.0": version: 3.6.2 resolution: "readable-stream@npm:3.6.2" dependencies: @@ -27623,7 +28089,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.10.0, resolve@npm:^1.11.1, resolve@npm:^1.14.2, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.4, resolve@npm:^1.22.8": +"resolve@npm:^1.10.0, resolve@npm:^1.11.1, resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.4, resolve@npm:^1.22.8": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -27649,7 +28115,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.11.1#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin": +"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.11.1#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.17.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" dependencies: @@ -27812,6 +28278,16 @@ __metadata: languageName: node linkType: hard +"ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1": + version: 2.0.2 + resolution: "ripemd160@npm:2.0.2" + dependencies: + hash-base: "npm:^3.0.0" + inherits: "npm:^2.0.1" + checksum: 10c0/f6f0df78817e78287c766687aed4d5accbebc308a8e7e673fb085b9977473c1f139f0c5335d353f172a915bb288098430755d2ad3c4f30612f4dd0c901cd2c3a + languageName: node + linkType: hard + "rollup@npm:4.18.0, rollup@npm:^4.13.0": version: 4.18.0 resolution: "rollup@npm:4.18.0" @@ -28029,7 +28505,7 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.2, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 @@ -28333,7 +28809,7 @@ __metadata: languageName: node linkType: hard -"setimmediate@npm:^1.0.5": +"setimmediate@npm:^1.0.4, setimmediate@npm:^1.0.5": version: 1.0.5 resolution: "setimmediate@npm:1.0.5" checksum: 10c0/5bae81bfdbfbd0ce992893286d49c9693c82b1bcc00dcaaf3a09c8f428fdeacf4190c013598b81875dfac2b08a572422db7df779a99332d0fce186d15a3e4d49 @@ -28354,6 +28830,18 @@ __metadata: languageName: node linkType: hard +"sha.js@npm:^2.4.0, sha.js@npm:^2.4.8": + version: 2.4.11 + resolution: "sha.js@npm:2.4.11" + dependencies: + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.0.1" + bin: + sha.js: ./bin.js + checksum: 10c0/b7a371bca8821c9cc98a0aeff67444a03d48d745cb103f17228b96793f455f0eb0a691941b89ea1e60f6359207e36081d9be193252b0f128e0daf9cfea2815a5 + languageName: node + linkType: hard + "shallow-clone@npm:^3.0.0": version: 3.0.1 resolution: "shallow-clone@npm:3.0.1" @@ -29033,6 +29521,16 @@ __metadata: languageName: node linkType: hard +"stream-browserify@npm:^3.0.0": + version: 3.0.0 + resolution: "stream-browserify@npm:3.0.0" + dependencies: + inherits: "npm:~2.0.4" + readable-stream: "npm:^3.5.0" + checksum: 10c0/ec3b975a4e0aa4b3dc5e70ffae3fc8fd29ac725353a14e72f213dff477b00330140ad014b163a8cbb9922dfe90803f81a5ea2b269e1bbfd8bd71511b88f889ad + languageName: node + linkType: hard + "stream-events@npm:^1.0.5": version: 1.0.5 resolution: "stream-events@npm:1.0.5" @@ -29042,6 +29540,18 @@ __metadata: languageName: node linkType: hard +"stream-http@npm:^3.2.0": + version: 3.2.0 + resolution: "stream-http@npm:3.2.0" + dependencies: + builtin-status-codes: "npm:^3.0.0" + inherits: "npm:^2.0.4" + readable-stream: "npm:^3.6.0" + xtend: "npm:^4.0.2" + checksum: 10c0/f128fb8076d60cd548f229554b6a1a70c08a04b7b2afd4dbe7811d20f27f7d4112562eb8bce86d72a8691df3b50573228afcf1271e55e81f981536c67498bc41 + languageName: node + linkType: hard + "stream-shift@npm:^1.0.0, stream-shift@npm:^1.0.2": version: 1.0.3 resolution: "stream-shift@npm:1.0.3" @@ -29207,7 +29717,7 @@ __metadata: languageName: node linkType: hard -"string_decoder@npm:^1.1.1, string_decoder@npm:^1.3.0": +"string_decoder@npm:^1.0.0, string_decoder@npm:^1.1.1, string_decoder@npm:^1.3.0": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" dependencies: @@ -29799,6 +30309,15 @@ __metadata: languageName: node linkType: hard +"timers-browserify@npm:^2.0.4": + version: 2.0.12 + resolution: "timers-browserify@npm:2.0.12" + dependencies: + setimmediate: "npm:^1.0.4" + checksum: 10c0/98e84db1a685bc8827c117a8bc62aac811ad56a995d07938fc7ed8cdc5bf3777bfe2d4e5da868847194e771aac3749a20f6cdd22091300fe889a76fe214a4641 + languageName: node + linkType: hard + "tiny-invariant@npm:^1.3.1": version: 1.3.1 resolution: "tiny-invariant@npm:1.3.1" @@ -30213,6 +30732,13 @@ __metadata: languageName: node linkType: hard +"tty-browserify@npm:0.0.1": + version: 0.0.1 + resolution: "tty-browserify@npm:0.0.1" + checksum: 10c0/5e34883388eb5f556234dae75b08e069b9e62de12bd6d87687f7817f5569430a6dfef550b51dbc961715ae0cd0eb5a059e6e3fc34dc127ea164aa0f9b5bb033d + languageName: node + linkType: hard + "tuf-js@npm:^1.1.7": version: 1.1.7 resolution: "tuf-js@npm:1.1.7" @@ -31044,6 +31570,18 @@ __metadata: languageName: node linkType: hard +"vite-plugin-node-polyfills@npm:^0.22.0": + version: 0.22.0 + resolution: "vite-plugin-node-polyfills@npm:0.22.0" + dependencies: + "@rollup/plugin-inject": "npm:^5.0.5" + node-stdlib-browser: "npm:^1.2.0" + peerDependencies: + vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + checksum: 10c0/f8ddc452eb6fba280977d037f8a6406aa522e69590641ce72ce5bb31c3498856a9f63ab3671bc6a822dcd1ff9ba5cac02cacef4a0e170fd8500cdeeb38c81675 + languageName: node + linkType: hard + "vite@npm:5.3.1, vite@npm:^5.0.0": version: 5.3.1 resolution: "vite@npm:5.3.1" @@ -31134,6 +31672,13 @@ __metadata: languageName: node linkType: hard +"vm-browserify@npm:^1.0.1": + version: 1.1.2 + resolution: "vm-browserify@npm:1.1.2" + checksum: 10c0/0cc1af6e0d880deb58bc974921320c187f9e0a94f25570fca6b1bd64e798ce454ab87dfd797551b1b0cc1849307421aae0193cedf5f06bdb5680476780ee344b + languageName: node + linkType: hard + "vscode-jsonrpc@npm:8.2.0": version: 8.2.0 resolution: "vscode-jsonrpc@npm:8.2.0" @@ -31986,7 +32531,7 @@ __metadata: languageName: node linkType: hard -"xtend@npm:~4.0.1": +"xtend@npm:^4.0.2, xtend@npm:~4.0.1": version: 4.0.2 resolution: "xtend@npm:4.0.2" checksum: 10c0/366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e