Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
a831392
Bump serve-static and express
dependabot[bot] Sep 19, 2024
087e7d2
Bump send and express
dependabot[bot] Sep 19, 2024
497bf8d
Bump body-parser and express
dependabot[bot] Sep 21, 2024
3e35faf
Bump rollup, @rollup/plugin-commonjs and @rollup/plugin-node-resolve
dependabot[bot] Sep 25, 2024
f42c902
Bump rollup from 2.79.1 to 2.79.2
dependabot[bot] Sep 28, 2024
d31405f
Bump cookie and express
dependabot[bot] Oct 19, 2024
cbf9fa4
Updated License Year
github-actions[bot] Jan 1, 2025
211b88d
Merge pull request #80 from splitio/dependabot/npm_and_yarn/multi-d66…
EmilianoSanchez May 12, 2025
8f22c0c
Merge branch 'development' into dependabot/npm_and_yarn/multi-cf87d80143
EmilianoSanchez May 12, 2025
7980dfe
Merge pull request #81 from splitio/dependabot/npm_and_yarn/multi-cf8…
EmilianoSanchez May 12, 2025
146674c
Merge branch 'development' into dependabot/npm_and_yarn/multi-9423f4c335
EmilianoSanchez May 12, 2025
1341213
Merge pull request #82 from splitio/dependabot/npm_and_yarn/multi-942…
EmilianoSanchez May 12, 2025
2deb49d
Merge branch 'development' into dependabot/npm_and_yarn/multi-191f91abf1
EmilianoSanchez May 12, 2025
0cc4a8d
Merge pull request #83 from splitio/dependabot/npm_and_yarn/multi-191…
EmilianoSanchez May 12, 2025
6eafcce
Merge branch 'development' into dependabot/npm_and_yarn/rollup-2.79.2
EmilianoSanchez May 12, 2025
0f15bb8
Merge pull request #84 from splitio/dependabot/npm_and_yarn/rollup-2.…
EmilianoSanchez May 12, 2025
2d6e8e9
Merge branch 'development' into dependabot/npm_and_yarn/multi-9f37c16f8f
EmilianoSanchez May 12, 2025
3627784
Merge pull request #85 from splitio/dependabot/npm_and_yarn/multi-9f3…
EmilianoSanchez May 12, 2025
017b862
Merge branch 'development' into update-license
EmilianoSanchez May 12, 2025
74d0f18
Merge pull request #86 from splitio/update-license
EmilianoSanchez May 12, 2025
2cfea75
Fix typos and other README updates
EmilianoSanchez May 12, 2025
53bcbd8
Bump dependencies for vulnerability fixes
EmilianoSanchez May 12, 2025
db161e9
Update changelog entry date
EmilianoSanchez May 12, 2025
b4b4fe9
Upgrade JS-commons to v2.0.0
EmilianoSanchez May 12, 2025
db52936
Upgrade JS-commons to v2.2.0
EmilianoSanchez May 12, 2025
9f86bde
Fix typos
EmilianoSanchez May 12, 2025
99b4a2e
Merge pull request #87 from splitio/update_readme
EmilianoSanchez May 12, 2025
9b04f5d
Merge branch 'development' into upgrade_js_commons
EmilianoSanchez May 12, 2025
eca1f3e
Refactor E2E tests to use fetch-mock for flexibility
EmilianoSanchez May 14, 2025
2c440ab
Merge branch 'refactor_e2e_tests' into upgrade_js_commons
EmilianoSanchez May 14, 2025
df30734
Update changelog entry with breaking changes
EmilianoSanchez May 15, 2025
bfd8f85
Update linter dependencies and replaced JSDoc with TSDoc for consiste…
EmilianoSanchez May 15, 2025
b6f928f
Merge pull request #88 from splitio/refactor_e2e_tests
EmilianoSanchez May 15, 2025
053d48d
Merge branch 'development' into upgrade_js_commons
EmilianoSanchez May 15, 2025
3128b5b
Update changelog entry and type definitions for JS-commons 2.2.0
EmilianoSanchez May 15, 2025
7069143
Upgrade JS-commons to use flag spec 1.3
EmilianoSanchez May 15, 2025
11b66ef
Update JS-commons v2.3.0
EmilianoSanchez May 16, 2025
d14bcfa
Apply TSDoc linter in types folder
EmilianoSanchez May 20, 2025
f5d40b3
Merge branch 'upgrade_js_commons' into upgrade_js_commons_spec_1.3
EmilianoSanchez May 20, 2025
88e5440
Polish type definitions
EmilianoSanchez May 20, 2025
e789377
Merge branch 'upgrade_js_commons' into upgrade_js_commons_spec_1.3
EmilianoSanchez May 20, 2025
9f49b3d
Apply TSDoc linter in e2e folder
EmilianoSanchez May 20, 2025
469c4ad
Merge branch 'upgrade_js_commons' into upgrade_js_commons_spec_1.3
EmilianoSanchez May 20, 2025
aa08ce9
Add tests
EmilianoSanchez May 20, 2025
10fd80c
rc
EmilianoSanchez May 21, 2025
ff21f47
Stable version
EmilianoSanchez May 27, 2025
0a7cce2
Merge pull request #90 from splitio/upgrade_js_commons_spec_1.3
EmilianoSanchez May 27, 2025
c53852a
Merge pull request #89 from splitio/upgrade_js_commons
EmilianoSanchez May 27, 2025
00e032d
Update types/index.d.ts file to reuse definitions from SplitIO namespace
EmilianoSanchez May 27, 2025
ad2e3c6
rc
EmilianoSanchez May 27, 2025
f6d01b1
Stable version
EmilianoSanchez May 27, 2025
7fa2644
Update changelog entry
EmilianoSanchez May 28, 2025
63558ca
Merge pull request #92 from splitio/update_types
EmilianoSanchez May 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 9 additions & 45 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"plugins": [
"@typescript-eslint",
"import",
"eslint-plugin-jsdoc"
"eslint-plugin-tsdoc"
],
"env": {
"browser": false,
Expand Down Expand Up @@ -35,6 +35,13 @@
"no-use-before-define": "off",
"no-undef": "off" // turned off to avoid issue with triple-slash path directive
}
},
{
// Enable TSDoc rules for TypeScript files, allowing the use of JSDoc in JS files.
"files": ["**/*.ts"],
"rules": {
"tsdoc/syntax": "warn"
}
}
],
"rules": {
Expand Down Expand Up @@ -75,49 +82,6 @@
"quote-props": ["error", "as-needed"],
"comma-spacing": ["error", { "before": false, "after": true }],
"object-curly-spacing": ["error", "always"],
"no-trailing-spaces": "error",
// jsdoc
"jsdoc/check-access": "error",
"jsdoc/check-alignment": "error",
"jsdoc/check-param-names": ["error", {
"allowExtraTrailingParamDocs": true
}],
"jsdoc/check-syntax": "error",
"jsdoc/check-tag-names": ["error", {
"definedTags": [
"parent",
"body",
"endpoint",
"ngdoc",
"restrict"
]
}],
"jsdoc/check-types": "error",
"jsdoc/implements-on-classes": "error",
"jsdoc/match-description": "error",
"jsdoc/newline-after-description": "error",
"jsdoc/require-description": ["error", {
"checkConstructors": false,
"descriptionStyle": "any"
}],
"jsdoc/require-description-complete-sentence": "error",
"jsdoc/require-hyphen-before-param-description": ["error", "never"],
"jsdoc/require-param": "error",
"jsdoc/require-param-description": "error",
"jsdoc/require-param-name": "error",
"jsdoc/require-param-type": "error",
"jsdoc/require-property": "error",
"jsdoc/require-property-description": "error",
"jsdoc/require-property-name": "error",
"jsdoc/require-property-type": "error",
"jsdoc/require-returns": "error",
"jsdoc/require-returns-check": "error",
"jsdoc/require-returns-type": "error",
"jsdoc/valid-types": "error"
},
"settings": {
"jsdoc": {
"mode": "typescript"
}
"no-trailing-spaces": "error"
}
}
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
with:
fetch-depth: 0

