Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: exceptionless/Exceptionless.JavaScript
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v3.1.0
Choose a base ref
...
head repository: exceptionless/Exceptionless.JavaScript
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
  • 5 commits
  • 106 files changed
  • 3 contributors

Commits on Mar 24, 2026

  1. Feature/upgrade deps (#151)

    * Upgrade Dependencies
    
    * Upgraded svelte
    
    * Add project-specific Claude agent configuration and AGENTS.md
    
    Add coding standards, architecture docs, and agent configurations
    tailored for the Exceptionless.JavaScript TypeScript SDK monorepo.
    Clean up settings.local.json to remove stale paths from another project.
    
    * Migrate ESLint to flat config (eslint.config.mjs)
    
    Replace legacy .eslintrc.js and .eslintignore with ESLint flat config.
    - Use typescript-eslint v8 with projectService for type-aware linting
    - Add eslint-plugin-jest for test file rules
    - Remove unused Live Server extension recommendation
    - Removed the need for eslint-plugin-import and other legacy plugins
    
    * Fix lint errors from ESLint flat config migration
    
    - Remove unused catch binding variables (BrowserGlobalHandlerPlugin)
    - Replace short-circuit expressions with if statements (Configuration, DefaultEventQueue)
    - Fix duplicate test titles in Utils.test.ts (toBoolean)
    - Fix React error boundary componentDidCatch to use void instead of async
    
    Upgrade root and library package dependencies
    
    Root:
    - eslint 10.x, @eslint/js 10.x, typescript-eslint 8.x (flat config)
    - eslint-config-prettier 10.x, eslint-plugin-jest 29.x
    - typescript 5.9.x, prettier 3.8.x, rimraf 6.x
    - Replace npm-run-all (unmaintained) with npm-run-all2 8.x
    - Remove legacy ESLint plugins (import, jsdoc, eslint-comments, eslint-plugin)
    
    Library packages (core, browser, node, react):
    - Jest 30.x, @jest/globals 30.x, jest-environment-jsdom 30.x
    - ts-jest 29.4.x (supports Jest 30)
    - @types/react 19.2.x, @types/react-dom 19.2.x
    
    Upgrade example app dependencies
    
    - Express 5.x (from 4.x)
    - React 19.2.x, react-dom 19.2.x
    - Vite 6.3+ (all apps)
    - Vue 3.5.30, @vue/compiler-sfc 3.5.30
    - Svelte 5.55.x, svelte-check 4.4.x, @sveltejs/vite-plugin-svelte 6.x
    - @vitejs/plugin-react 4.7.x
    - @testing-library/jest-dom 6.9.x, @testing-library/react 16.3.x
    - Fix Prettier formatting in example files
    
    Regenerate package-lock.json
    
    Clean lockfile regeneration after all dependency upgrades.
    
    Migrate from tseslint.config() to defineConfig()
    
    tseslint.config() is deprecated in favor of ESLint core's defineConfig()
    from eslint/config (available since ESLint v9.22.0). Use extends property
    for shared config arrays instead of spreading.
    
    Remove jQuery dependency from browser example
    
    Replace $.ajax call with native fetch() API. jQuery was only used for
    the AJAX demo button. This removes the last jQuery dependency and
    eliminates the need to track jQuery major version updates.
    
    Upgrade esbuild to 0.27, update dep specifiers
    
    - Upgrade esbuild from ^0.25.0 to ^0.27.0 across all library packages
    - Update @eslint/js specifier to ^10.0.1
    - Update typescript-eslint specifier to ^8.57.2
    - Fix vue package watch script syntax error (& &&)
    
    Upgrade remaining example dependencies
    
    - @vitejs/plugin-vue 5.x → 6.x (supports vite 5-8)
    - @sveltejs/adapter-auto 4.x → 7.x (peer: @sveltejs/kit ^2)
    - vitest 3.x → 4.x (supports vite 6-8)
    
    Regenerate package-lock.json
    
    agent-brower skill
    
    reverted changes
    
    Upgrade TypeScript to 6.0
    
    - TypeScript ^6.0.2 in root and svelte-kit package.json
    - Change moduleResolution from Node to Bundler (deprecated in TS 6)
    - Add types: [angular] to angularjs tsconfig for Bundler compat
    - Configure ts-jest with ignoreDeprecations: 6.0 (ts-jest forces
      module: commonjs which triggers TS 6 node10 deprecation warning)
    
    Format agent-browser skill files with Prettier
    
    Regenerate package-lock.json for TypeScript 6
    
    Fix unused catch variables with trace logging
    
    - Remove caughtErrors: none ESLint rule override
    - Add trace logging in BrowserGlobalHandlerPlugin catch blocks
      for rejection detail and error property access failures
    
    * Adopt #/ subpath imports (TS 6 feature)
    
    - Add package.json imports field with source/default conditions
      to all library packages (core, browser, node, react)
    - Convert all relative imports in src/ and test/ files to #/ paths
    - Add paths mapping in each package's tsconfig.json for tsc resolution
    - Add --conditions=source to esbuild commands for source bundling
    - Replace jest-ts-webcompat-resolver with custom jest-resolver.cjs
      that supports package.json imports field per-package resolution
      and .js → .ts extension mapping
    
    * Update CI and runtime configuration
    
    - Add .npmrc with legacy-peer-deps=true (TS 6 peer dep workaround)
    - Update GitHub Actions matrix: Node 22 + 24 (drop Node 20)
    - Use --legacy-peer-deps in CI npm install step
    - Bump node engine to >=22 (Node 22 LTS)
    - Replace ts-jest ignoreDeprecations with diagnostics: false
      (tsc handles type checking, ts-jest only transpiles)
    
    * Update CI configuration and harden Jest resolver
    
    - Upgrade GitHub Action versions (checkout v6, setup-node v6, cache v5)
    - Add .NET 8 SDK to CI for MinVer versioning support
    - Define explicit GHA permissions (contents: read, packages: write)
    - Add path traversal validation to jest-resolver.cjs to ensure imports remain within the package root
    
    * Potential fix for code scanning alert no. 6: Incomplete string escaping or encoding
    
    Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
    niemyjski and github-advanced-security[bot] authored Mar 24, 2026
    Configuration menu
    Copy the full SHA
    f9c8483 View commit details
    Browse the repository at this point in the history

Commits on Mar 25, 2026

  1. Migrate to vitest (#152)

    * Set up Vitest workspace tooling
    
    Replace Jest-specific package scripts, resolver config, and lint integration with a Vitest workspace setup. Refresh the lockfile and package metadata so the repo resolves source imports through Vitest/Vite instead of the old Jest ESM workaround.
    
    * Migrate workspace tests to Vitest
    
    Update the test suite to use Vitest imports and async patterns, add the core test setup needed to shield jsdom tests from Node 25's broken global localStorage, and keep the typed-array normalization fix that the migrated Utils tests now exercise for BigInt views.
    
    * Clean up repo tooling for Vitest
    
    Update repo instructions, editor recommendations, and devcontainer defaults so local tooling points at Vitest instead of the removed Jest workflow.
    
    * Fix CI prerelease package publishing
    
    The build workflow published branch prerelease packages without an explicit dist-tag and used overly broad publish gating, causing push builds to fail and making CI package tags unsafe.
    
    * Specify bash shell for CI workflow steps
    
    Explicitly set the shell to bash for build steps that utilize bash-specific syntax, such as parameter expansion, to ensure consistent behavior across different runner environments.
    niemyjski authored Mar 25, 2026
    Configuration menu
    Copy the full SHA
    e3def88 View commit details
    Browse the repository at this point in the history
  2. Use crypto.getRandomValues for guid/randomNumber with Math.random fal…

    …lback, replace parseVersion regex with linear-time parser
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    niemyjski and claude committed Mar 25, 2026
    Configuration menu
    Copy the full SHA
    5c8cb7c View commit details
    Browse the repository at this point in the history

Commits on Mar 26, 2026

  1. Revert #/ subpath imports to relative paths

    The #/ subpath import prefix is not yet supported by webpack or
    turbopack bundled in Next.js 16, causing build failures for consumers.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    niemyjski and claude committed Mar 26, 2026
    Configuration menu
    Copy the full SHA
    e1efd78 View commit details
    Browse the repository at this point in the history

Commits on Mar 27, 2026

  1. Add a simple Next.js reference integration example (#153)

    * Add Next.js reference integration example
    
    * Format Next.js example files
    
    * Export bundles as package entry points and update Next.js example
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    
    * Add resolve-package-imports build step and update Next.js example
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    
    * Revert "Add resolve-package-imports build step and update Next.js example"
    
    This reverts commit b462d7e.
    
    * pr feedback
    
    * Apply suggestions from code review
    
    Co-authored-by: Blake Niemyjski <[email protected]>
    
    * pr feedback
    
    * PR feedback
    
    * lint fix
    
    ---------
    
    Co-authored-by: Claude Opus 4.6 <[email protected]>
    niemyjski and claude authored Mar 27, 2026
    Configuration menu
    Copy the full SHA
    3d03e4d View commit details
    Browse the repository at this point in the history
Loading