diff --git a/apps/events/src/components/add-user.tsx b/apps/events/src/components/add-user.tsx index 1d47b8d9..305e966b 100644 --- a/apps/events/src/components/add-user.tsx +++ b/apps/events/src/components/add-user.tsx @@ -15,6 +15,7 @@ export const AddUser: React.FC = () => { name: newUserName, age: 30, email: 'example@example.com', + badge: { name: 'new user' }, }); setNewUserName(''); }} diff --git a/apps/events/src/lib/deserialize.ts b/apps/events/src/lib/deserialize.ts index 9169fbe0..81f4972d 100644 --- a/apps/events/src/lib/deserialize.ts +++ b/apps/events/src/lib/deserialize.ts @@ -1,5 +1,5 @@ export const deserialize = (data: string) => { - return JSON.parse(data, (key, value) => { + return JSON.parse(data, (__key, value) => { if (typeof value === 'object' && value !== null && value.type === 'Uint8Array') { return new Uint8Array(value.data); } diff --git a/apps/events/src/lib/serialize.ts b/apps/events/src/lib/serialize.ts index 607ec9ad..7eae9748 100644 --- a/apps/events/src/lib/serialize.ts +++ b/apps/events/src/lib/serialize.ts @@ -1,6 +1,6 @@ -// eslint-disable-next-line @typescript-eslint/no-explicit-any +// biome-ignore lint/suspicious/noExplicitAny: export const serialize = (data: any) => { - return JSON.stringify(data, (key, value) => { + return JSON.stringify(data, (_key, value) => { if (value instanceof Uint8Array) { return { type: 'Uint8Array', data: Array.from(value) }; } diff --git a/apps/events/src/routes/login.lazy.tsx b/apps/events/src/routes/login.lazy.tsx index 5a1f478c..303c7b99 100644 --- a/apps/events/src/routes/login.lazy.tsx +++ b/apps/events/src/routes/login.lazy.tsx @@ -10,10 +10,9 @@ const Login = () => { const connectWallet = async () => { let newSigner = null; - let provider; + let provider: ethers.AbstractProvider | ethers.BrowserProvider; try { - // @ts-expect-error ethereum is defined in the browser if (window.ethereum == null) { // If MetaMask is not installed, we use the default provider, // which is backed by a variety of third-party services (such @@ -25,13 +24,12 @@ const Login = () => { // Connect to the MetaMask EIP-1193 object. This is a standard // protocol that allows Ethers access to make all read-only // requests through MetaMask. - // @ts-expect-error ethereum is defined in the browser provider = new ethers.BrowserProvider(window.ethereum); // It also provides an opportunity to request access to write // operations, which will be performed by the private key // that MetaMask manages for the user. - newSigner = await provider.getSigner(); + newSigner = await (provider as ethers.BrowserProvider).getSigner(); setSigner(newSigner); const address = await newSigner?.getAddress(); @@ -46,7 +44,6 @@ const Login = () => { async function runEffect() { const storedSignerAddress = localStorage.getItem('signerAddress'); if (storedSignerAddress) { - // @ts-expect-error ethereum is defined in the browser const provider = new ethers.BrowserProvider(window.ethereum); const newSigner = await provider.getSigner(); setSigner(newSigner); @@ -89,9 +86,9 @@ function XmtpLogin({ signer }: { signer: Signer }) { redirect({ to: '/space/$spaceId', params: { spaceId: 'abc' } }); }; + // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect(() => { void initXmtpWithKeys(); - // eslint-disable-next-line react-hooks/exhaustive-deps }, []); if (isLoading) { diff --git a/apps/events/tsconfig.app.json b/apps/events/tsconfig.app.json index ac3dda05..b0a133c1 100644 --- a/apps/events/tsconfig.app.json +++ b/apps/events/tsconfig.app.json @@ -1,4 +1,6 @@ { + "extends": "../../tsconfig.base.json", + "references": [{ "path": "../../packages/graph-framework" }], "compilerOptions": { "target": "ES2020", "useDefineForClassFields": true, @@ -24,7 +26,9 @@ /* Shadcn */ "baseUrl": ".", "paths": { - "@/*": ["./src/*"] + "@/*": ["./src/*"], + "graph-framework": ["../../packages/graph-framework/src/index.js"], + "graph-framework/*": ["../../packages/graph-framework/src/*.js"] } }, "include": ["src"] diff --git a/apps/events/tsconfig.json b/apps/events/tsconfig.json index cf3d558e..27a9e899 100644 --- a/apps/events/tsconfig.json +++ b/apps/events/tsconfig.json @@ -5,7 +5,9 @@ /* Shadcn */ "baseUrl": ".", "paths": { - "@/*": ["./src/*"] + "@/*": ["./src/*"], + "graph-framework": ["../../packages/graph-framework/src/index.js"], + "graph-framework/*": ["../../packages/graph-framework/src/*.js"] } } } diff --git a/apps/events/tsconfig.node.json b/apps/events/tsconfig.node.json index 1b61abad..7e3ba1f2 100644 --- a/apps/events/tsconfig.node.json +++ b/apps/events/tsconfig.node.json @@ -1,4 +1,6 @@ { + "extends": "../../tsconfig.base.json", + "references": [{ "path": "../../packages/graph-framework" }], "compilerOptions": { "target": "ES2022", "lib": ["ES2023"], diff --git a/biome.jsonc b/biome.jsonc index bf1b2dee..6011438d 100644 --- a/biome.jsonc +++ b/biome.jsonc @@ -7,7 +7,7 @@ }, "files": { "ignoreUnknown": false, - "ignore": ["node_modules/", "**/node_modules", "**/dist", "routeTree.gen.ts"] + "ignore": ["node_modules/", "**/node_modules", "**/build", "**/dist", "routeTree.gen.ts"] }, "formatter": { "enabled": true, diff --git a/package.json b/package.json index 5ca60bbf..e4a6db38 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,13 @@ "type": "module", "workspaces": ["apps/*", "packages/*"], "devDependencies": { + "@babel/cli": "^7.25.9", + "@babel/core": "^7.26.0", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", "@biomejs/biome": "1.9.4", + "@effect/build-utils": "^0.7.8", + "babel-plugin-annotate-pure-calls": "^0.4.0", "escape-string-regexp": "^5.0.0", "typescript": "^5.6.3", "vite": "^5.4.10", @@ -12,11 +18,16 @@ "vite-plugin-dts": "^4.3.0" }, "scripts": { - "build": "pnpm --filter graph-framework-utils build", + "build": "tsc -b tsconfig.build.json && pnpm --recursive --parallel run build", "ts:check": "pnpm -r ts:check", "test": "pnpm -r test", "lint": "pnpm -r lint", "format": "pnpm -r format", "check": "pnpm -r check" + }, + "pnpm": { + "patchedDependencies": { + "babel-plugin-annotate-pure-calls@0.4.0": "patches/babel-plugin-annotate-pure-calls@0.4.0.patch" + } } } diff --git a/packages/graph-framework-identity/LICENSE b/packages/graph-framework-identity/LICENSE new file mode 100644 index 00000000..c75b86eb --- /dev/null +++ b/packages/graph-framework-identity/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023-present The Contributors + +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. \ No newline at end of file diff --git a/packages/graph-framework-identity/README.md b/packages/graph-framework-identity/README.md new file mode 100644 index 00000000..94512dce --- /dev/null +++ b/packages/graph-framework-identity/README.md @@ -0,0 +1,3 @@ +# Graph Framework Identity + +Utilities around identity/authentication in the Graph Framework \ No newline at end of file diff --git a/packages/graph-framework-identity/package.json b/packages/graph-framework-identity/package.json index f921b240..de1f8988 100644 --- a/packages/graph-framework-identity/package.json +++ b/packages/graph-framework-identity/package.json @@ -1,11 +1,32 @@ { "name": "graph-framework-identity", "version": "0.0.1", - "description": "", + "description": "Utilities around identity/authentication in the Graph Framework", "type": "module", + "repository": { + "type": "git", + "url": "https://github.com/geobrowser/graph-framework.git", + "directory": "packages/graph-framework-identity" + }, + "license": "MIT", + "publishConfig": { + "access": "public", + "directory": "dist", + "provenance": true + }, + "main": "./src/index.js", + "types": "./build/dts/index.d.ts", + "exports": { + ".": { + "types": "./build/dts/index.d.ts", + "default": "./src/index.js" + } + }, "scripts": { + "build": "pnpm build-esm && build-utils pack-v2", + "build-esm": "tsc -b tsconfig.build.json", "test": "vitest run --typecheck", - "ts:check": "tsc --noEmit", + "ts:check": "tsc -b tsconfig.json", "lint": "pnpm biome lint src/*", "lint:fix": "pnpm biome lint --write src/*", "format": "pnpm biome format src/*", @@ -13,11 +34,6 @@ "check": "pnpm biome check src/*", "check:fix": "pnpm biome check --write src/*" }, - "exports": { - ".": { - "default": "./src/index.js" - } - }, "peerDependencies": { "effect": "^3.10.12" }, diff --git a/packages/graph-framework-identity/src/index.tsx b/packages/graph-framework-identity/src/index.ts similarity index 100% rename from packages/graph-framework-identity/src/index.tsx rename to packages/graph-framework-identity/src/index.ts diff --git a/packages/graph-framework-identity/tsconfig.build.json b/packages/graph-framework-identity/tsconfig.build.json index 9f8c8762..c08390c9 100644 --- a/packages/graph-framework-identity/tsconfig.build.json +++ b/packages/graph-framework-identity/tsconfig.build.json @@ -1,9 +1,11 @@ { - "extends": "../../tsconfig.options.json", + "extends": "./tsconfig.src.json", + "references": [{ "path": "../graph-framework-utils/tsconfig.build.json" }], "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" + "tsBuildInfoFile": ".tsbuildinfo/build.tsbuildinfo", + "outDir": "build/esm", + "declarationDir": "build/dts", + "stripInternal": true }, - "include": ["./src"], - "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.spec.ts", "dist"] + "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.spec.ts"] } diff --git a/packages/graph-framework-identity/tsconfig.json b/packages/graph-framework-identity/tsconfig.json index 2ffc3dc0..73e6ebe3 100644 --- a/packages/graph-framework-identity/tsconfig.json +++ b/packages/graph-framework-identity/tsconfig.json @@ -1,10 +1,5 @@ { - "extends": "../../tsconfig.options.json", - "compilerOptions": { - "baseUrl": ".", - "rootDir": ".", - "noEmit": true - }, - "include": ["**/*", "vite.config.mts"], - "exclude": ["**/node_modules", "**/dist"] + "extends": "../../tsconfig.base.json", + "include": [], + "references": [{ "path": "tsconfig.src.json" }] } diff --git a/packages/graph-framework-identity/tsconfig.src.json b/packages/graph-framework-identity/tsconfig.src.json new file mode 100644 index 00000000..ed1097c9 --- /dev/null +++ b/packages/graph-framework-identity/tsconfig.src.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["src"], + "references": [{ "path": "../graph-framework-utils" }], + "compilerOptions": { + "tsBuildInfoFile": ".tsbuildinfo/src.tsbuildinfo", + "rootDir": "src", + "outDir": "build/src" + } +} diff --git a/packages/graph-framework-identity/vite.config.js b/packages/graph-framework-identity/vite.config.js deleted file mode 100644 index d3102d41..00000000 --- a/packages/graph-framework-identity/vite.config.js +++ /dev/null @@ -1,4 +0,0 @@ -import { defineConfig } from 'vite'; - -// https://vitejs.dev/config/ -export default defineConfig({}); diff --git a/packages/graph-framework-identity/vitest.config.mts b/packages/graph-framework-identity/vitest.config.mts new file mode 100644 index 00000000..52708935 --- /dev/null +++ b/packages/graph-framework-identity/vitest.config.mts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'jsdom', + }, +}); diff --git a/packages/graph-framework-schema/LICENSE b/packages/graph-framework-schema/LICENSE new file mode 100644 index 00000000..c75b86eb --- /dev/null +++ b/packages/graph-framework-schema/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023-present The Contributors + +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. \ No newline at end of file diff --git a/packages/graph-framework-schema/README.md b/packages/graph-framework-schema/README.md new file mode 100644 index 00000000..38e121b2 --- /dev/null +++ b/packages/graph-framework-schema/README.md @@ -0,0 +1,3 @@ +# Graph Framework Schema + +Tools to generate and define the space schema \ No newline at end of file diff --git a/packages/graph-framework-schema/package.json b/packages/graph-framework-schema/package.json index 5d770975..b9286d02 100644 --- a/packages/graph-framework-schema/package.json +++ b/packages/graph-framework-schema/package.json @@ -1,11 +1,32 @@ { "name": "graph-framework-schema", "version": "0.0.1", - "description": "", + "description": "Tools to generate and define the space schema", "type": "module", + "repository": { + "type": "git", + "url": "https://github.com/geobrowser/graph-framework.git", + "directory": "packages/graph-framework-schema" + }, + "license": "MIT", + "publishConfig": { + "access": "public", + "directory": "dist", + "provenance": true + }, + "main": "./src/index.js", + "types": "./build/dts/index.d.ts", + "exports": { + ".": { + "types": "./build/dts/index.d.ts", + "default": "./src/index.js" + } + }, "scripts": { + "build": "pnpm build-esm && build-utils pack-v2", + "build-esm": "tsc -b tsconfig.build.json", "test": "vitest run --typecheck", - "ts:check": "tsc --noEmit", + "ts:check": "tsc -b tsconfig.json", "lint": "pnpm biome lint src/*", "lint:fix": "pnpm biome lint --write src/*", "format": "pnpm biome format src/*", @@ -13,11 +34,6 @@ "check": "pnpm biome check src/*", "check:fix": "pnpm biome check --write src/*" }, - "exports": { - ".": { - "default": "./src/index.js" - } - }, "peerDependencies": { "@automerge/automerge": "^2", "@automerge/automerge-repo": "^1", diff --git a/packages/graph-framework-schema/src/context.tsx b/packages/graph-framework-schema/src/context.tsx index 759264b4..07f9bce7 100644 --- a/packages/graph-framework-schema/src/context.tsx +++ b/packages/graph-framework-schema/src/context.tsx @@ -109,7 +109,6 @@ export function createFunctions(schema: T) { (acc, type) => { const typeSchema = schema.types[type]; - // @ts-expect-error for (const [key, prop] of Object.entries(typeSchema)) { if (isRelation(prop)) { // Handle Relation @@ -224,11 +223,8 @@ export function createFunctions(schema: T) { const resultData = { ...data }; for (const entityType of entityTypes) { const typeSchema = schema.types[entityType]; - // @ts-expect-error for (const key of Object.keys(typeSchema)) { - // @ts-expect-error const prop = typeSchema[key]; - // @ts-expect-error if (isRelation(prop)) { const relationProp = prop as Relation; const { types: relatedTypes, cardinality } = relationProp; @@ -360,13 +356,7 @@ export function createFunctions(schema: T) { const visitedEntities = new Set(); for (const entityId in filteredEntities) { const entity = filteredEntities[entityId]; - const resolvedEntity = resolveEntity( - entityId, - entity, - // @ts-expect-error - entity.types, - visitedEntities, - ); + const resolvedEntity = resolveEntity(entityId, entity, entity.types, visitedEntities); filteredEntities[entityId] = resolvedEntity; } @@ -397,7 +387,6 @@ export function createFunctions(schema: T) { const typeSchema = schema.types[entityType]; for (const key in typeSchema) { const prop = typeSchema[key]; - // @ts-expect-error if (isRelation(prop)) { const relationProp = prop as Relation; const { cardinality } = relationProp; diff --git a/packages/graph-framework-schema/tsconfig.build.json b/packages/graph-framework-schema/tsconfig.build.json index 9f8c8762..cf392a1c 100644 --- a/packages/graph-framework-schema/tsconfig.build.json +++ b/packages/graph-framework-schema/tsconfig.build.json @@ -1,9 +1,11 @@ { - "extends": "../../tsconfig.options.json", + "extends": "./tsconfig.src.json", + "references": [{ "path": "../graph-framework-utils/tsconfig.build.json" }], "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" + "tsBuildInfoFile": ".tsbuildinfo/build.tsbuildinfo", + "outDir": "build/esm", + "declarationDir": "build/dts", + "stripInternal": true }, - "include": ["./src"], - "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.spec.ts", "dist"] + "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.test.tsx", "src/**/*.spec.ts", "src/**/*.spec.tsx"] } diff --git a/packages/graph-framework-schema/tsconfig.json b/packages/graph-framework-schema/tsconfig.json index 2ffc3dc0..73e6ebe3 100644 --- a/packages/graph-framework-schema/tsconfig.json +++ b/packages/graph-framework-schema/tsconfig.json @@ -1,10 +1,5 @@ { - "extends": "../../tsconfig.options.json", - "compilerOptions": { - "baseUrl": ".", - "rootDir": ".", - "noEmit": true - }, - "include": ["**/*", "vite.config.mts"], - "exclude": ["**/node_modules", "**/dist"] + "extends": "../../tsconfig.base.json", + "include": [], + "references": [{ "path": "tsconfig.src.json" }] } diff --git a/packages/graph-framework-schema/tsconfig.src.json b/packages/graph-framework-schema/tsconfig.src.json new file mode 100644 index 00000000..9013a012 --- /dev/null +++ b/packages/graph-framework-schema/tsconfig.src.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["src"], + "references": [{ "path": "../graph-framework-utils" }], + "compilerOptions": { + "tsBuildInfoFile": ".tsbuildinfo/src.tsbuildinfo", + "rootDir": "src", + "outDir": "build/src", + "allowSyntheticDefaultImports": true + } +} diff --git a/packages/graph-framework/vite.config.js b/packages/graph-framework-schema/vitest.config.mts similarity index 67% rename from packages/graph-framework/vite.config.js rename to packages/graph-framework-schema/vitest.config.mts index 0a85b727..71e0717b 100644 --- a/packages/graph-framework/vite.config.js +++ b/packages/graph-framework-schema/vitest.config.mts @@ -1,10 +1,10 @@ import react from '@vitejs/plugin-react'; -import { defineConfig } from 'vite'; +import { defineConfig } from 'vitest/config'; -// https://vitejs.dev/config/ export default defineConfig({ plugins: [react()], test: { + globals: true, environment: 'jsdom', }, }); diff --git a/packages/graph-framework-space-events/LICENSE b/packages/graph-framework-space-events/LICENSE new file mode 100644 index 00000000..c75b86eb --- /dev/null +++ b/packages/graph-framework-space-events/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023-present The Contributors + +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. \ No newline at end of file diff --git a/packages/graph-framework-space-events/README.md b/packages/graph-framework-space-events/README.md new file mode 100644 index 00000000..de3e7ff8 --- /dev/null +++ b/packages/graph-framework-space-events/README.md @@ -0,0 +1,3 @@ +# Graph Framework Space Events + +Builds together common functionality around creating spaces in the GRC-20 spec. \ No newline at end of file diff --git a/packages/graph-framework-space-events/package.json b/packages/graph-framework-space-events/package.json index 98cd8035..b92a278b 100644 --- a/packages/graph-framework-space-events/package.json +++ b/packages/graph-framework-space-events/package.json @@ -1,11 +1,32 @@ { "name": "graph-framework-space-events", "version": "0.0.1", - "description": "", + "description": "Builds together common functionality around creating spaces in the GRC-20 spec.", "type": "module", + "repository": { + "type": "git", + "url": "https://github.com/geobrowser/graph-framework.git", + "directory": "packages/graph-framework-space-events" + }, + "license": "MIT", + "publishConfig": { + "access": "public", + "directory": "dist", + "provenance": true + }, + "main": "./src/index.js", + "types": "./build/dts/index.d.ts", + "exports": { + ".": { + "types": "./build/dts/index.d.ts", + "default": "./src/index.js" + } + }, "scripts": { + "build": "pnpm build-esm && build-utils pack-v2", + "build-esm": "tsc -b tsconfig.build.json", "test": "vitest run --typecheck", - "ts:check": "tsc --noEmit", + "ts:check": "tsc -b tsconfig.json", "lint": "pnpm biome lint src/*", "lint:fix": "pnpm biome lint --write src/*", "format": "pnpm biome format src/*", @@ -13,11 +34,6 @@ "check": "pnpm biome check src/*", "check:fix": "pnpm biome check --write src/*" }, - "exports": { - ".": { - "default": "./src/index.js" - } - }, "peerDependencies": { "effect": "^3.10.12" }, diff --git a/packages/graph-framework-space-events/tsconfig.build.json b/packages/graph-framework-space-events/tsconfig.build.json index 9f8c8762..c08390c9 100644 --- a/packages/graph-framework-space-events/tsconfig.build.json +++ b/packages/graph-framework-space-events/tsconfig.build.json @@ -1,9 +1,11 @@ { - "extends": "../../tsconfig.options.json", + "extends": "./tsconfig.src.json", + "references": [{ "path": "../graph-framework-utils/tsconfig.build.json" }], "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" + "tsBuildInfoFile": ".tsbuildinfo/build.tsbuildinfo", + "outDir": "build/esm", + "declarationDir": "build/dts", + "stripInternal": true }, - "include": ["./src"], - "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.spec.ts", "dist"] + "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.spec.ts"] } diff --git a/packages/graph-framework-space-events/tsconfig.json b/packages/graph-framework-space-events/tsconfig.json index 2ffc3dc0..73e6ebe3 100644 --- a/packages/graph-framework-space-events/tsconfig.json +++ b/packages/graph-framework-space-events/tsconfig.json @@ -1,10 +1,5 @@ { - "extends": "../../tsconfig.options.json", - "compilerOptions": { - "baseUrl": ".", - "rootDir": ".", - "noEmit": true - }, - "include": ["**/*", "vite.config.mts"], - "exclude": ["**/node_modules", "**/dist"] + "extends": "../../tsconfig.base.json", + "include": [], + "references": [{ "path": "tsconfig.src.json" }] } diff --git a/packages/graph-framework-space-events/tsconfig.src.json b/packages/graph-framework-space-events/tsconfig.src.json new file mode 100644 index 00000000..ed1097c9 --- /dev/null +++ b/packages/graph-framework-space-events/tsconfig.src.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["src"], + "references": [{ "path": "../graph-framework-utils" }], + "compilerOptions": { + "tsBuildInfoFile": ".tsbuildinfo/src.tsbuildinfo", + "rootDir": "src", + "outDir": "build/src" + } +} diff --git a/packages/graph-framework-space-events/vite.config.js b/packages/graph-framework-space-events/vite.config.js deleted file mode 100644 index d3102d41..00000000 --- a/packages/graph-framework-space-events/vite.config.js +++ /dev/null @@ -1,4 +0,0 @@ -import { defineConfig } from 'vite'; - -// https://vitejs.dev/config/ -export default defineConfig({}); diff --git a/packages/graph-framework-space-events/vitest.config.mts b/packages/graph-framework-space-events/vitest.config.mts new file mode 100644 index 00000000..7382f40e --- /dev/null +++ b/packages/graph-framework-space-events/vitest.config.mts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + }, +}); diff --git a/packages/graph-framework-utils/LICENSE b/packages/graph-framework-utils/LICENSE new file mode 100644 index 00000000..c75b86eb --- /dev/null +++ b/packages/graph-framework-utils/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023-present The Contributors + +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. \ No newline at end of file diff --git a/packages/graph-framework-utils/package.json b/packages/graph-framework-utils/package.json index 145c9634..f30d76ef 100644 --- a/packages/graph-framework-utils/package.json +++ b/packages/graph-framework-utils/package.json @@ -3,29 +3,30 @@ "version": "0.0.1", "description": "Provides common utilities for the Graph Framework", "type": "module", - "main": "./dist/index.mjs", - "module": "./dist/index.mjs", - "types": "./dist/index.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/geobrowser/graph-framework.git", + "directory": "packages/graph-framework-utils" + }, + "license": "MIT", + "publishConfig": { + "access": "public", + "directory": "dist", + "provenance": true + }, + "main": "./src/index.js", + "types": "./build/dts/index.d.ts", "exports": { ".": { - "types": "./dist/index.d.ts", - "require": "./dist/index.cjs", - "import": "./dist/index.mjs", - "default": "./dist/index.mjs" - }, - "./base58": { - "types": "./dist/base58.d.ts", - "require": "./dist/base58.cjs", - "import": "./dist/base58.mjs", - "default": "./dist/base58.mjs" + "types": "./build/dts/index.d.ts", + "default": "./src/index.js" } }, - "files": ["dist", "package.json"], - "sideEffects": false, "scripts": { - "build": "vite build", + "build": "pnpm build-esm && build-utils pack-v2", + "build-esm": "tsc -b tsconfig.build.json", "test": "vitest run --typecheck", - "ts:check": "tsc --noEmit", + "ts:check": "tsc -b tsconfig.json", "lint": "pnpm biome lint src/*", "lint:fix": "pnpm biome lint --write src/*", "format": "pnpm biome format src/*", diff --git a/packages/graph-framework-utils/tsconfig.build.json b/packages/graph-framework-utils/tsconfig.build.json index 9f8c8762..50f248a2 100644 --- a/packages/graph-framework-utils/tsconfig.build.json +++ b/packages/graph-framework-utils/tsconfig.build.json @@ -1,9 +1,10 @@ { - "extends": "../../tsconfig.options.json", + "extends": "./tsconfig.src.json", "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" + "tsBuildInfoFile": ".tsbuildinfo/build.tsbuildinfo", + "outDir": "build/esm", + "declarationDir": "build/dts", + "stripInternal": true }, - "include": ["./src"], - "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.spec.ts", "dist"] + "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.spec.ts"] } diff --git a/packages/graph-framework-utils/tsconfig.json b/packages/graph-framework-utils/tsconfig.json index e71c5154..73e6ebe3 100644 --- a/packages/graph-framework-utils/tsconfig.json +++ b/packages/graph-framework-utils/tsconfig.json @@ -1,9 +1,5 @@ { - "extends": "../../tsconfig.options.json", - "compilerOptions": { - "baseUrl": ".", - "noEmit": true - }, - "include": ["**/*", "vite.config.mts", "../../shared/*.ts"], - "exclude": ["**/node_modules", "**/dist"] + "extends": "../../tsconfig.base.json", + "include": [], + "references": [{ "path": "tsconfig.src.json" }] } diff --git a/packages/graph-framework-utils/tsconfig.src.json b/packages/graph-framework-utils/tsconfig.src.json new file mode 100644 index 00000000..0306c498 --- /dev/null +++ b/packages/graph-framework-utils/tsconfig.src.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["src"], + "compilerOptions": { + "tsBuildInfoFile": ".tsbuildinfo/src.tsbuildinfo", + "rootDir": "src", + "outDir": "build/src" + } +} diff --git a/packages/graph-framework-utils/vite.config.mts b/packages/graph-framework-utils/vite.config.mts deleted file mode 100644 index cb41057d..00000000 --- a/packages/graph-framework-utils/vite.config.mts +++ /dev/null @@ -1,24 +0,0 @@ -import { defineConfig } from 'vite'; -import dts from 'vite-plugin-dts'; - -import { vitePluginExternalizeDependencies } from '../../shared/vitePluginExternalizeDependencies.js'; - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [ - dts({ tsconfigPath: './tsconfig.build.json', insertTypesEntry: true }), - vitePluginExternalizeDependencies(), - ], - build: { - lib: { - entry: { - index: './src/index.ts', - base58: './src/base58.ts', - }, - formats: ['es', 'cjs'], - fileName(format, entryName) { - return `${entryName}${format === 'es' ? '.mjs' : '.cjs'}`; - }, - }, - }, -}); diff --git a/packages/graph-framework-utils/vitest.config.mts b/packages/graph-framework-utils/vitest.config.mts new file mode 100644 index 00000000..8e730d50 --- /dev/null +++ b/packages/graph-framework-utils/vitest.config.mts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + }, +}); diff --git a/packages/graph-framework/LICENSE b/packages/graph-framework/LICENSE new file mode 100644 index 00000000..c75b86eb --- /dev/null +++ b/packages/graph-framework/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023-present The Contributors + +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. \ No newline at end of file diff --git a/packages/graph-framework/README.md b/packages/graph-framework/README.md new file mode 100644 index 00000000..d68f8032 --- /dev/null +++ b/packages/graph-framework/README.md @@ -0,0 +1,3 @@ +# Graph Framework + +Local-first framework for creating and interacting with spaces in the GRC-20 spec. Quickly scaffold and build local-first dapps on top of Spaces. \ No newline at end of file diff --git a/packages/graph-framework/package.json b/packages/graph-framework/package.json index b0534ebe..5262050e 100644 --- a/packages/graph-framework/package.json +++ b/packages/graph-framework/package.json @@ -1,11 +1,32 @@ { "name": "graph-framework", "version": "0.0.1", - "description": "", + "description": "Local-first framework for creating and interacting with spaces in the GRC-20 spec. Quickly scaffold and build local-first dapps on top of Spaces.", "type": "module", + "repository": { + "type": "git", + "url": "https://github.com/geobrowser/graph-framework.git", + "directory": "packages/graph-framework" + }, + "license": "MIT", + "publishConfig": { + "access": "public", + "directory": "dist", + "provenance": true + }, + "main": "./src/index.js", + "types": "./build/dts/index.d.ts", + "exports": { + ".": { + "types": "./build/dts/index.d.ts", + "default": "./src/index.js" + } + }, "scripts": { + "build": "pnpm build-esm", + "build-esm": "tsc -b tsconfig.build.json", "test": "vitest run --typecheck", - "ts:check": "tsc --noEmit", + "ts:check": "tsc -b tsconfig.json", "lint": "pnpm biome lint src/*", "lint:fix": "pnpm biome lint --write src/*", "format": "pnpm biome format src/*", @@ -13,11 +34,6 @@ "check": "pnpm biome check src/*", "check:fix": "pnpm biome check --write src/*" }, - "exports": { - ".": { - "default": "./src/index.js" - } - }, "peerDependencies": { "@automerge/automerge": "^2", "@automerge/automerge-repo": "^1", diff --git a/packages/graph-framework/tsconfig.build.json b/packages/graph-framework/tsconfig.build.json index 9f8c8762..26c62e9c 100644 --- a/packages/graph-framework/tsconfig.build.json +++ b/packages/graph-framework/tsconfig.build.json @@ -1,9 +1,16 @@ { - "extends": "../../tsconfig.options.json", + "extends": "./tsconfig.src.json", + "references": [ + { "path": "../graph-framework-utils/tsconfig.build.json" }, + { "path": "../graph-framework-identity/tsconfig.build.json" }, + { "path": "../graph-framework-schema/tsconfig.build.json" }, + { "path": "../graph-framework-space-events/tsconfig.build.json" } + ], "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" + "tsBuildInfoFile": ".tsbuildinfo/build.tsbuildinfo", + "outDir": "build/esm", + "declarationDir": "build/dts", + "stripInternal": true }, - "include": ["./src"], - "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.spec.ts", "dist"] + "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.test.tsx", "src/**/*.spec.ts", "src/**/*.spec.tsx"] } diff --git a/packages/graph-framework/tsconfig.json b/packages/graph-framework/tsconfig.json index 2ffc3dc0..73e6ebe3 100644 --- a/packages/graph-framework/tsconfig.json +++ b/packages/graph-framework/tsconfig.json @@ -1,10 +1,5 @@ { - "extends": "../../tsconfig.options.json", - "compilerOptions": { - "baseUrl": ".", - "rootDir": ".", - "noEmit": true - }, - "include": ["**/*", "vite.config.mts"], - "exclude": ["**/node_modules", "**/dist"] + "extends": "../../tsconfig.base.json", + "include": [], + "references": [{ "path": "tsconfig.src.json" }] } diff --git a/packages/graph-framework/tsconfig.src.json b/packages/graph-framework/tsconfig.src.json new file mode 100644 index 00000000..b1ce3941 --- /dev/null +++ b/packages/graph-framework/tsconfig.src.json @@ -0,0 +1,15 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["src"], + "references": [ + { "path": "../graph-framework-utils" }, + { "path": "../graph-framework-identity" }, + { "path": "../graph-framework-schema" }, + { "path": "../graph-framework-space-events" } + ], + "compilerOptions": { + "tsBuildInfoFile": ".tsbuildinfo/src.tsbuildinfo", + "rootDir": "src", + "outDir": "build/src" + } +} diff --git a/packages/graph-framework-schema/vite.config.js b/packages/graph-framework/vitest.config.mts similarity index 67% rename from packages/graph-framework-schema/vite.config.js rename to packages/graph-framework/vitest.config.mts index 0a85b727..71e0717b 100644 --- a/packages/graph-framework-schema/vite.config.js +++ b/packages/graph-framework/vitest.config.mts @@ -1,10 +1,10 @@ import react from '@vitejs/plugin-react'; -import { defineConfig } from 'vite'; +import { defineConfig } from 'vitest/config'; -// https://vitejs.dev/config/ export default defineConfig({ plugins: [react()], test: { + globals: true, environment: 'jsdom', }, }); diff --git a/patches/babel-plugin-annotate-pure-calls@0.4.0.patch b/patches/babel-plugin-annotate-pure-calls@0.4.0.patch new file mode 100644 index 00000000..bc6cecbe --- /dev/null +++ b/patches/babel-plugin-annotate-pure-calls@0.4.0.patch @@ -0,0 +1,13 @@ +diff --git a/lib/index.js b/lib/index.js +index 2182884e21874ebb37261e2375eec08ad956fc9a..ef5630199121c2830756e00c7cc48cf1078c8207 100644 +--- a/lib/index.js ++++ b/lib/index.js +@@ -78,7 +78,7 @@ const isInAssignmentContext = path => { + + parentPath = _ref.parentPath; + +- if (parentPath.isVariableDeclaration() || parentPath.isAssignmentExpression()) { ++ if (parentPath.isVariableDeclaration() || parentPath.isAssignmentExpression() || parentPath.isClassDeclaration()) { + return true; + } + } while (parentPath !== statement); \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3c38d792..4d945a71 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,13 +4,36 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +patchedDependencies: + babel-plugin-annotate-pure-calls@0.4.0: + hash: mzvz7esyzivrhd6bgnkvhtha4m + path: patches/babel-plugin-annotate-pure-calls@0.4.0.patch + importers: .: devDependencies: + '@babel/cli': + specifier: ^7.25.9 + version: 7.25.9(@babel/core@7.26.0) + '@babel/core': + specifier: ^7.26.0 + version: 7.26.0 + '@babel/plugin-transform-export-namespace-from': + specifier: ^7.25.9 + version: 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-commonjs': + specifier: ^7.25.9 + version: 7.25.9(@babel/core@7.26.0) '@biomejs/biome': specifier: 1.9.4 version: 1.9.4 + '@effect/build-utils': + specifier: ^0.7.8 + version: 0.7.8 + babel-plugin-annotate-pure-calls: + specifier: ^0.4.0 + version: 0.4.0(patch_hash=mzvz7esyzivrhd6bgnkvhtha4m)(@babel/core@7.26.0) escape-string-regexp: specifier: ^5.0.0 version: 5.0.0 @@ -73,7 +96,7 @@ importers: version: 6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) graph-framework: specifier: workspace:* - version: link:../../packages/graph-framework + version: link:../../packages/graph-framework/dist lucide-react: specifier: ^0.441.0 version: 0.441.0(react@18.3.1) @@ -158,7 +181,7 @@ importers: version: 5.0.1 graph-framework-space-events: specifier: workspace:* - version: link:../../packages/graph-framework-space-events + version: link:../../packages/graph-framework-space-events/dist ws: specifier: ^8.17.1 version: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -195,16 +218,16 @@ importers: dependencies: graph-framework-identity: specifier: workspace:* - version: link:../graph-framework-identity + version: link:../graph-framework-identity/dist graph-framework-schema: specifier: workspace:* - version: link:../graph-framework-schema + version: link:../graph-framework-schema/dist graph-framework-space-events: specifier: workspace:* - version: link:../graph-framework-space-events + version: link:../graph-framework-space-events/dist graph-framework-utils: specifier: workspace:* - version: link:../graph-framework-utils + version: link:../graph-framework-utils/dist react: specifier: ^18 version: 18.3.1 @@ -236,12 +259,13 @@ importers: jsdom: specifier: ^25.0.1 version: 25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + publishDirectory: dist packages/graph-framework-identity: dependencies: graph-framework-utils: specifier: workspace:* - version: link:../graph-framework-utils + version: link:../graph-framework-utils/dist uuid: specifier: ^11.0.2 version: 11.0.2 @@ -249,6 +273,7 @@ importers: effect: specifier: ^3.10.12 version: 3.10.12 + publishDirectory: dist packages/graph-framework-schema: dependencies: @@ -257,7 +282,7 @@ importers: version: 3.1.3 graph-framework-utils: specifier: workspace:* - version: link:../graph-framework-utils + version: link:../graph-framework-utils/dist react: specifier: ^18 version: 18.3.1 @@ -292,12 +317,13 @@ importers: jsdom: specifier: ^25.0.1 version: 25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + publishDirectory: dist packages/graph-framework-space-events: dependencies: graph-framework-utils: specifier: workspace:* - version: link:../graph-framework-utils + version: link:../graph-framework-utils/dist uuid: specifier: ^11.0.2 version: 11.0.2 @@ -305,6 +331,7 @@ importers: effect: specifier: ^3.10.12 version: 3.10.12 + publishDirectory: dist packages/graph-framework-utils: devDependencies: @@ -317,6 +344,7 @@ importers: vite-plugin-dts: specifier: ^4.3.0 version: 4.3.0(@types/node@22.9.0)(rollup@4.21.3)(typescript@5.6.3)(vite@5.4.10(@types/node@22.9.0)) + publishDirectory: dist packages: @@ -349,60 +377,37 @@ packages: '@automerge/automerge@2.2.8': resolution: {integrity: sha512-kP6Z9lIkNeIGe/jhF8SUQAgUMwVjtXCBL0eZEgQGCoWvPNTPcg8fnQco28XkYBrfkkuqiEUAbdHhJmSp0y79ug==} - '@babel/code-frame@7.24.7': - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + '@babel/cli@7.25.9': + resolution: {integrity: sha512-I+02IfrTiSanpxJBlZQYb18qCxB6c2Ih371cVpfgIrPQrjAYkf45XxomTJOG8JBWX5GY35/+TmhCMdJ4ZPkL8Q==} engines: {node: '>=6.9.0'} + hasBin: true + peerDependencies: + '@babel/core': ^7.0.0-0 '@babel/code-frame@7.26.2': resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.25.4': - resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} - engines: {node: '>=6.9.0'} - '@babel/compat-data@7.26.2': resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} engines: {node: '>=6.9.0'} - '@babel/core@7.25.2': - resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} - engines: {node: '>=6.9.0'} - '@babel/core@7.26.0': resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} engines: {node: '>=6.9.0'} - '@babel/generator@7.25.6': - resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} - engines: {node: '>=6.9.0'} - '@babel/generator@7.26.2': resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.2': - resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} - engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.9': resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.24.7': - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} - engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.25.9': resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.25.2': - resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-module-transforms@7.26.0': resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} @@ -417,12 +422,8 @@ packages: resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} engines: {node: '>=6.9.0'} - '@babel/helper-simple-access@7.24.7': - resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.24.8': - resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + '@babel/helper-simple-access@7.25.9': + resolution: {integrity: sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==} engines: {node: '>=6.9.0'} '@babel/helper-string-parser@7.25.7': @@ -433,10 +434,6 @@ packages: resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.25.7': resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} engines: {node: '>=6.9.0'} @@ -445,31 +442,14 @@ packages: resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.8': - resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.25.9': resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.25.6': - resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} - engines: {node: '>=6.9.0'} - '@babel/helpers@7.26.0': resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.7': - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.25.6': - resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.25.7': resolution: {integrity: sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==} engines: {node: '>=6.0.0'} @@ -492,6 +472,18 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-export-namespace-from@7.25.9': + resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.25.9': + resolution: {integrity: sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-self@7.24.7': resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} engines: {node: '>=6.9.0'} @@ -512,26 +504,14 @@ packages: resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} engines: {node: '>=6.9.0'} - '@babel/template@7.25.0': - resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} - engines: {node: '>=6.9.0'} - '@babel/template@7.25.9': resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.6': - resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} - engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.9': resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} engines: {node: '>=6.9.0'} - '@babel/types@7.25.6': - resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} - engines: {node: '>=6.9.0'} - '@babel/types@7.25.7': resolution: {integrity: sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==} engines: {node: '>=6.9.0'} @@ -630,6 +610,11 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} + '@effect/build-utils@0.7.8': + resolution: {integrity: sha512-ixcKsG6UnjIKqIbgCkTMJRcte+bW+p0ffHu/5QvDgVuzg3Nv0OUmgLOps49ExVE2VvoRddS4jVcjxlIzkPCKow==} + engines: {node: '>=16.17.1'} + hasBin: true + '@emotion/is-prop-valid@1.2.2': resolution: {integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==} @@ -1155,6 +1140,9 @@ packages: resolution: {integrity: sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg==} deprecated: Motion One for Vue is deprecated. Use Oku Motion instead https://oku-ui.com/motion + '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': + resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==} + '@noble/curves@1.2.0': resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} @@ -2271,10 +2259,6 @@ packages: resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -2343,6 +2327,11 @@ packages: babel-dead-code-elimination@1.0.6: resolution: {integrity: sha512-JxFi9qyRJpN0LjEbbjbN8g0ux71Qppn9R8Qe3k6QzHg2CaKsbUQtbn307LQGiDLGjV6JCtEFqfxzVig9MyDCHQ==} + babel-plugin-annotate-pure-calls@0.4.0: + resolution: {integrity: sha512-oi4M/PWUJOU9ZyRGoPTfPMqdyMp06jbJAomd3RcyYuzUtBOddv98BqLm96Lucpi2QFoQHkdGQt0ACvw7VzVEQA==} + peerDependencies: + '@babel/core': ^6.0.0-0 || 7.x + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -2498,10 +2487,6 @@ packages: resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} engines: {node: '>=12'} - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - chalk@3.0.0: resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} engines: {node: '>=8'} @@ -2552,16 +2537,10 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -2579,6 +2558,10 @@ packages: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} + commander@6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} + engines: {node: '>= 6'} + compare-versions@6.1.1: resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} @@ -2944,10 +2927,6 @@ packages: escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} @@ -3118,6 +3097,12 @@ packages: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} + fs-readdir-recursive@1.1.0: + resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -3160,6 +3145,10 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -3291,6 +3280,10 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -3449,11 +3442,6 @@ packages: canvas: optional: true - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - jsesc@3.0.2: resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} engines: {node: '>=6'} @@ -3567,6 +3555,10 @@ packages: magic-string@0.30.12: resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} + make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} @@ -3872,6 +3864,10 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -3936,6 +3932,10 @@ packages: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + pino-abstract-transport@0.5.0: resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==} @@ -4269,6 +4269,10 @@ packages: secure-password-utilities@0.2.1: resolution: {integrity: sha512-znUg8ae3cpuAaogiFBhP82gD2daVkSz4Qv/L7OWjB7wWvfbCdeqqQuJkm2/IvhKQPOV0T739YPR6rb7vs0uWaw==} + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -4337,6 +4341,10 @@ packages: resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} engines: {node: '>=10'} + slash@2.0.0: + resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} + engines: {node: '>=6'} + sonic-boom@2.8.0: resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==} @@ -5214,10 +5222,19 @@ snapshots: dependencies: uuid: 9.0.1 - '@babel/code-frame@7.24.7': + '@babel/cli@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.1.0 + '@babel/core': 7.26.0 + '@jridgewell/trace-mapping': 0.3.25 + commander: 6.2.1 + convert-source-map: 2.0.0 + fs-readdir-recursive: 1.1.0 + glob: 7.2.3 + make-dir: 2.1.0 + slash: 2.0.0 + optionalDependencies: + '@nicolo-ribaudo/chokidar-2': 2.1.8-no-fsevents.3 + chokidar: 3.6.0 '@babel/code-frame@7.26.2': dependencies: @@ -5225,30 +5242,8 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.25.4': {} - '@babel/compat-data@7.26.2': {} - '@babel/core@7.25.2': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helpers': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - convert-source-map: 2.0.0 - debug: 4.3.7(supports-color@5.5.0) - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/core@7.26.0': dependencies: '@ampproject/remapping': 2.3.0 @@ -5269,13 +5264,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.25.6': - dependencies: - '@babel/types': 7.25.6 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - '@babel/generator@7.26.2': dependencies: '@babel/parser': 7.26.2 @@ -5284,14 +5272,6 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.0.2 - '@babel/helper-compilation-targets@7.25.2': - dependencies: - '@babel/compat-data': 7.25.4 - '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.3 - lru-cache: 5.1.1 - semver: 6.3.1 - '@babel/helper-compilation-targets@7.25.9': dependencies: '@babel/compat-data': 7.26.2 @@ -5300,13 +5280,6 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-module-imports@7.24.7': - dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-imports@7.25.9': dependencies: '@babel/traverse': 7.25.9 @@ -5314,16 +5287,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.6 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -5337,50 +5300,28 @@ snapshots: '@babel/helper-plugin-utils@7.25.9': {} - '@babel/helper-simple-access@7.24.7': + '@babel/helper-simple-access@7.25.9': dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.24.8': {} - '@babel/helper-string-parser@7.25.7': {} '@babel/helper-string-parser@7.25.9': {} - '@babel/helper-validator-identifier@7.24.7': {} - '@babel/helper-validator-identifier@7.25.7': {} '@babel/helper-validator-identifier@7.25.9': {} - '@babel/helper-validator-option@7.24.8': {} - '@babel/helper-validator-option@7.25.9': {} - '@babel/helpers@7.25.6': - dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 - '@babel/helpers@7.26.0': dependencies: '@babel/template': 7.25.9 '@babel/types': 7.26.0 - '@babel/highlight@7.24.7': - dependencies: - '@babel/helper-validator-identifier': 7.25.9 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.1.0 - - '@babel/parser@7.25.6': - dependencies: - '@babel/types': 7.25.6 - '@babel/parser@7.25.7': dependencies: '@babel/types': 7.25.7 @@ -5399,14 +5340,28 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-modules-commonjs@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-simple-access': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.24.8 '@babel/runtime@7.25.7': @@ -5417,30 +5372,12 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.25.0': - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 - '@babel/template@7.25.9': dependencies: '@babel/code-frame': 7.26.2 '@babel/parser': 7.26.2 '@babel/types': 7.26.0 - '@babel/traverse@7.25.6': - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 - debug: 4.3.7(supports-color@5.5.0) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - '@babel/traverse@7.25.9': dependencies: '@babel/code-frame': 7.26.2 @@ -5453,12 +5390,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/types@7.25.6': - dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 - '@babel/types@7.25.7': dependencies: '@babel/helper-string-parser': 7.25.7 @@ -5536,6 +5467,8 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 + '@effect/build-utils@0.7.8': {} + '@emotion/is-prop-valid@1.2.2': dependencies: '@emotion/memoize': 0.8.1 @@ -6158,6 +6091,9 @@ snapshots: '@motionone/dom': 10.18.0 tslib: 2.8.1 + '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': + optional: true + '@noble/curves@1.2.0': dependencies: '@noble/hashes': 1.3.2 @@ -7065,9 +7001,9 @@ snapshots: '@vitejs/plugin-react@4.3.3(vite@5.4.10(@types/node@22.9.0))': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) + '@babel/core': 7.26.0 + '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 vite: 5.4.10(@types/node@22.9.0) @@ -7680,10 +7616,6 @@ snapshots: ansi-regex@6.1.0: {} - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 @@ -7760,6 +7692,10 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-annotate-pure-calls@0.4.0(patch_hash=mzvz7esyzivrhd6bgnkvhtha4m)(@babel/core@7.26.0): + dependencies: + '@babel/core': 7.26.0 + balanced-match@1.0.2: {} base-x@3.0.10: @@ -7965,12 +7901,6 @@ snapshots: loupe: 3.1.2 pathval: 2.0.0 - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - chalk@3.0.0: dependencies: ansi-styles: 4.3.0 @@ -8030,16 +7960,10 @@ snapshots: clsx@2.1.1: {} - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - color-convert@2.0.1: dependencies: color-name: 1.1.4 - color-name@1.1.3: {} - color-name@1.1.4: {} colorette@2.0.20: {} @@ -8052,6 +7976,8 @@ snapshots: commander@4.1.1: {} + commander@6.2.1: {} + compare-versions@6.1.1: {} computeds@0.0.1: {} @@ -8433,8 +8359,6 @@ snapshots: escape-html@1.0.3: {} - escape-string-regexp@1.0.5: {} - escape-string-regexp@5.0.0: {} esniff@2.0.1: @@ -8690,6 +8614,10 @@ snapshots: jsonfile: 4.0.0 universalify: 0.1.2 + fs-readdir-recursive@1.1.0: {} + + fs.realpath@1.0.0: {} + fsevents@2.3.3: optional: true @@ -8732,6 +8660,15 @@ snapshots: package-json-from-dist: 1.0.0 path-scurry: 1.11.1 + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + globals@11.12.0: {} globals@15.12.0: {} @@ -8865,6 +8802,11 @@ snapshots: indent-string@4.0.0: {} + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + inherits@2.0.4: {} ipaddr.js@1.9.1: {} @@ -9019,8 +8961,6 @@ snapshots: - supports-color - utf-8-validate - jsesc@2.5.2: {} - jsesc@3.0.2: {} json-schema-traverse@1.0.0: {} @@ -9139,6 +9079,11 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + make-dir@2.1.0: + dependencies: + pify: 4.0.1 + semver: 5.7.2 + make-error@1.3.6: {} md5.js@1.3.5: @@ -9433,6 +9378,8 @@ snapshots: path-exists@4.0.0: {} + path-is-absolute@1.0.1: {} + path-key@3.1.1: {} path-key@4.0.0: {} @@ -9486,6 +9433,8 @@ snapshots: pify@2.3.0: {} + pify@4.0.1: {} + pino-abstract-transport@0.5.0: dependencies: duplexify: 4.1.3 @@ -9880,6 +9829,8 @@ snapshots: secure-password-utilities@0.2.1: {} + semver@5.7.2: {} + semver@6.3.1: {} semver@7.5.4: @@ -9959,6 +9910,8 @@ snapshots: dependencies: semver: 7.6.3 + slash@2.0.0: {} + sonic-boom@2.8.0: dependencies: atomic-sleep: 1.0.0 diff --git a/shared/vitePluginExternalizeDependencies.ts b/shared/vitePluginExternalizeDependencies.ts deleted file mode 100644 index d6d05463..00000000 --- a/shared/vitePluginExternalizeDependencies.ts +++ /dev/null @@ -1,52 +0,0 @@ -import fs from 'node:fs/promises'; -import path from 'node:path'; -import escapeStringRegexp from 'escape-string-regexp'; -import type { Plugin } from 'vite'; - -/** - * Vite plugin to automatically externalize all `dependencies` and `peerDependencies` of the package. - * Note that `devDependencies` are not externalized, since they shouldn't even be present in a consumer's dependency tree. - * If any bit of a dev dependency makes it into the final bundle, it will be inlined (but it really shouldn't happen). - */ -export function vitePluginExternalizeDependencies(): Plugin { - return { - name: 'vite-plugin-externalize-dependencies', - async config(config, { command }) { - // Only run for the `build` command - if (command !== 'build') return; - - const packageJsonPath = path.join(config.root ?? process.cwd(), 'package.json'); - try { - await fs.access(packageJsonPath); - } catch { - console.error(`package.json not found at ${packageJsonPath}`); - return; - } - - let packageJson: { - dependencies?: Record; - peerDependencies?: Record; - } = {}; - try { - packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf-8')); - } catch (error) { - console.error(`Failed to read or parse package.json at ${packageJsonPath}`, error); - return; - } - - config.build = config.build ?? {}; - config.build.rollupOptions = { - ...config.build.rollupOptions, - external: [ - ...Object.keys(packageJson.dependencies ?? {}), - ...Object.keys(packageJson.peerDependencies ?? {}), - ].map( - // Match the exact dependency name and any path under it (except CSS files) - (dependency) => new RegExp(`^${escapeStringRegexp(dependency)}(/(?!.*\\.css$).*)?$`), - ), - }; - - return config; - }, - }; -} diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 00000000..d7523569 --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,54 @@ +{ + "compilerOptions": { + "strict": true, + "strictNullChecks": true, + "exactOptionalPropertyTypes": true, + "moduleDetection": "force", + "composite": true, + "downlevelIteration": true, + "resolveJsonModule": true, + "esModuleInterop": false, + "declaration": true, + "skipLibCheck": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "target": "ES2022", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "types": [], + "isolatedModules": true, + "sourceMap": true, + "declarationMap": true, + "noImplicitReturns": false, + "noUnusedLocals": true, + "noUnusedParameters": false, + "noFallthroughCasesInSwitch": true, + "noEmitOnError": false, + "noErrorTruncation": false, + "allowJs": false, + "checkJs": false, + "forceConsistentCasingInFileNames": true, + "noImplicitAny": true, + "noImplicitThis": true, + "noUncheckedIndexedAccess": false, + "baseUrl": ".", + "incremental": true, + "removeComments": false, + + "jsx": "react-jsx", + + "paths": { + "graph-framework": ["./packages/graph-framework/src/index.js"], + "graph-framework/*": ["./packages/graph-framework/src/*.js"], + "graph-framework-utils": ["./packages/graph-framework-utils/src/index.js"], + "graph-framework-utils/*": ["./packages/graph-framework-utils/src/*.js"], + "graph-framework-space-events": ["./packages/graph-framework-space-events/src/index.js"], + "graph-framework-space-events/*": ["./packages/graph-framework-space-events/src/*.js"], + "graph-framework-schema": ["./packages/graph-framework-schema/src/index.js"], + "graph-framework-schema/*": ["./packages/graph-framework-schema/src/*.js"], + "graph-framework-identity": ["./packages/graph-framework-identity/src/index.js"], + "graph-framework-identity/*": ["./packages/graph-framework-identity/src/*.js"] + } + } +} diff --git a/tsconfig.build.json b/tsconfig.build.json new file mode 100644 index 00000000..161677a0 --- /dev/null +++ b/tsconfig.build.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.base.json", + "include": [], + "references": [ + { "path": "packages/graph-framework/tsconfig.build.json" }, + { "path": "packages/graph-framework-identity/tsconfig.build.json" }, + { "path": "packages/graph-framework-schema/tsconfig.build.json" }, + { "path": "packages/graph-framework-space-events/tsconfig.build.json" }, + { "path": "packages/graph-framework-utils/tsconfig.build.json" } + ] +} diff --git a/tsconfig.json b/tsconfig.json index 16a79720..532fa447 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,10 +1,14 @@ { - "extends": "./tsconfig.options.json", - "compilerOptions": { - "baseUrl": ".", - "noEmit": true, - "noUncheckedIndexedAccess": true - }, - "include": ["**/*"], - "exclude": ["**/node_modules", "**/packages"] + "extends": "./tsconfig.base.json", + "include": [], + "exclude": ["**/node_modules"], + "references": [ + { "path": "packages/graph-framework" }, + { "path": "packages/graph-framework-identity" }, + { "path": "packages/graph-framework-schema" }, + { "path": "packages/graph-framework-space-events" }, + { "path": "packages/graph-framework-utils" }, + { "path": "apps/server" }, + { "path": "apps/events" } + ] } diff --git a/tsconfig.options.json b/tsconfig.options.json deleted file mode 100644 index 9ff799eb..00000000 --- a/tsconfig.options.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "compilerOptions": { - "strict": true, - "strictNullChecks": true, - "strictFunctionTypes": true, - "exactOptionalPropertyTypes": true, - "skipLibCheck": true, - "noUncheckedIndexedAccess": true, - - "esModuleInterop": true, - "allowJs": true, - "isolatedModules": true, - - "sourceMap": true, - "declarationMap": true, - "declaration": true, - "incremental": true, - "composite": true, - - "forceConsistentCasingInFileNames": true, - "noFallthroughCasesInSwitch": true, - "noErrorTruncation": true, - - "target": "ESNext", - "module": "NodeNext", - "moduleResolution": "NodeNext", - - "jsx": "react-jsx" - } -} diff --git a/vitest.workspace.mts b/vitest.workspace.mts index 82a3216f..badd0bde 100644 --- a/vitest.workspace.mts +++ b/vitest.workspace.mts @@ -1,10 +1,10 @@ -import { defineWorkspace } from "vitest/config"; +import { defineWorkspace } from 'vitest/config'; export default defineWorkspace([ - "./packages/graph-framework-utils/vite.config.mts", - "./packages/graph-framework-space-events/vite.config.js", - "./packages/graph-framework-schema/vite.config.js", - "./packages/graph-framework-identity/vite.config.js", - "./packages/graph-framework/vite.config.js", - "./apps/events/vite.config.ts", + './packages/graph-framework-utils/vitest.config.mts', + './packages/graph-framework-space-events/vitest.config.mts', + './packages/graph-framework-schema/vitest.config.mts', + './packages/graph-framework-identity/vitest.config.mts', + './packages/graph-framework/vitest.config.mts', + './apps/events/vite.config.ts', ]);