@fabricorg/experiments-api-client 0.1.0 → 0.1.2

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.
package/dist/index.d.cts CHANGED
@@ -158,6 +158,20 @@ declare class ApiClient {
158
158
  sharedJs?: string | undefined;
159
159
  sharedCss?: string | undefined;
160
160
  metadata?: Record<string, unknown> | undefined;
161
+ projectId?: string | undefined;
162
+ propertyId?: string | undefined;
163
+ featureId?: string | undefined;
164
+ environmentIds?: string[] | undefined;
165
+ workload?: {
166
+ kind: "sql" | "notebook" | "job" | "pipeline" | "model" | "feature-serving";
167
+ resourceId: string;
168
+ evaluationMode: "online" | "offline" | "shadow";
169
+ assignmentUnit: "user" | "request" | "job-run" | "table-partition";
170
+ resourceName?: string | undefined;
171
+ catalog?: string | undefined;
172
+ schema?: string | undefined;
173
+ tags?: Record<string, string> | undefined;
174
+ } | undefined;
161
175
  }>;
162
176
  invokeAction: (params: EndpointParams<"experiments.invokeAction">, orgId?: string) => Promise<{
163
177
  success: boolean;
@@ -175,6 +189,612 @@ declare class ApiClient {
175
189
  failureCount: number;
176
190
  }[];
177
191
  computedAt: string;
192
+ analytics?: {
193
+ variants: {
194
+ variantKey: string;
195
+ exposedSubjects: number;
196
+ convertedSubjects: number;
197
+ meanTimeToConvertMs: number | null;
198
+ medianTimeToConvertMs: number | null;
199
+ p90TimeToConvertMs: number | null;
200
+ meanConversionDepth: number;
201
+ conversionDepth: {
202
+ oneOrMore: number;
203
+ twoOrMore: number;
204
+ threeOrMore: number;
205
+ };
206
+ cupedAdjustedRate: number | null;
207
+ cupedLift: number | null;
208
+ }[];
209
+ segments: {
210
+ variantKey: string;
211
+ exposureCount: number;
212
+ conversionCount: number;
213
+ segmentValue: string;
214
+ conversionRate: number;
215
+ }[];
216
+ cuped: {
217
+ prePeriodDays: number;
218
+ available: boolean;
219
+ theta: number | null;
220
+ varianceReduction: number | null;
221
+ };
222
+ segmentKey?: string | undefined;
223
+ } | undefined;
224
+ }>;
225
+ };
226
+ projects: {
227
+ list: (orgId?: string) => Promise<{
228
+ projects: {
229
+ name: string;
230
+ key: string;
231
+ kind: "project";
232
+ id: string;
233
+ tenantId: string;
234
+ createdAt: string;
235
+ updatedAt: string;
236
+ description?: string | undefined;
237
+ }[];
238
+ }>;
239
+ create: (params: EndpointParams<"projects.create">, orgId?: string) => Promise<{
240
+ name: string;
241
+ key: string;
242
+ kind: "project";
243
+ id: string;
244
+ tenantId: string;
245
+ createdAt: string;
246
+ updatedAt: string;
247
+ description?: string | undefined;
248
+ }>;
249
+ };
250
+ properties: {
251
+ list: (projectId: string, orgId?: string) => Promise<{
252
+ properties: {
253
+ name: string;
254
+ key: string;
255
+ kind: "property";
256
+ id: string;
257
+ tenantId: string;
258
+ projectId: string;
259
+ createdAt: string;
260
+ updatedAt: string;
261
+ platform: "web" | "server" | "mobile" | "databricks";
262
+ origins: string[];
263
+ description?: string | undefined;
264
+ }[];
265
+ }>;
266
+ create: (projectId: string, params: EndpointParams<"properties.create">, orgId?: string) => Promise<{
267
+ name: string;
268
+ key: string;
269
+ kind: "property";
270
+ id: string;
271
+ tenantId: string;
272
+ projectId: string;
273
+ createdAt: string;
274
+ updatedAt: string;
275
+ platform: "web" | "server" | "mobile" | "databricks";
276
+ origins: string[];
277
+ description?: string | undefined;
278
+ }>;
279
+ };
280
+ environments: {
281
+ list: (projectId: string, orgId?: string) => Promise<{
282
+ environments: {
283
+ name: string;
284
+ key: string;
285
+ kind: "environment";
286
+ id: string;
287
+ tenantId: string;
288
+ projectId: string;
289
+ createdAt: string;
290
+ updatedAt: string;
291
+ tier: "development" | "staging" | "production";
292
+ rank: number;
293
+ requiresApproval: boolean;
294
+ description?: string | undefined;
295
+ }[];
296
+ }>;
297
+ create: (projectId: string, params: EndpointParams<"environments.create">, orgId?: string) => Promise<{
298
+ name: string;
299
+ key: string;
300
+ kind: "environment";
301
+ id: string;
302
+ tenantId: string;
303
+ projectId: string;
304
+ createdAt: string;
305
+ updatedAt: string;
306
+ tier: "development" | "staging" | "production";
307
+ rank: number;
308
+ requiresApproval: boolean;
309
+ description?: string | undefined;
310
+ }>;
311
+ publish: (environmentId: string, orgId?: string) => Promise<{
312
+ status: "published";
313
+ kind: "publication";
314
+ id: string;
315
+ tenantId: string;
316
+ manifestVersion: number;
317
+ environmentId: string;
318
+ version: number;
319
+ resourceHash: string;
320
+ publishedBy: string;
321
+ publishedAt: string;
322
+ snapshot: {
323
+ features: {
324
+ archived: boolean;
325
+ name: string;
326
+ key: string;
327
+ kind: "feature";
328
+ id: string;
329
+ tenantId: string;
330
+ projectId: string;
331
+ createdAt: string;
332
+ updatedAt: string;
333
+ valueType: "string" | "number" | "boolean" | "json";
334
+ defaultValue: string | number | boolean | unknown[] | Record<string, unknown>;
335
+ description?: string | undefined;
336
+ propertyId?: string | undefined;
337
+ }[];
338
+ rules: {
339
+ name: string;
340
+ kind: "rule";
341
+ id: string;
342
+ tenantId: string;
343
+ featureId: string;
344
+ createdAt: string;
345
+ updatedAt: string;
346
+ environmentId: string;
347
+ enabled: boolean;
348
+ priority: number;
349
+ rolloutPercentage: number;
350
+ value?: string | number | boolean | unknown[] | Record<string, unknown> | undefined;
351
+ audience?: unknown;
352
+ variants?: {
353
+ name: string;
354
+ key: string;
355
+ weight?: number | undefined;
356
+ js?: string | undefined;
357
+ css?: string | undefined;
358
+ domOps?: ({
359
+ value: string;
360
+ op: "replaceText";
361
+ selector: string;
362
+ waitForMs?: number | undefined;
363
+ } | {
364
+ value: string;
365
+ op: "replaceHTML";
366
+ selector: string;
367
+ waitForMs?: number | undefined;
368
+ } | {
369
+ value: string;
370
+ op: "setAttr";
371
+ selector: string;
372
+ name: string;
373
+ waitForMs?: number | undefined;
374
+ } | {
375
+ value: string;
376
+ op: "addClass";
377
+ selector: string;
378
+ waitForMs?: number | undefined;
379
+ } | {
380
+ value: string;
381
+ op: "removeClass";
382
+ selector: string;
383
+ waitForMs?: number | undefined;
384
+ } | {
385
+ value: string;
386
+ op: "setStyle";
387
+ selector: string;
388
+ name: string;
389
+ waitForMs?: number | undefined;
390
+ } | {
391
+ op: "remove";
392
+ selector: string;
393
+ waitForMs?: number | undefined;
394
+ } | {
395
+ value: string;
396
+ op: "injectCSS";
397
+ } | {
398
+ value: string;
399
+ op: "injectHTML";
400
+ selector: string;
401
+ position: "beforeend" | "afterbegin" | "beforebegin" | "afterend";
402
+ waitForMs?: number | undefined;
403
+ })[] | undefined;
404
+ recipeSampleRate?: number | undefined;
405
+ payload?: Record<string, unknown> | undefined;
406
+ }[] | undefined;
407
+ experimentId?: string | undefined;
408
+ }[];
409
+ };
410
+ }>;
411
+ publications: (environmentId: string, orgId?: string) => Promise<{
412
+ publications: {
413
+ status: "published";
414
+ kind: "publication";
415
+ id: string;
416
+ tenantId: string;
417
+ manifestVersion: number;
418
+ environmentId: string;
419
+ version: number;
420
+ resourceHash: string;
421
+ publishedBy: string;
422
+ publishedAt: string;
423
+ snapshot: {
424
+ features: {
425
+ archived: boolean;
426
+ name: string;
427
+ key: string;
428
+ kind: "feature";
429
+ id: string;
430
+ tenantId: string;
431
+ projectId: string;
432
+ createdAt: string;
433
+ updatedAt: string;
434
+ valueType: "string" | "number" | "boolean" | "json";
435
+ defaultValue: string | number | boolean | unknown[] | Record<string, unknown>;
436
+ description?: string | undefined;
437
+ propertyId?: string | undefined;
438
+ }[];
439
+ rules: {
440
+ name: string;
441
+ kind: "rule";
442
+ id: string;
443
+ tenantId: string;
444
+ featureId: string;
445
+ createdAt: string;
446
+ updatedAt: string;
447
+ environmentId: string;
448
+ enabled: boolean;
449
+ priority: number;
450
+ rolloutPercentage: number;
451
+ value?: string | number | boolean | unknown[] | Record<string, unknown> | undefined;
452
+ audience?: unknown;
453
+ variants?: {
454
+ name: string;
455
+ key: string;
456
+ weight?: number | undefined;
457
+ js?: string | undefined;
458
+ css?: string | undefined;
459
+ domOps?: ({
460
+ value: string;
461
+ op: "replaceText";
462
+ selector: string;
463
+ waitForMs?: number | undefined;
464
+ } | {
465
+ value: string;
466
+ op: "replaceHTML";
467
+ selector: string;
468
+ waitForMs?: number | undefined;
469
+ } | {
470
+ value: string;
471
+ op: "setAttr";
472
+ selector: string;
473
+ name: string;
474
+ waitForMs?: number | undefined;
475
+ } | {
476
+ value: string;
477
+ op: "addClass";
478
+ selector: string;
479
+ waitForMs?: number | undefined;
480
+ } | {
481
+ value: string;
482
+ op: "removeClass";
483
+ selector: string;
484
+ waitForMs?: number | undefined;
485
+ } | {
486
+ value: string;
487
+ op: "setStyle";
488
+ selector: string;
489
+ name: string;
490
+ waitForMs?: number | undefined;
491
+ } | {
492
+ op: "remove";
493
+ selector: string;
494
+ waitForMs?: number | undefined;
495
+ } | {
496
+ value: string;
497
+ op: "injectCSS";
498
+ } | {
499
+ value: string;
500
+ op: "injectHTML";
501
+ selector: string;
502
+ position: "beforeend" | "afterbegin" | "beforebegin" | "afterend";
503
+ waitForMs?: number | undefined;
504
+ })[] | undefined;
505
+ recipeSampleRate?: number | undefined;
506
+ payload?: Record<string, unknown> | undefined;
507
+ }[] | undefined;
508
+ experimentId?: string | undefined;
509
+ }[];
510
+ };
511
+ }[];
512
+ }>;
513
+ promote: (environmentId: string, params: EndpointParams<"environments.promote">, orgId?: string) => Promise<{
514
+ sourceEnvironmentId: string;
515
+ sourceVersion: number;
516
+ targetEnvironmentId: string;
517
+ promotedRuleCount: number;
518
+ }>;
519
+ configuration: (environmentId: string, orgId?: string) => Promise<{
520
+ status: "published";
521
+ kind: "publication";
522
+ id: string;
523
+ tenantId: string;
524
+ manifestVersion: number;
525
+ environmentId: string;
526
+ version: number;
527
+ resourceHash: string;
528
+ publishedBy: string;
529
+ publishedAt: string;
530
+ snapshot: {
531
+ features: {
532
+ archived: boolean;
533
+ name: string;
534
+ key: string;
535
+ kind: "feature";
536
+ id: string;
537
+ tenantId: string;
538
+ projectId: string;
539
+ createdAt: string;
540
+ updatedAt: string;
541
+ valueType: "string" | "number" | "boolean" | "json";
542
+ defaultValue: string | number | boolean | unknown[] | Record<string, unknown>;
543
+ description?: string | undefined;
544
+ propertyId?: string | undefined;
545
+ }[];
546
+ rules: {
547
+ name: string;
548
+ kind: "rule";
549
+ id: string;
550
+ tenantId: string;
551
+ featureId: string;
552
+ createdAt: string;
553
+ updatedAt: string;
554
+ environmentId: string;
555
+ enabled: boolean;
556
+ priority: number;
557
+ rolloutPercentage: number;
558
+ value?: string | number | boolean | unknown[] | Record<string, unknown> | undefined;
559
+ audience?: unknown;
560
+ variants?: {
561
+ name: string;
562
+ key: string;
563
+ weight?: number | undefined;
564
+ js?: string | undefined;
565
+ css?: string | undefined;
566
+ domOps?: ({
567
+ value: string;
568
+ op: "replaceText";
569
+ selector: string;
570
+ waitForMs?: number | undefined;
571
+ } | {
572
+ value: string;
573
+ op: "replaceHTML";
574
+ selector: string;
575
+ waitForMs?: number | undefined;
576
+ } | {
577
+ value: string;
578
+ op: "setAttr";
579
+ selector: string;
580
+ name: string;
581
+ waitForMs?: number | undefined;
582
+ } | {
583
+ value: string;
584
+ op: "addClass";
585
+ selector: string;
586
+ waitForMs?: number | undefined;
587
+ } | {
588
+ value: string;
589
+ op: "removeClass";
590
+ selector: string;
591
+ waitForMs?: number | undefined;
592
+ } | {
593
+ value: string;
594
+ op: "setStyle";
595
+ selector: string;
596
+ name: string;
597
+ waitForMs?: number | undefined;
598
+ } | {
599
+ op: "remove";
600
+ selector: string;
601
+ waitForMs?: number | undefined;
602
+ } | {
603
+ value: string;
604
+ op: "injectCSS";
605
+ } | {
606
+ value: string;
607
+ op: "injectHTML";
608
+ selector: string;
609
+ position: "beforeend" | "afterbegin" | "beforebegin" | "afterend";
610
+ waitForMs?: number | undefined;
611
+ })[] | undefined;
612
+ recipeSampleRate?: number | undefined;
613
+ payload?: Record<string, unknown> | undefined;
614
+ }[] | undefined;
615
+ experimentId?: string | undefined;
616
+ }[];
617
+ };
618
+ }>;
619
+ };
620
+ features: {
621
+ list: (projectId: string, orgId?: string) => Promise<{
622
+ features: {
623
+ archived: boolean;
624
+ name: string;
625
+ key: string;
626
+ kind: "feature";
627
+ id: string;
628
+ tenantId: string;
629
+ projectId: string;
630
+ createdAt: string;
631
+ updatedAt: string;
632
+ valueType: "string" | "number" | "boolean" | "json";
633
+ defaultValue: string | number | boolean | unknown[] | Record<string, unknown>;
634
+ description?: string | undefined;
635
+ propertyId?: string | undefined;
636
+ }[];
637
+ }>;
638
+ create: (projectId: string, params: EndpointParams<"features.create">, orgId?: string) => Promise<{
639
+ archived: boolean;
640
+ name: string;
641
+ key: string;
642
+ kind: "feature";
643
+ id: string;
644
+ tenantId: string;
645
+ projectId: string;
646
+ createdAt: string;
647
+ updatedAt: string;
648
+ valueType: "string" | "number" | "boolean" | "json";
649
+ defaultValue: string | number | boolean | unknown[] | Record<string, unknown>;
650
+ description?: string | undefined;
651
+ propertyId?: string | undefined;
652
+ }>;
653
+ };
654
+ rules: {
655
+ list: (featureId: string, orgId?: string) => Promise<{
656
+ rules: {
657
+ name: string;
658
+ kind: "rule";
659
+ id: string;
660
+ tenantId: string;
661
+ featureId: string;
662
+ createdAt: string;
663
+ updatedAt: string;
664
+ environmentId: string;
665
+ enabled: boolean;
666
+ priority: number;
667
+ rolloutPercentage: number;
668
+ value?: string | number | boolean | unknown[] | Record<string, unknown> | undefined;
669
+ audience?: unknown;
670
+ variants?: {
671
+ name: string;
672
+ key: string;
673
+ weight?: number | undefined;
674
+ js?: string | undefined;
675
+ css?: string | undefined;
676
+ domOps?: ({
677
+ value: string;
678
+ op: "replaceText";
679
+ selector: string;
680
+ waitForMs?: number | undefined;
681
+ } | {
682
+ value: string;
683
+ op: "replaceHTML";
684
+ selector: string;
685
+ waitForMs?: number | undefined;
686
+ } | {
687
+ value: string;
688
+ op: "setAttr";
689
+ selector: string;
690
+ name: string;
691
+ waitForMs?: number | undefined;
692
+ } | {
693
+ value: string;
694
+ op: "addClass";
695
+ selector: string;
696
+ waitForMs?: number | undefined;
697
+ } | {
698
+ value: string;
699
+ op: "removeClass";
700
+ selector: string;
701
+ waitForMs?: number | undefined;
702
+ } | {
703
+ value: string;
704
+ op: "setStyle";
705
+ selector: string;
706
+ name: string;
707
+ waitForMs?: number | undefined;
708
+ } | {
709
+ op: "remove";
710
+ selector: string;
711
+ waitForMs?: number | undefined;
712
+ } | {
713
+ value: string;
714
+ op: "injectCSS";
715
+ } | {
716
+ value: string;
717
+ op: "injectHTML";
718
+ selector: string;
719
+ position: "beforeend" | "afterbegin" | "beforebegin" | "afterend";
720
+ waitForMs?: number | undefined;
721
+ })[] | undefined;
722
+ recipeSampleRate?: number | undefined;
723
+ payload?: Record<string, unknown> | undefined;
724
+ }[] | undefined;
725
+ experimentId?: string | undefined;
726
+ }[];
727
+ }>;
728
+ create: (featureId: string, params: EndpointParams<"rules.create">, orgId?: string) => Promise<{
729
+ name: string;
730
+ kind: "rule";
731
+ id: string;
732
+ tenantId: string;
733
+ featureId: string;
734
+ createdAt: string;
735
+ updatedAt: string;
736
+ environmentId: string;
737
+ enabled: boolean;
738
+ priority: number;
739
+ rolloutPercentage: number;
740
+ value?: string | number | boolean | unknown[] | Record<string, unknown> | undefined;
741
+ audience?: unknown;
742
+ variants?: {
743
+ name: string;
744
+ key: string;
745
+ weight?: number | undefined;
746
+ js?: string | undefined;
747
+ css?: string | undefined;
748
+ domOps?: ({
749
+ value: string;
750
+ op: "replaceText";
751
+ selector: string;
752
+ waitForMs?: number | undefined;
753
+ } | {
754
+ value: string;
755
+ op: "replaceHTML";
756
+ selector: string;
757
+ waitForMs?: number | undefined;
758
+ } | {
759
+ value: string;
760
+ op: "setAttr";
761
+ selector: string;
762
+ name: string;
763
+ waitForMs?: number | undefined;
764
+ } | {
765
+ value: string;
766
+ op: "addClass";
767
+ selector: string;
768
+ waitForMs?: number | undefined;
769
+ } | {
770
+ value: string;
771
+ op: "removeClass";
772
+ selector: string;
773
+ waitForMs?: number | undefined;
774
+ } | {
775
+ value: string;
776
+ op: "setStyle";
777
+ selector: string;
778
+ name: string;
779
+ waitForMs?: number | undefined;
780
+ } | {
781
+ op: "remove";
782
+ selector: string;
783
+ waitForMs?: number | undefined;
784
+ } | {
785
+ value: string;
786
+ op: "injectCSS";
787
+ } | {
788
+ value: string;
789
+ op: "injectHTML";
790
+ selector: string;
791
+ position: "beforeend" | "afterbegin" | "beforebegin" | "afterend";
792
+ waitForMs?: number | undefined;
793
+ })[] | undefined;
794
+ recipeSampleRate?: number | undefined;
795
+ payload?: Record<string, unknown> | undefined;
796
+ }[] | undefined;
797
+ experimentId?: string | undefined;
178
798
  }>;
179
799
  };
180
800
  manifests: {