@lssm/lib.feature-flags 0.0.0-canary-20251217080011 → 0.0.0-canary-20251219202229

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 (165) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2 -0
  3. package/dist/contracts/dist/capabilities/openbanking.js +2 -1
  4. package/dist/contracts/dist/capabilities/openbanking.js.map +1 -0
  5. package/dist/contracts/dist/contract-registry/schemas.js +2 -1
  6. package/dist/contracts/dist/contract-registry/schemas.js.map +1 -0
  7. package/dist/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +2 -1
  8. package/dist/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
  9. package/dist/contracts/dist/docs/index.js +2 -6
  10. package/dist/contracts/dist/docs/meta.docs.js +30 -0
  11. package/dist/contracts/dist/docs/meta.docs.js.map +1 -0
  12. package/dist/contracts/dist/docs/presentations.js +2 -1
  13. package/dist/contracts/dist/docs/presentations.js.map +1 -0
  14. package/dist/contracts/dist/docs/registry.js +2 -1
  15. package/dist/contracts/dist/docs/registry.js.map +1 -0
  16. package/dist/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +2 -1
  17. package/dist/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
  18. package/dist/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +2 -1
  19. package/dist/contracts/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
  20. package/dist/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +2 -1
  21. package/dist/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
  22. package/dist/contracts/dist/docs/tech/llm/llm-integration.docblock.js +2 -1
  23. package/dist/contracts/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
  24. package/dist/contracts/dist/docs/tech/mcp-endpoints.docblock.js +2 -1
  25. package/dist/contracts/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
  26. package/dist/contracts/dist/docs/tech/presentation-runtime.docblock.js +2 -1
  27. package/dist/contracts/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
  28. package/dist/contracts/dist/docs/tech/schema/README.docblock.js +2 -1
  29. package/dist/contracts/dist/docs/tech/schema/README.docblock.js.map +1 -0
  30. package/dist/contracts/dist/docs/tech/studio/learning-events.docblock.js +2 -1
  31. package/dist/contracts/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
  32. package/dist/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +2 -1
  33. package/dist/contracts/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
  34. package/dist/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +2 -1
  35. package/dist/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
  36. package/dist/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +2 -1
  37. package/dist/contracts/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
  38. package/dist/contracts/dist/docs/tech/studio/project-routing.docblock.js +2 -1
  39. package/dist/contracts/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
  40. package/dist/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +2 -1
  41. package/dist/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
  42. package/dist/contracts/dist/docs/tech/studio/team-invitations.docblock.js +2 -1
  43. package/dist/contracts/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
  44. package/dist/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +2 -1
  45. package/dist/contracts/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
  46. package/dist/contracts/dist/docs/tech/studio/workspaces.docblock.js +2 -1
  47. package/dist/contracts/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
  48. package/dist/contracts/dist/docs/tech/telemetry-ingest.docblock.js +2 -1
  49. package/dist/contracts/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
  50. package/dist/contracts/dist/docs/tech/templates/runtime.docblock.js +2 -1
  51. package/dist/contracts/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
  52. package/dist/contracts/dist/docs/tech/vscode-extension.docblock.js +2 -1
  53. package/dist/contracts/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
  54. package/dist/contracts/dist/docs/tech/workflows/overview.docblock.js +2 -1
  55. package/dist/contracts/dist/docs/tech/workflows/overview.docblock.js.map +1 -0
  56. package/dist/contracts/dist/docs/tech-contracts.docs.js +97 -0
  57. package/dist/contracts/dist/docs/tech-contracts.docs.js.map +1 -0
  58. package/dist/contracts/dist/events.js +2 -1
  59. package/dist/contracts/dist/events.js.map +1 -0
  60. package/dist/contracts/dist/index.js +2 -1
  61. package/dist/contracts/dist/integrations/contracts.js +65 -66
  62. package/dist/contracts/dist/integrations/contracts.js.map +1 -0
  63. package/dist/contracts/dist/integrations/openbanking/contracts/accounts.js +31 -32
  64. package/dist/contracts/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
  65. package/dist/contracts/dist/integrations/openbanking/contracts/balances.js +18 -19
  66. package/dist/contracts/dist/integrations/openbanking/contracts/balances.js.map +1 -0
  67. package/dist/contracts/dist/integrations/openbanking/contracts/transactions.js +32 -33
  68. package/dist/contracts/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
  69. package/dist/contracts/dist/integrations/openbanking/models.js +60 -61
  70. package/dist/contracts/dist/integrations/openbanking/models.js.map +1 -0
  71. package/dist/contracts/dist/integrations/openbanking/telemetry.js +2 -1
  72. package/dist/contracts/dist/integrations/openbanking/telemetry.js.map +1 -0
  73. package/dist/contracts/dist/integrations/providers/elevenlabs.js +2 -1
  74. package/dist/contracts/dist/integrations/providers/elevenlabs.js.map +1 -0
  75. package/dist/contracts/dist/integrations/providers/gcs-storage.js +2 -1
  76. package/dist/contracts/dist/integrations/providers/gcs-storage.js.map +1 -0
  77. package/dist/contracts/dist/integrations/providers/gmail.js +2 -1
  78. package/dist/contracts/dist/integrations/providers/gmail.js.map +1 -0
  79. package/dist/contracts/dist/integrations/providers/google-calendar.js +2 -1
  80. package/dist/contracts/dist/integrations/providers/google-calendar.js.map +1 -0
  81. package/dist/contracts/dist/integrations/providers/mistral.js +2 -1
  82. package/dist/contracts/dist/integrations/providers/mistral.js.map +1 -0
  83. package/dist/contracts/dist/integrations/providers/postmark.js +2 -1
  84. package/dist/contracts/dist/integrations/providers/postmark.js.map +1 -0
  85. package/dist/contracts/dist/integrations/providers/powens.js +2 -1
  86. package/dist/contracts/dist/integrations/providers/powens.js.map +1 -0
  87. package/dist/contracts/dist/integrations/providers/qdrant.js +2 -1
  88. package/dist/contracts/dist/integrations/providers/qdrant.js.map +1 -0
  89. package/dist/contracts/dist/integrations/providers/stripe.js +2 -1
  90. package/dist/contracts/dist/integrations/providers/stripe.js.map +1 -0
  91. package/dist/contracts/dist/integrations/providers/twilio-sms.js +2 -1
  92. package/dist/contracts/dist/integrations/providers/twilio-sms.js.map +1 -0
  93. package/dist/contracts/dist/knowledge/contracts.js +44 -45
  94. package/dist/contracts/dist/knowledge/contracts.js.map +1 -0
  95. package/dist/contracts/dist/knowledge/spaces/email-threads.js +2 -1
  96. package/dist/contracts/dist/knowledge/spaces/email-threads.js.map +1 -0
  97. package/dist/contracts/dist/knowledge/spaces/financial-docs.js +2 -1
  98. package/dist/contracts/dist/knowledge/spaces/financial-docs.js.map +1 -0
  99. package/dist/contracts/dist/knowledge/spaces/financial-overview.js +2 -1
  100. package/dist/contracts/dist/knowledge/spaces/financial-overview.js.map +1 -0
  101. package/dist/contracts/dist/knowledge/spaces/product-canon.js +2 -1
  102. package/dist/contracts/dist/knowledge/spaces/product-canon.js.map +1 -0
  103. package/dist/contracts/dist/knowledge/spaces/support-faq.js +2 -1
  104. package/dist/contracts/dist/knowledge/spaces/support-faq.js.map +1 -0
  105. package/dist/contracts/dist/knowledge/spaces/uploaded-docs.js +2 -1
  106. package/dist/contracts/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
  107. package/dist/contracts/dist/llm/exporters.js +2 -1
  108. package/dist/contracts/dist/llm/exporters.js.map +1 -0
  109. package/dist/contracts/dist/onboarding-base.js +22 -23
  110. package/dist/contracts/dist/onboarding-base.js.map +1 -0
  111. package/dist/contracts/dist/ownership.js +4 -2
  112. package/dist/contracts/dist/ownership.js.map +1 -0
  113. package/dist/contracts/dist/presentations.v2.js +2 -1
  114. package/dist/contracts/dist/presentations.v2.js.map +1 -0
  115. package/dist/contracts/dist/regenerator/service.js +2 -1
  116. package/dist/contracts/dist/regenerator/service.js.map +1 -0
  117. package/dist/contracts/dist/schema/dist/index.js +3873 -6
  118. package/dist/contracts/dist/schema/dist/index.js.map +1 -0
  119. package/dist/contracts/dist/spec.js +2 -1
  120. package/dist/contracts/dist/spec.js.map +1 -0
  121. package/dist/contracts/index.d.ts +261 -260
  122. package/dist/contracts/index.d.ts.map +1 -0
  123. package/dist/contracts/index.js +117 -118
  124. package/dist/contracts/index.js.map +1 -0
  125. package/dist/docs/feature-flags.docblock.js +2 -1
  126. package/dist/docs/feature-flags.docblock.js.map +1 -0
  127. package/dist/entities/index.d.ts +160 -159
  128. package/dist/entities/index.d.ts.map +1 -0
  129. package/dist/entities/index.js +93 -93
  130. package/dist/entities/index.js.map +1 -0
  131. package/dist/evaluation/index.d.ts +2 -1
  132. package/dist/evaluation/index.d.ts.map +1 -0
  133. package/dist/evaluation/index.js +2 -1
  134. package/dist/evaluation/index.js.map +1 -0
  135. package/dist/events.d.ts +2 -1
  136. package/dist/events.d.ts.map +1 -0
  137. package/dist/events.js +81 -82
  138. package/dist/events.js.map +1 -0
  139. package/dist/feature-flags.feature.d.ts +2 -1
  140. package/dist/feature-flags.feature.d.ts.map +1 -0
  141. package/dist/feature-flags.feature.js +2 -1
  142. package/dist/feature-flags.feature.js.map +1 -0
  143. package/dist/schema/dist/index.js +4889 -6
  144. package/dist/schema/dist/index.js.map +1 -0
  145. package/package.json +7 -6
  146. package/dist/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
  147. package/dist/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
  148. package/dist/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
  149. package/dist/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
  150. package/dist/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
  151. package/dist/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
  152. package/dist/contracts/dist/schema/dist/EnumType.js +0 -2
  153. package/dist/contracts/dist/schema/dist/FieldType.js +0 -49
  154. package/dist/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
  155. package/dist/contracts/dist/schema/dist/SchemaModel.js +0 -34
  156. package/dist/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
  157. package/dist/contracts/dist/schema/dist/entity/index.js +0 -2
  158. package/dist/contracts/dist/schema/dist/entity/types.js +0 -1
  159. package/dist/schema/dist/EnumType.js +0 -2
  160. package/dist/schema/dist/FieldType.js +0 -49
  161. package/dist/schema/dist/ScalarTypeEnum.js +0 -236
  162. package/dist/schema/dist/SchemaModel.js +0 -39
  163. package/dist/schema/dist/entity/defineEntity.js +0 -236
  164. package/dist/schema/dist/entity/index.js +0 -2
  165. package/dist/schema/dist/entity/types.js +0 -1
