vivasvan100 commited on
Commit
22eddc2
·
1 Parent(s): db988f6
Dockerfile ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # syntax=docker/dockerfile:1.4
2
+
3
+ # Adapted from https://github.com/vercel/next.js/blob/e60a1e747c3f521fc24dfd9ee2989e13afeb0a9b/examples/with-docker/Dockerfile
4
+ # For more information, see https://nextjs.org/docs/pages/building-your-application/deploying#docker-image
5
+
6
+ FROM node:18 AS base
7
+
8
+ # Install dependencies only when needed
9
+ FROM base AS deps
10
+ WORKDIR /app
11
+
12
+ # Install dependencies based on the preferred package manager
13
+ COPY --link package.json yarn.lock* package-lock.json* pnpm-lock.yaml* ./
14
+ RUN \
15
+ if [ -f yarn.lock ]; then yarn --frozen-lockfile; \
16
+ elif [ -f package-lock.json ]; then npm ci; \
17
+ elif [ -f pnpm-lock.yaml ]; then yarn global add pnpm && pnpm i --frozen-lockfile; \
18
+ else echo "Lockfile not found." && exit 1; \
19
+ fi
20
+
21
+
22
+ # Rebuild the source code only when needed
23
+ FROM base AS builder
24
+ WORKDIR /app
25
+ COPY --from=deps --link /app/node_modules ./node_modules
26
+ COPY --link . .
27
+
28
+ # Next.js collects completely anonymous telemetry data about general usage.
29
+ # Learn more here: https://nextjs.org/telemetry
30
+ # Uncomment the following line in case you want to disable telemetry during the build.
31
+ # ENV NEXT_TELEMETRY_DISABLED 1
32
+
33
+ RUN npm run build
34
+
35
+ # If using yarn comment out above and use below instead
36
+ # RUN yarn build
37
+
38
+ # Production image, copy all the files and run next
39
+ FROM base AS runner
40
+ WORKDIR /app
41
+
42
+ ENV NODE_ENV production
43
+ # Uncomment the following line in case you want to disable telemetry during runtime.
44
+ # ENV NEXT_TELEMETRY_DISABLED 1
45
+
46
+ RUN \
47
+ addgroup --system --gid 1001 nodejs; \
48
+ adduser --system --uid 1001 nextjs
49
+
50
+ COPY --from=builder --link /app/public ./public
51
+
52
+ # Automatically leverage output traces to reduce image size
53
+ # https://nextjs.org/docs/advanced-features/output-file-tracing
54
+ COPY --from=builder --link --chown=1001:1001 /app/.next/standalone ./
55
+ COPY --from=builder --link --chown=1001:1001 /app/.next/static ./.next/static
56
+
57
+ USER nextjs
58
+
59
+ EXPOSE 3000
60
+
61
+ ENV PORT 3000
62
+ ENV HOSTNAME localhost
63
+
64
+ # Allow the running process to write model files to the cache folder.
65
+ # NOTE: In practice, you would probably want to pre-download the model files to avoid having to download them on-the-fly.
66
+ RUN mkdir -p /app/node_modules/@xenova/.cache/
67
+ RUN chmod 777 -R /app/node_modules/@xenova/
68
+
69
+ CMD ["node", "server.js"]
next.config.js CHANGED
@@ -1,4 +1,13 @@
1
  /** @type {import('next').NextConfig} */
2
- const nextConfig = {}
 
 
 
3
 
4
- module.exports = nextConfig
 
 
 
 
 
 
 
1
  /** @type {import('next').NextConfig} */
2
+ const nextConfig = {
3
+ // (Optional) Export as a standalone site
4
+ // See https://nextjs.org/docs/pages/api-reference/next-config-js/output#automatically-copying-traced-files
5
+ output: "standalone", // Feel free to modify/remove this option
6
 
7
+ // Indicate that these packages should not be bundled by webpack
8
+ experimental: {
9
+ serverComponentsExternalPackages: ["sharp", "onnxruntime-node"],
10
+ },
11
+ };
12
+
13
+ module.exports = nextConfig;
package-lock.json CHANGED
@@ -8,6 +8,7 @@
8
  "name": "hf_test_app",
9
  "version": "0.1.0",
10
  "dependencies": {
 
11
  "next": "13.5.4",
12
  "react": "^18",
13
  "react-dom": "^18"
@@ -374,6 +375,60 @@
374
  "node": ">= 8"
375
  }
376
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
377
  "node_modules/@rushstack/eslint-patch": {
378
  "version": "1.5.1",
379
  "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz",
@@ -394,6 +449,16 @@
394
  "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
395
  "dev": true
396
  },
 
 
 
 
 
 
 
 
 
 
397
  "node_modules/@typescript-eslint/parser": {
398
  "version": "6.7.4",
399
  "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.4.tgz",
@@ -496,6 +561,18 @@
496
  "url": "https://opencollective.com/typescript-eslint"
497
  }
498
  },
 
 
 
 
 
 
 
 
 
 
 
 
499
  "node_modules/acorn": {
500
  "version": "8.10.0",
501
  "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
@@ -809,12 +886,36 @@
809
  "dequal": "^2.0.3"
810
  }
811
  },
 
 
 
 
 
812
  "node_modules/balanced-match": {
813
  "version": "1.0.2",
814
  "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
815
  "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
816
  "dev": true
817
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
818
  "node_modules/binary-extensions": {
819
  "version": "2.2.0",
820
  "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
@@ -824,6 +925,16 @@
824
  "node": ">=8"
825
  }
826
  },
 
 
 
 
 
 
 
 
 
 
827
  "node_modules/brace-expansion": {
828
  "version": "1.1.11",
829
  "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -878,6 +989,29 @@
878
  "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
879
  }
880
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
881
  "node_modules/busboy": {
882
  "version": "1.6.0",
883
  "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
@@ -994,16 +1128,32 @@
994
  "node": ">= 6"
995
  }
996
  },
 
 
 
 
 
997
  "node_modules/client-only": {
998
  "version": "0.0.1",
999
  "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
1000
  "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
1001
  },
 
 
 
 
 
 
 
 
 
 
 
 
1002
  "node_modules/color-convert": {
1003
  "version": "2.0.1",
1004
  "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1005
  "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1006
- "dev": true,
1007
  "dependencies": {
1008
  "color-name": "~1.1.4"
1009
  },
@@ -1014,8 +1164,16 @@
1014
  "node_modules/color-name": {
1015
  "version": "1.1.4",
1016
  "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1017
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1018
- "dev": true
 
 
 
 
 
 
 
 
1019
  },
1020
  "node_modules/commander": {
1021
  "version": "4.1.1",
@@ -1081,6 +1239,28 @@
1081
  }
1082
  }
