@lssm/lib.feature-flags 0.0.0-canary-20251217052941 → 0.0.0-canary-20251217060433

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.
@@ -0,0 +1,624 @@
1
+ import * as _lssm_lib_schema414 from "@lssm/lib.schema";
2
+ import * as _lssm_lib_contracts12 from "@lssm/lib.contracts";
3
+
4
+ //#region src/events.d.ts
5
+ /**
6
+ * Emitted when a feature flag is created.
7
+ */
8
+ declare const FlagCreatedEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
9
+ flagId: {
10
+ type: _lssm_lib_schema414.FieldType<string, string>;
11
+ isOptional: false;
12
+ };
13
+ key: {
14
+ type: _lssm_lib_schema414.FieldType<string, string>;
15
+ isOptional: false;
16
+ };
17
+ name: {
18
+ type: _lssm_lib_schema414.FieldType<string, string>;
19
+ isOptional: false;
20
+ };
21
+ status: {
22
+ type: _lssm_lib_schema414.FieldType<string, string>;
23
+ isOptional: false;
24
+ };
25
+ orgId: {
26
+ type: _lssm_lib_schema414.FieldType<string, string>;
27
+ isOptional: true;
28
+ };
29
+ createdBy: {
30
+ type: _lssm_lib_schema414.FieldType<string, string>;
31
+ isOptional: true;
32
+ };
33
+ createdAt: {
34
+ type: _lssm_lib_schema414.FieldType<Date, string>;
35
+ isOptional: false;
36
+ };
37
+ }>>;
38
+ /**
39
+ * Emitted when a feature flag is updated.
40
+ */
41
+ declare const FlagUpdatedEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
42
+ flagId: {
43
+ type: _lssm_lib_schema414.FieldType<string, string>;
44
+ isOptional: false;
45
+ };
46
+ key: {
47
+ type: _lssm_lib_schema414.FieldType<string, string>;
48
+ isOptional: false;
49
+ };
50
+ changes: {
51
+ type: _lssm_lib_schema414.FieldType<unknown, unknown>;
52
+ isOptional: false;
53
+ };
54
+ updatedBy: {
55
+ type: _lssm_lib_schema414.FieldType<string, string>;
56
+ isOptional: true;
57
+ };
58
+ updatedAt: {
59
+ type: _lssm_lib_schema414.FieldType<Date, string>;
60
+ isOptional: false;
61
+ };
62
+ }>>;
63
+ /**
64
+ * Emitted when a feature flag is deleted.
65
+ */
66
+ declare const FlagDeletedEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
67
+ flagId: {
68
+ type: _lssm_lib_schema414.FieldType<string, string>;
69
+ isOptional: false;
70
+ };
71
+ key: {
72
+ type: _lssm_lib_schema414.FieldType<string, string>;
73
+ isOptional: false;
74
+ };
75
+ deletedBy: {
76
+ type: _lssm_lib_schema414.FieldType<string, string>;
77
+ isOptional: true;
78
+ };
79
+ deletedAt: {
80
+ type: _lssm_lib_schema414.FieldType<Date, string>;
81
+ isOptional: false;
82
+ };
83
+ }>>;
84
+ /**
85
+ * Emitted when a feature flag status is toggled.
86
+ */
87
+ declare const FlagToggledEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
88
+ flagId: {
89
+ type: _lssm_lib_schema414.FieldType<string, string>;
90
+ isOptional: false;
91
+ };
92
+ key: {
93
+ type: _lssm_lib_schema414.FieldType<string, string>;
94
+ isOptional: false;
95
+ };
96
+ previousStatus: {
97
+ type: _lssm_lib_schema414.FieldType<string, string>;
98
+ isOptional: false;
99
+ };
100
+ newStatus: {
101
+ type: _lssm_lib_schema414.FieldType<string, string>;
102
+ isOptional: false;
103
+ };
104
+ toggledBy: {
105
+ type: _lssm_lib_schema414.FieldType<string, string>;
106
+ isOptional: true;
107
+ };
108
+ toggledAt: {
109
+ type: _lssm_lib_schema414.FieldType<Date, string>;
110
+ isOptional: false;
111
+ };
112
+ }>>;
113
+ /**
114
+ * Emitted when a targeting rule is created.
115
+ */
116
+ declare const RuleCreatedEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
117
+ ruleId: {
118
+ type: _lssm_lib_schema414.FieldType<string, string>;
119
+ isOptional: false;
120
+ };
121
+ flagId: {
122
+ type: _lssm_lib_schema414.FieldType<string, string>;
123
+ isOptional: false;
124
+ };
125
+ flagKey: {
126
+ type: _lssm_lib_schema414.FieldType<string, string>;
127
+ isOptional: false;
128
+ };
129
+ attribute: {
130
+ type: _lssm_lib_schema414.FieldType<string, string>;
131
+ isOptional: false;
132
+ };
133
+ operator: {
134
+ type: _lssm_lib_schema414.FieldType<string, string>;
135
+ isOptional: false;
136
+ };
137
+ createdAt: {
138
+ type: _lssm_lib_schema414.FieldType<Date, string>;
139
+ isOptional: false;
140
+ };
141
+ }>>;
142
+ /**
143
+ * Emitted when a targeting rule is deleted.
144
+ */
145
+ declare const RuleDeletedEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
146
+ ruleId: {
147
+ type: _lssm_lib_schema414.FieldType<string, string>;
148
+ isOptional: false;
149
+ };
150
+ flagId: {
151
+ type: _lssm_lib_schema414.FieldType<string, string>;
152
+ isOptional: false;
153
+ };
154
+ flagKey: {
155
+ type: _lssm_lib_schema414.FieldType<string, string>;
156
+ isOptional: false;
157
+ };
158
+ deletedAt: {
159
+ type: _lssm_lib_schema414.FieldType<Date, string>;
160
+ isOptional: false;
161
+ };
162
+ }>>;
163
+ /**
164
+ * Emitted when an experiment is created.
165
+ */
166
+ declare const ExperimentCreatedEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
167
+ experimentId: {
168
+ type: _lssm_lib_schema414.FieldType<string, string>;
169
+ isOptional: false;
170
+ };
171
+ key: {
172
+ type: _lssm_lib_schema414.FieldType<string, string>;
173
+ isOptional: false;
174
+ };
175
+ name: {
176
+ type: _lssm_lib_schema414.FieldType<string, string>;
177
+ isOptional: false;
178
+ };
179
+ flagId: {
180
+ type: _lssm_lib_schema414.FieldType<string, string>;
181
+ isOptional: false;
182
+ };
183
+ variants: {
184
+ type: _lssm_lib_schema414.FieldType<unknown, unknown>;
185
+ isOptional: false;
186
+ };
187
+ createdBy: {
188
+ type: _lssm_lib_schema414.FieldType<string, string>;
189
+ isOptional: true;
190
+ };
191
+ createdAt: {
192
+ type: _lssm_lib_schema414.FieldType<Date, string>;
193
+ isOptional: false;
194
+ };
195
+ }>>;
196
+ /**
197
+ * Emitted when an experiment starts.
198
+ */
199
+ declare const ExperimentStartedEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
200
+ experimentId: {
201
+ type: _lssm_lib_schema414.FieldType<string, string>;
202
+ isOptional: false;
203
+ };
204
+ key: {
205
+ type: _lssm_lib_schema414.FieldType<string, string>;
206
+ isOptional: false;
207
+ };
208
+ flagId: {
209
+ type: _lssm_lib_schema414.FieldType<string, string>;
210
+ isOptional: false;
211
+ };
212
+ variants: {
213
+ type: _lssm_lib_schema414.FieldType<unknown, unknown>;
214
+ isOptional: false;
215
+ };
216
+ audiencePercentage: {
217
+ type: _lssm_lib_schema414.FieldType<number, number>;
218
+ isOptional: false;
219
+ };
220
+ startedBy: {
221
+ type: _lssm_lib_schema414.FieldType<string, string>;
222
+ isOptional: true;
223
+ };
224
+ startedAt: {
225
+ type: _lssm_lib_schema414.FieldType<Date, string>;
226
+ isOptional: false;
227
+ };
228
+ }>>;
229
+ /**
230
+ * Emitted when an experiment stops.
231
+ */
232
+ declare const ExperimentStoppedEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
233
+ experimentId: {
234
+ type: _lssm_lib_schema414.FieldType<string, string>;
235
+ isOptional: false;
236
+ };
237
+ key: {
238
+ type: _lssm_lib_schema414.FieldType<string, string>;
239
+ isOptional: false;
240
+ };
241
+ reason: {
242
+ type: _lssm_lib_schema414.FieldType<string, string>;
243
+ isOptional: false;
244
+ };
245
+ winningVariant: {
246
+ type: _lssm_lib_schema414.FieldType<string, string>;
247
+ isOptional: true;
248
+ };
249
+ stoppedBy: {
250
+ type: _lssm_lib_schema414.FieldType<string, string>;
251
+ isOptional: true;
252
+ };
253
+ stoppedAt: {
254
+ type: _lssm_lib_schema414.FieldType<Date, string>;
255
+ isOptional: false;
256
+ };
257
+ }>>;
258
+ /**
259
+ * Emitted when a flag is evaluated (for analytics).
260
+ */
261
+ declare const FlagEvaluatedEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
262
+ flagId: {
263
+ type: _lssm_lib_schema414.FieldType<string, string>;
264
+ isOptional: false;
265
+ };
266
+ flagKey: {
267
+ type: _lssm_lib_schema414.FieldType<string, string>;
268
+ isOptional: false;
269
+ };
270
+ subjectType: {
271
+ type: _lssm_lib_schema414.FieldType<string, string>;
272
+ isOptional: false;
273
+ };
274
+ subjectId: {
275
+ type: _lssm_lib_schema414.FieldType<string, string>;
276
+ isOptional: false;
277
+ };
278
+ result: {
279
+ type: _lssm_lib_schema414.FieldType<boolean, boolean>;
280
+ isOptional: false;
281
+ };
282
+ variant: {
283
+ type: _lssm_lib_schema414.FieldType<string, string>;
284
+ isOptional: true;
285
+ };
286
+ reason: {
287
+ type: _lssm_lib_schema414.FieldType<string, string>;
288
+ isOptional: false;
289
+ };
290
+ evaluatedAt: {
291
+ type: _lssm_lib_schema414.FieldType<Date, string>;
292
+ isOptional: false;
293
+ };
294
+ }>>;
295
+ /**
296
+ * Emitted when a subject is assigned to an experiment variant.
297
+ */
298
+ declare const VariantAssignedEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
299
+ experimentId: {
300
+ type: _lssm_lib_schema414.FieldType<string, string>;
301
+ isOptional: false;
302
+ };
303
+ experimentKey: {
304
+ type: _lssm_lib_schema414.FieldType<string, string>;
305
+ isOptional: false;
306
+ };
307
+ subjectType: {
308
+ type: _lssm_lib_schema414.FieldType<string, string>;
309
+ isOptional: false;
310
+ };
311
+ subjectId: {
312
+ type: _lssm_lib_schema414.FieldType<string, string>;
313
+ isOptional: false;
314
+ };
315
+ variant: {
316
+ type: _lssm_lib_schema414.FieldType<string, string>;
317
+ isOptional: false;
318
+ };
319
+ bucket: {
320
+ type: _lssm_lib_schema414.FieldType<number, number>;
321
+ isOptional: false;
322
+ };
323
+ assignedAt: {
324
+ type: _lssm_lib_schema414.FieldType<Date, string>;
325
+ isOptional: false;
326
+ };
327
+ }>>;
328
+ /**
329
+ * All feature flag events.
330
+ */
331
+ declare const FeatureFlagEvents: {
332
+ FlagCreatedEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
333
+ flagId: {
334
+ type: _lssm_lib_schema414.FieldType<string, string>;
335
+ isOptional: false;
336
+ };
337
+ key: {
338
+ type: _lssm_lib_schema414.FieldType<string, string>;
339
+ isOptional: false;
340
+ };
341
+ name: {
342
+ type: _lssm_lib_schema414.FieldType<string, string>;
343
+ isOptional: false;
344
+ };
345
+ status: {
346
+ type: _lssm_lib_schema414.FieldType<string, string>;
347
+ isOptional: false;
348
+ };
349
+ orgId: {
350
+ type: _lssm_lib_schema414.FieldType<string, string>;
351
+ isOptional: true;
352
+ };
353
+ createdBy: {
354
+ type: _lssm_lib_schema414.FieldType<string, string>;
355
+ isOptional: true;
356
+ };
357
+ createdAt: {
358
+ type: _lssm_lib_schema414.FieldType<Date, string>;
359
+ isOptional: false;
360
+ };
361
+ }>>;
362
+ FlagUpdatedEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
363
+ flagId: {
364
+ type: _lssm_lib_schema414.FieldType<string, string>;
365
+ isOptional: false;
366
+ };
367
+ key: {
368
+ type: _lssm_lib_schema414.FieldType<string, string>;
369
+ isOptional: false;
370
+ };
371
+ changes: {
372
+ type: _lssm_lib_schema414.FieldType<unknown, unknown>;
373
+ isOptional: false;
374
+ };
375
+ updatedBy: {
376
+ type: _lssm_lib_schema414.FieldType<string, string>;
377
+ isOptional: true;
378
+ };
379
+ updatedAt: {
380
+ type: _lssm_lib_schema414.FieldType<Date, string>;
381
+ isOptional: false;
382
+ };
383
+ }>>;
384
+ FlagDeletedEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
385
+ flagId: {
386
+ type: _lssm_lib_schema414.FieldType<string, string>;
387
+ isOptional: false;
388
+ };
389
+ key: {
390
+ type: _lssm_lib_schema414.FieldType<string, string>;
391
+ isOptional: false;
392
+ };
393
+ deletedBy: {
394
+ type: _lssm_lib_schema414.FieldType<string, string>;
395
+ isOptional: true;
396
+ };
397
+ deletedAt: {
398
+ type: _lssm_lib_schema414.FieldType<Date, string>;
399
+ isOptional: false;
400
+ };
401
+ }>>;
402
+ FlagToggledEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
403
+ flagId: {
404
+ type: _lssm_lib_schema414.FieldType<string, string>;
405
+ isOptional: false;
406
+ };
407
+ key: {
408
+ type: _lssm_lib_schema414.FieldType<string, string>;
409
+ isOptional: false;
410
+ };
411
+ previousStatus: {
412
+ type: _lssm_lib_schema414.FieldType<string, string>;
413
+ isOptional: false;
414
+ };
415
+ newStatus: {
416
+ type: _lssm_lib_schema414.FieldType<string, string>;
417
+ isOptional: false;
418
+ };
419
+ toggledBy: {
420
+ type: _lssm_lib_schema414.FieldType<string, string>;
421
+ isOptional: true;
422
+ };
423
+ toggledAt: {
424
+ type: _lssm_lib_schema414.FieldType<Date, string>;
425
+ isOptional: false;
426
+ };
427
+ }>>;
428
+ RuleCreatedEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
429
+ ruleId: {
430
+ type: _lssm_lib_schema414.FieldType<string, string>;
431
+ isOptional: false;
432
+ };
433
+ flagId: {
434
+ type: _lssm_lib_schema414.FieldType<string, string>;
435
+ isOptional: false;
436
+ };
437
+ flagKey: {
438
+ type: _lssm_lib_schema414.FieldType<string, string>;
439
+ isOptional: false;
440
+ };
441
+ attribute: {
442
+ type: _lssm_lib_schema414.FieldType<string, string>;
443
+ isOptional: false;
444
+ };
445
+ operator: {
446
+ type: _lssm_lib_schema414.FieldType<string, string>;
447
+ isOptional: false;
448
+ };
449
+ createdAt: {
450
+ type: _lssm_lib_schema414.FieldType<Date, string>;
451
+ isOptional: false;
452
+ };
453
+ }>>;
454
+ RuleDeletedEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
455
+ ruleId: {
456
+ type: _lssm_lib_schema414.FieldType<string, string>;
457
+ isOptional: false;
458
+ };
459
+ flagId: {
460
+ type: _lssm_lib_schema414.FieldType<string, string>;
461
+ isOptional: false;
462
+ };
463
+ flagKey: {
464
+ type: _lssm_lib_schema414.FieldType<string, string>;
465
+ isOptional: false;
466
+ };
467
+ deletedAt: {
468
+ type: _lssm_lib_schema414.FieldType<Date, string>;
469
+ isOptional: false;
470
+ };
471
+ }>>;
472
+ ExperimentCreatedEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
473
+ experimentId: {
474
+ type: _lssm_lib_schema414.FieldType<string, string>;
475
+ isOptional: false;
476
+ };
477
+ key: {
478
+ type: _lssm_lib_schema414.FieldType<string, string>;
479
+ isOptional: false;
480
+ };
481
+ name: {
482
+ type: _lssm_lib_schema414.FieldType<string, string>;
483
+ isOptional: false;
484
+ };
485
+ flagId: {
486
+ type: _lssm_lib_schema414.FieldType<string, string>;
487
+ isOptional: false;
488
+ };
489
+ variants: {
490
+ type: _lssm_lib_schema414.FieldType<unknown, unknown>;
491
+ isOptional: false;
492
+ };
493
+ createdBy: {
494
+ type: _lssm_lib_schema414.FieldType<string, string>;
495
+ isOptional: true;
496
+ };
497
+ createdAt: {
498
+ type: _lssm_lib_schema414.FieldType<Date, string>;
499
+ isOptional: false;
500
+ };
501
+ }>>;
502
+ ExperimentStartedEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
503
+ experimentId: {
504
+ type: _lssm_lib_schema414.FieldType<string, string>;
505
+ isOptional: false;
506
+ };
507
+ key: {
508
+ type: _lssm_lib_schema414.FieldType<string, string>;
509
+ isOptional: false;
510
+ };
511
+ flagId: {
512
+ type: _lssm_lib_schema414.FieldType<string, string>;
513
+ isOptional: false;
514
+ };
515
+ variants: {
516
+ type: _lssm_lib_schema414.FieldType<unknown, unknown>;
517
+ isOptional: false;
518
+ };
519
+ audiencePercentage: {
520
+ type: _lssm_lib_schema414.FieldType<number, number>;
521
+ isOptional: false;
522
+ };
523
+ startedBy: {
524
+ type: _lssm_lib_schema414.FieldType<string, string>;
525
+ isOptional: true;
526
+ };
527
+ startedAt: {
528
+ type: _lssm_lib_schema414.FieldType<Date, string>;
529
+ isOptional: false;
530
+ };
531
+ }>>;
532
+ ExperimentStoppedEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
533
+ experimentId: {
534
+ type: _lssm_lib_schema414.FieldType<string, string>;
535
+ isOptional: false;
536
+ };
537
+ key: {
538
+ type: _lssm_lib_schema414.FieldType<string, string>;
539
+ isOptional: false;
540
+ };
541
+ reason: {
542
+ type: _lssm_lib_schema414.FieldType<string, string>;
543
+ isOptional: false;
544
+ };
545
+ winningVariant: {
546
+ type: _lssm_lib_schema414.FieldType<string, string>;
547
+ isOptional: true;
548
+ };
549
+ stoppedBy: {
550
+ type: _lssm_lib_schema414.FieldType<string, string>;
551
+ isOptional: true;
552
+ };
553
+ stoppedAt: {
554
+ type: _lssm_lib_schema414.FieldType<Date, string>;
555
+ isOptional: false;
556
+ };
557
+ }>>;
558
+ FlagEvaluatedEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
559
+ flagId: {
560
+ type: _lssm_lib_schema414.FieldType<string, string>;
561
+ isOptional: false;
562
+ };
563
+ flagKey: {
564
+ type: _lssm_lib_schema414.FieldType<string, string>;
565
+ isOptional: false;
566
+ };
567
+ subjectType: {
568
+ type: _lssm_lib_schema414.FieldType<string, string>;
569
+ isOptional: false;
570
+ };
571
+ subjectId: {
572
+ type: _lssm_lib_schema414.FieldType<string, string>;
573
+ isOptional: false;
574
+ };
575
+ result: {
576
+ type: _lssm_lib_schema414.FieldType<boolean, boolean>;
577
+ isOptional: false;
578
+ };
579
+ variant: {
580
+ type: _lssm_lib_schema414.FieldType<string, string>;
581
+ isOptional: true;
582
+ };
583
+ reason: {
584
+ type: _lssm_lib_schema414.FieldType<string, string>;
585
+ isOptional: false;
586
+ };
587
+ evaluatedAt: {
588
+ type: _lssm_lib_schema414.FieldType<Date, string>;
589
+ isOptional: false;
590
+ };
591
+ }>>;
592
+ VariantAssignedEvent: _lssm_lib_contracts12.EventSpec<_lssm_lib_schema414.SchemaModel<{
593
+ experimentId: {
594
+ type: _lssm_lib_schema414.FieldType<string, string>;
595
+ isOptional: false;
596
+ };
597
+ experimentKey: {
598
+ type: _lssm_lib_schema414.FieldType<string, string>;
599
+ isOptional: false;
600
+ };
601
+ subjectType: {
602
+ type: _lssm_lib_schema414.FieldType<string, string>;
603
+ isOptional: false;
604
+ };
605
+ subjectId: {
606
+ type: _lssm_lib_schema414.FieldType<string, string>;
607
+ isOptional: false;
608
+ };
609
+ variant: {
610
+ type: _lssm_lib_schema414.FieldType<string, string>;
611
+ isOptional: false;
612
+ };
613
+ bucket: {
614
+ type: _lssm_lib_schema414.FieldType<number, number>;
615
+ isOptional: false;
616
+ };
617
+ assignedAt: {
618
+ type: _lssm_lib_schema414.FieldType<Date, string>;
619
+ isOptional: false;
620
+ };
621
+ }>>;
622
+ };
623
+ //#endregion
624
+ export { ExperimentCreatedEvent, ExperimentStartedEvent, ExperimentStoppedEvent, FeatureFlagEvents, FlagCreatedEvent, FlagDeletedEvent, FlagEvaluatedEvent, FlagToggledEvent, FlagUpdatedEvent, RuleCreatedEvent, RuleDeletedEvent, VariantAssignedEvent };
@@ -0,0 +1,11 @@
1
+ import { FeatureModuleSpec } from "@lssm/lib.contracts";
2
+
3
+ //#region src/feature-flags.feature.d.ts
4
+
5
+ /**
6
+ * Feature Flags feature module that bundles flag management,
7
+ * targeting rules, and A/B experiment capabilities.
8
+ */
9
+ declare const FeatureFlagsFeature: FeatureModuleSpec;
10
+ //#endregion
11
+ export { FeatureFlagsFeature };
@@ -0,0 +1,6 @@
1
+ import { CreateExperimentContract, CreateFlagContract, CreateRuleContract, DeleteFlagContract, DeleteRuleContract, EvaluateFlagContract, EvaluationResultModel, ExperimentModel, FeatureFlagModel, GetExperimentContract, GetFlagContract, ListFlagsContract, StartExperimentContract, StopExperimentContract, TargetingRuleModel, ToggleFlagContract, UpdateFlagContract } from "./contracts/index.js";
2
+ import { ExperimentAssignmentEntity, ExperimentEntity, ExperimentStatusEnum, FeatureFlagEntity, FlagEvaluationEntity, FlagStatusEnum, FlagTargetingRuleEntity, RuleOperatorEnum, featureFlagEntities, featureFlagsSchemaContribution } from "./entities/index.js";
3
+ import { EvaluationContext, EvaluationLogger, EvaluationReason, EvaluationResult, Experiment, ExperimentVariant, FeatureFlag, FlagEvaluator, FlagEvaluatorOptions, FlagRepository, InMemoryFlagRepository, RuleOperator, TargetingRule, VariantConfig, evaluateRuleCondition, getSubjectId, hashToBucket } from "./evaluation/index.js";
4
+ import { ExperimentCreatedEvent, ExperimentStartedEvent, ExperimentStoppedEvent, FeatureFlagEvents, FlagCreatedEvent, FlagDeletedEvent, FlagEvaluatedEvent, FlagToggledEvent, FlagUpdatedEvent, RuleCreatedEvent, RuleDeletedEvent, VariantAssignedEvent } from "./events.js";
5
+ import { FeatureFlagsFeature } from "./feature-flags.feature.js";
6
+ export { CreateExperimentContract, CreateFlagContract, CreateRuleContract, DeleteFlagContract, DeleteRuleContract, EvaluateFlagContract, EvaluationContext, EvaluationLogger, EvaluationReason, EvaluationResult, EvaluationResultModel, Experiment, ExperimentAssignmentEntity, ExperimentCreatedEvent, ExperimentEntity, ExperimentModel, ExperimentStartedEvent, ExperimentStatusEnum, ExperimentStoppedEvent, ExperimentVariant, FeatureFlag, FeatureFlagEntity, FeatureFlagEvents, FeatureFlagModel, FeatureFlagsFeature, FlagCreatedEvent, FlagDeletedEvent, FlagEvaluatedEvent, FlagEvaluationEntity, FlagEvaluator, FlagEvaluatorOptions, FlagRepository, FlagStatusEnum, FlagTargetingRuleEntity, FlagToggledEvent, FlagUpdatedEvent, GetExperimentContract, GetFlagContract, InMemoryFlagRepository, ListFlagsContract, RuleCreatedEvent, RuleDeletedEvent, RuleOperator, RuleOperatorEnum, StartExperimentContract, StopExperimentContract, TargetingRule, TargetingRuleModel, ToggleFlagContract, UpdateFlagContract, VariantAssignedEvent, VariantConfig, evaluateRuleCondition, featureFlagEntities, featureFlagsSchemaContribution, getSubjectId, hashToBucket };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lssm/lib.feature-flags",
3
- "version": "0.0.0-canary-20251217052941",
3
+ "version": "0.0.0-canary-20251217060433",
4
4
  "description": "Feature flags and experiments module for ContractSpec applications",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -18,24 +18,24 @@