package/dist/events.js CHANGED
@@ -1,340 +1,338 @@
1
- import { ScalarTypeEnum } from "./schema/dist/ScalarTypeEnum.js";
2
- import { defineSchemaModel } from "./schema/dist/SchemaModel.js";
3
- import "./schema/dist/index.js";
1
+ import { E5, K5 } from "./schema/dist/index.js";
4
2
  import { defineEvent } from "./contracts/dist/events.js";
5
3
  import "./contracts/dist/index.js";
6
4
 
7
5
  //#region src/events.ts
8
- const FlagCreatedPayload = defineSchemaModel({
6
+ const FlagCreatedPayload = K5({
9
7
  name: "FlagCreatedEventPayload",
10
8
  description: "Payload when a feature flag is created",
11
9
  fields: {
12
10
  flagId: {
13
- type: ScalarTypeEnum.String_unsecure(),
11
+ type: E5.String_unsecure(),
14
12
  isOptional: false
15
13
  },
16
14
  key: {
17
- type: ScalarTypeEnum.String_unsecure(),
15
+ type: E5.String_unsecure(),
18
16
  isOptional: false
19
17
  },
20
18
  name: {
21
- type: ScalarTypeEnum.String_unsecure(),
19
+ type: E5.String_unsecure(),
22
20
  isOptional: false
23
21
  },
24
22
  status: {
25
- type: ScalarTypeEnum.String_unsecure(),
23
+ type: E5.String_unsecure(),
26
24
  isOptional: false
27
25
  },
28
26
  orgId: {
29
- type: ScalarTypeEnum.String_unsecure(),
27
+ type: E5.String_unsecure(),
30
28
  isOptional: true
31
29
  },
32
30
  createdBy: {
33
- type: ScalarTypeEnum.String_unsecure(),
31
+ type: E5.String_unsecure(),
34
32
  isOptional: true
35
33
  },
36
34
  createdAt: {
37
- type: ScalarTypeEnum.DateTime(),
35
+ type: E5.DateTime(),
38
36
  isOptional: false
39
37
  }
40
38
  }
41
39
  });
42
- const FlagUpdatedPayload = defineSchemaModel({
40
+ const FlagUpdatedPayload = K5({
43
41
  name: "FlagUpdatedEventPayload",
44
42
  description: "Payload when a feature flag is updated",
45
43
  fields: {
46
44
  flagId: {
47
- type: ScalarTypeEnum.String_unsecure(),
45
+ type: E5.String_unsecure(),
48
46
  isOptional: false
49
47
  },
50
48
  key: {
51
- type: ScalarTypeEnum.String_unsecure(),
49
+ type: E5.String_unsecure(),
52
50
  isOptional: false
53
51
  },
54
52
  changes: {
55
- type: ScalarTypeEnum.JSON(),
53
+ type: E5.JSON(),
56
54
  isOptional: false
57
55
  },
58
56
  updatedBy: {
59
- type: ScalarTypeEnum.String_unsecure(),
57
+ type: E5.String_unsecure(),
60
58
  isOptional: true
61
59
  },
62
60
  updatedAt: {
63
- type: ScalarTypeEnum.DateTime(),
61
+ type: E5.DateTime(),
64
62
  isOptional: false
65
63
  }
66
64
  }
67
65
  });
68
- const FlagDeletedPayload = defineSchemaModel({
66
+ const FlagDeletedPayload = K5({
69
67
  name: "FlagDeletedEventPayload",
70
68
  description: "Payload when a feature flag is deleted",
71
69
  fields: {
72
70
  flagId: {
73
- type: ScalarTypeEnum.String_unsecure(),
71
+ type: E5.String_unsecure(),
74
72
  isOptional: false
75
73
  },
76
74
  key: {
77
- type: ScalarTypeEnum.String_unsecure(),
75
+ type: E5.String_unsecure(),
78
76
  isOptional: false
79
77
  },
80
78
  deletedBy: {
81
- type: ScalarTypeEnum.String_unsecure(),
79
+ type: E5.String_unsecure(),
82
80
  isOptional: true
83
81
  },
84
82
  deletedAt: {
85
- type: ScalarTypeEnum.DateTime(),
83
+ type: E5.DateTime(),
86
84
  isOptional: false
87
85
  }
88
86
  }
89
87
  });
90
- const FlagToggledPayload = defineSchemaModel({
88
+ const FlagToggledPayload = K5({
91
89
  name: "FlagToggledEventPayload",
92
90
  description: "Payload when a feature flag status is toggled",
93
91
  fields: {
94
92
  flagId: {
95
- type: ScalarTypeEnum.String_unsecure(),
93
+ type: E5.String_unsecure(),
96
94
  isOptional: false
97
95
  },
98
96
  key: {
99
- type: ScalarTypeEnum.String_unsecure(),
97
+ type: E5.String_unsecure(),
100
98
  isOptional: false
101
99
  },
102
100
  previousStatus: {
103
- type: ScalarTypeEnum.String_unsecure(),
101
+ type: E5.String_unsecure(),
104
102
  isOptional: false
105
103
  },
106
104
  newStatus: {
107
- type: ScalarTypeEnum.String_unsecure(),
105
+ type: E5.String_unsecure(),
108
106
  isOptional: false
109
107
  },
110
108
  toggledBy: {
111
- type: ScalarTypeEnum.String_unsecure(),
109
+ type: E5.String_unsecure(),
112
110
  isOptional: true
113
111
  },
114
112
  toggledAt: {
115
- type: ScalarTypeEnum.DateTime(),
113
+ type: E5.DateTime(),
116
114
  isOptional: false
117
115
  }
118
116
  }
119
117
  });
120
- const RuleCreatedPayload = defineSchemaModel({
118
+ const RuleCreatedPayload = K5({
121
119
  name: "RuleCreatedEventPayload",
122
120
  description: "Payload when a targeting rule is created",
123
121
  fields: {
124
122
  ruleId: {
125
- type: ScalarTypeEnum.String_unsecure(),
123
+ type: E5.String_unsecure(),
126
124
  isOptional: false
127
125
  },
128
126
  flagId: {
129
- type: ScalarTypeEnum.String_unsecure(),
127
+ type: E5.String_unsecure(),
130
128
  isOptional: false
131
129
  },
132
130
  flagKey: {
133
- type: ScalarTypeEnum.String_unsecure(),
131
+ type: E5.String_unsecure(),
134
132
  isOptional: false
135
133
  },
136
134
  attribute: {
137
- type: ScalarTypeEnum.String_unsecure(),
135
+ type: E5.String_unsecure(),
138
136
  isOptional: false
139
137
  },
140
138
  operator: {
141
- type: ScalarTypeEnum.String_unsecure(),
139
+ type: E5.String_unsecure(),
142
140
  isOptional: false
143
141
  },
144
142
  createdAt: {
145
- type: ScalarTypeEnum.DateTime(),
143
+ type: E5.DateTime(),
146
144
  isOptional: false
147
145
  }
148
146
  }
149
147
  });
150
- const RuleDeletedPayload = defineSchemaModel({
148
+ const RuleDeletedPayload = K5({
151
149
  name: "RuleDeletedEventPayload",
152
150
  description: "Payload when a targeting rule is deleted",
153
151
  fields: {
154
152
  ruleId: {
155
- type: ScalarTypeEnum.String_unsecure(),
153
+ type: E5.String_unsecure(),
156
154
  isOptional: false
157
155
  },
158
156
  flagId: {
159
- type: ScalarTypeEnum.String_unsecure(),
157
+ type: E5.String_unsecure(),
160
158
  isOptional: false
161
159
  },
162
160
  flagKey: {
163
- type: ScalarTypeEnum.String_unsecure(),
161
+ type: E5.String_unsecure(),
164
162
  isOptional: false
165
163
  },
166
164
  deletedAt: {
167
- type: ScalarTypeEnum.DateTime(),
165
+ type: E5.DateTime(),
168
166
  isOptional: false
169
167
  }
170
168
  }
171
169
  });
172
- const ExperimentCreatedPayload = defineSchemaModel({
170
+ const ExperimentCreatedPayload = K5({
173
171
  name: "ExperimentCreatedEventPayload",
174
172
  description: "Payload when an experiment is created",
175
173
  fields: {
176
174
  experimentId: {
177
- type: ScalarTypeEnum.String_unsecure(),
175
+ type: E5.String_unsecure(),
178
176
  isOptional: false
179
177
  },
180
178
  key: {
181
- type: ScalarTypeEnum.String_unsecure(),
179
+ type: E5.String_unsecure(),
182
180
  isOptional: false
183
181
  },
184
182
  name: {
185
- type: ScalarTypeEnum.String_unsecure(),
183
+ type: E5.String_unsecure(),
186
184
  isOptional: false
187
185
  },
188
186
  flagId: {
189
- type: ScalarTypeEnum.String_unsecure(),
187
+ type: E5.String_unsecure(),
190
188
  isOptional: false
191
189
  },
192
190
  variants: {
193
- type: ScalarTypeEnum.JSON(),
191
+ type: E5.JSON(),
194
192
  isOptional: false
195
193
  },
196
194
  createdBy: {
197
- type: ScalarTypeEnum.String_unsecure(),
195
+ type: E5.String_unsecure(),
198
196
  isOptional: true
199
197
  },
200
198
  createdAt: {
201
- type: ScalarTypeEnum.DateTime(),
199
+ type: E5.DateTime(),
202
200
  isOptional: false
203
201
  }
204
202
  }
205
203
  });
206
- const ExperimentStartedPayload = defineSchemaModel({
204
+ const ExperimentStartedPayload = K5({
207
205
  name: "ExperimentStartedEventPayload",
208
206
  description: "Payload when an experiment starts",
209
207
  fields: {
210
208
  experimentId: {
211
- type: ScalarTypeEnum.String_unsecure(),
209
+ type: E5.String_unsecure(),
212
210
  isOptional: false
213
211
  },
214
212
  key: {
215
- type: ScalarTypeEnum.String_unsecure(),
213
+ type: E5.String_unsecure(),
216
214
  isOptional: false
217
215
  },
218
216
  flagId: {
219
- type: ScalarTypeEnum.String_unsecure(),
217
+ type: E5.String_unsecure(),
220
218
  isOptional: false
221
219
  },
222
220
  variants: {
223
- type: ScalarTypeEnum.JSON(),
221
+ type: E5.JSON(),
224
222
  isOptional: false
225
223
  },
226
224
  audiencePercentage: {
227
- type: ScalarTypeEnum.Int_unsecure(),
225
+ type: E5.Int_unsecure(),
228
226
  isOptional: false
229
227
  },
230
228
  startedBy: {
231
- type: ScalarTypeEnum.String_unsecure(),
229
+ type: E5.String_unsecure(),
232
230
  isOptional: true
233
231
  },
234
232
  startedAt: {
235
- type: ScalarTypeEnum.DateTime(),
233
+ type: E5.DateTime(),
236
234
  isOptional: false
237
235
  }
238
236
  }
239
237
  });
240
- const ExperimentStoppedPayload = defineSchemaModel({
238
+ const ExperimentStoppedPayload = K5({
241
239
  name: "ExperimentStoppedEventPayload",
242
240
  description: "Payload when an experiment stops",
243
241
  fields: {
244
242
  experimentId: {
245
- type: ScalarTypeEnum.String_unsecure(),
243
+ type: E5.String_unsecure(),
246
244
  isOptional: false
247
245
  },
248
246
  key: {
249
- type: ScalarTypeEnum.String_unsecure(),
247
+ type: E5.String_unsecure(),
250
248
  isOptional: false
251
249
  },
252
250
  reason: {
253
- type: ScalarTypeEnum.String_unsecure(),
251
+ type: E5.String_unsecure(),
254
252
  isOptional: false
255
253
  },
256
254
  winningVariant: {
257
- type: ScalarTypeEnum.String_unsecure(),
255
+ type: E5.String_unsecure(),
258
256
  isOptional: true
259
257
  },
260
258
  stoppedBy: {
261
- type: ScalarTypeEnum.String_unsecure(),
259
+ type: E5.String_unsecure(),
262
260
  isOptional: true
263
261
  },
264
262
  stoppedAt: {
265
- type: ScalarTypeEnum.DateTime(),
263
+ type: E5.DateTime(),
266
264
  isOptional: false
267
265
  }
268
266
  }
269
267
  });
270
- const FlagEvaluatedPayload = defineSchemaModel({
268
+ const FlagEvaluatedPayload = K5({
271
269
  name: "FlagEvaluatedEventPayload",
272
270
  description: "Payload when a flag is evaluated (for analytics)",
273
271
  fields: {
274
272
  flagId: {
275
- type: ScalarTypeEnum.String_unsecure(),
273
+ type: E5.String_unsecure(),
276
274
  isOptional: false
277
275
  },
278
276
  flagKey: {
279
- type: ScalarTypeEnum.String_unsecure(),
277
+ type: E5.String_unsecure(),
280
278
  isOptional: false
281
279
  },
282
280
  subjectType: {
283
- type: ScalarTypeEnum.String_unsecure(),
281
+ type: E5.String_unsecure(),
284
282
  isOptional: false
285
283
  },
286
284
  subjectId: {
287
- type: ScalarTypeEnum.String_unsecure(),
285
+ type: E5.String_unsecure(),
288
286
  isOptional: false
289
287
  },
290
288
  result: {
291
- type: ScalarTypeEnum.Boolean(),
289
+ type: E5.Boolean(),
292
290
  isOptional: false
293
291
  },
294
292
  variant: {
295
- type: ScalarTypeEnum.String_unsecure(),
293
+ type: E5.String_unsecure(),
296
294
  isOptional: true
297
295
  },
298
296
  reason: {
299
- type: ScalarTypeEnum.String_unsecure(),
297
+ type: E5.String_unsecure(),
300
298
  isOptional: false
301
299
  },
302
300
  evaluatedAt: {
303
- type: ScalarTypeEnum.DateTime(),
301
+ type: E5.DateTime(),
304
302
  isOptional: false
305
303
  }
306
304
  }
307
305
  });
308
- const VariantAssignedPayload = defineSchemaModel({
306
+ const VariantAssignedPayload = K5({
309
307
  name: "VariantAssignedEventPayload",
310
308
  description: "Payload when a subject is assigned to an experiment variant",
311
309
  fields: {
312
310
  experimentId: {
313
- type: ScalarTypeEnum.String_unsecure(),
311
+ type: E5.String_unsecure(),
314
312
  isOptional: false
315
313
  },
316
314
  experimentKey: {
317
- type: ScalarTypeEnum.String_unsecure(),
315
+ type: E5.String_unsecure(),
318
316
  isOptional: false
319
317
  },
320
318
  subjectType: {
321
- type: ScalarTypeEnum.String_unsecure(),
319
+ type: E5.String_unsecure(),
322
320
  isOptional: false
323
321
  },
324
322
  subjectId: {
325
- type: ScalarTypeEnum.String_unsecure(),
323
+ type: E5.String_unsecure(),
326
324
  isOptional: false
327
325
  },
328
326
  variant: {
329
- type: ScalarTypeEnum.String_unsecure(),
327
+ type: E5.String_unsecure(),
330
328
  isOptional: false
331
329
  },
332
330
  bucket: {
333
- type: ScalarTypeEnum.Int_unsecure(),
331
+ type: E5.Int_unsecure(),
334
332
  isOptional: false
335
333
  },
336
334
  assignedAt: {
337
- type: ScalarTypeEnum.DateTime(),
335
+ type: E5.DateTime(),
338
336
  isOptional: false
339
337
  }
340
338
  }
@@ -456,4 +454,5 @@ const FeatureFlagEvents = {
456
454
  };
457
455
 
458
456
  //#endregion
459
- export { ExperimentCreatedEvent, ExperimentStartedEvent, ExperimentStoppedEvent, FeatureFlagEvents, FlagCreatedEvent, FlagDeletedEvent, FlagEvaluatedEvent, FlagToggledEvent, FlagUpdatedEvent, RuleCreatedEvent, RuleDeletedEvent, VariantAssignedEvent };
457
+ export { ExperimentCreatedEvent, ExperimentStartedEvent, ExperimentStoppedEvent, FeatureFlagEvents, FlagCreatedEvent, FlagDeletedEvent, FlagEvaluatedEvent, FlagToggledEvent, FlagUpdatedEvent, RuleCreatedEvent, RuleDeletedEvent, VariantAssignedEvent };
458
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","names":["defineSchemaModel","ScalarTypeEnum"],"sources":["../src/events.ts"],"sourcesContent":["import { ScalarTypeEnum, defineSchemaModel } from '@lssm/lib.schema';\nimport { defineEvent } from '@lssm/lib.contracts';\n\n// ============ Event Payloads ============\n\nconst FlagCreatedPayload = defineSchemaModel({\n name: 'FlagCreatedEventPayload',\n description: 'Payload when a feature flag is created',\n fields: {\n flagId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n key: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n status: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n orgId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n createdBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nconst FlagUpdatedPayload = defineSchemaModel({\n name: 'FlagUpdatedEventPayload',\n description: 'Payload when a feature flag is updated',\n fields: {\n flagId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n key: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n changes: { type: ScalarTypeEnum.JSON(), isOptional: false },\n updatedBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n updatedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nconst FlagDeletedPayload = defineSchemaModel({\n name: 'FlagDeletedEventPayload',\n description: 'Payload when a feature flag is deleted',\n fields: {\n flagId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n key: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n deletedBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n deletedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nconst FlagToggledPayload = defineSchemaModel({\n name: 'FlagToggledEventPayload',\n description: 'Payload when a feature flag status is toggled',\n fields: {\n flagId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n key: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n previousStatus: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n newStatus: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n toggledBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n toggledAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nconst RuleCreatedPayload = defineSchemaModel({\n name: 'RuleCreatedEventPayload',\n description: 'Payload when a targeting rule is created',\n fields: {\n ruleId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n flagId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n flagKey: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n attribute: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n operator: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nconst RuleDeletedPayload = defineSchemaModel({\n name: 'RuleDeletedEventPayload',\n description: 'Payload when a targeting rule is deleted',\n fields: {\n ruleId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n flagId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n flagKey: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n deletedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nconst ExperimentCreatedPayload = defineSchemaModel({\n name: 'ExperimentCreatedEventPayload',\n description: 'Payload when an experiment is created',\n fields: {\n experimentId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n key: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n flagId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n variants: { type: ScalarTypeEnum.JSON(), isOptional: false },\n createdBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nconst ExperimentStartedPayload = defineSchemaModel({\n name: 'ExperimentStartedEventPayload',\n description: 'Payload when an experiment starts',\n fields: {\n experimentId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n key: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n flagId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n variants: { type: ScalarTypeEnum.JSON(), isOptional: false },\n audiencePercentage: {\n type: ScalarTypeEnum.Int_unsecure(),\n isOptional: false,\n },\n startedBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n startedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nconst ExperimentStoppedPayload = defineSchemaModel({\n name: 'ExperimentStoppedEventPayload',\n description: 'Payload when an experiment stops',\n fields: {\n experimentId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n key: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n reason: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n winningVariant: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: true,\n },\n stoppedBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n stoppedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nconst FlagEvaluatedPayload = defineSchemaModel({\n name: 'FlagEvaluatedEventPayload',\n description: 'Payload when a flag is evaluated (for analytics)',\n fields: {\n flagId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n flagKey: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n subjectType: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n subjectId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n result: { type: ScalarTypeEnum.Boolean(), isOptional: false },\n variant: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n reason: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n evaluatedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nconst VariantAssignedPayload = defineSchemaModel({\n name: 'VariantAssignedEventPayload',\n description: 'Payload when a subject is assigned to an experiment variant',\n fields: {\n experimentId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n experimentKey: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n subjectType: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n subjectId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n variant: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n bucket: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n assignedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\n// ============ Events ============\n\n/**\n * Emitted when a feature flag is created.\n */\nexport const FlagCreatedEvent = defineEvent({\n name: 'flag.created',\n version: 1,\n description: 'A feature flag has been created.',\n payload: FlagCreatedPayload,\n});\n\n/**\n * Emitted when a feature flag is updated.\n */\nexport const FlagUpdatedEvent = defineEvent({\n name: 'flag.updated',\n version: 1,\n description: 'A feature flag has been updated.',\n payload: FlagUpdatedPayload,\n});\n\n/**\n * Emitted when a feature flag is deleted.\n */\nexport const FlagDeletedEvent = defineEvent({\n name: 'flag.deleted',\n version: 1,\n description: 'A feature flag has been deleted.',\n payload: FlagDeletedPayload,\n});\n\n/**\n * Emitted when a feature flag status is toggled.\n */\nexport const FlagToggledEvent = defineEvent({\n name: 'flag.toggled',\n version: 1,\n description: 'A feature flag status has been toggled.',\n payload: FlagToggledPayload,\n});\n\n/**\n * Emitted when a targeting rule is created.\n */\nexport const RuleCreatedEvent = defineEvent({\n name: 'flag.rule_created',\n version: 1,\n description: 'A targeting rule has been created.',\n payload: RuleCreatedPayload,\n});\n\n/**\n * Emitted when a targeting rule is deleted.\n */\nexport const RuleDeletedEvent = defineEvent({\n name: 'flag.rule_deleted',\n version: 1,\n description: 'A targeting rule has been deleted.',\n payload: RuleDeletedPayload,\n});\n\n/**\n * Emitted when an experiment is created.\n */\nexport const ExperimentCreatedEvent = defineEvent({\n name: 'experiment.created',\n version: 1,\n description: 'An experiment has been created.',\n payload: ExperimentCreatedPayload,\n});\n\n/**\n * Emitted when an experiment starts.\n */\nexport const ExperimentStartedEvent = defineEvent({\n name: 'experiment.started',\n version: 1,\n description: 'An experiment has started.',\n payload: ExperimentStartedPayload,\n});\n\n/**\n * Emitted when an experiment stops.\n */\nexport const ExperimentStoppedEvent = defineEvent({\n name: 'experiment.stopped',\n version: 1,\n description: 'An experiment has stopped.',\n payload: ExperimentStoppedPayload,\n});\n\n/**\n * Emitted when a flag is evaluated (for analytics).\n */\nexport const FlagEvaluatedEvent = defineEvent({\n name: 'flag.evaluated',\n version: 1,\n description: 'A feature flag has been evaluated.',\n payload: FlagEvaluatedPayload,\n});\n\n/**\n * Emitted when a subject is assigned to an experiment variant.\n */\nexport const VariantAssignedEvent = defineEvent({\n name: 'experiment.variant_assigned',\n version: 1,\n description: 'A subject has been assigned to an experiment variant.',\n payload: VariantAssignedPayload,\n});\n\n/**\n * All feature flag events.\n */\nexport const FeatureFlagEvents = {\n FlagCreatedEvent,\n FlagUpdatedEvent,\n FlagDeletedEvent,\n FlagToggledEvent,\n RuleCreatedEvent,\n RuleDeletedEvent,\n ExperimentCreatedEvent,\n ExperimentStartedEvent,\n ExperimentStoppedEvent,\n FlagEvaluatedEvent,\n VariantAssignedEvent,\n};\n"],"mappings":"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"}
@@ -8,4 +8,5 @@ import { FeatureModuleSpec } from "@lssm/lib.contracts";
8
8
  */
9
9
  declare const FeatureFlagsFeature: FeatureModuleSpec;
10
10
  //#endregion
11
- export { FeatureFlagsFeature };
11
+ export { FeatureFlagsFeature };
12
+ //# sourceMappingURL=feature-flags.feature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-flags.feature.d.ts","names":[],"sources":["../src/feature-flags.feature.ts"],"sourcesContent":[],"mappings":";;;;;;;;cAWa,qBAAqB"}
@@ -136,4 +136,5 @@ const FeatureFlagsFeature = {
136
136
  };
137
137
 
138
138
  //#endregion
139
- export { FeatureFlagsFeature };
139
+ export { FeatureFlagsFeature };
140
+ //# sourceMappingURL=feature-flags.feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-flags.feature.js","names":["FeatureFlagsFeature: FeatureModuleSpec"],"sources":["../src/feature-flags.feature.ts"],"sourcesContent":["/**\n * Feature Flags Feature Module Specification\n *\n * Defines the feature module for feature flag and experiment management.\n */\nimport type { FeatureModuleSpec } from '@lssm/lib.contracts';\n\n/**\n * Feature Flags feature module that bundles flag management,\n * targeting rules, and A/B experiment capabilities.\n */\nexport const FeatureFlagsFeature: FeatureModuleSpec = {\n meta: {\n key: 'feature-flags',\n title: 'Feature Flags',\n description:\n 'Feature flag management with targeting rules and A/B experiments',\n domain: 'platform',\n owners: ['@platform.feature-flags'],\n tags: ['feature-flags', 'experiments', 'targeting'],\n stability: 'stable',\n },\n\n // All contract operations included in this feature\n operations: [\n // Flag CRUD operations\n { name: 'flag.create', version: 1 },\n { name: 'flag.update', version: 1 },\n { name: 'flag.delete', version: 1 },\n { name: 'flag.toggle', version: 1 },\n { name: 'flag.get', version: 1 },\n { name: 'flag.list', version: 1 },\n { name: 'flag.evaluate', version: 1 },\n\n // Targeting rule operations\n { name: 'flag.rule.create', version: 1 },\n { name: 'flag.rule.delete', version: 1 },\n\n // Experiment operations\n { name: 'experiment.create', version: 1 },\n { name: 'experiment.start', version: 1 },\n { name: 'experiment.stop', version: 1 },\n { name: 'experiment.get', version: 1 },\n ],\n\n // Events emitted by this feature\n events: [\n // Flag events\n { name: 'flag.created', version: 1 },\n { name: 'flag.updated', version: 1 },\n { name: 'flag.deleted', version: 1 },\n { name: 'flag.toggled', version: 1 },\n { name: 'flag.evaluated', version: 1 },\n\n // Rule events\n { name: 'flag.rule_created', version: 1 },\n { name: 'flag.rule_deleted', version: 1 },\n\n // Experiment events\n { name: 'experiment.created', version: 1 },\n { name: 'experiment.started', version: 1 },\n { name: 'experiment.stopped', version: 1 },\n { name: 'experiment.variant_assigned', version: 1 },\n ],\n\n // No presentations for this library feature\n presentations: [],\n opToPresentation: [],\n presentationsTargets: [],\n\n // Capability definitions\n capabilities: {\n provides: [\n { key: 'feature-flags', version: 1 },\n { key: 'experiments', version: 1 },\n ],\n requires: [{ key: 'identity', version: 1 }],\n },\n};\n"],"mappings":";;;;;AAWA,MAAaA,sBAAyC;CACpD,MAAM;EACJ,KAAK;EACL,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,0BAA0B;EACnC,MAAM;GAAC;GAAiB;GAAe;GAAY;EACnD,WAAW;EACZ;CAGD,YAAY;EAEV;GAAE,MAAM;GAAe,SAAS;GAAG;EACnC;GAAE,MAAM;GAAe,SAAS;GAAG;EACnC;GAAE,MAAM;GAAe,SAAS;GAAG;EACnC;GAAE,MAAM;GAAe,SAAS;GAAG;EACnC;GAAE,MAAM;GAAY,SAAS;GAAG;EAChC;GAAE,MAAM;GAAa,SAAS;GAAG;EACjC;GAAE,MAAM;GAAiB,SAAS;GAAG;EAGrC;GAAE,MAAM;GAAoB,SAAS;GAAG;EACxC;GAAE,MAAM;GAAoB,SAAS;GAAG;EAGxC;GAAE,MAAM;GAAqB,SAAS;GAAG;EACzC;GAAE,MAAM;GAAoB,SAAS;GAAG;EACxC;GAAE,MAAM;GAAmB,SAAS;GAAG;EACvC;GAAE,MAAM;GAAkB,SAAS;GAAG;EACvC;CAGD,QAAQ;EAEN;GAAE,MAAM;GAAgB,SAAS;GAAG;EACpC;GAAE,MAAM;GAAgB,SAAS;GAAG;EACpC;GAAE,MAAM;GAAgB,SAAS;GAAG;EACpC;GAAE,MAAM;GAAgB,SAAS;GAAG;EACpC;GAAE,MAAM;GAAkB,SAAS;GAAG;EAGtC;GAAE,MAAM;GAAqB,SAAS;GAAG;EACzC;GAAE,MAAM;GAAqB,SAAS;GAAG;EAGzC;GAAE,MAAM;GAAsB,SAAS;GAAG;EAC1C;GAAE,MAAM;GAAsB,SAAS;GAAG;EAC1C;GAAE,MAAM;GAAsB,SAAS;GAAG;EAC1C;GAAE,MAAM;GAA+B,SAAS;GAAG;EACpD;CAGD,eAAe,EAAE;CACjB,kBAAkB,EAAE;CACpB,sBAAsB,EAAE;CAGxB,cAAc;EACZ,UAAU,CACR;GAAE,KAAK;GAAiB,SAAS;GAAG,EACpC;GAAE,KAAK;GAAe,SAAS;GAAG,CACnC;EACD,UAAU,CAAC;GAAE,KAAK;GAAY,SAAS;GAAG,CAAC;EAC5C;CACF"}