1083
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1084
  "node_modules/deep-is": {
1085
  "version": "0.1.4",
1086
  "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@@ -1127,6 +1307,14 @@
1127
  "node": ">=6"
1128
  }
1129
  },
 
 
 
 
 
 
 
 
1130
  "node_modules/didyoumean": {
1131
  "version": "1.2.2",
1132
  "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
@@ -1175,6 +1363,14 @@
1175
  "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
1176
  "dev": true
1177
  },
 
 
 
 
 
 
 
 
1178
  "node_modules/enhanced-resolve": {
1179
  "version": "5.15.0",
1180
  "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz",
@@ -1742,12 +1938,25 @@
1742
  "node": ">=0.10.0"
1743
  }
1744
  },
 
 
 
 
 
 
 
 
1745
  "node_modules/fast-deep-equal": {
1746
  "version": "3.1.3",
1747
  "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
1748
  "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
1749
  "dev": true
1750
  },
 
 
 
 
 
1751
  "node_modules/fast-glob": {
1752
  "version": "3.3.1",
1753
  "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
@@ -1851,6 +2060,11 @@
1851
  "node": ">=12.0.0"
1852
  }
1853
  },
 
 
 
 
 
1854
  "node_modules/flatted": {
1855
  "version": "3.2.9",
1856
  "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
@@ -1879,6 +2093,11 @@
1879
  "url": "https://github.com/sponsors/rawify"
1880
  }
1881
  },
 
 
 
 
 
1882
  "node_modules/fs.realpath": {
1883
  "version": "1.0.0",
1884
  "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -1975,6 +2194,11 @@
1975
  "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
1976
  }
1977
  },
 
 
 
 
 
1978
  "node_modules/glob": {
1979
  "version": "7.1.7",
1980
  "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
@@ -2085,6 +2309,11 @@
2085
  "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
2086
  "dev": true
2087
  },
 
 
 
 
 
2088
  "node_modules/has": {
2089
  "version": "1.0.4",
2090
  "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz",
@@ -2163,6 +2392,25 @@
2163
  "url": "https://github.com/sponsors/ljharb"
2164
  }
2165
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2166
  "node_modules/ignore": {
2167
  "version": "5.2.4",
2168
  "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
@@ -2210,8 +2458,12 @@
2210
  "node_modules/inherits": {
2211
  "version": "2.0.4",
2212
  "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
2213
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
2214
- "dev": true
 
 
 
 
2215
  },
2216
  "node_modules/internal-slot": {
2217
  "version": "1.0.5",
@@ -2241,6 +2493,11 @@
2241
  "url": "https://github.com/sponsors/ljharb"
2242
  }
2243
  },
 
 
 
 
 
2244
  "node_modules/is-async-function": {
2245
  "version": "2.0.0",
2246
  "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
@@ -2722,6 +2979,11 @@
2722
  "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
2723
  "dev": true
2724
  },
 
 
 
 
 
2725
  "node_modules/loose-envify": {
2726
  "version": "1.4.0",
2727
  "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -2737,7 +2999,6 @@
2737
  "version": "6.0.0",
2738
  "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
2739
  "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
2740
- "dev": true,
2741
  "dependencies": {
2742
  "yallist": "^4.0.0"
2743
  },
@@ -2767,6 +3028,17 @@
2767
  "node": ">=8.6"
2768
  }
2769
  },
 
 
 
 
 
 
 
 
 
 
 
2770
  "node_modules/minimatch": {
2771
  "version": "3.1.2",
2772
  "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -2783,11 +3055,15 @@
2783
  "version": "1.2.8",
2784
  "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
2785
  "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
2786
- "dev": true,
2787
  "funding": {
2788
  "url": "https://github.com/sponsors/ljharb"
2789
  }
2790
  },
 
 
 
 
 
2791
  "node_modules/ms": {
2792
  "version": "2.1.2",
2793
  "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -2822,6 +3098,11 @@
2822
  "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
2823
  }
2824
  },
 
 
 
 
 
2825
  "node_modules/natural-compare": {
2826
  "version": "1.4.0",
2827
  "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
@@ -2873,6 +3154,22 @@
2873
  }
2874
  }
2875
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2876
  "node_modules/node-releases": {
2877
  "version": "2.0.13",
2878
  "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz",
@@ -3028,11 +3325,50 @@
3028
  "version": "1.4.0",
3029
  "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
3030
  "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
3031
- "dev": true,
3032
  "dependencies": {
3033
  "wrappy": "1"
3034
  }
3035
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3036
  "node_modules/optionator": {
3037
  "version": "0.9.3",
3038
  "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
@@ -3169,6 +3505,11 @@
3169
  "node": ">= 6"
3170
  }
3171
  },
 
 
 
 
 
3172
  "node_modules/postcss": {
3173
  "version": "8.4.31",
3174
  "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
@@ -3299,6 +3640,57 @@
3299
  "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
3300
  "dev": true
3301
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3302
  "node_modules/prelude-ls": {
3303
  "version": "1.2.1",
3304
  "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -3319,6 +3711,40 @@
3319
  "react-is": "^16.13.1"
3320
  }
3321
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3322
  "node_modules/punycode": {
3323
  "version": "2.3.0",
3324
  "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
@@ -3348,6 +3774,33 @@
3348
  }
3349
  ]
3350
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3351
  "node_modules/react": {
3352
  "version": "18.2.0",
3353
  "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
@@ -3386,6 +3839,19 @@
3386
  "pify": "^2.3.0"
3387
  }
3388
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
3389
  "node_modules/readdirp": {
3390
  "version": "3.6.0",
3391
  "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
@@ -3542,6 +4008,25 @@
3542
  "url": "https://github.com/sponsors/ljharb"
3543
  }
3544
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3545
  "node_modules/safe-regex-test": {
3546
  "version": "1.0.0",
3547
  "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
@@ -3568,7 +4053,6 @@
3568
  "version": "7.5.4",
3569
  "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
3570
  "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
3571
- "dev": true,
3572
  "dependencies": {
3573
  "lru-cache": "^6.0.0"
3574
  },
@@ -3593,6 +4077,28 @@
3593
  "node": ">= 0.4"
3594
  }
3595
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3596
  "node_modules/shebang-command": {
3597
  "version": "2.0.0",
3598
  "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -3628,6 +4134,57 @@
3628
  "url": "https://github.com/sponsors/ljharb"
3629
  }
3630
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3631
  "node_modules/slash": {
3632
  "version": "3.0.0",
3633
  "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
@@ -3653,6 +4210,23 @@
3653
  "node": ">=10.0.0"
3654
  }
3655
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3656
  "node_modules/string.prototype.matchall": {
3657
  "version": "4.0.10",
3658
  "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz",
@@ -3885,6 +4459,26 @@
3885
  "node": ">=6"
3886
  }