18
18
  "lint:check": "eslint src"
19
19
  },
20
20
  "dependencies": {
21
- "@lssm/lib.schema": "0.0.0-canary-20251217052941",
22
- "@lssm/lib.contracts": "0.0.0-canary-20251217052941",
21
+ "@lssm/lib.schema": "0.0.0-canary-20251217060433",
22
+ "@lssm/lib.contracts": "0.0.0-canary-20251217060433",
23
23
  "zod": "^4.1.13"
24
24
  },
25
25
  "devDependencies": {
26
- "@lssm/tool.typescript": "0.0.0-canary-20251217052941",
27
- "@lssm/tool.tsdown": "0.0.0-canary-20251217052941",
26
+ "@lssm/tool.typescript": "0.0.0-canary-20251217060433",
27
+ "@lssm/tool.tsdown": "0.0.0-canary-20251217060433",
28
28
  "typescript": "^5.9.3"
29
29
  },
30
30
  "exports": {
31
- ".": "./src/index.ts",
32
- "./contracts": "./src/contracts/index.ts",
33
- "./docs": "./src/docs/index.ts",
34
- "./docs/feature-flags.docblock": "./src/docs/feature-flags.docblock.ts",
35
- "./entities": "./src/entities/index.ts",
36
- "./evaluation": "./src/evaluation/index.ts",
37
- "./events": "./src/events.ts",
38
- "./feature-flags.feature": "./src/feature-flags.feature.ts",
31
+ ".": "./dist/index.js",
32
+ "./contracts": "./dist/contracts/index.js",
33
+ "./docs": "./dist/docs/index.js",
34
+ "./docs/feature-flags.docblock": "./dist/docs/feature-flags.docblock.js",
35
+ "./entities": "./dist/entities/index.js",
36
+ "./evaluation": "./dist/evaluation/index.js",
37
+ "./events": "./dist/events.js",
38
+ "./feature-flags.feature": "./dist/feature-flags.feature.js",
39
39
  "./*": "./*"
40
40
  },
41
41
  "module": "./dist/index.js",