@launchdarkly/js-client-sdk-common 1.21.0 → 1.23.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.
Files changed (116) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/cjs/DataManager.d.ts +24 -0
  3. package/dist/cjs/DataManager.d.ts.map +1 -1
  4. package/dist/cjs/LDClientImpl.d.ts.map +1 -1
  5. package/dist/cjs/api/LDOptions.d.ts +8 -0
  6. package/dist/cjs/api/LDOptions.d.ts.map +1 -1
  7. package/dist/cjs/api/datasource/DataSourceEntry.d.ts +11 -0
  8. package/dist/cjs/api/datasource/DataSourceEntry.d.ts.map +1 -1
  9. package/dist/cjs/api/datasource/LDClientDataSystemOptions.d.ts +22 -0
  10. package/dist/cjs/api/datasource/LDClientDataSystemOptions.d.ts.map +1 -1
  11. package/dist/cjs/api/datasource/ModeDefinition.d.ts +3 -3
  12. package/dist/cjs/api/datasource/ModeDefinition.d.ts.map +1 -1
  13. package/dist/cjs/api/datasource/ModeResolution.d.ts +75 -0
  14. package/dist/cjs/api/datasource/ModeResolution.d.ts.map +1 -0
  15. package/dist/cjs/api/datasource/index.d.ts +2 -1
  16. package/dist/cjs/api/datasource/index.d.ts.map +1 -1
  17. package/dist/cjs/configuration/Configuration.d.ts +6 -0
  18. package/dist/cjs/configuration/Configuration.d.ts.map +1 -1
  19. package/dist/cjs/configuration/validateOptions.d.ts +1 -1
  20. package/dist/cjs/configuration/validateOptions.d.ts.map +1 -1
  21. package/dist/cjs/configuration/validators.d.ts +5 -2
  22. package/dist/cjs/configuration/validators.d.ts.map +1 -1
  23. package/dist/cjs/datasource/ConnectionModeConfig.d.ts.map +1 -1
  24. package/dist/cjs/datasource/LDClientDataSystemOptions.d.ts +1 -0
  25. package/dist/cjs/datasource/LDClientDataSystemOptions.d.ts.map +1 -1
  26. package/dist/cjs/datasource/ModeResolver.d.ts +30 -0
  27. package/dist/cjs/datasource/ModeResolver.d.ts.map +1 -0
  28. package/dist/cjs/datasource/SourceFactoryProvider.d.ts +77 -0
  29. package/dist/cjs/datasource/SourceFactoryProvider.d.ts.map +1 -0
  30. package/dist/cjs/datasource/fdv2/CacheInitializer.d.ts +17 -0
  31. package/dist/cjs/datasource/fdv2/CacheInitializer.d.ts.map +1 -0
  32. package/dist/cjs/datasource/fdv2/FDv1PollingSynchronizer.d.ts +2 -0
  33. package/dist/cjs/datasource/fdv2/FDv1PollingSynchronizer.d.ts.map +1 -0
  34. package/dist/cjs/datasource/fdv2/FDv2DataSource.d.ts.map +1 -1
  35. package/dist/cjs/datasource/fdv2/FDv2SourceResult.d.ts +3 -1
  36. package/dist/cjs/datasource/fdv2/FDv2SourceResult.d.ts.map +1 -1
  37. package/dist/cjs/datasource/fdv2/calculatePollDelay.d.ts +2 -0
  38. package/dist/cjs/datasource/fdv2/calculatePollDelay.d.ts.map +1 -0
  39. package/dist/cjs/datasource/fdv2/index.d.ts +4 -0
  40. package/dist/cjs/datasource/fdv2/index.d.ts.map +1 -1
  41. package/dist/cjs/datasource/flagEvalMapper.d.ts +3 -3
  42. package/dist/cjs/flag-manager/FlagManager.d.ts +18 -2
  43. package/dist/cjs/flag-manager/FlagManager.d.ts.map +1 -1
  44. package/dist/cjs/flag-manager/FlagPersistence.d.ts +21 -2
  45. package/dist/cjs/flag-manager/FlagPersistence.d.ts.map +1 -1
  46. package/dist/cjs/flag-manager/FlagStore.d.ts +10 -0
  47. package/dist/cjs/flag-manager/FlagStore.d.ts.map +1 -1
  48. package/dist/cjs/flag-manager/FlagUpdater.d.ts +13 -1
  49. package/dist/cjs/flag-manager/FlagUpdater.d.ts.map +1 -1
  50. package/dist/cjs/index.cjs +1463 -60
  51. package/dist/cjs/index.cjs.map +1 -1
  52. package/dist/cjs/index.d.ts +8 -1
  53. package/dist/cjs/index.d.ts.map +1 -1
  54. package/dist/cjs/storage/freshness.d.ts +27 -0
  55. package/dist/cjs/storage/freshness.d.ts.map +1 -0
  56. package/dist/cjs/storage/loadCachedFlags.d.ts +25 -0
  57. package/dist/cjs/storage/loadCachedFlags.d.ts.map +1 -0
  58. package/dist/cjs/types/index.d.ts +2 -2
  59. package/dist/esm/DataManager.d.ts +24 -0
  60. package/dist/esm/DataManager.d.ts.map +1 -1
  61. package/dist/esm/LDClientImpl.d.ts.map +1 -1
  62. package/dist/esm/api/LDOptions.d.ts +8 -0
  63. package/dist/esm/api/LDOptions.d.ts.map +1 -1
  64. package/dist/esm/api/datasource/DataSourceEntry.d.ts +11 -0
  65. package/dist/esm/api/datasource/DataSourceEntry.d.ts.map +1 -1
  66. package/dist/esm/api/datasource/LDClientDataSystemOptions.d.ts +22 -0
  67. package/dist/esm/api/datasource/LDClientDataSystemOptions.d.ts.map +1 -1
  68. package/dist/esm/api/datasource/ModeDefinition.d.ts +3 -3
  69. package/dist/esm/api/datasource/ModeDefinition.d.ts.map +1 -1
  70. package/dist/esm/api/datasource/ModeResolution.d.ts +75 -0
  71. package/dist/esm/api/datasource/ModeResolution.d.ts.map +1 -0
  72. package/dist/esm/api/datasource/index.d.ts +2 -1
  73. package/dist/esm/api/datasource/index.d.ts.map +1 -1
  74. package/dist/esm/configuration/Configuration.d.ts +6 -0
  75. package/dist/esm/configuration/Configuration.d.ts.map +1 -1
  76. package/dist/esm/configuration/validateOptions.d.ts +1 -1
  77. package/dist/esm/configuration/validateOptions.d.ts.map +1 -1
  78. package/dist/esm/configuration/validators.d.ts +5 -2
  79. package/dist/esm/configuration/validators.d.ts.map +1 -1
  80. package/dist/esm/datasource/ConnectionModeConfig.d.ts.map +1 -1
  81. package/dist/esm/datasource/LDClientDataSystemOptions.d.ts +1 -0
  82. package/dist/esm/datasource/LDClientDataSystemOptions.d.ts.map +1 -1
  83. package/dist/esm/datasource/ModeResolver.d.ts +30 -0
  84. package/dist/esm/datasource/ModeResolver.d.ts.map +1 -0
  85. package/dist/esm/datasource/SourceFactoryProvider.d.ts +77 -0
  86. package/dist/esm/datasource/SourceFactoryProvider.d.ts.map +1 -0
  87. package/dist/esm/datasource/fdv2/CacheInitializer.d.ts +17 -0
  88. package/dist/esm/datasource/fdv2/CacheInitializer.d.ts.map +1 -0
  89. package/dist/esm/datasource/fdv2/FDv1PollingSynchronizer.d.ts +2 -0
  90. package/dist/esm/datasource/fdv2/FDv1PollingSynchronizer.d.ts.map +1 -0
  91. package/dist/esm/datasource/fdv2/FDv2DataSource.d.ts.map +1 -1
  92. package/dist/esm/datasource/fdv2/FDv2SourceResult.d.ts +3 -1
  93. package/dist/esm/datasource/fdv2/FDv2SourceResult.d.ts.map +1 -1
  94. package/dist/esm/datasource/fdv2/calculatePollDelay.d.ts +2 -0
  95. package/dist/esm/datasource/fdv2/calculatePollDelay.d.ts.map +1 -0
  96. package/dist/esm/datasource/fdv2/index.d.ts +4 -0
  97. package/dist/esm/datasource/fdv2/index.d.ts.map +1 -1
  98. package/dist/esm/datasource/flagEvalMapper.d.ts +3 -3
  99. package/dist/esm/flag-manager/FlagManager.d.ts +18 -2
  100. package/dist/esm/flag-manager/FlagManager.d.ts.map +1 -1
  101. package/dist/esm/flag-manager/FlagPersistence.d.ts +21 -2
  102. package/dist/esm/flag-manager/FlagPersistence.d.ts.map +1 -1
  103. package/dist/esm/flag-manager/FlagStore.d.ts +10 -0
  104. package/dist/esm/flag-manager/FlagStore.d.ts.map +1 -1
  105. package/dist/esm/flag-manager/FlagUpdater.d.ts +13 -1
  106. package/dist/esm/flag-manager/FlagUpdater.d.ts.map +1 -1
  107. package/dist/esm/index.d.ts +8 -1
  108. package/dist/esm/index.d.ts.map +1 -1
  109. package/dist/esm/index.mjs +1453 -61
  110. package/dist/esm/index.mjs.map +1 -1
  111. package/dist/esm/storage/freshness.d.ts +27 -0
  112. package/dist/esm/storage/freshness.d.ts.map +1 -0
  113. package/dist/esm/storage/loadCachedFlags.d.ts +25 -0
  114. package/dist/esm/storage/loadCachedFlags.d.ts.map +1 -0
  115. package/dist/esm/types/index.d.ts +2 -2
  116. package/package.json +2 -2