3887
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3888
  "node_modules/text-table": {
3889
  "version": "0.2.0",
3890
  "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
@@ -3959,6 +4553,17 @@
3959
  "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
3960
  "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
3961
  },
 
 
 
 
 
 
 
 
 
 
 
3962
  "node_modules/type-check": {
3963
  "version": "0.4.0",
3964
  "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -4119,8 +4724,7 @@
4119
  "node_modules/util-deprecate": {
4120
  "version": "1.0.2",
4121
  "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
4122
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
4123
- "dev": true
4124
  },
4125
  "node_modules/watchpack": {
4126
  "version": "2.4.0",
@@ -4228,14 +4832,12 @@
4228
  "node_modules/wrappy": {
4229
  "version": "1.0.2",
4230
  "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
4231
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
4232
- "dev": true
4233
  },
4234
  "node_modules/yallist": {
4235
  "version": "4.0.0",
4236
  "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
4237
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
4238
- "dev": true
4239
  },
4240
  "node_modules/yaml": {
4241
  "version": "2.3.2",
 
8
  "name": "hf_test_app",
9
  "version": "0.1.0",
10
  "dependencies": {
11
+ "@xenova/transformers": "^2.6.2",
12
  "next": "13.5.4",
13
  "react": "^18",
14
  "react-dom": "^18"
 
375
  "node": ">= 8"
376
  }
377
  },
378
+ "node_modules/@protobufjs/aspromise": {
379
+ "version": "1.1.2",
380
+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
381
+ "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ=="
382
+ },
383
+ "node_modules/@protobufjs/base64": {
384
+ "version": "1.1.2",
385
+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
386
+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
387
+ },
388
+ "node_modules/@protobufjs/codegen": {
389
+ "version": "2.0.4",
390
+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
391
+ "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
392
+ },
393
+ "node_modules/@protobufjs/eventemitter": {
394
+ "version": "1.1.0",
395
+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
396
+ "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q=="
397
+ },
398
+ "node_modules/@protobufjs/fetch": {
399
+ "version": "1.1.0",
400
+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
401
+ "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
402
+ "dependencies": {
403
+ "@protobufjs/aspromise": "^1.1.1",
404
+ "@protobufjs/inquire": "^1.1.0"
405
+ }
406
+ },
407
+ "node_modules/@protobufjs/float": {
408
+ "version": "1.0.2",
409
+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
410
+ "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ=="
411
+ },
412
+ "node_modules/@protobufjs/inquire": {
413
+ "version": "1.1.0",
414
+ "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
415
+ "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q=="
416
+ },
417
+ "node_modules/@protobufjs/path": {
418
+ "version": "1.1.2",
419
+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
420
+ "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA=="
421
+ },
422
+ "node_modules/@protobufjs/pool": {
423
+ "version": "1.1.0",
424
+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
425
+ "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw=="
426
+ },
427
+ "node_modules/@protobufjs/utf8": {
428
+ "version": "1.1.0",
429
+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
430
+ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
431
+ },
432
  "node_modules/@rushstack/eslint-patch": {
433
  "version": "1.5.1",
434
  "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz",
 
449
  "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
450
  "dev": true
451
  },
452
+ "node_modules/@types/long": {
453
+ "version": "4.0.2",
454
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz",
455
+ "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA=="
456
+ },
457
+ "node_modules/@types/node": {
458
+ "version": "20.8.2",
459
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.2.tgz",
460
+ "integrity": "sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w=="
461
+ },
462
  "node_modules/@typescript-eslint/parser": {
463
  "version": "6.7.4",
464
  "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.4.tgz",
 
561
  "url": "https://opencollective.com/typescript-eslint"
562
  }
563
  },
564
+ "node_modules/@xenova/transformers": {
565
+ "version": "2.6.2",
566
+ "resolved": "https://registry.npmjs.org/@xenova/transformers/-/transformers-2.6.2.tgz",
567
+ "integrity": "sha512-GmyAIPN4eBzPHQqduSeKAYS3SpEogRFhky7KLciAPq9Ba2NoP7UVKSTBlKJz/chsO4IQ5et6TKHPpLKNlR1SGQ==",
568
+ "dependencies": {
569
+ "onnxruntime-web": "1.14.0",
570
+ "sharp": "^0.32.0"
571
+ },
572
+ "optionalDependencies": {
573
+ "onnxruntime-node": "1.14.0"
574
+ }
575
+ },
576
  "node_modules/acorn": {
577
  "version": "8.10.0",
578
  "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
 
886
  "dequal": "^2.0.3"
887
  }
888
  },
889
+ "node_modules/b4a": {
890
+ "version": "1.6.4",
891
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz",
892
+ "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw=="
893
+ },
894
  "node_modules/balanced-match": {
895
  "version": "1.0.2",
896
  "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
897
  "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
898
  "dev": true
899
  },
900
+ "node_modules/base64-js": {
901
+ "version": "1.5.1",
902
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
903
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
904
+ "funding": [
905
+ {
906
+ "type": "github",
907
+ "url": "https://github.com/sponsors/feross"
908
+ },
909
+ {
910
+ "type": "patreon",
911
+ "url": "https://www.patreon.com/feross"
912
+ },
913
+ {
914
+ "type": "consulting",
915
+ "url": "https://feross.org/support"
916
+ }
917
+ ]
918
+ },
919
  "node_modules/binary-extensions": {
920
  "version": "2.2.0",
921
  "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
 
925
  "node": ">=8"
926
  }
927
  },
928
+ "node_modules/bl": {
929
+ "version": "4.1.0",
930
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
931
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
932
+ "dependencies": {
933
+ "buffer": "^5.5.0",
934
+ "inherits": "^2.0.4",
935
+ "readable-stream": "^3.4.0"
936
+ }
937
+ },
938
  "node_modules/brace-expansion": {
939
  "version": "1.1.11",
940
  "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
 
989
  "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
990
  }
991
  },
992
+ "node_modules/buffer": {
993
+ "version": "5.7.1",
994
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
995
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
996
+ "funding": [
997
+ {
998
+ "type": "github",
999
+ "url": "https://github.com/sponsors/feross"
1000
+ },
1001
+ {
1002
+ "type": "patreon",
1003
+ "url": "https://www.patreon.com/feross"
1004
+ },
1005
+ {
1006
+ "type": "consulting",
1007
+ "url": "https://feross.org/support"
1008
+ }
1009
+ ],
1010
+ "dependencies": {
1011
+ "base64-js": "^1.3.1",
1012
+ "ieee754": "^1.1.13"
1013
+ }
1014
+ },
1015
  "node_modules/busboy": {
1016
  "version": "1.6.0",
1017
  "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
 
1128
  "node": ">= 6"
1129
  }
