@uniformdev/context-vue 16.0.1-nuxt.166 → 16.0.1-nuxt.187

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.ts CHANGED
@@ -1,49 +1,47 @@
1
1
  import * as vue_demi from 'vue-demi';
2
- import { Component, InjectionKey, provide } from 'vue-demi';
3
- import { TestVariant, EdgeTestComponentOptions, Context } from '@uniformdev/context';
4
-
5
- declare const Test: Component;
6
-
7
- declare const UniformContextProvider: Component;
8
-
9
- declare const Personalize: Component;
10
-
11
- declare const PersonalizeStandard: Component;
12
-
13
- declare const Track: Component;
14
-
15
- /**
16
- * Tracks visitor behavior by adding enrichment score when they are shown a route with this component on it.
17
- *
18
- * NOTE: if you wish to track on the visitor seeing the content in the browser viewport instead,
19
- * use Track instead of TrackFragment.
20
- */
21
-
22
- declare const TrackSlot: Component;
2
+ import { ConcreteComponent, PropType } from 'vue-demi';
3
+ import { TestVariant, Context, PersonalizedVariant, EnrichmentData, Quirks, ScoreVector } from '@uniformdev/context';
4
+ import * as _uniformdev_context_dist_types_17d56dd5 from '@uniformdev/context/dist/types-17d56dd5';
23
5
 
24
6
  interface TestComponentProps {
25
7
  /** Name of the test that is running. */
26
8
  name: string;
27
9
  /** Variation list that this test will selected from. */
28
10
  variations: TestVariant[];
29
- /**
30
- * Determines what should be rendered if testing is in a "loading" state.
31
- * default: shows the default variation while loading
32
- * none: shows nothing while loading
33
- * Vue component: shows the component while loading
34
- */
35
- loadingMode?: 'default' | 'none' | Component;
36
11
  /** A Vue component to use to render the test variant. */
37
- component?: Component<TestVariant>;
12
+ component: ConcreteComponent<TestVariant>;
38
13
  }
39
- declare type TestEdgeComponentProps = Omit<TestComponentProps, 'selectedVariantId'>;
40
- declare type EdgeTestListComponentOptions<TVariation extends TestVariant> = {
41
- components?: Component<TVariation>[];
42
- variations: TVariation[];
43
- options: EdgeTestComponentOptions;
44
- };
14
+ declare const Test: vue_demi.DefineComponent<{
15
+ name: {
16
+ type: PropType<string>;
17
+ required: true;
18
+ };
19
+ variations: {
20
+ type: PropType<TestVariant[]>;
21
+ required: true;
22
+ };
23
+ component: {
24
+ type: PropType<ConcreteComponent<TestVariant, any, any, vue_demi.ComputedOptions, vue_demi.MethodOptions>>;
25
+ required: true;
26
+ };
27
+ }, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
28
+ [key: string]: any;
29
+ }>, unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, Record<string, any>, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{
30
+ name: {
31
+ type: PropType<string>;
32
+ required: true;
33
+ };
34
+ variations: {
35
+ type: PropType<TestVariant[]>;
36
+ required: true;
37
+ };
38
+ component: {
39
+ type: PropType<ConcreteComponent<TestVariant, any, any, vue_demi.ComputedOptions, vue_demi.MethodOptions>>;
40
+ required: true;
41
+ };
42
+ }>>, {}>;
45
43
 
46
- declare type VariantOutputType = 'edge' | 'standard' | undefined;
44
+ declare type VariantOutputType = 'edge' | 'standard';
47
45
  declare type UniformContextProps = {
48
46
  /** The configured Uniform Context instance to provide */
49
47
  context: Context;
@@ -61,14 +59,219 @@ declare type UniformContextProps = {
61
59
  */
62
60
  trackRouteOnRender?: boolean;
63
61
  };
64
- declare const uniformContextInjectionKey: InjectionKey<UniformContextProps>;
65
- declare const provideUniformContext: ({ context, outputType, trackRouteOnRender, vueAppProvide, }: UniformContextProps & {
66
- vueAppProvide?: typeof provide | undefined;
62
+ declare const uniformContextInjectionKey = "uniformContextInjectionKey";
63
+ declare const provideUniformContext: ({ context, outputType, trackRouteOnRender, vueAppInstance, }: UniformContextProps & {
64
+ vueAppInstance?: vue_demi.App<any> | undefined;
67
65
  }) => void;
68
66
  declare function onRouteChange(context: Context): void;
69
67
  declare const useUniformContext: () => UniformContextProps;
70
68
  declare function isUsingUniformContext(): boolean;
71
69
 
70
+ declare const UniformContextProvider: vue_demi.DefineComponent<{
71
+ context: {
72
+ type: PropType<Context>;
73
+ required: true;
74
+ };
75
+ outputType: {
76
+ type: PropType<VariantOutputType | undefined>;
77
+ default: string;
78
+ };
79
+ trackRouteOnRender: {
80
+ type: PropType<boolean | undefined>;
81
+ default: boolean;
82
+ };
83
+ }, () => (vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
84
+ [key: string]: any;
85
+ }> | (() => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
86
+ [key: string]: any;
87
+ }>))[], unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, Record<string, any>, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{
88
+ context: {
89
+ type: PropType<Context>;
90
+ required: true;
91
+ };
92
+ outputType: {
93
+ type: PropType<VariantOutputType | undefined>;
94
+ default: string;
95
+ };
96
+ trackRouteOnRender: {
97
+ type: PropType<boolean | undefined>;
98
+ default: boolean;
99
+ };
100
+ }>>, {
101
+ outputType: VariantOutputType | undefined;
102
+ trackRouteOnRender: boolean | undefined;
103
+ }>;
104
+
105
+ declare type PersonalizedVariationComponentProps = PersonalizedVariant & {
106
+ personalizationResult: {
107
+ variation: PersonalizedVariant;
108
+ personalizationOccurred: boolean;
109
+ };
110
+ };
111
+ declare type PersonalizedVariationComponent = (variation: PersonalizedVariationComponentProps) => ConcreteComponent<any>;
112
+ declare type PersonalizeComponentProps = {
113
+ /**
114
+ * Name of the personalized placement. Should be unique to this placement location and set of variants.
115
+ * This name is emitted to analytics after personalization executes.
116
+ */
117
+ name: string;
118
+ /** The possible variations of the content to render depending on personalization conditions */
119
+ variations: PersonalizedVariant[];
120
+ /** A Vue component to use to render a selected variant. */
121
+ component: PersonalizedVariationComponent;
122
+ /** The number of variations to select. Use for personalized lists where the `count` most relevant should be shown. */
123
+ count?: number;
124
+ };
125
+ declare const Personalize: vue_demi.DefineComponent<{
126
+ name: {
127
+ type: PropType<string>;
128
+ required: true;
129
+ };
130
+ variations: {
131
+ type: PropType<PersonalizedVariant[]>;
132
+ required: true;
133
+ };
134
+ component: {
135
+ type: PropType<PersonalizedVariationComponent>;
136
+ required: true;
137
+ };
138
+ count: {
139
+ type: PropType<number | undefined>;
140
+ default: number;
141
+ };
142
+ }, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
143
+ [key: string]: any;
144
+ }>, unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, Record<string, any>, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{
145
+ name: {
146
+ type: PropType<string>;
147
+ required: true;
148
+ };
149
+ variations: {
150
+ type: PropType<PersonalizedVariant[]>;
151
+ required: true;
152
+ };
153
+ component: {
154
+ type: PropType<PersonalizedVariationComponent>;
155
+ required: true;
156
+ };
157
+ count: {
158
+ type: PropType<number | undefined>;
159
+ default: number;
160
+ };
161
+ }>>, {
162
+ count: number | undefined;
163
+ }>;
164
+
165
+ declare const PersonalizeStandard: vue_demi.DefineComponent<{
166
+ name: {
167
+ type: PropType<string>;
168
+ required: true;
169
+ };
170
+ variations: {
171
+ type: PropType<_uniformdev_context_dist_types_17d56dd5.ad[]>;
172
+ required: true;
173
+ };
174
+ component: {
175
+ type: PropType<PersonalizedVariationComponent>;
176
+ required: true;
177
+ };
178
+ count: {
179
+ type: PropType<number | undefined>;
180
+ default: number;
181
+ };
182
+ }, () => (vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
183
+ [key: string]: any;
184
+ }> | vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
185
+ [key: string]: any;
186
+ }>[][])[], unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, Record<string, any>, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{
187
+ name: {
188
+ type: PropType<string>;
189
+ required: true;
190
+ };
191
+ variations: {
192
+ type: PropType<_uniformdev_context_dist_types_17d56dd5.ad[]>;
193
+ required: true;
194
+ };
195
+ component: {
196
+ type: PropType<PersonalizedVariationComponent>;
197
+ required: true;
198
+ };
199
+ count: {
200
+ type: PropType<number | undefined>;
201
+ default: number;
202
+ };
203
+ }>>, {
204
+ count: number | undefined;
205
+ }>;
206
+
207
+ /**
208
+ * Tracks visitor behavior by adding enrichment score when they view content wrapped in this component.
209
+ * When the Track component is sufficiently in the viewport, it will trigger the enrichment values specified
210
+ * in `behavior` to the current visitor. If the browser does not support IntersectionObserver, the behavior will
211
+ * be triggered immediately on page load instead.
212
+ *
213
+ * NOTE: this component necessarily renders a wrapping tag to attach the IntersectionObserver to; this can result
214
+ * in DOM changes when personalization is added. If that's undesirable use TrackSlot instead which tracks
215
+ * only on page load, but does not render a wrapping tag.
216
+ */
217
+ declare const Track: vue_demi.DefineComponent<{
218
+ behavior: {
219
+ type: PropType<EnrichmentData | EnrichmentData[] | undefined>;
220
+ };
221
+ tagName: {
222
+ type: PropType<string | undefined>;
223
+ default: string;
224
+ };
225
+ disableVisibilityTrigger: {
226
+ type: PropType<boolean | undefined>;
227
+ default: boolean;
228
+ };
229
+ threshold: {
230
+ type: PropType<number | number[] | undefined>;
231
+ default: number;
232
+ };
233
+ }, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
234
+ [key: string]: any;
235
+ }>, unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, Record<string, any>, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{
236
+ behavior: {
237
+ type: PropType<EnrichmentData | EnrichmentData[] | undefined>;
238
+ };
239
+ tagName: {
240
+ type: PropType<string | undefined>;
241
+ default: string;
242
+ };
243
+ disableVisibilityTrigger: {
244
+ type: PropType<boolean | undefined>;
245
+ default: boolean;
246
+ };
247
+ threshold: {
248
+ type: PropType<number | number[] | undefined>;
249
+ default: number;
250
+ };
251
+ }>>, {
252
+ tagName: string | undefined;
253
+ disableVisibilityTrigger: boolean | undefined;
254
+ threshold: number | number[] | undefined;
255
+ }>;
256
+
257
+ /**
258
+ * Tracks visitor behavior by adding enrichment score when they are shown a route with this component on it.
259
+ *
260
+ * NOTE: if you wish to track on the visitor seeing the content in the browser viewport instead,
261
+ * use Track instead of TrackFragment.
262
+ */
263
+ declare const TrackSlot: vue_demi.DefineComponent<{
264
+ behavior: {
265
+ type: PropType<EnrichmentData | EnrichmentData[] | undefined>;
266
+ };
267
+ }, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
268
+ [key: string]: any;
269
+ }>, unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, Record<string, any>, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{
270
+ behavior: {
271
+ type: PropType<EnrichmentData | EnrichmentData[] | undefined>;
272
+ };
273
+ }>>, {}>;
274
+
72
275
  declare const provideIsPersonalized: (isPersonalized?: boolean) => void;