@@ -17,6 +17,8 @@ export interface ChangeSetResult {
17
17
  payload: internal.Payload;
18
18
  fdv1Fallback: boolean;
19
19
  environmentId?: string;
20
+ /** Freshness timestamp from cache, if this result originated from cached data. */
21
+ freshness?: number;
20
22
  }
21
23
  /**
22
24
  * A status result indicating a state transition (error, shutdown, goodbye).
@@ -40,7 +42,7 @@ export type FDv2SourceResult = ChangeSetResult | StatusResult;
40
42
  /**
41
43
  * Creates a change set result containing processed flag data.
42
44
  */
43
- export declare function changeSet(payload: internal.Payload, fdv1Fallback: boolean, environmentId?: string): FDv2SourceResult;
45
+ export declare function changeSet(payload: internal.Payload, fdv1Fallback: boolean, environmentId?: string, freshness?: number): FDv2SourceResult;
44
46
  /**
45
47
  * Creates an interrupted status result. Indicates a transient error; the
46
48
  * synchronizer will attempt to recover automatically.
@@ -1 +1 @@
1
- {"version":3,"file":"FDv2SourceResult.d.ts","sourceRoot":"","sources":["../../../src/datasource/fdv2/FDv2SourceResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE5E,OAAO,yBAAyB,MAAM,8BAA8B,CAAC;AAErE;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,yBAAyB,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,YAAY,CAAC;AAE9D;;GAEG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,QAAQ,CAAC,OAAO,EACzB,YAAY,EAAE,OAAO,EACrB,aAAa,CAAC,EAAE,MAAM,GACrB,gBAAgB,CAElB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,yBAAyB,EACpC,YAAY,EAAE,OAAO,GACpB,gBAAgB,CAElB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,IAAI,gBAAgB,CAE3C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,yBAAyB,EACpC,YAAY,EAAE,OAAO,GACpB,gBAAgB,CAElB;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,gBAAgB,CAE/E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,yBAAyB,CAOpF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB,CAMpF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB,CAMnF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB,CAM/E"}
1
+ {"version":3,"file":"FDv2SourceResult.d.ts","sourceRoot":"","sources":["../../../src/datasource/fdv2/FDv2SourceResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE5E,OAAO,yBAAyB,MAAM,8BAA8B,CAAC;AAErE;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,yBAAyB,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,YAAY,CAAC;AAE9D;;GAEG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,QAAQ,CAAC,OAAO,EACzB,YAAY,EAAE,OAAO,EACrB,aAAa,CAAC,EAAE,MAAM,EACtB,SAAS,CAAC,EAAE,MAAM,GACjB,gBAAgB,CAElB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,yBAAyB,EACpC,YAAY,EAAE,OAAO,GACpB,gBAAgB,CAElB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,IAAI,gBAAgB,CAE3C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,yBAAyB,EACpC,YAAY,EAAE,OAAO,GACpB,gBAAgB,CAElB;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,gBAAgB,CAE/E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,yBAAyB,CAOpF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB,CAMpF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB,CAMnF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB,CAM/E"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=calculatePollDelay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculatePollDelay.d.ts","sourceRoot":"","sources":["../../../src/datasource/fdv2/calculatePollDelay.ts"],"names":[],"mappings":""}
@@ -1,13 +1,17 @@
1
1
  export type { AsyncQueue } from './AsyncQueue';
2
2
  export { createAsyncQueue } from './AsyncQueue';
3
+ export type { CacheInitializerConfig } from './CacheInitializer';
4
+ export { createCacheInitializerFactory } from './CacheInitializer';
3
5
  export type { FDv2PollResponse, FDv2Requestor } from './FDv2Requestor';
4
6
  export { makeFDv2Requestor } from './FDv2Requestor';
5
7
  export type { ChangeSetResult, FDv2SourceResult, SourceState, StatusResult, } from './FDv2SourceResult';
6
8
  export { changeSet, errorInfoFromHttpError, errorInfoFromInvalidData, errorInfoFromNetworkError, errorInfoFromUnknown, goodbye, interrupted, shutdown, terminalError, } from './FDv2SourceResult';
7
9
  export type { Initializer } from './Initializer';
8
10
  export type { Synchronizer } from './Synchronizer';
11
+ export { calculatePollDelay } from './calculatePollDelay';
9
12
  export { poll } from './PollingBase';
10
13
  export { createPollingInitializer } from './PollingInitializer';
14
+ export { createFDv1PollingSynchronizer } from './FDv1PollingSynchronizer';
11
15
  export { createPollingSynchronizer } from './PollingSynchronizer';
12
16
  export type { PingHandler, StreamingFDv2Base } from './StreamingFDv2Base';
13
17
  export { createStreamingBase } from './StreamingFDv2Base';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/datasource/fdv2/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EACT,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,EACpB,OAAO,EACP,WAAW,EACX,QAAQ,EACR,aAAa,GACd,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/datasource/fdv2/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAEnE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EACT,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,EACpB,OAAO,EACP,WAAW,EACX,QAAQ,EACR,aAAa,GACd,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC"}
@@ -2,7 +2,7 @@ import type { internal } from '@launchdarkly/js-sdk-common';
2
2
  import { ItemDescriptor } from '../flag-manager/ItemDescriptor';
3
3
  import { FlagEvaluationResult } from '../types';
4
4
  /**
5
- * ObjProcessor for the `flagEval` object kind. Used by the protocol handler to
5
+ * ObjProcessor for the `flag-eval` object kind. Used by the protocol handler to
6
6
  * process objects received in `put-object` events.
7
7
  *
8
8
  * Client-side evaluation results are already in their final form (pre-evaluated
@@ -10,7 +10,7 @@ import { FlagEvaluationResult } from '../types';
10
10
  */
