@picked/client 0.0.78-next.1 → 0.0.78-next.3
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/.tsbuildinfo +1 -1
- package/dist/{api-Dn3wRYEQ.js → api-DxTpQr1S.js} +1 -1
- package/dist/{api-By8zcDyl.cjs → api-bRP9T5NV.cjs} +1 -1
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
- package/dist/cjs/plugins/responses-browser-storage/index.js +1 -1
- package/dist/cjs/plugins/responses-indexeddb/index.js +1 -1
- package/dist/cjs/plugins/telemetry/index.js +1 -0
- package/dist/cjs/server/index.js +1 -1
- package/dist/docs/reference/dashboard/fields.mdx +17 -11
- package/dist/docs/reference/sdk/fields.md +6 -6
- package/dist/emit-D-tLiWL1.cjs +1 -0
- package/dist/emit-Ds2EG7CB.js +14 -0
- package/dist/esm/index.js +288 -230
- package/dist/esm/plugins/dynamic-experiences/index.js +2 -2
- package/dist/esm/plugins/responses-browser-storage/index.js +1 -1
- package/dist/esm/plugins/responses-indexeddb/index.js +1 -1
- package/dist/esm/plugins/telemetry/index.js +97 -0
- package/dist/esm/server/index.js +1 -1
- package/dist/{plugin-D-3AO0cS.js → plugin-Bx7a4qw2.js} +2 -2
- package/dist/{plugin-CjybJRgo.cjs → plugin-C24Ybji7.cjs} +1 -1
- package/dist/provider-DH9rfY2L.js +94 -0
- package/dist/provider-OA5InC6Z.cjs +1 -0
- package/dist/types/data-source/api.d.ts.map +1 -1
- package/dist/types/data-source/provider.d.ts +3 -0
- package/dist/types/data-source/provider.d.ts.map +1 -1
- package/dist/types/data-source/request-observer.d.ts +58 -0
- package/dist/types/data-source/request-observer.d.ts.map +1 -0
- package/dist/types/entities/field/field.d.ts +6 -7
- package/dist/types/entities/field/field.d.ts.map +1 -1
- package/dist/types/entities/field/policies.d.ts +35 -0
- package/dist/types/entities/field/policies.d.ts.map +1 -0
- package/dist/types/entities/plugin/plugin.d.ts +4 -0
- package/dist/types/entities/plugin/plugin.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lifecycle/lifecycle.d.ts.map +1 -1
- package/dist/types/picked.d.ts +8 -1
- package/dist/types/picked.d.ts.map +1 -1
- package/dist/types/plugins/create-experience/create-experience.d.ts +3 -8
- package/dist/types/plugins/create-experience/create-experience.d.ts.map +1 -1
- package/dist/types/plugins/telemetry/emit.d.ts +18 -0
- package/dist/types/plugins/telemetry/emit.d.ts.map +1 -0
- package/dist/types/plugins/telemetry/index.d.ts +4 -0
- package/dist/types/plugins/telemetry/index.d.ts.map +1 -0
- package/dist/types/plugins/telemetry/plugin-summary.d.ts +10 -0
- package/dist/types/plugins/telemetry/plugin-summary.d.ts.map +1 -0
- package/dist/types/plugins/telemetry/plugin.d.ts +45 -0
- package/dist/types/plugins/telemetry/plugin.d.ts.map +1 -0
- package/dist/types/utils/client-telemetry.d.ts +25 -0
- package/dist/types/utils/client-telemetry.d.ts.map +1 -0
- package/dist/types/utils/user-timing.d.ts +21 -0
- package/dist/types/utils/user-timing.d.ts.map +1 -0
- package/dist/{version-US7ZKOT_.js → version-CWSfnbGk.js} +1 -1
- package/dist/{version-C5wBj-TI.cjs → version-D9Eq71fx.cjs} +1 -1
- package/package.json +16 -4
- package/dist/provider-C4jR07Qd.cjs +0 -1
- package/dist/provider-Dx-9dqeo.js +0 -69
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as e } from "../../../plugin-
|
|
2
|
-
import { n as t, t as n } from "../../../api-
|
|
1
|
+
import { t as e } from "../../../plugin-Bx7a4qw2.js";
|
|
2
|
+
import { n as t, t as n } from "../../../api-DxTpQr1S.js";
|
|
3
3
|
import { n as r } from "../../../registry-CXZv0uLg.js";
|
|
4
4
|
import { createClientHeaders as i, fetchSchema as a } from "@picked/delivery-api-client";
|
|
5
5
|
export { i as createClientHeaders, e as dynamicExperiencesPlugin, n as fetchExperienceContent, t as fetchProject, a as fetchSchema, r as registerPickedBundle };
|
|
@@ -4,7 +4,7 @@ import { attach as i, createEffect as a, sample as o } from "effector";
|
|
|
4
4
|
//#region src/plugins/responses-browser-storage/plugin.ts
|
|
5
5
|
var s = r("responses", "global");
|
|
6
6
|
function c(e, t) {
|
|
7
|
-
return Object.fromEntries(Object.entries(e).flatMap(([e, n]) => t.find((t) => t.key === e)?.policies?.
|
|
7
|
+
return Object.fromEntries(Object.entries(e).flatMap(([e, n]) => t.find((t) => t.key === e)?.policies?.storeValue === !0 ? [[e, n]] : []));
|
|
8
8
|
}
|
|
9
9
|
var l = ({ storage: r = "local" } = {}) => ({
|
|
10
10
|
name: "responses-browser-storage-plugin",
|
|
@@ -69,7 +69,7 @@ var l = "responses", u = {
|
|
|
69
69
|
fields: r.fields.listStore
|
|
70
70
|
},
|
|
71
71
|
fn: ({ responses: e, fields: t }) => {
|
|
72
|
-
let n = new Set(t.filter((e) => e.policies?.
|
|
72
|
+
let n = new Set(t.filter((e) => e.policies?.storeValue === !0).map((e) => e.key));
|
|
73
73
|
return e.filter((e) => n.has(e.fieldKey)).map((e) => ({
|
|
74
74
|
fieldKey: e.fieldKey,
|
|
75
75
|
value: e.value
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { f as e, p as t } from "../../../supports-CO9bJGNl.js";
|
|
2
|
+
import { createSpanId as n, createTraceId as r, formatTraceparent as i, toUnixNano as a } from "@picked/telemetry";
|
|
3
|
+
//#region src/plugins/telemetry/plugin-summary.ts
|
|
4
|
+
var o = 100;
|
|
5
|
+
function s(e) {
|
|
6
|
+
return [...e].sort((e, t) => e.localeCompare(t)).slice(0, o);
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
//#region src/plugins/telemetry/plugin.ts
|
|
10
|
+
var c = "telemetry", l = 5e3;
|
|
11
|
+
function u() {
|
|
12
|
+
try {
|
|
13
|
+
let e = t.navigator;
|
|
14
|
+
return "globalPrivacyControl" in e && e.globalPrivacyControl === !0 || e.doNotTrack === "1";
|
|
15
|
+
} catch {
|
|
16
|
+
return !1;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function d() {
|
|
20
|
+
return performance.timeOrigin + performance.now();
|
|
21
|
+
}
|
|
22
|
+
function f(e) {
|
|
23
|
+
try {
|
|
24
|
+
t.addEventListener("pagehide", e), t.document.addEventListener("visibilitychange", () => {
|
|
25
|
+
t.document.visibilityState === "hidden" && e();
|
|
26
|
+
});
|
|
27
|
+
} catch {}
|
|
28
|
+
}
|
|
29
|
+
function p(t) {
|
|
30
|
+
return {
|
|
31
|
+
name: c,
|
|
32
|
+
setup: (o) => {
|
|
33
|
+
if (!e() || u() || !(Math.random() < (t?.sampleRate ?? 1))) return;
|
|
34
|
+
let s = t?.endpoint, c = r(), p = n(), _ = [], v, y = () => {
|
|
35
|
+
clearTimeout(v), v = void 0, g(s, m(o), _);
|
|
36
|
+
}, b = () => {
|
|
37
|
+
v ??= setTimeout(y, l);
|
|
38
|
+
};
|
|
39
|
+
f(y), o.telemetry.observeDeliveryAPIRequests({ onRequest: (e) => {
|
|
40
|
+
let t = n(), r = d();
|
|
41
|
+
return {
|
|
42
|
+
headers: { traceparent: i(c, t, !0) },
|
|
43
|
+
onSettled: (n) => {
|
|
44
|
+
_.push({
|
|
45
|
+
name: `picked.delivery.${e}`,
|
|
46
|
+
traceId: c,
|
|
47
|
+
spanId: t,
|
|
48
|
+
parentSpanId: p,
|
|
49
|
+
startTimeUnixNano: a(r),
|
|
50
|
+
endTimeUnixNano: a(d()),
|
|
51
|
+
attributes: { "picked.endpoint": e },
|
|
52
|
+
status: n ? "ok" : "error"
|
|
53
|
+
}), _.length >= 50 ? y() : b();
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
} }), o.eventBus.watch((e) => {
|
|
57
|
+
if (e.type !== "ready") return;
|
|
58
|
+
let t = o.performance.startMeasure;
|
|
59
|
+
if (t) {
|
|
60
|
+
let e = performance.timeOrigin + t.startTime;
|
|
61
|
+
_.push({
|
|
62
|
+
name: "picked.start",
|
|
63
|
+
traceId: c,
|
|
64
|
+
spanId: p,
|
|
65
|
+
startTimeUnixNano: a(e),
|
|
66
|
+
endTimeUnixNano: a(e + t.duration),
|
|
67
|
+
attributes: h(o),
|
|
68
|
+
status: "ok"
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
y();
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function m(e) {
|
|
77
|
+
return {
|
|
78
|
+
"service.name": "picked-sdk",
|
|
79
|
+
"picked.project_id": e.projectId
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
function h(e) {
|
|
83
|
+
return {
|
|
84
|
+
"picked.data.mode": e.dataSource ? "bundle" : "api",
|
|
85
|
+
"picked.sdk.plugins": s(Object.keys(e.plugins)).join(",")
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
async function g(e, t, n) {
|
|
89
|
+
if (n.length === 0) return;
|
|
90
|
+
let r = n.splice(0, n.length);
|
|
91
|
+
try {
|
|
92
|
+
let { flushSpans: n } = await import("../../../emit-Ds2EG7CB.js");
|
|
93
|
+
await n(e, t, r);
|
|
94
|
+
} catch {}
|
|
95
|
+
}
|
|
96
|
+
//#endregion
|
|
97
|
+
export { c as TELEMETRY_PLUGIN_NAME, p as telemetryPlugin };
|
package/dist/esm/server/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as e, c as t, i as n, o as r, s as i, t as a, u as o } from "../../experience-instance-DGk11d8a.js";
|
|
2
|
-
import { n as s } from "../../plugin-
|
|
2
|
+
import { n as s } from "../../plugin-Bx7a4qw2.js";
|
|
3
3
|
import { attach as c, createEffect as l, createEvent as u, createStore as d, sample as f } from "effector";
|
|
4
4
|
//#region src/server/serialize.ts
|
|
5
5
|
var p = 1e4;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "./logger-DMN6TxJJ.js";
|
|
2
|
-
import { r as e } from "./version-
|
|
3
|
-
import "./api-
|
|
2
|
+
import { r as e } from "./version-CWSfnbGk.js";
|
|
3
|
+
import "./api-DxTpQr1S.js";
|
|
4
4
|
import { attach as t } from "effector";
|
|
5
5
|
//#region src/plugins/dynamic-experiences/hash.ts
|
|
6
6
|
function n(e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require("./logger-CSTvAyyB.cjs");const e=require("./version-
|
|
1
|
+
require("./logger-CSTvAyyB.cjs");const e=require("./version-D9Eq71fx.cjs");require("./api-bRP9T5NV.cjs");let t=require("effector");function n(e){let t=2166136261;for(let n of e)t^=n.codePointAt(0)??0,t=Math.imul(t,16777619);return t>>>0}function r(e){let t=e;return t^=t>>>16,t=Math.imul(t,2246822507),t^=t>>>13,t=Math.imul(t,3266489909),t^=t>>>16,t>>>0}function i(e,t){return r(n(`${e}:${t}`))%100}function a(e,t){return t<=0?!1:t>=100||e<t}var o=4294967296;function s(e,t,i){return(r(n(`${e}:${t}:${i}`))+.5)/o}function c(e,t,n){return n.weight<=0?0:n.weight/-Math.log(s(e,t,n.key))}function l(e,t,n){let r=null,i=0;for(let a of n){let n=c(e,t,a);n<=0||(n>i||n===i&&r!==null&&a.key<r.key)&&(i=n,r=a)}return r}function u(e,t){if(Array.isArray(t.conditions))for(let n of t.conditions)e.registerCondition(n)}function d(e,t){e.registerExperience({id:t.id,key:t.key,name:t.name,targets:t.targets,nodes:t.nodes,edges:t.edges,condition:t.condition,initializeOpen:t.initializeOpen,componentName:t.componentName})}function f(e){return typeof e!=`object`||!e?!1:`id`in e&&`key`in e&&`type`in e&&`name`in e}function p(e,t){if(Array.isArray(t.fields))for(let n of t.fields)f(n)&&e.registerField(n)}function m(e,t){if(!Array.isArray(t.steps))return;let n=new Map(t.fields.map(e=>[e.id,e.key]));for(let r of t.steps){let t=[];for(let e of r.fieldIds??[]){let i=n.get(e);if(i===void 0){`${r.key}${e}`;continue}t.push(i)}let i=r.layoutContentId?e.contents.getById(r.layoutContentId):null;e.registerStep({id:r.id,key:r.key,name:r.name,fieldKeys:t,layoutName:r.layoutName,...r.layoutContentId!==void 0&&{layoutContentId:r.layoutContentId,layoutContentStore:i}})}}function h(e,t){if(Array.isArray(t.experiences))for(let n of t.experiences)d(e,n)}function g(e,t,n){y(e,t,n.isPreview,n.sessionId),u(e,t),p(e,t),m(e,t),h(e,t)}function _(e){let t=e.searchParams[`preview-token`];if(t&&t.length>0)return t[0]}function v(t){let n=new Map,r=t.searchParams.feature;if(!r)return n;for(let t of r){let r=e.r(t);r&&n.set(r.id,r.bucket)}return n}function y(e,t,n,r){let i=v(e);for(let a of t.features){let t=i.get(a.id);if(t!==void 0){b(e,a,t);continue}x(e,a,n,r)}}function b(e,t,n){e.registerFeature(t.id,{key:`${n}`,name:t.name,enabled:!0,weight:t.weight,...t.valueType!==void 0&&{valueType:t.valueType},...t.variants!==void 0&&{variants:t.variants},storage:`session`,decide:()=>n})}function x(e,t,n,r){let o=t.id,s=t.variants;e.registerFeature(o,{key:`v${t.version}`,name:t.name,enabled:t.enabled,weight:t.weight,storage:n?`session`:`local`,valueType:t.valueType,variants:s,decide:()=>t.valueType===`text`?!s||s.length===0?(`${o}`,!1):l(r,o,s)?.value??!1:a(i(r,o),t.weight)})}function S(e,t){for(let n of[...t.references??[],...t.content])e.registerContent({id:n.id,contentModelKey:n.contentModelKey,data:n.data})}function C(e,t){let n=new Map;return(r,i)=>{let a=n.get(r.id);if(a)return a;let o=(async()=>{try{let n=await t(r,i);return n&&S(e,n),n}finally{n.delete(r.id)}})();return n.set(r.id,o),o}}function w(e,t){let n=new Set(t&&Array.isArray(t.experiences)?t.experiences.map(e=>e.id):[]);return(t,r)=>n.has(t.id)?e(t,r):Promise.resolve(null)}function T(){return{name:`dynamic-experiences`,setup:e=>({onStart:(0,t.attach)({source:e.session.store.map(e=>e.id),effect:async t=>{let n=_(e),r=n!==void 0,i=n===void 0?void 0:{previewToken:n},a=await e.getProjectConfig(n===void 0?void 0:{previewToken:n}).catch(e=>null);if(e.contentLoader=C(e,w(t=>e.getExperienceContent(t,i),a)),!a)return;let o=e.seededVersionId;if(o!==null&&o!==a.versionId){e.versionSkew={seeded:o,resolved:a.versionId},`${a.versionId}${o}`;return}e.previewEmbedderOrigins=a.previewEmbedderOrigins??null,g(e,a,{isPreview:r,sessionId:t})}})})}}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return T}});
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import "./logger-DMN6TxJJ.js";
|
|
2
|
+
import { n as e, t } from "./api-DxTpQr1S.js";
|
|
3
|
+
import { r as n, t as r } from "./registry-CXZv0uLg.js";
|
|
4
|
+
//#region src/data-source/request-observer.ts
|
|
5
|
+
function i(e, t) {
|
|
6
|
+
try {
|
|
7
|
+
return e?.onRequest(t) ?? {};
|
|
8
|
+
} catch {
|
|
9
|
+
return {};
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function a(e, t) {
|
|
13
|
+
try {
|
|
14
|
+
e.onSettled?.(t);
|
|
15
|
+
} catch {}
|
|
16
|
+
}
|
|
17
|
+
async function o(e, t, n) {
|
|
18
|
+
let r = i(e?.(), t);
|
|
19
|
+
try {
|
|
20
|
+
let e = await n(r.headers);
|
|
21
|
+
return a(r, e !== null), e;
|
|
22
|
+
} catch (e) {
|
|
23
|
+
throw a(r, !1), e;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region src/data-source/provider.ts
|
|
28
|
+
var s = "bundle", c = "api";
|
|
29
|
+
async function l() {
|
|
30
|
+
try {
|
|
31
|
+
let e = await import("virtual:picked/data");
|
|
32
|
+
return n(e) ? e : null;
|
|
33
|
+
} catch {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function u(e) {
|
|
38
|
+
if (e === void 0 || n(e)) return e;
|
|
39
|
+
}
|
|
40
|
+
function d(n) {
|
|
41
|
+
let { apiUrl: i, projectId: a, previewToken: d, signal: f, getRequestObserver: p } = n, m = !!d, h = m ? c : n.mode, g = u(m ? void 0 : n.bundle), _ = m ? void 0 : n.projectConfig, v = n.getContent, y = {
|
|
42
|
+
mode: h ?? c,
|
|
43
|
+
manifest: null
|
|
44
|
+
}, b, x, S = /* @__PURE__ */ new Map();
|
|
45
|
+
function C() {
|
|
46
|
+
if (h === c) return Promise.resolve(null);
|
|
47
|
+
if (g) return Promise.resolve(g);
|
|
48
|
+
let e = r();
|
|
49
|
+
return e ? Promise.resolve(e) : (b ??= l(), b);
|
|
50
|
+
}
|
|
51
|
+
function w(e) {
|
|
52
|
+
y.mode = e ? s : c, y.manifest = e ? e.manifestMetadata : null;
|
|
53
|
+
}
|
|
54
|
+
async function T() {
|
|
55
|
+
if (_) return w(await C()), _;
|
|
56
|
+
let t = await C();
|
|
57
|
+
return w(t), t ? t.projectConfig : h === s ? null : o(p, "project-config", (t) => e(i, a, {
|
|
58
|
+
...d !== void 0 && { previewToken: d },
|
|
59
|
+
...f !== void 0 && { signal: f },
|
|
60
|
+
...t !== void 0 && { headers: t }
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
async function E(e, n) {
|
|
64
|
+
let r = d === void 0 ? void 0 : { previewToken: d };
|
|
65
|
+
if (v) return v(e, r);
|
|
66
|
+
let c = await C();
|
|
67
|
+
if (w(c), c) try {
|
|
68
|
+
return await c.experienceContent(e, r);
|
|
69
|
+
} catch {
|
|
70
|
+
return `${e.id}`, null;
|
|
71
|
+
}
|
|
72
|
+
if (h === s) return null;
|
|
73
|
+
let l = n ?? f;
|
|
74
|
+
return o(p, "experience-content", (n) => t(i, a, e.id, {
|
|
75
|
+
...d !== void 0 && { previewToken: d },
|
|
76
|
+
...l !== void 0 && { signal: l },
|
|
77
|
+
...n !== void 0 && { headers: n }
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
meta: y,
|
|
82
|
+
getProjectConfig: () => (x ??= T(), x),
|
|
83
|
+
getContent: (e, t) => {
|
|
84
|
+
let n = S.get(e.id);
|
|
85
|
+
if (n) return n;
|
|
86
|
+
let r = E(e, t?.signal).finally(() => {
|
|
87
|
+
S.delete(e.id);
|
|
88
|
+
});
|
|
89
|
+
return S.set(e.id, r), r;
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
//#endregion
|
|
94
|
+
export { d as createPickedDataProvider };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require("./logger-CSTvAyyB.cjs");const e=require("./api-bRP9T5NV.cjs"),t=require("./registry-C1t8l3t9.cjs");function n(e,t){try{return e?.onRequest(t)??{}}catch{return{}}}function r(e,t){try{e.onSettled?.(t)}catch{}}async function i(e,t,i){let a=n(e?.(),t);try{let e=await i(a.headers);return r(a,e!==null),e}catch(e){throw r(a,!1),e}}var a=`bundle`,o=`api`;async function s(){try{let e=await import(`virtual:picked/data`);return t.r(e)?e:null}catch{return null}}function c(e){if(e===void 0||t.r(e))return e}function l(n){let{apiUrl:r,projectId:l,previewToken:u,signal:d,getRequestObserver:f}=n,p=!!u,m=p?o:n.mode,h=c(p?void 0:n.bundle),g=p?void 0:n.projectConfig,_=n.getContent,v={mode:m??o,manifest:null},y,b,x=new Map;function S(){if(m===o)return Promise.resolve(null);if(h)return Promise.resolve(h);let e=t.t();return e?Promise.resolve(e):(y??=s(),y)}function C(e){v.mode=e?a:o,v.manifest=e?e.manifestMetadata:null}async function w(){if(g)return C(await S()),g;let t=await S();return C(t),t?t.projectConfig:m===a?null:i(f,`project-config`,t=>e.n(r,l,{...u!==void 0&&{previewToken:u},...d!==void 0&&{signal:d},...t!==void 0&&{headers:t}}))}async function T(t,n){let o=u===void 0?void 0:{previewToken:u};if(_)return _(t,o);let s=await S();if(C(s),s)try{return await s.experienceContent(t,o)}catch{return`${t.id}`,null}if(m===a)return null;let c=n??d;return i(f,`experience-content`,n=>e.t(r,l,t.id,{...u!==void 0&&{previewToken:u},...c!==void 0&&{signal:c},...n!==void 0&&{headers:n}}))}return{meta:v,getProjectConfig:()=>(b??=w(),b),getContent:(e,t)=>{let n=x.get(e.id);if(n)return n;let r=T(e,t?.signal).finally(()=>{x.delete(e.id)});return x.set(e.id,r),r}}}exports.createPickedDataProvider=l;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/data-source/api.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,yBAAyB,EACzB,mBAAmB,EACnB,aAAa,EACd,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/data-source/api.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,yBAAyB,EACzB,mBAAmB,EACnB,aAAa,EACd,MAAM,6BAA6B,CAAA;AAgDpC;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,aAAa,CAEpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,yBAAyB,CAM5F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAE/B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAE3C"}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import type { ExperienceContentResponse, ProjectConfig } from '@picked/delivery-api-client';
|
|
11
11
|
import type { ContentLoader, PickedManifestMetadata, VirtualPickedData } from '../plugins/dynamic-experiences/types';
|
|
12
|
+
import { type DeliveryAPIRequestObserverSource } from './request-observer';
|
|
12
13
|
import { isVirtualPickedData } from './virtual-data';
|
|
13
14
|
/** Where a data provider reads project config and CMS content from. */
|
|
14
15
|
export type PickedDataMode = 'bundle' | 'api';
|
|
@@ -41,6 +42,8 @@ export interface PickedDataProviderOptions {
|
|
|
41
42
|
getContent?: ContentLoader;
|
|
42
43
|
/** Abort signal applied to API fetches, such as an `AbortSignal.timeout` deadline. */
|
|
43
44
|
signal?: AbortSignal;
|
|
45
|
+
/** Supplies the observer wrapped around each delivery API fetch, read once per request. */
|
|
46
|
+
getRequestObserver?: DeliveryAPIRequestObserverSource;
|
|
44
47
|
}
|
|
45
48
|
/** Read-only description of what a provider resolved to. */
|
|
46
49
|
export interface PickedDataProviderMeta {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/data-source/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAE3F,OAAO,KAAK,EACV,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,sCAAsC,CAAA;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/data-source/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAE3F,OAAO,KAAK,EACV,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,sCAAsC,CAAA;AAE7C,OAAO,EAEL,KAAK,gCAAgC,EACtC,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAEpD,uEAAuE;AACvE,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,KAAK,CAAA;AAQ7C,oDAAoD;AACpD,MAAM,WAAW,yBAAyB;IACxC,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAA;IAC1B,sFAAsF;IACtF,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,sFAAsF;IACtF,UAAU,CAAC,EAAE,aAAa,CAAA;IAC1B,sFAAsF;IACtF,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,2FAA2F;IAC3F,kBAAkB,CAAC,EAAE,gCAAgC,CAAA;CACtD;AAED,4DAA4D;AAC5D,MAAM,WAAW,sBAAsB;IACrC,yDAAyD;IACzD,IAAI,EAAE,cAAc,CAAA;IACpB,gFAAgF;IAChF,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAA;CACxC;AAED,6EAA6E;AAC7E,MAAM,WAAW,kBAAkB;IACjC,wFAAwF;IACxF,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAA;IACrC,4FAA4F;IAC5F,gBAAgB,EAAE,MAAM,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IACrD,oGAAoG;IACpG,UAAU,EAAE,CACV,UAAU,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EACvC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,KAC/B,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAA;CAC/C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAYlF;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAA;AAyB9B;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,kBAAkB,CA6K/F"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file The hook the telemetry plugin uses to observe delivery API requests.
|
|
3
|
+
*
|
|
4
|
+
* An observer belongs to the client that registered it and is passed in per
|
|
5
|
+
* request, so two clients on one page observe only their own traffic. The
|
|
6
|
+
* observer hands back a per-request handle, so each completion correlates to
|
|
7
|
+
* its own request through the closure that created it.
|
|
8
|
+
*/
|
|
9
|
+
/** Which delivery API endpoint a request is for. */
|
|
10
|
+
export type DeliveryAPIEndpoint = 'project-config' | 'experience-content';
|
|
11
|
+
/** A request in flight, from the observer's point of view. */
|
|
12
|
+
export interface ObservedRequest {
|
|
13
|
+
/** Headers to merge into this request, such as `traceparent`. */
|
|
14
|
+
headers?: Record<string, string>;
|
|
15
|
+
/** Called once the request has settled. */
|
|
16
|
+
onSettled?: (ok: boolean) => void;
|
|
17
|
+
}
|
|
18
|
+
/** Receives delivery API requests as they are made. */
|
|
19
|
+
export interface DeliveryAPIRequestObserver {
|
|
20
|
+
/** Called as a request begins; returns headers to add and a completion callback. */
|
|
21
|
+
onRequest: (endpoint: DeliveryAPIEndpoint) => ObservedRequest;
|
|
22
|
+
}
|
|
23
|
+
/** Supplies the observer in force for the next request, or `null` when there is none. */
|
|
24
|
+
export type DeliveryAPIRequestObserverSource = () => DeliveryAPIRequestObserver | null | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Notifies the observer that a request is starting.
|
|
27
|
+
*
|
|
28
|
+
* @param {DeliveryAPIRequestObserver | null} [observer] - The observer to notify, if any.
|
|
29
|
+
* @param {DeliveryAPIEndpoint} endpoint - Which endpoint is being called.
|
|
30
|
+
* @returns {ObservedRequest} Headers to merge and a completion callback, both possibly absent.
|
|
31
|
+
* @example const observed = beginObservedRequest(observer, 'project-config')
|
|
32
|
+
*/
|
|
33
|
+
export declare function beginObservedRequest(observer: DeliveryAPIRequestObserver | null | undefined, endpoint: DeliveryAPIEndpoint): ObservedRequest;
|
|
34
|
+
/**
|
|
35
|
+
* Notifies the observer that a request has settled.
|
|
36
|
+
*
|
|
37
|
+
* @param {ObservedRequest} observed - The handle returned when the request began.
|
|
38
|
+
* @param {boolean} ok - Whether the request produced a usable result.
|
|
39
|
+
* @returns {void}
|
|
40
|
+
* @example settleObservedRequest(observed, true)
|
|
41
|
+
*/
|
|
42
|
+
export declare function settleObservedRequest(observed: ObservedRequest, ok: boolean): void;
|
|
43
|
+
/**
|
|
44
|
+
* Runs a delivery API fetch with the observer wrapped around it.
|
|
45
|
+
*
|
|
46
|
+
* The observer is read once per request, so one registered after an earlier fetch
|
|
47
|
+
* still applies to this one. Its headers are handed to `run` to travel with the
|
|
48
|
+
* request, and the same handle receives the outcome.
|
|
49
|
+
*
|
|
50
|
+
* @template T - The value the fetch resolves to.
|
|
51
|
+
* @param {DeliveryAPIRequestObserverSource} [source] - Supplies the observer for this request.
|
|
52
|
+
* @param {DeliveryAPIEndpoint} endpoint - Which endpoint is being called.
|
|
53
|
+
* @param {(headers?: Record<string, string>) => Promise<T | null>} run - The fetch to perform.
|
|
54
|
+
* @returns {Promise<T | null>} Whatever the fetch resolved to.
|
|
55
|
+
* @example observeDeliveryAPIRequest(source, 'project-config', (headers) => fetchProject(url, id, { headers }))
|
|
56
|
+
*/
|
|
57
|
+
export declare function observeDeliveryAPIRequest<T>(source: DeliveryAPIRequestObserverSource | undefined, endpoint: DeliveryAPIEndpoint, run: (headers?: Record<string, string>) => Promise<T | null>): Promise<T | null>;
|
|
58
|
+
//# sourceMappingURL=request-observer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-observer.d.ts","sourceRoot":"","sources":["../../../src/data-source/request-observer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oDAAoD;AACpD,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG,oBAAoB,CAAA;AAEzE,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,CAAA;CAClC;AAED,uDAAuD;AACvD,MAAM,WAAW,0BAA0B;IACzC,oFAAoF;IACpF,SAAS,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,eAAe,CAAA;CAC9D;AAED,yFAAyF;AACzF,MAAM,MAAM,gCAAgC,GAAG,MAAM,0BAA0B,GAAG,IAAI,GAAG,SAAS,CAAA;AAElG;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,0BAA0B,GAAG,IAAI,GAAG,SAAS,EACvD,QAAQ,EAAE,mBAAmB,GAC5B,eAAe,CAOjB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CAMlF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,yBAAyB,CAAC,CAAC,EAC/C,MAAM,EAAE,gCAAgC,GAAG,SAAS,EACpD,QAAQ,EAAE,mBAAmB,EAC7B,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAC3D,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAYnB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/** @file Field entity — Effector stores, types, and CRUD helpers for experience fields. */
|
|
2
2
|
import { type Store } from 'effector';
|
|
3
3
|
import type { LogicRule } from '../../logic-engine';
|
|
4
|
+
import { type FieldPolicies } from './policies';
|
|
4
5
|
export type FieldsStore = ReturnType<typeof createFieldIndex>;
|
|
5
6
|
export type PrimitiveFieldValue = string | number | boolean | null;
|
|
6
7
|
export type FieldOptionValue = string | number | boolean;
|
|
@@ -37,14 +38,12 @@ export interface FieldBase<TOptionValue = JsonValue> {
|
|
|
37
38
|
validation?: LogicRule;
|
|
38
39
|
/**
|
|
39
40
|
* Privacy policies governing what leaves the page. Both are opt-in: a value is
|
|
40
|
-
* tracked only under `
|
|
41
|
-
*
|
|
42
|
-
*
|
|
41
|
+
* tracked only under `trackValue: true` and persisted only under `storeValue: true`,
|
|
42
|
+
* so an absent policy captures nothing. Registration resolves whatever the field
|
|
43
|
+
* states into all four flags, so a registered field always answers on `trackValue`
|
|
44
|
+
* and `storeValue`.
|
|
43
45
|
*/
|
|
44
|
-
policies?:
|
|
45
|
-
doNotTrackValue?: boolean;
|
|
46
|
-
doNotStoreValue?: boolean;
|
|
47
|
-
};
|
|
46
|
+
policies?: FieldPolicies;
|
|
48
47
|
options?: FieldOptionArray<TOptionValue> | null;
|
|
49
48
|
}
|
|
50
49
|
export interface FieldTextSingular extends FieldBase<string> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../../src/entities/field/field.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,OAAO,EAA2B,KAAK,KAAK,EAAE,MAAM,UAAU,CAAA;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../../src/entities/field/field.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** @file Field privacy policies — the policy shape and the normalisation applied at registration. */
|
|
2
|
+
/**
|
|
3
|
+
* Privacy policies governing what leaves the page. Both are opt-in, and neither affects
|
|
4
|
+
* the in-memory response store.
|
|
5
|
+
*/
|
|
6
|
+
export interface FieldPolicies {
|
|
7
|
+
/** Sends the captured value to analytics. */
|
|
8
|
+
trackValue?: boolean;
|
|
9
|
+
/** Persists the captured value in browser storage. */
|
|
10
|
+
storeValue?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated Use `trackValue`. `doNotTrackValue: false` will be removed in a future version.
|
|
13
|
+
*/
|
|
14
|
+
doNotTrackValue?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated Use `storeValue`. `doNotStoreValue: false` will be removed in a future version.
|
|
17
|
+
*/
|
|
18
|
+
doNotStoreValue?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Resolves the policies a field states into all four flags, so every reader downstream
|
|
22
|
+
* consults `trackValue` and `storeValue` alone. The positive flag decides whenever the
|
|
23
|
+
* field states it; otherwise the deprecated flag grants capture at an explicit `false`.
|
|
24
|
+
* An absent `policies` object and an absent flag both withhold the value.
|
|
25
|
+
*
|
|
26
|
+
* @param {FieldPolicies | undefined} policies - The policies as the field states them.
|
|
27
|
+
* @returns {Required<FieldPolicies>} All four flags, each deprecated flag the inverse of its replacement.
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* normaliseFieldPolicies({ doNotTrackValue: false })
|
|
31
|
+
* // { trackValue: true, storeValue: false, doNotTrackValue: false, doNotStoreValue: true }
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare function normaliseFieldPolicies(policies?: FieldPolicies): Required<FieldPolicies>;
|
|
35
|
+
//# sourceMappingURL=policies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../../../../src/entities/field/policies.ts"],"names":[],"mappings":"AAAA,qGAAqG;AAErG;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,sDAAsD;IACtD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAQD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,CAWxF"}
|
|
@@ -34,6 +34,10 @@ export declare function createPluginEffect(handler: () => void | Promise<void>):
|
|
|
34
34
|
/**
|
|
35
35
|
* Registers a plugin with the client by calling its setup hook and merging any returned config into the plugin index.
|
|
36
36
|
*
|
|
37
|
+
* Every plugin takes an entry, so the index is the roster of what is registered. A plugin
|
|
38
|
+
* that returns no config gets an empty one, which is what `getPluginConfig` already
|
|
39
|
+
* answers for a name it does not hold.
|
|
40
|
+
*
|
|
37
41
|
* @param {Picked} client - The Picked client instance.
|
|
38
42
|
* @param {Plugin} plugin - The plugin to register.
|
|
39
43
|
* @param {PluginConfigIndex} plugins - The plugin config index to mutate.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/entities/plugin/plugin.ts"],"names":[],"mappings":"AAAA,wIAAwI;AACxI,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAE1C,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,YAAY,CAAA;CAC/C;AAED,MAAM,WAAW,YAAY;IAC3B,qIAAqI;IACrI,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAA;CAC5B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAIjG;AAED
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/entities/plugin/plugin.ts"],"names":[],"mappings":"AAAA,wIAAwI;AACxI,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAE1C,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,YAAY,CAAA;CAC/C;AAED,MAAM,WAAW,YAAY;IAC3B,qIAAqI;IACrI,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAA;CAC5B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAIjG;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW,WAAY,MAAM,UAAU,MAAM,WAAW,iBAAiB,KAAG,IAOxF,CAAA"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export type * from './entities/experience/experience';
|
|
|
12
12
|
export type * from './entities/step/step';
|
|
13
13
|
export type * from './entities/feature/feature';
|
|
14
14
|
export type * from './entities/field/field';
|
|
15
|
+
export type * from './entities/field/policies';
|
|
15
16
|
export type * from './entities/framework/framework';
|
|
16
17
|
export type * from './entities/history/history';
|
|
17
18
|
export type * from './entities/plugin/plugin';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,cAAc,WAAW,CAAA;AACzB,mBAAmB,UAAU,CAAA;AAC7B,mBAAmB,0BAA0B,CAAA;AAC7C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,8BAA8B,CAAA;AACjD,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,oCAAoC,CAAA;AACvD,mBAAmB,oDAAoD,CAAA;AACvE,mBAAmB,kCAAkC,CAAA;AACrD,mBAAmB,sBAAsB,CAAA;AACzC,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,wBAAwB,CAAA;AAC3C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,0BAA0B,CAAA;AAC7C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,gBAAgB,CAAA;AACnC,mBAAmB,uBAAuB,CAAA;AAC1C,mBAAmB,8BAA8B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,YAAY,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,QAAQ,EACR,iBAAiB,EACjB,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,cAAc,WAAW,CAAA;AACzB,mBAAmB,UAAU,CAAA;AAC7B,mBAAmB,0BAA0B,CAAA;AAC7C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,8BAA8B,CAAA;AACjD,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,oCAAoC,CAAA;AACvD,mBAAmB,oDAAoD,CAAA;AACvE,mBAAmB,kCAAkC,CAAA;AACrD,mBAAmB,sBAAsB,CAAA;AACzC,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,wBAAwB,CAAA;AAC3C,mBAAmB,2BAA2B,CAAA;AAC9C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,0BAA0B,CAAA;AAC7C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,gBAAgB,CAAA;AACnC,mBAAmB,uBAAuB,CAAA;AAC1C,mBAAmB,8BAA8B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,YAAY,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,QAAQ,EACR,iBAAiB,EACjB,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/lifecycle.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,OAAO,EAOL,KAAK,MAAM,EACX,KAAK,aAAa,EAElB,KAAK,aAAa,EACnB,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAOhD,4CAA4C;AAC5C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAA;AAErE,8GAA8G;AAC9G,KAAK,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAA;AAEjD,6DAA6D;AAC7D,UAAU,SAAS;IACjB,8HAA8H;IAC9H,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;IAE1B,4CAA4C;IAC5C,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAClC,2FAA2F;IAC3F,uBAAuB,EAAE,aAAa,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;IAC3D,wFAAwF;IACxF,oBAAoB,EAAE,aAAa,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;IACxD,qDAAqD;IACrD,mBAAmB,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IAElD,sDAAsD;IACtD,uBAAuB,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IAEjE,iFAAiF;IACjF,eAAe,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IAC1C,8EAA8E;IAC9E,YAAY,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;CACxC;
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/lifecycle.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,OAAO,EAOL,KAAK,MAAM,EACX,KAAK,aAAa,EAElB,KAAK,aAAa,EACnB,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAOhD,4CAA4C;AAC5C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAA;AAErE,8GAA8G;AAC9G,KAAK,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAA;AAEjD,6DAA6D;AAC7D,UAAU,SAAS;IACjB,8HAA8H;IAC9H,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;IAE1B,4CAA4C;IAC5C,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAClC,2FAA2F;IAC3F,uBAAuB,EAAE,aAAa,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;IAC3D,wFAAwF;IACxF,oBAAoB,EAAE,aAAa,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;IACxD,qDAAqD;IACrD,mBAAmB,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IAElD,sDAAsD;IACtD,uBAAuB,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IAEjE,iFAAiF;IACjF,eAAe,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IAC1C,8EAA8E;IAC9E,YAAY,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;CACxC;AA4OD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAErE"}
|
package/dist/types/picked.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ import type { Content, ContentDataPatch } from './entities/content/content';
|
|
|
20
20
|
import type { ContentLoader } from './plugins/dynamic-experiences/types';
|
|
21
21
|
import type { Action } from './entities/action/action';
|
|
22
22
|
import { type Condition } from './entities/condition/condition';
|
|
23
|
+
import { type StartTiming } from './utils/user-timing';
|
|
24
|
+
import { type ClientTelemetry } from './utils/client-telemetry';
|
|
23
25
|
import type { SessionEntity } from './entities/session/session';
|
|
24
26
|
/**
|
|
25
27
|
* Provenance metadata describing where the Picked client's project config and
|
|
@@ -74,7 +76,10 @@ export declare class Picked {
|
|
|
74
76
|
* nobody" and stays closed.
|
|
75
77
|
*/
|
|
76
78
|
previewEmbedderOrigins: string[] | null;
|
|
77
|
-
|
|
79
|
+
/** Config of every registered plugin, keyed by name in registration order. */
|
|
80
|
+
readonly plugins: PluginConfigIndex;
|
|
81
|
+
/** This client's telemetry hooks. */
|
|
82
|
+
readonly telemetry: ClientTelemetry;
|
|
78
83
|
private readonly dataProviders;
|
|
79
84
|
readonly eventBus: EventCallable<EventBusPayload>;
|
|
80
85
|
readonly events: EventHistoryStore;
|
|
@@ -83,6 +88,8 @@ export declare class Picked {
|
|
|
83
88
|
readonly dashboardUrl: string;
|
|
84
89
|
readonly documentationSiteUrl: string;
|
|
85
90
|
readonly session: SessionEntity;
|
|
91
|
+
/** This client's User Timing entries for its own start chain. */
|
|
92
|
+
readonly performance: StartTiming;
|
|
86
93
|
readonly searchParams: import(".").PickedSearchParams;
|
|
87
94
|
readonly history: {
|
|
88
95
|
push: EventCallable<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"picked.d.ts","sourceRoot":"","sources":["../../src/picked.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,OAAO,EAGL,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,aAAa,EACnB,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3F,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,uBAAuB,EAC7B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,iBAAiB,EAAe,MAAM,0BAA0B,CAAA;AAC3F,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EACL,KAAK,gBAAgB,EAGtB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAEL,KAAK,SAAS,EAEf,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAA4B,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACzF,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACjG,OAAO,EAAE,KAAK,gBAAgB,EAA0B,MAAM,iCAAiC,CAAA;AAC/F,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAE/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAIzD,OAAO,EAAsB,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACjG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAE3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAExE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAGtD,OAAO,EAAE,KAAK,SAAS,EAAwB,MAAM,gCAAgC,CAAA;AAIrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAM/D;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0GAA0G;IAC1G,IAAI,EAAE,KAAK,GAAG,OAAO,CAAA;IACrB,6FAA6F;IAC7F,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,0DAA0D;IAC1D,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,4DAA4D;IAC5D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAED,qBAAa,MAAM;IACjB,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAE7C;;;;OAIG;IACH,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAO;IAE1C;;;;OAIG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAO;IAErC;;;;OAIG;IACH,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAO;IAE/D;;;;;OAKG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAE7B;;;;;OAKG;IACH,sBAAsB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAO;IAE9C,
|
|
1
|
+
{"version":3,"file":"picked.d.ts","sourceRoot":"","sources":["../../src/picked.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import type { Condition } from '../../entities/condition/condition';
|
|
|
5
5
|
import type { AdaptedComponent } from '../../entities/component/component';
|
|
6
6
|
import type { LogicRule, LogicValue } from '../../logic-engine';
|
|
7
7
|
import type { Field, FieldBooleanMultiple, FieldBooleanSingular, FieldNumberMultiple, FieldNumberSingular, FieldObjectMultiple, FieldObjectSingular, FieldTextMultiple, FieldTextSingular, JsonValue } from '../../entities/field/field';
|
|
8
|
+
import type { FieldPolicies } from '../../entities/field/policies';
|
|
8
9
|
import { type Serialized } from './serialization';
|
|
9
10
|
export interface SerializedExperience extends Experience {
|
|
10
11
|
steps: ExperienceStep[];
|
|
@@ -120,10 +121,7 @@ export type CreateFieldOptions = Omit<Field, 'id' | 'key' | 'options' | 'placeho
|
|
|
120
121
|
description?: string;
|
|
121
122
|
helpText?: string;
|
|
122
123
|
validation?: LogicRule;
|
|
123
|
-
policies?:
|
|
124
|
-
doNotTrackValue?: boolean;
|
|
125
|
-
doNotStoreValue?: boolean;
|
|
126
|
-
};
|
|
124
|
+
policies?: FieldPolicies;
|
|
127
125
|
options?: NonNullable<FieldTextSingular['options']>[number][] | NonNullable<FieldTextMultiple['options']>[number][] | NonNullable<FieldNumberSingular['options']>[number][] | NonNullable<FieldNumberMultiple['options']>[number][] | NonNullable<FieldBooleanSingular['options']>[number][] | NonNullable<FieldBooleanMultiple['options']>[number][] | Omit<NonNullable<FieldObjectSingular['options']>[number], 'id'>[] | Omit<NonNullable<FieldObjectMultiple['options']>[number], 'id'>[];
|
|
128
126
|
};
|
|
129
127
|
export type SerializableField<T extends JsonValue = JsonValue> = {
|
|
@@ -140,10 +138,7 @@ export type SerializableField<T extends JsonValue = JsonValue> = {
|
|
|
140
138
|
helpText?: string;
|
|
141
139
|
validation: LogicRule;
|
|
142
140
|
condition?: LogicRule;
|
|
143
|
-
policies?:
|
|
144
|
-
doNotTrackValue?: boolean;
|
|
145
|
-
doNotStoreValue?: boolean;
|
|
146
|
-
};
|
|
141
|
+
policies?: FieldPolicies;
|
|
147
142
|
options: {
|
|
148
143
|
id: string;
|
|
149
144
|
label: string;
|