1130
  },
1131
+ "node_modules/chownr": {
1132
+ "version": "1.1.4",
1133
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
1134
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
1135
+ },
1136
  "node_modules/client-only": {
1137
  "version": "0.0.1",
1138
  "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
1139
  "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
1140
  },
1141
+ "node_modules/color": {
1142
+ "version": "4.2.3",
1143
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
1144
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
1145
+ "dependencies": {
1146
+ "color-convert": "^2.0.1",
1147
+ "color-string": "^1.9.0"
1148
+ },
1149
+ "engines": {
1150
+ "node": ">=12.5.0"
1151
+ }
1152
+ },
1153
  "node_modules/color-convert": {
1154
  "version": "2.0.1",
1155
  "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1156
  "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
 
1157
  "dependencies": {
1158
  "color-name": "~1.1.4"
1159
  },
 
1164
  "node_modules/color-name": {
1165
  "version": "1.1.4",
1166
  "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1167
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
1168
+ },
1169
+ "node_modules/color-string": {
1170
+ "version": "1.9.1",
1171
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
1172
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
1173
+ "dependencies": {
1174
+ "color-name": "^1.0.0",
1175
+ "simple-swizzle": "^0.2.2"
1176
+ }
1177
  },
1178
  "node_modules/commander": {
1179
  "version": "4.1.1",
 
1239
  }
1240
  }
1241
  },
1242
+ "node_modules/decompress-response": {
1243
+ "version": "6.0.0",
1244
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
1245
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
1246
+ "dependencies": {
1247
+ "mimic-response": "^3.1.0"
1248
+ },
1249
+ "engines": {
1250
+ "node": ">=10"
1251
+ },
1252
+ "funding": {
1253
+ "url": "https://github.com/sponsors/sindresorhus"
1254
+ }
1255
+ },
1256
+ "node_modules/deep-extend": {
1257
+ "version": "0.6.0",
1258
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
1259
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
1260
+ "engines": {
1261
+ "node": ">=4.0.0"
1262
+ }
1263
+ },
1264
  "node_modules/deep-is": {
1265
  "version": "0.1.4",
1266
  "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
 
1307
  "node": ">=6"
1308
  }
1309
  },
1310
+ "node_modules/detect-libc": {
1311
+ "version": "2.0.2",
1312
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
1313
+ "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
1314
+ "engines": {
1315
+ "node": ">=8"
1316
+ }
1317
+ },
1318
  "node_modules/didyoumean": {
1319
  "version": "1.2.2",
1320
  "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
 
1363
  "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
1364
  "dev": true
1365
  },
1366
+ "node_modules/end-of-stream": {
1367
+ "version": "1.4.4",
1368
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
1369
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
1370
+ "dependencies": {
1371
+ "once": "^1.4.0"
1372
+ }
1373
+ },
1374
  "node_modules/enhanced-resolve": {
1375
  "version": "5.15.0",
1376
  "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz",
 
1938
  "node": ">=0.10.0"
1939
  }
1940
  },
1941
+ "node_modules/expand-template": {
1942
+ "version": "2.0.3",
1943
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
1944
+ "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
1945
+ "engines": {
1946
+ "node": ">=6"
1947
+ }
1948
+ },
1949
  "node_modules/fast-deep-equal": {
1950
  "version": "3.1.3",
1951
  "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
1952
  "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
1953
  "dev": true
1954
  },
1955
+ "node_modules/fast-fifo": {
1956
+ "version": "1.3.2",
1957
+ "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
1958
+ "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ=="
1959
+ },
1960
  "node_modules/fast-glob": {
1961
  "version": "3.3.1",
1962
  "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
 
2060
  "node": ">=12.0.0"
2061
  }
2062
  },
2063
+ "node_modules/flatbuffers": {
2064
+ "version": "1.12.0",
2065
+ "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-1.12.0.tgz",
2066
+ "integrity": "sha512-c7CZADjRcl6j0PlvFy0ZqXQ67qSEZfrVPynmnL+2zPc+NtMvrF8Y0QceMo7QqnSPc7+uWjUIAbvCQ5WIKlMVdQ=="
2067
+ },
2068
  "node_modules/flatted": {
2069
  "version": "3.2.9",
2070
  "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
 
2093
  "url": "https://github.com/sponsors/rawify"
2094
  }
2095
  },
2096
+ "node_modules/fs-constants": {
2097
+ "version": "1.0.0",
2098
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
2099
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
2100
+ },
2101
  "node_modules/fs.realpath": {
2102
  "version": "1.0.0",
2103
  "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
 
2194
  "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
2195
  }
2196
  },
2197
+ "node_modules/github-from-package": {
2198
+ "version": "0.0.0",
2199
+ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
2200
+ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="
2201
+ },
2202
  "node_modules/glob": {
2203
  "version": "7.1.7",
2204
  "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
 
2309
  "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
2310
  "dev": true
2311
  },
2312
+ "node_modules/guid-typescript": {
2313
+ "version": "1.0.9",
2314
+ "resolved": "https://registry.npmjs.org/guid-typescript/-/guid-typescript-1.0.9.tgz",
2315
+ "integrity": "sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ=="
2316
+ },
2317
  "node_modules/has": {
2318
  "version": "1.0.4",
2319
  "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz",
 
2392
  "url": "https://github.com/sponsors/ljharb"
2393
  }
2394
  },
2395
+ "node_modules/ieee754": {
2396
+ "version": "1.2.1",
2397
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
2398
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
2399
+ "funding": [
2400
+ {
2401
+ "type": "github",
2402
+ "url": "https://github.com/sponsors/feross"
2403
+ },
2404
+ {
2405
+ "type": "patreon",
2406
+ "url": "https://www.patreon.com/feross"
2407
+ },
2408
+ {
2409
+ "type": "consulting",
2410
+ "url": "https://feross.org/support"
2411
+ }
2412
+ ]
2413
+ },
2414
  "node_modules/ignore": {
2415
  "version": "5.2.4",
2416
  "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
 
2458
  "node_modules/inherits": {
2459
  "version": "2.0.4",
2460
  "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
2461
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
2462
+ },
2463
+ "node_modules/ini": {
2464
+ "version": "1.3.8",
2465
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
2466
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
2467
  },
2468
  "node_modules/internal-slot": {
2469
  "version": "1.0.5",
 
2493
  "url": "https://github.com/sponsors/ljharb"
2494
  }
2495
  },
2496
+ "node_modules/is-arrayish": {
2497
+ "version": "0.3.2",
2498
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
2499
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
2500
+ },
2501
  "node_modules/is-async-function": {
2502
  "version": "2.0.0",
2503
  "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
 
2979
  "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
2980
  "dev": true
2981
  },