11
11
  export declare function processFlagEval(object: unknown): FlagEvaluationResult;
12
12
  /**
13
- * Converts an FDv2 {@link internal.Update} with `kind: 'flagEval'` into an
13
+ * Converts an FDv2 {@link internal.Update} with `kind: 'flag-eval'` into an
14
14
  * {@link ItemDescriptor} suitable for {@link FlagManager}.
15
15
  *
16
16
  * For put updates the envelope `version` is used as the {@link ItemDescriptor.version}
@@ -22,7 +22,7 @@ export declare function processFlagEval(object: unknown): FlagEvaluationResult;
22
22
  export declare function flagEvalUpdateToItemDescriptor(update: internal.Update): ItemDescriptor;
23
23
  /**
24
24
  * Converts an array of FDv2 payload updates into a map of flag key to
25
- * {@link ItemDescriptor}. Only `flagEval` kind updates are processed;
25
+ * {@link ItemDescriptor}. Only `flag-eval` kind updates are processed;
26
26
  * unrecognized kinds are silently ignored.
27
27
  */
28
28
  export declare function flagEvalPayloadToItemDescriptors(updates: internal.Update[]): {
@@ -1,4 +1,4 @@
1
- import { Context, LDFlagValue, LDLogger, Platform } from '@launchdarkly/js-sdk-common';
1
+ import { Context, internal, LDFlagValue, LDLogger, Platform } from '@launchdarkly/js-sdk-common';
2
2
  import { FlagsChangeCallback } from './FlagUpdater';
3
3
  import { ItemDescriptor } from './ItemDescriptor';
4
4
  /**
@@ -51,6 +51,18 @@ export interface FlagManager {
51
51
  setBootstrap(context: Context, newFlags: {
52
52
  [key: string]: ItemDescriptor;
53
53
  }): void;
54
+ /**
55
+ * Applies a changeset to the flag store.
56
+ * - `'full'`: replaces all flags (like {@link init}).
57
+ * - `'partial'`: upserts individual flags (like calling {@link upsert} for each entry).
58
+ * - `'none'`: persists cache (updating freshness) without changing any flags.
59
+ *
60
+ * Designed for the FDv2 data path where init/upsert semantics, selector
61
+ * tracking, and freshness updates are all handled in one call.
62
+ */
63
+ applyChanges(context: Context, updates: {
64
+ [key: string]: ItemDescriptor;
65
+ }, type: internal.PayloadType): Promise<void>;
54
66
  /**
55
67
  * Register a flag change callback.
56
68
  */
@@ -116,10 +128,11 @@ export default class DefaultFlagManager implements FlagManager {
116
128
  * @param platform implementation of various platform provided functionality
117
129
  * @param sdkKey that will be used to distinguish different environments
118
130
  * @param maxCachedContexts that specifies the max number of contexts that will be cached in persistence
131
+ * @param disableCache set to true to completely disable the persistent flag cache
119
132
  * @param logger used for logging various messages
120
133
  * @param timeStamper exists for testing purposes
121
134
  */
122
- constructor(platform: Platform, sdkKey: string, maxCachedContexts: number, logger: LDLogger, timeStamper?: () => number);
135
+ constructor(platform: Platform, sdkKey: string, maxCachedContexts: number, disableCache: boolean, logger: LDLogger, timeStamper?: () => number);
123
136
  private _initPersistence;
124
137
  get(key: string): ItemDescriptor | undefined;
125
138
  getAll(): {
@@ -136,6 +149,9 @@ export default class DefaultFlagManager implements FlagManager {
136
149
  }): Promise<void>;
137
150
  upsert(context: Context, key: string, item: ItemDescriptor): Promise<boolean>;
138
151
  loadCached(context: Context): Promise<boolean>;
152
+ applyChanges(context: Context, updates: {
153
+ [key: string]: ItemDescriptor;
154
+ }, type: internal.PayloadType): Promise<void>;
139
155
  on(callback: FlagsChangeCallback): void;
140
156
  off(callback: FlagsChangeCallback): void;
141
157
  private _convertValueToOverrideDescripter;
@@ -1 +1 @@
1
- {"version":3,"file":"FlagManager.d.ts","sourceRoot":"","sources":["../../src/flag-manager/FlagManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FlagManager.d.ts","sourceRoot":"","sources":["../../src/flag-manager/FlagManager.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Context, LDLogger, Platform } from '@launchdarkly/js-sdk-common';
1
+ import { Context, internal, LDLogger, Platform } from '@launchdarkly/js-sdk-common';
2
2
  import FlagStore from './FlagStore';
3
3
  import { FlagUpdater } from './FlagUpdater';
4
4
  import { ItemDescriptor } from './ItemDescriptor';
@@ -6,11 +6,17 @@ import { ItemDescriptor } from './ItemDescriptor';
6
6
  * This class handles persisting and loading flag values from a persistent
7
7
  * store. It intercepts updates and forwards them to the flag updater and
8
8
  * then persists changes after the updater has completed.
9
+ *
10
+ * Freshness metadata (timestamp + context attribute hash) is stored in a
11
+ * separate storage key (`{contextKey}_freshness`) alongside the flag data.
12
+ * Both keys are managed together — when a context is evicted, both the flag
13
+ * data and freshness record are cleared.
9
14
  */
10
15
  export default class FlagPersistence {
11
16
  private readonly _platform;
12
17
  private readonly _environmentNamespace;
13
18
  private readonly _maxCachedContexts;
19
+ private readonly _disableCache;
14
20
  private readonly _flagStore;
15
21
  private readonly _flagUpdater;
16
22
  private readonly _logger;
@@ -18,7 +24,7 @@ export default class FlagPersistence {
18
24
  private _contextIndex;
19
25
  private _indexKey?;
20
26
  private _indexKeyPromise;
21
- constructor(_platform: Platform, _environmentNamespace: string, _maxCachedContexts: number, _flagStore: FlagStore, _flagUpdater: FlagUpdater, _logger: LDLogger, _timeStamper?: () => number);
27
+ constructor(_platform: Platform, _environmentNamespace: string, _maxCachedContexts: number, _disableCache: boolean, _flagStore: FlagStore, _flagUpdater: FlagUpdater, _logger: LDLogger, _timeStamper?: () => number);
22
28
  /**
23
29
  * Inits flag persistence for the provided context with the provided flags. This will result
24
30
  * in the underlying {@link FlagUpdater} switching its active context.
@@ -32,11 +38,24 @@ export default class FlagPersistence {
32
38
  * the active context.
33
39
  */
34
40
  upsert(context: Context, key: string, item: ItemDescriptor): Promise<boolean>;
41
+ /**
42
+ * Applies a changeset to the flag store.
43
+ * - `'full'`: replaces all flags via {@link FlagUpdater.init}.
44
+ * - `'partial'`: upserts individual flags via {@link FlagUpdater.upsert}.
45
+ * - `'none'`: no flag changes, only persists cache to update freshness.
46
+ *
47
+ * Always persists to cache afterwards, which updates the freshness timestamp
48
+ * even when no flags change (e.g., transfer-none).
49
+ */
50
+ applyChanges(context: Context, updates: {
51
+ [key: string]: ItemDescriptor;
52
+ }, type: internal.PayloadType): Promise<void>;
35
53
  /**
36
54
  * Loads the flags from persistence for the provided context and gives those to the
37
55
  * {@link FlagUpdater} this {@link FlagPersistence} was constructed with.
38
56
  */
39
57
  loadCached(context: Context): Promise<boolean>;
58
+ private _storeFreshness;
40
59
  private _loadIndex;
41
60
  private _storeCache;
42
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FlagPersistence.d.ts","sourceRoot":"","sources":["../../src/flag-manager/FlagPersistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAK1E,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAMhC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAX/B,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAkB;gBAGvB,SAAS,EAAE,QAAQ,EACnB,qBAAqB,EAAE,MAAM,EAC7B,kBAAkB,EAAE,MAAM,EAC1B,UAAU,EAAE,SAAS,EACrB,YAAY,EAAE,WAAW,EACzB,OAAO,EAAE,QAAQ,EACjB,YAAY,GAAE,MAAM,MAAyB;IAKhE;;;OAGG;IACG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxF;;;;OAIG;IACG,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAQnF;;;OAGG;IACG,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YA4CtC,UAAU;YAqBV,WAAW;CA4B1B"}
1
+ {"version":3,"file":"FlagPersistence.d.ts","sourceRoot":"","sources":["../../src/flag-manager/FlagPersistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAOpF,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAMhC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAZ/B,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAkB;gBAGvB,SAAS,EAAE,QAAQ,EACnB,qBAAqB,EAAE,MAAM,EAC7B,kBAAkB,EAAE,MAAM,EAC1B,aAAa,EAAE,OAAO,EACtB,UAAU,EAAE,SAAS,EACrB,YAAY,EAAE,WAAW,EACzB,OAAO,EAAE,QAAQ,EACjB,YAAY,GAAE,MAAM,MAAyB;IAKhE;;;OAGG;IACG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxF;;;;OAIG;IACG,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAQnF;;;;;;;;OAQG;IACG,YAAY,CAChB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,EAC1C,IAAI,EAAE,QAAQ,CAAC,WAAW,GACzB,OAAO,CAAC,IAAI,CAAC;IAKhB;;;OAGG;IACG,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAuCtC,eAAe;YAiBf,UAAU;YAqBV,WAAW;CAuD1B"}
@@ -1,3 +1,4 @@
1
+ import { internal } from '@launchdarkly/js-sdk-common';
1
2
  import { ItemDescriptor } from './ItemDescriptor';
2
3
  /**
3
4
  * FlagStore used to store flag data in memory.
@@ -23,6 +24,15 @@ export default interface FlagStore {
23
24
  getAll(): {
24
25
  [key: string]: ItemDescriptor;
25
26
  };
27
+ /**
28
+ * Applies a changeset to the store without version checks.
29
+ * - `'full'`: replaces all flags.
30
+ * - `'partial'`: merges updates into existing flags.
31
+ * - `'none'`: no-op.
32
+ */
33
+ applyChanges(updates: {
34
+ [key: string]: ItemDescriptor;
35
+ }, type: internal.PayloadType): void;
26
36
  }
27
37
  /**
28
38
  * Creates the default implementation of the flag store.
@@ -1 +1 @@
1
- {"version":3,"file":"FlagStore.d.ts","sourceRoot":"","sources":["../../src/flag-manager/FlagStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,SAAS;IAChC;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IACxD;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC1D;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAC7C;;OAEG;IACH,MAAM,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,CAAC;CAC7C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,SAAS,CAyBlD"}
1
+ {"version":3,"file":"FlagStore.d.ts","sourceRoot":"","sources":["../../src/flag-manager/FlagStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,SAAS;IAChC;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IACxD;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC1D;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAC7C;;OAEG;IACH,MAAM,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,CAAC;IAE5C;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;CAC5F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,SAAS,CAkClD"}
@@ -1,4 +1,4 @@
1
- import { Context, LDLogger } from '@launchdarkly/js-sdk-common';
1
+ import { Context, internal, LDLogger } from '@launchdarkly/js-sdk-common';
2
2
  import FlagStore from './FlagStore';
3
3
  import { ItemDescriptor } from './ItemDescriptor';
4
4
  export type FlagChangeType = 'init' | 'patch' | 'override';
@@ -51,6 +51,18 @@ export interface FlagUpdater {
51
51
  * @returns true if the flag was upserted, false otherwise
52
52
  */
53
53
  upsert(context: Context, key: string, item: ItemDescriptor): boolean;
54
+ /**
55
+ * Applies a changeset directly to the flag store, bypassing version checks
56
+ * and inactive-context guards. Used by the FDv2 data path where ordering
57
+ * is handled at the protocol layer.
58
+ *
59
+ * - `'full'`: replaces all flags and emits change events for differences.
60
+ * - `'partial'`: merges updates and emits change events for each key.
61
+ * - `'none'`: no flag changes (caller handles freshness separately).
62
+ */
63
+ applyChanges(context: Context, updates: {
64
+ [key: string]: ItemDescriptor;
65
+ }, type: internal.PayloadType): void;
54
66
  /**
55
67
  * Registers a callback to be called when the flags change.
56
68
  *
@@ -1 +1 @@
1
- {"version":3,"file":"FlagUpdater.d.ts","sourceRoot":"","sources":["../../src/flag-manager/FlagUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;AAE3D;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,EACvB,IAAI,EAAE,cAAc,KACjB,IAAI,CAAC;AAEV;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAE9D;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IAE1E,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IAEhF;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC;IAErE;;;;OAIG;IACH,EAAE,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAExC;;;;OAIG;IACH,GAAG,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,GAAG,WAAW,CAoE/F"}
1
+ {"version":3,"file":"FlagUpdater.d.ts","sourceRoot":"","sources":["../../src/flag-manager/FlagUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAG1E,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;AAE3D;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,EACvB,IAAI,EAAE,cAAc,KACjB,IAAI,CAAC;AAEV;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAE9D;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IAE1E,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IAEhF;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC;IAErE;;;;;;;;OAQG;IACH,YAAY,CACV,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,EAC1C,IAAI,EAAE,QAAQ,CAAC,WAAW,GACzB,IAAI,CAAC;IAER;;;;OAIG;IACH,EAAE,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAExC;;;;OAIG;IACH,GAAG,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,GAAG,WAAW,CA2F/F"}