diff --git a/.eslintrc.js b/.eslintrc.js index a0e61f2..984993c 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -6,6 +6,7 @@ module.exports = { 'node_modules/', 'package.json', 'tsconfig.json', + 'packages/*/dist/', ], env: { browser: true, diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index d8f7672..b28f879 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -17,7 +17,7 @@ jobs: - run: yarn - run: yarn lint-test - run: yarn build - - run: yarn publish --access=public + - run: yarn workspace @hawk.so/javascript publish --access=public env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} notify: @@ -28,6 +28,8 @@ jobs: - name: Get package info id: package uses: codex-team/action-nodejs-package-info@v1 + with: + path: packages/javascript - name: Send a message uses: codex-team/action-codexbot-notify@v1 with: diff --git a/README.md b/README.md index 44fca79..87dbba7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Hawk JavaScript Catcher +# Hawk JavaScript Error tracking for JavaScript/TypeScript applications. @@ -18,210 +18,10 @@ Error tracking for JavaScript/TypeScript applications. -  Vue support -  React support -## Installation +## Packages -We recommend adding Hawk script to page above others to prevent missing any errors. - -### Install via NPM or Yarn - -Install package - -```shell -npm install @hawk.so/javascript --save -``` - -```shell -yarn add @hawk.so/javascript -``` - -Then import `@hawk.so/javascript` module to your code. - -```js -import HawkCatcher from '@hawk.so/javascript'; -```` - -### Load from CDN - -Get the newest bundle path from [@hawk.so/javascript](https://www.jsdelivr.com/package/npm/@hawk.so/javascript) — open site and get the link to latest distributed JS bundle. - -Then require this script on your site. - -``` - -``` - -## Usage - -### Get an Integration Token - -First of all, you should register an account on [hawk.so](https://garage.hawk.so/sign-up). - -Then create a Workspace and a Project in there. You'll get an Integration Token. - -### Initialize Catcher - -Create `HawkCatcher` class instance when script will be ready and pass your Integration Token: - -```js -const hawk = new HawkCatcher({token: 'INTEGRATION_TOKEN'}); - -// or - -const hawk = new HawkCatcher('INTEGRATION_TOKEN'); -``` - -Alternately, add `onload="const hawk = new HawkCatcher({token: 'INTEGRATION_TOKEN'})"` attribute to the ` -``` - -Initialization settings: - -| name | type | required | description | -| -- | -- | -- | -- | -| `token` | string | **required** | Your project's Integration Token | -| `release` | string/number | optional | Unique identifier of the release. Used for source map consuming (see below) | -| `user` | {id: string, name?: string, image?: string, url?: string} | optional | Current authenticated user | -| `context` | object | optional | Any data you want to pass with every message. Has limitation of length. | -| `vue` | Vue constructor | optional | Pass Vue constructor to set up the [Vue integration](#integrate-to-vue-application) | -| `disableGlobalErrorsHandling` | boolean | optional | Do not initialize global errors handling | -| `disableVueErrorHandler` | boolean | optional | Do not initialize Vue errors handling | -| `consoleTracking` | boolean | optional | Initialize console logs tracking | -| `beforeSend` | function(event) => event | optional | This Method allows you to filter any data you don't want sending to Hawk | - -Other available [initial settings](types/hawk-initial-settings.d.ts) are described at the type definition. - -## Manual sending - -You can send errors or other messages to the Hawk manually, for example at your `catch` blocks or any debug conditions. - -Use the `.send(message, context)` method for that. This method accepts the `message` of type `Error` or `string` -as the first parameter. The second parameter is optional, it allows passing any additional data with the event. -If you specify the `context` with the `HawkCatcher` constructor, it will be merged with the context passed to the `send` method. - -```js -// init Hawk Catcher instance -const hawk = new HawkCatcher({token: 'INTEGRATION_TOKEN'}); - -// somewhere in try-catch block or other custom place -hawk.send(new Error('Something went wrong'), { - myOwnDebugInfo: '1234', -}); -``` - -## User Management - -You can dynamically manage user information after the catcher is initialized: - -```js -const hawk = new HawkCatcher({ token: 'INTEGRATION_TOKEN' }); - -// Set user information -hawk.setUser({ - id: 'user123', - name: 'John Doe', - url: '/users/123', - image: 'https://example.com/avatar.jpg', -}); - -// Clear user (revert to generated user) -hawk.clearUser(); -``` - -## Context Management - -You can dynamically update context data that will be sent with all events: - -```js -const hawk = new HawkCatcher({ token: 'INTEGRATION_TOKEN' }); - -// Set context data -hawk.setContext({ - feature: 'user-dashboard', - version: '2.1.0', - environment: 'production', -}); -``` - -## Source maps consuming - -If your bundle is minified, it is useful to pass source-map files to the Hawk. After that you will see beautiful original source code lines in Hawk Garage instead of minified code. - -To enable source map consuming you should do two things: - -- Send the source map and the release identifier to the Hawk after you build a new version of the script. For example with the [Hawk Webpack Plugin](https://github.com/codex-team/hawk.webpack.plugin) or with cURL request. -- Pass the release identifier to the Hawk Catcher using `release` option. - -## Testing and server responses - -To make sure that Hawk is working right, call `test()` method from `HawkCatcher` class instance in browser's console. -`test()` method sends fake error to server. Then, open Hawk and find a test event at the Project's page. - -## Sensitive data filtering - -You can filter any data that you don't want to send to Hawk. Use the `beforeSend()` hook for that reason. - -```js -window.hawk = new HawkCatcher({ - token: 'INTEGRATION TOKEN', - beforeSend(event){ - if (event.user && event.user.name){ - delete event.user.name; - } - - return event; - } -}) -``` - -## Dismiss error - -You can use the `beforeSend()` hook to prevent sending a particular event. Return `false` for that. - -## Usage with    Vue.js - -Vue apps have their own error handler, so if you want to catcher errors thrown inside Vue components, you should set up a Vue integration. - -Pass the Vue constructor with the initial settings: - -```js -import Vue from 'vue'; - -const hawk = new HawkCatcher({ - token: 'INTEGRATION_TOKEN', - vue: Vue // the Vue constructor you tweak -}); -``` - -or pass it any moment after Hawk Catcher was instantiated: - - -```js -import Vue from 'vue'; - -const hawk = new HawkCatcher({ - token: 'INTEGRATION_TOKEN', -}); - -hawk.connectVue(Vue) -``` - - -## Usage with    React - -React is suppported out of the box. No additional setup required. - -Create the Hawk Catcher instance in a `index.js` file of your project. - - -```js -import HawkCatcher from '@hawk.so/javascript'; - -const hawk = new HawkCatcher({ - token: 'INTEGRATION_TOKEN' -}); -``` +- **[@hawk.so/javascript](./packages/javascript)** - Core JavaScript/TypeScript error tracking SDK +- **[@hawk.so/svelte](./packages/svelte)** - Hawk integration for Svelte apps ## License diff --git a/package.json b/package.json index 533bb7b..1693e67 100644 --- a/package.json +++ b/package.json @@ -1,41 +1,22 @@ { - "name": "@hawk.so/javascript", - "type": "commonjs", - "version": "3.2.12", - "description": "JavaScript errors tracking for Hawk.so", - "files": [ - "dist" + "private": true, + "name": "hawk.javascript", + "type": "module", + "version": "0.0.0", + "workspaces": [ + "packages/*" ], - "main": "./dist/hawk.umd.js", - "module": "./dist/hawk.mjs", - "types": "dist/index.d.ts", - "exports": { - ".": { - "types": "./dist/index.d.ts", - "import": "./dist/hawk.mjs", - "require": "./dist/hawk.umd.js" - } - }, "scripts": { - "dev": "vite", - "build": "vite build", - "stats": "size-limit > stats.txt", - "lint": "eslint -c ./.eslintrc.js src/ --ext .ts,.js --fix", - "lint-test": "eslint -c ./.eslintrc.js src/ --ext .ts,.js" + "dev": "yarn workspace @hawk.so/javascript dev", + "build": "yarn workspace @hawk.so/javascript build", + "stats": "yarn workspace @hawk.so/javascript stats", + "lint": "eslint -c ./.eslintrc.js packages/*/src --ext .ts,.js --fix", + "lint-test": "eslint -c ./.eslintrc.js packages/*/src --ext .ts,.js" }, "repository": { "type": "git", "url": "git+https://github.com/codex-team/hawk.javascript.git" }, - "author": { - "name": "CodeX", - "email": "team@codex.so" - }, - "license": "AGPL-3.0-only", - "bugs": { - "url": "https://github.com/codex-team/hawk.javascript/issues" - }, - "homepage": "https://github.com/codex-team/hawk.javascript#readme", "devDependencies": { "@size-limit/preset-small-lib": "^11.1.6", "eslint": "^7.24.0", @@ -43,12 +24,6 @@ "rollup-plugin-license": "^3.5.3", "size-limit": "^11.1.6", "typescript": "^5.6.3", - "vite": "^5.4.9", - "vue": "^2" - }, - "dependencies": { - "@hawk.so/types": "^0.1.36", - "error-stack-parser": "^2.1.4", - "vite-plugin-dts": "^4.2.4" + "vite": "^5.4.9" } } diff --git a/.babelrc b/packages/javascript/.babelrc similarity index 100% rename from .babelrc rename to packages/javascript/.babelrc diff --git a/.size-limit.js b/packages/javascript/.size-limit.js similarity index 64% rename from .size-limit.js rename to packages/javascript/.size-limit.js index 403d5e5..8a8e029 100644 --- a/.size-limit.js +++ b/packages/javascript/.size-limit.js @@ -1,6 +1,6 @@ module.exports = [ { - path: "dist/hawk.js", + path: "dist/hawk.umd.js", name: "hawk browser" } ]; diff --git a/packages/javascript/README.md b/packages/javascript/README.md new file mode 100644 index 0000000..17daadc --- /dev/null +++ b/packages/javascript/README.md @@ -0,0 +1,217 @@ +# Hawk JavaScript Catcher + +Error tracking for JavaScript/TypeScript applications. + +## Installation + +We recommend adding Hawk script to page above others to prevent missing any errors. + +### Install via NPM or Yarn + +Install package + +```shell +npm install @hawk.so/javascript --save +``` + +```shell +yarn add @hawk.so/javascript +``` + +Then import `@hawk.so/javascript` module to your code. + +```js +import HawkCatcher from '@hawk.so/javascript'; +``` + +### Load from CDN + +Get a specific version bundle path from [@hawk.so/javascript](https://www.jsdelivr.com/package/npm/@hawk.so/javascript) +— open the page and copy the link. Do not use @latest, as your setup may break in case of a major API update. + +Then require this script on your site. + +``` + +``` + +## Usage + +### Get an Integration Token + +First of all, you should register an account on +[hawk.so](https://hawk-tracker.ru/signup?utm_source=github&utm_medium=readme&utm_campaign=js_sdk&utm_content=signup_link). + +Then create a Workspace and a Project in there. You'll get an Integration Token. + +### Initialize Catcher + +Create `HawkCatcher` class instance when script will be ready and pass your Integration Token: + +```js +const hawk = new HawkCatcher({token: 'INTEGRATION_TOKEN'}); + +// or + +const hawk = new HawkCatcher('INTEGRATION_TOKEN'); +``` + +Alternately, add `onload="const hawk = new HawkCatcher({token: 'INTEGRATION_TOKEN'})"` attribute to the ` +``` + +Initialization settings: + +| name | type | required | description | +|-------------------------------|-----------------------------------------------------------|--------------|-------------------------------------------------------------------------------------| +| `token` | string | **required** | Your project's Integration Token | +| `release` | string/number | optional | Unique identifier of the release. Used for source map consuming (see below) | +| `user` | {id: string, name?: string, image?: string, url?: string} | optional | Current authenticated user | +| `context` | object | optional | Any data you want to pass with every message. Has limitation of length. | +| `vue` | Vue constructor | optional | Pass Vue constructor to set up the [Vue integration](#integrate-to-vue-application) | +| `disableGlobalErrorsHandling` | boolean | optional | Do not initialize global errors handling | +| `disableVueErrorHandler` | boolean | optional | Do not initialize Vue errors handling | +| `consoleTracking` | boolean | optional | Initialize console logs tracking | +| `beforeSend` | function(event) => event | optional | This Method allows you to filter any data you don't want sending to Hawk | + +Other available [initial settings](types/hawk-initial-settings.d.ts) are described at the type definition. + +## Manual sending + +You can send errors or other messages to the Hawk manually, for example at your `catch` blocks or any debug conditions. + +Use the `.send(message, context)` method for that. This method accepts the `message` of type `Error` or `string` +as the first parameter. The second parameter is optional, it allows passing any additional data with the event. +If you specify the `context` with the `HawkCatcher` constructor, it will be merged with the context passed to the `send` +method. + +```js +// init Hawk Catcher instance +const hawk = new HawkCatcher({token: 'INTEGRATION_TOKEN'}); + +// somewhere in try-catch block or other custom place +hawk.send(new Error('Something went wrong'), { + myOwnDebugInfo: '1234', +}); +``` + +## User Management + +You can dynamically manage user information after the catcher is initialized: + +```js +const hawk = new HawkCatcher({token: 'INTEGRATION_TOKEN'}); + +// Set user information +hawk.setUser({ + id: 'user123', + name: 'John Doe', + url: '/users/123', + image: 'https://example.com/avatar.jpg', +}); + +// Clear user (revert to generated user) +hawk.clearUser(); +``` + +## Context Management + +You can dynamically update context data that will be sent with all events: + +```js +const hawk = new HawkCatcher({token: 'INTEGRATION_TOKEN'}); + +// Set context data +hawk.setContext({ + feature: 'user-dashboard', + version: '2.1.0', + environment: 'production', +}); +``` + +## Source maps consuming + +If your bundle is minified, it is useful to pass source-map files to the Hawk. After that you will see beautiful +original source code lines in Hawk Garage instead of minified code. + +To enable source map consuming you should do two things: + +- Send the source map and the release identifier to the Hawk after you build a new version of the script. For example + with the [Hawk Webpack Plugin](https://github.com/codex-team/hawk.webpack.plugin) or with cURL request. +- Pass the release identifier to the Hawk Catcher using `release` option. + +## Testing and server responses + +To make sure that Hawk is working right, call `test()` method from `HawkCatcher` class instance in browser's console. +`test()` method sends fake error to server. Then, open Hawk and find a test event at the Project's page. + +## Sensitive data filtering + +You can filter any data that you don't want to send to Hawk. Use the `beforeSend()` hook for that reason. + +```js +window.hawk = new HawkCatcher({ + token: 'INTEGRATION TOKEN', + beforeSend(event) { + if (event.user && event.user.name) { + delete event.user.name; + } + + return event; + } +}) +``` + +## Dismiss error + +You can use the `beforeSend()` hook to prevent sending a particular event. Return `false` for that. + +## Usage with    Vue.js + +Vue apps have their own error handler, so if you want to catcher errors thrown inside Vue components, you should set up +a Vue integration. + +Pass the Vue constructor with the initial settings: + +```js +import Vue from 'vue'; + +const hawk = new HawkCatcher({ + token: 'INTEGRATION_TOKEN', + vue: Vue // the Vue constructor you tweak +}); +``` + +or pass it any moment after Hawk Catcher was instantiated: + +```js +import Vue from 'vue'; + +const hawk = new HawkCatcher({ + token: 'INTEGRATION_TOKEN', +}); + +hawk.connectVue(Vue) +``` + +## Usage with    React + +React is suppported out of the box. No additional setup required. + +Create the Hawk Catcher instance in a `index.js` file of your project. + +```js +import HawkCatcher from '@hawk.so/javascript'; + +const hawk = new HawkCatcher({ + token: 'INTEGRATION_TOKEN' +}); +``` + +## License + +This project is licensed under the **GNU Affero General Public License v3.0 (AGPL-3.0)**. +See the [LICENSE](./LICENSE) file for the full text. diff --git a/example/index.html b/packages/javascript/example/index.html similarity index 100% rename from example/index.html rename to packages/javascript/example/index.html diff --git a/example/sample-errors.js b/packages/javascript/example/sample-errors.js similarity index 100% rename from example/sample-errors.js rename to packages/javascript/example/sample-errors.js diff --git a/packages/javascript/package.json b/packages/javascript/package.json new file mode 100644 index 0000000..081f0a1 --- /dev/null +++ b/packages/javascript/package.json @@ -0,0 +1,45 @@ +{ + "name": "@hawk.so/javascript", + "version": "3.2.12", + "description": "JavaScript errors tracking for Hawk.so", + "files": [ + "dist" + ], + "main": "./dist/hawk.umd.js", + "module": "./dist/hawk.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/hawk.mjs", + "require": "./dist/hawk.umd.js" + } + }, + "scripts": { + "dev": "vite", + "build": "vite build", + "stats": "size-limit > stats.txt" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/codex-team/hawk.javascript.git", + "directory": "packages/javascript" + }, + "author": { + "name": "CodeX", + "email": "team@codex.so" + }, + "license": "AGPL-3.0-only", + "bugs": { + "url": "https://github.com/codex-team/hawk.javascript/issues" + }, + "homepage": "https://github.com/codex-team/hawk.javascript#readme", + "dependencies": { + "@hawk.so/types": "^0.1.36", + "error-stack-parser": "^2.1.4" + }, + "devDependencies": { + "vue": "^2", + "vite-plugin-dts": "^4.2.4" + } +} diff --git a/src/addons/consoleCatcher.ts b/packages/javascript/src/addons/consoleCatcher.ts similarity index 100% rename from src/addons/consoleCatcher.ts rename to packages/javascript/src/addons/consoleCatcher.ts diff --git a/src/addons/userAgentInfo.ts b/packages/javascript/src/addons/userAgentInfo.ts similarity index 100% rename from src/addons/userAgentInfo.ts rename to packages/javascript/src/addons/userAgentInfo.ts diff --git a/src/catcher.ts b/packages/javascript/src/catcher.ts similarity index 100% rename from src/catcher.ts rename to packages/javascript/src/catcher.ts diff --git a/src/errors.ts b/packages/javascript/src/errors.ts similarity index 100% rename from src/errors.ts rename to packages/javascript/src/errors.ts diff --git a/src/index.ts b/packages/javascript/src/index.ts similarity index 100% rename from src/index.ts rename to packages/javascript/src/index.ts diff --git a/src/integrations/vue.ts b/packages/javascript/src/integrations/vue.ts similarity index 100% rename from src/integrations/vue.ts rename to packages/javascript/src/integrations/vue.ts diff --git a/src/modules/fetchTimer.ts b/packages/javascript/src/modules/fetchTimer.ts similarity index 100% rename from src/modules/fetchTimer.ts rename to packages/javascript/src/modules/fetchTimer.ts diff --git a/src/modules/sanitizer.ts b/packages/javascript/src/modules/sanitizer.ts similarity index 100% rename from src/modules/sanitizer.ts rename to packages/javascript/src/modules/sanitizer.ts diff --git a/src/modules/socket.ts b/packages/javascript/src/modules/socket.ts similarity index 100% rename from src/modules/socket.ts rename to packages/javascript/src/modules/socket.ts diff --git a/src/modules/stackParser.ts b/packages/javascript/src/modules/stackParser.ts similarity index 100% rename from src/modules/stackParser.ts rename to packages/javascript/src/modules/stackParser.ts diff --git a/src/types/catcher-message.ts b/packages/javascript/src/types/catcher-message.ts similarity index 100% rename from src/types/catcher-message.ts rename to packages/javascript/src/types/catcher-message.ts diff --git a/src/types/event.ts b/packages/javascript/src/types/event.ts similarity index 100% rename from src/types/event.ts rename to packages/javascript/src/types/event.ts diff --git a/src/types/hawk-initial-settings.ts b/packages/javascript/src/types/hawk-initial-settings.ts similarity index 100% rename from src/types/hawk-initial-settings.ts rename to packages/javascript/src/types/hawk-initial-settings.ts diff --git a/src/types/index.ts b/packages/javascript/src/types/index.ts similarity index 100% rename from src/types/index.ts rename to packages/javascript/src/types/index.ts diff --git a/src/types/integrations.ts b/packages/javascript/src/types/integrations.ts similarity index 100% rename from src/types/integrations.ts rename to packages/javascript/src/types/integrations.ts diff --git a/src/utils/event.ts b/packages/javascript/src/utils/event.ts similarity index 100% rename from src/utils/event.ts rename to packages/javascript/src/utils/event.ts diff --git a/src/utils/id.ts b/packages/javascript/src/utils/id.ts similarity index 100% rename from src/utils/id.ts rename to packages/javascript/src/utils/id.ts diff --git a/src/utils/log.ts b/packages/javascript/src/utils/log.ts similarity index 100% rename from src/utils/log.ts rename to packages/javascript/src/utils/log.ts diff --git a/src/utils/validation.ts b/packages/javascript/src/utils/validation.ts similarity index 100% rename from src/utils/validation.ts rename to packages/javascript/src/utils/validation.ts diff --git a/packages/javascript/stats.txt b/packages/javascript/stats.txt new file mode 100644 index 0000000..0dda1a3 --- /dev/null +++ b/packages/javascript/stats.txt @@ -0,0 +1,3 @@ + + Size: 6.76 kB with all dependencies, minified and brotlied + diff --git a/packages/javascript/tsconfig.json b/packages/javascript/tsconfig.json new file mode 100644 index 0000000..d57ffc8 --- /dev/null +++ b/packages/javascript/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src", + "baseUrl": ".", + "paths": { + "@/types": ["src/types"] + } + }, + "include": [ + "src/**/*", + "src/types/*" + ] +} diff --git a/vite.config.ts b/packages/javascript/vite.config.ts similarity index 94% rename from vite.config.ts rename to packages/javascript/vite.config.ts index 2fd46d0..47fe52e 100644 --- a/vite.config.ts +++ b/packages/javascript/vite.config.ts @@ -1,5 +1,5 @@ import path from 'path'; -import dts from 'vite-plugin-dts' +import dts from 'vite-plugin-dts'; import { defineConfig } from 'vite'; import license from 'rollup-plugin-license'; @@ -11,6 +11,7 @@ const VERSION = pkg.version; /** * Trick to use Vite server.open option on macOS + * * @see https://github.com/facebook/create-react-app/pull/1690#issuecomment-283518768 */ process.env.BROWSER = 'open'; @@ -55,7 +56,7 @@ export default defineConfig(() => { resolve: { alias: { - '@/types': path.resolve(__dirname, './types'), + '@/types': path.resolve(__dirname, './src/types'), }, }, @@ -69,5 +70,5 @@ export default defineConfig(() => { tsconfigPath: './tsconfig.json', }), ], - } + }; }); diff --git a/packages/svelte-playground/.gitignore b/packages/svelte-playground/.gitignore new file mode 100644 index 0000000..2ca197d --- /dev/null +++ b/packages/svelte-playground/.gitignore @@ -0,0 +1,18 @@ +# Dependencies +node_modules + +# Build output +.output +.vercel +.netlify +.wrangler +.svelte-kit +build +dist + +# OS +.DS_Store +Thumbs.db + +# IDE +.idea/ diff --git a/packages/svelte-playground/README.md b/packages/svelte-playground/README.md new file mode 100644 index 0000000..1766c37 --- /dev/null +++ b/packages/svelte-playground/README.md @@ -0,0 +1,23 @@ +# Hawk Error Tracker - SvelteKit Playground + +Test playground for Hawk Error Tracker integration with SvelteKit and Svelte. + +## Table of Contents + +- [Getting Started](#getting-started) + +## Getting Started + +### Setup + +**1. Install dependencies:** + +```shell +yarn install +``` + +**2. Start development server:** + +```shell +yarn dev +``` diff --git a/packages/svelte-playground/package.json b/packages/svelte-playground/package.json new file mode 100644 index 0000000..87473da --- /dev/null +++ b/packages/svelte-playground/package.json @@ -0,0 +1,17 @@ +{ + "private": true, + "name": "@hawk.so/svelte-playground", + "version": "1.0.0", + "type": "module", + "description": "Svelte playground for testing Hawk error handling integration", + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview" + }, + "devDependencies": { + "@sveltejs/kit": "^2.48.5", + "@sveltejs/vite-plugin-svelte": "^6.2.1", + "svelte": "^5.45.10" + } +} diff --git a/packages/svelte-playground/src/app.css b/packages/svelte-playground/src/app.css new file mode 100644 index 0000000..e69de29 diff --git a/packages/svelte-playground/src/app.d.ts b/packages/svelte-playground/src/app.d.ts new file mode 100644 index 0000000..520c421 --- /dev/null +++ b/packages/svelte-playground/src/app.d.ts @@ -0,0 +1,13 @@ +// See https://svelte.dev/docs/kit/types#app.d.ts +// for information about these interfaces +declare global { + namespace App { + // interface Error {} + // interface Locals {} + // interface PageData {} + // interface PageState {} + // interface Platform {} + } +} + +export {}; diff --git a/packages/svelte-playground/src/app.html b/packages/svelte-playground/src/app.html new file mode 100644 index 0000000..d57bbe3 --- /dev/null +++ b/packages/svelte-playground/src/app.html @@ -0,0 +1,11 @@ + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/packages/svelte-playground/src/lib/assets/favicon.svg b/packages/svelte-playground/src/lib/assets/favicon.svg new file mode 100644 index 0000000..a8410f8 --- /dev/null +++ b/packages/svelte-playground/src/lib/assets/favicon.svg @@ -0,0 +1 @@ + svelte-logo diff --git a/packages/svelte-playground/src/routes/+layout.svelte b/packages/svelte-playground/src/routes/+layout.svelte new file mode 100644 index 0000000..631a9dd --- /dev/null +++ b/packages/svelte-playground/src/routes/+layout.svelte @@ -0,0 +1,12 @@ + + + + + + +{@render children()} diff --git a/packages/svelte-playground/src/routes/+page.svelte b/packages/svelte-playground/src/routes/+page.svelte new file mode 100644 index 0000000..dcea8f7 --- /dev/null +++ b/packages/svelte-playground/src/routes/+page.svelte @@ -0,0 +1,3 @@ + + Hawk Javascript SvelteKit Integration Playground + diff --git a/packages/svelte-playground/svelte.config.js b/packages/svelte-playground/svelte.config.js new file mode 100644 index 0000000..f69ec56 --- /dev/null +++ b/packages/svelte-playground/svelte.config.js @@ -0,0 +1,26 @@ +/** + * SvelteKit configuration file + * + * This file configures the SvelteKit application build process and runtime behavior. + * + * @see {@link https://kit.svelte.dev/docs/configuration} + */ + +import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; + +/** + * SvelteKit configuration object + * + * @type {import('@sveltejs/kit').Config} + */ +const config = { + /** + * Preprocessor configuration + * + * Uses Vite's preprocessor to handle TypeScript, PostCSS, and other transformations + * before the Svelte compiler processes the components. + */ + preprocess: vitePreprocess(), +}; + +export default config; diff --git a/packages/svelte-playground/tsconfig.json b/packages/svelte-playground/tsconfig.json new file mode 100644 index 0000000..a1de5e3 --- /dev/null +++ b/packages/svelte-playground/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true + } +} diff --git a/packages/svelte-playground/vite.config.ts b/packages/svelte-playground/vite.config.ts new file mode 100644 index 0000000..0b1bd59 --- /dev/null +++ b/packages/svelte-playground/vite.config.ts @@ -0,0 +1,9 @@ +import { sveltekit } from '@sveltejs/kit/vite'; +import { defineConfig } from 'vite'; + +export default defineConfig({ + plugins: [ sveltekit() ], + server: { + host: true, + }, +}); diff --git a/packages/svelte/README.md b/packages/svelte/README.md new file mode 100644 index 0000000..dc78609 --- /dev/null +++ b/packages/svelte/README.md @@ -0,0 +1,23 @@ +# Hawk SDK for Svelte + +Hawk Error Tracker integration for Svelte applications. + +## Usage + +**1. Install package:** + +```shell +npm install @hawk.so/svelte --save +``` + +Svelte is supported out of the box. Initialize HawkCatcher in app's client hooks. + +**2. Create or update `src/hooks.client.ts`:** + +```ts +import Hawk from '@hawk.so/svelte'; + +new Hawk({ + token: 'YOUR_INTEGRATION_TOKEN' +}); +``` diff --git a/packages/svelte/package.json b/packages/svelte/package.json new file mode 100644 index 0000000..db5b449 --- /dev/null +++ b/packages/svelte/package.json @@ -0,0 +1,28 @@ +{ + "name": "@hawk.so/svelte", + "version": "1.0.0", + "description": "Svelte/SvelteKit integration for Hawk Error Tracker", + "main": "./dist/hawk-svelte.umd.js", + "module": "./dist/hawk-svelte.mjs", + "types": "dist/index.d.ts", + "scripts": { + "build": "vite build" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/codex-team/hawk.javascript.git", + "directory": "packages/svelte" + }, + "author": { + "name": "CodeX", + "email": "team@codex.so" + }, + "license": "AGPL-3.0-only", + "bugs": { + "url": "https://github.com/codex-team/hawk.javascript/issues" + }, + "homepage": "https://github.com/codex-team/hawk.javascript#readme", + "dependencies": { + "@hawk.so/javascript": "*" + } +} diff --git a/packages/svelte/src/index.ts b/packages/svelte/src/index.ts new file mode 100644 index 0000000..817ae3e --- /dev/null +++ b/packages/svelte/src/index.ts @@ -0,0 +1,8 @@ +/** + * \@hawk.so/svelte + * + * Svelte/SvelteKit integration for Hawk Error tracker + */ + +export * from '@hawk.so/javascript'; +export { default } from '@hawk.so/javascript'; diff --git a/packages/svelte/tsconfig.json b/packages/svelte/tsconfig.json new file mode 100644 index 0000000..56896f0 --- /dev/null +++ b/packages/svelte/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": [ + "src/**/*" + ] +} diff --git a/packages/svelte/vite.config.ts b/packages/svelte/vite.config.ts new file mode 100644 index 0000000..60017f5 --- /dev/null +++ b/packages/svelte/vite.config.ts @@ -0,0 +1,23 @@ +import path from 'path'; +import dts from 'vite-plugin-dts'; +import { defineConfig } from 'vite'; + +export default defineConfig(() => { + return { + build: { + lib: { + entry: path.resolve(__dirname, 'src', 'index.ts'), + name: 'Hawk', + fileName: 'hawk-svelte', + }, + rollupOptions: { + external: ['svelte', '@hawk.so/javascript'], + }, + }, + plugins: [ + dts({ + tsconfigPath: './tsconfig.json', + }), + ], + }; +}); diff --git a/stats.txt b/stats.txt deleted file mode 100644 index fdd2348..0000000 --- a/stats.txt +++ /dev/null @@ -1,3 +0,0 @@ - - Size: 7.5 KB with all dependencies, minified and gzipped - diff --git a/tsconfig.json b/tsconfig.json index 9624c27..07353bb 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,23 +1,13 @@ { - "compilerOptions" : { + "compilerOptions": { "strict": false, "strictNullChecks": true, "sourceMap": true, "target": "es2015", "declaration": true, - "outDir": "dist", - "rootDir": "src", "module": "NodeNext", "moduleResolution": "nodenext", "lib": ["dom", "es2017", "es2018"], - "baseUrl": ".", - "paths": { - "@/types": ["src/types"] - }, "allowSyntheticDefaultImports": true - }, - "include": [ - "src/**/*", - "src/types/*" - ], + } } diff --git a/yarn.lock b/yarn.lock index 3aa494e..26aab43 100644 --- a/yarn.lock +++ b/yarn.lock @@ -337,11 +337,45 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" + integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/remapping@^2.3.4": + version "2.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" + integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15", "@jridgewell/sourcemap-codec@^1.5.5": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== + "@jridgewell/sourcemap-codec@^1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== +"@jridgewell/trace-mapping@^0.3.24": + version "0.3.31" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" + integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@microsoft/api-extractor-model@7.29.6": version "7.29.6" resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.29.6.tgz#e5941514502049b06ca9af21e2096f8f1ad5a01b" @@ -403,6 +437,11 @@ "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" +"@polka/url@^1.0.0-next.24": + version "1.0.0-next.29" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.29.tgz#5a40109a1ab5f84d6fd8fc928b19f367cbe7e7b1" + integrity sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww== + "@rollup/pluginutils@^5.1.0": version "5.1.2" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.2.tgz#d3bc9f0fea4fd4086aaac6aa102f3fa587ce8bd9" @@ -554,6 +593,53 @@ "@size-limit/file" "11.1.6" size-limit "11.1.6" +"@standard-schema/spec@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@standard-schema/spec/-/spec-1.1.0.tgz#a79b55dbaf8604812f52d140b2c9ab41bc150bb8" + integrity sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w== + +"@sveltejs/acorn-typescript@^1.0.5": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.8.tgz#69c746a7c232094c117c50dedbd1279fc64887b7" + integrity sha512-esgN+54+q0NjB0Y/4BomT9samII7jGwNy/2a3wNZbT2A2RpmXsXwUt24LvLhx6jUq2gVk4cWEvcRO6MFQbOfNA== + +"@sveltejs/kit@^2.48.5": + version "2.49.2" + resolved "https://registry.yarnpkg.com/@sveltejs/kit/-/kit-2.49.2.tgz#1c6f8991538760c3cdc6fa38feee013a78cbaf99" + integrity sha512-Vp3zX/qlwerQmHMP6x0Ry1oY7eKKRcOWGc2P59srOp4zcqyn+etJyQpELgOi4+ZSUgteX8Y387NuwruLgGXLUQ== + dependencies: + "@standard-schema/spec" "^1.0.0" + "@sveltejs/acorn-typescript" "^1.0.5" + "@types/cookie" "^0.6.0" + acorn "^8.14.1" + cookie "^0.6.0" + devalue "^5.3.2" + esm-env "^1.2.2" + kleur "^4.1.5" + magic-string "^0.30.5" + mrmime "^2.0.0" + sade "^1.8.1" + set-cookie-parser "^2.6.0" + sirv "^3.0.0" + +"@sveltejs/vite-plugin-svelte-inspector@^5.0.0": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-5.0.1.tgz#3d35254b76e07551ea8921029a96d99b94ffbc5c" + integrity sha512-ubWshlMk4bc8mkwWbg6vNvCeT7lGQojE3ijDh3QTR6Zr/R+GXxsGbyH4PExEPpiFmqPhYiVSVmHBjUcVc1JIrA== + dependencies: + debug "^4.4.1" + +"@sveltejs/vite-plugin-svelte@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-6.2.1.tgz#3414c10aaacce8f23a8db2a37926da00ab7a78cb" + integrity sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ== + dependencies: + "@sveltejs/vite-plugin-svelte-inspector" "^5.0.0" + debug "^4.4.1" + deepmerge "^4.3.1" + magic-string "^0.30.17" + vitefu "^1.1.1" + "@types/argparse@1.0.38": version "1.0.38" resolved "https://registry.yarnpkg.com/@types/argparse/-/argparse-1.0.38.tgz#a81fd8606d481f873a3800c6ebae4f1d768a56a9" @@ -569,11 +655,21 @@ version "1.1.1" resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" +"@types/cookie@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.6.0.tgz#eac397f28bf1d6ae0ae081363eca2f425bedf0d5" + integrity sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA== + "@types/estree@1.0.6", "@types/estree@^1.0.0": version "1.0.6" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== +"@types/estree@^1.0.5", "@types/estree@^1.0.6": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== + "@types/json-schema@^7.0.12": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" @@ -779,6 +875,11 @@ acorn@^8.12.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.13.0.tgz#2a30d670818ad16ddd6a35d3842dacec9e5d7ca3" integrity sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w== +acorn@^8.14.1: + version "8.15.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" + integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== + ajv-draft-04@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz#3b64761b268ba0b9e668f0b41ba53fce0ad77fc8" @@ -874,6 +975,11 @@ argparse@^1.0.7, argparse@~1.0.9: dependencies: sprintf-js "~1.0.2" +aria-query@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.2.tgz#93f81a43480e33a338f19163a3d10a50c01dcd59" + integrity sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw== + array-buffer-byte-length@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" @@ -961,6 +1067,11 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" +axobject-query@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-4.1.0.tgz#28768c76d0e3cff21bc62a9e2d0b6ac30042a1ee" + integrity sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ== + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -1049,6 +1160,11 @@ chokidar@^4.0.1: dependencies: readdirp "^4.0.1" +clsx@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" + integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -1100,6 +1216,11 @@ confbox@^0.1.8: resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.8.tgz#820d73d3b3c82d9bd910652c5d4d599ef8ff8b06" integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w== +cookie@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + cross-spawn@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6" @@ -1159,10 +1280,22 @@ debug@^4.0.1, debug@^4.1.1, debug@^4.3.4, debug@^4.3.6: dependencies: ms "^2.1.3" +debug@^4.4.1: + version "4.4.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== + dependencies: + ms "^2.1.3" + deep-is@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" +deepmerge@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + define-data-property@^1.0.1, define-data-property@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" @@ -1181,6 +1314,11 @@ define-properties@^1.2.0, define-properties@^1.2.1: has-property-descriptors "^1.0.0" object-keys "^1.1.1" +devalue@^5.3.2, devalue@^5.5.0: + version "5.6.1" + resolved "https://registry.yarnpkg.com/devalue/-/devalue-5.6.1.tgz#f4c0a6e71d1a2bc50c02f9ca3c54ecafeb6a0445" + integrity sha512-jDwizj+IlEZBunHcOuuFVBnIMPAEHvTsJj0BcIp94xYguLRVBcXO853px/MyIJvbVzWdsGvrRweIUWJw8hBP7A== + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -1582,6 +1720,11 @@ eslint@^7.24.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" +esm-env@^1.2.1, esm-env@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/esm-env/-/esm-env-1.2.2.tgz#263c9455c55861f41618df31b20cb571fc20b75e" + integrity sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA== + espree@^7.3.0, espree@^7.3.1: version "7.3.1" resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" @@ -1603,6 +1746,13 @@ esquery@^1.4.0, esquery@^1.5.0: dependencies: estraverse "^5.1.0" +esrap@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/esrap/-/esrap-2.2.1.tgz#cbe28fe94cd7c75b158609d602f5e345bae21259" + integrity sha512-GiYWG34AN/4CUyaWAgunGt0Rxvr1PTMlGC0vvEov/uOQYWne2bpN03Um+k8jT+q3op33mKouP2zeJ6OlM+qeUg== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" @@ -2060,6 +2210,13 @@ is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" +is-reference@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.3.tgz#9ef7bf9029c70a67b2152da4adf57c23d718910f" + integrity sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw== + dependencies: + "@types/estree" "^1.0.6" + is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -2183,6 +2340,11 @@ keyv@^4.5.3: dependencies: json-buffer "3.0.1" +kleur@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + kolorist@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.8.0.tgz#edddbbbc7894bc13302cdf740af6374d4a04743c" @@ -2208,6 +2370,11 @@ local-pkg@^0.5.0: mlly "^1.4.2" pkg-types "^1.0.3" +locate-character@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-character/-/locate-character-3.0.0.tgz#0305c5b8744f61028ef5d01f444009e00779f974" + integrity sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA== + lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" @@ -2237,6 +2404,13 @@ magic-string@^0.30.11, magic-string@~0.30.0: dependencies: "@jridgewell/sourcemap-codec" "^1.5.0" +magic-string@^0.30.17, magic-string@^0.30.5: + version "0.30.21" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.21.tgz#56763ec09a0fa8091df27879fd94d19078c00d91" + integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.5" + merge2@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" @@ -2306,6 +2480,16 @@ moment@~2.30.1: resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== +mri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + +mrmime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.1.tgz#bc3e87f7987853a54c9850eeb1f1078cd44adddc" + integrity sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ== + ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -2600,6 +2784,13 @@ run-parallel@^1.1.9: version "1.1.9" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" +sade@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" + integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== + dependencies: + mri "^1.1.0" + safe-array-concat@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" @@ -2636,6 +2827,11 @@ semver@~7.5.4: dependencies: lru-cache "^6.0.0" +set-cookie-parser@^2.6.0: + version "2.7.2" + resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz#ccd08673a9ae5d2e44ea2a2de25089e67c7edf68" + integrity sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw== + set-function-length@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" @@ -2678,6 +2874,15 @@ side-channel@^1.0.4: get-intrinsic "^1.2.4" object-inspect "^1.13.1" +sirv@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-3.0.2.tgz#f775fccf10e22a40832684848d636346f41cd970" + integrity sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g== + dependencies: + "@polka/url" "^1.0.0-next.24" + mrmime "^2.0.0" + totalist "^3.0.0" + size-limit@11.1.6, size-limit@^11.1.6: version "11.1.6" resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-11.1.6.tgz#75cd54f9326d1b065ebcb6ca9ec27294e7ccdfb1" @@ -2861,6 +3066,27 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +svelte@^5.45.10: + version "5.46.1" + resolved "https://registry.yarnpkg.com/svelte/-/svelte-5.46.1.tgz#fee6626d591076e8efb853087b4912b2b248ca5f" + integrity sha512-ynjfCHD3nP2el70kN5Pmg37sSi0EjOm9FgHYQdC4giWG/hzO3AatzXXJJgP305uIhGQxSufJLuYWtkY8uK/8RA== + dependencies: + "@jridgewell/remapping" "^2.3.4" + "@jridgewell/sourcemap-codec" "^1.5.0" + "@sveltejs/acorn-typescript" "^1.0.5" + "@types/estree" "^1.0.5" + acorn "^8.12.1" + aria-query "^5.3.1" + axobject-query "^4.1.0" + clsx "^2.1.1" + devalue "^5.5.0" + esm-env "^1.2.1" + esrap "^2.2.1" + is-reference "^3.0.3" + locate-character "^3.0.0" + magic-string "^0.30.11" + zimmerframe "^1.1.2" + table@^6.0.9: version "6.8.2" resolved "https://registry.yarnpkg.com/table/-/table-6.8.2.tgz#c5504ccf201213fa227248bdc8c5569716ac6c58" @@ -2895,6 +3121,11 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +totalist@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" + integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== + ts-api-utils@^1.0.1: version "1.3.0" resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" @@ -3033,6 +3264,11 @@ vite@^5.4.9: optionalDependencies: fsevents "~2.3.3" +vitefu@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/vitefu/-/vitefu-1.1.1.tgz#c39b7e4c91bf2f6c590fb96e0758f394dff5795b" + integrity sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ== + vscode-uri@^3.0.8: version "3.0.8" resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.8.tgz#1770938d3e72588659a172d0fd4642780083ff9f" @@ -3088,3 +3324,8 @@ yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +zimmerframe@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/zimmerframe/-/zimmerframe-1.1.4.tgz#0352b5cafad3ad4526b0a526a9a52d9c040d865b" + integrity sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==