2982
+ "node_modules/long": {
2983
+ "version": "4.0.0",
2984
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
2985
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
2986
+ },
2987
  "node_modules/loose-envify": {
2988
  "version": "1.4.0",
2989
  "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
 
2999
  "version": "6.0.0",
3000
  "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
3001
  "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
 
3002
  "dependencies": {
3003
  "yallist": "^4.0.0"
3004
  },
 
3028
  "node": ">=8.6"
3029
  }
3030
  },
3031
+ "node_modules/mimic-response": {
3032
+ "version": "3.1.0",
3033
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
3034
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
3035
+ "engines": {
3036
+ "node": ">=10"
3037
+ },
3038
+ "funding": {
3039
+ "url": "https://github.com/sponsors/sindresorhus"
3040
+ }
3041
+ },
3042
  "node_modules/minimatch": {
3043
  "version": "3.1.2",
3044
  "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
 
3055
  "version": "1.2.8",
3056
  "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
3057
  "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
 
3058
  "funding": {
3059
  "url": "https://github.com/sponsors/ljharb"
3060
  }
3061
  },
3062
+ "node_modules/mkdirp-classic": {
3063
+ "version": "0.5.3",
3064
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
3065
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
3066
+ },
3067
  "node_modules/ms": {
3068
  "version": "2.1.2",
3069
  "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
 
3098
  "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
3099
  }
3100
  },
3101
+ "node_modules/napi-build-utils": {
3102
+ "version": "1.0.2",
3103
+ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
3104
+ "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
3105
+ },
3106
  "node_modules/natural-compare": {
3107
  "version": "1.4.0",
3108
  "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
 
3154
  }
3155
  }
3156
  },
3157
+ "node_modules/node-abi": {
3158
+ "version": "3.47.0",
3159
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.47.0.tgz",
3160
+ "integrity": "sha512-2s6B2CWZM//kPgwnuI0KrYwNjfdByE25zvAaEpq9IH4zcNsarH8Ihu/UuX6XMPEogDAxkuUFeZn60pXNHAqn3A==",
3161
+ "dependencies": {
3162
+ "semver": "^7.3.5"
3163
+ },
3164
+ "engines": {
3165
+ "node": ">=10"
3166
+ }
3167
+ },
3168
+ "node_modules/node-addon-api": {
3169
+ "version": "6.1.0",
3170
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
3171
+ "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="
3172
+ },
3173
  "node_modules/node-releases": {
3174
  "version": "2.0.13",
3175
  "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz",
 
3325
  "version": "1.4.0",
3326
  "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
3327
  "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
 
3328
  "dependencies": {
3329
  "wrappy": "1"
3330
  }
3331
  },
3332
+ "node_modules/onnx-proto": {
3333
+ "version": "4.0.4",
3334
+ "resolved": "https://registry.npmjs.org/onnx-proto/-/onnx-proto-4.0.4.tgz",
3335
+ "integrity": "sha512-aldMOB3HRoo6q/phyB6QRQxSt895HNNw82BNyZ2CMh4bjeKv7g/c+VpAFtJuEMVfYLMbRx61hbuqnKceLeDcDA==",
3336
+ "dependencies": {
3337
+ "protobufjs": "^6.8.8"
3338
+ }
3339
+ },
3340
+ "node_modules/onnxruntime-common": {
3341
+ "version": "1.14.0",
3342
+ "resolved": "https://registry.npmjs.org/onnxruntime-common/-/onnxruntime-common-1.14.0.tgz",
3343
+ "integrity": "sha512-3LJpegM2iMNRX2wUmtYfeX/ytfOzNwAWKSq1HbRrKc9+uqG/FsEA0bbKZl1btQeZaXhC26l44NWpNUeXPII7Ew=="
3344
+ },
3345
+ "node_modules/onnxruntime-node": {
3346
+ "version": "1.14.0",
3347
+ "resolved": "https://registry.npmjs.org/onnxruntime-node/-/onnxruntime-node-1.14.0.tgz",
3348
+ "integrity": "sha512-5ba7TWomIV/9b6NH/1x/8QEeowsb+jBEvFzU6z0T4mNsFwdPqXeFUM7uxC6QeSRkEbWu3qEB0VMjrvzN/0S9+w==",
3349
+ "optional": true,
3350
+ "os": [
3351
+ "win32",
3352
+ "darwin",
3353
+ "linux"
3354
+ ],
3355
+ "dependencies": {
3356
+ "onnxruntime-common": "~1.14.0"
3357
+ }
3358
+ },
3359
+ "node_modules/onnxruntime-web": {
3360
+ "version": "1.14.0",
3361
+ "resolved": "https://registry.npmjs.org/onnxruntime-web/-/onnxruntime-web-1.14.0.tgz",
3362
+ "integrity": "sha512-Kcqf43UMfW8mCydVGcX9OMXI2VN17c0p6XvR7IPSZzBf/6lteBzXHvcEVWDPmCKuGombl997HgLqj91F11DzXw==",
3363
+ "dependencies": {
3364
+ "flatbuffers": "^1.12.0",
3365
+ "guid-typescript": "^1.0.9",
3366
+ "long": "^4.0.0",
3367
+ "onnx-proto": "^4.0.4",
3368
+ "onnxruntime-common": "~1.14.0",
3369
+ "platform": "^1.3.6"
3370
+ }
3371
+ },
3372
  "node_modules/optionator": {
3373
  "version": "0.9.3",
3374
  "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
 
3505
  "node": ">= 6"
3506
  }
3507
  },
3508
+ "node_modules/platform": {
3509
+ "version": "1.3.6",
3510
+ "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz",
3511
+ "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg=="
3512
+ },
3513
  "node_modules/postcss": {
3514
  "version": "8.4.31",
3515
  "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
 
3640
  "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
3641
  "dev": true
3642
  },
