@contractspec/lib.feature-flags 0.0.0-canary-20260113162409

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 (225) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +173 -0
  3. package/dist/contracts/index.d.ts +1010 -0
  4. package/dist/contracts/index.d.ts.map +1 -0
  5. package/dist/contracts/index.js +908 -0
  6. package/dist/contracts/index.js.map +1 -0
  7. package/dist/contracts/src/app-config/lifecycle.d.ts +1 -0
  8. package/dist/contracts/src/app-config/runtime.d.ts +13 -0
  9. package/dist/contracts/src/app-config/spec.d.ts +9 -0
  10. package/dist/contracts/src/app-config/validation.d.ts +8 -0
  11. package/dist/contracts/src/capabilities/capabilities.d.ts +33 -0
  12. package/dist/contracts/src/capabilities/capabilities.d.ts.map +1 -0
  13. package/dist/contracts/src/capabilities/index.d.ts +2 -0
  14. package/dist/contracts/src/capabilities/openbanking.d.ts +1 -0
  15. package/dist/contracts/src/client/index.d.ts +1 -0
  16. package/dist/contracts/src/client/react/drivers/rn-reusables.d.ts +1 -0
  17. package/dist/contracts/src/client/react/drivers/shadcn.d.ts +1 -0
  18. package/dist/contracts/src/client/react/feature-render.d.ts +3 -0
  19. package/dist/contracts/src/client/react/form-render.d.ts +4 -0
  20. package/dist/contracts/src/client/react/index.d.ts +4 -0
  21. package/dist/contracts/src/contract-registry/index.d.ts +2 -0
  22. package/dist/contracts/src/contract-registry/schemas.d.ts +2 -0
  23. package/dist/contracts/src/contract-registry/types.d.ts +1 -0
  24. package/dist/contracts/src/data-views/index.d.ts +3 -0
  25. package/dist/contracts/src/data-views/registry.d.ts +2 -0
  26. package/dist/contracts/src/data-views/spec.d.ts +2 -0
  27. package/dist/contracts/src/data-views/types.d.ts +2 -0
  28. package/dist/contracts/src/docs/accessibility_wcag_compliance_specs.docblock.d.ts +1 -0
  29. package/dist/contracts/src/docs/index.d.ts +25 -0
  30. package/dist/contracts/src/docs/presentations.d.ts +2 -0
  31. package/dist/contracts/src/docs/registry.d.ts +10 -0
  32. package/dist/contracts/src/docs/registry.d.ts.map +1 -0
  33. package/dist/contracts/src/docs/tech/auth/better-auth-nextjs.docblock.d.ts +1 -0
  34. package/dist/contracts/src/docs/tech/contracts/README.docblock.d.ts +1 -0
  35. package/dist/contracts/src/docs/tech/contracts/openapi-export.docblock.d.ts +1 -0
  36. package/dist/contracts/src/docs/tech/contracts/openapi-import.docblock.d.ts +1 -0
  37. package/dist/contracts/src/docs/tech/lifecycle-stage-system.docblock.d.ts +1 -0
  38. package/dist/contracts/src/docs/tech/llm/llm-integration.docblock.d.ts +1 -0
  39. package/dist/contracts/src/docs/tech/mcp-endpoints.docblock.d.ts +1 -0
  40. package/dist/contracts/src/docs/tech/presentation-runtime.docblock.d.ts +1 -0
  41. package/dist/contracts/src/docs/tech/schema/README.docblock.d.ts +1 -0
  42. package/dist/contracts/src/docs/tech/studio/learning-events.docblock.d.ts +1 -0
  43. package/dist/contracts/src/docs/tech/studio/learning-journeys.docblock.d.ts +1 -0
  44. package/dist/contracts/src/docs/tech/studio/platform-admin-panel.docblock.d.ts +1 -0
  45. package/dist/contracts/src/docs/tech/studio/project-access-teams.docblock.d.ts +1 -0
  46. package/dist/contracts/src/docs/tech/studio/project-routing.docblock.d.ts +1 -0
  47. package/dist/contracts/src/docs/tech/studio/sandbox-unlogged.docblock.d.ts +1 -0
  48. package/dist/contracts/src/docs/tech/studio/team-invitations.docblock.d.ts +1 -0
  49. package/dist/contracts/src/docs/tech/studio/workspace-ops.docblock.d.ts +1 -0
  50. package/dist/contracts/src/docs/tech/studio/workspaces.docblock.d.ts +1 -0
  51. package/dist/contracts/src/docs/tech/telemetry-ingest.docblock.d.ts +1 -0
  52. package/dist/contracts/src/docs/tech/vscode-extension.docblock.d.ts +1 -0
  53. package/dist/contracts/src/events.d.ts +25 -0
  54. package/dist/contracts/src/events.d.ts.map +1 -0
  55. package/dist/contracts/src/examples/index.d.ts +4 -0
  56. package/dist/contracts/src/examples/registry.d.ts +2 -0
  57. package/dist/contracts/src/examples/schema.d.ts +2 -0
  58. package/dist/contracts/src/examples/types.d.ts +3 -0
  59. package/dist/contracts/src/examples/validation.d.ts +1 -0
  60. package/dist/contracts/src/experiments/evaluator.d.ts +2 -0
  61. package/dist/contracts/src/experiments/spec-resolver.d.ts +4 -0
  62. package/dist/contracts/src/experiments/spec.d.ts +13 -0
  63. package/dist/contracts/src/experiments/spec.d.ts.map +1 -0
  64. package/dist/contracts/src/features/index.d.ts +4 -0
  65. package/dist/contracts/src/features/install.d.ts +6 -0
  66. package/dist/contracts/src/features/registry.d.ts +2 -0
  67. package/dist/contracts/src/features/types.d.ts +86 -0
  68. package/dist/contracts/src/features/types.d.ts.map +1 -0
  69. package/dist/contracts/src/features/validation.d.ts +2 -0
  70. package/dist/contracts/src/forms/forms.d.ts +3 -0
  71. package/dist/contracts/src/forms/index.d.ts +1 -0
  72. package/dist/contracts/src/index.d.ts +51 -0
  73. package/dist/contracts/src/install.d.ts +7 -0
  74. package/dist/contracts/src/integrations/connection.d.ts +1 -0
  75. package/dist/contracts/src/integrations/index.d.ts +6 -0
  76. package/dist/contracts/src/integrations/openbanking/contracts/accounts.d.ts +4 -0
  77. package/dist/contracts/src/integrations/openbanking/contracts/balances.d.ts +4 -0
  78. package/dist/contracts/src/integrations/openbanking/contracts/index.d.ts +5 -0
  79. package/dist/contracts/src/integrations/openbanking/contracts/transactions.d.ts +4 -0
  80. package/dist/contracts/src/integrations/openbanking/guards.d.ts +1 -0
  81. package/dist/contracts/src/integrations/openbanking/models.d.ts +1 -0
  82. package/dist/contracts/src/integrations/openbanking/openbanking.feature.d.ts +1 -0
  83. package/dist/contracts/src/integrations/operations.d.ts +4 -0
  84. package/dist/contracts/src/integrations/providers/elevenlabs.d.ts +2 -0
  85. package/dist/contracts/src/integrations/providers/gcs-storage.d.ts +2 -0
  86. package/dist/contracts/src/integrations/providers/gmail.d.ts +2 -0
  87. package/dist/contracts/src/integrations/providers/google-calendar.d.ts +2 -0
  88. package/dist/contracts/src/integrations/providers/index.d.ts +11 -0
  89. package/dist/contracts/src/integrations/providers/mistral.d.ts +2 -0
  90. package/dist/contracts/src/integrations/providers/postmark.d.ts +2 -0
  91. package/dist/contracts/src/integrations/providers/powens.d.ts +2 -0
  92. package/dist/contracts/src/integrations/providers/qdrant.d.ts +2 -0
  93. package/dist/contracts/src/integrations/providers/registry.d.ts +1 -0
  94. package/dist/contracts/src/integrations/providers/stripe.d.ts +2 -0
  95. package/dist/contracts/src/integrations/providers/twilio-sms.d.ts +2 -0
  96. package/dist/contracts/src/integrations/spec.d.ts +3 -0
  97. package/dist/contracts/src/jsonschema.d.ts +4 -0
  98. package/dist/contracts/src/knowledge/index.d.ts +2 -0
  99. package/dist/contracts/src/knowledge/operations.d.ts +4 -0
  100. package/dist/contracts/src/knowledge/spaces/email-threads.d.ts +1 -0
  101. package/dist/contracts/src/knowledge/spaces/financial-docs.d.ts +1 -0
  102. package/dist/contracts/src/knowledge/spaces/financial-overview.d.ts +1 -0
  103. package/dist/contracts/src/knowledge/spaces/index.d.ts +6 -0
  104. package/dist/contracts/src/knowledge/spaces/product-canon.d.ts +1 -0
  105. package/dist/contracts/src/knowledge/spaces/support-faq.d.ts +1 -0
  106. package/dist/contracts/src/knowledge/spaces/uploaded-docs.d.ts +1 -0
  107. package/dist/contracts/src/knowledge/spec.d.ts +3 -0
  108. package/dist/contracts/src/llm/exporters.d.ts +7 -0
  109. package/dist/contracts/src/llm/index.d.ts +3 -0
  110. package/dist/contracts/src/llm/prompts.d.ts +2 -0
  111. package/dist/contracts/src/llm/types.d.ts +5 -0
  112. package/dist/contracts/src/migrations.d.ts +1 -0
  113. package/dist/contracts/src/model-registry.d.ts +1 -0
  114. package/dist/contracts/src/onboarding-base.d.ts +2 -0
  115. package/dist/contracts/src/openapi.d.ts +1 -0
  116. package/dist/contracts/src/operations/index.d.ts +2 -0
  117. package/dist/contracts/src/operations/operation.d.ts +170 -0
  118. package/dist/contracts/src/operations/operation.d.ts.map +1 -0
  119. package/dist/contracts/src/operations/registry.d.ts +6 -0
  120. package/dist/contracts/src/ownership.d.ts +61 -0
  121. package/dist/contracts/src/ownership.d.ts.map +1 -0
  122. package/dist/contracts/src/policy/engine.d.ts +3 -0
  123. package/dist/contracts/src/policy/index.d.ts +4 -0
  124. package/dist/contracts/src/policy/opa-adapter.d.ts +3 -0
  125. package/dist/contracts/src/policy/registry.d.ts +2 -0
  126. package/dist/contracts/src/policy/spec.d.ts +11 -0
  127. package/dist/contracts/src/policy/spec.d.ts.map +1 -0
  128. package/dist/contracts/src/presentations/index.d.ts +3 -0
  129. package/dist/contracts/src/presentations/presentations.d.ts +9 -0
  130. package/dist/contracts/src/presentations/presentations.d.ts.map +1 -0
  131. package/dist/contracts/src/presentations/registry.d.ts +2 -0
  132. package/dist/contracts/src/presentations/transform-engine.d.ts +2 -0
  133. package/dist/contracts/src/prompt.d.ts +2 -0
  134. package/dist/contracts/src/promptRegistry.d.ts +2 -0
  135. package/dist/contracts/src/regenerator/adapters.d.ts +1 -0
  136. package/dist/contracts/src/regenerator/executor.d.ts +1 -0
  137. package/dist/contracts/src/regenerator/index.d.ts +6 -0
  138. package/dist/contracts/src/regenerator/service.d.ts +2 -0
  139. package/dist/contracts/src/regenerator/sinks.d.ts +2 -0
  140. package/dist/contracts/src/regenerator/types.d.ts +3 -0
  141. package/dist/contracts/src/regenerator/utils.d.ts +1 -0
  142. package/dist/contracts/src/registry-utils.d.ts +1 -0
  143. package/dist/contracts/src/registry.d.ts +3 -0
  144. package/dist/contracts/src/resources.d.ts +19 -0
  145. package/dist/contracts/src/resources.d.ts.map +1 -0
  146. package/dist/contracts/src/schema-to-markdown.d.ts +1 -0
  147. package/dist/contracts/src/server/graphql-pothos.d.ts +7 -0
  148. package/dist/contracts/src/server/index.d.ts +7 -0
  149. package/dist/contracts/src/server/mcp/createMcpServer.d.ts +5 -0
  150. package/dist/contracts/src/server/mcp/mcpTypes.d.ts +2 -0
  151. package/dist/contracts/src/server/provider-mcp.d.ts +1 -0
  152. package/dist/contracts/src/server/rest-elysia.d.ts +3 -0
  153. package/dist/contracts/src/server/rest-express.d.ts +3 -0
  154. package/dist/contracts/src/server/rest-generic.d.ts +2 -0
  155. package/dist/contracts/src/server/rest-next-app.d.ts +3 -0
  156. package/dist/contracts/src/server/rest-next-pages.d.ts +3 -0
  157. package/dist/contracts/src/telemetry/anomaly.d.ts +2 -0
  158. package/dist/contracts/src/telemetry/index.d.ts +3 -0
  159. package/dist/contracts/src/telemetry/spec.d.ts +2 -0
  160. package/dist/contracts/src/telemetry/tracker.d.ts +2 -0
  161. package/dist/contracts/src/tests/index.d.ts +2 -0
  162. package/dist/contracts/src/tests/runner.d.ts +3 -0
  163. package/dist/contracts/src/tests/spec.d.ts +11 -0
  164. package/dist/contracts/src/tests/spec.d.ts.map +1 -0
  165. package/dist/contracts/src/themes.d.ts +2 -0
  166. package/dist/contracts/src/types.d.ts +5 -0
  167. package/dist/contracts/src/workflow/adapters/db-adapter.d.ts +1 -0
  168. package/dist/contracts/src/workflow/adapters/file-adapter.d.ts +1 -0
  169. package/dist/contracts/src/workflow/adapters/index.d.ts +3 -0
  170. package/dist/contracts/src/workflow/adapters/memory-store.d.ts +1 -0
  171. package/dist/contracts/src/workflow/index.d.ts +5 -0
  172. package/dist/contracts/src/workflow/overview.docblock.d.ts +1 -0
  173. package/dist/contracts/src/workflow/runner.d.ts +5 -0
  174. package/dist/contracts/src/workflow/spec.d.ts +5 -0
  175. package/dist/contracts/src/workflow/state.d.ts +1 -0
  176. package/dist/contracts/src/workflow/validation.d.ts +3 -0
  177. package/dist/contracts/src/workspace-config/contractsrc-schema.d.ts +1 -0
  178. package/dist/contracts/src/workspace-config/index.d.ts +1 -0
  179. package/dist/contracts/src/workspace-config/workspace-config.docblock.d.ts +1 -0
  180. package/dist/docs/feature-flags.docblock.d.ts +1 -0
  181. package/dist/docs/feature-flags.docblock.js +76 -0
  182. package/dist/docs/feature-flags.docblock.js.map +1 -0
  183. package/dist/docs/index.d.ts +1 -0
  184. package/dist/docs/index.js +1 -0
  185. package/dist/entities/index.d.ts +201 -0
  186. package/dist/entities/index.d.ts.map +1 -0
  187. package/dist/entities/index.js +325 -0
  188. package/dist/entities/index.js.map +1 -0
  189. package/dist/evaluation/index.d.ts +163 -0
  190. package/dist/evaluation/index.d.ts.map +1 -0
  191. package/dist/evaluation/index.js +221 -0
  192. package/dist/evaluation/index.js.map +1 -0
  193. package/dist/events.d.ts +628 -0
  194. package/dist/events.d.ts.map +1 -0
  195. package/dist/events.js +536 -0
  196. package/dist/events.js.map +1 -0
  197. package/dist/feature-flags.capability.d.ts +9 -0
  198. package/dist/feature-flags.capability.d.ts.map +1 -0
  199. package/dist/feature-flags.capability.js +25 -0
  200. package/dist/feature-flags.capability.js.map +1 -0
  201. package/dist/feature-flags.feature.d.ts +12 -0
  202. package/dist/feature-flags.feature.d.ts.map +1 -0
  203. package/dist/feature-flags.feature.js +148 -0
  204. package/dist/feature-flags.feature.js.map +1 -0
  205. package/dist/index.d.ts +6 -0
  206. package/dist/index.js +8 -0
  207. package/dist/schema/src/EnumType.d.ts +36 -0
  208. package/dist/schema/src/EnumType.d.ts.map +1 -0
  209. package/dist/schema/src/FieldType.d.ts +30 -0
  210. package/dist/schema/src/FieldType.d.ts.map +1 -0
  211. package/dist/schema/src/GraphQLSchemaType.d.ts +2 -0
  212. package/dist/schema/src/JsonSchemaType.d.ts +2 -0
  213. package/dist/schema/src/ScalarTypeEnum.d.ts +1 -0
  214. package/dist/schema/src/SchemaModel.d.ts +70 -0
  215. package/dist/schema/src/SchemaModel.d.ts.map +1 -0
  216. package/dist/schema/src/SchemaModelType.d.ts +38 -0
  217. package/dist/schema/src/SchemaModelType.d.ts.map +1 -0
  218. package/dist/schema/src/ZodSchemaType.d.ts +2 -0
  219. package/dist/schema/src/entity/defineEntity.d.ts +1 -0
  220. package/dist/schema/src/entity/generator.d.ts +1 -0
  221. package/dist/schema/src/entity/index.d.ts +3 -0
  222. package/dist/schema/src/entity/types.d.ts +146 -0
  223. package/dist/schema/src/entity/types.d.ts.map +1 -0
  224. package/dist/schema/src/index.d.ts +10 -0
  225. package/package.json +74 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Chaman Ventures, SASU
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,173 @@
1
+ # @contractspec/lib.feature-flags
2
+
3
+ Website: https://contractspec.io/
4
+
5
+
6
+ Feature flags and experiments module for ContractSpec applications.
7
+
8
+ ## Overview
9
+
10
+ This module provides a reusable feature flag and experimentation system that can be used across all ContractSpec applications. It supports:
11
+
12
+ - **Feature Flags**: Toggle features on/off with targeting rules
13
+ - **Gradual Rollouts**: Roll out features to a percentage of users
14
+ - **Targeting Rules**: Target by org, user, plan, segment, or custom attributes
15
+ - **Experiments**: A/B testing with variants and metrics tracking
16
+ - **Evaluation Logging**: Track flag evaluations for analytics
17
+
18
+ ## Entities
19
+
20
+ ### FeatureFlag
21
+
22
+ Core feature flag definition.
23
+
24
+ | Field | Type | Description |
25
+ |-------|------|-------------|
26
+ | id | string | Unique identifier |
27
+ | key | string | Flag key (e.g., `new_dashboard`) |
28
+ | name | string | Human-readable name |
29
+ | description | string | Description of the flag |
30
+ | status | enum | `off`, `on`, `gradual` |
31
+ | defaultValue | boolean/string | Default value when no rules match |
32
+ | variants | json | Variant definitions for multivariate flags |
33
+ | orgId | string | Organization scope (optional) |
34
+ | createdAt | datetime | Creation timestamp |
35
+ | updatedAt | datetime | Last update timestamp |
36
+
37
+ ### FlagTargetingRule
38
+
39
+ Targeting rules for conditional flag evaluation.
40
+
41
+ | Field | Type | Description |
42
+ |-------|------|-------------|
43
+ | id | string | Unique identifier |
44
+ | flagId | string | Parent flag |
45
+ | priority | int | Rule priority (lower = higher priority) |
46
+ | attribute | string | Target attribute (org, user, plan, etc.) |
47
+ | operator | enum | `eq`, `neq`, `in`, `nin`, `contains`, `percentage` |
48
+ | value | json | Target value(s) |
49
+ | rolloutPercentage | int | Percentage for gradual rollout |
50
+ | variant | string | Variant to serve (for multivariate) |
51
+
52
+ ### Experiment
53
+
54
+ A/B test configuration.
55
+
56
+ | Field | Type | Description |
57
+ |-------|------|-------------|
58
+ | id | string | Unique identifier |
59
+ | key | string | Experiment key |
60
+ | name | string | Human-readable name |
61
+ | flagId | string | Associated feature flag |
62
+ | status | enum | `draft`, `running`, `paused`, `completed` |
63
+ | variants | json | Variant definitions with split ratios |
64
+ | metrics | json | Metrics to track |
65
+ | startedAt | datetime | Experiment start time |
66
+ | endedAt | datetime | Experiment end time |
67
+
68
+ ### FlagEvaluation
69
+
70
+ Evaluation log for debugging and analytics.
71
+
72
+ | Field | Type | Description |
73
+ |-------|------|-------------|
74
+ | id | string | Unique identifier |
75
+ | flagKey | string | Evaluated flag key |
76
+ | subjectType | string | Subject type (user, org) |
77
+ | subjectId | string | Subject identifier |
78
+ | result | json | Evaluation result |
79
+ | matchedRuleId | string | Rule that matched (if any) |
80
+ | evaluatedAt | datetime | Evaluation timestamp |
81
+
82
+ ## Contracts
83
+
84
+ ### Commands
85
+
86
+ - `flag.create` - Create a new feature flag
87
+ - `flag.update` - Update flag configuration
88
+ - `flag.delete` - Delete a feature flag
89
+ - `flag.toggle` - Toggle flag status
90
+ - `rule.create` - Add targeting rule
91
+ - `rule.delete` - Remove targeting rule
92
+ - `experiment.create` - Create an experiment
93
+ - `experiment.start` - Start an experiment
94
+ - `experiment.stop` - Stop an experiment
95
+
96
+ ### Queries
97
+
98
+ - `flag.get` - Get flag by key
99
+ - `flag.list` - List all flags
100
+ - `flag.evaluate` - Evaluate flag for a subject
101
+ - `experiment.get` - Get experiment details
102
+ - `experiment.results` - Get experiment results
103
+
104
+ ## Events
105
+
106
+ - `flag.created` - Flag was created
107
+ - `flag.updated` - Flag configuration changed
108
+ - `flag.deleted` - Flag was deleted
109
+ - `flag.toggled` - Flag status changed
110
+ - `experiment.started` - Experiment started
111
+ - `experiment.stopped` - Experiment stopped
112
+ - `flag.evaluated` - Flag was evaluated (for analytics)
113
+
114
+ ## Usage
115
+
116
+ ```typescript
117
+ import {
118
+ FeatureFlagEntity,
119
+ EvaluateFlagContract,
120
+ FlagEvaluator
121
+ } from '@contractspec/lib.feature-flags';
122
+
123
+ // Create an evaluator
124
+ const evaluator = new FlagEvaluator(flagRepository);
125
+
126
+ // Evaluate a flag
127
+ const result = await evaluator.evaluate('new_dashboard', {
128
+ userId: 'user-123',
129
+ orgId: 'org-456',
130
+ plan: 'pro',
131
+ });
132
+
133
+ if (result.enabled) {
134
+ // Show new dashboard
135
+ }
136
+ ```
137
+
138
+ ## Integration
139
+
140
+ This module integrates with:
141
+
142
+ - `@contractspec/lib.identity-rbac` - User/org context for targeting
143
+ - `@contractspec/lib.analytics` - Evaluation tracking
144
+ - `@contractspec/module.audit-trail` - Configuration changes
145
+
146
+ ## Schema Contribution
147
+
148
+ ```typescript
149
+ import { featureFlagsSchemaContribution } from '@contractspec/lib.feature-flags';
150
+
151
+ export const schemaComposition = {
152
+ modules: [
153
+ featureFlagsSchemaContribution,
154
+ // ... other modules
155
+ ],
156
+ };
157
+ ```
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+