@datadog/openfeature-node-server 0.1.0-preview.3

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.
Files changed (73) hide show
  1. package/cjs/configuration/evaluateForSubject.d.ts +7 -0
  2. package/cjs/configuration/evaluateForSubject.d.ts.map +1 -0
  3. package/cjs/configuration/evaluateForSubject.js +151 -0
  4. package/cjs/configuration/evaluateForSubject.js.map +1 -0
  5. package/cjs/configuration/evaluation.d.ts +5 -0
  6. package/cjs/configuration/evaluation.d.ts.map +1 -0
  7. package/cjs/configuration/evaluation.js +33 -0
  8. package/cjs/configuration/evaluation.js.map +1 -0
  9. package/cjs/configuration/ufc-v1.d.ts +52 -0
  10. package/cjs/configuration/ufc-v1.d.ts.map +1 -0
  11. package/cjs/configuration/ufc-v1.js +3 -0
  12. package/cjs/configuration/ufc-v1.js.map +1 -0
  13. package/cjs/index.d.ts +2 -0
  14. package/cjs/index.d.ts.map +1 -0
  15. package/cjs/index.js +4 -0
  16. package/cjs/index.js.map +1 -0
  17. package/cjs/provider.d.ts +25 -0
  18. package/cjs/provider.d.ts.map +1 -0
  19. package/cjs/provider.js +42 -0
  20. package/cjs/provider.js.map +1 -0
  21. package/cjs/rules/rules.d.ts +51 -0
  22. package/cjs/rules/rules.d.ts.map +1 -0
  23. package/cjs/rules/rules.js +71 -0
  24. package/cjs/rules/rules.js.map +1 -0
  25. package/cjs/shards/matchesShard.d.ts +4 -0
  26. package/cjs/shards/matchesShard.d.ts.map +1 -0
  27. package/cjs/shards/matchesShard.js +16 -0
  28. package/cjs/shards/matchesShard.js.map +1 -0
  29. package/cjs/shards/obfuscation.d.ts +9 -0
  30. package/cjs/shards/obfuscation.d.ts.map +1 -0
  31. package/cjs/shards/obfuscation.js +23 -0
  32. package/cjs/shards/obfuscation.js.map +1 -0
  33. package/cjs/shards/sharders.d.ts +12 -0
  34. package/cjs/shards/sharders.d.ts.map +1 -0
  35. package/cjs/shards/sharders.js +30 -0
  36. package/cjs/shards/sharders.js.map +1 -0
  37. package/esm/configuration/evaluateForSubject.d.ts +7 -0
  38. package/esm/configuration/evaluateForSubject.d.ts.map +1 -0
  39. package/esm/configuration/evaluateForSubject.js +147 -0
  40. package/esm/configuration/evaluateForSubject.js.map +1 -0
  41. package/esm/configuration/evaluation.d.ts +5 -0
  42. package/esm/configuration/evaluation.d.ts.map +1 -0
  43. package/esm/configuration/evaluation.js +30 -0
  44. package/esm/configuration/evaluation.js.map +1 -0
  45. package/esm/configuration/ufc-v1.d.ts +52 -0
  46. package/esm/configuration/ufc-v1.d.ts.map +1 -0
  47. package/esm/configuration/ufc-v1.js +2 -0
  48. package/esm/configuration/ufc-v1.js.map +1 -0
  49. package/esm/index.d.ts +2 -0
  50. package/esm/index.d.ts.map +1 -0
  51. package/esm/index.js +4 -0
  52. package/esm/index.js.map +1 -0
  53. package/esm/provider.d.ts +25 -0
  54. package/esm/provider.d.ts.map +1 -0
  55. package/esm/provider.js +38 -0
  56. package/esm/provider.js.map +1 -0
  57. package/esm/rules/rules.d.ts +51 -0
  58. package/esm/rules/rules.d.ts.map +1 -0
  59. package/esm/rules/rules.js +67 -0
  60. package/esm/rules/rules.js.map +1 -0
  61. package/esm/shards/matchesShard.d.ts +4 -0
  62. package/esm/shards/matchesShard.d.ts.map +1 -0
  63. package/esm/shards/matchesShard.js +13 -0
  64. package/esm/shards/matchesShard.js.map +1 -0
  65. package/esm/shards/obfuscation.d.ts +9 -0
  66. package/esm/shards/obfuscation.d.ts.map +1 -0
  67. package/esm/shards/obfuscation.js +16 -0
  68. package/esm/shards/obfuscation.js.map +1 -0
  69. package/esm/shards/sharders.d.ts +12 -0
  70. package/esm/shards/sharders.d.ts.map +1 -0
  71. package/esm/shards/sharders.js +24 -0
  72. package/esm/shards/sharders.js.map +1 -0
  73. package/package.json +52 -0
