From fe8f35a889363bf35d6d927c78b9c4fc4d2f5bba Mon Sep 17 00:00:00 2001 From: "zhouxiao.shaw" Date: Wed, 20 Nov 2024 12:20:34 +0800 Subject: [PATCH] chore: update midscene version --- ...ine-order-zh.spec.ts(ai online order).json | 58 ++ ... todo - English Prompt - should fail).json | 194 ++++++ ... todo - Chinese Prompt - should fail).json | 297 +++++++++ playwright-demo/package.json | 2 +- playwright-demo/pnpm-lock.yaml | 575 ++++++++++++++---- 5 files changed, 1019 insertions(+), 107 deletions(-) create mode 100644 playwright-demo/midscene_run/cache/online-order-zh.spec.ts(ai online order).json create mode 100644 playwright-demo/midscene_run/cache/todo-mvc-en.spec.ts(ai todo - English Prompt - should fail).json create mode 100644 playwright-demo/midscene_run/cache/todo-mvc-zh.spec.ts(ai todo - Chinese Prompt - should fail).json diff --git a/playwright-demo/midscene_run/cache/online-order-zh.spec.ts(ai online order).json b/playwright-demo/midscene_run/cache/online-order-zh.spec.ts(ai online order).json new file mode 100644 index 0000000..1a93f8a --- /dev/null +++ b/playwright-demo/midscene_run/cache/online-order-zh.spec.ts(ai online order).json @@ -0,0 +1,58 @@ +{ + "pkgName": "playwright-demo", + "pkgVersion": "0.0.1", + "cacheId": "online-order-zh.spec.ts(ai online order)", + "aiTasks": [ + { + "prompt": "点击左上角语言切换按钮(英文、中文),在弹出的下拉列表中点击中文", + "tasks": [ + { + "type": "plan", + "pageContext": { + "url": "https://heyteavivocity.meuu.online/home", + "size": { + "width": 400, + "height": 905, + "dpr": 1 + } + }, + "prompt": "点击左上角语言切换按钮(英文、中文),在弹出的下拉列表中点击中文", + "response": { + "plans": [ + { + "thought": "找到左上角的语言切换按钮", + "type": "Locate", + "param": { + "prompt": "左上角的语言切换按钮,显示为'English'" + }, + "quickAnswer": { + "reason": "找到元素1:它位于页面左上角,是一个文本节点,内容为'English'", + "text": "English", + "id": "ca756f91d9" + } + }, + { + "thought": "点击语言切换按钮", + "type": "Tap", + "param": null + }, + { + "thought": "找到下拉列表中的'中文'选项", + "type": "Locate", + "param": { + "prompt": "下拉列表中的'中文'选项" + }, + "quickAnswer": null + }, + { + "thought": "点击'中文'选项", + "type": "Tap", + "param": null + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/playwright-demo/midscene_run/cache/todo-mvc-en.spec.ts(ai todo - English Prompt - should fail).json b/playwright-demo/midscene_run/cache/todo-mvc-en.spec.ts(ai todo - English Prompt - should fail).json new file mode 100644 index 0000000..63bd08b --- /dev/null +++ b/playwright-demo/midscene_run/cache/todo-mvc-en.spec.ts(ai todo - English Prompt - should fail).json @@ -0,0 +1,194 @@ +{ + "pkgName": "playwright-demo", + "pkgVersion": "0.0.1", + "cacheId": "todo-mvc-en.spec.ts(ai todo - English Prompt - should fail)", + "aiTasks": [ + { + "prompt": "Input 'Study JS today' in the task box input and press the Enter key", + "tasks": [ + { + "type": "plan", + "pageContext": { + "url": "https://todomvc.com/examples/react/dist/", + "size": { + "width": 1280, + "height": 720, + "dpr": 1 + } + }, + "prompt": "Input 'Study JS today' in the task box input and press the Enter key", + "response": { + "plans": [ + { + "thought": "Locate the task input box", + "type": "Locate", + "param": { + "prompt": "The input box with placeholder 'What needs to be done?'" + }, + "quickAnswer": { + "reason": "Reason for finding element: It is located in the center of the page, is an input type, and according to the screenshot, it has the placeholder 'What needs to be done?'", + "text": "What needs to be done?", + "id": "fbc2d0029b" + } + }, + { + "thought": "Input 'Study JS today' in the task box", + "type": "Input", + "param": { + "value": "Study JS today" + } + }, + { + "thought": "Press the Enter key to submit the task", + "type": "KeyboardPress", + "param": { + "value": "Enter" + } + } + ] + } + } + ] + }, + { + "prompt": "Input 'Study Rust tomorrow' in the task box input and press the Enter key", + "tasks": [ + { + "type": "plan", + "pageContext": { + "url": "https://todomvc.com/examples/react/dist/", + "size": { + "width": 1280, + "height": 720, + "dpr": 1 + } + }, + "prompt": "Input 'Study Rust tomorrow' in the task box input and press the Enter key", + "response": { + "plans": [ + { + "thought": "Locate the task box input field", + "type": "Locate", + "param": { + "prompt": "The input field with placeholder 'What needs to be done?'" + }, + "quickAnswer": { + "reason": "Reason for finding element 1: It is located in the center, is an input type, and according to the screenshot, it has the placeholder 'What needs to be done?'", + "text": "What needs to be done?", + "id": "fbc2d0029b" + } + }, + { + "thought": "Input 'Study Rust tomorrow' in the task box input field", + "type": "Input", + "param": { + "value": "Study Rust tomorrow" + } + }, + { + "thought": "Press the Enter key to add the task", + "type": "KeyboardPress", + "param": { + "value": "Enter" + } + } + ] + } + } + ] + }, + { + "prompt": "Input 'Study AI the day after tomorrow' in the task box input and press the Enter key", + "tasks": [ + { + "type": "plan", + "pageContext": { + "url": "https://todomvc.com/examples/react/dist/", + "size": { + "width": 1280, + "height": 720, + "dpr": 1 + } + }, + "prompt": "Input 'Study AI the day after tomorrow' in the task box input and press the Enter key", + "response": { + "plans": [ + { + "thought": "Locate the task input box", + "type": "Locate", + "param": { + "prompt": "The input box with placeholder 'What needs to be done?'" + }, + "quickAnswer": { + "reason": "Reason for finding element 1: It is located in the upper center, is an input type, and according to the screenshot, it is the task input box", + "text": "What needs to be done?", + "id": "fbc2d0029b" + } + }, + { + "thought": "Input the task 'Study AI the day after tomorrow' in the task input box", + "type": "Input", + "param": { + "value": "Study AI the day after tomorrow" + } + }, + { + "thought": "Press the Enter key to add the task", + "type": "KeyboardPress", + "param": { + "value": "Enter" + } + } + ] + } + } + ] + }, + { + "prompt": "Move the mouse to the second item in the task list and click the delete button on the right of the second task", + "tasks": [ + { + "type": "plan", + "pageContext": { + "url": "https://todomvc.com/examples/react/dist/", + "size": { + "width": 1280, + "height": 720, + "dpr": 1 + } + }, + "prompt": "Move the mouse to the second item in the task list and click the delete button on the right of the second task", + "response": { + "plans": [ + { + "thought": "Locate the second item in the task list", + "type": "Locate", + "param": { + "prompt": "The text 'Study Rust tomorrow'" + }, + "quickAnswer": { + "reason": "Reason for finding element 7: It is located in the middle of the task list, is a text node, and according to the screenshot, it is the second task item", + "text": "Study Rust tomorrow", + "id": "bdc4a34474" + } + }, + { + "thought": "Locate the delete button on the right of the second task", + "type": "Locate", + "param": { + "prompt": "The delete button on the right of the text 'Study Rust tomorrow'" + }, + "quickAnswer": null + }, + { + "thought": "Click the delete button", + "type": "Tap", + "param": null + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/playwright-demo/midscene_run/cache/todo-mvc-zh.spec.ts(ai todo - Chinese Prompt - should fail).json b/playwright-demo/midscene_run/cache/todo-mvc-zh.spec.ts(ai todo - Chinese Prompt - should fail).json new file mode 100644 index 0000000..09d5b98 --- /dev/null +++ b/playwright-demo/midscene_run/cache/todo-mvc-zh.spec.ts(ai todo - Chinese Prompt - should fail).json @@ -0,0 +1,297 @@ +{ + "pkgName": "playwright-demo", + "pkgVersion": "0.0.1", + "cacheId": "todo-mvc-zh.spec.ts(ai todo - Chinese Prompt - should fail)", + "aiTasks": [ + { + "prompt": "在任务框 input 输入 今天学习 JS,按回车键", + "tasks": [ + { + "type": "plan", + "pageContext": { + "url": "https://todomvc.com/examples/react/dist/", + "size": { + "width": 1280, + "height": 720, + "dpr": 1 + } + }, + "prompt": "在任务框 input 输入 今天学习 JS,按回车键", + "response": { + "plans": [ + { + "thought": "找到任务输入框", + "type": "Locate", + "param": { + "prompt": "任务输入框,带有占位符 'What needs to be done?'" + }, + "quickAnswer": { + "reason": "找到的元素位于页面中部偏上,是一个输入框,带有占位符 'What needs to be done?'", + "text": "What needs to be done?", + "id": "fbc2d0029b" + } + }, + { + "thought": "在任务输入框中输入 '今天学习 JS'", + "type": "Input", + "param": { + "value": "今天学习 JS" + } + }, + { + "thought": "按下回车键以提交任务", + "type": "KeyboardPress", + "param": { + "value": "Enter" + } + } + ] + } + } + ] + }, + { + "prompt": "在任务框 input 输入 明天学习 Rust,按回车键", + "tasks": [ + { + "type": "plan", + "pageContext": { + "url": "https://todomvc.com/examples/react/dist/", + "size": { + "width": 1280, + "height": 720, + "dpr": 1 + } + }, + "prompt": "在任务框 input 输入 明天学习 Rust,按回车键", + "response": { + "plans": [ + { + "thought": "找到任务输入框", + "type": "Locate", + "param": { + "prompt": "任务输入框,带有占位符 'What needs to be done?'" + }, + "quickAnswer": { + "reason": "找到元素 fbc2d0029b: 它位于页面中间偏上,是一个输入框,并且占位符为 'What needs to be done?'", + "text": "What needs to be done?", + "id": "fbc2d0029b" + } + }, + { + "thought": "在任务输入框中输入 '明天学习 Rust'", + "type": "Input", + "param": { + "value": "明天学习 Rust" + } + }, + { + "thought": "按下回车键以提交任务", + "type": "KeyboardPress", + "param": { + "value": "Enter" + } + } + ] + } + } + ] + }, + { + "prompt": "在任务框 input 输入后天学习 AI,按回车键", + "tasks": [ + { + "type": "plan", + "pageContext": { + "url": "https://todomvc.com/examples/react/dist/", + "size": { + "width": 1280, + "height": 720, + "dpr": 1 + } + }, + "prompt": "在任务框 input 输入后天学习 AI,按回车键", + "response": { + "plans": [ + { + "thought": "找到任务输入框", + "type": "Locate", + "param": { + "prompt": "任务输入框,带有占位符 'What needs to be done?'" + }, + "quickAnswer": { + "reason": "找到元素 fbc2d0029b: 它位于页面中部偏上,是一个输入框,并且根据截图,它的占位符是 'What needs to be done?'", + "text": "What needs to be done?", + "id": "fbc2d0029b" + } + }, + { + "thought": "在任务输入框中输入 '后天学习 AI'", + "type": "Input", + "param": { + "value": "后天学习 AI" + } + }, + { + "thought": "按下回车键以添加任务", + "type": "KeyboardPress", + "param": { + "value": "Enter" + } + } + ] + } + } + ] + }, + { + "prompt": "将鼠标移动到任务列表中的第二项,点击第二项任务右边的删除按钮", + "tasks": [ + { + "type": "plan", + "pageContext": { + "url": "https://todomvc.com/examples/react/dist/", + "size": { + "width": 1280, + "height": 720, + "dpr": 1 + } + }, + "prompt": "将鼠标移动到任务列表中的第二项,点击第二项任务右边的删除按钮", + "response": { + "plans": [ + { + "thought": "找到任务列表中的第二项", + "type": "Locate", + "param": { + "prompt": "任务列表中的第二项" + }, + "quickAnswer": { + "reason": "找到元素 7 的原因:它位于页面中部,是一个文本节点,根据截图,它是任务列表中的第二项", + "text": "明天学习 Rust", + "id": "d548590c1e" + } + }, + { + "thought": "将鼠标移动到任务列表中的第二项", + "type": "Hover", + "param": null + }, + { + "thought": "找到第二项任务右边的删除按钮", + "type": "Locate", + "param": { + "prompt": "第二项任务右边的删除按钮" + }, + "quickAnswer": null + }, + { + "thought": "点击第二项任务右边的删除按钮", + "type": "Tap", + "param": null + } + ] + } + }, + { + "type": "locate", + "pageContext": { + "url": "https://todomvc.com/examples/react/dist/", + "size": { + "width": 1280, + "height": 720, + "dpr": 1 + } + }, + "prompt": "第二项任务右边的删除按钮", + "response": { + "errors": [], + "elements": [ + { + "reason": "The element is the delete button located to the right of the second task item, which is '明天学习 Rust'.", + "text": "×", + "id": "1b33e5dd50" + } + ] + } + } + ] + }, + { + "prompt": "点击第二条任务左边的勾选按钮", + "tasks": [ + { + "type": "plan", + "pageContext": { + "url": "https://todomvc.com/examples/react/dist/", + "size": { + "width": 1280, + "height": 720, + "dpr": 1 + } + }, + "prompt": "点击第二条任务左边的勾选按钮", + "response": { + "plans": [ + { + "thought": "找到第二条任务左边的勾选按钮", + "type": "Locate", + "param": { + "prompt": "第二条任务左边的勾选按钮" + }, + "quickAnswer": { + "reason": "找到元素 6 的原因:它位于页面中部偏下的位置,是一个复选框,根据截图,它是第二条任务左边的勾选按钮", + "text": "", + "id": "910617669a" + } + }, + { + "thought": "点击第二条任务左边的勾选按钮", + "type": "Tap", + "param": null + } + ] + } + } + ] + }, + { + "prompt": "点击任务列表下面的 completed 状态按钮", + "tasks": [ + { + "type": "plan", + "pageContext": { + "url": "https://todomvc.com/examples/react/dist/", + "size": { + "width": 1280, + "height": 720, + "dpr": 1 + } + }, + "prompt": "点击任务列表下面的 completed 状态按钮", + "response": { + "plans": [ + { + "thought": "找到任务列表下面的 completed 状态按钮", + "type": "Locate", + "param": { + "prompt": "任务列表下面的 completed 状态按钮" + }, + "quickAnswer": { + "reason": "找到元素 11 的原因:它位于页面中部偏下的位置,是一个文本节点,根据截图,它是一个状态按钮", + "text": "Completed", + "id": "d2275371fa" + } + }, + { + "thought": "点击任务列表下面的 completed 状态按钮", + "type": "Tap", + "param": null + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/playwright-demo/package.json b/playwright-demo/package.json index 060fd78..ca52c21 100644 --- a/playwright-demo/package.json +++ b/playwright-demo/package.json @@ -11,7 +11,7 @@ "postinstall": "pnpm exec playwright install" }, "devDependencies": { - "@midscene/web": "0.6.2", + "@midscene/web": "0.8.4", "@playwright/test": "1.48.0", "@types/jest": "~29.5.13", "@types/node": "~22.7.5", diff --git a/playwright-demo/pnpm-lock.yaml b/playwright-demo/pnpm-lock.yaml index 4a8cf81..42d2e00 100644 --- a/playwright-demo/pnpm-lock.yaml +++ b/playwright-demo/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: devDependencies: '@midscene/web': - specifier: 0.6.2 - version: 0.6.2(@playwright/test@1.48.0)(playwright@1.48.0) + specifier: 0.8.4 + version: 0.8.4(@playwright/test@1.48.0)(playwright@1.48.0) '@playwright/test': specifier: 1.48.0 version: 1.48.0 @@ -47,14 +47,14 @@ packages: resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} engines: {node: '>=6.9.0'} - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.11.1': - resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/config-array@0.18.0': @@ -65,8 +65,8 @@ packages: resolution: {integrity: sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.1.0': - resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + '@eslint/eslintrc@3.2.0': + resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/js@9.12.0': @@ -77,16 +77,16 @@ packages: resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.0': - resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==} + '@eslint/plugin-kit@0.2.3': + resolution: {integrity: sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@humanfs/core@0.19.0': - resolution: {integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==} + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} - '@humanfs/node@0.16.5': - resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==} + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': @@ -117,8 +117,8 @@ packages: resolution: {integrity: sha512-qnJsUcOGCSG1e5DTOErmv2BPQqrtT6uzqn1vI/aYGiPKq+FgslGZmtdnXbhuI7IlT7OByDoEEqdnhUnVR2hhLw==} engines: {node: '>=18'} - '@inquirer/figures@1.0.7': - resolution: {integrity: sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==} + '@inquirer/figures@1.0.8': + resolution: {integrity: sha512-tKd+jsmhq21AP1LhexC0pPwsCxEhGgAkg28byjJAd+xhmIs8LUX8JbUc3vBf3PhLxWiB5EvyBE5X7JSPAqMAqg==} engines: {node: '>=18'} '@inquirer/input@2.3.0': @@ -338,16 +338,17 @@ packages: '@jimp/utils@0.22.12': resolution: {integrity: sha512-yJ5cWUknGnilBq97ZXOyOS0HhsHOyAyjHwYfHxGbSyMTohgQI6sVyE8KPgDwH8HHW/nMKXk8TrSwAE71zt716Q==} - '@midscene/core@0.6.2': - resolution: {integrity: sha512-U4LnJhe2JjEL4yHxMel7pu6xw/tt9FepfL6KbGmCxZc6GjK/JcHuoxwhRD3Q64ue4/z6xsESvI0htbqahBRniA==} + '@midscene/core@0.8.4': + resolution: {integrity: sha512-NPFP4lErqJXeYCrMuoXowY9Pj0WuZiogdJMy+Ye+8mfCa8CrnPwkPrSi5CntQ5VFWBGnYZtLtdjNU2ZuXcaRfA==} engines: {node: '>=16.0.0'} - '@midscene/shared@0.6.2': - resolution: {integrity: sha512-0j05fYx2TPxTGdEthuchQcOzWloKdKCZfHsyHezNX93J49d8HJSPXTWnoklxExsa7P/IrTZlmyUDtBpxZ+M2ew==} + '@midscene/shared@0.8.4': + resolution: {integrity: sha512-O/7O3RadGzqMYP2jJnzrl+XuUYwnPHOQfuMiEM640ppFPjfjUoiGM/7NzI+9cqFZ+fQ6eBnXRjEVp4vHrXJLSg==} - '@midscene/web@0.6.2': - resolution: {integrity: sha512-5lf/5nA8n92qFhs//6bpoMn2sfmeNNGgQmEKaehypXWB3+gPWq6wojHc2Y+aJ9lgovBZcKRBPNrgyDPwZ1oRaQ==} + '@midscene/web@0.8.4': + resolution: {integrity: sha512-lystMRk8AjXT79WjLuJvq2xHXFQWi4AuVBiMfihnWD4f/EIt5aXXLQnuQHdpkCdGn5xBOyHngDpSb55t2TdGkQ==} engines: {node: '>=16.0.0'} + hasBin: true peerDependencies: '@playwright/test': ^1.44.1 playwright: ^1.44.1 @@ -397,20 +398,20 @@ packages: '@types/mute-stream@0.0.4': resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} - '@types/node-fetch@2.6.11': - resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} + '@types/node-fetch@2.6.12': + resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==} '@types/node@16.9.1': resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} - '@types/node@18.19.55': - resolution: {integrity: sha512-zzw5Vw52205Zr/nmErSEkN5FLqXPuKX/k5d1D7RKHATGqU7y6YfX9QxZraUzUrFGqH6XzOzG196BC35ltJC4Cw==} + '@types/node@18.19.64': + resolution: {integrity: sha512-955mDqvO2vFf/oL7V3WiUtiz+BugyX8uVbaT2H8oj3+8dRyH2FLiNdowe7eNqRM7IOIZvzDH76EoAT+gwm6aIQ==} '@types/node@22.7.5': resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} - '@types/qs@6.9.16': - resolution: {integrity: sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==} + '@types/qs@6.9.17': + resolution: {integrity: sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==} '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -432,13 +433,17 @@ packages: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true @@ -483,6 +488,9 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -495,6 +503,10 @@ packages: bmp-js@0.1.0: resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==} + body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -512,6 +524,10 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} @@ -562,10 +578,36 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + cookie@0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} + engines: {node: '>= 0.6'} + + cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + debug@4.3.7: resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} @@ -586,6 +628,14 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -600,12 +650,23 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + es-define-property@1.0.0: resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} @@ -614,6 +675,9 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} + 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'} @@ -640,16 +704,16 @@ packages: eslint-config-prettier: optional: true - eslint-scope@8.1.0: - resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==} + eslint-scope@8.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.1.0: - resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint@9.12.0: @@ -662,8 +726,8 @@ packages: jiti: optional: true - espree@10.2.0: - resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esquery@1.6.0: @@ -682,6 +746,10 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + event-target-shim@5.0.1: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} @@ -693,6 +761,10 @@ packages: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + express@4.21.1: + resolution: {integrity: sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==} + engines: {node: '>= 0.10.0'} + external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} @@ -721,6 +793,10 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + finalhandler@1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} + engines: {node: '>= 0.8'} + find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -729,8 +805,8 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + flatted@3.3.2: + resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} follow-redirects@1.15.9: resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} @@ -756,6 +832,14 @@ packages: resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} engines: {node: '>= 12.20'} + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -816,6 +900,10 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} @@ -848,6 +936,10 @@ packages: resolution: {integrity: sha512-ksPK04lcs0GcgkvfmZ5Sjxdm74Nf3Ksy37NTQDrdMZlB0IJgH6TB8cTCJpvGAvt6edsgHa07flRcvXwkr+tPqQ==} engines: {node: '>=18'} + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -940,6 +1032,17 @@ packages: resolution: {integrity: sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==} engines: {node: 20 || >=22} + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -971,6 +1074,9 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -981,19 +1087,14 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} - node-fetch@2.6.7: - resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -1003,13 +1104,21 @@ packages: encoding: optional: true - object-inspect@1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} omggif@1.0.10: resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + openai@4.57.1: resolution: {integrity: sha512-7q+4U9A/klaAT40bqL6sPFhIKb4jsUJ8udddCzaf8mdwICYeBG7grps/zDcrOUfkwCxCzR6fxfDDah3WqHoVUA==} hasBin: true @@ -1060,6 +1169,10 @@ packages: parse-headers@2.0.5: resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -1072,6 +1185,9 @@ packages: resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} engines: {node: 20 || >=22} + path-to-regexp@0.1.10: + resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} + peek-readable@4.1.0: resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==} engines: {node: '>=8'} @@ -1130,6 +1246,10 @@ packages: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -1138,6 +1258,18 @@ packages: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} + qs@6.13.1: + resolution: {integrity: sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==} + engines: {node: '>=0.6'} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} @@ -1177,10 +1309,21 @@ packages: sax@1.4.1: resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} + engines: {node: '>= 0.8.0'} + + serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} + engines: {node: '>= 0.8.0'} + set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -1205,6 +1348,10 @@ packages: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -1261,6 +1408,10 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + token-types@4.2.1: resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==} engines: {node: '>=10'} @@ -1271,8 +1422,8 @@ packages: tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} - tslib@2.8.0: - resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -1282,6 +1433,10 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + typescript@5.6.3: resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} @@ -1293,6 +1448,10 @@ packages: undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -1302,6 +1461,14 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + web-streams-polyfill@4.0.0-beta.3: resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} engines: {node: '>= 14'} @@ -1378,12 +1545,12 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.0 - '@eslint-community/eslint-utils@4.4.0(eslint@9.12.0)': + '@eslint-community/eslint-utils@4.4.1(eslint@9.12.0)': dependencies: eslint: 9.12.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.11.1': {} + '@eslint-community/regexpp@4.12.1': {} '@eslint/config-array@0.18.0': dependencies: @@ -1395,11 +1562,11 @@ snapshots: '@eslint/core@0.6.0': {} - '@eslint/eslintrc@3.1.0': + '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 debug: 4.3.7 - espree: 10.2.0 + espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.0 @@ -1413,15 +1580,15 @@ snapshots: '@eslint/object-schema@2.1.4': {} - '@eslint/plugin-kit@0.2.0': + '@eslint/plugin-kit@0.2.3': dependencies: levn: 0.4.1 - '@humanfs/core@0.19.0': {} + '@humanfs/core@0.19.1': {} - '@humanfs/node@0.16.5': + '@humanfs/node@0.16.6': dependencies: - '@humanfs/core': 0.19.0 + '@humanfs/core': 0.19.1 '@humanwhocodes/retry': 0.3.1 '@humanwhocodes/module-importer@1.0.1': {} @@ -1431,7 +1598,7 @@ snapshots: '@inquirer/checkbox@2.5.0': dependencies: '@inquirer/core': 9.2.1 - '@inquirer/figures': 1.0.7 + '@inquirer/figures': 1.0.8 '@inquirer/type': 1.5.5 ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 @@ -1443,7 +1610,7 @@ snapshots: '@inquirer/core@9.2.1': dependencies: - '@inquirer/figures': 1.0.7 + '@inquirer/figures': 1.0.8 '@inquirer/type': 2.0.0 '@types/mute-stream': 0.0.4 '@types/node': 22.7.5 @@ -1468,7 +1635,7 @@ snapshots: '@inquirer/type': 1.5.5 yoctocolors-cjs: 2.1.2 - '@inquirer/figures@1.0.7': {} + '@inquirer/figures@1.0.8': {} '@inquirer/input@2.3.0': dependencies: @@ -1508,14 +1675,14 @@ snapshots: '@inquirer/search@1.1.0': dependencies: '@inquirer/core': 9.2.1 - '@inquirer/figures': 1.0.7 + '@inquirer/figures': 1.0.8 '@inquirer/type': 1.5.5 yoctocolors-cjs: 2.1.2 '@inquirer/select@2.5.0': dependencies: '@inquirer/core': 9.2.1 - '@inquirer/figures': 1.0.7 + '@inquirer/figures': 1.0.8 '@inquirer/type': 1.5.5 ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 @@ -1770,29 +1937,30 @@ snapshots: dependencies: regenerator-runtime: 0.13.11 - '@midscene/core@0.6.2': + '@midscene/core@0.8.4': dependencies: optional: 0.1.4 - '@midscene/shared': 0.6.2 - node-fetch: 2.6.7 + '@midscene/shared': 0.8.4 openai: 4.57.1 transitivePeerDependencies: - debug - encoding - zod - '@midscene/shared@0.6.2': + '@midscene/shared@0.8.4': dependencies: jimp: 0.22.12 transitivePeerDependencies: - debug - encoding - '@midscene/web@0.6.2(@playwright/test@1.48.0)(playwright@1.48.0)': + '@midscene/web@0.8.4(@playwright/test@1.48.0)(playwright@1.48.0)': dependencies: - '@midscene/core': 0.6.2 - '@midscene/shared': 0.6.2 + '@midscene/core': 0.8.4 + '@midscene/shared': 0.8.4 '@xmldom/xmldom': 0.8.10 + cors: 2.8.5 + express: 4.21.1 inquirer: 10.1.5 openai: 4.57.1 playwright: 1.48.0 @@ -1836,14 +2004,14 @@ snapshots: dependencies: '@types/node': 22.7.5 - '@types/node-fetch@2.6.11': + '@types/node-fetch@2.6.12': dependencies: '@types/node': 22.7.5 form-data: 4.0.1 '@types/node@16.9.1': {} - '@types/node@18.19.55': + '@types/node@18.19.64': dependencies: undici-types: 5.26.5 @@ -1851,7 +2019,7 @@ snapshots: dependencies: undici-types: 6.19.8 - '@types/qs@6.9.16': {} + '@types/qs@6.9.17': {} '@types/stack-utils@2.0.3': {} @@ -1869,11 +2037,16 @@ snapshots: dependencies: event-target-shim: 5.0.1 - acorn-jsx@5.3.2(acorn@8.12.1): + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: - acorn: 8.12.1 + acorn: 8.14.0 - acorn@8.12.1: {} + acorn@8.14.0: {} agentkeepalive@4.5.0: dependencies: @@ -1910,6 +2083,8 @@ snapshots: argparse@2.0.1: {} + array-flatten@1.1.1: {} + asynckit@0.4.0: {} balanced-match@1.0.2: {} @@ -1918,6 +2093,21 @@ snapshots: bmp-js@0.1.0: {} + body-parser@1.20.3: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.13.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -1938,6 +2128,8 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + bytes@3.1.2: {} + call-bind@1.0.7: dependencies: es-define-property: 1.0.0 @@ -1989,12 +2181,37 @@ snapshots: concat-map@0.0.1: {} + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.5: {} + + cookie-signature@1.0.6: {} + + cookie@0.7.1: {} + + cors@2.8.5: + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + cross-spawn@7.0.3: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + debug@2.6.9: + dependencies: + ms: 2.0.0 + debug@4.3.7: dependencies: ms: 2.1.3 @@ -2009,6 +2226,10 @@ snapshots: delayed-stream@1.0.0: {} + depd@2.0.0: {} + + destroy@1.2.0: {} + diff-sequences@29.6.3: {} dom-walk@0.1.2: {} @@ -2017,16 +2238,24 @@ snapshots: eastasianwidth@0.2.0: {} + ee-first@1.1.1: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} + encodeurl@1.0.2: {} + + encodeurl@2.0.0: {} + es-define-property@1.0.0: dependencies: get-intrinsic: 1.2.4 es-errors@1.3.0: {} + escape-html@1.0.3: {} + escape-string-regexp@1.0.5: {} escape-string-regexp@2.0.0: {} @@ -2040,37 +2269,37 @@ snapshots: prettier-linter-helpers: 1.0.0 synckit: 0.9.2 - eslint-scope@8.1.0: + eslint-scope@8.2.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.1.0: {} + eslint-visitor-keys@4.2.0: {} eslint@9.12.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) - '@eslint-community/regexpp': 4.11.1 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.12.0) + '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.18.0 '@eslint/core': 0.6.0 - '@eslint/eslintrc': 3.1.0 + '@eslint/eslintrc': 3.2.0 '@eslint/js': 9.12.0 - '@eslint/plugin-kit': 0.2.0 - '@humanfs/node': 0.16.5 + '@eslint/plugin-kit': 0.2.3 + '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.3.1 '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 debug: 4.3.7 escape-string-regexp: 4.0.0 - eslint-scope: 8.1.0 - eslint-visitor-keys: 4.1.0 - espree: 10.2.0 + eslint-scope: 8.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -2089,11 +2318,11 @@ snapshots: transitivePeerDependencies: - supports-color - espree@10.2.0: + espree@10.3.0: dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) - eslint-visitor-keys: 4.1.0 + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 4.2.0 esquery@1.6.0: dependencies: @@ -2107,6 +2336,8 @@ snapshots: esutils@2.0.3: {} + etag@1.8.1: {} + event-target-shim@5.0.1: {} exif-parser@0.1.12: {} @@ -2119,6 +2350,40 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 + express@4.21.1: + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.3 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.7.1 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.3.1 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.3 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.10 + proxy-addr: 2.0.7 + qs: 6.13.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.19.0 + serve-static: 1.16.2 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + external-editor@3.1.0: dependencies: chardet: 0.7.0 @@ -2147,6 +2412,16 @@ snapshots: dependencies: to-regex-range: 5.0.1 + finalhandler@1.3.1: + dependencies: + debug: 2.6.9 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -2154,10 +2429,10 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.3.1 + flatted: 3.3.2 keyv: 4.5.4 - flatted@3.3.1: {} + flatted@3.3.2: {} follow-redirects@1.15.9: {} @@ -2179,6 +2454,10 @@ snapshots: node-domexception: 1.0.0 web-streams-polyfill: 4.0.0-beta.3 + forwarded@0.2.0: {} + + fresh@0.5.2: {} + fsevents@2.3.2: optional: true @@ -2239,6 +2518,14 @@ snapshots: dependencies: function-bind: 1.1.2 + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + humanize-ms@1.2.1: dependencies: ms: 2.1.3 @@ -2274,6 +2561,8 @@ snapshots: run-async: 3.0.0 rxjs: 7.8.1 + ipaddr.js@1.9.1: {} + is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} @@ -2390,6 +2679,12 @@ snapshots: lru-cache@11.0.1: {} + media-typer@0.3.0: {} + + merge-descriptors@1.0.3: {} + + methods@1.1.2: {} + micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -2417,37 +2712,43 @@ snapshots: minipass@7.1.2: {} + ms@2.0.0: {} + ms@2.1.3: {} mute-stream@1.0.0: {} natural-compare@1.4.0: {} - node-domexception@1.0.0: {} + negotiator@0.6.3: {} - node-fetch@2.6.7: - dependencies: - whatwg-url: 5.0.0 + node-domexception@1.0.0: {} node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 - object-inspect@1.13.2: {} + object-assign@4.1.1: {} + + object-inspect@1.13.3: {} omggif@1.0.10: {} + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + openai@4.57.1: dependencies: - '@types/node': 18.19.55 - '@types/node-fetch': 2.6.11 - '@types/qs': 6.9.16 + '@types/node': 18.19.64 + '@types/node-fetch': 2.6.12 + '@types/qs': 6.9.17 abort-controller: 3.0.0 agentkeepalive: 4.5.0 form-data-encoder: 1.7.2 formdata-node: 4.4.1 node-fetch: 2.7.0 - qs: 6.13.0 + qs: 6.13.1 transitivePeerDependencies: - encoding @@ -2491,6 +2792,8 @@ snapshots: parse-headers@2.0.5: {} + parseurl@1.3.3: {} + path-exists@4.0.0: {} path-key@3.1.1: {} @@ -2500,6 +2803,8 @@ snapshots: lru-cache: 11.0.1 minipass: 7.1.2 + path-to-regexp@0.1.10: {} + peek-readable@4.1.0: {} phin@3.7.1: @@ -2544,12 +2849,30 @@ snapshots: process@0.11.10: {} + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + punycode@2.3.1: {} qs@6.13.0: dependencies: side-channel: 1.0.6 + qs@6.13.1: + dependencies: + side-channel: 1.0.6 + + range-parser@1.2.1: {} + + raw-body@2.5.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + react-is@18.3.1: {} readable-stream@3.6.2: @@ -2575,7 +2898,7 @@ snapshots: rxjs@7.8.1: dependencies: - tslib: 2.8.0 + tslib: 2.8.1 safe-buffer@5.2.1: {} @@ -2583,6 +2906,29 @@ snapshots: sax@1.4.1: {} + send@0.19.0: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + + serve-static@1.16.2: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.19.0 + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -2592,6 +2938,8 @@ snapshots: gopd: 1.0.1 has-property-descriptors: 1.0.2 + setprototypeof@1.2.0: {} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -2603,7 +2951,7 @@ snapshots: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.2 + object-inspect: 1.13.3 signal-exit@4.1.0: {} @@ -2613,6 +2961,8 @@ snapshots: dependencies: escape-string-regexp: 2.0.0 + statuses@2.0.1: {} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -2671,6 +3021,8 @@ snapshots: dependencies: is-number: 7.0.0 + toidentifier@1.0.1: {} + token-types@4.2.1: dependencies: '@tokenizer/token': 0.3.0 @@ -2680,7 +3032,7 @@ snapshots: tslib@2.7.0: {} - tslib@2.8.0: {} + tslib@2.8.1: {} type-check@0.4.0: dependencies: @@ -2688,12 +3040,19 @@ snapshots: type-fest@0.21.3: {} + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + typescript@5.6.3: {} undici-types@5.26.5: {} undici-types@6.19.8: {} + unpipe@1.0.0: {} + uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -2704,6 +3063,10 @@ snapshots: util-deprecate@1.0.2: {} + utils-merge@1.0.1: {} + + vary@1.1.2: {} + web-streams-polyfill@4.0.0-beta.3: {} webidl-conversions@3.0.1: {}