3643
+ "node_modules/prebuild-install": {
3644
+ "version": "7.1.1",
3645
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz",
3646
+ "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==",
3647
+ "dependencies": {
3648
+ "detect-libc": "^2.0.0",
3649
+ "expand-template": "^2.0.3",
3650
+ "github-from-package": "0.0.0",
3651
+ "minimist": "^1.2.3",
3652
+ "mkdirp-classic": "^0.5.3",
3653
+ "napi-build-utils": "^1.0.1",
3654
+ "node-abi": "^3.3.0",
3655
+ "pump": "^3.0.0",
3656
+ "rc": "^1.2.7",
3657
+ "simple-get": "^4.0.0",
3658
+ "tar-fs": "^2.0.0",
3659
+ "tunnel-agent": "^0.6.0"
3660
+ },
3661
+ "bin": {
3662
+ "prebuild-install": "bin.js"
3663
+ },
3664
+ "engines": {
3665
+ "node": ">=10"
3666
+ }
3667
+ },
3668
+ "node_modules/prebuild-install/node_modules/tar-fs": {
3669
+ "version": "2.1.1",
3670
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
3671
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
3672
+ "dependencies": {
3673
+ "chownr": "^1.1.1",
3674
+ "mkdirp-classic": "^0.5.2",
3675
+ "pump": "^3.0.0",
3676
+ "tar-stream": "^2.1.4"
3677
+ }
3678
+ },
3679
+ "node_modules/prebuild-install/node_modules/tar-stream": {
3680
+ "version": "2.2.0",
3681
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
3682
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
3683
+ "dependencies": {
3684
+ "bl": "^4.0.3",
3685
+ "end-of-stream": "^1.4.1",
3686
+ "fs-constants": "^1.0.0",
3687
+ "inherits": "^2.0.3",
3688
+ "readable-stream": "^3.1.1"
3689
+ },
3690
+ "engines": {
3691
+ "node": ">=6"
3692
+ }
3693
+ },
3694
  "node_modules/prelude-ls": {
3695
  "version": "1.2.1",
3696
  "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
 
3711
  "react-is": "^16.13.1"
3712
  }
3713
  },
3714
+ "node_modules/protobufjs": {
3715
+ "version": "6.11.4",
3716
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz",
3717
+ "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==",
3718
+ "hasInstallScript": true,
3719
+ "dependencies": {
3720
+ "@protobufjs/aspromise": "^1.1.2",
3721
+ "@protobufjs/base64": "^1.1.2",
3722
+ "@protobufjs/codegen": "^2.0.4",
3723
+ "@protobufjs/eventemitter": "^1.1.0",
3724
+ "@protobufjs/fetch": "^1.1.0",
3725
+ "@protobufjs/float": "^1.0.2",
3726
+ "@protobufjs/inquire": "^1.1.0",
3727
+ "@protobufjs/path": "^1.1.2",
3728
+ "@protobufjs/pool": "^1.1.0",
3729
+ "@protobufjs/utf8": "^1.1.0",
3730
+ "@types/long": "^4.0.1",
3731
+ "@types/node": ">=13.7.0",
3732
+ "long": "^4.0.0"
3733
+ },
3734
+ "bin": {
3735
+ "pbjs": "bin/pbjs",
3736
+ "pbts": "bin/pbts"
3737
+ }
3738
+ },
3739
+ "node_modules/pump": {
3740
+ "version": "3.0.0",
3741
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
3742
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
3743
+ "dependencies": {
3744
+ "end-of-stream": "^1.1.0",
3745
+ "once": "^1.3.1"
3746
+ }
3747
+ },
3748
  "node_modules/punycode": {
3749
  "version": "2.3.0",
3750
  "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
 
3774
  }
3775
  ]
3776
  },
3777
+ "node_modules/queue-tick": {
3778
+ "version": "1.0.1",
3779
+ "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
3780
+ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag=="
3781
+ },
3782
+ "node_modules/rc": {
3783
+ "version": "1.2.8",
3784
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
3785
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
3786
+ "dependencies": {
3787
+ "deep-extend": "^0.6.0",
3788
+ "ini": "~1.3.0",
3789
+ "minimist": "^1.2.0",
3790
+ "strip-json-comments": "~2.0.1"
3791
+ },
3792
+ "bin": {
3793
+ "rc": "cli.js"
3794
+ }
3795
+ },
3796
+ "node_modules/rc/node_modules/strip-json-comments": {
3797
+ "version": "2.0.1",
3798
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
3799
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
3800
+ "engines": {
3801
+ "node": ">=0.10.0"
3802
+ }
3803
+ },
3804
  "node_modules/react": {
3805
  "version": "18.2.0",
3806
  "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
 
3839
  "pify": "^2.3.0"
3840
  }
3841
  },
3842
+ "node_modules/readable-stream": {
3843
+ "version": "3.6.2",
3844
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
3845
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
3846
+ "dependencies": {
3847
+ "inherits": "^2.0.3",
3848
+ "string_decoder": "^1.1.1",
3849
+ "util-deprecate": "^1.0.1"
3850
+ },
3851
+ "engines": {
3852
+ "node": ">= 6"
3853
+ }
3854
+ },
3855
  "node_modules/readdirp": {
3856
  "version": "3.6.0",
3857
  "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
 
4008
  "url": "https://github.com/sponsors/ljharb"
4009
  }
4010
  },
4011
+ "node_modules/safe-buffer": {
4012
+ "version": "5.2.1",
4013
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
4014
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
4015
+ "funding": [
4016
+ {
4017
+ "type": "github",
4018
+ "url": "https://github.com/sponsors/feross"
4019
+ },
4020
+ {
4021
+ "type": "patreon",
4022
+ "url": "https://www.patreon.com/feross"
4023
+ },
4024
+ {
4025
+ "type": "consulting",
4026
+ "url": "https://feross.org/support"
4027
+ }
4028
+ ]
4029
+ },
4030
  "node_modules/safe-regex-test": {
4031
  "version": "1.0.0",
4032
  "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
 
4053
  "version": "7.5.4",
4054
  "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
4055
  "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
 
4056
  "dependencies": {
4057
  "lru-cache": "^6.0.0"
4058
  },
 
4077
  "node": ">= 0.4"
4078
  }
4079
  },
4080
+ "node_modules/sharp": {
4081
+ "version": "0.32.6",
4082
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz",
4083
+ "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==",
4084
+ "hasInstallScript": true,
4085
+ "dependencies": {
4086
+ "color": "^4.2.3",
4087
+ "detect-libc": "^2.0.2",
4088
+ "node-addon-api": "^6.1.0",
4089
+ "prebuild-install": "^7.1.1",
4090
+ "semver": "^7.5.4",
4091
+ "simple-get": "^4.0.1",
4092
+ "tar-fs": "^3.0.4",
4093
+ "tunnel-agent": "^0.6.0"
4094
+ },
4095
+ "engines": {
4096
+ "node": ">=14.15.0"
4097
+ },
4098
+ "funding": {
4099
+ "url": "https://opencollective.com/libvips"
4100
+ }
4101
+ },
4102
  "node_modules/shebang-command": {
4103
  "version": "2.0.0",
4104
  "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
 
4134
  "url": "https://github.com/sponsors/ljharb"
4135
  }
4136
  },
