@inploi/sdk 0.4.3 → 0.6.0

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/README.md CHANGED
@@ -36,8 +36,6 @@ const sdk = initialiseInploiSdk({
36
36
  plugins: [journeysPlugin],
37
37
  env: 'sandbox',
38
38
  });
39
-
40
- // in your component or function
41
-
39
+ / in your component or function
42
40
  sdk.journey.log({ event: 'PAGE_VIEW' });
43
41
  ```
@@ -0,0 +1,72 @@
1
+ // This file is generated automatically. Do not edit it manually.
2
+
3
+ "use strict";
4
+ (() => {
5
+ // src/common/common.plugins.ts
6
+ var createPlugin = (pluginName, {
7
+ initialise
8
+ }) => ({
9
+ pluginName,
10
+ initialise
11
+ });
12
+
13
+ // src/accessibility/accessibility.constants.ts
14
+ var WIDGET_SCRIPT_ID = "inploi-a11y";
15
+
16
+ // src/accessibility/accessibility.ts
17
+ var createAccessibilityPlugin = (params) => createPlugin("accessibility", {
18
+ initialise: ({ logger }) => {
19
+ if (typeof window === "undefined")
20
+ return;
21
+ const a11yWidget = document.getElementById(WIDGET_SCRIPT_ID);
22
+ if (a11yWidget !== null)
23
+ return;
24
+ try {
25
+ const script = document.createElement("script");
26
+ const head = document.querySelector("head") || document.body;
27
+ script.id = WIDGET_SCRIPT_ID;
28
+ script.src = "https://acsbapp.com/apps/app/dist/js/app.js";
29
+ script.async = true;
30
+ script.onload = function() {
31
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
32
+ window.acsbJS.init({
33
+ statementLink: "",
34
+ footerHtml: "Powered by inploi",
35
+ hideMobile: false,
36
+ hideTrigger: params.showTrigger !== false,
37
+ disableBgProcess: false,
38
+ language: (_a = params.language) != null ? _a : "en",
39
+ position: (_d = (_c = (_b = params.position) == null ? void 0 : _b.x) == null ? void 0 : _c.desktop) != null ? _d : "right",
40
+ leadColor: params.colors.interface,
41
+ triggerColor: params.colors.trigger,
42
+ triggerRadius: "50%",
43
+ triggerPositionX: (_g = (_f = (_e = params.position) == null ? void 0 : _e.x) == null ? void 0 : _f.desktop) != null ? _g : "right",
44
+ triggerPositionY: (_j = (_i = (_h = params.position) == null ? void 0 : _h.y) == null ? void 0 : _i.desktop) != null ? _j : "bottom",
45
+ triggerIcon: "people",
46
+ triggerSize: "medium",
47
+ triggerOffsetX: (_l = (_k = params.position) == null ? void 0 : _k.offsetX) == null ? void 0 : _l.desktop,
48
+ triggerOffsetY: (_n = (_m = params.position) == null ? void 0 : _m.offsetY) == null ? void 0 : _n.desktop,
49
+ mobile: {
50
+ triggerSize: "small",
51
+ triggerPositionX: (_q = (_p = (_o = params.position) == null ? void 0 : _o.x) == null ? void 0 : _p.mobile) != null ? _q : "right",
52
+ triggerPositionY: (_t = (_s = (_r = params.position) == null ? void 0 : _r.y) == null ? void 0 : _s.mobile) != null ? _t : "bottom",
53
+ triggerOffsetX: (_w = (_v = (_u = params.position) == null ? void 0 : _u.offsetX) == null ? void 0 : _v.mobile) != null ? _w : 4,
54
+ triggerOffsetY: (_z = (_y = (_x = params.position) == null ? void 0 : _x.offsetY) == null ? void 0 : _y.mobile) != null ? _z : 4,
55
+ triggerRadius: "20"
56
+ }
57
+ });
58
+ };
59
+ head.appendChild(script);
60
+ logger == null ? void 0 : logger.info("Accessibility plugin initialised");
61
+ } catch (error) {
62
+ logger == null ? void 0 : logger.error("Accessibility plugin failed to initialise", error);
63
+ }
64
+ }
65
+ });
66
+
67
+ // src/accessibility/accessibility.cdn.ts
68
+ if (typeof window.inploi !== "object") {
69
+ throw new Error("Please insert the SDK script tag above the plugins.");
70
+ }
71
+ window.inploi.createAccessibilityPlugin = createAccessibilityPlugin;
72
+ })();
@@ -24,7 +24,9 @@
24
24
  };
25
25
 
26
26
  // src/common/common.plugins.ts
27
- var createPlugin = (pluginName, { initialise }) => ({
27
+ var createPlugin = (pluginName, {
28
+ initialise
29
+ }) => ({
28
30
  pluginName,
29
31
  initialise
30
32
  });
@@ -68,7 +70,12 @@
68
70
  }
69
71
  });
70
72
  }
71
- return { log };
73
+ return {
74
+ /** Logs an event including some client-side metadata.
75
+ * Will fail if called on the server, as it needs access to window and document.
76
+ */
77
+ log
78
+ };
72
79
  }
73
80
 
74
81
  // src/journeys/journeys.ts
package/cdn/sdk.js CHANGED
@@ -42,10 +42,14 @@
42
42
  });
43
43
  };
44
44
 
45
- // src/journeys/journeys.constants.ts
46
- var ENV_TO_API_URL = {
47
- sandbox: "https://preview.api.inploi.com",
48
- production: "https://api.inploi.com"
45
+ // src/common/common.logger.ts
46
+ var CONSOLE_PREFIX = "%c[inploi SDK]";
47
+ var CONSOLE_STYLE = "color: #65BC67; font-weight: bold;";
48
+ var inploiBrandedLogger = {
49
+ warn: (message) => console.warn(CONSOLE_PREFIX, CONSOLE_STYLE, message),
50
+ error: (message) => console.error(CONSOLE_PREFIX, CONSOLE_STYLE, message),
51
+ info: (message) => console.info(CONSOLE_PREFIX, CONSOLE_STYLE, message),
52
+ log: (message) => console.log(CONSOLE_PREFIX, CONSOLE_STYLE, message)
49
53
  };
50
54
 
51
55
  // src/journeys/journeys.api.ts
@@ -80,14 +84,10 @@
80
84
  };
81
85
  };
82
86
 
83
- // src/common/common.logger.ts
84
- var CONSOLE_PREFIX = "%c[inploi SDK]";
85
- var CONSOLE_STYLE = "color: #65BC67; font-weight: bold;";
86
- var inploiBrandedLogger = {
87
- warn: (message) => console.warn(CONSOLE_PREFIX, CONSOLE_STYLE, message),
88
- error: (message) => console.error(CONSOLE_PREFIX, CONSOLE_STYLE, message),
89
- info: (message) => console.info(CONSOLE_PREFIX, CONSOLE_STYLE, message),
90
- log: (message) => console.log(CONSOLE_PREFIX, CONSOLE_STYLE, message)
87
+ // src/journeys/journeys.constants.ts
88
+ var ENV_TO_API_URL = {
89
+ sandbox: "https://preview.api.inploi.com",
90
+ production: "https://api.inploi.com"
91
91
  };
92
92
 
93
93
  // src/sdk.ts
@@ -97,13 +97,14 @@
97
97
  plugins,
98
98
  logger = inploiBrandedLogger
99
99
  }) {
100
- if (typeof window === "undefined")
101
- return null;
102
100
  const apiClient = createApiClient({ baseUrl: ENV_TO_API_URL[env], publishableKey });
103
- const pluginsObj = plugins.reduce((acc, plugin) => {
104
- acc[plugin.pluginName] = plugin.initialise({ apiClient, logger });
105
- return acc;
106
- }, {});
101
+ const pluginsObj = plugins.reduce(
102
+ (acc, plugin) => {
103
+ acc[plugin.pluginName] = plugin.initialise({ apiClient, logger });
104
+ return acc;
105
+ },
106
+ {}
107
+ );
107
108
  return pluginsObj;
108
109
  }
109
110
 
@@ -0,0 +1,61 @@
1
+ import { P as Plugin } from '../common.plugins-1ba83e05.js';
2
+
3
+ type AccessibeSize = 'small' | 'medium' | 'big';
4
+ type HorizontalPosition = 'left' | 'right';
5
+ type VerticalPosition = 'top' | 'center' | 'bottom';
6
+ type AccessibilityPluginLanguage = 'en' | 'es' | 'fr' | 'de' | 'pl' | 'it' | 'pt' | 'nl' | 'hu' | 'sl' | 'sk' | 'cs' | 'tr' | 'ja' | 'tw' | 'zh' | 'he' | 'ru' | 'ar';
7
+ type AccessibeParams = {
8
+ statementLink: string;
9
+ footerHtml: string;
10
+ hideMobile: boolean;
11
+ hideTrigger: boolean;
12
+ disableBgProcess: boolean;
13
+ language: AccessibilityPluginLanguage;
14
+ position: HorizontalPosition;
15
+ leadColor: string;
16
+ triggerColor: string;
17
+ triggerRadius: string;
18
+ triggerPositionX: HorizontalPosition;
19
+ triggerPositionY: VerticalPosition;
20
+ triggerIcon: string;
21
+ triggerSize: AccessibeSize;
22
+ triggerOffsetX: number | undefined;
23
+ triggerOffsetY: number | undefined;
24
+ mobile: {
25
+ triggerSize: AccessibeSize;
26
+ triggerPositionX: HorizontalPosition;
27
+ triggerPositionY: VerticalPosition;
28
+ triggerOffsetX: number;
29
+ triggerOffsetY: number;
30
+ triggerRadius: string;
31
+ };
32
+ };
33
+ declare global {
34
+ interface Window {
35
+ acsbJS: {
36
+ init: (params: AccessibeParams) => void;
37
+ };
38
+ }
39
+ }
40
+
41
+ type Responsive<T> = {
42
+ mobile: T;
43
+ desktop: T;
44
+ };
45
+ type AccessibilityPluginParams = {
46
+ language?: AccessibilityPluginLanguage;
47
+ colors: {
48
+ interface: string;
49
+ trigger: string;
50
+ };
51
+ showTrigger?: boolean;
52
+ position?: {
53
+ x?: Responsive<HorizontalPosition>;
54
+ y?: Responsive<VerticalPosition>;
55
+ offsetX?: Responsive<number>;
56
+ offsetY?: Responsive<number>;
57
+ };
58
+ };
59
+ declare const createAccessibilityPlugin: (params: AccessibilityPluginParams) => Plugin<"accessibility", void>;
60
+
61
+ export { AccessibilityPluginParams, createAccessibilityPlugin };
@@ -0,0 +1,61 @@
1
+ import { P as Plugin } from '../common.plugins-1ba83e05.js';
2
+
3
+ type AccessibeSize = 'small' | 'medium' | 'big';
4
+ type HorizontalPosition = 'left' | 'right';
5
+ type VerticalPosition = 'top' | 'center' | 'bottom';
6
+ type AccessibilityPluginLanguage = 'en' | 'es' | 'fr' | 'de' | 'pl' | 'it' | 'pt' | 'nl' | 'hu' | 'sl' | 'sk' | 'cs' | 'tr' | 'ja' | 'tw' | 'zh' | 'he' | 'ru' | 'ar';
7
+ type AccessibeParams = {
8
+ statementLink: string;
9
+ footerHtml: string;
10
+ hideMobile: boolean;
11
+ hideTrigger: boolean;
12
+ disableBgProcess: boolean;
13
+ language: AccessibilityPluginLanguage;
14
+ position: HorizontalPosition;
15
+ leadColor: string;
16
+ triggerColor: string;
17
+ triggerRadius: string;
18
+ triggerPositionX: HorizontalPosition;
19
+ triggerPositionY: VerticalPosition;
20
+ triggerIcon: string;
21
+ triggerSize: AccessibeSize;
22
+ triggerOffsetX: number | undefined;
23
+ triggerOffsetY: number | undefined;
24
+ mobile: {
25
+ triggerSize: AccessibeSize;
26
+ triggerPositionX: HorizontalPosition;
27
+ triggerPositionY: VerticalPosition;
28
+ triggerOffsetX: number;
29
+ triggerOffsetY: number;
30
+ triggerRadius: string;
31
+ };
32
+ };
33
+ declare global {
34
+ interface Window {
35
+ acsbJS: {
36
+ init: (params: AccessibeParams) => void;
37
+ };
38
+ }
39
+ }
40
+
41
+ type Responsive<T> = {
42
+ mobile: T;
43
+ desktop: T;
44
+ };
45
+ type AccessibilityPluginParams = {
46
+ language?: AccessibilityPluginLanguage;
47
+ colors: {
48
+ interface: string;
49
+ trigger: string;
50
+ };
51
+ showTrigger?: boolean;
52
+ position?: {
53
+ x?: Responsive<HorizontalPosition>;
54
+ y?: Responsive<VerticalPosition>;
55
+ offsetX?: Responsive<number>;
56
+ offsetY?: Responsive<number>;
57
+ };
58
+ };
59
+ declare const createAccessibilityPlugin: (params: AccessibilityPluginParams) => Plugin<"accessibility", void>;
60
+
61
+ export { AccessibilityPluginParams, createAccessibilityPlugin };
@@ -0,0 +1,2 @@
1
+ "use strict";var n=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var W=(i,e)=>{for(var s in e)n(i,s,{get:e[s],enumerable:!0})},_=(i,e,s,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of E(e))!O.call(i,o)&&o!==s&&n(i,o,{get:()=>e[o],enumerable:!(t=D(e,o))||t.enumerable});return i};var H=i=>_(n({},"__esModule",{value:!0}),i);var B={};W(B,{createAccessibilityPlugin:()=>j});module.exports=H(B);var z=(i,{initialise:e})=>({pluginName:i,initialise:e});var r="inploi-a11y";var j=i=>z("accessibility",{initialise:({logger:e})=>{if(!(typeof window=="undefined"||document.getElementById(r)!==null))try{let t=document.createElement("script"),o=document.querySelector("head")||document.body;t.id=r,t.src="https://acsbapp.com/apps/app/dist/js/app.js",t.async=!0,t.onload=function(){var g,l,p,c,a,f,d,u,P,m,b,y,T,h,x,A,R,C,I,k,w,X,Y,S,v,L;window.acsbJS.init({statementLink:"",footerHtml:"Powered by inploi",hideMobile:!1,hideTrigger:i.showTrigger!==!1,disableBgProcess:!1,language:(g=i.language)!=null?g:"en",position:(c=(p=(l=i.position)==null?void 0:l.x)==null?void 0:p.desktop)!=null?c:"right",leadColor:i.colors.interface,triggerColor:i.colors.trigger,triggerRadius:"50%",triggerPositionX:(d=(f=(a=i.position)==null?void 0:a.x)==null?void 0:f.desktop)!=null?d:"right",triggerPositionY:(m=(P=(u=i.position)==null?void 0:u.y)==null?void 0:P.desktop)!=null?m:"bottom",triggerIcon:"people",triggerSize:"medium",triggerOffsetX:(y=(b=i.position)==null?void 0:b.offsetX)==null?void 0:y.desktop,triggerOffsetY:(h=(T=i.position)==null?void 0:T.offsetY)==null?void 0:h.desktop,mobile:{triggerSize:"small",triggerPositionX:(R=(A=(x=i.position)==null?void 0:x.x)==null?void 0:A.mobile)!=null?R:"right",triggerPositionY:(k=(I=(C=i.position)==null?void 0:C.y)==null?void 0:I.mobile)!=null?k:"bottom",triggerOffsetX:(Y=(X=(w=i.position)==null?void 0:w.offsetX)==null?void 0:X.mobile)!=null?Y:4,triggerOffsetY:(L=(v=(S=i.position)==null?void 0:S.offsetY)==null?void 0:v.mobile)!=null?L:4,triggerRadius:"20"}})},o.appendChild(t),e==null||e.info("Accessibility plugin initialised")}catch(t){e==null||e.error("Accessibility plugin failed to initialise",t)}}});0&&(module.exports={createAccessibilityPlugin});
2
+ //# sourceMappingURL=accessibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/accessibility/accessibility.ts","../../src/common/common.plugins.ts","../../src/accessibility/accessibility.constants.ts"],"sourcesContent":["import { createPlugin } from '../common/common.plugins';\nimport { WIDGET_SCRIPT_ID } from './accessibility.constants';\nimport { AccessibilityPluginLanguage, HorizontalPosition, VerticalPosition } from './accessibility.types';\n\ntype Responsive<T> = {\n\tmobile: T;\n\tdesktop: T;\n};\n\nexport type AccessibilityPluginParams = {\n\tlanguage?: AccessibilityPluginLanguage;\n\tcolors: {\n\t\tinterface: string;\n\t\ttrigger: string;\n\t};\n\tshowTrigger?: boolean;\n\tposition?: {\n\t\tx?: Responsive<HorizontalPosition>;\n\t\ty?: Responsive<VerticalPosition>;\n\t\toffsetX?: Responsive<number>;\n\t\toffsetY?: Responsive<number>;\n\t};\n};\n\nexport const createAccessibilityPlugin = (params: AccessibilityPluginParams) =>\n\tcreatePlugin('accessibility', {\n\t\tinitialise: ({ logger }) => {\n\t\t\tif (typeof window === 'undefined') return;\n\t\t\tconst a11yWidget = document.getElementById(WIDGET_SCRIPT_ID);\n\t\t\tif (a11yWidget !== null) return;\n\n\t\t\ttry {\n\t\t\t\tconst script = document.createElement('script');\n\t\t\t\tconst head = document.querySelector('head') || document.body;\n\t\t\t\tscript.id = WIDGET_SCRIPT_ID;\n\t\t\t\tscript.src = 'https://acsbapp.com/apps/app/dist/js/app.js';\n\t\t\t\tscript.async = true;\n\t\t\t\tscript.onload = function () {\n\t\t\t\t\twindow.acsbJS.init({\n\t\t\t\t\t\tstatementLink: '',\n\t\t\t\t\t\tfooterHtml: 'Powered by inploi',\n\t\t\t\t\t\thideMobile: false,\n\t\t\t\t\t\thideTrigger: params.showTrigger !== false,\n\t\t\t\t\t\tdisableBgProcess: false,\n\t\t\t\t\t\tlanguage: params.language ?? 'en',\n\t\t\t\t\t\tposition: params.position?.x?.desktop ?? 'right',\n\t\t\t\t\t\tleadColor: params.colors.interface,\n\t\t\t\t\t\ttriggerColor: params.colors.trigger,\n\t\t\t\t\t\ttriggerRadius: '50%',\n\t\t\t\t\t\ttriggerPositionX: params.position?.x?.desktop ?? 'right',\n\t\t\t\t\t\ttriggerPositionY: params.position?.y?.desktop ?? 'bottom',\n\t\t\t\t\t\ttriggerIcon: 'people',\n\t\t\t\t\t\ttriggerSize: 'medium',\n\t\t\t\t\t\ttriggerOffsetX: params.position?.offsetX?.desktop,\n\t\t\t\t\t\ttriggerOffsetY: params.position?.offsetY?.desktop,\n\t\t\t\t\t\tmobile: {\n\t\t\t\t\t\t\ttriggerSize: 'small',\n\t\t\t\t\t\t\ttriggerPositionX: params.position?.x?.mobile ?? 'right',\n\t\t\t\t\t\t\ttriggerPositionY: params.position?.y?.mobile ?? 'bottom',\n\t\t\t\t\t\t\ttriggerOffsetX: params.position?.offsetX?.mobile ?? 4,\n\t\t\t\t\t\t\ttriggerOffsetY: params.position?.offsetY?.mobile ?? 4,\n\t\t\t\t\t\t\ttriggerRadius: '20',\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\thead.appendChild(script);\n\t\t\t\tlogger?.info('Accessibility plugin initialised');\n\t\t\t} catch (error) {\n\t\t\t\tlogger?.error('Accessibility plugin failed to initialise', error);\n\t\t\t}\n\t\t},\n\t});\n","import { ApiClient } from '../journeys/journeys.api';\nimport { Logger } from './common.logger';\n\nexport type PluginParams = {\n\tapiClient: ApiClient;\n\tlogger?: Logger;\n};\n\nexport type Plugin<T extends string, P> = {\n\tpluginName: T;\n\tinitialise: (params: PluginParams) => P;\n};\n\nexport const createPlugin = <T extends string, P>(\n\t/** The plugin name to access its properties.\n\t * @example const myPluginVariable = createPlugin('myPluginName', { initialise: () => 'works' });\n\t * const sdk = initialiseSdk({plugins: [myPluginVariable]});\n\t * sdk.myPluginName // 'works'\n\t * sdk.myPluginVariable // undefined\n\t */\n\tpluginName: T,\n\t{\n\t\tinitialise,\n\t}: {\n\t\t/** Called when the SDK is initialised.\n\t\t * Here’s where you can do any one-off initialisation.\n\t\t * Returning a value or function will make it available to the SDK client.\n\t\t * @example const plugin = createPlugin('foo', { initialise: () => ({ bar: 'baz' }) });\n\t\t * const sdk = initialiseSdk({plugins: [plugin]});\n\t\t * sdk.foo.bar // 'baz'\n\t\t */\n\t\tinitialise: (params: PluginParams) => P;\n\t},\n): Plugin<T, P> => ({\n\tpluginName,\n\tinitialise,\n});\n","export const WIDGET_SCRIPT_ID = 'inploi-a11y';\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,+BAAAE,IAAA,eAAAC,EAAAH,GCaO,IAAMI,EAAe,CAO3BC,EACA,CACC,WAAAC,CACD,KAUmB,CACnB,WAAAD,EACA,WAAAC,CACD,GCpCO,IAAMC,EAAmB,cFwBzB,IAAMC,EAA6BC,GACzCC,EAAa,gBAAiB,CAC7B,WAAY,CAAC,CAAE,OAAAC,CAAO,IAAM,CAG3B,GAFI,SAAO,QAAW,aACH,SAAS,eAAeC,CAAgB,IACxC,MAEnB,GAAI,CACH,IAAMC,EAAS,SAAS,cAAc,QAAQ,EACxCC,EAAO,SAAS,cAAc,MAAM,GAAK,SAAS,KACxDD,EAAO,GAAKD,EACZC,EAAO,IAAM,8CACbA,EAAO,MAAQ,GACfA,EAAO,OAAS,UAAY,CArChC,IAAAE,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAsCK,OAAO,OAAO,KAAK,CAClB,cAAe,GACf,WAAY,oBACZ,WAAY,GACZ,YAAa/B,EAAO,cAAgB,GACpC,iBAAkB,GAClB,UAAUM,EAAAN,EAAO,WAAP,KAAAM,EAAmB,KAC7B,UAAUG,GAAAD,GAAAD,EAAAP,EAAO,WAAP,YAAAO,EAAiB,IAAjB,YAAAC,EAAoB,UAApB,KAAAC,EAA+B,QACzC,UAAWT,EAAO,OAAO,UACzB,aAAcA,EAAO,OAAO,QAC5B,cAAe,MACf,kBAAkBY,GAAAD,GAAAD,EAAAV,EAAO,WAAP,YAAAU,EAAiB,IAAjB,YAAAC,EAAoB,UAApB,KAAAC,EAA+B,QACjD,kBAAkBG,GAAAD,GAAAD,EAAAb,EAAO,WAAP,YAAAa,EAAiB,IAAjB,YAAAC,EAAoB,UAApB,KAAAC,EAA+B,SACjD,YAAa,SACb,YAAa,SACb,gBAAgBE,GAAAD,EAAAhB,EAAO,WAAP,YAAAgB,EAAiB,UAAjB,YAAAC,EAA0B,QAC1C,gBAAgBE,GAAAD,EAAAlB,EAAO,WAAP,YAAAkB,EAAiB,UAAjB,YAAAC,EAA0B,QAC1C,OAAQ,CACP,YAAa,QACb,kBAAkBG,GAAAD,GAAAD,EAAApB,EAAO,WAAP,YAAAoB,EAAiB,IAAjB,YAAAC,EAAoB,SAApB,KAAAC,EAA8B,QAChD,kBAAkBG,GAAAD,GAAAD,EAAAvB,EAAO,WAAP,YAAAuB,EAAiB,IAAjB,YAAAC,EAAoB,SAApB,KAAAC,EAA8B,SAChD,gBAAgBG,GAAAD,GAAAD,EAAA1B,EAAO,WAAP,YAAA0B,EAAiB,UAAjB,YAAAC,EAA0B,SAA1B,KAAAC,EAAoC,EACpD,gBAAgBG,GAAAD,GAAAD,EAAA7B,EAAO,WAAP,YAAA6B,EAAiB,UAAjB,YAAAC,EAA0B,SAA1B,KAAAC,EAAoC,EACpD,cAAe,IAChB,CACD,CAAC,CACF,EACA1B,EAAK,YAAYD,CAAM,EACvBF,GAAA,MAAAA,EAAQ,KAAK,mCACd,OAAS8B,EAAO,CACf9B,GAAA,MAAAA,EAAQ,MAAM,4CAA6C8B,EAC5D,CACD,CACD,CAAC","names":["accessibility_exports","__export","createAccessibilityPlugin","__toCommonJS","createPlugin","pluginName","initialise","WIDGET_SCRIPT_ID","createAccessibilityPlugin","params","createPlugin","logger","WIDGET_SCRIPT_ID","script","head","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","error"]}
@@ -0,0 +1,2 @@
1
+ import{d as v}from"../chunk-DG423OQK.mjs";var o="inploi-a11y";var W=i=>v("accessibility",{initialise:({logger:t})=>{if(!(typeof window=="undefined"||document.getElementById(o)!==null))try{let e=document.createElement("script"),C=document.querySelector("head")||document.body;e.id=o,e.src="https://acsbapp.com/apps/app/dist/js/app.js",e.async=!0,e.onload=function(){var s,n,r,l,c,g,p,f,d,a,u,b,y,P,m,h,T,R,I,k,w,x,A,X,Y,S;window.acsbJS.init({statementLink:"",footerHtml:"Powered by inploi",hideMobile:!1,hideTrigger:i.showTrigger!==!1,disableBgProcess:!1,language:(s=i.language)!=null?s:"en",position:(l=(r=(n=i.position)==null?void 0:n.x)==null?void 0:r.desktop)!=null?l:"right",leadColor:i.colors.interface,triggerColor:i.colors.trigger,triggerRadius:"50%",triggerPositionX:(p=(g=(c=i.position)==null?void 0:c.x)==null?void 0:g.desktop)!=null?p:"right",triggerPositionY:(a=(d=(f=i.position)==null?void 0:f.y)==null?void 0:d.desktop)!=null?a:"bottom",triggerIcon:"people",triggerSize:"medium",triggerOffsetX:(b=(u=i.position)==null?void 0:u.offsetX)==null?void 0:b.desktop,triggerOffsetY:(P=(y=i.position)==null?void 0:y.offsetY)==null?void 0:P.desktop,mobile:{triggerSize:"small",triggerPositionX:(T=(h=(m=i.position)==null?void 0:m.x)==null?void 0:h.mobile)!=null?T:"right",triggerPositionY:(k=(I=(R=i.position)==null?void 0:R.y)==null?void 0:I.mobile)!=null?k:"bottom",triggerOffsetX:(A=(x=(w=i.position)==null?void 0:w.offsetX)==null?void 0:x.mobile)!=null?A:4,triggerOffsetY:(S=(Y=(X=i.position)==null?void 0:X.offsetY)==null?void 0:Y.mobile)!=null?S:4,triggerRadius:"20"}})},C.appendChild(e),t==null||t.info("Accessibility plugin initialised")}catch(e){t==null||t.error("Accessibility plugin failed to initialise",e)}}});export{W as createAccessibilityPlugin};
2
+ //# sourceMappingURL=accessibility.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/accessibility/accessibility.constants.ts","../../src/accessibility/accessibility.ts"],"sourcesContent":["export const WIDGET_SCRIPT_ID = 'inploi-a11y';\n","import { createPlugin } from '../common/common.plugins';\nimport { WIDGET_SCRIPT_ID } from './accessibility.constants';\nimport { AccessibilityPluginLanguage, HorizontalPosition, VerticalPosition } from './accessibility.types';\n\ntype Responsive<T> = {\n\tmobile: T;\n\tdesktop: T;\n};\n\nexport type AccessibilityPluginParams = {\n\tlanguage?: AccessibilityPluginLanguage;\n\tcolors: {\n\t\tinterface: string;\n\t\ttrigger: string;\n\t};\n\tshowTrigger?: boolean;\n\tposition?: {\n\t\tx?: Responsive<HorizontalPosition>;\n\t\ty?: Responsive<VerticalPosition>;\n\t\toffsetX?: Responsive<number>;\n\t\toffsetY?: Responsive<number>;\n\t};\n};\n\nexport const createAccessibilityPlugin = (params: AccessibilityPluginParams) =>\n\tcreatePlugin('accessibility', {\n\t\tinitialise: ({ logger }) => {\n\t\t\tif (typeof window === 'undefined') return;\n\t\t\tconst a11yWidget = document.getElementById(WIDGET_SCRIPT_ID);\n\t\t\tif (a11yWidget !== null) return;\n\n\t\t\ttry {\n\t\t\t\tconst script = document.createElement('script');\n\t\t\t\tconst head = document.querySelector('head') || document.body;\n\t\t\t\tscript.id = WIDGET_SCRIPT_ID;\n\t\t\t\tscript.src = 'https://acsbapp.com/apps/app/dist/js/app.js';\n\t\t\t\tscript.async = true;\n\t\t\t\tscript.onload = function () {\n\t\t\t\t\twindow.acsbJS.init({\n\t\t\t\t\t\tstatementLink: '',\n\t\t\t\t\t\tfooterHtml: 'Powered by inploi',\n\t\t\t\t\t\thideMobile: false,\n\t\t\t\t\t\thideTrigger: params.showTrigger !== false,\n\t\t\t\t\t\tdisableBgProcess: false,\n\t\t\t\t\t\tlanguage: params.language ?? 'en',\n\t\t\t\t\t\tposition: params.position?.x?.desktop ?? 'right',\n\t\t\t\t\t\tleadColor: params.colors.interface,\n\t\t\t\t\t\ttriggerColor: params.colors.trigger,\n\t\t\t\t\t\ttriggerRadius: '50%',\n\t\t\t\t\t\ttriggerPositionX: params.position?.x?.desktop ?? 'right',\n\t\t\t\t\t\ttriggerPositionY: params.position?.y?.desktop ?? 'bottom',\n\t\t\t\t\t\ttriggerIcon: 'people',\n\t\t\t\t\t\ttriggerSize: 'medium',\n\t\t\t\t\t\ttriggerOffsetX: params.position?.offsetX?.desktop,\n\t\t\t\t\t\ttriggerOffsetY: params.position?.offsetY?.desktop,\n\t\t\t\t\t\tmobile: {\n\t\t\t\t\t\t\ttriggerSize: 'small',\n\t\t\t\t\t\t\ttriggerPositionX: params.position?.x?.mobile ?? 'right',\n\t\t\t\t\t\t\ttriggerPositionY: params.position?.y?.mobile ?? 'bottom',\n\t\t\t\t\t\t\ttriggerOffsetX: params.position?.offsetX?.mobile ?? 4,\n\t\t\t\t\t\t\ttriggerOffsetY: params.position?.offsetY?.mobile ?? 4,\n\t\t\t\t\t\t\ttriggerRadius: '20',\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\thead.appendChild(script);\n\t\t\t\tlogger?.info('Accessibility plugin initialised');\n\t\t\t} catch (error) {\n\t\t\t\tlogger?.error('Accessibility plugin failed to initialise', error);\n\t\t\t}\n\t\t},\n\t});\n"],"mappings":"0CAAO,IAAMA,EAAmB,cCwBzB,IAAMC,EAA6BC,GACzCC,EAAa,gBAAiB,CAC7B,WAAY,CAAC,CAAE,OAAAC,CAAO,IAAM,CAG3B,GAFI,SAAO,QAAW,aACH,SAAS,eAAeC,CAAgB,IACxC,MAEnB,GAAI,CACH,IAAMC,EAAS,SAAS,cAAc,QAAQ,EACxCC,EAAO,SAAS,cAAc,MAAM,GAAK,SAAS,KACxDD,EAAO,GAAKD,EACZC,EAAO,IAAM,8CACbA,EAAO,MAAQ,GACfA,EAAO,OAAS,UAAY,CArChC,IAAAE,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAsCK,OAAO,OAAO,KAAK,CAClB,cAAe,GACf,WAAY,oBACZ,WAAY,GACZ,YAAa/B,EAAO,cAAgB,GACpC,iBAAkB,GAClB,UAAUM,EAAAN,EAAO,WAAP,KAAAM,EAAmB,KAC7B,UAAUG,GAAAD,GAAAD,EAAAP,EAAO,WAAP,YAAAO,EAAiB,IAAjB,YAAAC,EAAoB,UAApB,KAAAC,EAA+B,QACzC,UAAWT,EAAO,OAAO,UACzB,aAAcA,EAAO,OAAO,QAC5B,cAAe,MACf,kBAAkBY,GAAAD,GAAAD,EAAAV,EAAO,WAAP,YAAAU,EAAiB,IAAjB,YAAAC,EAAoB,UAApB,KAAAC,EAA+B,QACjD,kBAAkBG,GAAAD,GAAAD,EAAAb,EAAO,WAAP,YAAAa,EAAiB,IAAjB,YAAAC,EAAoB,UAApB,KAAAC,EAA+B,SACjD,YAAa,SACb,YAAa,SACb,gBAAgBE,GAAAD,EAAAhB,EAAO,WAAP,YAAAgB,EAAiB,UAAjB,YAAAC,EAA0B,QAC1C,gBAAgBE,GAAAD,EAAAlB,EAAO,WAAP,YAAAkB,EAAiB,UAAjB,YAAAC,EAA0B,QAC1C,OAAQ,CACP,YAAa,QACb,kBAAkBG,GAAAD,GAAAD,EAAApB,EAAO,WAAP,YAAAoB,EAAiB,IAAjB,YAAAC,EAAoB,SAApB,KAAAC,EAA8B,QAChD,kBAAkBG,GAAAD,GAAAD,EAAAvB,EAAO,WAAP,YAAAuB,EAAiB,IAAjB,YAAAC,EAAoB,SAApB,KAAAC,EAA8B,SAChD,gBAAgBG,GAAAD,GAAAD,EAAA1B,EAAO,WAAP,YAAA0B,EAAiB,UAAjB,YAAAC,EAA0B,SAA1B,KAAAC,EAAoC,EACpD,gBAAgBG,GAAAD,GAAAD,EAAA7B,EAAO,WAAP,YAAA6B,EAAiB,UAAjB,YAAAC,EAA0B,SAA1B,KAAAC,EAAoC,EACpD,cAAe,IAChB,CACD,CAAC,CACF,EACA1B,EAAK,YAAYD,CAAM,EACvBF,GAAA,MAAAA,EAAQ,KAAK,mCACd,OAAS8B,EAAO,CACf9B,GAAA,MAAAA,EAAQ,MAAM,4CAA6C8B,EAC5D,CACD,CACD,CAAC","names":["WIDGET_SCRIPT_ID","createAccessibilityPlugin","params","createPlugin","logger","WIDGET_SCRIPT_ID","script","head","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","error"]}
@@ -0,0 +1,2 @@
1
+ var m=Object.defineProperty,u=Object.defineProperties;var x=Object.getOwnPropertyDescriptors;var P=Object.getOwnPropertySymbols;var T=Object.prototype.hasOwnProperty,C=Object.prototype.propertyIsEnumerable;var l=(r,i,e)=>i in r?m(r,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[i]=e,c=(r,i)=>{for(var e in i||(i={}))T.call(i,e)&&l(r,e,i[e]);if(P)for(var e of P(i))C.call(i,e)&&l(r,e,i[e]);return r},d=(r,i)=>u(r,x(i));var f=(r,i,e)=>new Promise((p,g)=>{var s=t=>{try{n(e.next(t))}catch(a){g(a)}},o=t=>{try{n(e.throw(t))}catch(a){g(a)}},n=t=>t.done?p(t.value):Promise.resolve(t.value).then(s,o);n((e=e.apply(r,i)).next())});var A=(r,{initialise:i})=>({pluginName:r,initialise:i});export{c as a,d as b,f as c,A as d};
2
+ //# sourceMappingURL=chunk-DG423OQK.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/common.plugins.ts"],"sourcesContent":["import { ApiClient } from '../journeys/journeys.api';\nimport { Logger } from './common.logger';\n\nexport type PluginParams = {\n\tapiClient: ApiClient;\n\tlogger?: Logger;\n};\n\nexport type Plugin<T extends string, P> = {\n\tpluginName: T;\n\tinitialise: (params: PluginParams) => P;\n};\n\nexport const createPlugin = <T extends string, P>(\n\t/** The plugin name to access its properties.\n\t * @example const myPluginVariable = createPlugin('myPluginName', { initialise: () => 'works' });\n\t * const sdk = initialiseSdk({plugins: [myPluginVariable]});\n\t * sdk.myPluginName // 'works'\n\t * sdk.myPluginVariable // undefined\n\t */\n\tpluginName: T,\n\t{\n\t\tinitialise,\n\t}: {\n\t\t/** Called when the SDK is initialised.\n\t\t * Here’s where you can do any one-off initialisation.\n\t\t * Returning a value or function will make it available to the SDK client.\n\t\t * @example const plugin = createPlugin('foo', { initialise: () => ({ bar: 'baz' }) });\n\t\t * const sdk = initialiseSdk({plugins: [plugin]});\n\t\t * sdk.foo.bar // 'baz'\n\t\t */\n\t\tinitialise: (params: PluginParams) => P;\n\t},\n): Plugin<T, P> => ({\n\tpluginName,\n\tinitialise,\n});\n"],"mappings":"0nBAaO,IAAMA,EAAe,CAO3BC,EACA,CACC,WAAAC,CACD,KAUmB,CACnB,WAAAD,EACA,WAAAC,CACD","names":["createPlugin","pluginName","initialise"]}
@@ -0,0 +1,2 @@
1
+ var o={sandbox:"https://preview.api.inploi.com",production:"https://api.inploi.com"},p="/journey/log";export{o as a,p as b};
2
+ //# sourceMappingURL=chunk-NLLAI5ZB.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/journeys/journeys.constants.ts"],"sourcesContent":["import { AppEnvironment } from '../common/common.constants';\n\nexport const ENV_TO_API_URL: Record<AppEnvironment, string> = {\n\tsandbox: 'https://preview.api.inploi.com',\n\tproduction: 'https://api.inploi.com',\n};\n\nexport const JOURNEY_PATHNAME = '/journey/log';\n"],"mappings":"AAEO,IAAMA,EAAiD,CAC7D,QAAS,iCACT,WAAY,wBACb,EAEaC,EAAmB","names":["ENV_TO_API_URL","JOURNEY_PATHNAME"]}
@@ -22,7 +22,14 @@ type Plugin<T extends string, P> = {
22
22
  pluginName: T;
23
23
  initialise: (params: PluginParams) => P;
24
24
  };
25
- declare const createPlugin: <T extends string, P>(pluginName: T, { initialise }: {
25
+ declare const createPlugin: <T extends string, P>(pluginName: T, { initialise, }: {
26
+ /** Called when the SDK is initialised.
27
+ * Here’s where you can do any one-off initialisation.
28
+ * Returning a value or function will make it available to the SDK client.
29
+ * @example const plugin = createPlugin('foo', { initialise: () => ({ bar: 'baz' }) });
30
+ * const sdk = initialiseSdk({plugins: [plugin]});
31
+ * sdk.foo.bar // 'baz'
32
+ */
26
33
  initialise: (params: PluginParams) => P;
27
34
  }) => Plugin<T, P>;
28
35
 
@@ -1,4 +1,4 @@
1
- import { P as Plugin } from '../common.plugins-030c372f.js';
1
+ import { P as Plugin } from '../common.plugins-1ba83e05.js';
2
2
  import * as _inploi_core_common from '@inploi/core/common';
3
3
 
4
4
  declare const journeysPlugin: Plugin<"journey", {
@@ -1,4 +1,4 @@
1
- import { P as Plugin } from '../common.plugins-030c372f.js';
1
+ import { P as Plugin } from '../common.plugins-1ba83e05.js';
2
2
  import * as _inploi_core_common from '@inploi/core/common';
3
3
 
4
4
  declare const journeysPlugin: Plugin<"journey", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/journeys/journeys.ts","../../src/common/common.plugins.ts","../../src/journeys/journeys.constants.ts","../../src/journeys/journeys.log.ts"],"sourcesContent":["import { createPlugin } from '../common/common.plugins';\nimport { initialiseJourneysPlugin } from './journeys.log';\n\nexport const journeysPlugin = createPlugin('journey', { initialise: initialiseJourneysPlugin });\n","import { Logger } from './common.logger';\nimport { ApiClient } from '../journeys/journeys.api';\n\nexport type PluginParams = {\n\tapiClient: ApiClient;\n\tlogger?: Logger;\n};\n\nexport type Plugin<T extends string, P> = {\n\tpluginName: T;\n\tinitialise: (params: PluginParams) => P;\n};\n\nexport const createPlugin = <T extends string, P>(\n\tpluginName: T,\n\t{ initialise }: { initialise: (params: PluginParams) => P }\n): Plugin<T, P> => ({\n\tpluginName,\n\tinitialise,\n});\n","import { AppEnvironment } from '../common/common.constants';\n\nexport const ENV_TO_API_URL: Record<AppEnvironment, string> = {\n\tsandbox: 'https://preview.api.inploi.com',\n\tproduction: 'https://api.inploi.com',\n};\n\nexport const JOURNEY_PATHNAME = '/journey/log';\n","import { Flatten, ResponseObj } from '@inploi/core/common';\nimport { SDK_VERSION } from '../common/common.constants';\nimport { JOURNEY_PATHNAME } from './journeys.constants';\nimport { PluginParams } from '../common/common.plugins';\n\ntype JourneyLogParams =\n\t| {\n\t\t\tevent: 'VIEW_JOB' | 'APPLY_START' | 'APPLY_COMPLETE';\n\t\t\tproperties: {\n\t\t\t\tjob_id?: string | number | null; // * inploi job id or external job id?\n\t\t\t};\n\t }\n\t| {\n\t\t\tevent: 'IDENTIFY' | 'SUBMIT_FORM' | 'VIEW_PAGE';\n\t\t\tproperties?: undefined;\n\t };\n\nexport type JourneyLogEvent = JourneyLogParams['event'];\n\ntype EventPropertyMap = {\n\t[Param in JourneyLogParams as Param['event']]: Flatten<Omit<Param, 'event'>>;\n};\n\ntype TrackPayload<P> = {\n\tevent: JourneyLogEvent;\n\tsent_at: string;\n\tcontext: {\n\t\tlibrary: {\n\t\t\tname: 'inploi-sdk';\n\t\t\tversion: number;\n\t\t};\n\t\tpage: {\n\t\t\thref: string;\n\t\t\treferrer: string;\n\t\t\ttitle: string;\n\t\t};\n\t};\n\tproperties: P;\n\tcustom_properties?: Record<string, unknown>;\n};\n\nexport function initialiseJourneysPlugin({ apiClient, logger }: PluginParams) {\n\tasync function log<T extends keyof EventPropertyMap>(\n\t\tparams: { event: T; customProperties?: Record<string, unknown> } & EventPropertyMap[T]\n\t): Promise<ResponseObj<TrackPayload<EventPropertyMap[T]['properties']>>> {\n\t\ttry {\n\t\t\tconst data: TrackPayload<EventPropertyMap[T]['properties']> = {\n\t\t\t\tevent: params.event,\n\t\t\t\tsent_at: new Date().toISOString(),\n\t\t\t\tcontext: {\n\t\t\t\t\tlibrary: {\n\t\t\t\t\t\tname: 'inploi-sdk' as const,\n\t\t\t\t\t\tversion: SDK_VERSION,\n\t\t\t\t\t},\n\t\t\t\t\tpage: {\n\t\t\t\t\t\thref: location.href,\n\t\t\t\t\t\treferrer: document.referrer,\n\t\t\t\t\t\ttitle: document.title,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tproperties: params.properties as EventPropertyMap[T]['properties'],\n\t\t\t\tcustom_properties: params.customProperties,\n\t\t\t};\n\n\t\t\tawait apiClient.fetch(JOURNEY_PATHNAME, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\tbody: JSON.stringify(data),\n\t\t\t});\n\n\t\t\treturn { success: true, data };\n\t\t} catch (e) {\n\t\t\t/** We dont’t log any PII on the console */\n\t\t\tlogger?.error('Failed to send journey log to API. Inspect error response of `log` for more information.');\n\t\t\treturn { success: false, error: e };\n\t\t}\n\t}\n\n\treturn { log };\n}\n"],"mappings":"snBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,IAAA,eAAAC,EAAAH,GCaO,IAAMI,EAAe,CAC3BC,EACA,CAAE,WAAAC,CAAW,KACM,CACnB,WAAAD,EACA,WAAAC,CACD,GCZO,IAAMC,EAAmB,eCkCzB,SAASC,EAAyB,CAAE,UAAAC,EAAW,OAAAC,CAAO,EAAiB,CAC7E,SAAeC,EACdC,EACwE,QAAAC,EAAA,sBACxE,GAAI,CACH,IAAMC,EAAwD,CAC7D,MAAOF,EAAO,MACd,QAAS,IAAI,KAAK,EAAE,YAAY,EAChC,QAAS,CACR,QAAS,CACR,KAAM,aACN,QAAS,CACV,EACA,KAAM,CACL,KAAM,SAAS,KACf,SAAU,SAAS,SACnB,MAAO,SAAS,KACjB,CACD,EACA,WAAYA,EAAO,WACnB,kBAAmBA,EAAO,gBAC3B,EAEA,aAAMH,EAAU,MAAMM,EAAkB,CACvC,OAAQ,OACR,KAAM,KAAK,UAAUD,CAAI,CAC1B,CAAC,EAEM,CAAE,QAAS,GAAM,KAAAA,CAAK,CAC9B,OAASE,EAAG,CAEX,OAAAN,GAAA,MAAAA,EAAQ,MAAM,4FACP,CAAE,QAAS,GAAO,MAAOM,CAAE,CACnC,CACD,GAEA,MAAO,CAAE,IAAAL,CAAI,CACd,CH3EO,IAAMM,EAAiBC,EAAa,UAAW,CAAE,WAAYC,CAAyB,CAAC","names":["journeys_exports","__export","journeysPlugin","__toCommonJS","createPlugin","pluginName","initialise","JOURNEY_PATHNAME","initialiseJourneysPlugin","apiClient","logger","log","params","__async","data","JOURNEY_PATHNAME","e","journeysPlugin","createPlugin","initialiseJourneysPlugin"]}
1
+ {"version":3,"sources":["../../src/journeys/journeys.ts","../../src/common/common.plugins.ts","../../src/journeys/journeys.constants.ts","../../src/journeys/journeys.log.ts"],"sourcesContent":["import { createPlugin } from '../common/common.plugins';\nimport { initialiseJourneysPlugin } from './journeys.log';\n\nexport const journeysPlugin = createPlugin('journey', { initialise: initialiseJourneysPlugin });\n","import { ApiClient } from '../journeys/journeys.api';\nimport { Logger } from './common.logger';\n\nexport type PluginParams = {\n\tapiClient: ApiClient;\n\tlogger?: Logger;\n};\n\nexport type Plugin<T extends string, P> = {\n\tpluginName: T;\n\tinitialise: (params: PluginParams) => P;\n};\n\nexport const createPlugin = <T extends string, P>(\n\t/** The plugin name to access its properties.\n\t * @example const myPluginVariable = createPlugin('myPluginName', { initialise: () => 'works' });\n\t * const sdk = initialiseSdk({plugins: [myPluginVariable]});\n\t * sdk.myPluginName // 'works'\n\t * sdk.myPluginVariable // undefined\n\t */\n\tpluginName: T,\n\t{\n\t\tinitialise,\n\t}: {\n\t\t/** Called when the SDK is initialised.\n\t\t * Here’s where you can do any one-off initialisation.\n\t\t * Returning a value or function will make it available to the SDK client.\n\t\t * @example const plugin = createPlugin('foo', { initialise: () => ({ bar: 'baz' }) });\n\t\t * const sdk = initialiseSdk({plugins: [plugin]});\n\t\t * sdk.foo.bar // 'baz'\n\t\t */\n\t\tinitialise: (params: PluginParams) => P;\n\t},\n): Plugin<T, P> => ({\n\tpluginName,\n\tinitialise,\n});\n","import { AppEnvironment } from '../common/common.constants';\n\nexport const ENV_TO_API_URL: Record<AppEnvironment, string> = {\n\tsandbox: 'https://preview.api.inploi.com',\n\tproduction: 'https://api.inploi.com',\n};\n\nexport const JOURNEY_PATHNAME = '/journey/log';\n","import { Flatten, ResponseObj } from '@inploi/core/common';\n\nimport { SDK_VERSION } from '../common/common.constants';\nimport { PluginParams } from '../common/common.plugins';\nimport { JOURNEY_PATHNAME } from './journeys.constants';\n\ntype JourneyLogParams =\n\t| {\n\t\t\tevent: 'VIEW_JOB' | 'APPLY_START' | 'APPLY_COMPLETE';\n\t\t\tproperties: {\n\t\t\t\tjob_id?: string | number | null; // * inploi job id or external job id?\n\t\t\t};\n\t }\n\t| {\n\t\t\tevent: 'IDENTIFY' | 'SUBMIT_FORM' | 'VIEW_PAGE';\n\t\t\tproperties?: undefined;\n\t };\n\nexport type JourneyLogEvent = JourneyLogParams['event'];\n\ntype EventPropertyMap = {\n\t[Param in JourneyLogParams as Param['event']]: Flatten<Omit<Param, 'event'>>;\n};\n\ntype TrackPayload<P> = {\n\tevent: JourneyLogEvent;\n\tsent_at: string;\n\tcontext: {\n\t\tlibrary: {\n\t\t\tname: 'inploi-sdk';\n\t\t\tversion: number;\n\t\t};\n\t\tpage: {\n\t\t\thref: string;\n\t\t\treferrer: string;\n\t\t\ttitle: string;\n\t\t};\n\t};\n\tproperties: P;\n\tcustom_properties?: Record<string, unknown>;\n};\n\nexport function initialiseJourneysPlugin({ apiClient, logger }: PluginParams) {\n\tasync function log<T extends keyof EventPropertyMap>(\n\t\tparams: { event: T; customProperties?: Record<string, unknown> } & EventPropertyMap[T],\n\t): Promise<ResponseObj<TrackPayload<EventPropertyMap[T]['properties']>>> {\n\t\ttry {\n\t\t\tconst data: TrackPayload<EventPropertyMap[T]['properties']> = {\n\t\t\t\tevent: params.event,\n\t\t\t\tsent_at: new Date().toISOString(),\n\t\t\t\tcontext: {\n\t\t\t\t\tlibrary: {\n\t\t\t\t\t\tname: 'inploi-sdk' as const,\n\t\t\t\t\t\tversion: SDK_VERSION,\n\t\t\t\t\t},\n\t\t\t\t\tpage: {\n\t\t\t\t\t\thref: location.href,\n\t\t\t\t\t\treferrer: document.referrer,\n\t\t\t\t\t\ttitle: document.title,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tproperties: params.properties as EventPropertyMap[T]['properties'],\n\t\t\t\tcustom_properties: params.customProperties,\n\t\t\t};\n\n\t\t\tawait apiClient.fetch(JOURNEY_PATHNAME, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\tbody: JSON.stringify(data),\n\t\t\t});\n\n\t\t\treturn { success: true, data };\n\t\t} catch (e) {\n\t\t\t/** We dont’t log any PII on the console */\n\t\t\tlogger?.error('Failed to send journey log to API. Inspect error response of `log` for more information.');\n\t\t\treturn { success: false, error: e };\n\t\t}\n\t}\n\n\treturn {\n\t\t/** Logs an event including some client-side metadata.\n\t\t * Will fail if called on the server, as it needs access to window and document.\n\t\t */\n\t\tlog,\n\t};\n}\n"],"mappings":"snBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,IAAA,eAAAC,EAAAH,GCaO,IAAMI,EAAe,CAO3BC,EACA,CACC,WAAAC,CACD,KAUmB,CACnB,WAAAD,EACA,WAAAC,CACD,GC7BO,IAAMC,EAAmB,eCmCzB,SAASC,EAAyB,CAAE,UAAAC,EAAW,OAAAC,CAAO,EAAiB,CAC7E,SAAeC,EACdC,EACwE,QAAAC,EAAA,sBACxE,GAAI,CACH,IAAMC,EAAwD,CAC7D,MAAOF,EAAO,MACd,QAAS,IAAI,KAAK,EAAE,YAAY,EAChC,QAAS,CACR,QAAS,CACR,KAAM,aACN,QAAS,CACV,EACA,KAAM,CACL,KAAM,SAAS,KACf,SAAU,SAAS,SACnB,MAAO,SAAS,KACjB,CACD,EACA,WAAYA,EAAO,WACnB,kBAAmBA,EAAO,gBAC3B,EAEA,aAAMH,EAAU,MAAMM,EAAkB,CACvC,OAAQ,OACR,KAAM,KAAK,UAAUD,CAAI,CAC1B,CAAC,EAEM,CAAE,QAAS,GAAM,KAAAA,CAAK,CAC9B,OAASE,EAAG,CAEX,OAAAN,GAAA,MAAAA,EAAQ,MAAM,4FACP,CAAE,QAAS,GAAO,MAAOM,CAAE,CACnC,CACD,GAEA,MAAO,CAIN,IAAAL,CACD,CACD,CHjFO,IAAMM,EAAiBC,EAAa,UAAW,CAAE,WAAYC,CAAyB,CAAC","names":["journeys_exports","__export","journeysPlugin","__toCommonJS","createPlugin","pluginName","initialise","JOURNEY_PATHNAME","initialiseJourneysPlugin","apiClient","logger","log","params","__async","data","JOURNEY_PATHNAME","e","journeysPlugin","createPlugin","initialiseJourneysPlugin"]}
@@ -1,2 +1,2 @@
1
- import{c as o,e as n,f as i}from"../chunk-KHVPBEFD.mjs";function s({apiClient:p,logger:r}){function a(t){return o(this,null,function*(){try{let e={event:t.event,sent_at:new Date().toISOString(),context:{library:{name:"inploi-sdk",version:1},page:{href:location.href,referrer:document.referrer,title:document.title}},properties:t.properties,custom_properties:t.customProperties};return yield p.fetch(n,{method:"POST",body:JSON.stringify(e)}),{success:!0,data:e}}catch(e){return r==null||r.error("Failed to send journey log to API. Inspect error response of `log` for more information."),{success:!1,error:e}}})}return{log:a}}var v=i("journey",{initialise:s});export{v as journeysPlugin};
1
+ import{b as n}from"../chunk-NLLAI5ZB.mjs";import{c as o,d as i}from"../chunk-DG423OQK.mjs";function s({apiClient:p,logger:r}){function a(t){return o(this,null,function*(){try{let e={event:t.event,sent_at:new Date().toISOString(),context:{library:{name:"inploi-sdk",version:1},page:{href:location.href,referrer:document.referrer,title:document.title}},properties:t.properties,custom_properties:t.customProperties};return yield p.fetch(n,{method:"POST",body:JSON.stringify(e)}),{success:!0,data:e}}catch(e){return r==null||r.error("Failed to send journey log to API. Inspect error response of `log` for more information."),{success:!1,error:e}}})}return{log:a}}var v=i("journey",{initialise:s});export{v as journeysPlugin};
2
2
  //# sourceMappingURL=journeys.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/journeys/journeys.log.ts","../../src/journeys/journeys.ts"],"sourcesContent":["import { Flatten, ResponseObj } from '@inploi/core/common';\nimport { SDK_VERSION } from '../common/common.constants';\nimport { JOURNEY_PATHNAME } from './journeys.constants';\nimport { PluginParams } from '../common/common.plugins';\n\ntype JourneyLogParams =\n\t| {\n\t\t\tevent: 'VIEW_JOB' | 'APPLY_START' | 'APPLY_COMPLETE';\n\t\t\tproperties: {\n\t\t\t\tjob_id?: string | number | null; // * inploi job id or external job id?\n\t\t\t};\n\t }\n\t| {\n\t\t\tevent: 'IDENTIFY' | 'SUBMIT_FORM' | 'VIEW_PAGE';\n\t\t\tproperties?: undefined;\n\t };\n\nexport type JourneyLogEvent = JourneyLogParams['event'];\n\ntype EventPropertyMap = {\n\t[Param in JourneyLogParams as Param['event']]: Flatten<Omit<Param, 'event'>>;\n};\n\ntype TrackPayload<P> = {\n\tevent: JourneyLogEvent;\n\tsent_at: string;\n\tcontext: {\n\t\tlibrary: {\n\t\t\tname: 'inploi-sdk';\n\t\t\tversion: number;\n\t\t};\n\t\tpage: {\n\t\t\thref: string;\n\t\t\treferrer: string;\n\t\t\ttitle: string;\n\t\t};\n\t};\n\tproperties: P;\n\tcustom_properties?: Record<string, unknown>;\n};\n\nexport function initialiseJourneysPlugin({ apiClient, logger }: PluginParams) {\n\tasync function log<T extends keyof EventPropertyMap>(\n\t\tparams: { event: T; customProperties?: Record<string, unknown> } & EventPropertyMap[T]\n\t): Promise<ResponseObj<TrackPayload<EventPropertyMap[T]['properties']>>> {\n\t\ttry {\n\t\t\tconst data: TrackPayload<EventPropertyMap[T]['properties']> = {\n\t\t\t\tevent: params.event,\n\t\t\t\tsent_at: new Date().toISOString(),\n\t\t\t\tcontext: {\n\t\t\t\t\tlibrary: {\n\t\t\t\t\t\tname: 'inploi-sdk' as const,\n\t\t\t\t\t\tversion: SDK_VERSION,\n\t\t\t\t\t},\n\t\t\t\t\tpage: {\n\t\t\t\t\t\thref: location.href,\n\t\t\t\t\t\treferrer: document.referrer,\n\t\t\t\t\t\ttitle: document.title,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tproperties: params.properties as EventPropertyMap[T]['properties'],\n\t\t\t\tcustom_properties: params.customProperties,\n\t\t\t};\n\n\t\t\tawait apiClient.fetch(JOURNEY_PATHNAME, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\tbody: JSON.stringify(data),\n\t\t\t});\n\n\t\t\treturn { success: true, data };\n\t\t} catch (e) {\n\t\t\t/** We dont’t log any PII on the console */\n\t\t\tlogger?.error('Failed to send journey log to API. Inspect error response of `log` for more information.');\n\t\t\treturn { success: false, error: e };\n\t\t}\n\t}\n\n\treturn { log };\n}\n","import { createPlugin } from '../common/common.plugins';\nimport { initialiseJourneysPlugin } from './journeys.log';\n\nexport const journeysPlugin = createPlugin('journey', { initialise: initialiseJourneysPlugin });\n"],"mappings":"wDAyCO,SAASA,EAAyB,CAAE,UAAAC,EAAW,OAAAC,CAAO,EAAiB,CAC7E,SAAeC,EACdC,EACwE,QAAAC,EAAA,sBACxE,GAAI,CACH,IAAMC,EAAwD,CAC7D,MAAOF,EAAO,MACd,QAAS,IAAI,KAAK,EAAE,YAAY,EAChC,QAAS,CACR,QAAS,CACR,KAAM,aACN,QAAS,CACV,EACA,KAAM,CACL,KAAM,SAAS,KACf,SAAU,SAAS,SACnB,MAAO,SAAS,KACjB,CACD,EACA,WAAYA,EAAO,WACnB,kBAAmBA,EAAO,gBAC3B,EAEA,aAAMH,EAAU,MAAMM,EAAkB,CACvC,OAAQ,OACR,KAAM,KAAK,UAAUD,CAAI,CAC1B,CAAC,EAEM,CAAE,QAAS,GAAM,KAAAA,CAAK,CAC9B,OAAS,EAAG,CAEX,OAAAJ,GAAA,MAAAA,EAAQ,MAAM,4FACP,CAAE,QAAS,GAAO,MAAO,CAAE,CACnC,CACD,GAEA,MAAO,CAAE,IAAAC,CAAI,CACd,CC3EO,IAAMK,EAAiBC,EAAa,UAAW,CAAE,WAAYC,CAAyB,CAAC","names":["initialiseJourneysPlugin","apiClient","logger","log","params","__async","data","JOURNEY_PATHNAME","journeysPlugin","createPlugin","initialiseJourneysPlugin"]}
1
+ {"version":3,"sources":["../../src/journeys/journeys.log.ts","../../src/journeys/journeys.ts"],"sourcesContent":["import { Flatten, ResponseObj } from '@inploi/core/common';\n\nimport { SDK_VERSION } from '../common/common.constants';\nimport { PluginParams } from '../common/common.plugins';\nimport { JOURNEY_PATHNAME } from './journeys.constants';\n\ntype JourneyLogParams =\n\t| {\n\t\t\tevent: 'VIEW_JOB' | 'APPLY_START' | 'APPLY_COMPLETE';\n\t\t\tproperties: {\n\t\t\t\tjob_id?: string | number | null; // * inploi job id or external job id?\n\t\t\t};\n\t }\n\t| {\n\t\t\tevent: 'IDENTIFY' | 'SUBMIT_FORM' | 'VIEW_PAGE';\n\t\t\tproperties?: undefined;\n\t };\n\nexport type JourneyLogEvent = JourneyLogParams['event'];\n\ntype EventPropertyMap = {\n\t[Param in JourneyLogParams as Param['event']]: Flatten<Omit<Param, 'event'>>;\n};\n\ntype TrackPayload<P> = {\n\tevent: JourneyLogEvent;\n\tsent_at: string;\n\tcontext: {\n\t\tlibrary: {\n\t\t\tname: 'inploi-sdk';\n\t\t\tversion: number;\n\t\t};\n\t\tpage: {\n\t\t\thref: string;\n\t\t\treferrer: string;\n\t\t\ttitle: string;\n\t\t};\n\t};\n\tproperties: P;\n\tcustom_properties?: Record<string, unknown>;\n};\n\nexport function initialiseJourneysPlugin({ apiClient, logger }: PluginParams) {\n\tasync function log<T extends keyof EventPropertyMap>(\n\t\tparams: { event: T; customProperties?: Record<string, unknown> } & EventPropertyMap[T],\n\t): Promise<ResponseObj<TrackPayload<EventPropertyMap[T]['properties']>>> {\n\t\ttry {\n\t\t\tconst data: TrackPayload<EventPropertyMap[T]['properties']> = {\n\t\t\t\tevent: params.event,\n\t\t\t\tsent_at: new Date().toISOString(),\n\t\t\t\tcontext: {\n\t\t\t\t\tlibrary: {\n\t\t\t\t\t\tname: 'inploi-sdk' as const,\n\t\t\t\t\t\tversion: SDK_VERSION,\n\t\t\t\t\t},\n\t\t\t\t\tpage: {\n\t\t\t\t\t\thref: location.href,\n\t\t\t\t\t\treferrer: document.referrer,\n\t\t\t\t\t\ttitle: document.title,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tproperties: params.properties as EventPropertyMap[T]['properties'],\n\t\t\t\tcustom_properties: params.customProperties,\n\t\t\t};\n\n\t\t\tawait apiClient.fetch(JOURNEY_PATHNAME, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\tbody: JSON.stringify(data),\n\t\t\t});\n\n\t\t\treturn { success: true, data };\n\t\t} catch (e) {\n\t\t\t/** We dont’t log any PII on the console */\n\t\t\tlogger?.error('Failed to send journey log to API. Inspect error response of `log` for more information.');\n\t\t\treturn { success: false, error: e };\n\t\t}\n\t}\n\n\treturn {\n\t\t/** Logs an event including some client-side metadata.\n\t\t * Will fail if called on the server, as it needs access to window and document.\n\t\t */\n\t\tlog,\n\t};\n}\n","import { createPlugin } from '../common/common.plugins';\nimport { initialiseJourneysPlugin } from './journeys.log';\n\nexport const journeysPlugin = createPlugin('journey', { initialise: initialiseJourneysPlugin });\n"],"mappings":"2FA0CO,SAASA,EAAyB,CAAE,UAAAC,EAAW,OAAAC,CAAO,EAAiB,CAC7E,SAAeC,EACdC,EACwE,QAAAC,EAAA,sBACxE,GAAI,CACH,IAAMC,EAAwD,CAC7D,MAAOF,EAAO,MACd,QAAS,IAAI,KAAK,EAAE,YAAY,EAChC,QAAS,CACR,QAAS,CACR,KAAM,aACN,QAAS,CACV,EACA,KAAM,CACL,KAAM,SAAS,KACf,SAAU,SAAS,SACnB,MAAO,SAAS,KACjB,CACD,EACA,WAAYA,EAAO,WACnB,kBAAmBA,EAAO,gBAC3B,EAEA,aAAMH,EAAU,MAAMM,EAAkB,CACvC,OAAQ,OACR,KAAM,KAAK,UAAUD,CAAI,CAC1B,CAAC,EAEM,CAAE,QAAS,GAAM,KAAAA,CAAK,CAC9B,OAAS,EAAG,CAEX,OAAAJ,GAAA,MAAAA,EAAQ,MAAM,4FACP,CAAE,QAAS,GAAO,MAAO,CAAE,CACnC,CACD,GAEA,MAAO,CAIN,IAAAC,CACD,CACD,CCjFO,IAAMK,EAAiBC,EAAa,UAAW,CAAE,WAAYC,CAAyB,CAAC","names":["initialiseJourneysPlugin","apiClient","logger","log","params","__async","data","JOURNEY_PATHNAME","journeysPlugin","createPlugin","initialiseJourneysPlugin"]}
package/dist/sdk.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { P as Plugin, L as Logger } from './common.plugins-030c372f.js';
2
- export { C as CONSOLE_PREFIX, a as CONSOLE_STYLE, c as createPlugin, i as inploiBrandedLogger, n as noLogging } from './common.plugins-030c372f.js';
1
+ import { P as Plugin, L as Logger } from './common.plugins-1ba83e05.js';
2
+ export { C as CONSOLE_PREFIX, a as CONSOLE_STYLE, c as createPlugin, i as inploiBrandedLogger, n as noLogging } from './common.plugins-1ba83e05.js';
3
3
 
4
4
  /**
5
5
  * The environment the SDK should run in.
@@ -26,6 +26,6 @@ declare function initialiseSdk<TPlugin extends Plugin<any, any>>({ publishableKe
26
26
  pluginName: K;
27
27
  } extends infer T ? { [k in keyof T]: (TPlugin & {
28
28
  pluginName: K;
29
- })[k]; } : never)["initialise"]>; } | null;
29
+ })[k]; } : never)["initialise"]>; };
30
30
 
31
31
  export { InitialiseInploiSdkParams, Logger, Plugin, initialiseSdk };
package/dist/sdk.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { P as Plugin, L as Logger } from './common.plugins-030c372f.js';
2
- export { C as CONSOLE_PREFIX, a as CONSOLE_STYLE, c as createPlugin, i as inploiBrandedLogger, n as noLogging } from './common.plugins-030c372f.js';
1
+ import { P as Plugin, L as Logger } from './common.plugins-1ba83e05.js';
2
+ export { C as CONSOLE_PREFIX, a as CONSOLE_STYLE, c as createPlugin, i as inploiBrandedLogger, n as noLogging } from './common.plugins-1ba83e05.js';
3
3
 
4
4
  /**
5
5
  * The environment the SDK should run in.
@@ -26,6 +26,6 @@ declare function initialiseSdk<TPlugin extends Plugin<any, any>>({ publishableKe
26
26
  pluginName: K;
27
27
  } extends infer T ? { [k in keyof T]: (TPlugin & {
28
28
  pluginName: K;
29
- })[k]; } : never)["initialise"]>; } | null;
29
+ })[k]; } : never)["initialise"]>; };
30
30
 
31
31
  export { InitialiseInploiSdkParams, Logger, Plugin, initialiseSdk };
package/dist/sdk.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var l=Object.defineProperty,T=Object.defineProperties,E=Object.getOwnPropertyDescriptor,b=Object.getOwnPropertyDescriptors,C=Object.getOwnPropertyNames,P=Object.getOwnPropertySymbols;var x=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var f=(e,n,o)=>n in e?l(e,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[n]=o,u=(e,n)=>{for(var o in n||(n={}))x.call(n,o)&&f(e,o,n[o]);if(P)for(var o of P(n))v.call(n,o)&&f(e,o,n[o]);return e},h=(e,n)=>T(e,b(n));var I=(e,n)=>{for(var o in n)l(e,o,{get:n[o],enumerable:!0})},N=(e,n,o,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of C(n))!x.call(e,r)&&r!==o&&l(e,r,{get:()=>n[r],enumerable:!(t=E(n,r))||t.enumerable});return e};var O=e=>N(l({},"__esModule",{value:!0}),e);var y=(e,n,o)=>new Promise((t,r)=>{var d=s=>{try{i(o.next(s))}catch(m){r(m)}},a=s=>{try{i(o.throw(s))}catch(m){r(m)}},i=s=>s.done?t(s.value):Promise.resolve(s.value).then(d,a);i((o=o.apply(e,n)).next())});var U={};I(U,{CONSOLE_PREFIX:()=>p,CONSOLE_STYLE:()=>g,createPlugin:()=>A,initialiseSdk:()=>S,inploiBrandedLogger:()=>c,noLogging:()=>R});module.exports=O(U);var L={sandbox:"https://preview.api.inploi.com",production:"https://api.inploi.com"};var _="Unauthenticated",M="This action is unauthorized.",w=e=>{let n={Accept:"application/json","Content-Type":"application/json","x-publishable-key":e.publishableKey};return{fetch:(r,...d)=>y(void 0,[r,...d],function*(o,t={}){let a=h(u({},t),{headers:u(u({},t.headers),n)}),i=yield fetch(`${e.baseUrl}${o}`,a).then(s=>s.json());if("message"in i){if(i.message===_)throw new Error("You are not authenticated.");if(i.message===M)throw new Error("You are not authenticated.");if("exception"in i)throw new Error(`API error: \u201C${i.message}\u201D`);if("errors"in i)throw new Error(`API error: \u201C${i.message}\u201D`)}return i})}};var p="%c[inploi SDK]",g="color: #65BC67; font-weight: bold;",c={warn:e=>console.warn(p,g,e),error:e=>console.error(p,g,e),info:e=>console.info(p,g,e),log:e=>console.log(p,g,e)},R={info:()=>{},error:()=>{},log:()=>{},warn:()=>{}};var A=(e,{initialise:n})=>({pluginName:e,initialise:n});function S({publishableKey:e,env:n,plugins:o,logger:t=c}){if(typeof window=="undefined")return null;let r=w({baseUrl:L[n],publishableKey:e});return o.reduce((a,i)=>(a[i.pluginName]=i.initialise({apiClient:r,logger:t}),a),{})}0&&(module.exports={CONSOLE_PREFIX,CONSOLE_STYLE,createPlugin,initialiseSdk,inploiBrandedLogger,noLogging});
1
+ "use strict";var l=Object.defineProperty,w=Object.defineProperties,E=Object.getOwnPropertyDescriptor,b=Object.getOwnPropertyDescriptors,C=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols;var x=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var f=(e,n,o)=>n in e?l(e,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[n]=o,u=(e,n)=>{for(var o in n||(n={}))x.call(n,o)&&f(e,o,n[o]);if(d)for(var o of d(n))v.call(n,o)&&f(e,o,n[o]);return e},h=(e,n)=>w(e,b(n));var I=(e,n)=>{for(var o in n)l(e,o,{get:n[o],enumerable:!0})},N=(e,n,o,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of C(n))!x.call(e,r)&&r!==o&&l(e,r,{get:()=>n[r],enumerable:!(t=E(n,r))||t.enumerable});return e};var O=e=>N(l({},"__esModule",{value:!0}),e);var y=(e,n,o)=>new Promise((t,r)=>{var P=s=>{try{i(o.next(s))}catch(m){r(m)}},a=s=>{try{i(o.throw(s))}catch(m){r(m)}},i=s=>s.done?t(s.value):Promise.resolve(s.value).then(P,a);i((o=o.apply(e,n)).next())});var U={};I(U,{CONSOLE_PREFIX:()=>p,CONSOLE_STYLE:()=>g,createPlugin:()=>T,initialiseSdk:()=>S,inploiBrandedLogger:()=>c,noLogging:()=>_});module.exports=O(U);var p="%c[inploi SDK]",g="color: #65BC67; font-weight: bold;",c={warn:e=>console.warn(p,g,e),error:e=>console.error(p,g,e),info:e=>console.info(p,g,e),log:e=>console.log(p,g,e)},_={info:()=>{},error:()=>{},log:()=>{},warn:()=>{}};var M="Unauthenticated",R="This action is unauthorized.",L=e=>{let n={Accept:"application/json","Content-Type":"application/json","x-publishable-key":e.publishableKey};return{fetch:(r,...P)=>y(void 0,[r,...P],function*(o,t={}){let a=h(u({},t),{headers:u(u({},t.headers),n)}),i=yield fetch(`${e.baseUrl}${o}`,a).then(s=>s.json());if("message"in i){if(i.message===M)throw new Error("You are not authenticated.");if(i.message===R)throw new Error("You are not authenticated.");if("exception"in i)throw new Error(`API error: \u201C${i.message}\u201D`);if("errors"in i)throw new Error(`API error: \u201C${i.message}\u201D`)}return i})}};var A={sandbox:"https://preview.api.inploi.com",production:"https://api.inploi.com"};var T=(e,{initialise:n})=>({pluginName:e,initialise:n});function S({publishableKey:e,env:n,plugins:o,logger:t=c}){let r=L({baseUrl:A[n],publishableKey:e});return o.reduce((a,i)=>(a[i.pluginName]=i.initialise({apiClient:r,logger:t}),a),{})}0&&(module.exports={CONSOLE_PREFIX,CONSOLE_STYLE,createPlugin,initialiseSdk,inploiBrandedLogger,noLogging});
2
2
  //# sourceMappingURL=sdk.js.map
package/dist/sdk.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/sdk.ts","../src/journeys/journeys.constants.ts","../src/journeys/journeys.api.ts","../src/common/common.logger.ts","../src/common/common.plugins.ts"],"sourcesContent":["import { ENV_TO_API_URL } from './journeys/journeys.constants';\nimport { createApiClient } from './journeys/journeys.api';\nimport { Logger, inploiBrandedLogger } from './common/common.logger';\n\nimport { Flatten } from '@inploi/core/common';\nimport { AppEnvironment } from './common/common.constants';\nimport { Plugin } from './common/common.plugins';\n\n/** Different loggers so people can use `noLogging` */\nexport * from './common/common.logger';\nexport type { Plugin } from './common/common.plugins';\nexport { createPlugin } from './common/common.plugins';\n\nexport type InitialiseInploiSdkParams<P extends Plugin<any, any>> = {\n\t/** Your public API key for the inploi SDK. */\n\tpublishableKey: string;\n\t/** Add your plugins here. Try importing and passing `journeysPlugin` ;) */\n\tplugins: P[];\n\t/** Which app environment to run. This ultimately affects which inploi endpoints to gather data are going to be used.\n\t * Anything other than `production` should be considered a development environment and the data periodicaly purged. */\n\tenv: AppEnvironment;\n\t/** Logger object that handles logging of different levels.\n\t * You can override this to use your own logger, or to disable logging altogether by importing and passing `noLogging`.\n\t * @default inploiBrandedLogger\n\t * */\n\tlogger?: Logger;\n};\n\nexport function initialiseSdk<TPlugin extends Plugin<any, any>>({\n\tpublishableKey,\n\tenv,\n\tplugins,\n\tlogger = inploiBrandedLogger,\n}: InitialiseInploiSdkParams<TPlugin>) {\n\tif (typeof window === 'undefined') return null;\n\n\tconst apiClient = createApiClient({ baseUrl: ENV_TO_API_URL[env], publishableKey });\n\n\tconst pluginsObj = plugins.reduce((acc, plugin) => {\n\t\tacc[plugin.pluginName as TPlugin['pluginName']] = plugin.initialise({ apiClient, logger });\n\t\treturn acc;\n\t}, {} as { [K in TPlugin['pluginName']]: ReturnType<Flatten<TPlugin & { pluginName: K }>['initialise']> });\n\n\treturn pluginsObj;\n}\n","import { AppEnvironment } from '../common/common.constants';\n\nexport const ENV_TO_API_URL: Record<AppEnvironment, string> = {\n\tsandbox: 'https://preview.api.inploi.com',\n\tproduction: 'https://api.inploi.com',\n};\n\nexport const JOURNEY_PATHNAME = '/journey/log';\n","export const unauthenticatedMessage = 'Unauthenticated';\nexport const unauthorisedMessage = 'This action is unauthorized.';\n\nexport type ApiClient = {\n\tfetch: (pathname: string, options?: RequestInit) => Promise<unknown>;\n};\n\nexport const createApiClient = (params: { baseUrl: string; publishableKey: string }): ApiClient => {\n\tconst defaultHeaders: HeadersInit = {\n\t\tAccept: 'application/json',\n\t\t'Content-Type': 'application/json',\n\t\t'x-publishable-key': params.publishableKey,\n\t};\n\n\treturn {\n\t\tfetch: async (pathname, options = {}) => {\n\t\t\tconst init = { ...options, headers: { ...options.headers, ...defaultHeaders } };\n\t\t\tconst response = await fetch(`${params.baseUrl}${pathname}`, init).then(res => res.json());\n\n\t\t\tif ('message' in response) {\n\t\t\t\tif (response.message === unauthenticatedMessage) {\n\t\t\t\t\tthrow new Error('You are not authenticated.');\n\t\t\t\t}\n\t\t\t\tif (response.message === unauthorisedMessage) {\n\t\t\t\t\tthrow new Error('You are not authenticated.');\n\t\t\t\t}\n\t\t\t\tif ('exception' in response) {\n\t\t\t\t\tthrow new Error(`API error: “${response.message}”`);\n\t\t\t\t}\n\t\t\t\tif ('errors' in response) {\n\t\t\t\t\tthrow new Error(`API error: “${response.message}”`);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn response;\n\t\t},\n\t};\n};\n","export const CONSOLE_PREFIX = '%c[inploi SDK]';\nexport const CONSOLE_STYLE = 'color: #65BC67; font-weight: bold;';\n\ntype LogMessage = (...data: any[]) => void;\nexport type Logger = {\n\twarn: LogMessage;\n\terror: LogMessage;\n\tinfo: LogMessage;\n\tlog: LogMessage;\n};\n\nexport const inploiBrandedLogger: Logger = {\n\twarn: message => console.warn(CONSOLE_PREFIX, CONSOLE_STYLE, message),\n\terror: message => console.error(CONSOLE_PREFIX, CONSOLE_STYLE, message),\n\tinfo: message => console.info(CONSOLE_PREFIX, CONSOLE_STYLE, message),\n\tlog: message => console.log(CONSOLE_PREFIX, CONSOLE_STYLE, message),\n};\n\nexport const noLogging: Logger = { info: () => void 0, error: () => void 0, log: () => void 0, warn: () => void 0 };\n","import { Logger } from './common.logger';\nimport { ApiClient } from '../journeys/journeys.api';\n\nexport type PluginParams = {\n\tapiClient: ApiClient;\n\tlogger?: Logger;\n};\n\nexport type Plugin<T extends string, P> = {\n\tpluginName: T;\n\tinitialise: (params: PluginParams) => P;\n};\n\nexport const createPlugin = <T extends string, P>(\n\tpluginName: T,\n\t{ initialise }: { initialise: (params: PluginParams) => P }\n): Plugin<T, P> => ({\n\tpluginName,\n\tinitialise,\n});\n"],"mappings":"i9BAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,EAAA,kBAAAC,EAAA,iBAAAC,EAAA,kBAAAC,EAAA,wBAAAC,EAAA,cAAAC,IAAA,eAAAC,EAAAR,GCEO,IAAMS,EAAiD,CAC7D,QAAS,iCACT,WAAY,wBACb,ECLO,IAAMC,EAAyB,kBACzBC,EAAsB,+BAMtBC,EAAmBC,GAAmE,CAClG,IAAMC,EAA8B,CACnC,OAAQ,mBACR,eAAgB,mBAChB,oBAAqBD,EAAO,cAC7B,EAEA,MAAO,CACN,MAAO,CAAOE,KAA2BC,IAAAC,EAAA,QAA3BF,EAA2B,GAAAC,GAAA,UAA3BE,EAAUC,EAAU,CAAC,EAAM,CACxC,IAAMC,EAAOC,EAAAC,EAAA,GAAKH,GAAL,CAAc,QAASG,IAAA,GAAKH,EAAQ,SAAYL,EAAiB,GACxES,EAAW,MAAM,MAAM,GAAGV,EAAO,OAAO,GAAGK,CAAQ,GAAIE,CAAI,EAAE,KAAKI,GAAOA,EAAI,KAAK,CAAC,EAEzF,GAAI,YAAaD,EAAU,CAC1B,GAAIA,EAAS,UAAYb,EACxB,MAAM,IAAI,MAAM,4BAA4B,EAE7C,GAAIa,EAAS,UAAYZ,EACxB,MAAM,IAAI,MAAM,4BAA4B,EAE7C,GAAI,cAAeY,EAClB,MAAM,IAAI,MAAM,oBAAeA,EAAS,OAAO,QAAG,EAEnD,GAAI,WAAYA,EACf,MAAM,IAAI,MAAM,oBAAeA,EAAS,OAAO,QAAG,CAEpD,CACA,OAAOA,CACR,EACD,CACD,ECpCO,IAAME,EAAiB,iBACjBC,EAAgB,qCAUhBC,EAA8B,CAC1C,KAAMC,GAAW,QAAQ,KAAKH,EAAgBC,EAAeE,CAAO,EACpE,MAAOA,GAAW,QAAQ,MAAMH,EAAgBC,EAAeE,CAAO,EACtE,KAAMA,GAAW,QAAQ,KAAKH,EAAgBC,EAAeE,CAAO,EACpE,IAAKA,GAAW,QAAQ,IAAIH,EAAgBC,EAAeE,CAAO,CACnE,EAEaC,EAAoB,CAAE,KAAM,IAAG,GAAW,MAAO,IAAG,GAAW,IAAK,IAAG,GAAW,KAAM,IAAG,EAAU,ECL3G,IAAMC,EAAe,CAC3BC,EACA,CAAE,WAAAC,CAAW,KACM,CACnB,WAAAD,EACA,WAAAC,CACD,GJSO,SAASC,EAAgD,CAC/D,eAAAC,EACA,IAAAC,EACA,QAAAC,EACA,OAAAC,EAASC,CACV,EAAuC,CACtC,GAAI,OAAO,QAAW,YAAa,OAAO,KAE1C,IAAMC,EAAYC,EAAgB,CAAE,QAASC,EAAeN,CAAG,EAAG,eAAAD,CAAe,CAAC,EAOlF,OALmBE,EAAQ,OAAO,CAACM,EAAKC,KACvCD,EAAIC,EAAO,UAAmC,EAAIA,EAAO,WAAW,CAAE,UAAAJ,EAAW,OAAAF,CAAO,CAAC,EAClFK,GACL,CAAC,CAAqG,CAG1G","names":["sdk_exports","__export","CONSOLE_PREFIX","CONSOLE_STYLE","createPlugin","initialiseSdk","inploiBrandedLogger","noLogging","__toCommonJS","ENV_TO_API_URL","unauthenticatedMessage","unauthorisedMessage","createApiClient","params","defaultHeaders","_0","_1","__async","pathname","options","init","__spreadProps","__spreadValues","response","res","CONSOLE_PREFIX","CONSOLE_STYLE","inploiBrandedLogger","message","noLogging","createPlugin","pluginName","initialise","initialiseSdk","publishableKey","env","plugins","logger","inploiBrandedLogger","apiClient","createApiClient","ENV_TO_API_URL","acc","plugin"]}
1
+ {"version":3,"sources":["../src/sdk.ts","../src/common/common.logger.ts","../src/journeys/journeys.api.ts","../src/journeys/journeys.constants.ts","../src/common/common.plugins.ts"],"sourcesContent":["import { Flatten } from '@inploi/core/common';\n\nimport { AppEnvironment } from './common/common.constants';\nimport { Logger, inploiBrandedLogger } from './common/common.logger';\nimport { Plugin } from './common/common.plugins';\nimport { createApiClient } from './journeys/journeys.api';\nimport { ENV_TO_API_URL } from './journeys/journeys.constants';\n\n/** Different loggers so people can use `noLogging` */\nexport * from './common/common.logger';\nexport type { Plugin } from './common/common.plugins';\nexport { createPlugin } from './common/common.plugins';\n\nexport type InitialiseInploiSdkParams<P extends Plugin<any, any>> = {\n\t/** Your public API key for the inploi SDK. */\n\tpublishableKey: string;\n\t/** Add your plugins here. Try importing and passing `journeysPlugin` ;) */\n\tplugins: P[];\n\t/** Which app environment to run. This ultimately affects which inploi endpoints to gather data are going to be used.\n\t * Anything other than `production` should be considered a development environment and the data periodicaly purged. */\n\tenv: AppEnvironment;\n\t/** Logger object that handles logging of different levels.\n\t * You can override this to use your own logger, or to disable logging altogether by importing and passing `noLogging`.\n\t * @default inploiBrandedLogger\n\t * */\n\tlogger?: Logger;\n};\n\nexport function initialiseSdk<TPlugin extends Plugin<any, any>>({\n\tpublishableKey,\n\tenv,\n\tplugins,\n\tlogger = inploiBrandedLogger,\n}: InitialiseInploiSdkParams<TPlugin>) {\n\tconst apiClient = createApiClient({ baseUrl: ENV_TO_API_URL[env], publishableKey });\n\n\tconst pluginsObj = plugins.reduce(\n\t\t(acc, plugin) => {\n\t\t\tacc[plugin.pluginName as TPlugin['pluginName']] = plugin.initialise({ apiClient, logger });\n\t\t\treturn acc;\n\t\t},\n\t\t{} as { [K in TPlugin['pluginName']]: ReturnType<Flatten<TPlugin & { pluginName: K }>['initialise']> },\n\t);\n\n\treturn pluginsObj;\n}\n","export const CONSOLE_PREFIX = '%c[inploi SDK]';\nexport const CONSOLE_STYLE = 'color: #65BC67; font-weight: bold;';\n\ntype LogMessage = (...data: any[]) => void;\nexport type Logger = {\n\twarn: LogMessage;\n\terror: LogMessage;\n\tinfo: LogMessage;\n\tlog: LogMessage;\n};\n\nexport const inploiBrandedLogger: Logger = {\n\twarn: message => console.warn(CONSOLE_PREFIX, CONSOLE_STYLE, message),\n\terror: message => console.error(CONSOLE_PREFIX, CONSOLE_STYLE, message),\n\tinfo: message => console.info(CONSOLE_PREFIX, CONSOLE_STYLE, message),\n\tlog: message => console.log(CONSOLE_PREFIX, CONSOLE_STYLE, message),\n};\n\nexport const noLogging: Logger = { info: () => void 0, error: () => void 0, log: () => void 0, warn: () => void 0 };\n","export const unauthenticatedMessage = 'Unauthenticated';\nexport const unauthorisedMessage = 'This action is unauthorized.';\n\nexport type ApiClient = {\n\tfetch: (pathname: string, options?: RequestInit) => Promise<unknown>;\n};\n\nexport const createApiClient = (params: { baseUrl: string; publishableKey: string }): ApiClient => {\n\tconst defaultHeaders: HeadersInit = {\n\t\tAccept: 'application/json',\n\t\t'Content-Type': 'application/json',\n\t\t'x-publishable-key': params.publishableKey,\n\t};\n\n\treturn {\n\t\tfetch: async (pathname, options = {}) => {\n\t\t\tconst init = { ...options, headers: { ...options.headers, ...defaultHeaders } };\n\t\t\tconst response = await fetch(`${params.baseUrl}${pathname}`, init).then(res => res.json());\n\n\t\t\tif ('message' in response) {\n\t\t\t\tif (response.message === unauthenticatedMessage) {\n\t\t\t\t\tthrow new Error('You are not authenticated.');\n\t\t\t\t}\n\t\t\t\tif (response.message === unauthorisedMessage) {\n\t\t\t\t\tthrow new Error('You are not authenticated.');\n\t\t\t\t}\n\t\t\t\tif ('exception' in response) {\n\t\t\t\t\tthrow new Error(`API error: “${response.message}”`);\n\t\t\t\t}\n\t\t\t\tif ('errors' in response) {\n\t\t\t\t\tthrow new Error(`API error: “${response.message}”`);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn response;\n\t\t},\n\t};\n};\n","import { AppEnvironment } from '../common/common.constants';\n\nexport const ENV_TO_API_URL: Record<AppEnvironment, string> = {\n\tsandbox: 'https://preview.api.inploi.com',\n\tproduction: 'https://api.inploi.com',\n};\n\nexport const JOURNEY_PATHNAME = '/journey/log';\n","import { ApiClient } from '../journeys/journeys.api';\nimport { Logger } from './common.logger';\n\nexport type PluginParams = {\n\tapiClient: ApiClient;\n\tlogger?: Logger;\n};\n\nexport type Plugin<T extends string, P> = {\n\tpluginName: T;\n\tinitialise: (params: PluginParams) => P;\n};\n\nexport const createPlugin = <T extends string, P>(\n\t/** The plugin name to access its properties.\n\t * @example const myPluginVariable = createPlugin('myPluginName', { initialise: () => 'works' });\n\t * const sdk = initialiseSdk({plugins: [myPluginVariable]});\n\t * sdk.myPluginName // 'works'\n\t * sdk.myPluginVariable // undefined\n\t */\n\tpluginName: T,\n\t{\n\t\tinitialise,\n\t}: {\n\t\t/** Called when the SDK is initialised.\n\t\t * Here’s where you can do any one-off initialisation.\n\t\t * Returning a value or function will make it available to the SDK client.\n\t\t * @example const plugin = createPlugin('foo', { initialise: () => ({ bar: 'baz' }) });\n\t\t * const sdk = initialiseSdk({plugins: [plugin]});\n\t\t * sdk.foo.bar // 'baz'\n\t\t */\n\t\tinitialise: (params: PluginParams) => P;\n\t},\n): Plugin<T, P> => ({\n\tpluginName,\n\tinitialise,\n});\n"],"mappings":"i9BAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,EAAA,kBAAAC,EAAA,iBAAAC,EAAA,kBAAAC,EAAA,wBAAAC,EAAA,cAAAC,IAAA,eAAAC,EAAAR,GCAO,IAAMS,EAAiB,iBACjBC,EAAgB,qCAUhBC,EAA8B,CAC1C,KAAMC,GAAW,QAAQ,KAAKH,EAAgBC,EAAeE,CAAO,EACpE,MAAOA,GAAW,QAAQ,MAAMH,EAAgBC,EAAeE,CAAO,EACtE,KAAMA,GAAW,QAAQ,KAAKH,EAAgBC,EAAeE,CAAO,EACpE,IAAKA,GAAW,QAAQ,IAAIH,EAAgBC,EAAeE,CAAO,CACnE,EAEaC,EAAoB,CAAE,KAAM,IAAG,GAAW,MAAO,IAAG,GAAW,IAAK,IAAG,GAAW,KAAM,IAAG,EAAU,EClB3G,IAAMC,EAAyB,kBACzBC,EAAsB,+BAMtBC,EAAmBC,GAAmE,CAClG,IAAMC,EAA8B,CACnC,OAAQ,mBACR,eAAgB,mBAChB,oBAAqBD,EAAO,cAC7B,EAEA,MAAO,CACN,MAAO,CAAOE,KAA2BC,IAAAC,EAAA,QAA3BF,EAA2B,GAAAC,GAAA,UAA3BE,EAAUC,EAAU,CAAC,EAAM,CACxC,IAAMC,EAAOC,EAAAC,EAAA,GAAKH,GAAL,CAAc,QAASG,IAAA,GAAKH,EAAQ,SAAYL,EAAiB,GACxES,EAAW,MAAM,MAAM,GAAGV,EAAO,OAAO,GAAGK,CAAQ,GAAIE,CAAI,EAAE,KAAKI,GAAOA,EAAI,KAAK,CAAC,EAEzF,GAAI,YAAaD,EAAU,CAC1B,GAAIA,EAAS,UAAYb,EACxB,MAAM,IAAI,MAAM,4BAA4B,EAE7C,GAAIa,EAAS,UAAYZ,EACxB,MAAM,IAAI,MAAM,4BAA4B,EAE7C,GAAI,cAAeY,EAClB,MAAM,IAAI,MAAM,oBAAeA,EAAS,OAAO,QAAG,EAEnD,GAAI,WAAYA,EACf,MAAM,IAAI,MAAM,oBAAeA,EAAS,OAAO,QAAG,CAEpD,CACA,OAAOA,CACR,EACD,CACD,EClCO,IAAME,EAAiD,CAC7D,QAAS,iCACT,WAAY,wBACb,ECQO,IAAMC,EAAe,CAO3BC,EACA,CACC,WAAAC,CACD,KAUmB,CACnB,WAAAD,EACA,WAAAC,CACD,GJRO,SAASC,EAAgD,CAC/D,eAAAC,EACA,IAAAC,EACA,QAAAC,EACA,OAAAC,EAASC,CACV,EAAuC,CACtC,IAAMC,EAAYC,EAAgB,CAAE,QAASC,EAAeN,CAAG,EAAG,eAAAD,CAAe,CAAC,EAUlF,OARmBE,EAAQ,OAC1B,CAACM,EAAKC,KACLD,EAAIC,EAAO,UAAmC,EAAIA,EAAO,WAAW,CAAE,UAAAJ,EAAW,OAAAF,CAAO,CAAC,EAClFK,GAER,CAAC,CACF,CAGD","names":["sdk_exports","__export","CONSOLE_PREFIX","CONSOLE_STYLE","createPlugin","initialiseSdk","inploiBrandedLogger","noLogging","__toCommonJS","CONSOLE_PREFIX","CONSOLE_STYLE","inploiBrandedLogger","message","noLogging","unauthenticatedMessage","unauthorisedMessage","createApiClient","params","defaultHeaders","_0","_1","__async","pathname","options","init","__spreadProps","__spreadValues","response","res","ENV_TO_API_URL","createPlugin","pluginName","initialise","initialiseSdk","publishableKey","env","plugins","logger","inploiBrandedLogger","apiClient","createApiClient","ENV_TO_API_URL","acc","plugin"]}
package/dist/sdk.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{a as i,b as l,c as p,d as u,f as h}from"./chunk-KHVPBEFD.mjs";var P="Unauthenticated",x="This action is unauthorized.",c=e=>{let a={Accept:"application/json","Content-Type":"application/json","x-publishable-key":e.publishableKey};return{fetch:(d,...y)=>p(void 0,[d,...y],function*(g,o={}){let r=l(i({},o),{headers:i(i({},o.headers),a)}),n=yield fetch(`${e.baseUrl}${g}`,r).then(f=>f.json());if("message"in n){if(n.message===P)throw new Error("You are not authenticated.");if(n.message===x)throw new Error("You are not authenticated.");if("exception"in n)throw new Error(`API error: \u201C${n.message}\u201D`);if("errors"in n)throw new Error(`API error: \u201C${n.message}\u201D`)}return n})}};var t="%c[inploi SDK]",s="color: #65BC67; font-weight: bold;",m={warn:e=>console.warn(t,s,e),error:e=>console.error(t,s,e),info:e=>console.info(t,s,e),log:e=>console.log(t,s,e)},b={info:()=>{},error:()=>{},log:()=>{},warn:()=>{}};function v({publishableKey:e,env:a,plugins:g,logger:o=m}){if(typeof window=="undefined")return null;let d=c({baseUrl:u[a],publishableKey:e});return g.reduce((r,n)=>(r[n.pluginName]=n.initialise({apiClient:d,logger:o}),r),{})}export{t as CONSOLE_PREFIX,s as CONSOLE_STYLE,h as createPlugin,v as initialiseSdk,m as inploiBrandedLogger,b as noLogging};
1
+ import{a as u}from"./chunk-NLLAI5ZB.mjs";import{a as i,b as l,c as p,d as h}from"./chunk-DG423OQK.mjs";var t="%c[inploi SDK]",s="color: #65BC67; font-weight: bold;",c={warn:e=>console.warn(t,s,e),error:e=>console.error(t,s,e),info:e=>console.info(t,s,e),log:e=>console.log(t,s,e)},L={info:()=>{},error:()=>{},log:()=>{},warn:()=>{}};var P="Unauthenticated",x="This action is unauthorized.",m=e=>{let a={Accept:"application/json","Content-Type":"application/json","x-publishable-key":e.publishableKey};return{fetch:(d,...y)=>p(void 0,[d,...y],function*(g,o={}){let r=l(i({},o),{headers:i(i({},o.headers),a)}),n=yield fetch(`${e.baseUrl}${g}`,r).then(f=>f.json());if("message"in n){if(n.message===P)throw new Error("You are not authenticated.");if(n.message===x)throw new Error("You are not authenticated.");if("exception"in n)throw new Error(`API error: \u201C${n.message}\u201D`);if("errors"in n)throw new Error(`API error: \u201C${n.message}\u201D`)}return n})}};function v({publishableKey:e,env:a,plugins:g,logger:o=c}){let d=m({baseUrl:u[a],publishableKey:e});return g.reduce((r,n)=>(r[n.pluginName]=n.initialise({apiClient:d,logger:o}),r),{})}export{t as CONSOLE_PREFIX,s as CONSOLE_STYLE,h as createPlugin,v as initialiseSdk,c as inploiBrandedLogger,L as noLogging};
2
2
  //# sourceMappingURL=sdk.mjs.map
package/dist/sdk.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/journeys/journeys.api.ts","../src/common/common.logger.ts","../src/sdk.ts"],"sourcesContent":["export const unauthenticatedMessage = 'Unauthenticated';\nexport const unauthorisedMessage = 'This action is unauthorized.';\n\nexport type ApiClient = {\n\tfetch: (pathname: string, options?: RequestInit) => Promise<unknown>;\n};\n\nexport const createApiClient = (params: { baseUrl: string; publishableKey: string }): ApiClient => {\n\tconst defaultHeaders: HeadersInit = {\n\t\tAccept: 'application/json',\n\t\t'Content-Type': 'application/json',\n\t\t'x-publishable-key': params.publishableKey,\n\t};\n\n\treturn {\n\t\tfetch: async (pathname, options = {}) => {\n\t\t\tconst init = { ...options, headers: { ...options.headers, ...defaultHeaders } };\n\t\t\tconst response = await fetch(`${params.baseUrl}${pathname}`, init).then(res => res.json());\n\n\t\t\tif ('message' in response) {\n\t\t\t\tif (response.message === unauthenticatedMessage) {\n\t\t\t\t\tthrow new Error('You are not authenticated.');\n\t\t\t\t}\n\t\t\t\tif (response.message === unauthorisedMessage) {\n\t\t\t\t\tthrow new Error('You are not authenticated.');\n\t\t\t\t}\n\t\t\t\tif ('exception' in response) {\n\t\t\t\t\tthrow new Error(`API error: “${response.message}”`);\n\t\t\t\t}\n\t\t\t\tif ('errors' in response) {\n\t\t\t\t\tthrow new Error(`API error: “${response.message}”`);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn response;\n\t\t},\n\t};\n};\n","export const CONSOLE_PREFIX = '%c[inploi SDK]';\nexport const CONSOLE_STYLE = 'color: #65BC67; font-weight: bold;';\n\ntype LogMessage = (...data: any[]) => void;\nexport type Logger = {\n\twarn: LogMessage;\n\terror: LogMessage;\n\tinfo: LogMessage;\n\tlog: LogMessage;\n};\n\nexport const inploiBrandedLogger: Logger = {\n\twarn: message => console.warn(CONSOLE_PREFIX, CONSOLE_STYLE, message),\n\terror: message => console.error(CONSOLE_PREFIX, CONSOLE_STYLE, message),\n\tinfo: message => console.info(CONSOLE_PREFIX, CONSOLE_STYLE, message),\n\tlog: message => console.log(CONSOLE_PREFIX, CONSOLE_STYLE, message),\n};\n\nexport const noLogging: Logger = { info: () => void 0, error: () => void 0, log: () => void 0, warn: () => void 0 };\n","import { ENV_TO_API_URL } from './journeys/journeys.constants';\nimport { createApiClient } from './journeys/journeys.api';\nimport { Logger, inploiBrandedLogger } from './common/common.logger';\n\nimport { Flatten } from '@inploi/core/common';\nimport { AppEnvironment } from './common/common.constants';\nimport { Plugin } from './common/common.plugins';\n\n/** Different loggers so people can use `noLogging` */\nexport * from './common/common.logger';\nexport type { Plugin } from './common/common.plugins';\nexport { createPlugin } from './common/common.plugins';\n\nexport type InitialiseInploiSdkParams<P extends Plugin<any, any>> = {\n\t/** Your public API key for the inploi SDK. */\n\tpublishableKey: string;\n\t/** Add your plugins here. Try importing and passing `journeysPlugin` ;) */\n\tplugins: P[];\n\t/** Which app environment to run. This ultimately affects which inploi endpoints to gather data are going to be used.\n\t * Anything other than `production` should be considered a development environment and the data periodicaly purged. */\n\tenv: AppEnvironment;\n\t/** Logger object that handles logging of different levels.\n\t * You can override this to use your own logger, or to disable logging altogether by importing and passing `noLogging`.\n\t * @default inploiBrandedLogger\n\t * */\n\tlogger?: Logger;\n};\n\nexport function initialiseSdk<TPlugin extends Plugin<any, any>>({\n\tpublishableKey,\n\tenv,\n\tplugins,\n\tlogger = inploiBrandedLogger,\n}: InitialiseInploiSdkParams<TPlugin>) {\n\tif (typeof window === 'undefined') return null;\n\n\tconst apiClient = createApiClient({ baseUrl: ENV_TO_API_URL[env], publishableKey });\n\n\tconst pluginsObj = plugins.reduce((acc, plugin) => {\n\t\tacc[plugin.pluginName as TPlugin['pluginName']] = plugin.initialise({ apiClient, logger });\n\t\treturn acc;\n\t}, {} as { [K in TPlugin['pluginName']]: ReturnType<Flatten<TPlugin & { pluginName: K }>['initialise']> });\n\n\treturn pluginsObj;\n}\n"],"mappings":"qEAAO,IAAMA,EAAyB,kBACzBC,EAAsB,+BAMtBC,EAAmBC,GAAmE,CAClG,IAAMC,EAA8B,CACnC,OAAQ,mBACR,eAAgB,mBAChB,oBAAqBD,EAAO,cAC7B,EAEA,MAAO,CACN,MAAO,CAAOE,KAA2BC,IAAAC,EAAA,QAA3BF,EAA2B,GAAAC,GAAA,UAA3BE,EAAUC,EAAU,CAAC,EAAM,CACxC,IAAMC,EAAOC,EAAAC,EAAA,GAAKH,GAAL,CAAc,QAASG,IAAA,GAAKH,EAAQ,SAAYL,EAAiB,GACxES,EAAW,MAAM,MAAM,GAAGV,EAAO,OAAO,GAAGK,CAAQ,GAAIE,CAAI,EAAE,KAAKI,GAAOA,EAAI,KAAK,CAAC,EAEzF,GAAI,YAAaD,EAAU,CAC1B,GAAIA,EAAS,UAAYb,EACxB,MAAM,IAAI,MAAM,4BAA4B,EAE7C,GAAIa,EAAS,UAAYZ,EACxB,MAAM,IAAI,MAAM,4BAA4B,EAE7C,GAAI,cAAeY,EAClB,MAAM,IAAI,MAAM,oBAAeA,EAAS,OAAO,QAAG,EAEnD,GAAI,WAAYA,EACf,MAAM,IAAI,MAAM,oBAAeA,EAAS,OAAO,QAAG,CAEpD,CACA,OAAOA,CACR,EACD,CACD,ECpCO,IAAME,EAAiB,iBACjBC,EAAgB,qCAUhBC,EAA8B,CAC1C,KAAMC,GAAW,QAAQ,KAAKH,EAAgBC,EAAeE,CAAO,EACpE,MAAOA,GAAW,QAAQ,MAAMH,EAAgBC,EAAeE,CAAO,EACtE,KAAMA,GAAW,QAAQ,KAAKH,EAAgBC,EAAeE,CAAO,EACpE,IAAKA,GAAW,QAAQ,IAAIH,EAAgBC,EAAeE,CAAO,CACnE,EAEaC,EAAoB,CAAE,KAAM,IAAG,GAAW,MAAO,IAAG,GAAW,IAAK,IAAG,GAAW,KAAM,IAAG,EAAU,ECU3G,SAASC,EAAgD,CAC/D,eAAAC,EACA,IAAAC,EACA,QAAAC,EACA,OAAAC,EAASC,CACV,EAAuC,CACtC,GAAI,OAAO,QAAW,YAAa,OAAO,KAE1C,IAAMC,EAAYC,EAAgB,CAAE,QAASC,EAAeN,CAAG,EAAG,eAAAD,CAAe,CAAC,EAOlF,OALmBE,EAAQ,OAAO,CAACM,EAAKC,KACvCD,EAAIC,EAAO,UAAmC,EAAIA,EAAO,WAAW,CAAE,UAAAJ,EAAW,OAAAF,CAAO,CAAC,EAClFK,GACL,CAAC,CAAqG,CAG1G","names":["unauthenticatedMessage","unauthorisedMessage","createApiClient","params","defaultHeaders","_0","_1","__async","pathname","options","init","__spreadProps","__spreadValues","response","res","CONSOLE_PREFIX","CONSOLE_STYLE","inploiBrandedLogger","message","noLogging","initialiseSdk","publishableKey","env","plugins","logger","inploiBrandedLogger","apiClient","createApiClient","ENV_TO_API_URL","acc","plugin"]}
1
+ {"version":3,"sources":["../src/common/common.logger.ts","../src/journeys/journeys.api.ts","../src/sdk.ts"],"sourcesContent":["export const CONSOLE_PREFIX = '%c[inploi SDK]';\nexport const CONSOLE_STYLE = 'color: #65BC67; font-weight: bold;';\n\ntype LogMessage = (...data: any[]) => void;\nexport type Logger = {\n\twarn: LogMessage;\n\terror: LogMessage;\n\tinfo: LogMessage;\n\tlog: LogMessage;\n};\n\nexport const inploiBrandedLogger: Logger = {\n\twarn: message => console.warn(CONSOLE_PREFIX, CONSOLE_STYLE, message),\n\terror: message => console.error(CONSOLE_PREFIX, CONSOLE_STYLE, message),\n\tinfo: message => console.info(CONSOLE_PREFIX, CONSOLE_STYLE, message),\n\tlog: message => console.log(CONSOLE_PREFIX, CONSOLE_STYLE, message),\n};\n\nexport const noLogging: Logger = { info: () => void 0, error: () => void 0, log: () => void 0, warn: () => void 0 };\n","export const unauthenticatedMessage = 'Unauthenticated';\nexport const unauthorisedMessage = 'This action is unauthorized.';\n\nexport type ApiClient = {\n\tfetch: (pathname: string, options?: RequestInit) => Promise<unknown>;\n};\n\nexport const createApiClient = (params: { baseUrl: string; publishableKey: string }): ApiClient => {\n\tconst defaultHeaders: HeadersInit = {\n\t\tAccept: 'application/json',\n\t\t'Content-Type': 'application/json',\n\t\t'x-publishable-key': params.publishableKey,\n\t};\n\n\treturn {\n\t\tfetch: async (pathname, options = {}) => {\n\t\t\tconst init = { ...options, headers: { ...options.headers, ...defaultHeaders } };\n\t\t\tconst response = await fetch(`${params.baseUrl}${pathname}`, init).then(res => res.json());\n\n\t\t\tif ('message' in response) {\n\t\t\t\tif (response.message === unauthenticatedMessage) {\n\t\t\t\t\tthrow new Error('You are not authenticated.');\n\t\t\t\t}\n\t\t\t\tif (response.message === unauthorisedMessage) {\n\t\t\t\t\tthrow new Error('You are not authenticated.');\n\t\t\t\t}\n\t\t\t\tif ('exception' in response) {\n\t\t\t\t\tthrow new Error(`API error: “${response.message}”`);\n\t\t\t\t}\n\t\t\t\tif ('errors' in response) {\n\t\t\t\t\tthrow new Error(`API error: “${response.message}”`);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn response;\n\t\t},\n\t};\n};\n","import { Flatten } from '@inploi/core/common';\n\nimport { AppEnvironment } from './common/common.constants';\nimport { Logger, inploiBrandedLogger } from './common/common.logger';\nimport { Plugin } from './common/common.plugins';\nimport { createApiClient } from './journeys/journeys.api';\nimport { ENV_TO_API_URL } from './journeys/journeys.constants';\n\n/** Different loggers so people can use `noLogging` */\nexport * from './common/common.logger';\nexport type { Plugin } from './common/common.plugins';\nexport { createPlugin } from './common/common.plugins';\n\nexport type InitialiseInploiSdkParams<P extends Plugin<any, any>> = {\n\t/** Your public API key for the inploi SDK. */\n\tpublishableKey: string;\n\t/** Add your plugins here. Try importing and passing `journeysPlugin` ;) */\n\tplugins: P[];\n\t/** Which app environment to run. This ultimately affects which inploi endpoints to gather data are going to be used.\n\t * Anything other than `production` should be considered a development environment and the data periodicaly purged. */\n\tenv: AppEnvironment;\n\t/** Logger object that handles logging of different levels.\n\t * You can override this to use your own logger, or to disable logging altogether by importing and passing `noLogging`.\n\t * @default inploiBrandedLogger\n\t * */\n\tlogger?: Logger;\n};\n\nexport function initialiseSdk<TPlugin extends Plugin<any, any>>({\n\tpublishableKey,\n\tenv,\n\tplugins,\n\tlogger = inploiBrandedLogger,\n}: InitialiseInploiSdkParams<TPlugin>) {\n\tconst apiClient = createApiClient({ baseUrl: ENV_TO_API_URL[env], publishableKey });\n\n\tconst pluginsObj = plugins.reduce(\n\t\t(acc, plugin) => {\n\t\t\tacc[plugin.pluginName as TPlugin['pluginName']] = plugin.initialise({ apiClient, logger });\n\t\t\treturn acc;\n\t\t},\n\t\t{} as { [K in TPlugin['pluginName']]: ReturnType<Flatten<TPlugin & { pluginName: K }>['initialise']> },\n\t);\n\n\treturn pluginsObj;\n}\n"],"mappings":"uGAAO,IAAMA,EAAiB,iBACjBC,EAAgB,qCAUhBC,EAA8B,CAC1C,KAAMC,GAAW,QAAQ,KAAKH,EAAgBC,EAAeE,CAAO,EACpE,MAAOA,GAAW,QAAQ,MAAMH,EAAgBC,EAAeE,CAAO,EACtE,KAAMA,GAAW,QAAQ,KAAKH,EAAgBC,EAAeE,CAAO,EACpE,IAAKA,GAAW,QAAQ,IAAIH,EAAgBC,EAAeE,CAAO,CACnE,EAEaC,EAAoB,CAAE,KAAM,IAAG,GAAW,MAAO,IAAG,GAAW,IAAK,IAAG,GAAW,KAAM,IAAG,EAAU,EClB3G,IAAMC,EAAyB,kBACzBC,EAAsB,+BAMtBC,EAAmBC,GAAmE,CAClG,IAAMC,EAA8B,CACnC,OAAQ,mBACR,eAAgB,mBAChB,oBAAqBD,EAAO,cAC7B,EAEA,MAAO,CACN,MAAO,CAAOE,KAA2BC,IAAAC,EAAA,QAA3BF,EAA2B,GAAAC,GAAA,UAA3BE,EAAUC,EAAU,CAAC,EAAM,CACxC,IAAMC,EAAOC,EAAAC,EAAA,GAAKH,GAAL,CAAc,QAASG,IAAA,GAAKH,EAAQ,SAAYL,EAAiB,GACxES,EAAW,MAAM,MAAM,GAAGV,EAAO,OAAO,GAAGK,CAAQ,GAAIE,CAAI,EAAE,KAAKI,GAAOA,EAAI,KAAK,CAAC,EAEzF,GAAI,YAAaD,EAAU,CAC1B,GAAIA,EAAS,UAAYb,EACxB,MAAM,IAAI,MAAM,4BAA4B,EAE7C,GAAIa,EAAS,UAAYZ,EACxB,MAAM,IAAI,MAAM,4BAA4B,EAE7C,GAAI,cAAeY,EAClB,MAAM,IAAI,MAAM,oBAAeA,EAAS,OAAO,QAAG,EAEnD,GAAI,WAAYA,EACf,MAAM,IAAI,MAAM,oBAAeA,EAAS,OAAO,QAAG,CAEpD,CACA,OAAOA,CACR,EACD,CACD,ECRO,SAASE,EAAgD,CAC/D,eAAAC,EACA,IAAAC,EACA,QAAAC,EACA,OAAAC,EAASC,CACV,EAAuC,CACtC,IAAMC,EAAYC,EAAgB,CAAE,QAASC,EAAeN,CAAG,EAAG,eAAAD,CAAe,CAAC,EAUlF,OARmBE,EAAQ,OAC1B,CAACM,EAAKC,KACLD,EAAIC,EAAO,UAAmC,EAAIA,EAAO,WAAW,CAAE,UAAAJ,EAAW,OAAAF,CAAO,CAAC,EAClFK,GAER,CAAC,CACF,CAGD","names":["CONSOLE_PREFIX","CONSOLE_STYLE","inploiBrandedLogger","message","noLogging","unauthenticatedMessage","unauthorisedMessage","createApiClient","params","defaultHeaders","_0","_1","__async","pathname","options","init","__spreadProps","__spreadValues","response","res","initialiseSdk","publishableKey","env","plugins","logger","inploiBrandedLogger","apiClient","createApiClient","ENV_TO_API_URL","acc","plugin"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inploi/sdk",
3
- "version": "0.4.3",
3
+ "version": "0.6.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "license": "MIT",
@@ -18,6 +18,11 @@
18
18
  "require": "./dist/journeys/journeys.js",
19
19
  "import": "./dist/journeys/journeys.mjs",
20
20
  "types": "./dist/journeys/journeys.d.ts"
21
+ },
22
+ "./accessibility": {
23
+ "require": "./dist/accessibility/accessibility.js",
24
+ "import": "./dist/accessibility/accessibility.mjs",
25
+ "types": "./dist/accessibility/accessibility.d.ts"
21
26
  }
22
27
  },
23
28
  "scripts": {
@@ -1,2 +0,0 @@
1
- var P=Object.defineProperty,u=Object.defineProperties;var c=Object.getOwnPropertyDescriptors;var a=Object.getOwnPropertySymbols;var x=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable;var s=(t,i,n)=>i in t?P(t,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[i]=n,T=(t,i)=>{for(var n in i||(i={}))x.call(i,n)&&s(t,n,i[n]);if(a)for(var n of a(i))A.call(i,n)&&s(t,n,i[n]);return t},d=(t,i)=>u(t,c(i));var E=(t,i,n)=>new Promise((g,p)=>{var l=o=>{try{r(n.next(o))}catch(e){p(e)}},m=o=>{try{r(n.throw(o))}catch(e){p(e)}},r=o=>o.done?g(o.value):Promise.resolve(o.value).then(l,m);r((n=n.apply(t,i)).next())});var _={sandbox:"https://preview.api.inploi.com",production:"https://api.inploi.com"},f="/journey/log";var y=(t,{initialise:i})=>({pluginName:t,initialise:i});export{T as a,d as b,E as c,_ as d,f as e,y as f};
2
- //# sourceMappingURL=chunk-KHVPBEFD.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/journeys/journeys.constants.ts","../src/common/common.plugins.ts"],"sourcesContent":["import { AppEnvironment } from '../common/common.constants';\n\nexport const ENV_TO_API_URL: Record<AppEnvironment, string> = {\n\tsandbox: 'https://preview.api.inploi.com',\n\tproduction: 'https://api.inploi.com',\n};\n\nexport const JOURNEY_PATHNAME = '/journey/log';\n","import { Logger } from './common.logger';\nimport { ApiClient } from '../journeys/journeys.api';\n\nexport type PluginParams = {\n\tapiClient: ApiClient;\n\tlogger?: Logger;\n};\n\nexport type Plugin<T extends string, P> = {\n\tpluginName: T;\n\tinitialise: (params: PluginParams) => P;\n};\n\nexport const createPlugin = <T extends string, P>(\n\tpluginName: T,\n\t{ initialise }: { initialise: (params: PluginParams) => P }\n): Plugin<T, P> => ({\n\tpluginName,\n\tinitialise,\n});\n"],"mappings":"0nBAEO,IAAMA,EAAiD,CAC7D,QAAS,iCACT,WAAY,wBACb,EAEaC,EAAmB,eCMzB,IAAMC,EAAe,CAC3BC,EACA,CAAE,WAAAC,CAAW,KACM,CACnB,WAAAD,EACA,WAAAC,CACD","names":["ENV_TO_API_URL","JOURNEY_PATHNAME","createPlugin","pluginName","initialise"]}