73
276
  declare const useIsPersonalized: () => boolean;
74
277
 
@@ -76,16 +279,12 @@ declare const useIsPersonalized: () => boolean;
76
279
  * Provides reactive access to the Uniform Context's current visitor quirks values
77
280
  * This can be used when you want to read current quirk values directly.
78
281
  */
79
- declare const useQuirks: () => vue_demi.Ref<{
80
- [x: string]: string;
81
- }>;
282
+ declare const useQuirks: () => vue_demi.Ref<Quirks>;
82
283
 
83
284
  /**
84
285
  * Provides reactive access to the Uniform Context's current visitor scores values.
85
286
  * This can be used when you want to read current score values directly.
86
287
  */
87
- declare const useScores: () => vue_demi.Ref<{
88
- [x: string]: number;
89
- }>;
288
+ declare const useScores: () => vue_demi.Ref<ScoreVector>;
90
289
 
91
- export { EdgeTestListComponentOptions, Personalize, PersonalizeStandard as PersonalizeEdge, Test, TestComponentProps, TestEdgeComponentProps, Track, TrackSlot, UniformContextProps, UniformContextProvider, VariantOutputType, isUsingUniformContext, onRouteChange, provideIsPersonalized, provideUniformContext, uniformContextInjectionKey, useIsPersonalized, useQuirks, useScores, useUniformContext };
290
+ export { Personalize, PersonalizeComponentProps, PersonalizeStandard as PersonalizeEdge, PersonalizedVariationComponent, PersonalizedVariationComponentProps, Test, TestComponentProps, Track, TrackSlot, UniformContextProps, UniformContextProvider, VariantOutputType, isUsingUniformContext, onRouteChange, provideIsPersonalized, provideUniformContext, uniformContextInjectionKey, useIsPersonalized, useQuirks, useScores, useUniformContext };
package/dist/index.esm.js CHANGED
@@ -1 +1 @@
1
- "use strict";import{defineComponent as Y,h as Z,computed as ee}from"vue-demi";var d=typeof window=="undefined";import{defineComponent as J,h as $,toRaw as R}from"vue-demi";import{inject as A,provide as _}from"vue-demi";import{parse as K}from"cookie-es";var P=Symbol("uniformContextInjectionKey"),g=({context:e,outputType:o="standard",trackRouteOnRender:t=!0,vueAppProvide:n=_})=>{n(P,{context:e,outputType:o}),!d&&t&&I(e)};function I(e){e.update({url:new URL(window.location.href),cookies:K(document.cookie)})}var r=()=>{let e=A(P);if(!e)throw Error("Could not inject Uniform's Context, make sure you're using <UniformContextProvider /> or the Nuxt module.");return e};function Q(){return Boolean(A(P))}var G=J({name:"TestStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},loadingMode:{type:String,default:"default"},component:{type:[Object,Function],default:null}},setup(e){let{context:o}=r(),{result:t}=o.test({name:R(e.name),variations:R(e.variations)});return t?()=>$(e.component,{...t}):null}}),q=G;import{defineComponent as W,h as l}from"vue-demi";import{ScriptType as C,EdgeNodeTagName as T}from"@uniformdev/context";var X=W({name:"TestEdge",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},loadingMode:{type:String,default:"default"},component:{type:[Object,Function],default:null}},setup(e){let o={name:e.name};return()=>[l(T,{"data-type":C.TestStart,innerHTML:JSON.stringify(o)}),e.variations.map(t=>[l(T,{"data-type":C.ListItemSettings,key:`LIS-${t.id}`,innerHTML:JSON.stringify({id:t.id})}),l(T,{"data-type":C.ListItem,key:`LI-${t.id}`},l(e.component,{...t}))]),l(T,{"data-type":C.TestEnd})]}}),w=X;var oe=Y({name:"Test",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},loadingMode:{type:String,default:"default"},component:{type:[Object,Function],default:null}},setup(e){let{outputType:o}=r(),t=ee(()=>!d||o==="standard"?q:w);return()=>Z(t.value,{...e})}}),te=oe;import{defineComponent as ne,h as re}from"vue-demi";var ae=ne({name:"UniformContextProvider",inheritAttrs:!1,props:{context:{type:Object,required:!0},outputType:{type:String,default:"standard"},trackRouteOnRender:{type:Boolean,default:!0}},setup(e,o){return g(e),()=>re(o.slots.default)}}),ie=ae;import{defineComponent as ge,h as be,computed as Se}from"vue-demi";import{defineComponent as ye,ref as Pe,watch as Ce,h as N,onServerPrefetch as Te,onMounted as ve,toRaw as V}from"vue-demi";import{ref as se,watchEffect as pe}from"vue-demi";import{dequal as me}from"dequal/lite";var b=()=>{let{context:e}=r(),o=se(e.scores);return pe(()=>{let t=a=>o.value=a,n=e.scores;return me(o.value,n)||(o.value=n),e.events.on("scoresUpdated",t),()=>{e.events.off("scoresUpdated",t)}}),o};import{defineComponent as le,h as ce}from"vue-demi";import{provide as ue,inject as de}from"vue-demi";var L=Symbol("uniformIsPersonalized"),S=e=>{ue(L,e)},c=()=>de(L,!1);var fe=le({name:"PersonalizeStandard",inheritAttrs:!1,props:{personalized:Boolean},setup(e,o){return S(e.personalized),()=>ce(o.slots.default,{...e})}}),j=fe;var he=ye({name:"PersonalizeStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){let{context:o}=r(),t=b(),n=()=>o.personalize({name:V(e.name),variations:V(e.variations),take:V(e.count)}),a=Pe();return Te(async()=>{a.value=n()}),ve(async()=>{a.value||(a.value=n())}),Ce([t,()=>e.name,()=>e.variations,()=>e.count],()=>{a.value=n()}),()=>N(j,{personalized:!0},()=>{var u;return(u=a.value)==null?void 0:u.variations.map(i=>{var m;return N(e.component,{key:i.id,personalizationResult:{variation:i,personalizationOccurred:(m=a.value)==null?void 0:m.personalized},...i})})})}}),M=he;import{EdgeNodeTagName as v,ScriptType as h}from"@uniformdev/context";import{defineComponent as xe,h as f}from"vue-demi";var ze=xe({name:"PersonalizeStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0},count:{type:Number,default:1}},setup(e){var t;let o={count:(t=e.count)!=null?t:1};return()=>[f(v,{"data-type":h.ListStart,innerHTML:JSON.stringify(o)}),e.variations.map(n=>[f(v,{"data-type":h.ListItemSettings,innerHTML:JSON.stringify({id:n.id,pz:n.pz||null}),key:`LIS-${n.id}`}),f(v,{"data-type":h.ListItem,key:`LI-${n.id}`},f(e.component,{personalizationResult:{variation:n,personalizationOccurred:!1},...n}))]),f(v,{"data-type":h.ListEnd})]}}),k=ze;var Ve=ge({name:"Personalize",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){let{outputType:o}=r(),t=Se(()=>!d||o==="standard"?M:k);return()=>be(t.value,{...e})}}),ke=Ve;import{defineComponent as Ue,watchEffect as H,ref as x,h as Oe,toRaw as Ee}from"vue-demi";var Ae=Ue({name:"Track",inheritAttrs:!1,props:{behavior:{type:[Object,Array]},tagName:{type:String,default:"div"},disableVisibilityTrigger:{type:Boolean,default:typeof window=="undefined"||!("IntersectionObserver"in window)},threshold:{type:[Number,Array],default:.5}},setup(e,o){let t=typeof document=="undefined"?"__uniform_ssr_url":document.location.href,{context:n}=r(),a=c(),u=x(""),i=x(!1),m=x(),s=x();return H(()=>{u.value!==t&&(u.value=t,i.value=!1)}),H(()=>{var E;let z=!e.behavior||Array.isArray(e.behavior)&&!e.behavior.length;if(a||z||!m.value)return;let F=Array.isArray(e.behavior)?e.behavior:[e.behavior],O=()=>{var p;i.value||(n.update({enrichments:Ee(F)}),i.value=!1,(p=s.value)==null||p.call(s))};if(e.disableVisibilityTrigger)O();else{(E=s.value)==null||E.call(s);let p=new IntersectionObserver(([y])=>{y.isIntersecting&&O()},{threshold:e.threshold});p.observe(m.value),s.value=()=>{var y;return(y=p.disconnect)==null?void 0:y.call(p)}}return()=>{var p;(p=s.value)==null||p.call(s)}}),()=>Oe(e.tagName,{ref:m,...o.attrs},o.slots.default())}}),Ie=Ae;import{defineComponent as Re,ref as B,watchEffect as D,h as qe,toRaw as we}from"vue-demi";var Le=Re({name:"TrackSlot",inheritAttrs:!1,props:{behavior:{type:[Object,Array]}},setup(e,o){let t=typeof document=="undefined"?"__uniform_ssr_url":document.location.href,{context:n}=r(),a=c(),u=B(),i=B(!1);return D(()=>{u.value!==t&&(u.value=t,i.value=!1)}),D(()=>{let m=!e.behavior||Array.isArray(e.behavior)&&!e.behavior.length;if(a||m)return;(()=>{if(i.value)return;let U=Array.isArray(e.behavior)?e.behavior:[e.behavior];n.update({enrichments:we(U)}),i.value=!0})()}),()=>qe(o.slots.default,{...o.attrs})}}),je=Le;import{ref as Ne,watch as Me}from"vue-demi";var He=()=>{let{context:e}=r(),o=Ne(e.quirks),t=n=>{o.value=n};return Me(e,()=>(e.events.on("quirksUpdated",t),()=>{e.events.off("quirksUpdated",t)})),o};export{ke as Personalize,k as PersonalizeEdge,te as Test,Ie as Track,je as TrackSlot,ie as UniformContextProvider,Q as isUsingUniformContext,I as onRouteChange,S as provideIsPersonalized,g as provideUniformContext,P as uniformContextInjectionKey,c as useIsPersonalized,He as useQuirks,b as useScores,r as useUniformContext};
1
+ import{defineComponent as te,h as L}from"vue-demi";var d=typeof window=="undefined";import{defineComponent as W,h as X,toRaw as V}from"vue-demi";import{inject as J,provide as K,getCurrentInstance as Q}from"vue-demi";import{parse as $}from"cookie-es";var c="uniformContextInjectionKey",g=({context:e,outputType:t="standard",trackRouteOnRender:o=!0,vueAppInstance:r})=>{let i={context:e,outputType:t};r?r.provide(c,i):K(c,i),!d&&o&&I(e)};function I(e){e==null||e.update({url:new URL(window.location.href),cookies:$(document.cookie)})}var n=()=>{let e=J(c);if(!e)throw Error("Could not inject Uniform's Context, make sure you're using <UniformContextProvider /> or the Uniform Nuxt module with a valid manifest.");return e};function G(){var t;return Boolean((t=Q())==null?void 0:t.appContext.provides[c])}var Y=W({name:"TestStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0}},setup(e){let{context:t}=n(),{result:o}=t.test({name:V(e.name),variations:V(e.variations)});return o?()=>X(e.component,{...o}):()=>null}}),q=Y;import{defineComponent as Z,h as l}from"vue-demi";import{ScriptType as T,EdgeNodeTagName as C}from"@uniformdev/context";var ee=Z({name:"TestEdge",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0}},setup(e){let t={name:e.name};return()=>[l(C,{"data-type":T.TestStart,innerHTML:JSON.stringify(t)}),e.variations.map(o=>[l(C,{"data-type":T.ListItemSettings,key:`LIS-${o.id}`,innerHTML:JSON.stringify({id:o.id})}),l(C,{"data-type":T.ListItem,key:`LI-${o.id}`},l(e.component,{...o}))]),l(C,{"data-type":T.TestEnd})]}}),w=ee;var oe=te({name:"Test",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0}},setup(e){let{outputType:t}=n();return()=>!d||t==="standard"?L(q,{...e}):L(w,{...e})}}),re=oe;import{defineComponent as ne,h as N}from"vue-demi";import{SERVER_STATE_ID as ie}from"@uniformdev/context";var ae=ne({name:"UniformContextProvider",inheritAttrs:!1,props:{context:{type:Object,required:!0},outputType:{type:String,default:"standard"},trackRouteOnRender:{type:Boolean,default:!0}},setup(e,t){return g(e),()=>[N(t.slots.default),pe(e.context)]}}),se=ae;function pe(e){let t=e.getServerToClientTransitionState();return()=>N("script",{id:ie,type:"application/json",innerHTML:JSON.stringify(t)})}import{defineComponent as ge,h as be}from"vue-demi";import{defineComponent as Te,ref as Ce,watch as ve,h as H,toRaw as U}from"vue-demi";import{ref as me,watchEffect as ue}from"vue-demi";import{dequal as de}from"dequal/lite";var b=()=>{let{context:e}=n(),t=me(e.scores);return ue(()=>{let o=i=>t.value=i,r=e.scores;return de(t.value,r)||(t.value=r),e.events.on("scoresUpdated",o),()=>{e.events.off("scoresUpdated",o)}}),t};import{defineComponent as fe,h as ye}from"vue-demi";import{provide as ce,inject as le}from"vue-demi";var R=Symbol("uniformIsPersonalized"),S=e=>{ce(R,e)},f=()=>le(R,!1);var Pe=fe({name:"PersonalizeProvider",inheritAttrs:!1,props:{personalized:Boolean},setup(e,t){return S(e.personalized),()=>ye(t.slots.default,{...e})}}),j=Pe;var xe=Te({name:"PersonalizeStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){let{context:t}=n(),o=b(),r=()=>{var a;return t.personalize({name:U(e.name),variations:U(e.variations),take:(a=U(e.count))!=null?a:1})},i=Ce(r());return ve([o,()=>e.name,()=>e.variations,()=>e.count],()=>{i.value=r()}),()=>H(j,{personalized:!0},()=>{var a;return(a=i.value)==null?void 0:a.variations.map(s=>{var u;return H(e.component,{key:s.id,personalizationResult:{variation:s,personalizationOccurred:(u=i.value)==null?void 0:u.personalized},...s})})})}}),D=xe;import{EdgeNodeTagName as v,ScriptType as x}from"@uniformdev/context";import{defineComponent as he,h as y}from"vue-demi";var ze=he({name:"PersonalizeStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){var o;let t={count:(o=e.count)!=null?o:1};return()=>[y(v,{"data-type":x.ListStart,innerHTML:JSON.stringify(t)}),e.variations.map(r=>[y(v,{"data-type":x.ListItemSettings,innerHTML:JSON.stringify({id:r.id,pz:r.pz||null}),key:`LIS-${r.id}`}),y(v,{"data-type":x.ListItem,key:`LI-${r.id}`},y(e.component,{personalizationResult:{variation:r,personalizationOccurred:!1},...r}))]),y(v,{"data-type":x.ListEnd})]}}),k=ze;var Se=ge({name:"Personalize",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){let{outputType:t}=n();return()=>be(!d||t==="standard"?D:k,{...e})}}),Ue=Se;import{defineComponent as ke,watchEffect as _,ref as h,h as Ee,toRaw as Ae}from"vue-demi";var Oe=ke({name:"Track",inheritAttrs:!1,props:{behavior:{type:[Object,Array]},tagName:{type:String,default:"div"},disableVisibilityTrigger:{type:Boolean,default:typeof window=="undefined"||!("IntersectionObserver"in window)},threshold:{type:[Number,Array],default:.5}},setup(e,t){let o=typeof document=="undefined"?"__uniform_ssr_url":document.location.href,{context:r}=n(),i=f(),a=h(""),s=h(!1),u=h(),p=h();return _(()=>{a.value!==o&&(a.value=o,s.value=!1)}),_(()=>{var O;let z=!e.behavior||Array.isArray(e.behavior)&&!e.behavior.length;if(i||z||!u.value)return;let M=Array.isArray(e.behavior)?e.behavior:[e.behavior],A=()=>{var m;s.value||(r==null||r.update({enrichments:Ae(M)}),s.value=!1,(m=p.value)==null||m.call(p))};if(e.disableVisibilityTrigger)A();else{(O=p.value)==null||O.call(p);let m=new IntersectionObserver(([P])=>{P.isIntersecting&&A()},{threshold:e.threshold});m.observe(u.value),p.value=()=>{var P;return(P=m.disconnect)==null?void 0:P.call(m)}}return()=>{var m;(m=p.value)==null||m.call(p)}}),()=>Ee(e.tagName,{ref:u,...t.attrs},t.slots.default())}}),Ie=Oe;import{defineComponent as Ve,ref as B,watchEffect as F,h as qe,toRaw as we}from"vue-demi";var Le=Ve({name:"TrackSlot",inheritAttrs:!1,props:{behavior:{type:[Object,Array]}},setup(e,t){let o=typeof document=="undefined"?"__uniform_ssr_url":document.location.href,{context:r}=n(),i=f(),a=B(),s=B(!1);return F(()=>{a.value!==o&&(a.value=o,s.value=!1)}),F(()=>{let u=!e.behavior||Array.isArray(e.behavior)&&!e.behavior.length;if(i||u)return;(()=>{if(s.value)return;let E=Array.isArray(e.behavior)?e.behavior:[e.behavior];r==null||r.update({enrichments:we(E)}),s.value=!0})()}),()=>qe(t.slots.default,{...t.attrs})}}),Ne=Le;import{ref as Re,watch as je}from"vue-demi";var He=()=>{let{context:e}=n(),t=Re(e.quirks),o=r=>{t.value=r};return je(e,()=>(e.events.on("quirksUpdated",o),()=>{e.events.off("quirksUpdated",o)})),t};export{Ue as Personalize,k as PersonalizeEdge,re as Test,Ie as Track,Ne as TrackSlot,se as UniformContextProvider,G as isUsingUniformContext,I as onRouteChange,S as provideIsPersonalized,g as provideUniformContext,c as uniformContextInjectionKey,f as useIsPersonalized,He as useQuirks,b as useScores,n as useUniformContext};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var L=Object.defineProperty;var te=Object.getOwnPropertyDescriptor;var ne=Object.getOwnPropertyNames;var re=Object.prototype.hasOwnProperty;var ae=(e,o)=>{for(var t in o)L(e,t,{get:o[t],enumerable:!0})},ie=(e,o,t,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of ne(o))!re.call(e,r)&&r!==t&&L(e,r,{get:()=>o[r],enumerable:!(n=te(o,r))||n.enumerable});return e};var se=e=>ie(L({},"__esModule",{value:!0}),e);var Te={};ae(Te,{Personalize:()=>X,PersonalizeEdge:()=>R,Test:()=>K,Track:()=>Y,TrackSlot:()=>Z,UniformContextProvider:()=>Q,isUsingUniformContext:()=>D,onRouteChange:()=>j,provideIsPersonalized:()=>A,provideUniformContext:()=>V,uniformContextInjectionKey:()=>b,useIsPersonalized:()=>x,useQuirks:()=>ee,useScores:()=>O,useUniformContext:()=>a});module.exports=se(Te);var h=require("vue-demi");var v=typeof window=="undefined";var T=require("vue-demi");var g=require("vue-demi");var B=require("cookie-es"),b=Symbol("uniformContextInjectionKey"),V=({context:e,outputType:o="standard",trackRouteOnRender:t=!0,vueAppProvide:n=g.provide})=>{n(b,{context:e,outputType:o}),!v&&t&&j(e)};function j(e){e.update({url:new URL(window.location.href),cookies:(0,B.parse)(document.cookie)})}var a=()=>{let e=(0,g.inject)(b);if(!e)throw Error("Could not inject Uniform's Context, make sure you're using <UniformContextProvider /> or the Nuxt module.");return e};function D(){return Boolean((0,g.inject)(b))}var pe=(0,T.defineComponent)({name:"TestStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},loadingMode:{type:String,default:"default"},component:{type:[Object,Function],default:null}},setup(e){let{context:o}=a(),{result:t}=o.test({name:(0,T.toRaw)(e.name),variations:(0,T.toRaw)(e.variations)});return t?()=>(0,T.h)(e.component,{...t}):null}}),F=pe;var P=require("vue-demi"),l=require("@uniformdev/context"),me=(0,P.defineComponent)({name:"TestEdge",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},loadingMode:{type:String,default:"default"},component:{type:[Object,Function],default:null}},setup(e){let o={name:e.name};return()=>[(0,P.h)(l.EdgeNodeTagName,{"data-type":l.ScriptType.TestStart,innerHTML:JSON.stringify(o)}),e.variations.map(t=>[(0,P.h)(l.EdgeNodeTagName,{"data-type":l.ScriptType.ListItemSettings,key:`LIS-${t.id}`,innerHTML:JSON.stringify({id:t.id})}),(0,P.h)(l.EdgeNodeTagName,{"data-type":l.ScriptType.ListItem,key:`LI-${t.id}`},(0,P.h)(e.component,{...t}))]),(0,P.h)(l.EdgeNodeTagName,{"data-type":l.ScriptType.TestEnd})]}}),_=me;var ue=(0,h.defineComponent)({name:"Test",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},loadingMode:{type:String,default:"default"},component:{type:[Object,Function],default:null}},setup(e){let{outputType:o}=a(),t=(0,h.computed)(()=>!v||o==="standard"?F:_);return()=>(0,h.h)(t.value,{...e})}}),K=ue;var k=require("vue-demi");var de=(0,k.defineComponent)({name:"UniformContextProvider",inheritAttrs:!1,props:{context:{type:Object,required:!0},outputType:{type:String,default:"standard"},trackRouteOnRender:{type:Boolean,default:!0}},setup(e,o){return V(e),()=>(0,k.h)(o.slots.default)}}),Q=de;var z=require("vue-demi");var i=require("vue-demi");var U=require("vue-demi");var J=require("dequal/lite"),O=()=>{let{context:e}=a(),o=(0,U.ref)(e.scores);return(0,U.watchEffect)(()=>{let t=r=>o.value=r,n=e.scores;return(0,J.dequal)(o.value,n)||(o.value=n),e.events.on("scoresUpdated",t),()=>{e.events.off("scoresUpdated",t)}}),o};var I=require("vue-demi");var E=require("vue-demi"),$=Symbol("uniformIsPersonalized"),A=e=>{(0,E.provide)($,e)},x=()=>(0,E.inject)($,!1);var le=(0,I.defineComponent)({name:"PersonalizeStandard",inheritAttrs:!1,props:{personalized:Boolean},setup(e,o){return A(e.personalized),()=>(0,I.h)(o.slots.default,{...e})}}),G=le;var ce=(0,i.defineComponent)({name:"PersonalizeStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){let{context:o}=a(),t=O(),n=()=>o.personalize({name:(0,i.toRaw)(e.name),variations:(0,i.toRaw)(e.variations),take:(0,i.toRaw)(e.count)}),r=(0,i.ref)();return(0,i.onServerPrefetch)(async()=>{r.value=n()}),(0,i.onMounted)(async()=>{r.value||(r.value=n())}),(0,i.watch)([t,()=>e.name,()=>e.variations,()=>e.count],()=>{r.value=n()}),()=>(0,i.h)(G,{personalized:!0},()=>{var y;return(y=r.value)==null?void 0:y.variations.map(m=>{var f;return(0,i.h)(e.component,{key:m.id,personalizationResult:{variation:m,personalizationOccurred:(f=r.value)==null?void 0:f.personalized},...m})})})}}),W=ce;var c=require("@uniformdev/context"),C=require("vue-demi"),fe=(0,C.defineComponent)({name:"PersonalizeStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0},count:{type:Number,default:1}},setup(e){var t;let o={count:(t=e.count)!=null?t:1};return()=>[(0,C.h)(c.EdgeNodeTagName,{"data-type":c.ScriptType.ListStart,innerHTML:JSON.stringify(o)}),e.variations.map(n=>[(0,C.h)(c.EdgeNodeTagName,{"data-type":c.ScriptType.ListItemSettings,innerHTML:JSON.stringify({id:n.id,pz:n.pz||null}),key:`LIS-${n.id}`}),(0,C.h)(c.EdgeNodeTagName,{"data-type":c.ScriptType.ListItem,key:`LI-${n.id}`},(0,C.h)(e.component,{personalizationResult:{variation:n,personalizationOccurred:!1},...n}))]),(0,C.h)(c.EdgeNodeTagName,{"data-type":c.ScriptType.ListEnd})]}}),R=fe;var ye=(0,z.defineComponent)({name:"Personalize",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){let{outputType:o}=a(),t=(0,z.computed)(()=>!v||o==="standard"?W:R);return()=>(0,z.h)(t.value,{...e})}}),X=ye;var s=require("vue-demi");var Pe=(0,s.defineComponent)({name:"Track",inheritAttrs:!1,props:{behavior:{type:[Object,Array]},tagName:{type:String,default:"div"},disableVisibilityTrigger:{type:Boolean,default:typeof window=="undefined"||!("IntersectionObserver"in window)},threshold:{type:[Number,Array],default:.5}},setup(e,o){let t=typeof document=="undefined"?"__uniform_ssr_url":document.location.href,{context:n}=a(),r=x(),y=(0,s.ref)(""),m=(0,s.ref)(!1),f=(0,s.ref)(),u=(0,s.ref)();return(0,s.watchEffect)(()=>{y.value!==t&&(y.value=t,m.value=!1)}),(0,s.watchEffect)(()=>{var H;let w=!e.behavior||Array.isArray(e.behavior)&&!e.behavior.length;if(r||w||!f.value)return;let oe=Array.isArray(e.behavior)?e.behavior:[e.behavior],M=()=>{var d;m.value||(n.update({enrichments:(0,s.toRaw)(oe)}),m.value=!1,(d=u.value)==null||d.call(u))};if(e.disableVisibilityTrigger)M();else{(H=u.value)==null||H.call(u);let d=new IntersectionObserver(([S])=>{S.isIntersecting&&M()},{threshold:e.threshold});d.observe(f.value),u.value=()=>{var S;return(S=d.disconnect)==null?void 0:S.call(d)}}return()=>{var d;(d=u.value)==null||d.call(u)}}),()=>(0,s.h)(e.tagName,{ref:f,...o.attrs},o.slots.default())}}),Y=Pe;var p=require("vue-demi");var Ce=(0,p.defineComponent)({name:"TrackSlot",inheritAttrs:!1,props:{behavior:{type:[Object,Array]}},setup(e,o){let t=typeof document=="undefined"?"__uniform_ssr_url":document.location.href,{context:n}=a(),r=x(),y=(0,p.ref)(),m=(0,p.ref)(!1);return(0,p.watchEffect)(()=>{y.value!==t&&(y.value=t,m.value=!1)}),(0,p.watchEffect)(()=>{let f=!e.behavior||Array.isArray(e.behavior)&&!e.behavior.length;if(r||f)return;(()=>{if(m.value)return;let N=Array.isArray(e.behavior)?e.behavior:[e.behavior];n.update({enrichments:(0,p.toRaw)(N)}),m.value=!0})()}),()=>(0,p.h)(o.slots.default,{...o.attrs})}}),Z=Ce;var q=require("vue-demi");var ee=()=>{let{context:e}=a(),o=(0,q.ref)(e.quirks),t=n=>{o.value=n};return(0,q.watch)(e,()=>(e.events.on("quirksUpdated",t),()=>{e.events.off("quirksUpdated",t)})),o};0&&(module.exports={Personalize,PersonalizeEdge,Test,Track,TrackSlot,UniformContextProvider,isUsingUniformContext,onRouteChange,provideIsPersonalized,provideUniformContext,uniformContextInjectionKey,useIsPersonalized,useQuirks,useScores,useUniformContext});
1
+ "use strict";var N=Object.defineProperty;var re=Object.getOwnPropertyDescriptor;var ne=Object.getOwnPropertyNames;var ie=Object.prototype.hasOwnProperty;var ae=(e,t)=>{for(var o in t)N(e,o,{get:t[o],enumerable:!0})},se=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ne(t))!ie.call(e,n)&&n!==o&&N(e,n,{get:()=>t[n],enumerable:!(r=re(t,n))||r.enumerable});return e};var pe=e=>se(N({},"__esModule",{value:!0}),e);var xe={};ae(xe,{Personalize:()=>Y,PersonalizeEdge:()=>V,Test:()=>J,Track:()=>Z,TrackSlot:()=>ee,UniformContextProvider:()=>Q,isUsingUniformContext:()=>B,onRouteChange:()=>R,provideIsPersonalized:()=>O,provideUniformContext:()=>U,uniformContextInjectionKey:()=>x,useIsPersonalized:()=>z,useQuirks:()=>te,useScores:()=>E,useUniformContext:()=>i});module.exports=pe(xe);var g=require("vue-demi");var v=typeof window=="undefined";var C=require("vue-demi");var h=require("vue-demi");var _=require("cookie-es"),x="uniformContextInjectionKey",U=({context:e,outputType:t="standard",trackRouteOnRender:o=!0,vueAppInstance:r})=>{let n={context:e,outputType:t};r?r.provide(x,n):(0,h.provide)(x,n),!v&&o&&R(e)};function R(e){e==null||e.update({url:new URL(window.location.href),cookies:(0,_.parse)(document.cookie)})}var i=()=>{let e=(0,h.inject)(x);if(!e)throw Error("Could not inject Uniform's Context, make sure you're using <UniformContextProvider /> or the Uniform Nuxt module with a valid manifest.");return e};function B(){var t;return Boolean((t=(0,h.getCurrentInstance)())==null?void 0:t.appContext.provides[x])}var me=(0,C.defineComponent)({name:"TestStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0}},setup(e){let{context:t}=i(),{result:o}=t.test({name:(0,C.toRaw)(e.name),variations:(0,C.toRaw)(e.variations)});return o?()=>(0,C.h)(e.component,{...o}):()=>null}}),F=me;var P=require("vue-demi"),l=require("@uniformdev/context"),ue=(0,P.defineComponent)({name:"TestEdge",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0}},setup(e){let t={name:e.name};return()=>[(0,P.h)(l.EdgeNodeTagName,{"data-type":l.ScriptType.TestStart,innerHTML:JSON.stringify(t)}),e.variations.map(o=>[(0,P.h)(l.EdgeNodeTagName,{"data-type":l.ScriptType.ListItemSettings,key:`LIS-${o.id}`,innerHTML:JSON.stringify({id:o.id})}),(0,P.h)(l.EdgeNodeTagName,{"data-type":l.ScriptType.ListItem,key:`LI-${o.id}`},(0,P.h)(e.component,{...o}))]),(0,P.h)(l.EdgeNodeTagName,{"data-type":l.ScriptType.TestEnd})]}}),M=ue;var de=(0,g.defineComponent)({name:"Test",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0}},setup(e){let{outputType:t}=i();return()=>!v||t==="standard"?(0,g.h)(F,{...e}):(0,g.h)(M,{...e})}}),J=de;var b=require("vue-demi"),K=require("@uniformdev/context");var ce=(0,b.defineComponent)({name:"UniformContextProvider",inheritAttrs:!1,props:{context:{type:Object,required:!0},outputType:{type:String,default:"standard"},trackRouteOnRender:{type:Boolean,default:!0}},setup(e,t){return U(e),()=>[(0,b.h)(t.slots.default),le(e.context)]}}),Q=ce;function le(e){let t=e.getServerToClientTransitionState();return()=>(0,b.h)("script",{id:K.SERVER_STATE_ID,type:"application/json",innerHTML:JSON.stringify(t)})}var q=require("vue-demi");var s=require("vue-demi");var k=require("vue-demi");var $=require("dequal/lite"),E=()=>{let{context:e}=i(),t=(0,k.ref)(e.scores);return(0,k.watchEffect)(()=>{let o=n=>t.value=n,r=e.scores;return(0,$.dequal)(t.value,r)||(t.value=r),e.events.on("scoresUpdated",o),()=>{e.events.off("scoresUpdated",o)}}),t};var I=require("vue-demi");var A=require("vue-demi"),G=Symbol("uniformIsPersonalized"),O=e=>{(0,A.provide)(G,e)},z=()=>(0,A.inject)(G,!1);var fe=(0,I.defineComponent)({name:"PersonalizeProvider",inheritAttrs:!1,props:{personalized:Boolean},setup(e,t){return O(e.personalized),()=>(0,I.h)(t.slots.default,{...e})}}),W=fe;var ye=(0,s.defineComponent)({name:"PersonalizeStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){let{context:t}=i(),o=E(),r=()=>{var m;return t.personalize({name:(0,s.toRaw)(e.name),variations:(0,s.toRaw)(e.variations),take:(m=(0,s.toRaw)(e.count))!=null?m:1})},n=(0,s.ref)(r());return(0,s.watch)([o,()=>e.name,()=>e.variations,()=>e.count],()=>{n.value=r()}),()=>(0,s.h)(W,{personalized:!0},()=>{var m;return(m=n.value)==null?void 0:m.variations.map(u=>{var y;return(0,s.h)(e.component,{key:u.id,personalizationResult:{variation:u,personalizationOccurred:(y=n.value)==null?void 0:y.personalized},...u})})})}}),X=ye;var f=require("@uniformdev/context"),T=require("vue-demi"),Pe=(0,T.defineComponent)({name:"PersonalizeStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){var o;let t={count:(o=e.count)!=null?o:1};return()=>[(0,T.h)(f.EdgeNodeTagName,{"data-type":f.ScriptType.ListStart,innerHTML:JSON.stringify(t)}),e.variations.map(r=>[(0,T.h)(f.EdgeNodeTagName,{"data-type":f.ScriptType.ListItemSettings,innerHTML:JSON.stringify({id:r.id,pz:r.pz||null}),key:`LIS-${r.id}`}),(0,T.h)(f.EdgeNodeTagName,{"data-type":f.ScriptType.ListItem,key:`LI-${r.id}`},(0,T.h)(e.component,{personalizationResult:{variation:r,personalizationOccurred:!1},...r}))]),(0,T.h)(f.EdgeNodeTagName,{"data-type":f.ScriptType.ListEnd})]}}),V=Pe;var Te=(0,q.defineComponent)({name:"Personalize",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){let{outputType:t}=i();return()=>(0,q.h)(!v||t==="standard"?X:V,{...e})}}),Y=Te;var a=require("vue-demi");var Ce=(0,a.defineComponent)({name:"Track",inheritAttrs:!1,props:{behavior:{type:[Object,Array]},tagName:{type:String,default:"div"},disableVisibilityTrigger:{type:Boolean,default:typeof window=="undefined"||!("IntersectionObserver"in window)},threshold:{type:[Number,Array],default:.5}},setup(e,t){let o=typeof document=="undefined"?"__uniform_ssr_url":document.location.href,{context:r}=i(),n=z(),m=(0,a.ref)(""),u=(0,a.ref)(!1),y=(0,a.ref)(),d=(0,a.ref)();return(0,a.watchEffect)(()=>{m.value!==o&&(m.value=o,u.value=!1)}),(0,a.watchEffect)(()=>{var D;let L=!e.behavior||Array.isArray(e.behavior)&&!e.behavior.length;if(n||L||!y.value)return;let oe=Array.isArray(e.behavior)?e.behavior:[e.behavior],H=()=>{var c;u.value||(r==null||r.update({enrichments:(0,a.toRaw)(oe)}),u.value=!1,(c=d.value)==null||c.call(d))};if(e.disableVisibilityTrigger)H();else{(D=d.value)==null||D.call(d);let c=new IntersectionObserver(([S])=>{S.isIntersecting&&H()},{threshold:e.threshold});c.observe(y.value),d.value=()=>{var S;return(S=c.disconnect)==null?void 0:S.call(c)}}return()=>{var c;(c=d.value)==null||c.call(d)}}),()=>(0,a.h)(e.tagName,{ref:y,...t.attrs},t.slots.default())}}),Z=Ce;var p=require("vue-demi");var ve=(0,p.defineComponent)({name:"TrackSlot",inheritAttrs:!1,props:{behavior:{type:[Object,Array]}},setup(e,t){let o=typeof document=="undefined"?"__uniform_ssr_url":document.location.href,{context:r}=i(),n=z(),m=(0,p.ref)(),u=(0,p.ref)(!1);return(0,p.watchEffect)(()=>{m.value!==o&&(m.value=o,u.value=!1)}),(0,p.watchEffect)(()=>{let y=!e.behavior||Array.isArray(e.behavior)&&!e.behavior.length;if(n||y)return;(()=>{if(u.value)return;let j=Array.isArray(e.behavior)?e.behavior:[e.behavior];r==null||r.update({enrichments:(0,p.toRaw)(j)}),u.value=!0})()}),()=>(0,p.h)(t.slots.default,{...t.attrs})}}),ee=ve;var w=require("vue-demi");var te=()=>{let{context:e}=i(),t=(0,w.ref)(e.quirks),o=r=>{t.value=r};return(0,w.watch)(e,()=>(e.events.on("quirksUpdated",o),()=>{e.events.off("quirksUpdated",o)})),t};0&&(module.exports={Personalize,PersonalizeEdge,Test,Track,TrackSlot,UniformContextProvider,isUsingUniformContext,onRouteChange,provideIsPersonalized,provideUniformContext,uniformContextInjectionKey,useIsPersonalized,useQuirks,useScores,useUniformContext});
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- "use strict";import{defineComponent as Y,h as Z,computed as ee}from"vue-demi";var d=typeof window=="undefined";import{defineComponent as J,h as $,toRaw as R}from"vue-demi";import{inject as A,provide as _}from"vue-demi";import{parse as K}from"cookie-es";var P=Symbol("uniformContextInjectionKey"),g=({context:e,outputType:o="standard",trackRouteOnRender:t=!0,vueAppProvide:n=_})=>{n(P,{context:e,outputType:o}),!d&&t&&I(e)};function I(e){e.update({url:new URL(window.location.href),cookies:K(document.cookie)})}var r=()=>{let e=A(P);if(!e)throw Error("Could not inject Uniform's Context, make sure you're using <UniformContextProvider /> or the Nuxt module.");return e};function Q(){return Boolean(A(P))}var G=J({name:"TestStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},loadingMode:{type:String,default:"default"},component:{type:[Object,Function],default:null}},setup(e){let{context:o}=r(),{result:t}=o.test({name:R(e.name),variations:R(e.variations)});return t?()=>$(e.component,{...t}):null}}),q=G;import{defineComponent as W,h as l}from"vue-demi";import{ScriptType as C,EdgeNodeTagName as T}from"@uniformdev/context";var X=W({name:"TestEdge",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},loadingMode:{type:String,default:"default"},component:{type:[Object,Function],default:null}},setup(e){let o={name:e.name};return()=>[l(T,{"data-type":C.TestStart,innerHTML:JSON.stringify(o)}),e.variations.map(t=>[l(T,{"data-type":C.ListItemSettings,key:`LIS-${t.id}`,innerHTML:JSON.stringify({id:t.id})}),l(T,{"data-type":C.ListItem,key:`LI-${t.id}`},l(e.component,{...t}))]),l(T,{"data-type":C.TestEnd})]}}),w=X;var oe=Y({name:"Test",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},loadingMode:{type:String,default:"default"},component:{type:[Object,Function],default:null}},setup(e){let{outputType:o}=r(),t=ee(()=>!d||o==="standard"?q:w);return()=>Z(t.value,{...e})}}),te=oe;import{defineComponent as ne,h as re}from"vue-demi";var ae=ne({name:"UniformContextProvider",inheritAttrs:!1,props:{context:{type:Object,required:!0},outputType:{type:String,default:"standard"},trackRouteOnRender:{type:Boolean,default:!0}},setup(e,o){return g(e),()=>re(o.slots.default)}}),ie=ae;import{defineComponent as ge,h as be,computed as Se}from"vue-demi";import{defineComponent as ye,ref as Pe,watch as Ce,h as N,onServerPrefetch as Te,onMounted as ve,toRaw as V}from"vue-demi";import{ref as se,watchEffect as pe}from"vue-demi";import{dequal as me}from"dequal/lite";var b=()=>{let{context:e}=r(),o=se(e.scores);return pe(()=>{let t=a=>o.value=a,n=e.scores;return me(o.value,n)||(o.value=n),e.events.on("scoresUpdated",t),()=>{e.events.off("scoresUpdated",t)}}),o};import{defineComponent as le,h as ce}from"vue-demi";import{provide as ue,inject as de}from"vue-demi";var L=Symbol("uniformIsPersonalized"),S=e=>{ue(L,e)},c=()=>de(L,!1);var fe=le({name:"PersonalizeStandard",inheritAttrs:!1,props:{personalized:Boolean},setup(e,o){return S(e.personalized),()=>ce(o.slots.default,{...e})}}),j=fe;var he=ye({name:"PersonalizeStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){let{context:o}=r(),t=b(),n=()=>o.personalize({name:V(e.name),variations:V(e.variations),take:V(e.count)}),a=Pe();return Te(async()=>{a.value=n()}),ve(async()=>{a.value||(a.value=n())}),Ce([t,()=>e.name,()=>e.variations,()=>e.count],()=>{a.value=n()}),()=>N(j,{personalized:!0},()=>{var u;return(u=a.value)==null?void 0:u.variations.map(i=>{var m;return N(e.component,{key:i.id,personalizationResult:{variation:i,personalizationOccurred:(m=a.value)==null?void 0:m.personalized},...i})})})}}),M=he;import{EdgeNodeTagName as v,ScriptType as h}from"@uniformdev/context";import{defineComponent as xe,h as f}from"vue-demi";var ze=xe({name:"PersonalizeStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0},count:{type:Number,default:1}},setup(e){var t;let o={count:(t=e.count)!=null?t:1};return()=>[f(v,{"data-type":h.ListStart,innerHTML:JSON.stringify(o)}),e.variations.map(n=>[f(v,{"data-type":h.ListItemSettings,innerHTML:JSON.stringify({id:n.id,pz:n.pz||null}),key:`LIS-${n.id}`}),f(v,{"data-type":h.ListItem,key:`LI-${n.id}`},f(e.component,{personalizationResult:{variation:n,personalizationOccurred:!1},...n}))]),f(v,{"data-type":h.ListEnd})]}}),k=ze;var Ve=ge({name:"Personalize",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){let{outputType:o}=r(),t=Se(()=>!d||o==="standard"?M:k);return()=>be(t.value,{...e})}}),ke=Ve;import{defineComponent as Ue,watchEffect as H,ref as x,h as Oe,toRaw as Ee}from"vue-demi";var Ae=Ue({name:"Track",inheritAttrs:!1,props:{behavior:{type:[Object,Array]},tagName:{type:String,default:"div"},disableVisibilityTrigger:{type:Boolean,default:typeof window=="undefined"||!("IntersectionObserver"in window)},threshold:{type:[Number,Array],default:.5}},setup(e,o){let t=typeof document=="undefined"?"__uniform_ssr_url":document.location.href,{context:n}=r(),a=c(),u=x(""),i=x(!1),m=x(),s=x();return H(()=>{u.value!==t&&(u.value=t,i.value=!1)}),H(()=>{var E;let z=!e.behavior||Array.isArray(e.behavior)&&!e.behavior.length;if(a||z||!m.value)return;let F=Array.isArray(e.behavior)?e.behavior:[e.behavior],O=()=>{var p;i.value||(n.update({enrichments:Ee(F)}),i.value=!1,(p=s.value)==null||p.call(s))};if(e.disableVisibilityTrigger)O();else{(E=s.value)==null||E.call(s);let p=new IntersectionObserver(([y])=>{y.isIntersecting&&O()},{threshold:e.threshold});p.observe(m.value),s.value=()=>{var y;return(y=p.disconnect)==null?void 0:y.call(p)}}return()=>{var p;(p=s.value)==null||p.call(s)}}),()=>Oe(e.tagName,{ref:m,...o.attrs},o.slots.default())}}),Ie=Ae;import{defineComponent as Re,ref as B,watchEffect as D,h as qe,toRaw as we}from"vue-demi";var Le=Re({name:"TrackSlot",inheritAttrs:!1,props:{behavior:{type:[Object,Array]}},setup(e,o){let t=typeof document=="undefined"?"__uniform_ssr_url":document.location.href,{context:n}=r(),a=c(),u=B(),i=B(!1);return D(()=>{u.value!==t&&(u.value=t,i.value=!1)}),D(()=>{let m=!e.behavior||Array.isArray(e.behavior)&&!e.behavior.length;if(a||m)return;(()=>{if(i.value)return;let U=Array.isArray(e.behavior)?e.behavior:[e.behavior];n.update({enrichments:we(U)}),i.value=!0})()}),()=>qe(o.slots.default,{...o.attrs})}}),je=Le;import{ref as Ne,watch as Me}from"vue-demi";var He=()=>{let{context:e}=r(),o=Ne(e.quirks),t=n=>{o.value=n};return Me(e,()=>(e.events.on("quirksUpdated",t),()=>{e.events.off("quirksUpdated",t)})),o};export{ke as Personalize,k as PersonalizeEdge,te as Test,Ie as Track,je as TrackSlot,ie as UniformContextProvider,Q as isUsingUniformContext,I as onRouteChange,S as provideIsPersonalized,g as provideUniformContext,P as uniformContextInjectionKey,c as useIsPersonalized,He as useQuirks,b as useScores,r as useUniformContext};
1
+ import{defineComponent as te,h as L}from"vue-demi";var d=typeof window=="undefined";import{defineComponent as W,h as X,toRaw as V}from"vue-demi";import{inject as J,provide as K,getCurrentInstance as Q}from"vue-demi";import{parse as $}from"cookie-es";var c="uniformContextInjectionKey",g=({context:e,outputType:t="standard",trackRouteOnRender:o=!0,vueAppInstance:r})=>{let i={context:e,outputType:t};r?r.provide(c,i):K(c,i),!d&&o&&I(e)};function I(e){e==null||e.update({url:new URL(window.location.href),cookies:$(document.cookie)})}var n=()=>{let e=J(c);if(!e)throw Error("Could not inject Uniform's Context, make sure you're using <UniformContextProvider /> or the Uniform Nuxt module with a valid manifest.");return e};function G(){var t;return Boolean((t=Q())==null?void 0:t.appContext.provides[c])}var Y=W({name:"TestStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0}},setup(e){let{context:t}=n(),{result:o}=t.test({name:V(e.name),variations:V(e.variations)});return o?()=>X(e.component,{...o}):()=>null}}),q=Y;import{defineComponent as Z,h as l}from"vue-demi";import{ScriptType as T,EdgeNodeTagName as C}from"@uniformdev/context";var ee=Z({name:"TestEdge",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0}},setup(e){let t={name:e.name};return()=>[l(C,{"data-type":T.TestStart,innerHTML:JSON.stringify(t)}),e.variations.map(o=>[l(C,{"data-type":T.ListItemSettings,key:`LIS-${o.id}`,innerHTML:JSON.stringify({id:o.id})}),l(C,{"data-type":T.ListItem,key:`LI-${o.id}`},l(e.component,{...o}))]),l(C,{"data-type":T.TestEnd})]}}),w=ee;var oe=te({name:"Test",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0}},setup(e){let{outputType:t}=n();return()=>!d||t==="standard"?L(q,{...e}):L(w,{...e})}}),re=oe;import{defineComponent as ne,h as N}from"vue-demi";import{SERVER_STATE_ID as ie}from"@uniformdev/context";var ae=ne({name:"UniformContextProvider",inheritAttrs:!1,props:{context:{type:Object,required:!0},outputType:{type:String,default:"standard"},trackRouteOnRender:{type:Boolean,default:!0}},setup(e,t){return g(e),()=>[N(t.slots.default),pe(e.context)]}}),se=ae;function pe(e){let t=e.getServerToClientTransitionState();return()=>N("script",{id:ie,type:"application/json",innerHTML:JSON.stringify(t)})}import{defineComponent as ge,h as be}from"vue-demi";import{defineComponent as Te,ref as Ce,watch as ve,h as H,toRaw as U}from"vue-demi";import{ref as me,watchEffect as ue}from"vue-demi";import{dequal as de}from"dequal/lite";var b=()=>{let{context:e}=n(),t=me(e.scores);return ue(()=>{let o=i=>t.value=i,r=e.scores;return de(t.value,r)||(t.value=r),e.events.on("scoresUpdated",o),()=>{e.events.off("scoresUpdated",o)}}),t};import{defineComponent as fe,h as ye}from"vue-demi";import{provide as ce,inject as le}from"vue-demi";var R=Symbol("uniformIsPersonalized"),S=e=>{ce(R,e)},f=()=>le(R,!1);var Pe=fe({name:"PersonalizeProvider",inheritAttrs:!1,props:{personalized:Boolean},setup(e,t){return S(e.personalized),()=>ye(t.slots.default,{...e})}}),j=Pe;var xe=Te({name:"PersonalizeStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){let{context:t}=n(),o=b(),r=()=>{var a;return t.personalize({name:U(e.name),variations:U(e.variations),take:(a=U(e.count))!=null?a:1})},i=Ce(r());return ve([o,()=>e.name,()=>e.variations,()=>e.count],()=>{i.value=r()}),()=>H(j,{personalized:!0},()=>{var a;return(a=i.value)==null?void 0:a.variations.map(s=>{var u;return H(e.component,{key:s.id,personalizationResult:{variation:s,personalizationOccurred:(u=i.value)==null?void 0:u.personalized},...s})})})}}),D=xe;import{EdgeNodeTagName as v,ScriptType as x}from"@uniformdev/context";import{defineComponent as he,h as y}from"vue-demi";var ze=he({name:"PersonalizeStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){var o;let t={count:(o=e.count)!=null?o:1};return()=>[y(v,{"data-type":x.ListStart,innerHTML:JSON.stringify(t)}),e.variations.map(r=>[y(v,{"data-type":x.ListItemSettings,innerHTML:JSON.stringify({id:r.id,pz:r.pz||null}),key:`LIS-${r.id}`}),y(v,{"data-type":x.ListItem,key:`LI-${r.id}`},y(e.component,{personalizationResult:{variation:r,personalizationOccurred:!1},...r}))]),y(v,{"data-type":x.ListEnd})]}}),k=ze;var Se=ge({name:"Personalize",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){let{outputType:t}=n();return()=>be(!d||t==="standard"?D:k,{...e})}}),Ue=Se;import{defineComponent as ke,watchEffect as _,ref as h,h as Ee,toRaw as Ae}from"vue-demi";var Oe=ke({name:"Track",inheritAttrs:!1,props:{behavior:{type:[Object,Array]},tagName:{type:String,default:"div"},disableVisibilityTrigger:{type:Boolean,default:typeof window=="undefined"||!("IntersectionObserver"in window)},threshold:{type:[Number,Array],default:.5}},setup(e,t){let o=typeof document=="undefined"?"__uniform_ssr_url":document.location.href,{context:r}=n(),i=f(),a=h(""),s=h(!1),u=h(),p=h();return _(()=>{a.value!==o&&(a.value=o,s.value=!1)}),_(()=>{var O;let z=!e.behavior||Array.isArray(e.behavior)&&!e.behavior.length;if(i||z||!u.value)return;let M=Array.isArray(e.behavior)?e.behavior:[e.behavior],A=()=>{var m;s.value||(r==null||r.update({enrichments:Ae(M)}),s.value=!1,(m=p.value)==null||m.call(p))};if(e.disableVisibilityTrigger)A();else{(O=p.value)==null||O.call(p);let m=new IntersectionObserver(([P])=>{P.isIntersecting&&A()},{threshold:e.threshold});m.observe(u.value),p.value=()=>{var P;return(P=m.disconnect)==null?void 0:P.call(m)}}return()=>{var m;(m=p.value)==null||m.call(p)}}),()=>Ee(e.tagName,{ref:u,...t.attrs},t.slots.default())}}),Ie=Oe;import{defineComponent as Ve,ref as B,watchEffect as F,h as qe,toRaw as we}from"vue-demi";var Le=Ve({name:"TrackSlot",inheritAttrs:!1,props:{behavior:{type:[Object,Array]}},setup(e,t){let o=typeof document=="undefined"?"__uniform_ssr_url":document.location.href,{context:r}=n(),i=f(),a=B(),s=B(!1);return F(()=>{a.value!==o&&(a.value=o,s.value=!1)}),F(()=>{let u=!e.behavior||Array.isArray(e.behavior)&&!e.behavior.length;if(i||u)return;(()=>{if(s.value)return;let E=Array.isArray(e.behavior)?e.behavior:[e.behavior];r==null||r.update({enrichments:we(E)}),s.value=!0})()}),()=>qe(t.slots.default,{...t.attrs})}}),Ne=Le;import{ref as Re,watch as je}from"vue-demi";var He=()=>{let{context:e}=n(),t=Re(e.quirks),o=r=>{t.value=r};return je(e,()=>(e.events.on("quirksUpdated",o),()=>{e.events.off("quirksUpdated",o)})),t};export{Ue as Personalize,k as PersonalizeEdge,re as Test,Ie as Track,Ne as TrackSlot,se as UniformContextProvider,G as isUsingUniformContext,I as onRouteChange,S as provideIsPersonalized,g as provideUniformContext,c as uniformContextInjectionKey,f as useIsPersonalized,He as useQuirks,b as useScores,n as useUniformContext};
package/package.json CHANGED
@@ -1,16 +1,15 @@
1
1
  {
2
2
  "name": "@uniformdev/context-vue",
3
- "version": "16.0.1-nuxt.166+ce56da6c5",
3
+ "version": "16.0.1-nuxt.187+32dbc55cd",
4
4
  "description": "Vue SDK for Uniform Context",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.esm.js",
8
8
  "exports": {
9
- "import": {
10
- "node": "./dist/index.mjs",
11
- "default": "./dist/index.esm.js"
12
- },
13
- "require": "./dist/index.js"
9
+ ".": {
10
+ "import": "./dist/index.esm.js",
11
+ "require": "./dist/index.js"
12
+ }
14
13
  },
15
14
  "types": "./dist/index.d.ts",
16
15
  "sideEffects": false,
@@ -23,10 +22,9 @@
23
22
  "format": "prettier --write \"src/**/*.{js,ts,tsx}\""
24
23
  },
25
24
  "dependencies": {
26
- "@uniformdev/context": "^16.0.1-nuxt.166+ce56da6c5",
25
+ "@uniformdev/context": "^16.0.1-nuxt.187+32dbc55cd",
27
26
  "cookie-es": "^0.5.0",
28
27
  "dequal": "^2.0.2",
29
- "pascal-case": "3.1.2",
30
28
  "uuid": "8.3.2",
31
29
  "vue-demi": "^0.12.5"
32
30
  },
@@ -44,7 +42,7 @@
44
42
  "@types/uuid": "8.3.4",
45
43
  "@vue/server-test-utils": "1.3.0",
46
44
  "@vue/test-utils": "1.3.0",
47
- "vue": "3.2.25",
45
+ "vue": "3.2.37",
48
46
  "vue-server-renderer": "2.6.14",
49
47
  "vue-template-compiler": "2.6.14"
50
48
  },
@@ -65,5 +63,5 @@
65
63
  "last 2 versions",
66
64
  "not dead"
67
65
  ],
68
- "gitHead": "ce56da6c5608c89d33524abf60993a68855afcd2"
66
+ "gitHead": "32dbc55cd49144087464781aa4072501b46166df"
69
67
  }