@contractspec/lib.feature-flags 1.56.1 → 1.58.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 (279) hide show
  1. package/dist/browser/contracts/index.js +636 -0
  2. package/dist/browser/docs/feature-flags.docblock.js +71 -0
  3. package/dist/browser/docs/index.js +71 -0
  4. package/dist/browser/entities/index.js +306 -0
  5. package/dist/browser/evaluation/index.js +223 -0
  6. package/dist/browser/events.js +296 -0
  7. package/dist/browser/feature-flags.capability.js +28 -0
  8. package/dist/browser/feature-flags.feature.js +55 -0
  9. package/dist/browser/index.js +1583 -0
  10. package/dist/contracts/index.d.ts +944 -953
  11. package/dist/contracts/index.d.ts.map +1 -1
  12. package/dist/contracts/index.js +635 -906
  13. package/dist/docs/feature-flags.docblock.d.ts +2 -1
  14. package/dist/docs/feature-flags.docblock.d.ts.map +1 -0
  15. package/dist/docs/feature-flags.docblock.js +18 -22
  16. package/dist/docs/index.d.ts +2 -1
  17. package/dist/docs/index.d.ts.map +1 -0
  18. package/dist/docs/index.js +72 -1
  19. package/dist/entities/index.d.ts +159 -164
  20. package/dist/entities/index.d.ts.map +1 -1
  21. package/dist/entities/index.js +297 -315
  22. package/dist/evaluation/index.d.ts +119 -122
  23. package/dist/evaluation/index.d.ts.map +1 -1
  24. package/dist/evaluation/index.js +215 -212
  25. package/dist/events.d.ts +480 -489
  26. package/dist/events.d.ts.map +1 -1
  27. package/dist/events.js +272 -511
  28. package/dist/feature-flags.capability.d.ts +2 -8
  29. package/dist/feature-flags.capability.d.ts.map +1 -1
  30. package/dist/feature-flags.capability.js +29 -25
  31. package/dist/feature-flags.feature.d.ts +1 -7
  32. package/dist/feature-flags.feature.d.ts.map +1 -1
  33. package/dist/feature-flags.feature.js +54 -146
  34. package/dist/index.d.ts +7 -6
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +1584 -8
  37. package/dist/node/contracts/index.js +636 -0
  38. package/dist/node/docs/feature-flags.docblock.js +71 -0
  39. package/dist/node/docs/index.js +71 -0
  40. package/dist/node/entities/index.js +306 -0
  41. package/dist/node/evaluation/index.js +223 -0
  42. package/dist/node/events.js +296 -0
  43. package/dist/node/feature-flags.capability.js +28 -0
  44. package/dist/node/feature-flags.feature.js +55 -0
  45. package/dist/node/index.js +1583 -0
  46. package/package.json +117 -30
  47. package/dist/contracts/index.js.map +0 -1
  48. package/dist/contracts/src/app-config/lifecycle.d.ts +0 -1
  49. package/dist/contracts/src/app-config/runtime.d.ts +0 -13
  50. package/dist/contracts/src/app-config/spec.d.ts +0 -9
  51. package/dist/contracts/src/app-config/validation.d.ts +0 -8
  52. package/dist/contracts/src/capabilities/capabilities.d.ts +0 -60
  53. package/dist/contracts/src/capabilities/capabilities.d.ts.map +0 -1
  54. package/dist/contracts/src/capabilities/context.d.ts +0 -1
  55. package/dist/contracts/src/capabilities/guards.d.ts +0 -4
  56. package/dist/contracts/src/capabilities/index.d.ts +0 -5
  57. package/dist/contracts/src/capabilities/openbanking.d.ts +0 -1
  58. package/dist/contracts/src/capabilities/validation.d.ts +0 -4
  59. package/dist/contracts/src/client/index.d.ts +0 -1
  60. package/dist/contracts/src/client/react/drivers/rn-reusables.d.ts +0 -1
  61. package/dist/contracts/src/client/react/drivers/shadcn.d.ts +0 -1
  62. package/dist/contracts/src/client/react/feature-render.d.ts +0 -3
  63. package/dist/contracts/src/client/react/form-render.d.ts +0 -4
  64. package/dist/contracts/src/client/react/index.d.ts +0 -4
  65. package/dist/contracts/src/contract-registry/index.d.ts +0 -2
  66. package/dist/contracts/src/contract-registry/schemas.d.ts +0 -2
  67. package/dist/contracts/src/contract-registry/types.d.ts +0 -1
  68. package/dist/contracts/src/data-views/index.d.ts +0 -4
  69. package/dist/contracts/src/data-views/registry.d.ts +0 -2
  70. package/dist/contracts/src/data-views/report/contractVerificationTable.d.ts +0 -1
  71. package/dist/contracts/src/data-views/spec.d.ts +0 -3
  72. package/dist/contracts/src/data-views/types.d.ts +0 -2
  73. package/dist/contracts/src/docs/accessibility_wcag_compliance_specs.docblock.d.ts +0 -1
  74. package/dist/contracts/src/docs/capabilities/documentationSystem.capability.d.ts +0 -1
  75. package/dist/contracts/src/docs/capabilities/index.d.ts +0 -1
  76. package/dist/contracts/src/docs/commands/docsGenerate.command.d.ts +0 -2
  77. package/dist/contracts/src/docs/commands/docsPublish.command.d.ts +0 -2
  78. package/dist/contracts/src/docs/commands/index.d.ts +0 -2
  79. package/dist/contracts/src/docs/contracts.d.ts +0 -7
  80. package/dist/contracts/src/docs/events/docsGenerated.event.d.ts +0 -2
  81. package/dist/contracts/src/docs/events/docsPublished.event.d.ts +0 -2
  82. package/dist/contracts/src/docs/events/index.d.ts +0 -2
  83. package/dist/contracts/src/docs/forms/docsSearch.form.d.ts +0 -2
  84. package/dist/contracts/src/docs/forms/index.d.ts +0 -1
  85. package/dist/contracts/src/docs/index.d.ts +0 -33
  86. package/dist/contracts/src/docs/presentations/docsLayout.presentation.d.ts +0 -1
  87. package/dist/contracts/src/docs/presentations/docsReferencePage.presentation.d.ts +0 -1
  88. package/dist/contracts/src/docs/presentations/index.d.ts +0 -2
  89. package/dist/contracts/src/docs/presentations.d.ts +0 -2
  90. package/dist/contracts/src/docs/queries/contractReference.query.d.ts +0 -2
  91. package/dist/contracts/src/docs/queries/docsIndex.query.d.ts +0 -2
  92. package/dist/contracts/src/docs/queries/index.d.ts +0 -2
  93. package/dist/contracts/src/docs/registry.d.ts +0 -10
  94. package/dist/contracts/src/docs/registry.d.ts.map +0 -1
  95. package/dist/contracts/src/docs/tech/auth/better-auth-nextjs.docblock.d.ts +0 -1
  96. package/dist/contracts/src/docs/tech/contracts/README.docblock.d.ts +0 -1
  97. package/dist/contracts/src/docs/tech/contracts/openapi-export.docblock.d.ts +0 -1
  98. package/dist/contracts/src/docs/tech/contracts/openapi-import.docblock.d.ts +0 -1
  99. package/dist/contracts/src/docs/tech/lifecycle-stage-system.docblock.d.ts +0 -1
  100. package/dist/contracts/src/docs/tech/llm/llm-integration.docblock.d.ts +0 -1
  101. package/dist/contracts/src/docs/tech/mcp-endpoints.docblock.d.ts +0 -1
  102. package/dist/contracts/src/docs/tech/presentation-runtime.docblock.d.ts +0 -1
  103. package/dist/contracts/src/docs/tech/schema/README.docblock.d.ts +0 -1
  104. package/dist/contracts/src/docs/tech/studio/learning-events.docblock.d.ts +0 -1
  105. package/dist/contracts/src/docs/tech/studio/learning-journeys.docblock.d.ts +0 -1
  106. package/dist/contracts/src/docs/tech/studio/platform-admin-panel.docblock.d.ts +0 -1
  107. package/dist/contracts/src/docs/tech/studio/project-access-teams.docblock.d.ts +0 -1
  108. package/dist/contracts/src/docs/tech/studio/project-routing.docblock.d.ts +0 -1
  109. package/dist/contracts/src/docs/tech/studio/sandbox-unlogged.docblock.d.ts +0 -1
  110. package/dist/contracts/src/docs/tech/studio/team-invitations.docblock.d.ts +0 -1
  111. package/dist/contracts/src/docs/tech/studio/workspace-ops.docblock.d.ts +0 -1
  112. package/dist/contracts/src/docs/tech/studio/workspaces.docblock.d.ts +0 -1
  113. package/dist/contracts/src/docs/tech/telemetry-ingest.docblock.d.ts +0 -1
  114. package/dist/contracts/src/docs/tech/vscode-extension.docblock.d.ts +0 -1
  115. package/dist/contracts/src/docs/views/contractReference.dataView.d.ts +0 -1
  116. package/dist/contracts/src/docs/views/docsIndex.dataView.d.ts +0 -1
  117. package/dist/contracts/src/docs/views/exampleCatalog.dataView.d.ts +0 -1
  118. package/dist/contracts/src/docs/views/index.d.ts +0 -3
  119. package/dist/contracts/src/events.d.ts +0 -45
  120. package/dist/contracts/src/events.d.ts.map +0 -1
  121. package/dist/contracts/src/examples/index.d.ts +0 -4
  122. package/dist/contracts/src/examples/registry.d.ts +0 -2
  123. package/dist/contracts/src/examples/schema.d.ts +0 -2
  124. package/dist/contracts/src/examples/types.d.ts +0 -3
  125. package/dist/contracts/src/examples/validation.d.ts +0 -1
  126. package/dist/contracts/src/experiments/evaluator.d.ts +0 -2
  127. package/dist/contracts/src/experiments/spec-resolver.d.ts +0 -4
  128. package/dist/contracts/src/experiments/spec.d.ts +0 -16
  129. package/dist/contracts/src/experiments/spec.d.ts.map +0 -1
  130. package/dist/contracts/src/features/index.d.ts +0 -4
  131. package/dist/contracts/src/features/install.d.ts +0 -6
  132. package/dist/contracts/src/features/registry.d.ts +0 -2
  133. package/dist/contracts/src/features/types.d.ts +0 -80
  134. package/dist/contracts/src/features/types.d.ts.map +0 -1
  135. package/dist/contracts/src/features/validation.d.ts +0 -2
  136. package/dist/contracts/src/forms/forms.d.ts +0 -3
  137. package/dist/contracts/src/forms/index.d.ts +0 -1
  138. package/dist/contracts/src/index.d.ts +0 -53
  139. package/dist/contracts/src/install.d.ts +0 -7
  140. package/dist/contracts/src/integrations/connection.d.ts +0 -1
  141. package/dist/contracts/src/integrations/index.d.ts +0 -6
  142. package/dist/contracts/src/integrations/openbanking/contracts/accounts.d.ts +0 -4
  143. package/dist/contracts/src/integrations/openbanking/contracts/balances.d.ts +0 -4
  144. package/dist/contracts/src/integrations/openbanking/contracts/index.d.ts +0 -5
  145. package/dist/contracts/src/integrations/openbanking/contracts/transactions.d.ts +0 -4
  146. package/dist/contracts/src/integrations/openbanking/guards.d.ts +0 -1
  147. package/dist/contracts/src/integrations/openbanking/models.d.ts +0 -1
  148. package/dist/contracts/src/integrations/openbanking/openbanking.feature.d.ts +0 -1
  149. package/dist/contracts/src/integrations/operations.d.ts +0 -4
  150. package/dist/contracts/src/integrations/providers/elevenlabs.d.ts +0 -2
  151. package/dist/contracts/src/integrations/providers/gcs-storage.d.ts +0 -2
  152. package/dist/contracts/src/integrations/providers/gmail.d.ts +0 -2
  153. package/dist/contracts/src/integrations/providers/google-calendar.d.ts +0 -2
  154. package/dist/contracts/src/integrations/providers/index.d.ts +0 -11
  155. package/dist/contracts/src/integrations/providers/mistral.d.ts +0 -2
  156. package/dist/contracts/src/integrations/providers/postmark.d.ts +0 -2
  157. package/dist/contracts/src/integrations/providers/powens.d.ts +0 -2
  158. package/dist/contracts/src/integrations/providers/qdrant.d.ts +0 -2
  159. package/dist/contracts/src/integrations/providers/registry.d.ts +0 -1
  160. package/dist/contracts/src/integrations/providers/stripe.d.ts +0 -2
  161. package/dist/contracts/src/integrations/providers/twilio-sms.d.ts +0 -2
  162. package/dist/contracts/src/integrations/spec.d.ts +0 -3
  163. package/dist/contracts/src/jsonschema.d.ts +0 -4
  164. package/dist/contracts/src/knowledge/index.d.ts +0 -2
  165. package/dist/contracts/src/knowledge/operations.d.ts +0 -4
  166. package/dist/contracts/src/knowledge/spaces/email-threads.d.ts +0 -1
  167. package/dist/contracts/src/knowledge/spaces/financial-docs.d.ts +0 -1
  168. package/dist/contracts/src/knowledge/spaces/financial-overview.d.ts +0 -1
  169. package/dist/contracts/src/knowledge/spaces/index.d.ts +0 -6
  170. package/dist/contracts/src/knowledge/spaces/product-canon.d.ts +0 -1
  171. package/dist/contracts/src/knowledge/spaces/support-faq.d.ts +0 -1
  172. package/dist/contracts/src/knowledge/spaces/uploaded-docs.d.ts +0 -1
  173. package/dist/contracts/src/knowledge/spec.d.ts +0 -3
  174. package/dist/contracts/src/llm/exporters.d.ts +0 -7
  175. package/dist/contracts/src/llm/index.d.ts +0 -3
  176. package/dist/contracts/src/llm/prompts.d.ts +0 -2
  177. package/dist/contracts/src/llm/types.d.ts +0 -5
  178. package/dist/contracts/src/migrations.d.ts +0 -1
  179. package/dist/contracts/src/model-registry.d.ts +0 -1
  180. package/dist/contracts/src/onboarding-base.d.ts +0 -2
  181. package/dist/contracts/src/openapi.d.ts +0 -1
  182. package/dist/contracts/src/operations/index.d.ts +0 -3
  183. package/dist/contracts/src/operations/operation.d.ts +0 -176
  184. package/dist/contracts/src/operations/operation.d.ts.map +0 -1
  185. package/dist/contracts/src/operations/registry.d.ts +0 -6
  186. package/dist/contracts/src/operations/report/getContractVerificationStatus.d.ts +0 -3
  187. package/dist/contracts/src/operations/report/index.d.ts +0 -4
  188. package/dist/contracts/src/ownership.d.ts +0 -164
  189. package/dist/contracts/src/ownership.d.ts.map +0 -1
  190. package/dist/contracts/src/policy/engine.d.ts +0 -3
  191. package/dist/contracts/src/policy/guards.d.ts +0 -1
  192. package/dist/contracts/src/policy/index.d.ts +0 -6
  193. package/dist/contracts/src/policy/opa-adapter.d.ts +0 -3
  194. package/dist/contracts/src/policy/registry.d.ts +0 -2
  195. package/dist/contracts/src/policy/spec.d.ts +0 -13
  196. package/dist/contracts/src/policy/spec.d.ts.map +0 -1
  197. package/dist/contracts/src/policy/validation.d.ts +0 -3
  198. package/dist/contracts/src/presentations/index.d.ts +0 -3
  199. package/dist/contracts/src/presentations/presentations.d.ts +0 -10
  200. package/dist/contracts/src/presentations/presentations.d.ts.map +0 -1
  201. package/dist/contracts/src/presentations/registry.d.ts +0 -2
  202. package/dist/contracts/src/presentations/transform-engine.d.ts +0 -2
  203. package/dist/contracts/src/prompt.d.ts +0 -2
  204. package/dist/contracts/src/promptRegistry.d.ts +0 -2
  205. package/dist/contracts/src/regenerator/adapters.d.ts +0 -1
  206. package/dist/contracts/src/regenerator/executor.d.ts +0 -1
  207. package/dist/contracts/src/regenerator/index.d.ts +0 -6
  208. package/dist/contracts/src/regenerator/service.d.ts +0 -2
  209. package/dist/contracts/src/regenerator/sinks.d.ts +0 -2
  210. package/dist/contracts/src/regenerator/types.d.ts +0 -3
  211. package/dist/contracts/src/regenerator/utils.d.ts +0 -1
  212. package/dist/contracts/src/registry-utils.d.ts +0 -1
  213. package/dist/contracts/src/registry.d.ts +0 -3
  214. package/dist/contracts/src/resources.d.ts +0 -19
  215. package/dist/contracts/src/resources.d.ts.map +0 -1
  216. package/dist/contracts/src/schema-to-markdown.d.ts +0 -1
  217. package/dist/contracts/src/serialization/index.d.ts +0 -1
  218. package/dist/contracts/src/serialization/serializers.d.ts +0 -7
  219. package/dist/contracts/src/server/graphql-pothos.d.ts +0 -7
  220. package/dist/contracts/src/server/index.d.ts +0 -7
  221. package/dist/contracts/src/server/mcp/createMcpServer.d.ts +0 -5
  222. package/dist/contracts/src/server/mcp/mcpTypes.d.ts +0 -2
  223. package/dist/contracts/src/server/provider-mcp.d.ts +0 -1
  224. package/dist/contracts/src/server/rest-elysia.d.ts +0 -3
  225. package/dist/contracts/src/server/rest-express.d.ts +0 -3
  226. package/dist/contracts/src/server/rest-generic.d.ts +0 -2
  227. package/dist/contracts/src/server/rest-next-app.d.ts +0 -3
  228. package/dist/contracts/src/server/rest-next-pages.d.ts +0 -3
  229. package/dist/contracts/src/telemetry/anomaly.d.ts +0 -2
  230. package/dist/contracts/src/telemetry/index.d.ts +0 -3
  231. package/dist/contracts/src/telemetry/spec.d.ts +0 -2
  232. package/dist/contracts/src/telemetry/tracker.d.ts +0 -3
  233. package/dist/contracts/src/tests/index.d.ts +0 -2
  234. package/dist/contracts/src/tests/runner.d.ts +0 -3
  235. package/dist/contracts/src/tests/spec.d.ts +0 -13
  236. package/dist/contracts/src/tests/spec.d.ts.map +0 -1
  237. package/dist/contracts/src/themes.d.ts +0 -2
  238. package/dist/contracts/src/types.d.ts +0 -5
  239. package/dist/contracts/src/versioning/refs.d.ts +0 -47
  240. package/dist/contracts/src/versioning/refs.d.ts.map +0 -1
  241. package/dist/contracts/src/workflow/adapters/db-adapter.d.ts +0 -1
  242. package/dist/contracts/src/workflow/adapters/file-adapter.d.ts +0 -1
  243. package/dist/contracts/src/workflow/adapters/index.d.ts +0 -3
  244. package/dist/contracts/src/workflow/adapters/memory-store.d.ts +0 -1
  245. package/dist/contracts/src/workflow/context.d.ts +0 -2
  246. package/dist/contracts/src/workflow/index.d.ts +0 -8
  247. package/dist/contracts/src/workflow/overview.docblock.d.ts +0 -1
  248. package/dist/contracts/src/workflow/runner.d.ts +0 -5
  249. package/dist/contracts/src/workflow/sla-monitor.d.ts +0 -2
  250. package/dist/contracts/src/workflow/spec.d.ts +0 -6
  251. package/dist/contracts/src/workflow/state.d.ts +0 -1
  252. package/dist/contracts/src/workflow/validation.d.ts +0 -5
  253. package/dist/contracts/src/workspace-config/contractsrc-schema.d.ts +0 -1
  254. package/dist/contracts/src/workspace-config/index.d.ts +0 -1
  255. package/dist/contracts/src/workspace-config/workspace-config.docblock.d.ts +0 -1
  256. package/dist/docs/feature-flags.docblock.js.map +0 -1
  257. package/dist/entities/index.js.map +0 -1
  258. package/dist/evaluation/index.js.map +0 -1
  259. package/dist/events.js.map +0 -1
  260. package/dist/feature-flags.capability.js.map +0 -1
  261. package/dist/feature-flags.feature.js.map +0 -1
  262. package/dist/schema/src/EnumType.d.ts +0 -36
  263. package/dist/schema/src/EnumType.d.ts.map +0 -1
  264. package/dist/schema/src/FieldType.d.ts +0 -30
  265. package/dist/schema/src/FieldType.d.ts.map +0 -1
  266. package/dist/schema/src/GraphQLSchemaType.d.ts +0 -2
  267. package/dist/schema/src/JsonSchemaType.d.ts +0 -2
  268. package/dist/schema/src/ScalarTypeEnum.d.ts +0 -1
  269. package/dist/schema/src/SchemaModel.d.ts +0 -70
  270. package/dist/schema/src/SchemaModel.d.ts.map +0 -1
  271. package/dist/schema/src/SchemaModelType.d.ts +0 -38
  272. package/dist/schema/src/SchemaModelType.d.ts.map +0 -1
  273. package/dist/schema/src/ZodSchemaType.d.ts +0 -2
  274. package/dist/schema/src/entity/defineEntity.d.ts +0 -1
  275. package/dist/schema/src/entity/generator.d.ts +0 -1
  276. package/dist/schema/src/entity/index.d.ts +0 -3
  277. package/dist/schema/src/entity/types.d.ts +0 -146
  278. package/dist/schema/src/entity/types.d.ts.map +0 -1
  279. package/dist/schema/src/index.d.ts +0 -10
