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: optimizely/javascript-sdk
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: claude-code
Choose a base ref
...
head repository: optimizely/javascript-sdk
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 20 commits
  • 69 files changed
  • 7 contributors

Commits on Mar 11, 2026

  1. Remove SourceClear scan workflow due to security vulnerability (#1139)

    Removes the SourceClear workflow that contains a dangerous curl|bash pattern,
    which presents risks of script injection and untrusted remote code execution
    in the CI/CD pipeline. This follows the same remediation approach used in the
    PHP SDK (optimizely/php-sdk#294).
    
    Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
    Tamara-Barum and claude authored Mar 11, 2026
    Configuration menu
    Copy the full SHA
    cde46e9 View commit details
    Browse the repository at this point in the history

Commits on Mar 31, 2026

  1. [AI-FSSDK] [FSSDK-12337] Add Feature Rollout support (#1140)

    ## Summary
    
    Adds Feature Rollout support to the JavaScript SDK. Feature Rollouts are a new experiment rule type that combines Targeted Delivery simplicity with A/B test measurement capabilities. During project config parsing, the "everyone else" variation from the flag's rollout is injected into any experiment with type "feature_rollout", enabling correct evaluation without changes to decision logic.
    
    ## Changes
    
    - Added optional `type` string field to the Experiment interface
    - Added config parsing logic to inject the "everyone else" rollout variation into feature_rollout experiments
    - Added traffic allocation entry (endOfRange=10000) for the injected variation
    - Added `getEveryoneElseVariation` helper function to extract the last rollout rule's first variation
    - Updated variation lookup maps (variationKeyMap, variationIdMap, variationVariableUsageMap) with injected variation
    - Added 6 unit tests covering feature rollout injection, edge cases, and backward compatibility
    
    ---------
    
    Co-authored-by: Raju Ahmed <raju.ahmed@optimizely.com>
    FarhanAnjum-opti and raju-opti authored Mar 31, 2026
    Configuration menu
    Copy the full SHA
    41d2580 View commit details
    Browse the repository at this point in the history

Commits on May 7, 2026

  1. [AI-FSSDK] prepare for release javascript-sdk v6.4.0 (#1149)

    Co-authored-by: Raju Ahmed <raju.ahmed@optimizely.com>
    jaeopt and raju-opti authored May 7, 2026
    Configuration menu
    Copy the full SHA
    80a0375 View commit details
    Browse the repository at this point in the history
  2. [AI-FSSDK] [FSSDK-12368] Remove legacy flag-level holdout fields (#1146)

    ## Summary
    simplify holdout handling to treat all holdouts as global.
    
    ## Changes
    - Removed `includedHoldouts`, `excludedHoldouts`, and `globalHoldouts` from ProjectConfig
    - Removed `getHoldoutsForFlag()` method from ProjectConfig
    - Removed 3 test cases for deleted functionality
    - Updated remaining tests to use new global holdout behavior
    
    Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
    Co-authored-by: Raju Ahmed <raju.ahmed@optimizely.com>
    3 people authored May 7, 2026
    Configuration menu
    Copy the full SHA
    6c0a6e9 View commit details
    Browse the repository at this point in the history

Commits on Jun 1, 2026

  1. [AI-FSSDK] [FSSDK-12369] Add local holdouts support to JavaScript SDK (

    …#1151)
    
    Co-authored-by: Raju Ahmed <raju.ahmed@optimizely.com>
    Mat001 and raju-opti authored Jun 1, 2026
    Configuration menu
    Copy the full SHA
    a2b378c View commit details
    Browse the repository at this point in the history
  2. [AI-FSSDK] [FSSDK-12670] Block ODP identify event for single identifi…

    …er (#1152)
    
    Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
    Co-authored-by: Raju Ahmed <raju.ahmed@optimizely.com>
    3 people authored Jun 1, 2026
    Configuration menu
    Copy the full SHA
    80e4c84 View commit details
    Browse the repository at this point in the history

Commits on Jun 15, 2026

  1. [FSSDK-12759] fix content-length header in NodeRequestHandler (#1156)

    prevously, body.length was being used for content-length header, which is incorrect (The length data property of a String value contains the length of the string in UTF-16 code units, we need the byte length of utf-8 endcoded string). This PR fixes it.
    raju-opti authored Jun 15, 2026
    Configuration menu
    Copy the full SHA
    25b7129 View commit details
    Browse the repository at this point in the history

Commits on Jun 16, 2026

  1. [AI-FSSDK] [FSSDK-12760] add localHoldouts to datafile for backward c…

    …ompatibility (#1157)
    
    ---------
    
    Co-authored-by: Raju Ahmed <raju.ahmed@optimizely.com>
    jaeopt and raju-opti authored Jun 16, 2026
    Configuration menu
    Copy the full SHA
    1d56eeb View commit details
    Browse the repository at this point in the history

Commits on Jun 30, 2026

  1. [FSSDK-12820] Upgrade to uuid v13 (#1159)

    * [FSSDK-12820] Upgrade to uuid v13
    
    Upgrade uuid to v13 (ESM-only). Update rollup config to bundle uuid
    into CJS outputs instead of keeping it as an external dependency,
    since CJS consumers cannot require() an ESM-only package. Add a CJS
    require hook shim so mocha/ts-node tests can still load uuid in
    CommonJS mode.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    raju-opti and claude authored Jun 30, 2026
    Configuration menu
    Copy the full SHA
    49b58cc View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2026

  1. Configuration menu
    Copy the full SHA
    44828e6 View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2026

  1. [AI-FSSDK] [FSSDK-12813] Normalize decision event campaign_id, variat…

    …ion_id, and entity_id (#1158)
    
    Co-authored-by: Raju Ahmed <raju.ahmed@optimizely.com>
    jaeopt and raju-opti authored Jul 7, 2026
    Configuration menu
    Copy the full SHA
    fc368a2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9884d73 View commit details
    Browse the repository at this point in the history
  3. [FSSDK-12879] Remove Karma testing infrastructure (#1162)

    * Remove Karma testing infrastructure
    
    Karma config files, scripts, and devDependencies are no longer used.
    Remove them along with the README reference.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    raju-opti and claude authored Jul 7, 2026
    Configuration menu
    Copy the full SHA
    e3ba148 View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2026

  1. [FSSDK-12880] Refactor project config creation (#1164)

    * [FSSDK-12880] Refactor project config creation
    
    - Simplify createProjectConfig to accept a datafile string directly
      instead of string | object, inlining datafile validation
    - Remove the separate config_validator module and its tests
    - Break monolithic config builder into focused parse functions:
      parseAudienceConfig, parseAttributeConfig, parseGroupConfig,
      parseRolloutConfig, parseIntegrationConfig, parseExperimentConfig,
      parseFeatureFlagConfig
    - Eliminate mutation-safe datafile copy in favor of direct construction
    - Refactor redundant iterations over experiments and feature flags
    - Remove lodash dev dependency
    
    Benchmarks show ~10% faster config parsing for 3-4 MB datafiles.
    Removing createMutationSafeDatafileCopy also fixes a memory issue
    where it allocated ~4x the datafile size in shallow copies per call,
    causing OOM under repeated parsing of large datafiles.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    raju-opti and claude authored Jul 8, 2026
    Configuration menu
    Copy the full SHA
    ccaf38b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    72a727a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e5a4f5d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    7d8e5ba View commit details
    Browse the repository at this point in the history

Commits on Jul 17, 2026

  1. Configuration menu
    Copy the full SHA
    0105135 View commit details
    Browse the repository at this point in the history

Commits on Jul 21, 2026

  1. [FSSDK-12933] Refactor message generator to use TS compiler API (#1170)

    * [FSSDK-12933] Refactor message generator to use TS compiler API
    
    Replace the dynamic-import-based message_generator.ts with a static
    TS-parser approach (scripts/generate-messages.js) that preserves
    declaration order and eliminates the jiti runtime dependency. Add a
    test script and CI job for the generator.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    raju-opti and claude authored Jul 21, 2026
    Configuration menu
    Copy the full SHA
    a3857a0 View commit details
    Browse the repository at this point in the history

Commits on Jul 22, 2026

  1. [FSSDK-12891] Switch npm publishing to OIDC trusted publishing (#1169)

    * [FSSDK-12891] Switch npm publishing to OIDC trusted publishing
    
    Replace long-lived NPM_PUBLISH_TOKEN with OIDC trusted publishing
    for more secure, tokenless CI publishing to npm.
    
    Workflow changes:
    - Add id-token: write permission for OIDC token generation
    - Move permissions to workflow level (add packages: write for GHR)
    - Add GitHub environment gate (npm) for deployment protection
    - Upgrade setup-node to v4 and Node to 22 (npm 11.5.1+ requirement)
    - Add npm upgrade step to ensure OIDC support
    - Remove NPM_PUBLISH_TOKEN from npm publish step (OIDC replaces it)
    
    publish.sh changes:
    - Make NODE_AUTH_TOKEN optional in curl lookup (public packages
      don't need auth for registry reads)
    - Add --provenance flag for npm registry publishes (supply-chain
      attestations, not supported by GHR)
    
    GHR publish step is unchanged — still uses GITHUB_TOKEN.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    
    * test: temp version bump for OIDC test (revert before merge)
    
    * fix: use string instead of array for optional curl auth header
    
    * test: switch to rc.1 version for OIDC test
    
    * revert: remove temp version bump
    
    ---------
    
    Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    FarhanAnjum-opti and claude authored Jul 22, 2026
    Configuration menu
    Copy the full SHA
    6da7398 View commit details
    Browse the repository at this point in the history
Loading