Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
7a57c2a
Add splitio_web folder with basic scaffolding
EmilianoSanchez Dec 17, 2025
e4ab014
Add web platform to example
EmilianoSanchez Dec 17, 2025
ab0826d
Use local path for splitio_web dependency
EmilianoSanchez Dec 17, 2025
ab1b3c3
Merge pull request #155 from splitio/FME-11223-web-support-plugin-sca…
EmilianoSanchez Dec 17, 2025
505040d
Add SDK initialization and create factory instance with JS interop
EmilianoSanchez Dec 18, 2025
ead003b
Complete the mapping of SplitConfiguration (Flutter SDK config) to JS…
EmilianoSanchez Dec 22, 2025
bf7ab85
Linter
EmilianoSanchez Dec 22, 2025
4400f26
Remove code for unsupported configs
EmilianoSanchez Dec 22, 2025
da97415
Log warning for unsupported configs
EmilianoSanchez Dec 22, 2025
eb71ff5
Add tests
EmilianoSanchez Dec 22, 2025
c426299
Merge pull request #157 from splitio/FME-11223-web-support-factory-si…
EmilianoSanchez Dec 23, 2025
3f64157
Implement factory.client and client.getTreatment methods
EmilianoSanchez Dec 23, 2025
3d04068
Add test with evaluation options
EmilianoSanchez Dec 23, 2025
029e9f1
Rename parameter from `areAttributes` to `isAttributes` for consistency
EmilianoSanchez Dec 26, 2025
62797f9
Move conversion utils to production code, for reusability
EmilianoSanchez Dec 26, 2025
20155dd
Merge pull request #158 from splitio/FME-11223-web-support-configuration
EmilianoSanchez Dec 26, 2025
ab03300
Merge branch 'FME-11223-web-support_baseline' into FME-11223-web-supp…
EmilianoSanchez Dec 26, 2025
ef30e67
Merge branch 'FME-11223-web-support-unsupported-configs' into FME-112…
EmilianoSanchez Dec 26, 2025
3518c16
Merge pull request #159 from splitio/FME-11223-web-support-unsupporte…
EmilianoSanchez Dec 26, 2025
c420659
Add getClient method tests
EmilianoSanchez Dec 26, 2025
4abc03b
Add getTreatments[WithConfig] methods
EmilianoSanchez Dec 26, 2025
a0233a5
Add getTreatments[WithConfig]ByFlagSet[s] methods
EmilianoSanchez Dec 26, 2025
a8e51fb
Merge pull request #160 from splitio/FME-11223-web-support-client-eva…
EmilianoSanchez Dec 26, 2025
a988039
Merge branch 'FME-11223-web-support_baseline' into FME-11223-web-supp…
EmilianoSanchez Dec 26, 2025
712e975
Linting
EmilianoSanchez Dec 26, 2025
17420a8
Connect client track method
EmilianoSanchez Dec 26, 2025
ec4be9b
Add @override annotations
EmilianoSanchez Dec 26, 2025
a357c72
Merge branch 'FME-11223-web-support-client-evaluation-part2' into FME…
EmilianoSanchez Dec 26, 2025
8190a22
Rename isAttributes parameter to isAttribute for clarity
EmilianoSanchez Dec 29, 2025
cc384d9
Add client attribute, flush and destroy methods
EmilianoSanchez Dec 29, 2025
e692321
Merge pull request #161 from splitio/FME-11223-web-support-client-eva…
EmilianoSanchez Dec 30, 2025
b1952fc
Merge pull request #162 from splitio/FME-11223-web-support-client-track
EmilianoSanchez Dec 30, 2025
c2cf2a1
Merge pull request #163 from splitio/FME-11223-web-support-client-att…
EmilianoSanchez Jan 2, 2026
4b73644
Connect user consent methods
EmilianoSanchez Jan 2, 2026
d916abe
Connect manager methods (split, splits, splitNames)
EmilianoSanchez Jan 2, 2026
c206b97
Connect event methods (onReady, onReadyFromCache, onTimeout, onUpdated)
EmilianoSanchez Jan 2, 2026
31e07b8
Merge pull request #165 from splitio/FME-11223-web-support-user-consent
EmilianoSanchez Jan 5, 2026
3e0c3e1
Merge pull request #166 from splitio/FME-11223-web-support-manager
EmilianoSanchez Jan 5, 2026
19c744f
Merge remote-tracking branch 'origin/FME-11223-web-support_baseline' …
EmilianoSanchez Jan 5, 2026
2502987
Connect impression listener
EmilianoSanchez Jan 6, 2026
0a292df
Handle stream onPause and onResume
EmilianoSanchez Jan 6, 2026
ec6fc2e
Make stream callbacks synchronous and return null if client doesn't e…
EmilianoSanchez Jan 6, 2026
55ad0ae
Close stream controller on onCancel callback
EmilianoSanchez Jan 6, 2026
29f778a
Merge branch 'FME-11223-web-support-events' into FME-11223-web-suppor…
EmilianoSanchez Jan 6, 2026
ea95138
Merge pull request #167 from splitio/FME-11223-web-support-events
EmilianoSanchez Jan 7, 2026
7de71db
Merge pull request #168 from splitio/FME-11223-web-support-impression…
EmilianoSanchez Jan 8, 2026
bc5fded
Fix logger configuration and JS interop calls
EmilianoSanchez Jan 8, 2026
dcfbb42
Simplify JS interop by removing callAsFunction calls
EmilianoSanchez Jan 8, 2026
9175406
Fix flush return type and simplify promise handling
EmilianoSanchez Jan 8, 2026
00e23f7
Add SplitView type
EmilianoSanchez Jan 8, 2026
2fc187e
Add EvaluationOptions type
EmilianoSanchez Jan 9, 2026
e3a8f53
Remove usage of js_interop_unsafe
EmilianoSanchez Jan 9, 2026
a7a55d6
Normalize service endpoint URLs for JS SDK compatibility
EmilianoSanchez Jan 9, 2026
d4fce3c
Export RolloutCacheConfiguration
EmilianoSanchez Jan 9, 2026
f7d162e
Improve mock to support multiple clients
EmilianoSanchez Jan 10, 2026
35bcd3f
Make onUpdated stream callbacks async to wait for client initialization
EmilianoSanchez Jan 10, 2026
45727c5
Tests with multiple clients
EmilianoSanchez Jan 10, 2026
4f72823
Add evaluation options to treatment method tests
EmilianoSanchez Jan 10, 2026
f1c2518
Merge branch 'FME-11223-web-support-test-improvements' into FME-11223…
EmilianoSanchez Jan 10, 2026
110ec5b
Remove callAsFunction calls from event methods
EmilianoSanchez Jan 10, 2026
3f29ce3
Remove callAsFunction from logger factory methods. Add test for Logge…
EmilianoSanchez Jan 12, 2026
aa8866d
Add InLocalStorage mock and update test expectations
EmilianoSanchez Jan 12, 2026
b7e882a
Update urls config test
EmilianoSanchez Jan 13, 2026
de18155
Merge pull request #170 from splitio/FME-11223-web-support-remove-js-…
EmilianoSanchez Jan 13, 2026
82ec06a
Merge pull request #169 from splitio/FME-11223-web-support-test-impro…
EmilianoSanchez Jan 13, 2026
a6fcbad
Fix script path and JS interop conversions for WASM support. Define r…
EmilianoSanchez Jan 13, 2026
54b9442
Merge remote-tracking branch 'origin/FME-11223-web-support_baseline' …
EmilianoSanchez Jan 13, 2026
ecd1a8d
Merge branch 'FME-11223-web-support-fix-onUpdated-with-async-callback…
EmilianoSanchez Jan 13, 2026
5b46ea3
Merge branch 'FME-11223-web-support-polishing' into FME-11223-web-sup…
EmilianoSanchez Jan 13, 2026
009c558
Polishing
EmilianoSanchez Jan 14, 2026
1df7333
Merge pull request #171 from splitio/FME-11223-web-support-js-interop…
EmilianoSanchez Jan 14, 2026
15321a9
Add web scripts to CI/CD pipeline and update README file
EmilianoSanchez Jan 14, 2026
0f9496e
Fix test
EmilianoSanchez Jan 14, 2026
650825f
Merge branch 'development' into FME-11223-web-support_baseline
EmilianoSanchez Jan 14, 2026
f7b33f8
Merge branch 'FME-11223-web-support_baseline' into FME-11223-web-supp…
EmilianoSanchez Jan 14, 2026
6599ae7
Update LICENSE files
EmilianoSanchez Jan 14, 2026
fe118ce
Add README.md file
EmilianoSanchez Jan 14, 2026
349a724
Update splitio/README.md
EmilianoSanchez Jan 15, 2026
074500d
Add chain in flush & destroy calls, to ensure the return type is
EmilianoSanchez Jan 15, 2026
3c9f606
Merge branch 'FME-11223-web-support_baseline' into FME-11223-web-supp…
EmilianoSanchez Jan 15, 2026
fd17fb7
Merge pull request #173 from splitio/FME-11223-web-support-complement…
EmilianoSanchez Jan 15, 2026
5ad2284
Polishing
EmilianoSanchez Jan 15, 2026
7c93629
rc
EmilianoSanchez Jan 15, 2026
46179b2
rc splitio package
EmilianoSanchez Jan 15, 2026
52fb39f
Apply linter rules
EmilianoSanchez Jan 16, 2026
955e2e3
Rename JS interop types with 'JS' prefix convention
EmilianoSanchez Jan 16, 2026
58e4327
Relax web dependency constraint to allow versions up to 2.0.0
EmilianoSanchez Jan 16, 2026
8cdb3c6
Merge pull request #174 from splitio/FME-11223-web-support-linter
EmilianoSanchez Jan 16, 2026
30bc061
stable release
EmilianoSanchez Jan 16, 2026
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
24 changes: 24 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,27 @@ jobs:

- name: ios
run: cd splitio_ios/example/ios; xcodebuild test -workspace "Runner.xcworkspace" -scheme "Runner" -destination "platform=iOS Simulator,name=iPhone 15,OS=17.4" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO ONLY_ACTIVE_ARCH=NO;

build-web:
name: Build Web
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Build Web
run: cd splitio/example; flutter build web

test-web:
name: Test Web
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Build Web
run: cd splitio/example; flutter build web
- name: Run Web test
run: cd splitio/example; flutter test --platform=chrome
2 changes: 2 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,5 @@ jobs:
run: cd splitio_android/; flutter test
- name: Run flutter splitio_ios test
run: cd splitio_ios/; flutter test
- name: Run flutter splitio_web test
run: cd splitio_web/; flutter test --platform=chrome
4 changes: 3 additions & 1 deletion CONTRIBUTORS-GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ Instructions on how to run automated tests

Run `flutter test` in root directory.

Run unit tests in android & ios packages.
Run unit tests in Android & iOS packages with `flutter test`.

Run unit tests in Web package with `flutter test --platform chrome`.

# Contact

Expand Down
202 changes: 202 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@

Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
5 changes: 5 additions & 0 deletions splitio/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
# 1.1.0 (Jan 16, 2026)
- Added Web support via the `splitio_web` package, the Web implementation of `splitio` based on the Split Browser SDK v1.6.0.

# 1.1.0-rc.1 (Jan 15, 2026)

# 1.0.0 (Aug 14, 2025)
- Updated Android SDK to `5.3.1` & iOS SDK to `3.3.2`
- Added support for rule-based segments. These segments determine membership at runtime by evaluating their configured rules against the user attributes provided to the SDK.
Expand Down
13 changes: 12 additions & 1 deletion splitio/LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,18 @@

END OF TERMS AND CONDITIONS

Copyright © 2026 Split Software, Inc.
APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
Loading