@@ -1,109 +1,108 @@
1
- //#region src/evaluation/index.d.ts
2
1
  /**
3
2
  * Feature flag evaluation engine.
4
3
  *
5
4
  * Provides deterministic evaluation of feature flags based on targeting rules
6
5
  * and experiment assignments.
7
6
  */
8
- interface EvaluationContext {
9
- /** User identifier */
10
- userId?: string;
11
- /** Organization identifier */
12
- orgId?: string;
13
- /** User's plan (free, pro, enterprise, etc.) */
14
- plan?: string;
15
- /** User segment or cohort */
16
- segment?: string;
17
- /** Session identifier for anonymous users */
18
- sessionId?: string;
19
- /** Additional custom attributes */
20
- attributes?: Record<string, unknown>;
7
+ export interface EvaluationContext {
8
+ /** User identifier */
9
+ userId?: string;
10
+ /** Organization identifier */
11
+ orgId?: string;
12
+ /** User's plan (free, pro, enterprise, etc.) */
13
+ plan?: string;
14
+ /** User segment or cohort */
15
+ segment?: string;
16
+ /** Session identifier for anonymous users */
17
+ sessionId?: string;
18
+ /** Additional custom attributes */
19
+ attributes?: Record<string, unknown>;
21
20
  }
22
- interface FeatureFlag {
23
- id: string;
24
- key: string;
25
- status: 'OFF' | 'ON' | 'GRADUAL';
26
- defaultValue: boolean;
27
- variants?: VariantConfig[];
21
+ export interface FeatureFlag {
22
+ id: string;
23
+ key: string;
24
+ status: 'OFF' | 'ON' | 'GRADUAL';
25
+ defaultValue: boolean;
26
+ variants?: VariantConfig[];
28
27
  }
29
- interface TargetingRule {
30
- id: string;
31
- priority: number;
32
- enabled: boolean;
33
- attribute: string;
34
- operator: RuleOperator;
35
- value: unknown;
36
- rolloutPercentage?: number;
37
- serveValue?: boolean;
38
- serveVariant?: string;
28
+ export interface TargetingRule {
29
+ id: string;
30
+ priority: number;
31
+ enabled: boolean;
32
+ attribute: string;
33
+ operator: RuleOperator;
34
+ value: unknown;
35
+ rolloutPercentage?: number;
36
+ serveValue?: boolean;
37
+ serveVariant?: string;
39
38
  }
40
- interface Experiment {
41
- id: string;
42
- key: string;
43
- status: 'DRAFT' | 'RUNNING' | 'PAUSED' | 'COMPLETED' | 'CANCELLED';
44
- variants: ExperimentVariant[];
45
- audiencePercentage: number;
46
- audienceFilter?: Record<string, unknown>;
39
+ export interface Experiment {
40
+ id: string;
41
+ key: string;
42
+ status: 'DRAFT' | 'RUNNING' | 'PAUSED' | 'COMPLETED' | 'CANCELLED';
43
+ variants: ExperimentVariant[];
44
+ audiencePercentage: number;
45
+ audienceFilter?: Record<string, unknown>;
47
46
  }
48
- interface VariantConfig {
49
- key: string;
50
- name: string;
51
- description?: string;
52
- weight?: number;
47
+ export interface VariantConfig {
48
+ key: string;
49
+ name: string;
50
+ description?: string;
51
+ weight?: number;
53
52
  }
54
- interface ExperimentVariant {
55
- key: string;
56
- name: string;
57
- percentage: number;
53
+ export interface ExperimentVariant {
54
+ key: string;
55
+ name: string;
56
+ percentage: number;
58
57
  }
59
- interface EvaluationResult {
60
- enabled: boolean;
61
- variant?: string;
62
- reason: EvaluationReason;
63
- ruleId?: string;
64
- experimentId?: string;
58
+ export interface EvaluationResult {
59
+ enabled: boolean;
60
+ variant?: string;
61
+ reason: EvaluationReason;
62
+ ruleId?: string;
63
+ experimentId?: string;
65
64
  }
66
- type EvaluationReason = 'FLAG_OFF' | 'FLAG_ON' | 'DEFAULT_VALUE' | 'RULE_MATCH' | 'PERCENTAGE_ROLLOUT' | 'EXPERIMENT_VARIANT' | 'FLAG_NOT_FOUND';
67
- type RuleOperator = 'EQ' | 'NEQ' | 'IN' | 'NIN' | 'CONTAINS' | 'NOT_CONTAINS' | 'GT' | 'GTE' | 'LT' | 'LTE' | 'PERCENTAGE';
65
+ export type EvaluationReason = 'FLAG_OFF' | 'FLAG_ON' | 'DEFAULT_VALUE' | 'RULE_MATCH' | 'PERCENTAGE_ROLLOUT' | 'EXPERIMENT_VARIANT' | 'FLAG_NOT_FOUND';
66
+ export type RuleOperator = 'EQ' | 'NEQ' | 'IN' | 'NIN' | 'CONTAINS' | 'NOT_CONTAINS' | 'GT' | 'GTE' | 'LT' | 'LTE' | 'PERCENTAGE';
68
67
  /**
69
68
  * Simple hash function for consistent bucketing.
70
69
  * Uses a deterministic algorithm so the same input always produces the same bucket.
71
70
  */
72
- declare function hashToBucket(value: string, seed?: string): number;
71
+ export declare function hashToBucket(value: string, seed?: string): number;
73
72
  /**
74
73
  * Get subject identifier from context for consistent hashing.
75
74
  */
76
- declare function getSubjectId(context: EvaluationContext): string;
75
+ export declare function getSubjectId(context: EvaluationContext): string;
77
76
  /**
78
77
  * Evaluate a single targeting rule condition.
79
78
  */
80
- declare function evaluateRuleCondition(rule: TargetingRule, context: EvaluationContext): boolean;
81
- interface FlagRepository {
82
- getFlag(key: string, orgId?: string): Promise<FeatureFlag | null>;
83
- getRules(flagId: string): Promise<TargetingRule[]>;
84
- getActiveExperiment(flagId: string): Promise<Experiment | null>;
85
- getExperimentAssignment(experimentId: string, subjectType: string, subjectId: string): Promise<string | null>;
86
- saveExperimentAssignment(experimentId: string, subjectType: string, subjectId: string, variant: string, bucket: number): Promise<void>;
79
+ export declare function evaluateRuleCondition(rule: TargetingRule, context: EvaluationContext): boolean;
80
+ export interface FlagRepository {
81
+ getFlag(key: string, orgId?: string): Promise<FeatureFlag | null>;
82
+ getRules(flagId: string): Promise<TargetingRule[]>;
83
+ getActiveExperiment(flagId: string): Promise<Experiment | null>;
84
+ getExperimentAssignment(experimentId: string, subjectType: string, subjectId: string): Promise<string | null>;
85
+ saveExperimentAssignment(experimentId: string, subjectType: string, subjectId: string, variant: string, bucket: number): Promise<void>;
87
86
  }
88
- interface EvaluationLogger {
89
- log(evaluation: {
90
- flagId: string;
91
- flagKey: string;
92
- subjectType: string;
93
- subjectId: string;
94
- result: boolean;
95
- variant?: string;
96
- reason: string;
97
- ruleId?: string;
98
- experimentId?: string;
99
- context?: EvaluationContext;
100
- }): void;
87
+ export interface EvaluationLogger {
88
+ log(evaluation: {
89
+ flagId: string;
90
+ flagKey: string;
91
+ subjectType: string;
92
+ subjectId: string;
93
+ result: boolean;
94
+ variant?: string;
95
+ reason: string;
96
+ ruleId?: string;
97
+ experimentId?: string;
98
+ context?: EvaluationContext;
99
+ }): void;
101
100
  }
102
- interface FlagEvaluatorOptions {
103
- repository: FlagRepository;
104
- logger?: EvaluationLogger;
105
- /** Whether to log evaluations (default: false for performance) */
106
- logEvaluations?: boolean;
101
+ export interface FlagEvaluatorOptions {
102
+ repository: FlagRepository;
103
+ logger?: EvaluationLogger;
104
+ /** Whether to log evaluations (default: false for performance) */
105
+ logEvaluations?: boolean;
107
106
  }
108
107
  /**
109
108
  * Feature flag evaluator.
@@ -114,50 +113,48 @@ interface FlagEvaluatorOptions {
114
113
  * 3. Experiments (if running)
115
114
  * 4. Default value (fallback)
116
115
  */
117
- declare class FlagEvaluator {
118
- private repository;
119
- private logger?;
120
- private logEvaluations;
121
- constructor(options: FlagEvaluatorOptions);
122
- /**
123
- * Evaluate a feature flag.
124
- */
125
- evaluate(key: string, context: EvaluationContext): Promise<EvaluationResult>;
126
- /**
127
- * Evaluate experiment and assign variant.
128
- */
129
- private evaluateExperiment;
130
- /**
131
- * Assign a variant based on bucket and variant percentages.
132
- */
133
- private assignVariant;
134
- /**
135
- * Create evaluation result.
136
- */
137
- private makeResult;
138
- /**
139
- * Log evaluation and return result.
140
- */
141
- private logAndReturn;
116
+ export declare class FlagEvaluator {
117
+ private repository;
118
+ private logger?;
119
+ private logEvaluations;
120
+ constructor(options: FlagEvaluatorOptions);
121
+ /**
122
+ * Evaluate a feature flag.
123
+ */
124
+ evaluate(key: string, context: EvaluationContext): Promise<EvaluationResult>;
125
+ /**
126
+ * Evaluate experiment and assign variant.
127
+ */
128
+ private evaluateExperiment;
129
+ /**
130
+ * Assign a variant based on bucket and variant percentages.
131
+ */
132
+ private assignVariant;
133
+ /**
134
+ * Create evaluation result.
135
+ */
136
+ private makeResult;
137
+ /**
138
+ * Log evaluation and return result.
139
+ */
140
+ private logAndReturn;
142
141
  }
143
142
  /**
144
143
  * In-memory flag repository for testing and development.
145
144
  */
146
- declare class InMemoryFlagRepository implements FlagRepository {
147
- private flags;
148
- private rules;
149
- private experiments;
150
- private assignments;
151
- addFlag(flag: FeatureFlag): void;
152
- addRule(flagId: string, rule: TargetingRule): void;
153
- addExperiment(experiment: Experiment, flagId: string): void;
154
- getFlag(key: string): Promise<FeatureFlag | null>;
155
- getRules(flagId: string): Promise<TargetingRule[]>;
156
- getActiveExperiment(flagId: string): Promise<Experiment | null>;
157
- getExperimentAssignment(experimentId: string, subjectType: string, subjectId: string): Promise<string | null>;
158
- saveExperimentAssignment(experimentId: string, subjectType: string, subjectId: string, variant: string): Promise<void>;
159
- clear(): void;
145
+ export declare class InMemoryFlagRepository implements FlagRepository {
146
+ private flags;
147
+ private rules;
148
+ private experiments;
149
+ private assignments;
150
+ addFlag(flag: FeatureFlag): void;
151
+ addRule(flagId: string, rule: TargetingRule): void;
152
+ addExperiment(experiment: Experiment, flagId: string): void;
153
+ getFlag(key: string): Promise<FeatureFlag | null>;
154
+ getRules(flagId: string): Promise<TargetingRule[]>;
155
+ getActiveExperiment(flagId: string): Promise<Experiment | null>;
156
+ getExperimentAssignment(experimentId: string, subjectType: string, subjectId: string): Promise<string | null>;
157
+ saveExperimentAssignment(experimentId: string, subjectType: string, subjectId: string, variant: string): Promise<void>;
158
+ clear(): void;
160
159
  }
161
- //#endregion
162
- export { EvaluationContext, EvaluationLogger, EvaluationReason, EvaluationResult, Experiment, ExperimentVariant, FeatureFlag, FlagEvaluator, FlagEvaluatorOptions, FlagRepository, InMemoryFlagRepository, RuleOperator, TargetingRule, VariantConfig, evaluateRuleCondition, getSubjectId, hashToBucket };
163
160
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/evaluation/index.ts"],"sourcesContent":[],"mappings":";;AASA;AAeA;AAQA;AAYA;AASA;AAOiB,UAnDA,iBAAA,CAmDiB;EAMjB;EAQL,MAAA,CAAA,EAAA,MAAA;EASA;EAmBI,KAAA,CAAA,EAAA,MAAA;EAeA;EASA,IAAA,CAAA,EAAA,MAAA;EAwFC;EAC+B,OAAA,CAAA,EAAA,MAAA;EAAR;EACJ,SAAA,CAAA,EAAA,MAAA;EAAR;EACmB,UAAA,CAAA,EApMhC,MAoMgC,CAAA,MAAA,EAAA,OAAA,CAAA;;AAK1C,UAtMY,WAAA,CAsMZ;EAOA,EAAA,EAAA,MAAA;EAAO,GAAA,EAAA,MAAA;EAGK,MAAA,EAAA,KAAA,GAAA,IAAgB,GAAA,SAWnB;EAIG,YAAA,EAAA,OAAA;EAgBJ,QAAA,CAAA,EA1OA,aA0Oa,EAAA;;AAgBb,UAvPI,aAAA,CAuPJ;EACA,EAAA,EAAA,MAAA;EAAR,QAAA,EAAA,MAAA;EAAO,OAAA,EAAA,OAAA;EAsMC,SAAA,EAAA,MAAA;EAMG,QAAA,EA/bJ,YA+bI;EAIgB,KAAA,EAAA,OAAA;EAMJ,iBAAA,CAAA,EAAA,MAAA;EAIU,UAAA,CAAA,EAAA,OAAA;EAAR,YAAA,CAAA,EAAA,MAAA;;AAII,UA1cjB,UAAA,CA0ciB;EAImB,EAAA,EAAA,MAAA;EAAR,GAAA,EAAA,MAAA;EAQxC,MAAA,EAAA,OAAA,GAAA,SAAA,GAAA,QAAA,GAAA,WAAA,GAAA,WAAA;EAUA,QAAA,EA5dO,iBA4dP,EAAA;EA9C0C,kBAAA,EAAA,MAAA;EAAc,cAAA,CAAA,EA5a1C,MA4a0C,CAAA,MAAA,EAAA,OAAA,CAAA;;UAza5C,aAAA;;;;;;UAOA,iBAAA;;;;;UAMA,gBAAA;;;UAGP;;;;KAKE,gBAAA;KASA,YAAA;;;;;iBAmBI,YAAA;;;;iBAeA,YAAA,UAAsB;;;;iBAStB,qBAAA,OACR,wBACG;UAsFM,cAAA;wCACuB,QAAQ;4BACpB,QAAQ;uCACG,QAAQ;yFAK1C;2HAOA;;UAGY,gBAAA;;;;;;;;;;;cAWH;;;UAIG,oBAAA;cACH;WACH;;;;;;;;;;;;;cAcE,aAAA;;;;uBAKU;;;;iCAWV,oBACR,QAAQ;;;;;;;;;;;;;;;;;;;;;cAsMA,sBAAA,YAAkC;;;;;gBAM/B;gCAIgB;4BAMJ;wBAIE,QAAQ;4BAIJ,QAAQ;uCAIG,QAAQ;yFAQhD;2GAUA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/evaluation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,iBAAiB;IAChC,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;IACnE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,SAAS,GACT,eAAe,GACf,YAAY,GACZ,oBAAoB,GACpB,oBAAoB,GACpB,gBAAgB,CAAC;AAErB,MAAM,MAAM,YAAY,GACpB,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,UAAU,GACV,cAAc,GACd,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,YAAY,CAAC;AAIjB;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,MAAM,CAU7D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAE/D;AAID;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CA0DT;AA2BD,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAClE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACnD,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAChE,uBAAuB,CACrB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1B,wBAAwB,CACtB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,UAAU,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,iBAAiB,CAAC;KAC7B,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,cAAc,CAAC;IAC3B,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,kEAAkE;IAClE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,MAAM,CAAC,CAAmB;IAClC,OAAO,CAAC,cAAc,CAAU;gBAEpB,OAAO,EAAE,oBAAoB;IAMzC;;OAEG;IACG,QAAQ,CACZ,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC;IAqE5B;;OAEG;YACW,kBAAkB;IAsDhC;;OAEG;IACH,OAAO,CAAC,aAAa;IAYrB;;OAEG;IACH,OAAO,CAAC,UAAU;IAgBlB;;OAEG;IACH,OAAO,CAAC,YAAY;CA4BrB;AAID;;GAEG;AACH,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,WAAW,CAA6B;IAEhD,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAIhC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;IAMlD,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAIrD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAIjD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIlD,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAI/D,uBAAuB,CAC3B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKnB,wBAAwB,CAC5B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAKhB,KAAK,IAAI,IAAI;CAMd"}