diff --git a/nuxt.config.ts b/nuxt.config.ts index 144b2a7..049414a 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -27,7 +27,7 @@ export default defineNuxtConfig({ }, hub: { - // ai: true, + ai: true, analytics: true, blob: false, cache: false, @@ -58,7 +58,7 @@ export default defineNuxtConfig({ cfAccountId: '', cfApiToken: '', dataset: 'sink', - aiModel: '@cf/meta/llama-3-8b-instruct', + aiModel: '@cf/meta/llama-3.1-8b-instruct', aiPrompt: `You are a URL shortening assistant, please shorten the URL provided by the user into a SLUG. The SLUG information must come from the URL itself, do not make any assumptions. A SLUG is human-readable and should not exceed three words and can be validated using regular expressions {slugRegex} . Only the best one is returned, the format must be JSON reference {"slug": "example-slug"}`, public: { previewMode: '', diff --git a/package.json b/package.json index 956952d..e722b1a 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "@antfu/eslint-config": "^2.21.3", "@nuxt/eslint": "^0.3.13", "@nuxt/eslint-config": "^0.3.13", - "@nuxthub/core": "^0.7.0", + "@nuxthub/core": "^0.7.3", "@nuxtjs/color-mode": "^3.4.2", "@nuxtjs/tailwindcss": "^6.12.0", "class-variance-authority": "^0.7.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0a6c521..6b82106 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -70,8 +70,8 @@ importers: specifier: ^0.3.13 version: 0.3.13(eslint@8.57.0)(typescript@5.4.5) '@nuxthub/core': - specifier: ^0.7.0 - version: 0.7.0(ioredis@5.4.1)(magicast@0.3.4)(rollup@4.18.0)(vite@5.3.3(@types/node@20.12.11)(terser@5.31.0)) + specifier: ^0.7.3 + version: 0.7.3(ioredis@5.4.1)(magicast@0.3.4)(rollup@4.18.0)(vite@5.3.3(@types/node@20.12.11)(terser@5.31.0)) '@nuxtjs/color-mode': specifier: ^3.4.2 version: 3.4.2(magicast@0.3.4)(rollup@4.18.0) @@ -110,7 +110,7 @@ importers: version: 2.0.26(typescript@5.4.5) wrangler: specifier: ^3.63.1 - version: 3.63.1(@cloudflare/workers-types@4.20240620.0) + version: 3.63.1(@cloudflare/workers-types@4.20240815.0) packages: @@ -392,8 +392,8 @@ packages: cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20240620.0': - resolution: {integrity: sha512-CQD8YS6evRob7LChvIX3gE3zYo0KVgaLDOu1SwNP1BVIS2Sa0b+FC8S1e1hhrNN8/E4chYlVN+FDAgA4KRDUEQ==} + '@cloudflare/workers-types@4.20240815.0': + resolution: {integrity: sha512-H/IXCOahT1lr4RKzsiCkyjM7+LCPLtl2wjxyLG8xMTNERR0XuD1Vcfns6TraE0cd5+IcKe7j3rpzBlSCjZ+61A==} '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} @@ -1099,6 +1099,9 @@ packages: '@jridgewell/sourcemap-codec@1.4.15': resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} @@ -1224,10 +1227,18 @@ packages: resolution: {integrity: sha512-5R8FZLDxBKlkDWYsqwU1tctGJ5vwMA96WBrNkpQ0LznB2/p+3MWWTO6vz+0P0F9xvZZfkk/KKyZ3uUhnG9VJOA==} engines: {node: ^14.18.0 || >=16.10.0} + '@nuxt/kit@3.12.4': + resolution: {integrity: sha512-aNRD1ylzijY0oYolldNcZJXVyxdGzNTl+Xd0UYyFQCu9f4wqUZqQ9l+b7arCEzchr96pMK0xdpvLcS3xo1wDcw==} + engines: {node: ^14.18.0 || >=16.10.0} + '@nuxt/schema@3.12.3': resolution: {integrity: sha512-Zw/2stN5CWVOHQ6pKyewk3tvYW5ROBloTGyIbie7/TprJT5mL+E9tTgAxOZtkoKSFaYEQXZgE1K2OzMelhLRzw==} engines: {node: ^14.18.0 || >=16.10.0} + '@nuxt/schema@3.12.4': + resolution: {integrity: sha512-H7FwBV4ChssMaeiLyPdVLOLUa0326ebp3pNbJfGgFt7rSoKh1MmgjorecA8JMxOQZziy3w6EELf4+5cgLh/F1w==} + engines: {node: ^14.18.0 || >=16.10.0} + '@nuxt/telemetry@2.5.4': resolution: {integrity: sha512-KH6wxzsNys69daSO0xUv0LEBAfhwwjK1M+0Cdi1/vxmifCslMIY7lN11B4eywSfscbyVPAYJvANyc7XiVPImBQ==} hasBin: true @@ -1238,8 +1249,8 @@ packages: peerDependencies: vue: ^3.3.4 - '@nuxthub/core@0.7.0': - resolution: {integrity: sha512-Mlm/GoMiv8K02zYBSYv5wHBDTLv8JQMuE15ffXUMDc/rCKFDyJFgLk3T76KncwjoALyR/YSTozTbXRg+zoSV1g==} + '@nuxthub/core@0.7.3': + resolution: {integrity: sha512-hP/gB3BAgQGl1lROtIBgPAQQWIQPOuUYPDm7rLQLD+VFuBwlvWYE9yIUR8yaQulzwvIMBiUSzrk0/iPMvqOgUg==} '@nuxtjs/color-mode@3.4.2': resolution: {integrity: sha512-6A+lDP8R6fFXc1Ip5tDepKq9MJW6oxbRlz1plvW52yacnpeDFXv5S5rDS0ax31AuSFUPlgzHymFSdjcylBwZ6w==} @@ -3822,6 +3833,9 @@ packages: magic-string@0.30.10: resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + magic-string@0.30.11: + resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + magicast@0.3.4: resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} @@ -3889,6 +3903,11 @@ packages: engines: {node: '>=16'} hasBin: true + mime@4.0.4: + resolution: {integrity: sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ==} + engines: {node: '>=16'} + hasBin: true + mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -4004,8 +4023,8 @@ packages: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} - nitro-cloudflare-dev@0.1.4: - resolution: {integrity: sha512-ZZDdnmWLguHdYduTwneZ58eC6uLBRyOqPWI4NcrjjPPzJBTYGDHW67Dq5r1IcRhMaYr9lMjRDqLK2YCHQEqAtA==} + nitro-cloudflare-dev@0.1.6: + resolution: {integrity: sha512-7YcLTJsTZSZZ89XrTEaDEnFsVWbppBgLO0Rr5n3Nf93gKHTBkBfeGH8//8FVwV2poi6SabVbJ0a2eoJRoII81w==} nitropack@2.9.7: resolution: {integrity: sha512-aKXvtNrWkOCMsQbsk4A0qQdBjrJ1ZcvwlTQevI/LAgLWLYc5L7Q/YiYxGLal4ITyNSlzir1Cm1D2ZxnYhmpMEw==} @@ -4755,6 +4774,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} @@ -5169,6 +5193,9 @@ packages: ufo@1.5.3: resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + ultrahtml@1.5.3: resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} @@ -5198,6 +5225,9 @@ packages: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} + unimport@3.10.0: + resolution: {integrity: sha512-/UvKRfWx3mNDWwWQhR62HsoM3wxHwYdTq8ellZzMOHnnw4Dp8tovgthyW7DjTrbjDL+i4idOp06voz2VKlvrLw==} + unimport@3.7.2: resolution: {integrity: sha512-91mxcZTadgXyj3lFWmrGT8GyoRHWuE5fqPOjg5RVtF6vj+OfM5G6WCzXjuYtSgELE5ggB34RY4oiCSEP8I3AHw==} @@ -5220,6 +5250,10 @@ packages: resolution: {integrity: sha512-3r7VWZ/webh0SGgJScpWl2/MRCZK5d3ZYFcNaeci/GQ7Teop7zf0Nl2pUuz7G21BwPd9pcUPOC5KmJ2L3WgC5g==} engines: {node: '>=14.0.0'} + unplugin@1.12.2: + resolution: {integrity: sha512-bEqQxeC7rxtxPZ3M5V4Djcc4lQqKPgGe3mAWZvxcSmX5jhGxll19NliaRzQSQPrk4xJZSGniK3puLWpRuZN7VQ==} + engines: {node: '>=14.0.0'} + unstorage@1.10.2: resolution: {integrity: sha512-cULBcwDqrS8UhlIysUJs2Dk0Mmt8h7B0E6mtR+relW9nZvsf/u4SkAYyNliPiPW7XtFNb5u3IUMkxGxFTTRTgQ==} peerDependencies: @@ -5497,6 +5531,9 @@ packages: webpack-virtual-modules@0.6.1: resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} @@ -5957,7 +5994,7 @@ snapshots: '@cloudflare/workerd-windows-64@1.20240701.0': optional: true - '@cloudflare/workers-types@4.20240620.0': {} + '@cloudflare/workers-types@4.20240815.0': {} '@cspotcode/source-map-support@0.8.1': dependencies: @@ -6450,6 +6487,8 @@ snapshots: '@jridgewell/sourcemap-codec@1.4.15': {} + '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 @@ -6706,6 +6745,33 @@ snapshots: - rollup - supports-color + '@nuxt/kit@3.12.4(magicast@0.3.4)(rollup@4.18.0)': + dependencies: + '@nuxt/schema': 3.12.4(rollup@4.18.0) + c12: 1.11.1(magicast@0.3.4) + consola: 3.2.3 + defu: 6.1.4 + destr: 2.0.3 + globby: 14.0.2 + hash-sum: 2.0.0 + ignore: 5.3.1 + jiti: 1.21.6 + klona: 2.0.6 + knitwork: 1.1.0 + mlly: 1.7.1 + pathe: 1.1.2 + pkg-types: 1.1.3 + scule: 1.3.0 + semver: 7.6.3 + ufo: 1.5.4 + unctx: 2.3.1 + unimport: 3.10.0(rollup@4.18.0) + untyped: 1.4.2 + transitivePeerDependencies: + - magicast + - rollup + - supports-color + '@nuxt/schema@3.12.3(rollup@4.18.0)': dependencies: compatx: 0.1.8 @@ -6724,6 +6790,24 @@ snapshots: - rollup - supports-color + '@nuxt/schema@3.12.4(rollup@4.18.0)': + dependencies: + compatx: 0.1.8 + consola: 3.2.3 + defu: 6.1.4 + hookable: 5.5.3 + pathe: 1.1.2 + pkg-types: 1.1.3 + scule: 1.3.0 + std-env: 3.7.0 + ufo: 1.5.4 + uncrypto: 0.1.3 + unimport: 3.10.0(rollup@4.18.0) + untyped: 1.4.2 + transitivePeerDependencies: + - rollup + - supports-color + '@nuxt/telemetry@2.5.4(magicast@0.3.4)(rollup@4.18.0)': dependencies: '@nuxt/kit': 3.12.3(magicast@0.3.4)(rollup@4.18.0) @@ -6805,23 +6889,23 @@ snapshots: - vti - vue-tsc - '@nuxthub/core@0.7.0(ioredis@5.4.1)(magicast@0.3.4)(rollup@4.18.0)(vite@5.3.3(@types/node@20.12.11)(terser@5.31.0))': + '@nuxthub/core@0.7.3(ioredis@5.4.1)(magicast@0.3.4)(rollup@4.18.0)(vite@5.3.3(@types/node@20.12.11)(terser@5.31.0))': dependencies: - '@cloudflare/workers-types': 4.20240620.0 + '@cloudflare/workers-types': 4.20240815.0 '@nuxt/devtools-kit': 1.3.9(magicast@0.3.4)(rollup@4.18.0)(vite@5.3.3(@types/node@20.12.11)(terser@5.31.0)) - '@nuxt/kit': 3.12.3(magicast@0.3.4)(rollup@4.18.0) + '@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.18.0) '@uploadthing/mime-types': 0.2.10 citty: 0.1.6 confbox: 0.1.7 defu: 6.1.4 destr: 2.0.3 h3: 1.12.0 - mime: 4.0.3 - nitro-cloudflare-dev: 0.1.4 + mime: 4.0.4 + nitro-cloudflare-dev: 0.1.6 ofetch: 1.3.4 pathe: 1.1.2 pkg-types: 1.1.3 - ufo: 1.5.3 + ufo: 1.5.4 uncrypto: 0.1.3 unstorage: 1.10.2(ioredis@5.4.1) zod: 3.23.8 @@ -9285,7 +9369,7 @@ snapshots: iron-webcrypto: 1.1.1 ohash: 1.1.3 radix3: 1.1.2 - ufo: 1.5.3 + ufo: 1.5.4 uncrypto: 0.1.3 unenv: 1.9.0 transitivePeerDependencies: @@ -9684,7 +9768,7 @@ snapshots: node-forge: 1.3.1 pathe: 1.1.2 std-env: 3.7.0 - ufo: 1.5.3 + ufo: 1.5.4 untun: 0.1.3 uqr: 0.1.2 transitivePeerDependencies: @@ -9762,6 +9846,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + magic-string@0.30.11: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + magicast@0.3.4: dependencies: '@babel/parser': 7.24.7 @@ -9847,6 +9935,8 @@ snapshots: mime@4.0.3: {} + mime@4.0.4: {} + mimic-fn@2.1.0: {} mimic-fn@4.0.0: {} @@ -9950,7 +10040,7 @@ snapshots: negotiator@0.6.3: {} - nitro-cloudflare-dev@0.1.4: + nitro-cloudflare-dev@0.1.6: dependencies: consola: 3.2.3 mlly: 1.7.1 @@ -10220,7 +10310,7 @@ snapshots: dependencies: destr: 2.0.3 node-fetch-native: 1.6.4 - ufo: 1.5.3 + ufo: 1.5.4 ohash@1.1.3: {} @@ -10864,6 +10954,8 @@ snapshots: semver@7.6.2: {} + semver@7.6.3: {} + send@0.18.0: dependencies: debug: 2.6.9 @@ -11289,6 +11381,8 @@ snapshots: ufo@1.5.3: {} + ufo@1.5.4: {} + ultrahtml@1.5.3: {} uncrypto@0.1.3: {} @@ -11332,6 +11426,24 @@ snapshots: unicorn-magic@0.1.0: {} + unimport@3.10.0(rollup@4.18.0): + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) + acorn: 8.12.1 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.11 + mlly: 1.7.1 + pathe: 1.1.2 + pkg-types: 1.1.3 + scule: 1.3.0 + strip-literal: 2.1.0 + unplugin: 1.12.2 + transitivePeerDependencies: + - rollup + unimport@3.7.2(rollup@4.18.0): dependencies: '@rollup/pluginutils': 5.1.0(rollup@4.18.0) @@ -11384,6 +11496,13 @@ snapshots: webpack-sources: 3.2.3 webpack-virtual-modules: 0.6.1 + unplugin@1.12.2: + dependencies: + acorn: 8.12.1 + chokidar: 3.6.0 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.6.2 + unstorage@1.10.2(ioredis@5.4.1): dependencies: anymatch: 3.1.3 @@ -11395,7 +11514,7 @@ snapshots: mri: 1.2.0 node-fetch-native: 1.6.4 ofetch: 1.3.4 - ufo: 1.5.3 + ufo: 1.5.4 optionalDependencies: ioredis: 5.4.1 transitivePeerDependencies: @@ -11641,6 +11760,8 @@ snapshots: webpack-virtual-modules@0.6.1: {} + webpack-virtual-modules@0.6.2: {} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 @@ -11672,7 +11793,7 @@ snapshots: '@cloudflare/workerd-linux-arm64': 1.20240701.0 '@cloudflare/workerd-windows-64': 1.20240701.0 - wrangler@3.63.1(@cloudflare/workers-types@4.20240620.0): + wrangler@3.63.1(@cloudflare/workers-types@4.20240815.0): dependencies: '@cloudflare/kv-asset-handler': 0.3.4 '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) @@ -11691,7 +11812,7 @@ snapshots: unenv: unenv-nightly@1.10.0-1717606461.a117952 xxhash-wasm: 1.0.2 optionalDependencies: - '@cloudflare/workers-types': 4.20240620.0 + '@cloudflare/workers-types': 4.20240815.0 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil diff --git a/server/api/link/ai.get.ts b/server/api/link/ai.get.ts index 4cc768c..8ce1827 100644 --- a/server/api/link/ai.get.ts +++ b/server/api/link/ai.get.ts @@ -31,7 +31,8 @@ export default eventHandler(async (event) => { content: url, }, ] - const { response } = await AI.run(aiModel, { messages }) + // @ts-expect-error Workers AI is not typed + const { response } = await hubAI().run(aiModel, { messages }) return destr(response) } else {