flagsmith-nodejs 2.2.2-beta.2 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.js +10 -8
- package/build/sdk/index.d.ts +5 -17
- package/build/sdk/index.js +2 -0
- package/build/sdk/types.d.ts +19 -1
- package/build/sdk/utils.d.ts +2 -2
- package/{es6-example → examples/api-proxy}/.babelrc +0 -0
- package/{es6-example → examples/api-proxy}/.eslintrc +0 -0
- package/examples/api-proxy/.idea/api-proxy.iml +12 -0
- package/examples/api-proxy/.idea/codeStyles/Project.xml +60 -0
- package/examples/api-proxy/.idea/codeStyles/codeStyleConfig.xml +5 -0
- package/examples/api-proxy/.idea/inspectionProfiles/Project_Default.xml +6 -0
- package/examples/api-proxy/.idea/modules.xml +8 -0
- package/examples/api-proxy/.idea/vcs.xml +6 -0
- package/examples/api-proxy/README.md +12 -0
- package/examples/api-proxy/package-lock.json +10895 -0
- package/examples/api-proxy/package.json +57 -0
- package/examples/api-proxy/src/api/index.js +42 -0
- package/{es6-example → examples/api-proxy}/src/index.js +0 -0
- package/examples/basic/.babelrc +3 -0
- package/examples/basic/.eslintrc +8 -0
- package/examples/basic/README.md +10 -0
- package/{es6-example → examples/basic}/package-lock.json +235 -38
- package/{es6-example → examples/basic}/package.json +1 -0
- package/examples/basic/src/api/index.js +33 -0
- package/{example/server → examples/basic/src}/index.js +4 -4
- package/examples/caching/.babelrc +3 -0
- package/examples/caching/.eslintrc +8 -0
- package/examples/caching/README.md +9 -0
- package/examples/caching/package-lock.json +10782 -0
- package/examples/caching/package.json +56 -0
- package/{example/server → examples/caching/src}/api/index.js +7 -11
- package/examples/caching/src/index.js +29 -0
- package/examples/custom-fetch-agent/.babelrc +3 -0
- package/examples/custom-fetch-agent/.eslintrc +8 -0
- package/examples/custom-fetch-agent/README.md +12 -0
- package/examples/custom-fetch-agent/package-lock.json +10782 -0
- package/examples/custom-fetch-agent/package.json +56 -0
- package/examples/custom-fetch-agent/src/api/index.js +34 -0
- package/examples/custom-fetch-agent/src/index.js +29 -0
- package/examples/local-evaluation/.babelrc +3 -0
- package/examples/local-evaluation/.eslintrc +8 -0
- package/examples/local-evaluation/README.md +18 -0
- package/examples/local-evaluation/package-lock.json +10782 -0
- package/examples/local-evaluation/package.json +56 -0
- package/{es6-example → examples/local-evaluation}/src/api/index.js +2 -13
- package/examples/local-evaluation/src/index.js +29 -0
- package/index.ts +4 -0
- package/package.json +1 -1
- package/sdk/index.ts +8 -15
- package/sdk/types.ts +19 -2
- package/sdk/utils.ts +2 -2
- package/tests/sdk/flagsmith.test.ts +25 -10
- package/es6-example/README.md +0 -62
- package/example/LICENSE +0 -0
- package/example/Procfile +0 -1
- package/example/README.md +0 -15
- package/example/package-lock.json +0 -2387
- package/example/package.json +0 -27
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "nodejs-es6-boilerplate",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"description": "Node.js boilerplate with ES6, ESLint, and Prettier",
|
|
5
|
+
"main": "src/index.js",
|
|
6
|
+
"browserslist": [
|
|
7
|
+
"last 2 Chrome versions"
|
|
8
|
+
],
|
|
9
|
+
"scripts": {
|
|
10
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
11
|
+
"clean": "rm -rf build && mkdir build",
|
|
12
|
+
"build-babel": "babel -d ./build ./src -s",
|
|
13
|
+
"build": "npm run clean && npm run build-babel",
|
|
14
|
+
"dev": "nodemon --exec npm start --ignore ./build",
|
|
15
|
+
"node-cache": "^5.1.2",
|
|
16
|
+
"ssg-node-express": "4.16.4",
|
|
17
|
+
"start": "npm run build && node ./build/index.js",
|
|
18
|
+
"format": "prettier --write \"src/**/*.js\"",
|
|
19
|
+
"format:check": "prettier --list-different \"src/**/*.js\"",
|
|
20
|
+
"lint": "eslint \"src/**/*.js\"",
|
|
21
|
+
"lint:fix": "eslint --fix \"src/**/*.js\""
|
|
22
|
+
},
|
|
23
|
+
"repository": "github:vferdiansyah/nodejs-es6-boilerplate",
|
|
24
|
+
"keywords": [
|
|
25
|
+
"javascript",
|
|
26
|
+
"node",
|
|
27
|
+
"nodejs",
|
|
28
|
+
"es6",
|
|
29
|
+
"eslint",
|
|
30
|
+
"prettier",
|
|
31
|
+
"boilerplate"
|
|
32
|
+
],
|
|
33
|
+
"author": {
|
|
34
|
+
"name": "Veri Ferdiansyah",
|
|
35
|
+
"email": "veri.ferdi@gmail.com",
|
|
36
|
+
"url": "https://vferdiansyah.github.io"
|
|
37
|
+
},
|
|
38
|
+
"license": "MIT",
|
|
39
|
+
"bugs": "https://github.com/vferdiansyah/nodejs-es6-boilerplate/issues",
|
|
40
|
+
"homepage": "https://github.com/vferdiansyah/nodejs-es6-boilerplate#readme",
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@babel/cli": "^7.5.5",
|
|
43
|
+
"@babel/core": "^7.5.5",
|
|
44
|
+
"@babel/preset-env": "^7.5.5",
|
|
45
|
+
"eslint": "^6.2.1",
|
|
46
|
+
"eslint-config-prettier": "^6.1.0",
|
|
47
|
+
"eslint-plugin-prettier": "^3.1.0",
|
|
48
|
+
"express": "^4.18.1",
|
|
49
|
+
"nodemon": "^2.0.19",
|
|
50
|
+
"prettier": "^1.18.2"
|
|
51
|
+
},
|
|
52
|
+
"dependencies": {
|
|
53
|
+
"flagsmith-nodejs": "^2.2.2",
|
|
54
|
+
"https-proxy-agent": "^5.0.1",
|
|
55
|
+
"node-cache": "^5.1.2"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import {Router} from 'express'
|
|
2
|
+
import Flagsmith from '../../../../build'
|
|
3
|
+
import HttpsProxyAgent from 'https-proxy-agent'
|
|
4
|
+
|
|
5
|
+
const environmentKey = 'NowEDzKzNJXZVTVanLVdMQ';
|
|
6
|
+
|
|
7
|
+
const flagsmith = new Flagsmith({
|
|
8
|
+
environmentKey,
|
|
9
|
+
agent: new HttpsProxyAgent({
|
|
10
|
+
host: "localhost",
|
|
11
|
+
protocol: "https",
|
|
12
|
+
port:8080,
|
|
13
|
+
headers: {
|
|
14
|
+
"Custom-Header": 1
|
|
15
|
+
}
|
|
16
|
+
})
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
const api = () => {
|
|
20
|
+
const api = Router();
|
|
21
|
+
|
|
22
|
+
api.get('/', async (req, res) => {
|
|
23
|
+
const flags = await flagsmith.getEnvironmentFlags();
|
|
24
|
+
res.json(flags);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
api.get('/:user', async (req, res) => {
|
|
28
|
+
const flags = await flagsmith.getIdentityFlags(req.params.user, { checkout_v2: 1 });
|
|
29
|
+
const fontSize = flags.getFeatureValue('font_size');
|
|
30
|
+
const checkoutV2 = flags.isFeatureEnabled('checkout_v2');
|
|
31
|
+
res.json({ fontSize, checkoutV2 });
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
api.get('/:user/segments', async (req, res) => {
|
|
35
|
+
const segments = await flagsmith.getIdentitySegments(req.params.user, { checkout_v2: 1 });
|
|
36
|
+
res.json(segments.map(v => v.name));
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
return api;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export default api
|
|
File without changes
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<img width="100%" src="https://github.com/Flagsmith/flagsmith/raw/main/static-files/hero.png"/>
|
|
2
|
+
|
|
3
|
+
# Flagsmith Node.js example with custom fetch agent
|
|
4
|
+
|
|
5
|
+
This is a simple Flagsmith Node.js example in local evaluation modes with a custom fetch agent. Using a custom fetch agent lets allows you to specify networking related options such as keep alive and socket timeout, read more on this [here](https://github.com/node-fetch/node-fetch#custom-agent).
|
|
6
|
+
|
|
7
|
+
```shell
|
|
8
|
+
npm i
|
|
9
|
+
npm run dev
|
|
10
|
+
```
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"version": "1.0.1",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
|
+
"flagsmith-nodejs": "^2.2.2",
|
|
12
13
|
"node-cache": "^5.1.2"
|
|
13
14
|
},
|
|
14
15
|
"devDependencies": {
|
|
@@ -1290,6 +1291,14 @@
|
|
|
1290
1291
|
"node": ">=0.10.0"
|
|
1291
1292
|
}
|
|
1292
1293
|
},
|
|
1294
|
+
"node_modules/big-integer": {
|
|
1295
|
+
"version": "1.6.51",
|
|
1296
|
+
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
|
|
1297
|
+
"integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
|
|
1298
|
+
"engines": {
|
|
1299
|
+
"node": ">=0.6"
|
|
1300
|
+
}
|
|
1301
|
+
},
|
|
1293
1302
|
"node_modules/binary-extensions": {
|
|
1294
1303
|
"version": "1.13.1",
|
|
1295
1304
|
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
|
|
@@ -1471,6 +1480,14 @@
|
|
|
1471
1480
|
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
|
|
1472
1481
|
"dev": true
|
|
1473
1482
|
},
|
|
1483
|
+
"node_modules/charenc": {
|
|
1484
|
+
"version": "0.0.2",
|
|
1485
|
+
"resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
|
|
1486
|
+
"integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==",
|
|
1487
|
+
"engines": {
|
|
1488
|
+
"node": "*"
|
|
1489
|
+
}
|
|
1490
|
+
},
|
|
1474
1491
|
"node_modules/chokidar": {
|
|
1475
1492
|
"version": "2.1.8",
|
|
1476
1493
|
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
|
|
@@ -1715,6 +1732,14 @@
|
|
|
1715
1732
|
"node": ">=4.8"
|
|
1716
1733
|
}
|
|
1717
1734
|
},
|
|
1735
|
+
"node_modules/crypt": {
|
|
1736
|
+
"version": "0.0.2",
|
|
1737
|
+
"resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
|
|
1738
|
+
"integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==",
|
|
1739
|
+
"engines": {
|
|
1740
|
+
"node": "*"
|
|
1741
|
+
}
|
|
1742
|
+
},
|
|
1718
1743
|
"node_modules/debug": {
|
|
1719
1744
|
"version": "2.6.9",
|
|
1720
1745
|
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
|
@@ -2448,6 +2473,32 @@
|
|
|
2448
2473
|
"node": ">= 0.8"
|
|
2449
2474
|
}
|
|
2450
2475
|
},
|
|
2476
|
+
"node_modules/flagsmith-nodejs": {
|
|
2477
|
+
"version": "2.2.2",
|
|
2478
|
+
"resolved": "https://registry.npmjs.org/flagsmith-nodejs/-/flagsmith-nodejs-2.2.2.tgz",
|
|
2479
|
+
"integrity": "sha512-T8RI5+H6GdHwXz7fOaQOE5Q6XJOeMLlSuSw4uDExQRkVzaO/6k0KFBYRRiTce//guRrkSSW1xqvcB8AuqYLkNA==",
|
|
2480
|
+
"dependencies": {
|
|
2481
|
+
"big-integer": "^1.6.51",
|
|
2482
|
+
"md5": "^2.3.0",
|
|
2483
|
+
"node-fetch": "^2.1.2",
|
|
2484
|
+
"semver": "^7.3.7",
|
|
2485
|
+
"uuid": "^8.3.2"
|
|
2486
|
+
}
|
|
2487
|
+
},
|
|
2488
|
+
"node_modules/flagsmith-nodejs/node_modules/semver": {
|
|
2489
|
+
"version": "7.3.7",
|
|
2490
|
+
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
|
|
2491
|
+
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
|
|
2492
|
+
"dependencies": {
|
|
2493
|
+
"lru-cache": "^6.0.0"
|
|
2494
|
+
},
|
|
2495
|
+
"bin": {
|
|
2496
|
+
"semver": "bin/semver.js"
|
|
2497
|
+
},
|
|
2498
|
+
"engines": {
|
|
2499
|
+
"node": ">=10"
|
|
2500
|
+
}
|
|
2501
|
+
},
|
|
2451
2502
|
"node_modules/flat-cache": {
|
|
2452
2503
|
"version": "2.0.1",
|
|
2453
2504
|
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
|
|
@@ -3573,9 +3624,7 @@
|
|
|
3573
3624
|
"node_modules/is-buffer": {
|
|
3574
3625
|
"version": "1.1.6",
|
|
3575
3626
|
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
|
|
3576
|
-
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
|
|
3577
|
-
"dev": true,
|
|
3578
|
-
"optional": true
|
|
3627
|
+
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
|
|
3579
3628
|
},
|
|
3580
3629
|
"node_modules/is-data-descriptor": {
|
|
3581
3630
|
"version": "0.1.4",
|
|
@@ -3822,12 +3871,6 @@
|
|
|
3822
3871
|
"node": ">=6"
|
|
3823
3872
|
}
|
|
3824
3873
|
},
|
|
3825
|
-
"node_modules/json5/node_modules/minimist": {
|
|
3826
|
-
"version": "1.2.5",
|
|
3827
|
-
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
|
|
3828
|
-
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
|
|
3829
|
-
"dev": true
|
|
3830
|
-
},
|
|
3831
3874
|
"node_modules/kind-of": {
|
|
3832
3875
|
"version": "6.0.3",
|
|
3833
3876
|
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
|
|
@@ -3852,9 +3895,9 @@
|
|
|
3852
3895
|
}
|
|
3853
3896
|
},
|
|
3854
3897
|
"node_modules/lodash": {
|
|
3855
|
-
"version": "4.17.
|
|
3856
|
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.
|
|
3857
|
-
"integrity": "sha512-
|
|
3898
|
+
"version": "4.17.21",
|
|
3899
|
+
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
|
3900
|
+
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
|
3858
3901
|
"dev": true
|
|
3859
3902
|
},
|
|
3860
3903
|
"node_modules/loose-envify": {
|
|
@@ -3869,6 +3912,17 @@
|
|
|
3869
3912
|
"loose-envify": "cli.js"
|
|
3870
3913
|
}
|
|
3871
3914
|
},
|
|
3915
|
+
"node_modules/lru-cache": {
|
|
3916
|
+
"version": "6.0.0",
|
|
3917
|
+
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
|
3918
|
+
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
|
3919
|
+
"dependencies": {
|
|
3920
|
+
"yallist": "^4.0.0"
|
|
3921
|
+
},
|
|
3922
|
+
"engines": {
|
|
3923
|
+
"node": ">=10"
|
|
3924
|
+
}
|
|
3925
|
+
},
|
|
3872
3926
|
"node_modules/map-cache": {
|
|
3873
3927
|
"version": "0.2.2",
|
|
3874
3928
|
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
|
|
@@ -3892,6 +3946,16 @@
|
|
|
3892
3946
|
"node": ">=0.10.0"
|
|
3893
3947
|
}
|
|
3894
3948
|
},
|
|
3949
|
+
"node_modules/md5": {
|
|
3950
|
+
"version": "2.3.0",
|
|
3951
|
+
"resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
|
|
3952
|
+
"integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
|
|
3953
|
+
"dependencies": {
|
|
3954
|
+
"charenc": "0.0.2",
|
|
3955
|
+
"crypt": "0.0.2",
|
|
3956
|
+
"is-buffer": "~1.1.6"
|
|
3957
|
+
}
|
|
3958
|
+
},
|
|
3895
3959
|
"node_modules/media-typer": {
|
|
3896
3960
|
"version": "0.3.0",
|
|
3897
3961
|
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
|
@@ -3996,9 +4060,9 @@
|
|
|
3996
4060
|
}
|
|
3997
4061
|
},
|
|
3998
4062
|
"node_modules/minimist": {
|
|
3999
|
-
"version": "1.2.
|
|
4000
|
-
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.
|
|
4001
|
-
"integrity": "sha512-
|
|
4063
|
+
"version": "1.2.6",
|
|
4064
|
+
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
|
|
4065
|
+
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
|
|
4002
4066
|
"dev": true
|
|
4003
4067
|
},
|
|
4004
4068
|
"node_modules/mixin-deep": {
|
|
@@ -4114,6 +4178,25 @@
|
|
|
4114
4178
|
"node": ">= 8.0.0"
|
|
4115
4179
|
}
|
|
4116
4180
|
},
|
|
4181
|
+
"node_modules/node-fetch": {
|
|
4182
|
+
"version": "2.6.7",
|
|
4183
|
+
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
|
4184
|
+
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
|
4185
|
+
"dependencies": {
|
|
4186
|
+
"whatwg-url": "^5.0.0"
|
|
4187
|
+
},
|
|
4188
|
+
"engines": {
|
|
4189
|
+
"node": "4.x || >=6.0.0"
|
|
4190
|
+
},
|
|
4191
|
+
"peerDependencies": {
|
|
4192
|
+
"encoding": "^0.1.0"
|
|
4193
|
+
},
|
|
4194
|
+
"peerDependenciesMeta": {
|
|
4195
|
+
"encoding": {
|
|
4196
|
+
"optional": true
|
|
4197
|
+
}
|
|
4198
|
+
}
|
|
4199
|
+
},
|
|
4117
4200
|
"node_modules/node-releases": {
|
|
4118
4201
|
"version": "1.1.28",
|
|
4119
4202
|
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.28.tgz",
|
|
@@ -4562,9 +4645,9 @@
|
|
|
4562
4645
|
}
|
|
4563
4646
|
},
|
|
4564
4647
|
"node_modules/path-parse": {
|
|
4565
|
-
"version": "1.0.
|
|
4566
|
-
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.
|
|
4567
|
-
"integrity": "sha512-
|
|
4648
|
+
"version": "1.0.7",
|
|
4649
|
+
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
|
|
4650
|
+
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
|
|
4568
4651
|
"dev": true
|
|
4569
4652
|
},
|
|
4570
4653
|
"node_modules/path-to-regexp": {
|
|
@@ -5606,6 +5689,11 @@
|
|
|
5606
5689
|
"nodetouch": "bin/nodetouch.js"
|
|
5607
5690
|
}
|
|
5608
5691
|
},
|
|
5692
|
+
"node_modules/tr46": {
|
|
5693
|
+
"version": "0.0.3",
|
|
5694
|
+
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
|
|
5695
|
+
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
|
|
5696
|
+
},
|
|
5609
5697
|
"node_modules/trim-right": {
|
|
5610
5698
|
"version": "1.0.1",
|
|
5611
5699
|
"resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
|
|
@@ -5823,6 +5911,14 @@
|
|
|
5823
5911
|
"node": ">= 0.4.0"
|
|
5824
5912
|
}
|
|
5825
5913
|
},
|
|
5914
|
+
"node_modules/uuid": {
|
|
5915
|
+
"version": "8.3.2",
|
|
5916
|
+
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
|
5917
|
+
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
|
|
5918
|
+
"bin": {
|
|
5919
|
+
"uuid": "dist/bin/uuid"
|
|
5920
|
+
}
|
|
5921
|
+
},
|
|
5826
5922
|
"node_modules/v8-compile-cache": {
|
|
5827
5923
|
"version": "2.1.0",
|
|
5828
5924
|
"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz",
|
|
@@ -5838,6 +5934,20 @@
|
|
|
5838
5934
|
"node": ">= 0.8"
|
|
5839
5935
|
}
|
|
5840
5936
|
},
|
|
5937
|
+
"node_modules/webidl-conversions": {
|
|
5938
|
+
"version": "3.0.1",
|
|
5939
|
+
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
|
|
5940
|
+
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
|
|
5941
|
+
},
|
|
5942
|
+
"node_modules/whatwg-url": {
|
|
5943
|
+
"version": "5.0.0",
|
|
5944
|
+
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
|
|
5945
|
+
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
|
|
5946
|
+
"dependencies": {
|
|
5947
|
+
"tr46": "~0.0.3",
|
|
5948
|
+
"webidl-conversions": "^3.0.0"
|
|
5949
|
+
}
|
|
5950
|
+
},
|
|
5841
5951
|
"node_modules/which": {
|
|
5842
5952
|
"version": "1.3.1",
|
|
5843
5953
|
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
|
|
@@ -5873,6 +5983,11 @@
|
|
|
5873
5983
|
"engines": {
|
|
5874
5984
|
"node": ">=4"
|
|
5875
5985
|
}
|
|
5986
|
+
},
|
|
5987
|
+
"node_modules/yallist": {
|
|
5988
|
+
"version": "4.0.0",
|
|
5989
|
+
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
|
5990
|
+
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
|
|
5876
5991
|
}
|
|
5877
5992
|
},
|
|
5878
5993
|
"dependencies": {
|
|
@@ -6934,6 +7049,11 @@
|
|
|
6934
7049
|
}
|
|
6935
7050
|
}
|
|
6936
7051
|
},
|
|
7052
|
+
"big-integer": {
|
|
7053
|
+
"version": "1.6.51",
|
|
7054
|
+
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
|
|
7055
|
+
"integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg=="
|
|
7056
|
+
},
|
|
6937
7057
|
"binary-extensions": {
|
|
6938
7058
|
"version": "1.13.1",
|
|
6939
7059
|
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
|
|
@@ -7086,6 +7206,11 @@
|
|
|
7086
7206
|
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
|
|
7087
7207
|
"dev": true
|
|
7088
7208
|
},
|
|
7209
|
+
"charenc": {
|
|
7210
|
+
"version": "0.0.2",
|
|
7211
|
+
"resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
|
|
7212
|
+
"integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA=="
|
|
7213
|
+
},
|
|
7089
7214
|
"chokidar": {
|
|
7090
7215
|
"version": "2.1.8",
|
|
7091
7216
|
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
|
|
@@ -7286,6 +7411,11 @@
|
|
|
7286
7411
|
"which": "^1.2.9"
|
|
7287
7412
|
}
|
|
7288
7413
|
},
|
|
7414
|
+
"crypt": {
|
|
7415
|
+
"version": "0.0.2",
|
|
7416
|
+
"resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
|
|
7417
|
+
"integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow=="
|
|
7418
|
+
},
|
|
7289
7419
|
"debug": {
|
|
7290
7420
|
"version": "2.6.9",
|
|
7291
7421
|
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
|
@@ -7871,6 +8001,28 @@
|
|
|
7871
8001
|
"unpipe": "~1.0.0"
|
|
7872
8002
|
}
|
|
7873
8003
|
},
|
|
8004
|
+
"flagsmith-nodejs": {
|
|
8005
|
+
"version": "2.2.2",
|
|
8006
|
+
"resolved": "https://registry.npmjs.org/flagsmith-nodejs/-/flagsmith-nodejs-2.2.2.tgz",
|
|
8007
|
+
"integrity": "sha512-T8RI5+H6GdHwXz7fOaQOE5Q6XJOeMLlSuSw4uDExQRkVzaO/6k0KFBYRRiTce//guRrkSSW1xqvcB8AuqYLkNA==",
|
|
8008
|
+
"requires": {
|
|
8009
|
+
"big-integer": "^1.6.51",
|
|
8010
|
+
"md5": "^2.3.0",
|
|
8011
|
+
"node-fetch": "^2.1.2",
|
|
8012
|
+
"semver": "^7.3.7",
|
|
8013
|
+
"uuid": "^8.3.2"
|
|
8014
|
+
},
|
|
8015
|
+
"dependencies": {
|
|
8016
|
+
"semver": {
|
|
8017
|
+
"version": "7.3.7",
|
|
8018
|
+
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
|
|
8019
|
+
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
|
|
8020
|
+
"requires": {
|
|
8021
|
+
"lru-cache": "^6.0.0"
|
|
8022
|
+
}
|
|
8023
|
+
}
|
|
8024
|
+
}
|
|
8025
|
+
},
|
|
7874
8026
|
"flat-cache": {
|
|
7875
8027
|
"version": "2.0.1",
|
|
7876
8028
|
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
|
|
@@ -8758,9 +8910,7 @@
|
|
|
8758
8910
|
"is-buffer": {
|
|
8759
8911
|
"version": "1.1.6",
|
|
8760
8912
|
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
|
|
8761
|
-
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
|
|
8762
|
-
"dev": true,
|
|
8763
|
-
"optional": true
|
|
8913
|
+
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
|
|
8764
8914
|
},
|
|
8765
8915
|
"is-data-descriptor": {
|
|
8766
8916
|
"version": "0.1.4",
|
|
@@ -8951,14 +9101,6 @@
|
|
|
8951
9101
|
"dev": true,
|
|
8952
9102
|
"requires": {
|
|
8953
9103
|
"minimist": "^1.2.0"
|
|
8954
|
-
},
|
|
8955
|
-
"dependencies": {
|
|
8956
|
-
"minimist": {
|
|
8957
|
-
"version": "1.2.5",
|
|
8958
|
-
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
|
|
8959
|
-
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
|
|
8960
|
-
"dev": true
|
|
8961
|
-
}
|
|
8962
9104
|
}
|
|
8963
9105
|
},
|
|
8964
9106
|
"kind-of": {
|
|
@@ -8979,9 +9121,9 @@
|
|
|
8979
9121
|
}
|
|
8980
9122
|
},
|
|
8981
9123
|
"lodash": {
|
|
8982
|
-
"version": "4.17.
|
|
8983
|
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.
|
|
8984
|
-
"integrity": "sha512-
|
|
9124
|
+
"version": "4.17.21",
|
|
9125
|
+
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
|
9126
|
+
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
|
8985
9127
|
"dev": true
|
|
8986
9128
|
},
|
|
8987
9129
|
"loose-envify": {
|
|
@@ -8993,6 +9135,14 @@
|
|
|
8993
9135
|
"js-tokens": "^3.0.0 || ^4.0.0"
|
|
8994
9136
|
}
|
|
8995
9137
|
},
|
|
9138
|
+
"lru-cache": {
|
|
9139
|
+
"version": "6.0.0",
|
|
9140
|
+
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
|
9141
|
+
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
|
9142
|
+
"requires": {
|
|
9143
|
+
"yallist": "^4.0.0"
|
|
9144
|
+
}
|
|
9145
|
+
},
|
|
8996
9146
|
"map-cache": {
|
|
8997
9147
|
"version": "0.2.2",
|
|
8998
9148
|
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
|
|
@@ -9010,6 +9160,16 @@
|
|
|
9010
9160
|
"object-visit": "^1.0.0"
|
|
9011
9161
|
}
|
|
9012
9162
|
},
|
|
9163
|
+
"md5": {
|
|
9164
|
+
"version": "2.3.0",
|
|
9165
|
+
"resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
|
|
9166
|
+
"integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
|
|
9167
|
+
"requires": {
|
|
9168
|
+
"charenc": "0.0.2",
|
|
9169
|
+
"crypt": "0.0.2",
|
|
9170
|
+
"is-buffer": "~1.1.6"
|
|
9171
|
+
}
|
|
9172
|
+
},
|
|
9013
9173
|
"media-typer": {
|
|
9014
9174
|
"version": "0.3.0",
|
|
9015
9175
|
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
|
@@ -9087,9 +9247,9 @@
|
|
|
9087
9247
|
}
|
|
9088
9248
|
},
|
|
9089
9249
|
"minimist": {
|
|
9090
|
-
"version": "1.2.
|
|
9091
|
-
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.
|
|
9092
|
-
"integrity": "sha512-
|
|
9250
|
+
"version": "1.2.6",
|
|
9251
|
+
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
|
|
9252
|
+
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
|
|
9093
9253
|
"dev": true
|
|
9094
9254
|
},
|
|
9095
9255
|
"mixin-deep": {
|
|
@@ -9189,6 +9349,14 @@
|
|
|
9189
9349
|
"clone": "2.x"
|
|
9190
9350
|
}
|
|
9191
9351
|
},
|
|
9352
|
+
"node-fetch": {
|
|
9353
|
+
"version": "2.6.7",
|
|
9354
|
+
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
|
9355
|
+
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
|
9356
|
+
"requires": {
|
|
9357
|
+
"whatwg-url": "^5.0.0"
|
|
9358
|
+
}
|
|
9359
|
+
},
|
|
9192
9360
|
"node-releases": {
|
|
9193
9361
|
"version": "1.1.28",
|
|
9194
9362
|
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.28.tgz",
|
|
@@ -9525,9 +9693,9 @@
|
|
|
9525
9693
|
"dev": true
|
|
9526
9694
|
},
|
|
9527
9695
|
"path-parse": {
|
|
9528
|
-
"version": "1.0.
|
|
9529
|
-
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.
|
|
9530
|
-
"integrity": "sha512-
|
|
9696
|
+
"version": "1.0.7",
|
|
9697
|
+
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
|
|
9698
|
+
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
|
|
9531
9699
|
"dev": true
|
|
9532
9700
|
},
|
|
9533
9701
|
"path-to-regexp": {
|
|
@@ -10368,6 +10536,11 @@
|
|
|
10368
10536
|
"nopt": "~1.0.10"
|
|
10369
10537
|
}
|
|
10370
10538
|
},
|
|
10539
|
+
"tr46": {
|
|
10540
|
+
"version": "0.0.3",
|
|
10541
|
+
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
|
|
10542
|
+
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
|
|
10543
|
+
},
|
|
10371
10544
|
"trim-right": {
|
|
10372
10545
|
"version": "1.0.1",
|
|
10373
10546
|
"resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
|
|
@@ -10539,6 +10712,11 @@
|
|
|
10539
10712
|
"integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
|
|
10540
10713
|
"dev": true
|
|
10541
10714
|
},
|
|
10715
|
+
"uuid": {
|
|
10716
|
+
"version": "8.3.2",
|
|
10717
|
+
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
|
10718
|
+
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
|
|
10719
|
+
},
|
|
10542
10720
|
"v8-compile-cache": {
|
|
10543
10721
|
"version": "2.1.0",
|
|
10544
10722
|
"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz",
|
|
@@ -10551,6 +10729,20 @@
|
|
|
10551
10729
|
"integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
|
|
10552
10730
|
"dev": true
|
|
10553
10731
|
},
|
|
10732
|
+
"webidl-conversions": {
|
|
10733
|
+
"version": "3.0.1",
|
|
10734
|
+
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
|
|
10735
|
+
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
|
|
10736
|
+
},
|
|
10737
|
+
"whatwg-url": {
|
|
10738
|
+
"version": "5.0.0",
|
|
10739
|
+
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
|
|
10740
|
+
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
|
|
10741
|
+
"requires": {
|
|
10742
|
+
"tr46": "~0.0.3",
|
|
10743
|
+
"webidl-conversions": "^3.0.0"
|
|
10744
|
+
}
|
|
10745
|
+
},
|
|
10554
10746
|
"which": {
|
|
10555
10747
|
"version": "1.3.1",
|
|
10556
10748
|
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
|
|
@@ -10580,6 +10772,11 @@
|
|
|
10580
10772
|
"requires": {
|
|
10581
10773
|
"mkdirp": "^0.5.1"
|
|
10582
10774
|
}
|
|
10775
|
+
},
|
|
10776
|
+
"yallist": {
|
|
10777
|
+
"version": "4.0.0",
|
|
10778
|
+
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
|
10779
|
+
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
|
|
10583
10780
|
}
|
|
10584
10781
|
}
|
|
10585
10782
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import {Router} from 'express'
|
|
2
|
+
import Flagsmith from '../../../../build'
|
|
3
|
+
|
|
4
|
+
const environmentKey = 'NowEDzKzNJXZVTVanLVdMQ';
|
|
5
|
+
|
|
6
|
+
const flagsmith = new Flagsmith({
|
|
7
|
+
environmentKey
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
const api = () => {
|
|
11
|
+
const api = Router();
|
|
12
|
+
|
|
13
|
+
api.get('/', async (req, res) => {
|
|
14
|
+
const flags = await flagsmith.getEnvironmentFlags();
|
|
15
|
+
res.json(flags);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
api.get('/:user', async (req, res) => {
|
|
19
|
+
const flags = await flagsmith.getIdentityFlags(req.params.user, { checkout_v2: 1 });
|
|
20
|
+
const fontSize = flags.getFeatureValue('font_size');
|
|
21
|
+
const checkoutV2 = flags.isFeatureEnabled('checkout_v2');
|
|
22
|
+
res.json({ fontSize, checkoutV2 });
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
api.get('/:user/segments', async (req, res) => {
|
|
26
|
+
const segments = await flagsmith.getIdentitySegments(req.params.user, { checkout_v2: 1 });
|
|
27
|
+
res.json(segments.map(v => v.name));
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
return api;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export default api
|