4137
+ "node_modules/simple-concat": {
4138
+ "version": "1.0.1",
4139
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
4140
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
4141
+ "funding": [
4142
+ {
4143
+ "type": "github",
4144
+ "url": "https://github.com/sponsors/feross"
4145
+ },
4146
+ {
4147
+ "type": "patreon",
4148
+ "url": "https://www.patreon.com/feross"
4149
+ },
4150
+ {
4151
+ "type": "consulting",
4152
+ "url": "https://feross.org/support"
4153
+ }
4154
+ ]
4155
+ },
4156
+ "node_modules/simple-get": {
4157
+ "version": "4.0.1",
4158
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
4159
+ "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
4160
+ "funding": [
4161
+ {
4162
+ "type": "github",
4163
+ "url": "https://github.com/sponsors/feross"
4164
+ },
4165
+ {
4166
+ "type": "patreon",
4167
+ "url": "https://www.patreon.com/feross"
4168
+ },
4169
+ {
4170
+ "type": "consulting",
4171
+ "url": "https://feross.org/support"
4172
+ }
4173
+ ],
4174
+ "dependencies": {
4175
+ "decompress-response": "^6.0.0",
4176
+ "once": "^1.3.1",
4177
+ "simple-concat": "^1.0.0"
4178
+ }
4179
+ },
4180
+ "node_modules/simple-swizzle": {
4181
+ "version": "0.2.2",
4182
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
4183
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
4184
+ "dependencies": {
4185
+ "is-arrayish": "^0.3.1"
4186
+ }
4187
+ },
4188
  "node_modules/slash": {
4189
  "version": "3.0.0",
4190
  "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
 
4210
  "node": ">=10.0.0"
4211
  }
4212
  },
4213
+ "node_modules/streamx": {
4214
+ "version": "2.15.1",
4215
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.1.tgz",
4216
+ "integrity": "sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==",
4217
+ "dependencies": {
4218
+ "fast-fifo": "^1.1.0",
4219
+ "queue-tick": "^1.0.1"
4220
+ }
4221
+ },
4222
+ "node_modules/string_decoder": {
4223
+ "version": "1.3.0",
4224
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
4225
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
4226
+ "dependencies": {
4227
+ "safe-buffer": "~5.2.0"
4228
+ }
4229
+ },
4230
  "node_modules/string.prototype.matchall": {
4231
  "version": "4.0.10",
4232
  "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz",
 
4459
  "node": ">=6"
4460
  }
4461
  },
4462
+ "node_modules/tar-fs": {
4463
+ "version": "3.0.4",
4464
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz",
4465
+ "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==",
4466
+ "dependencies": {
4467
+ "mkdirp-classic": "^0.5.2",
4468
+ "pump": "^3.0.0",
4469
+ "tar-stream": "^3.1.5"
4470
+ }
4471
+ },
4472
+ "node_modules/tar-stream": {
4473
+ "version": "3.1.6",
4474
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz",
4475
+ "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==",
4476
+ "dependencies": {
4477
+ "b4a": "^1.6.4",
4478
+ "fast-fifo": "^1.2.0",
4479
+ "streamx": "^2.15.0"
4480
+ }
4481
+ },
4482
  "node_modules/text-table": {
4483
  "version": "0.2.0",
4484
  "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
 
4553
  "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
4554
  "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
4555
  },
4556
+ "node_modules/tunnel-agent": {
4557
+ "version": "0.6.0",
4558
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
4559
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
4560
+ "dependencies": {
4561
+ "safe-buffer": "^5.0.1"
4562
+ },
4563
+ "engines": {
4564
+ "node": "*"
4565
+ }
4566
+ },
4567
  "node_modules/type-check": {
4568
  "version": "0.4.0",
4569
  "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
 
4724
  "node_modules/util-deprecate": {
4725
  "version": "1.0.2",
4726
  "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
4727
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
 
4728
  },
4729
  "node_modules/watchpack": {
4730
  "version": "2.4.0",
 
4832
  "node_modules/wrappy": {
4833
  "version": "1.0.2",
4834
  "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
4835
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
 
4836
  },
4837
  "node_modules/yallist": {
4838
  "version": "4.0.0",
4839
  "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
4840
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
 
4841
  },
4842
  "node_modules/yaml": {
4843
  "version": "2.3.2",
package.json CHANGED
@@ -9,15 +9,16 @@
9
  "lint": "next lint"
10
  },
11
  "dependencies": {
 
 
12
  "react": "^18",
13
- "react-dom": "^18",
14
- "next": "13.5.4"
15
  },
16
  "devDependencies": {
17
  "autoprefixer": "^10",
18
- "postcss": "^8",
19
- "tailwindcss": "^3",
20
  "eslint": "^8",
21
- "eslint-config-next": "13.5.4"
 
 
22
  }
23
  }
 
9
  "lint": "next lint"
10
  },
11
  "dependencies": {
12
+ "@xenova/transformers": "^2.6.2",
13
+ "next": "13.5.4",
14
  "react": "^18",
15
+ "react-dom": "^18"
 
16
  },
17
  "devDependencies": {
18
  "autoprefixer": "^10",
 
 
19
  "eslint": "^8",
20
+ "eslint-config-next": "13.5.4",
21
+ "postcss": "^8",
22
+ "tailwindcss": "^3"
23
  }
24
  }
src/app/classify/pipeline.js ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { pipeline } from "@xenova/transformers";
2
+
3
+ // Use the Singleton pattern to enable lazy construction of the pipeline.
4
+ // NOTE: We wrap the class in a function to prevent code duplication (see below).
5
+ const P = () => class PipelineSingleton {
6
+ static task = 'text-classification';
7
+ static model = 'Xenova/distilbert-base-uncased-finetuned-sst-2-english';
8
+ static instance = null;
9
+
10
+ static async getInstance(progress_callback = null) {
11
+ if (this.instance === null) {
12
+ this.instance = pipeline(this.task, this.model, { progress_callback });
13
+ }
14
+ return this.instance;
15
+ }
16
+ }
17
+
18
+ let PipelineSingleton;
19
+ if (process.env.NODE_ENV !== 'production') {
20
+ // When running in development mode, attach the pipeline to the
21
+ // global object so that it's preserved between hot reloads.
22
+ // For more information, see https://vercel.com/guides/nextjs-prisma-postgres
23
+ if (!global.PipelineSingleton) {
24
+ global.PipelineSingleton = P();
25
+ }
26
+ PipelineSingleton = global.PipelineSingleton;
27
+ } else {
28
+ PipelineSingleton = P();
29
+ }
30
+ export default PipelineSingleton;
src/app/classify/route.js ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { NextResponse } from 'next/server'
2
+ import PipelineSingleton from './pipeline.js';
3
+
4
+ export async function GET(request) {
5
+ const text = request.nextUrl.searchParams.get('text');
6
+ if (!text) {
7
+ return NextResponse.json({
8
+ error: 'Missing text parameter',
9
+ }, { status: 400 });
10
+ }
11
+ // Get the classification pipeline. When called for the first time,
12
+ // this will load the pipeline and cache it for future use.
13
+ const classifier = await PipelineSingleton.getInstance();
14
+
15
+ // Actually perform the classification
16
+ const result = await classifier(text);
17
+
18
+ return NextResponse.json(result);
19
+ }
src/app/page.js CHANGED
@@ -1,113 +1,45 @@
1
- import Image from 'next/image'
 
 
2
 
