@sprig-technologies/sprig-browser 2.21.4 → 2.21.6
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.cjs +10 -10
- package/dist/index.d.ts +196 -132
- package/dist/index.js +1803 -1959
- package/package.json +3 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,75 @@
|
|
|
1
|
-
|
|
1
|
+
declare type EventMap = {
|
|
2
|
+
[eventName: string]: Array<unknown>;
|
|
3
|
+
};
|
|
4
|
+
declare type InternalEventNames = 'newListener' | 'removeListener';
|
|
5
|
+
declare type InternalListener<Events extends EventMap> = Listener<[
|
|
6
|
+
eventName: keyof Events,
|
|
7
|
+
listener: Listener<Array<unknown>>
|
|
8
|
+
]>;
|
|
9
|
+
declare type Listener<Data extends Array<unknown>> = (...data: Data) => void;
|
|
10
|
+
/**
|
|
11
|
+
* Node.js-compatible implementation of `EventEmitter`.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* const emitter = new Emitter<{ hello: [string] }>()
|
|
15
|
+
* emitter.on('hello', (name) => console.log(name))
|
|
16
|
+
* emitter.emit('hello', 'John')
|
|
17
|
+
*/
|
|
18
|
+
declare class Emitter<Events extends EventMap> {
|
|
19
|
+
private events;
|
|
20
|
+
private maxListeners;
|
|
21
|
+
private hasWarnedAboutPotentialMemoryLeak;
|
|
22
|
+
static defaultMaxListeners: number;
|
|
23
|
+
static listenerCount<Events extends EventMap>(emitter: Emitter<EventMap>, eventName: keyof Events): number;
|
|
24
|
+
constructor();
|
|
25
|
+
private _emitInternalEvent;
|
|
26
|
+
private _getListeners;
|
|
27
|
+
private _removeListener;
|
|
28
|
+
private _wrapOnceListener;
|
|
29
|
+
setMaxListeners(maxListeners: number): this;
|
|
30
|
+
/**
|
|
31
|
+
* Returns the current max listener value for the `Emitter` which is
|
|
32
|
+
* either set by `emitter.setMaxListeners(n)` or defaults to
|
|
33
|
+
* `Emitter.defaultMaxListeners`.
|
|
34
|
+
*/
|
|
35
|
+
getMaxListeners(): number;
|
|
36
|
+
/**
|
|
37
|
+
* Returns an array listing the events for which the emitter has registered listeners.
|
|
38
|
+
* The values in the array will be strings or Symbols.
|
|
39
|
+
*/
|
|
40
|
+
eventNames(): Array<keyof Events>;
|
|
41
|
+
/**
|
|
42
|
+
* Synchronously calls each of the listeners registered for the event named `eventName`,
|
|
43
|
+
* in the order they were registered, passing the supplied arguments to each.
|
|
44
|
+
* Returns `true` if the event has listeners, `false` otherwise.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* const emitter = new Emitter<{ hello: [string] }>()
|
|
48
|
+
* emitter.emit('hello', 'John')
|
|
49
|
+
*/
|
|
50
|
+
emit<EventName extends keyof Events>(eventName: EventName, ...data: Events[EventName]): boolean;
|
|
51
|
+
addListener(eventName: InternalEventNames, listener: InternalListener<Events>): this;
|
|
52
|
+
addListener<EventName extends keyof Events>(eventName: EventName, listener: Listener<Events[EventName]>): this;
|
|
53
|
+
on(eventName: InternalEventNames, listener: InternalListener<Events>): this;
|
|
54
|
+
on<EventName extends keyof Events>(eventName: EventName, listener: Listener<Events[EventName]>): this;
|
|
55
|
+
once(eventName: InternalEventNames, listener: InternalListener<Events>): this;
|
|
56
|
+
once<EventName extends keyof Events>(eventName: EventName, listener: Listener<Events[EventName]>): this;
|
|
57
|
+
prependListener(eventName: InternalEventNames, listener: InternalListener<Events>): this;
|
|
58
|
+
prependListener<EventName extends keyof Events>(eventName: EventName, listener: Listener<Events[EventName]>): this;
|
|
59
|
+
prependOnceListener(eventName: InternalEventNames, listener: InternalListener<Events>): this;
|
|
60
|
+
prependOnceListener<EventName extends keyof Events>(eventName: EventName, listener: Listener<Events[EventName]>): this;
|
|
61
|
+
removeListener(eventName: InternalEventNames, listener: InternalListener<Events>): this;
|
|
62
|
+
removeListener<EventName extends keyof Events>(eventName: EventName, listener: Listener<Events[EventName]>): this;
|
|
63
|
+
off(eventName: InternalEventNames, listener: InternalListener<Events>): this;
|
|
64
|
+
off<EventName extends keyof Events>(eventName: EventName, listener: Listener<Events[EventName]>): this;
|
|
65
|
+
removeAllListeners(eventName?: InternalEventNames): this;
|
|
66
|
+
removeAllListeners<EventName extends keyof Events>(eventName?: EventName): this;
|
|
67
|
+
listeners(eventName: InternalEventNames): Array<Listener<any>>;
|
|
68
|
+
listeners<EventName extends keyof Events>(eventName: EventName): Array<Listener<Events[EventName]>>;
|
|
69
|
+
listenerCount(eventName: InternalEventNames): number;
|
|
70
|
+
listenerCount<EventName extends keyof Events>(eventName: EventName): number;
|
|
71
|
+
rawListeners<EventName extends keyof Events>(eventName: EventName): Array<Listener<Events[EventName]>>;
|
|
72
|
+
}
|
|
2
73
|
|
|
3
74
|
declare enum DismissReason {
|
|
4
75
|
Closed = "close.click",
|
|
@@ -82,6 +153,7 @@ declare const enum TaskStatus {
|
|
|
82
153
|
Completed = "completed"
|
|
83
154
|
}
|
|
84
155
|
declare const enum SprigRecordingEventData {
|
|
156
|
+
ScreenPermissionRequested = "screen.permission.requested",
|
|
85
157
|
PermissionDescriptors = "permission.descriptors",
|
|
86
158
|
PermissionStatusCallback = "permission.status.callback",
|
|
87
159
|
StreamReadyCallback = "stream.ready.callback",
|
|
@@ -232,6 +304,7 @@ interface ScreenTaskPage extends BaseTaskPage {
|
|
|
232
304
|
}
|
|
233
305
|
interface StartTaskPage extends BaseTaskPage {
|
|
234
306
|
captionText?: string;
|
|
307
|
+
skipButtonText: string;
|
|
235
308
|
taskDetail: string;
|
|
236
309
|
type: RecordedTaskPageType.StartTask;
|
|
237
310
|
}
|
|
@@ -400,81 +473,107 @@ interface RecordedTaskResponseType {
|
|
|
400
473
|
value: RecordedTaskResponseValueType;
|
|
401
474
|
}
|
|
402
475
|
|
|
403
|
-
|
|
404
|
-
[InternalEventName.CurrentQuestion]:
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
[InternalEventName.
|
|
411
|
-
[InternalEventName.
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
476
|
+
declare type SprigEventMap = {
|
|
477
|
+
[InternalEventName.CurrentQuestion]: [
|
|
478
|
+
{
|
|
479
|
+
[InternalEventData.QuestionId]: number;
|
|
480
|
+
[InternalEventData.Props]: unknown;
|
|
481
|
+
}
|
|
482
|
+
];
|
|
483
|
+
[InternalEventName.RecordedTaskPermissionScreen]: [];
|
|
484
|
+
[InternalEventName.RecordedTaskStart]: [];
|
|
485
|
+
[InternalEventName.SurveyComplete]: [];
|
|
486
|
+
[InternalEventName.VerifyViewVersion]: [
|
|
487
|
+
{
|
|
488
|
+
[InternalEventData.ViewVersion]: string;
|
|
489
|
+
}
|
|
490
|
+
];
|
|
491
|
+
[SprigEvent.CloseSurveyOnOverlayClick]: [];
|
|
492
|
+
[SprigEvent.SDKReady]: [];
|
|
493
|
+
[SprigEvent.SurveyAppeared]: [];
|
|
494
|
+
[SprigEvent.SurveyDimensions]: [
|
|
495
|
+
{
|
|
496
|
+
contentFrameHeight: number;
|
|
497
|
+
contentFrameWidth: number;
|
|
498
|
+
name: string;
|
|
499
|
+
}
|
|
500
|
+
];
|
|
501
|
+
[SprigEvent.SurveyClosed]: [
|
|
502
|
+
{
|
|
503
|
+
initiator?: string;
|
|
504
|
+
name: string;
|
|
505
|
+
}
|
|
506
|
+
];
|
|
507
|
+
[SprigEvent.SurveyFadingOut]: [];
|
|
508
|
+
[SprigEvent.SurveyHeight]: [
|
|
509
|
+
{
|
|
510
|
+
name: string;
|
|
511
|
+
contentFrameHeight: number;
|
|
512
|
+
}
|
|
513
|
+
];
|
|
514
|
+
[SprigEvent.SurveyLifeCycle]: [{
|
|
432
515
|
state: string;
|
|
433
|
-
}
|
|
434
|
-
[SprigEvent.SurveyPresented]:
|
|
435
|
-
name: string;
|
|
436
|
-
}) => void;
|
|
437
|
-
[SprigEvent.SurveyWillClose]: (data: {
|
|
438
|
-
initiator: DismissReason;
|
|
439
|
-
name?: string;
|
|
440
|
-
}) => void;
|
|
441
|
-
[SprigEvent.SurveyWillPresent]: (data: {
|
|
516
|
+
}];
|
|
517
|
+
[SprigEvent.SurveyPresented]: [{
|
|
442
518
|
name: string;
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
519
|
+
}];
|
|
520
|
+
[SprigEvent.SurveyWillClose]: [
|
|
521
|
+
{
|
|
522
|
+
initiator: DismissReason;
|
|
523
|
+
name?: string;
|
|
524
|
+
}
|
|
525
|
+
];
|
|
526
|
+
[SprigEvent.SurveyWillPresent]: [
|
|
527
|
+
{
|
|
528
|
+
name: string;
|
|
529
|
+
"survey.id": number;
|
|
530
|
+
}
|
|
531
|
+
];
|
|
532
|
+
[SprigEvent.VisitorIDUpdated]: [{
|
|
446
533
|
visitorId: string | null;
|
|
447
|
-
}
|
|
448
|
-
[SprigRecordingEvent.AvPermission]:
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
534
|
+
}];
|
|
535
|
+
[SprigRecordingEvent.AvPermission]: [
|
|
536
|
+
{
|
|
537
|
+
[SprigRecordingEventData.StreamCanceledCallback]: () => void;
|
|
538
|
+
[SprigRecordingEventData.StreamReadyCallback]: (avStream: MediaStream | null, captureStream?: MediaStream | null) => void;
|
|
539
|
+
[SprigRecordingEventData.PermissionDescriptors]: AvPermission[];
|
|
540
|
+
}
|
|
541
|
+
];
|
|
542
|
+
[SprigRecordingEvent.BeginRecording]: [
|
|
543
|
+
{
|
|
544
|
+
[SprigRecordingEventData.RecordingMediaTypes]: MediaType[];
|
|
545
|
+
[SprigRecordingEventData.StartRecordingCallback]: (mediaRecordingUids: UUID[]) => void;
|
|
546
|
+
}
|
|
547
|
+
];
|
|
548
|
+
[SprigRecordingEvent.FinishTask]: [
|
|
549
|
+
{
|
|
550
|
+
[SprigRecordingEventData.BeginCallback]: (mediaRecordingUid: UUID) => void;
|
|
551
|
+
[SprigRecordingEventData.CurrentIndex]: number;
|
|
552
|
+
[SprigRecordingEventData.PassthroughData]: PassthroughData;
|
|
553
|
+
[SprigRecordingEventData.ProgressCallback]: (mediaRecordingUid: UUID, data: {
|
|
554
|
+
detail: number;
|
|
555
|
+
}) => void;
|
|
556
|
+
[SprigRecordingEventData.TaskCompleteCallback]: (taskDurationMillisecond: number) => void;
|
|
557
|
+
[SprigRecordingEventData.TaskResponse]: RecordedTaskResponseType;
|
|
558
|
+
[SprigRecordingEventData.UploadCallback]: (mediaRecordingUid: UUID | null, successOrError: true | unknown) => void;
|
|
559
|
+
}
|
|
560
|
+
];
|
|
561
|
+
[SprigRecordingEvent.PermissionStatus]: [
|
|
562
|
+
{
|
|
563
|
+
[SprigRecordingEventData.PermissionStatusCallback]: (avStream: MediaStream | undefined, hasVideoPermission: boolean, hasScreenPermission: boolean) => void;
|
|
564
|
+
}
|
|
565
|
+
];
|
|
566
|
+
[SprigRecordingEvent.ScreenPermission]: [
|
|
567
|
+
{
|
|
568
|
+
[SprigRecordingEventData.ScreenPermissionRequested]?: (data: boolean) => void;
|
|
569
|
+
[SprigRecordingEventData.StreamCanceledCallback]: () => void;
|
|
570
|
+
[SprigRecordingEventData.StreamReadyCallback]: (avStream: MediaStream | null, captureStream: MediaStream | null) => void;
|
|
571
|
+
}
|
|
572
|
+
];
|
|
573
|
+
[SprigRecordingEvent.StartTask]: [];
|
|
574
|
+
};
|
|
575
|
+
declare const eventEmitter: Emitter<SprigEventMap>;
|
|
576
|
+
declare type SprigEventEmitter = typeof eventEmitter;
|
|
478
577
|
|
|
479
578
|
declare type MatchType = "exactly" | "legacy";
|
|
480
579
|
interface InteractiveEvent {
|
|
@@ -733,6 +832,7 @@ declare namespace sprigConfig {
|
|
|
733
832
|
eventName?: string;
|
|
734
833
|
properties?: SprigProperties;
|
|
735
834
|
userId?: string;
|
|
835
|
+
showSurveyCallback?: (surveyId: number) => Promise<boolean>;
|
|
736
836
|
}
|
|
737
837
|
|
|
738
838
|
interface SprigAPIActions {
|
|
@@ -741,12 +841,12 @@ declare namespace sprigConfig {
|
|
|
741
841
|
addListener: (event: SprigEvent, listener: SprigListener) => Promise<void>;
|
|
742
842
|
addSurveyListener: (listener: SprigListener) => Promise<void>;
|
|
743
843
|
applyStyles: (styleString: string) => void;
|
|
844
|
+
dismissActiveSurvey: (reason?: DismissReason) => void;
|
|
744
845
|
displaySurvey: (surveyId: number) => Promise<{
|
|
745
846
|
success: boolean;
|
|
746
847
|
message?: string;
|
|
747
848
|
surveyState: SurveyState;
|
|
748
849
|
}>;
|
|
749
|
-
dismissActiveSurvey: (reason?: DismissReason) => void;
|
|
750
850
|
identifyAndSetAttributes: (payload: {
|
|
751
851
|
anonymousId?: string;
|
|
752
852
|
attributes?: SprigAttributes;
|
|
@@ -755,10 +855,10 @@ declare namespace sprigConfig {
|
|
|
755
855
|
identifyAndTrack: (payload: TrackPayload) => IdentifyResult;
|
|
756
856
|
integrateOptimizely: (strData: string) => void;
|
|
757
857
|
logoutUser: () => void;
|
|
758
|
-
mute: () =>
|
|
759
|
-
removeAttributes: (attributes: SprigAttributes) => IdentifyResult;
|
|
858
|
+
mute: () => void;
|
|
760
859
|
previewSurvey: (surveyTemplateId: UUID) => void;
|
|
761
860
|
removeAllListeners: () => Promise<void>;
|
|
861
|
+
removeAttributes: (attributes: SprigAttributes) => IdentifyResult;
|
|
762
862
|
removeListener: (
|
|
763
863
|
event: SprigEvent,
|
|
764
864
|
listener: SprigListener
|
|
@@ -786,13 +886,21 @@ declare namespace sprigConfig {
|
|
|
786
886
|
track: (
|
|
787
887
|
eventName: string,
|
|
788
888
|
properties?: TrackPayload["properties"],
|
|
789
|
-
metadata?: SprigMetadata
|
|
889
|
+
metadata?: SprigMetadata,
|
|
890
|
+
showSurveyCallback?: (surveyId: number) => Promise<boolean>
|
|
790
891
|
) => IdentifyResult;
|
|
791
|
-
unmute: (
|
|
892
|
+
unmute: () => void;
|
|
792
893
|
}
|
|
793
894
|
|
|
895
|
+
type SprigCommand = keyof SprigAPIActions;
|
|
896
|
+
type SprigCommands = <C extends SprigCommand>(
|
|
897
|
+
command: C,
|
|
898
|
+
...params: Parameters<SprigAPIActions[C]>
|
|
899
|
+
) => ReturnType<SprigAPIActions[C]>;
|
|
900
|
+
|
|
794
901
|
type WindowSprig = Config &
|
|
795
|
-
SprigAPIActions &
|
|
902
|
+
SprigAPIActions &
|
|
903
|
+
SprigCommands & {
|
|
796
904
|
_API_URL: string;
|
|
797
905
|
_config: Config;
|
|
798
906
|
_gtm: unknown; // TODO: determine if boolean?
|
|
@@ -823,60 +931,17 @@ declare namespace sprigConfig {
|
|
|
823
931
|
height: number;
|
|
824
932
|
width: number;
|
|
825
933
|
};
|
|
826
|
-
}
|
|
827
|
-
((name: "_reviewSurvey", surveyId: number) => void) &
|
|
828
|
-
((name: "addListener", event: string, listener: SprigListener) => void) &
|
|
829
|
-
((name: "applyStyles", styles: string) => void) &
|
|
830
|
-
((name: "dismissActiveSurvey", reason?: DismissReason) => void) &
|
|
831
|
-
((name: "displaySurvey", surveyId: number) => void) &
|
|
832
|
-
((
|
|
833
|
-
name: "identifyAndSetAttributes",
|
|
834
|
-
payload: {
|
|
835
|
-
anonymousID?: string;
|
|
836
|
-
attributes: SprigAttributes;
|
|
837
|
-
userID?: string;
|
|
838
|
-
}
|
|
839
|
-
) => void) &
|
|
840
|
-
((
|
|
841
|
-
name: "identifyAndTrack",
|
|
842
|
-
payload: {
|
|
843
|
-
anonymousId?: string;
|
|
844
|
-
eventName: string;
|
|
845
|
-
metadata?: SprigMetadata;
|
|
846
|
-
userId?: string;
|
|
847
|
-
}
|
|
848
|
-
) => void) &
|
|
849
|
-
((name: "logoutUser") => void) &
|
|
850
|
-
((name: "mute") => void) &
|
|
851
|
-
((name: "previewSurvey", surveyTemplateId: string) => void) &
|
|
852
|
-
((name: "removeAllListeners") => void) &
|
|
853
|
-
((name: "removeAttributes", attributes: SprigAttributes) => void) &
|
|
854
|
-
((name: "removeListener", event: string, listener: SprigListener) => void) &
|
|
855
|
-
((name: "reviewSurvey", surveyId: number) => void) &
|
|
856
|
-
((name: "setAttribute", attribute: string, value: string) => void) &
|
|
857
|
-
((name: "setAttributes", attributes: SprigAttributes) => void) &
|
|
858
|
-
((name: "setPartnerAnonymousId", partnerAnonymousId: string) => void) &
|
|
859
|
-
((name: "setUserId", userId: string) => void) &
|
|
860
|
-
((
|
|
861
|
-
name: "setWindowDimensions",
|
|
862
|
-
width: number | string,
|
|
863
|
-
height: number | string
|
|
864
|
-
) => void) &
|
|
865
|
-
((name: "teardown") => void) &
|
|
866
|
-
((
|
|
867
|
-
name: "track",
|
|
868
|
-
eventName: string,
|
|
869
|
-
properties?: SprigProperties,
|
|
870
|
-
metadata?: SprigMetadata
|
|
871
|
-
) => void) &
|
|
872
|
-
((name: "unmute") => void);
|
|
934
|
+
};
|
|
873
935
|
}
|
|
874
936
|
|
|
875
937
|
declare global {
|
|
876
938
|
interface Window {
|
|
877
939
|
__cfg: Config;
|
|
878
940
|
attachEvent?: typeof window.addEventListener;
|
|
879
|
-
Intercom:
|
|
941
|
+
Intercom: { ul_wasVisible?: boolean } & ((
|
|
942
|
+
method: string,
|
|
943
|
+
data: unknown
|
|
944
|
+
) => void);
|
|
880
945
|
optimizely?: optimizely.Optimizely;
|
|
881
946
|
previewMode?: unknown;
|
|
882
947
|
UpChunk: upchunk.UpChunkModule;
|
|
@@ -887,7 +952,7 @@ declare global {
|
|
|
887
952
|
|
|
888
953
|
type WindowSprig = sprigConfig.WindowSprig;
|
|
889
954
|
type SprigAttributes = Record<string, boolean | number | string>;
|
|
890
|
-
type SprigListener =
|
|
955
|
+
type SprigListener = Listener<unknown[]>;
|
|
891
956
|
type SprigMetadata = Record<string, unknown>;
|
|
892
957
|
type SprigProperties = Record<string, unknown>;
|
|
893
958
|
type SprigAPIActions = sprigConfig.SprigAPIActions;
|
|
@@ -928,7 +993,6 @@ declare class SprigAPI {
|
|
|
928
993
|
};
|
|
929
994
|
/**
|
|
930
995
|
* Triggers displaying specified survey. Does submit answers!
|
|
931
|
-
* @returns
|
|
932
996
|
*/
|
|
933
997
|
displaySurvey(surveyId: number): void;
|
|
934
998
|
/**
|
|
@@ -966,11 +1030,11 @@ declare class SprigAPI {
|
|
|
966
1030
|
/**
|
|
967
1031
|
* Add a listener for an event defined in ulEvents
|
|
968
1032
|
*/
|
|
969
|
-
addListener(event:
|
|
1033
|
+
addListener(event: SprigEvent, listener: SprigListener): void;
|
|
970
1034
|
/**
|
|
971
1035
|
* Remove a listener for an event defined in ulEvents
|
|
972
1036
|
*/
|
|
973
|
-
removeListener(event:
|
|
1037
|
+
removeListener(event: SprigEvent, listener: SprigListener): void;
|
|
974
1038
|
/**
|
|
975
1039
|
* Remove all listeners set on Sprig
|
|
976
1040
|
*/
|
|
@@ -1046,4 +1110,4 @@ declare const _default: {
|
|
|
1046
1110
|
configure: (config: NpmConfig) => sprigConfig.WindowSprig;
|
|
1047
1111
|
};
|
|
1048
1112
|
|
|
1049
|
-
export { DismissReason, SprigAPI, WindowSprig$1 as WindowSprig, _default as default, sprig };
|
|
1113
|
+
export { DismissReason, SprigAPI, SprigEvent, WindowSprig$1 as WindowSprig, _default as default, sprig };
|