@@ -0,0 +1,24 @@
1
+ import { getMD5Hash } from './obfuscation';
2
+ export class Sharder {
3
+ }
4
+ export class MD5Sharder extends Sharder {
5
+ getShard(input, totalShards) {
6
+ const hashOutput = getMD5Hash(input);
7
+ // get the first 4 bytes of the md5 hex string and parse it using base 16
8
+ // (8 hex characters represent 4 bytes, e.g. 0xffffffff represents the max 4-byte integer)
9
+ const intFromHash = parseInt(hashOutput.slice(0, 8), 16);
10
+ return intFromHash % totalShards;
11
+ }
12
+ }
13
+ export class DeterministicSharder extends Sharder {
14
+ constructor(lookup) {
15
+ super();
16
+ this.lookup = lookup;
17
+ }
18
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
19
+ getShard(input, _totalShards) {
20
+ var _a;
21
+ return (_a = this.lookup[input]) !== null && _a !== void 0 ? _a : 0;
22
+ }
23
+ }
24
+ //# sourceMappingURL=sharders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sharders.js","sourceRoot":"","sources":["../../src/shards/sharders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,MAAM,OAAgB,OAAO;CAE5B;AAED,MAAM,OAAO,UAAW,SAAQ,OAAO;IACrC,QAAQ,CAAC,KAAa,EAAE,WAAmB;QACzC,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;QACpC,yEAAyE;QACzE,0FAA0F;QAC1F,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QACxD,OAAO,WAAW,GAAG,WAAW,CAAA;IAClC,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,OAAO;IAO/C,YAAY,MAA8B;QACxC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,6DAA6D;IAC7D,QAAQ,CAAC,KAAa,EAAE,YAAoB;;QAC1C,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAI,CAAC,CAAA;IAChC,CAAC;CACF"}
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@datadog/openfeature-node-server",
3
+ "version": "0.1.0-preview.3",
4
+ "description": "React Native bindings for OpenFeature (wraps @datadog/flagging-core)",
5
+ "license": "MIT",
6
+ "homepage": "https://github.com/DataDog/openfeature-js-client#readme",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/DataDog/openfeature-js-client.git",
10
+ "directory": "packages/node-server"
11
+ },
12
+ "main": "cjs/index.js",
13
+ "module": "esm/index.js",
14
+ "types": "cjs/index.d.ts",
15
+ "sideEffects": false,
16
+ "files": [
17
+ "cjs/",
18
+ "esm/",
19
+ "*.d.ts"
20
+ ],
21
+ "publishConfig": {
22
+ "access": "public"
23
+ },
24
+ "scripts": {
25
+ "prepack": "yarn build",
26
+ "pack": "yarn pack",
27
+ "build": "run-p build:cjs build:esm",
28
+ "build:cjs": "rm -rf cjs && tsc -p tsconfig.cjs.json && yarn replace-build-env cjs",
29
+ "build:esm": "rm -rf esm && tsc -p tsconfig.esm.json && yarn replace-build-env esm",
30
+ "replace-build-env": "node ../../scripts/build/replace-build-env.js",
31
+ "clean": "rm -rf dist cjs esm",
32
+ "test": "jest --passWithNoTests",
33
+ "typecheck": "tsc --noEmit"
34
+ },
35
+ "dependencies": {
36
+ "@datadog/flagging-core": "0.1.0-preview.3",
37
+ "@openfeature/server-sdk": "^1.19.0"
38
+ },
39
+ "peerDependencies": {
40
+ "@openfeature/core": "^1.8.0"
41
+ },
42
+ "devDependencies": {
43
+ "@openfeature/core": "^1.9.0",
44
+ "@types/jest": "^30.0.0",
45
+ "@types/node": "^20.0.0",
46
+ "jest": "^30.0.4",
47
+ "npm-run-all": "^4.1.5",
48
+ "ts-jest": "^29.4.0",
49
+ "ts-loader": "^9.5.2",
50
+ "typescript": "^5.5.0"
51
+ }
52
+ }