3
  export default function Home() {
4
- return (
5
- <main className="flex min-h-screen flex-col items-center justify-between p-24">
6
- <div className="z-10 max-w-5xl w-full items-center justify-between font-mono text-sm lg:flex">
7
- <p className="fixed left-0 top-0 flex w-full justify-center border-b border-gray-300 bg-gradient-to-b from-zinc-200 pb-6 pt-8 backdrop-blur-2xl dark:border-neutral-800 dark:bg-zinc-800/30 dark:from-inherit lg:static lg:w-auto lg:rounded-xl lg:border lg:bg-gray-200 lg:p-4 lg:dark:bg-zinc-800/30">
8
- Get started by editing&nbsp;
9
- <code className="font-mono font-bold">src/app/page.js</code>
10
- </p>
11
- <div className="fixed bottom-0 left-0 flex h-48 w-full items-end justify-center bg-gradient-to-t from-white via-white dark:from-black dark:via-black lg:static lg:h-auto lg:w-auto lg:bg-none">
12
- <a
13
- className="pointer-events-none flex place-items-center gap-2 p-8 lg:pointer-events-auto lg:p-0"
14
- href="https://vercel.com?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"
15
- target="_blank"
16
- rel="noopener noreferrer"
17
- >
18
- By{' '}
19
- <Image
20
- src="/vercel.svg"
21
- alt="Vercel Logo"
22
- className="dark:invert"
23
- width={100}
24
- height={24}
25
- priority
26
- />
27
- </a>
28
- </div>
29
- </div>
30
 
31
- <div className="relative flex place-items-center before:absolute before:h-[300px] before:w-[480px] before:-translate-x-1/2 before:rounded-full before:bg-gradient-radial before:from-white before:to-transparent before:blur-2xl before:content-[''] after:absolute after:-z-20 after:h-[180px] after:w-[240px] after:translate-x-1/3 after:bg-gradient-conic after:from-sky-200 after:via-blue-200 after:blur-2xl after:content-[''] before:dark:bg-gradient-to-br before:dark:from-transparent before:dark:to-blue-700 before:dark:opacity-10 after:dark:from-sky-900 after:dark:via-[#0141ff] after:dark:opacity-40 before:lg:h-[360px] z-[-1]">
32
- <Image
33
- className="relative dark:drop-shadow-[0_0_0.3rem_#ffffff70] dark:invert"
34
- src="/next.svg"
35
- alt="Next.js Logo"
36
- width={180}
37
- height={37}
38
- priority
39
- />
40
- </div>
41
 
42
- <div className="mb-32 grid text-center lg:max-w-5xl lg:w-full lg:mb-0 lg:grid-cols-4 lg:text-left">
43
- <a
44
- href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"
45
- className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30"
46
- target="_blank"
47
- rel="noopener noreferrer"
48
- >
49
- <h2 className={`mb-3 text-2xl font-semibold`}>
50
- Docs{' '}
51
- <span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">
52
- -&gt;
53
- </span>
54
- </h2>
55
- <p className={`m-0 max-w-[30ch] text-sm opacity-50`}>
56
- Find in-depth information about Next.js features and API.
57
- </p>
58
- </a>
59
 
60
- <a
61
- href="https://nextjs.org/learn?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app"
62
- className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800 hover:dark:bg-opacity-30"
63
- target="_blank"
64
- rel="noopener noreferrer"
65
- >
66
- <h2 className={`mb-3 text-2xl font-semibold`}>
67
- Learn{' '}
68
- <span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">
69
- -&gt;
70
- </span>
71
- </h2>
72
- <p className={`m-0 max-w-[30ch] text-sm opacity-50`}>
73
- Learn about Next.js in an interactive course with&nbsp;quizzes!
74
- </p>
75
- </a>
76
 
77
- <a
78
- href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"
79
- className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30"
80
- target="_blank"
81
- rel="noopener noreferrer"
82
- >
83
- <h2 className={`mb-3 text-2xl font-semibold`}>
84
- Templates{' '}
85
- <span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">
86
- -&gt;
87
- </span>
88
- </h2>
89
- <p className={`m-0 max-w-[30ch] text-sm opacity-50`}>
90
- Explore the Next.js 13 playground.
91
- </p>
92
- </a>
 
 
93
 
94
- <a
95
- href="https://vercel.com/new?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"
96
- className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30"
97
- target="_blank"
98
- rel="noopener noreferrer"
99
- >
100
- <h2 className={`mb-3 text-2xl font-semibold`}>
101
- Deploy{' '}
102
- <span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">
103
- -&gt;
104
- </span>
105
- </h2>
106
- <p className={`m-0 max-w-[30ch] text-sm opacity-50`}>
107
- Instantly deploy your Next.js site to a shareable URL with Vercel.
108
- </p>
109
- </a>
110
- </div>
111
  </main>
112
  )
113
- }
 
1
+ 'use client'
2
+
3
+ import { useState } from 'react'
4
 
5
  export default function Home() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
 
7
+ // Keep track of the classification result and the model loading status.
8
+ const [result, setResult] = useState(null);
9
+ const [ready, setReady] = useState(null);
 
 
 
 
 
 
 
10
 
11
+ const classify = async (text) => {
12
+ if (!text) return;
13
+ if (ready === null) setReady(false);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
 
15
+ // Make a request to the /classify route on the server.
16
+ const result = await fetch(`/classify?text=${encodeURIComponent(text)}`);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
+ // If this is the first time we've made a request, set the ready flag.
19
+ if (!ready) setReady(true);
20
+
21
+ const json = await result.json();
22
+ setResult(json);
23
+ };
24
+ return (
25
+ <main className="flex min-h-screen flex-col items-center justify-center p-12">
26
+ <h1 className="text-5xl font-bold mb-2 text-center">Transformers.js</h1>
27
+ <h2 className="text-2xl mb-4 text-center">Next.js template (server-side)</h2>
28
+ <input
29
+ type="text"
30
+ className="w-full max-w-xs p-2 border border-gray-300 text-black rounded mb-4"
31
+ placeholder="Enter text here"
32
+ onInput={e => {
33
+ classify(e.target.value);
34
+ }}
35
+ />
36
 
37
+ {ready !== null && (
38
+ <pre className="p-2 rounded border border-gray-300">
39
+ {
40
+ (!ready || !result) ? 'Loading...' : JSON.stringify(result, null, 2)}
41
+ </pre>
42
+ )}
 
 
 
 
 
 
 
 
 
 
 
43
  </main>
44
  )
45
+ }