- name: Set up nodejs
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 'lts/*'
Expand Down
19 changes: 15 additions & 4 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,17 @@
1.0.0 (May 28, 2025)
- Added support for synchronizing feature flags with rule-based segments. These segments determine membership at runtime by evaluating their configured rules against the user attributes provided to the SDK.
- Added support for synchronizing feature flags with prerequisites. This allows customers to define dependency conditions between flags, which are evaluated before any allowlists or targeting rules.
- Added support for synchronizing SDK impressions with properties.
- Added support for the new impressions tracking toggle available on feature flags.
- Added `sync.requestOptions.getHeaderOverrides` configuration option to enhance Synchronizer HTTP request Headers for Authorization Frameworks.
- Updated @splitsoftware/splitio-commons package to version 2.3.0 and some transitive dependencies for vulnerability fixes and other improvements.
- BREAKING CHANGES:
- Dropped support for Node.js v8. The SDK now requires Node.js v14 or above.
- Removed internal ponyfills for the `Map` and `Set` global objects. The SDK now requires the runtime environment to support these features natively or provide a polyfill.

0.7.0 (August 5, 2024)
- Added `sync.requestOptions.agent` option to allow passing a custom NodeJS HTTP(S) Agent with specific configurations for the Synchronizer requests, like custom TLS settings or a network proxy (See https://help.split.io/hc/en-us/articles/4421513571469-Split-JavaScript-synchronizer-tools#proxy).
- Updated some transitive dependencies for vulnerability fixes.
- Added `sync.requestOptions.agent` option to allow passing a custom Node.js HTTP(S) Agent with specific configurations for the Synchronizer requests, like custom TLS settings or a network proxy (See https://help.split.io/hc/en-us/articles/4421513571469-Split-JavaScript-synchronizer-tools#proxy).
- Updated @splitsoftware/splitio-commons package to version 1.16.0 and some transitive dependencies for vulnerability fixes.

0.6.0 (May 13, 2024)
- Added a new configuration option `sync.flagSpecVersion` to specify the flags spec version of feature flag definitions to be fetched and stored.
Expand Down Expand Up @@ -31,8 +42,8 @@
0.3.0 (May 4, 2023)
- Added an optional error-first callback parameter to `execute` method, to be called when the synchronization is finished, with an error object if it finished unsuccessfully.
- Updated @splitsoftware/splitio-commons and other dependencies for vulnerability fixes and performance improvements.
- Bugfixing - Fixed `execute` method to ensure the returned promise resolves to `false` if any synchronization task fails (i.e., synchronization of feature flags, segments, impressions or events).
- Bugfixing - Fixed `execute` method to await storage destroy promise and handle rejections.
- Bugfix - Fixed `execute` method to ensure the returned promise resolves to `false` if any synchronization task fails (i.e., synchronization of feature flags, segments, impressions or events).
- Bugfix - Fixed `execute` method to await storage destroy promise and handle rejections.

0.2.0 (October 5, 2022)
- Added support for synchronizing telemetry data, impression counts and unique keys in pluggable storage.
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTORS-GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Split JavaScript Sync Tools is an open source project and we welcome feedback an
### Development process

1. Fork the repository and create a topic branch from `development` branch. Please use a descriptive name for your branch.
2. Run `nvm use` to ensure that you are using the right npm and node version, and `npm install` to have the dependencies up to date.
2. Run `nvm use` to ensure that you are using the right npm and Node.js version, and `npm install` to have the dependencies up to date.
3. While developing, use descriptive messages in your commits. Avoid short or meaningless sentences like: "fix bug".
4. Make sure to add tests for both positive and negative cases.
5. Run the linter script of the project and fix any issues you find.
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright © 2024 Split Software, Inc.
Copyright © 2025 Split Software, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This package includes a set of JavaScript synchronization tools built based on t
[![Twitter Follow](https://img.shields.io/twitter/follow/splitsoftware.svg?style=social&label=Follow&maxAge=1529000)](https://twitter.com/intent/follow?screen_name=splitsoftware)

## Compatibility
Split sync tools supports Node.js version 8 or higher. To run the tools in other JavaScript environments, the target environment must support ES6 (ECMAScript 2015) syntax, and provide built-in support or a global polyfill for Promises and Web Fetch API.
Split sync tools supports Node.js version 14 or higher. To run the tools in other JavaScript environments, the target environment must support ES6 (ECMAScript 2015) syntax, and provide built-in support or a global polyfill for Promises, Web Fetch API, Map and Set.

## Getting started
Below is a simple example that describes the execution of the JavaScript Synchronizer:
Expand Down Expand Up @@ -65,13 +65,14 @@ Split has built and maintains SDKs for:
* .NET [Github](https://github.com/splitio/dotnet-client) [Docs](https://help.split.io/hc/en-us/articles/360020240172--NET-SDK)
* Android [Github](https://github.com/splitio/android-client) [Docs](https://help.split.io/hc/en-us/articles/360020343291-Android-SDK)
* Angular [Github](https://github.com/splitio/angular-sdk-plugin) [Docs](https://help.split.io/hc/en-us/articles/6495326064397-Angular-utilities)
* Elixir thin-client [Github](https://github.com/splitio/elixir-thin-client) [Docs](https://help.split.io/hc/en-us/articles/26988707417869-Elixir-Thin-Client-SDK)
* Flutter [Github](https://github.com/splitio/flutter-sdk-plugin) [Docs](https://help.split.io/hc/en-us/articles/8096158017165-Flutter-plugin)
* GO [Github](https://github.com/splitio/go-client) [Docs](https://help.split.io/hc/en-us/articles/360020093652-Go-SDK)
* iOS [Github](https://github.com/splitio/ios-client) [Docs](https://help.split.io/hc/en-us/articles/360020401491-iOS-SDK)
* Java [Github](https://github.com/splitio/java-client) [Docs](https://help.split.io/hc/en-us/articles/360020405151-Java-SDK)
* JavaScript [Github](https://github.com/splitio/javascript-client) [Docs](https://help.split.io/hc/en-us/articles/360020448791-JavaScript-SDK)
* JavaScript for Browser [Github](https://github.com/splitio/javascript-browser-client) [Docs](https://help.split.io/hc/en-us/articles/360058730852-Browser-SDK)
* Node [Github](https://github.com/splitio/javascript-client) [Docs](https://help.split.io/hc/en-us/articles/360020564931-Node-js-SDK)
* Node.js [Github](https://github.com/splitio/javascript-client) [Docs](https://help.split.io/hc/en-us/articles/360020564931-Node-js-SDK)
* PHP [Github](https://github.com/splitio/php-client) [Docs](https://help.split.io/hc/en-us/articles/360020350372-PHP-SDK)
* PHP thin-client [Github](https://github.com/splitio/php-thin-client) [Docs](https://help.split.io/hc/en-us/articles/18305128673933-PHP-Thin-Client-SDK)
* Python [Github](https://github.com/splitio/python-client) [Docs](https://help.split.io/hc/en-us/articles/360020359652-Python-SDK)
Expand All @@ -84,4 +85,4 @@ For a comprehensive list of open source projects visit our [Github page](https:/

**Learn more about Split:**

Visit [split.io/product](https://www.split.io/product) for an overview of Split, or visit our documentation at [help.split.io](http://help.split.io) for more detailed information.
Visit [split.io/product](https://www.split.io/product) for an overview of Split, or visit our documentation at [help.split.io](https://help.split.io) for more detailed information.
Loading