diff --git a/justfile b/justfile index 3591aa5..5c01ca4 100644 --- a/justfile +++ b/justfile @@ -83,7 +83,7 @@ _browser_client_build BASE="": @test: (_tsc "--build") build # Build the [browser app, npm lib] for production. Called automatically by "test" and "publish" -build BASE="": _ensure_npm_modules (_tsc "--build") (_browser_client_build BASE) _npm_build +build BASE="": _ensure_npm_modules (_tsc "--build") (_browser_client_build BASE) # Deletes: [ .certs, dist ] @clean: diff --git a/package-lock.json b/package-lock.json index be92975..93b6ff4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,6 @@ "@chakra-ui/react": "^2.3.4", "@emotion/react": "^11.10.4", "@emotion/styled": "^11.10.4", - "@mediapipe/hands": "^0.4.1646424915", "@metapages/hash-query": "^0.4.5", "@metapages/metaframe-hook": "^1.0.11", "@metapages/metapage": "^0.13.5", @@ -25,14 +24,12 @@ "framer-motion": "^7.3.6", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-router-dom": "^6.4.1", "scatter-gl": "^0.0.13" }, "devDependencies": { "@types/node": "^12.20.10", "@types/react": "^18.0.21", "@types/react-dom": "^18.0.6", - "@types/react-router-dom": "^5.3.3", "@vitejs/plugin-react": "^2.1.0", "typescript": "^4.8.3", "vite": "^3.1.3" @@ -1733,7 +1730,8 @@ "node_modules/@mediapipe/hands": { "version": "0.4.1646424915", "resolved": "https://registry.npmjs.org/@mediapipe/hands/-/hands-0.4.1646424915.tgz", - "integrity": "sha512-R1VM3DRCKTA49nVvkprInYUXx8cKisi86y6/9clvYA0vApmLqTjIHQFibJDHwSdy4Rykn2CjWywQAWw5+mGw8w==" + "integrity": "sha512-R1VM3DRCKTA49nVvkprInYUXx8cKisi86y6/9clvYA0vApmLqTjIHQFibJDHwSdy4Rykn2CjWywQAWw5+mGw8w==", + "peer": true }, "node_modules/@metapages/hash-query": { "version": "0.4.5", @@ -1837,14 +1835,6 @@ "url": "https://opencollective.com/popperjs" } }, - "node_modules/@remix-run/router": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.0.1.tgz", - "integrity": "sha512-eBV5rvW4dRFOU1eajN7FmYxjAIVz/mRHgUE9En9mBn6m3mulK3WTR5C3iQhL9MZ14rWAq+xOlEaCkDiW0/heOg==", - "engines": { - "node": ">=14" - } - }, "node_modules/@tensorflow-models/hand-pose-detection": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tensorflow-models/hand-pose-detection/-/hand-pose-detection-2.0.0.tgz", @@ -1936,12 +1926,6 @@ "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-0.0.34.tgz", "integrity": "sha512-QSb9ojDincskc+uKMI0KXp8e1NALFINCrMlp8VGKGcTSxeEyRTTKyjWw75NYrCZHUsVEEEpr1tYHpbtaC++/sQ==" }, - "node_modules/@types/history": { - "version": "4.7.11", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", - "dev": true - }, "node_modules/@types/lodash": { "version": "4.14.185", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.185.tgz", @@ -2002,27 +1986,6 @@ "@types/react": "*" } }, - "node_modules/@types/react-router": { - "version": "5.1.19", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.19.tgz", - "integrity": "sha512-Fv/5kb2STAEMT3wHzdKQK2z8xKq38EDIGVrutYLmQVVLe+4orDFquU52hQrULnEHinMKv9FSA6lf9+uNT1ITtA==", - "dev": true, - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*" - } - }, - "node_modules/@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", - "dev": true, - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, "node_modules/@types/scheduler": { "version": "0.16.2", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", @@ -3305,36 +3268,6 @@ } } }, - "node_modules/react-router": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.4.1.tgz", - "integrity": "sha512-OJASKp5AykDWFewgWUim1vlLr7yfD4vO/h+bSgcP/ix8Md+LMHuAjovA74MQfsfhQJGGN1nHRhwS5qQQbbBt3A==", - "dependencies": { - "@remix-run/router": "1.0.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/react-router-dom": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.4.1.tgz", - "integrity": "sha512-MY7NJCrGNVJtGp8ODMOBHu20UaIkmwD2V3YsAOUQoCXFk7Ppdwf55RdcGyrSj+ycSL9Uiwrb3gTLYSnzcRoXww==", - "dependencies": { - "@remix-run/router": "1.0.1", - "react-router": "6.4.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, "node_modules/react-style-singleton": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", @@ -4950,7 +4883,8 @@ "@mediapipe/hands": { "version": "0.4.1646424915", "resolved": "https://registry.npmjs.org/@mediapipe/hands/-/hands-0.4.1646424915.tgz", - "integrity": "sha512-R1VM3DRCKTA49nVvkprInYUXx8cKisi86y6/9clvYA0vApmLqTjIHQFibJDHwSdy4Rykn2CjWywQAWw5+mGw8w==" + "integrity": "sha512-R1VM3DRCKTA49nVvkprInYUXx8cKisi86y6/9clvYA0vApmLqTjIHQFibJDHwSdy4Rykn2CjWywQAWw5+mGw8w==", + "peer": true }, "@metapages/hash-query": { "version": "0.4.5", @@ -5043,11 +4977,6 @@ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" }, - "@remix-run/router": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.0.1.tgz", - "integrity": "sha512-eBV5rvW4dRFOU1eajN7FmYxjAIVz/mRHgUE9En9mBn6m3mulK3WTR5C3iQhL9MZ14rWAq+xOlEaCkDiW0/heOg==" - }, "@tensorflow-models/hand-pose-detection": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tensorflow-models/hand-pose-detection/-/hand-pose-detection-2.0.0.tgz", @@ -5113,12 +5042,6 @@ "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-0.0.34.tgz", "integrity": "sha512-QSb9ojDincskc+uKMI0KXp8e1NALFINCrMlp8VGKGcTSxeEyRTTKyjWw75NYrCZHUsVEEEpr1tYHpbtaC++/sQ==" }, - "@types/history": { - "version": "4.7.11", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", - "dev": true - }, "@types/lodash": { "version": "4.14.185", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.185.tgz", @@ -5179,27 +5102,6 @@ "@types/react": "*" } }, - "@types/react-router": { - "version": "5.1.19", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.19.tgz", - "integrity": "sha512-Fv/5kb2STAEMT3wHzdKQK2z8xKq38EDIGVrutYLmQVVLe+4orDFquU52hQrULnEHinMKv9FSA6lf9+uNT1ITtA==", - "dev": true, - "requires": { - "@types/history": "^4.7.11", - "@types/react": "*" - } - }, - "@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", - "dev": true, - "requires": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, "@types/scheduler": { "version": "0.16.2", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", @@ -6052,23 +5954,6 @@ "tslib": "^2.0.0" } }, - "react-router": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.4.1.tgz", - "integrity": "sha512-OJASKp5AykDWFewgWUim1vlLr7yfD4vO/h+bSgcP/ix8Md+LMHuAjovA74MQfsfhQJGGN1nHRhwS5qQQbbBt3A==", - "requires": { - "@remix-run/router": "1.0.1" - } - }, - "react-router-dom": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.4.1.tgz", - "integrity": "sha512-MY7NJCrGNVJtGp8ODMOBHu20UaIkmwD2V3YsAOUQoCXFk7Ppdwf55RdcGyrSj+ycSL9Uiwrb3gTLYSnzcRoXww==", - "requires": { - "@remix-run/router": "1.0.1", - "react-router": "6.4.1" - } - }, "react-style-singleton": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", diff --git a/package.json b/package.json index 68a71c8..88c22a7 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,6 @@ "@chakra-ui/react": "^2.3.4", "@emotion/react": "^11.10.4", "@emotion/styled": "^11.10.4", - "@mediapipe/hands": "^0.4.1646424915", "@metapages/hash-query": "^0.4.5", "@metapages/metaframe-hook": "^1.0.11", "@metapages/metapage": "^0.13.5", @@ -37,14 +36,12 @@ "framer-motion": "^7.3.6", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-router-dom": "^6.4.1", "scatter-gl": "^0.0.13" }, "devDependencies": { "@types/node": "^12.20.10", "@types/react": "^18.0.21", "@types/react-dom": "^18.0.6", - "@types/react-router-dom": "^5.3.3", "@vitejs/plugin-react": "^2.1.0", "typescript": "^4.8.3", "vite": "^3.1.3" diff --git a/src/components/HandDetectionStream.tsx b/src/components/HandDetectionStream.tsx index a31f1c1..55f415e 100644 --- a/src/components/HandDetectionStream.tsx +++ b/src/components/HandDetectionStream.tsx @@ -1,6 +1,5 @@ import { useEffect, useState } from "react"; import { Box } from "@chakra-ui/react"; -import * as mpHands from "@mediapipe/hands"; import { MediaPipeHandsMediaPipeModelConfig } from "@tensorflow-models/hand-pose-detection"; import * as handPoseDetection from "@tensorflow-models/hand-pose-detection"; import * as tfjsWasm from "@tensorflow/tfjs-backend-wasm"; @@ -62,7 +61,7 @@ export const HandDetectionStream: React.FC = () => { // @ts-ignore runtime: "mediapipe", // or 'tfjs' // solutionPath: "https://cdn.jsdelivr.net/npm/@mediapipe/hands", - solutionPath: `https://cdn.jsdelivr.net/npm/@mediapipe/hands@${mpHands.VERSION}`, + solutionPath: `https://cdn.jsdelivr.net/npm/@mediapipe/hands@0.4.1646424915`, modelType: "full", }; diff --git a/src/lib/index.ts b/src/lib/index.ts new file mode 100644 index 0000000..a3a80c9 --- /dev/null +++ b/src/lib/index.ts @@ -0,0 +1,3 @@ +// This is the root file of the npm module +export type SomeMadeUpTYpe = {foo:string}; +export const EXAMPLE_ROOT_NPM_EXPORT = "replace me with the actual value";