@walkeros/web-source-session 2.2.0-next-1773136823705 → 3.0.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/dist/dev.d.mts +5 -5
- package/dist/dev.d.ts +5 -5
- package/dist/dev.js +1 -1
- package/dist/dev.js.map +1 -1
- package/dist/dev.mjs +1 -1
- package/dist/dev.mjs.map +1 -1
- package/dist/walkerOS.json +25 -18
- package/package.json +6 -6
package/dist/dev.d.mts
CHANGED
|
@@ -34,13 +34,13 @@ declare namespace index$1 {
|
|
|
34
34
|
export { type index$1_Settings as Settings, index$1_SettingsSchema as SettingsSchema, index$1_settings as settings };
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
declare const
|
|
38
|
-
declare const
|
|
37
|
+
declare const newMarketingSession: Flow.StepExample;
|
|
38
|
+
declare const returningVisitor: Flow.StepExample;
|
|
39
39
|
|
|
40
|
-
declare const
|
|
41
|
-
declare const
|
|
40
|
+
declare const step_newMarketingSession: typeof newMarketingSession;
|
|
41
|
+
declare const step_returningVisitor: typeof returningVisitor;
|
|
42
42
|
declare namespace step {
|
|
43
|
-
export {
|
|
43
|
+
export { step_newMarketingSession as newMarketingSession, step_returningVisitor as returningVisitor };
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
/** Prepares localStorage with session/device data. */
|
package/dist/dev.d.ts
CHANGED
|
@@ -34,13 +34,13 @@ declare namespace index$1 {
|
|
|
34
34
|
export { type index$1_Settings as Settings, index$1_SettingsSchema as SettingsSchema, index$1_settings as settings };
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
declare const
|
|
38
|
-
declare const
|
|
37
|
+
declare const newMarketingSession: Flow.StepExample;
|
|
38
|
+
declare const returningVisitor: Flow.StepExample;
|
|
39
39
|
|
|
40
|
-
declare const
|
|
41
|
-
declare const
|
|
40
|
+
declare const step_newMarketingSession: typeof newMarketingSession;
|
|
41
|
+
declare const step_returningVisitor: typeof returningVisitor;
|
|
42
42
|
declare namespace step {
|
|
43
|
-
export {
|
|
43
|
+
export { step_newMarketingSession as newMarketingSession, step_returningVisitor as returningVisitor };
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
/** Prepares localStorage with session/device data. */
|
package/dist/dev.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e,s=Object.defineProperty,t=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,n=(e,t)=>{for(var o in t)s(e,o,{get:t[o],enumerable:!0})},
|
|
1
|
+
"use strict";var e,s=Object.defineProperty,t=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,n=(e,t)=>{for(var o in t)s(e,o,{get:t[o],enumerable:!0})},r={};n(r,{examples:()=>g,schemas:()=>a}),module.exports=(e=r,((e,n,r,a)=>{if(n&&"object"==typeof n||"function"==typeof n)for(let c of o(n))i.call(e,c)||c===r||s(e,c,{get:()=>n[c],enumerable:!(a=t(n,c))||a.enumerable});return e})(s({},"__esModule",{value:!0}),e));var a={};n(a,{SettingsSchema:()=>d,settings:()=>u});var c=require("@walkeros/core/dev"),l=require("@walkeros/core/dev"),d=l.z.object({storage:l.z.boolean().default(!1).describe("Enable persistent storage for session/device IDs").optional(),consent:l.z.union([l.z.string(),l.z.array(l.z.string())]).describe("Consent key(s) required to enable storage mode").optional(),length:l.z.number().default(30).describe("Session timeout in minutes").optional(),pulse:l.z.boolean().default(!1).describe("Keep session alive on each event").optional(),sessionKey:l.z.string().default("elbSessionId").describe("Storage key for session ID").optional(),sessionStorage:l.z.enum(["local","session"]).default("local").describe("Storage type for session").optional(),deviceKey:l.z.string().default("elbDeviceId").describe("Storage key for device ID").optional(),deviceStorage:l.z.enum(["local","session"]).default("local").describe("Storage type for device").optional(),deviceAge:l.z.number().default(30).describe("Device ID age in days").optional(),cb:l.z.any().describe("Custom session callback function or false to disable").optional()}),u=(0,c.zodToSchema)(d),g={};n(g,{setup:()=>y,step:()=>p});var p={};n(p,{newMarketingSession:()=>b,returningVisitor:()=>f});var b={in:{storage:!0},out:{name:"session start",data:{isStart:!0,isNew:!0,count:1,runs:1,storage:!0,id:"s3ss10n-id",device:"d3v1c3-id",start:17e11,marketing:!0,source:"google",medium:"cpc",campaign:"winter-sale"},entity:"session",action:"start"}},f={in:{storage:!0},out:{name:"session start",data:{isStart:!0,isNew:!1,count:3,runs:1,storage:!0,id:"n3w-s3ss10n",device:"d3v1c3-id",start:1700001e6,referrer:"google.com"},entity:"session",action:"start"}},y=(e,s)=>{if(!e||"object"!=typeof e)return;const t=e;if(t.sessionData&&"object"==typeof t.sessionData){const e="string"==typeof t.sessionKey?t.sessionKey:"elbSessionId";s.localStorage.setItem(e,JSON.stringify(t.sessionData))}if("string"==typeof t.deviceId){const e="string"==typeof t.deviceKey?t.deviceKey:"elbDeviceId";s.localStorage.setItem(e,t.deviceId)}};//# sourceMappingURL=dev.js.map
|
package/dist/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/dev.ts","../src/schemas/index.ts","../src/schemas/settings.ts","../src/examples/index.ts","../src/examples/step.ts","../src/examples/setup.ts"],"sourcesContent":["export * as schemas from './schemas';\nexport * as examples from './examples';\n","import { zodToSchema } from '@walkeros/core/dev';\nimport { SettingsSchema } from './settings';\n\n// Export Zod schemas and types\nexport { SettingsSchema, type Settings } from './settings';\n\n// JSON Schema exports (for website PropertyTable)\nexport const settings = zodToSchema(SettingsSchema);\n","import { z } from '@walkeros/core/dev';\n\n/**\n * Session source settings schema\n */\nexport const SettingsSchema = z.object({\n storage: z\n .boolean()\n .default(false)\n .describe('Enable persistent storage for session/device IDs')\n .optional(),\n\n consent: z\n .union([z.string(), z.array(z.string())])\n .describe('Consent key(s) required to enable storage mode')\n .optional(),\n\n length: z\n .number()\n .default(30)\n .describe('Session timeout in minutes')\n .optional(),\n\n pulse: z\n .boolean()\n .default(false)\n .describe('Keep session alive on each event')\n .optional(),\n\n sessionKey: z\n .string()\n .default('elbSessionId')\n .describe('Storage key for session ID')\n .optional(),\n\n sessionStorage: z\n .enum(['local', 'session'])\n .default('local')\n .describe('Storage type for session')\n .optional(),\n\n deviceKey: z\n .string()\n .default('elbDeviceId')\n .describe('Storage key for device ID')\n .optional(),\n\n deviceStorage: z\n .enum(['local', 'session'])\n .default('local')\n .describe('Storage type for device')\n .optional(),\n\n deviceAge: z\n .number()\n .default(30)\n .describe('Device ID age in days')\n .optional(),\n\n // Note: Using z.any() because z.custom() cannot be converted to JSON Schema\n // TypeScript types provide compile-time safety; runtime accepts function or false\n cb: z\n .any()\n .describe('Custom session callback function or false to disable')\n .optional(),\n});\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","export * as step from './step';\nexport { setup } from './setup';\n","import type { Flow } from '@walkeros/core';\n\nexport const
|
|
1
|
+
{"version":3,"sources":["../src/dev.ts","../src/schemas/index.ts","../src/schemas/settings.ts","../src/examples/index.ts","../src/examples/step.ts","../src/examples/setup.ts"],"sourcesContent":["export * as schemas from './schemas';\nexport * as examples from './examples';\n","import { zodToSchema } from '@walkeros/core/dev';\nimport { SettingsSchema } from './settings';\n\n// Export Zod schemas and types\nexport { SettingsSchema, type Settings } from './settings';\n\n// JSON Schema exports (for website PropertyTable)\nexport const settings = zodToSchema(SettingsSchema);\n","import { z } from '@walkeros/core/dev';\n\n/**\n * Session source settings schema\n */\nexport const SettingsSchema = z.object({\n storage: z\n .boolean()\n .default(false)\n .describe('Enable persistent storage for session/device IDs')\n .optional(),\n\n consent: z\n .union([z.string(), z.array(z.string())])\n .describe('Consent key(s) required to enable storage mode')\n .optional(),\n\n length: z\n .number()\n .default(30)\n .describe('Session timeout in minutes')\n .optional(),\n\n pulse: z\n .boolean()\n .default(false)\n .describe('Keep session alive on each event')\n .optional(),\n\n sessionKey: z\n .string()\n .default('elbSessionId')\n .describe('Storage key for session ID')\n .optional(),\n\n sessionStorage: z\n .enum(['local', 'session'])\n .default('local')\n .describe('Storage type for session')\n .optional(),\n\n deviceKey: z\n .string()\n .default('elbDeviceId')\n .describe('Storage key for device ID')\n .optional(),\n\n deviceStorage: z\n .enum(['local', 'session'])\n .default('local')\n .describe('Storage type for device')\n .optional(),\n\n deviceAge: z\n .number()\n .default(30)\n .describe('Device ID age in days')\n .optional(),\n\n // Note: Using z.any() because z.custom() cannot be converted to JSON Schema\n // TypeScript types provide compile-time safety; runtime accepts function or false\n cb: z\n .any()\n .describe('Custom session callback function or false to disable')\n .optional(),\n});\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","export * as step from './step';\nexport { setup } from './setup';\n","import type { Flow } from '@walkeros/core';\n\nexport const newMarketingSession: Flow.StepExample = {\n in: { storage: true },\n out: {\n name: 'session start',\n data: {\n isStart: true,\n isNew: true,\n count: 1,\n runs: 1,\n storage: true,\n id: 's3ss10n-id',\n device: 'd3v1c3-id',\n start: 1700000000000,\n marketing: true,\n source: 'google',\n medium: 'cpc',\n campaign: 'winter-sale',\n },\n entity: 'session',\n action: 'start',\n },\n};\n\nexport const returningVisitor: Flow.StepExample = {\n in: { storage: true },\n out: {\n name: 'session start',\n data: {\n isStart: true,\n isNew: false,\n count: 3,\n runs: 1,\n storage: true,\n id: 'n3w-s3ss10n',\n device: 'd3v1c3-id',\n start: 1700001000000,\n referrer: 'google.com',\n },\n entity: 'session',\n action: 'start',\n },\n};\n","import type { Source } from '@walkeros/core';\n\n/** Prepares localStorage with session/device data. */\nexport const setup: Source.SetupFn = (input, env) => {\n if (!input || typeof input !== 'object') return;\n const data = input as Record<string, unknown>;\n\n if (data.sessionData && typeof data.sessionData === 'object') {\n const key =\n typeof data.sessionKey === 'string' ? data.sessionKey : 'elbSessionId';\n env.localStorage.setItem(key, JSON.stringify(data.sessionData));\n }\n\n if (typeof data.deviceId === 'string') {\n const key =\n typeof data.deviceKey === 'string' ? data.deviceKey : 'elbDeviceId';\n env.localStorage.setItem(key, data.deviceId);\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAAA,cAA4B;;;ACA5B,iBAAkB;AAKX,IAAM,iBAAiB,aAAE,OAAO;AAAA,EACrC,SAAS,aACN,QAAQ,EACR,QAAQ,KAAK,EACb,SAAS,kDAAkD,EAC3D,SAAS;AAAA,EAEZ,SAAS,aACN,MAAM,CAAC,aAAE,OAAO,GAAG,aAAE,MAAM,aAAE,OAAO,CAAC,CAAC,CAAC,EACvC,SAAS,gDAAgD,EACzD,SAAS;AAAA,EAEZ,QAAQ,aACL,OAAO,EACP,QAAQ,EAAE,EACV,SAAS,4BAA4B,EACrC,SAAS;AAAA,EAEZ,OAAO,aACJ,QAAQ,EACR,QAAQ,KAAK,EACb,SAAS,kCAAkC,EAC3C,SAAS;AAAA,EAEZ,YAAY,aACT,OAAO,EACP,QAAQ,cAAc,EACtB,SAAS,4BAA4B,EACrC,SAAS;AAAA,EAEZ,gBAAgB,aACb,KAAK,CAAC,SAAS,SAAS,CAAC,EACzB,QAAQ,OAAO,EACf,SAAS,0BAA0B,EACnC,SAAS;AAAA,EAEZ,WAAW,aACR,OAAO,EACP,QAAQ,aAAa,EACrB,SAAS,2BAA2B,EACpC,SAAS;AAAA,EAEZ,eAAe,aACZ,KAAK,CAAC,SAAS,SAAS,CAAC,EACzB,QAAQ,OAAO,EACf,SAAS,yBAAyB,EAClC,SAAS;AAAA,EAEZ,WAAW,aACR,OAAO,EACP,QAAQ,EAAE,EACV,SAAS,uBAAuB,EAChC,SAAS;AAAA;AAAA;AAAA,EAIZ,IAAI,aACD,IAAI,EACJ,SAAS,sDAAsD,EAC/D,SAAS;AACd,CAAC;;;AD1DM,IAAM,eAAW,yBAAY,cAAc;;;AEPlD;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAEO,IAAM,sBAAwC;AAAA,EACnD,IAAI,EAAE,SAAS,KAAK;AAAA,EACpB,KAAK;AAAA,IACH,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF;AAEO,IAAM,mBAAqC;AAAA,EAChD,IAAI,EAAE,SAAS,KAAK;AAAA,EACpB,KAAK;AAAA,IACH,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF;;;ACxCO,IAAM,QAAwB,CAAC,OAAO,QAAQ;AACnD,MAAI,CAAC,SAAS,OAAO,UAAU,SAAU;AACzC,QAAM,OAAO;AAEb,MAAI,KAAK,eAAe,OAAO,KAAK,gBAAgB,UAAU;AAC5D,UAAM,MACJ,OAAO,KAAK,eAAe,WAAW,KAAK,aAAa;AAC1D,QAAI,aAAa,QAAQ,KAAK,KAAK,UAAU,KAAK,WAAW,CAAC;AAAA,EAChE;AAEA,MAAI,OAAO,KAAK,aAAa,UAAU;AACrC,UAAM,MACJ,OAAO,KAAK,cAAc,WAAW,KAAK,YAAY;AACxD,QAAI,aAAa,QAAQ,KAAK,KAAK,QAAQ;AAAA,EAC7C;AACF;","names":["import_dev"]}
|
package/dist/dev.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=Object.defineProperty,s=(s,t)=>{for(var o in t)e(s,o,{get:t[o],enumerable:!0})},t={};s(t,{SettingsSchema:()=>n,settings:()=>a});import{zodToSchema as o}from"@walkeros/core/dev";import{z as i}from"@walkeros/core/dev";var n=i.object({storage:i.boolean().default(!1).describe("Enable persistent storage for session/device IDs").optional(),consent:i.union([i.string(),i.array(i.string())]).describe("Consent key(s) required to enable storage mode").optional(),length:i.number().default(30).describe("Session timeout in minutes").optional(),pulse:i.boolean().default(!1).describe("Keep session alive on each event").optional(),sessionKey:i.string().default("elbSessionId").describe("Storage key for session ID").optional(),sessionStorage:i.enum(["local","session"]).default("local").describe("Storage type for session").optional(),deviceKey:i.string().default("elbDeviceId").describe("Storage key for device ID").optional(),deviceStorage:i.enum(["local","session"]).default("local").describe("Storage type for device").optional(),deviceAge:i.number().default(30).describe("Device ID age in days").optional(),cb:i.any().describe("Custom session callback function or false to disable").optional()}),a=o(n),r={};s(r,{setup:()=>
|
|
1
|
+
var e=Object.defineProperty,s=(s,t)=>{for(var o in t)e(s,o,{get:t[o],enumerable:!0})},t={};s(t,{SettingsSchema:()=>n,settings:()=>a});import{zodToSchema as o}from"@walkeros/core/dev";import{z as i}from"@walkeros/core/dev";var n=i.object({storage:i.boolean().default(!1).describe("Enable persistent storage for session/device IDs").optional(),consent:i.union([i.string(),i.array(i.string())]).describe("Consent key(s) required to enable storage mode").optional(),length:i.number().default(30).describe("Session timeout in minutes").optional(),pulse:i.boolean().default(!1).describe("Keep session alive on each event").optional(),sessionKey:i.string().default("elbSessionId").describe("Storage key for session ID").optional(),sessionStorage:i.enum(["local","session"]).default("local").describe("Storage type for session").optional(),deviceKey:i.string().default("elbDeviceId").describe("Storage key for device ID").optional(),deviceStorage:i.enum(["local","session"]).default("local").describe("Storage type for device").optional(),deviceAge:i.number().default(30).describe("Device ID age in days").optional(),cb:i.any().describe("Custom session callback function or false to disable").optional()}),a=o(n),r={};s(r,{setup:()=>g,step:()=>c});var c={};s(c,{newMarketingSession:()=>d,returningVisitor:()=>l});var d={in:{storage:!0},out:{name:"session start",data:{isStart:!0,isNew:!0,count:1,runs:1,storage:!0,id:"s3ss10n-id",device:"d3v1c3-id",start:17e11,marketing:!0,source:"google",medium:"cpc",campaign:"winter-sale"},entity:"session",action:"start"}},l={in:{storage:!0},out:{name:"session start",data:{isStart:!0,isNew:!1,count:3,runs:1,storage:!0,id:"n3w-s3ss10n",device:"d3v1c3-id",start:1700001e6,referrer:"google.com"},entity:"session",action:"start"}},g=(e,s)=>{if(!e||"object"!=typeof e)return;const t=e;if(t.sessionData&&"object"==typeof t.sessionData){const e="string"==typeof t.sessionKey?t.sessionKey:"elbSessionId";s.localStorage.setItem(e,JSON.stringify(t.sessionData))}if("string"==typeof t.deviceId){const e="string"==typeof t.deviceKey?t.deviceKey:"elbDeviceId";s.localStorage.setItem(e,t.deviceId)}};export{r as examples,t as schemas};//# sourceMappingURL=dev.mjs.map
|
package/dist/dev.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schemas/index.ts","../src/schemas/settings.ts","../src/examples/index.ts","../src/examples/step.ts","../src/examples/setup.ts"],"sourcesContent":["import { zodToSchema } from '@walkeros/core/dev';\nimport { SettingsSchema } from './settings';\n\n// Export Zod schemas and types\nexport { SettingsSchema, type Settings } from './settings';\n\n// JSON Schema exports (for website PropertyTable)\nexport const settings = zodToSchema(SettingsSchema);\n","import { z } from '@walkeros/core/dev';\n\n/**\n * Session source settings schema\n */\nexport const SettingsSchema = z.object({\n storage: z\n .boolean()\n .default(false)\n .describe('Enable persistent storage for session/device IDs')\n .optional(),\n\n consent: z\n .union([z.string(), z.array(z.string())])\n .describe('Consent key(s) required to enable storage mode')\n .optional(),\n\n length: z\n .number()\n .default(30)\n .describe('Session timeout in minutes')\n .optional(),\n\n pulse: z\n .boolean()\n .default(false)\n .describe('Keep session alive on each event')\n .optional(),\n\n sessionKey: z\n .string()\n .default('elbSessionId')\n .describe('Storage key for session ID')\n .optional(),\n\n sessionStorage: z\n .enum(['local', 'session'])\n .default('local')\n .describe('Storage type for session')\n .optional(),\n\n deviceKey: z\n .string()\n .default('elbDeviceId')\n .describe('Storage key for device ID')\n .optional(),\n\n deviceStorage: z\n .enum(['local', 'session'])\n .default('local')\n .describe('Storage type for device')\n .optional(),\n\n deviceAge: z\n .number()\n .default(30)\n .describe('Device ID age in days')\n .optional(),\n\n // Note: Using z.any() because z.custom() cannot be converted to JSON Schema\n // TypeScript types provide compile-time safety; runtime accepts function or false\n cb: z\n .any()\n .describe('Custom session callback function or false to disable')\n .optional(),\n});\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","export * as step from './step';\nexport { setup } from './setup';\n","import type { Flow } from '@walkeros/core';\n\nexport const
|
|
1
|
+
{"version":3,"sources":["../src/schemas/index.ts","../src/schemas/settings.ts","../src/examples/index.ts","../src/examples/step.ts","../src/examples/setup.ts"],"sourcesContent":["import { zodToSchema } from '@walkeros/core/dev';\nimport { SettingsSchema } from './settings';\n\n// Export Zod schemas and types\nexport { SettingsSchema, type Settings } from './settings';\n\n// JSON Schema exports (for website PropertyTable)\nexport const settings = zodToSchema(SettingsSchema);\n","import { z } from '@walkeros/core/dev';\n\n/**\n * Session source settings schema\n */\nexport const SettingsSchema = z.object({\n storage: z\n .boolean()\n .default(false)\n .describe('Enable persistent storage for session/device IDs')\n .optional(),\n\n consent: z\n .union([z.string(), z.array(z.string())])\n .describe('Consent key(s) required to enable storage mode')\n .optional(),\n\n length: z\n .number()\n .default(30)\n .describe('Session timeout in minutes')\n .optional(),\n\n pulse: z\n .boolean()\n .default(false)\n .describe('Keep session alive on each event')\n .optional(),\n\n sessionKey: z\n .string()\n .default('elbSessionId')\n .describe('Storage key for session ID')\n .optional(),\n\n sessionStorage: z\n .enum(['local', 'session'])\n .default('local')\n .describe('Storage type for session')\n .optional(),\n\n deviceKey: z\n .string()\n .default('elbDeviceId')\n .describe('Storage key for device ID')\n .optional(),\n\n deviceStorage: z\n .enum(['local', 'session'])\n .default('local')\n .describe('Storage type for device')\n .optional(),\n\n deviceAge: z\n .number()\n .default(30)\n .describe('Device ID age in days')\n .optional(),\n\n // Note: Using z.any() because z.custom() cannot be converted to JSON Schema\n // TypeScript types provide compile-time safety; runtime accepts function or false\n cb: z\n .any()\n .describe('Custom session callback function or false to disable')\n .optional(),\n});\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","export * as step from './step';\nexport { setup } from './setup';\n","import type { Flow } from '@walkeros/core';\n\nexport const newMarketingSession: Flow.StepExample = {\n in: { storage: true },\n out: {\n name: 'session start',\n data: {\n isStart: true,\n isNew: true,\n count: 1,\n runs: 1,\n storage: true,\n id: 's3ss10n-id',\n device: 'd3v1c3-id',\n start: 1700000000000,\n marketing: true,\n source: 'google',\n medium: 'cpc',\n campaign: 'winter-sale',\n },\n entity: 'session',\n action: 'start',\n },\n};\n\nexport const returningVisitor: Flow.StepExample = {\n in: { storage: true },\n out: {\n name: 'session start',\n data: {\n isStart: true,\n isNew: false,\n count: 3,\n runs: 1,\n storage: true,\n id: 'n3w-s3ss10n',\n device: 'd3v1c3-id',\n start: 1700001000000,\n referrer: 'google.com',\n },\n entity: 'session',\n action: 'start',\n },\n};\n","import type { Source } from '@walkeros/core';\n\n/** Prepares localStorage with session/device data. */\nexport const setup: Source.SetupFn = (input, env) => {\n if (!input || typeof input !== 'object') return;\n const data = input as Record<string, unknown>;\n\n if (data.sessionData && typeof data.sessionData === 'object') {\n const key =\n typeof data.sessionKey === 'string' ? data.sessionKey : 'elbSessionId';\n env.localStorage.setItem(key, JSON.stringify(data.sessionData));\n }\n\n if (typeof data.deviceId === 'string') {\n const key =\n typeof data.deviceKey === 'string' ? data.deviceKey : 'elbDeviceId';\n env.localStorage.setItem(key, data.deviceId);\n }\n};\n"],"mappings":";;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAS,mBAAmB;;;ACA5B,SAAS,SAAS;AAKX,IAAM,iBAAiB,EAAE,OAAO;AAAA,EACrC,SAAS,EACN,QAAQ,EACR,QAAQ,KAAK,EACb,SAAS,kDAAkD,EAC3D,SAAS;AAAA,EAEZ,SAAS,EACN,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EACvC,SAAS,gDAAgD,EACzD,SAAS;AAAA,EAEZ,QAAQ,EACL,OAAO,EACP,QAAQ,EAAE,EACV,SAAS,4BAA4B,EACrC,SAAS;AAAA,EAEZ,OAAO,EACJ,QAAQ,EACR,QAAQ,KAAK,EACb,SAAS,kCAAkC,EAC3C,SAAS;AAAA,EAEZ,YAAY,EACT,OAAO,EACP,QAAQ,cAAc,EACtB,SAAS,4BAA4B,EACrC,SAAS;AAAA,EAEZ,gBAAgB,EACb,KAAK,CAAC,SAAS,SAAS,CAAC,EACzB,QAAQ,OAAO,EACf,SAAS,0BAA0B,EACnC,SAAS;AAAA,EAEZ,WAAW,EACR,OAAO,EACP,QAAQ,aAAa,EACrB,SAAS,2BAA2B,EACpC,SAAS;AAAA,EAEZ,eAAe,EACZ,KAAK,CAAC,SAAS,SAAS,CAAC,EACzB,QAAQ,OAAO,EACf,SAAS,yBAAyB,EAClC,SAAS;AAAA,EAEZ,WAAW,EACR,OAAO,EACP,QAAQ,EAAE,EACV,SAAS,uBAAuB,EAChC,SAAS;AAAA;AAAA;AAAA,EAIZ,IAAI,EACD,IAAI,EACJ,SAAS,sDAAsD,EAC/D,SAAS;AACd,CAAC;;;AD1DM,IAAM,WAAW,YAAY,cAAc;;;AEPlD;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAEO,IAAM,sBAAwC;AAAA,EACnD,IAAI,EAAE,SAAS,KAAK;AAAA,EACpB,KAAK;AAAA,IACH,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF;AAEO,IAAM,mBAAqC;AAAA,EAChD,IAAI,EAAE,SAAS,KAAK;AAAA,EACpB,KAAK;AAAA,IACH,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF;;;ACxCO,IAAM,QAAwB,CAAC,OAAO,QAAQ;AACnD,MAAI,CAAC,SAAS,OAAO,UAAU,SAAU;AACzC,QAAM,OAAO;AAEb,MAAI,KAAK,eAAe,OAAO,KAAK,gBAAgB,UAAU;AAC5D,UAAM,MACJ,OAAO,KAAK,eAAe,WAAW,KAAK,aAAa;AAC1D,QAAI,aAAa,QAAQ,KAAK,KAAK,UAAU,KAAK,WAAW,CAAC;AAAA,EAChE;AAEA,MAAI,OAAO,KAAK,aAAa,UAAU;AACrC,UAAM,MACJ,OAAO,KAAK,cAAc,WAAW,KAAK,YAAY;AACxD,QAAI,aAAa,QAAQ,KAAK,KAAK,QAAQ;AAAA,EAC7C;AACF;","names":[]}
|
package/dist/walkerOS.json
CHANGED
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
"version": "2.1.1",
|
|
5
5
|
"type": "source",
|
|
6
6
|
"platform": "web",
|
|
7
|
-
"renderer": "codebox"
|
|
7
|
+
"renderer": "codebox",
|
|
8
|
+
"docs": "https://www.walkeros.io/docs/sources/web/session/detection",
|
|
9
|
+
"source": "https://github.com/elbwalker/walkerOS/tree/main/packages/web/sources/session/src"
|
|
8
10
|
},
|
|
9
11
|
"schemas": {
|
|
10
12
|
"settings": {
|
|
@@ -85,41 +87,46 @@
|
|
|
85
87
|
"$code": "(e,s)=>{if(!e||\"object\"!=typeof e)return;const t=e;if(t.sessionData&&\"object\"==typeof t.sessionData){const e=\"string\"==typeof t.sessionKey?t.sessionKey:\"elbSessionId\";s.localStorage.setItem(e,JSON.stringify(t.sessionData))}if(\"string\"==typeof t.deviceId){const e=\"string\"==typeof t.deviceKey?t.deviceKey:\"elbDeviceId\";s.localStorage.setItem(e,t.deviceId)}}"
|
|
86
88
|
},
|
|
87
89
|
"step": {
|
|
88
|
-
"
|
|
90
|
+
"newMarketingSession": {
|
|
89
91
|
"in": {
|
|
90
|
-
"storage": true
|
|
91
|
-
"consent": "functional"
|
|
92
|
+
"storage": true
|
|
92
93
|
},
|
|
93
94
|
"out": {
|
|
94
95
|
"name": "session start",
|
|
95
96
|
"data": {
|
|
97
|
+
"isStart": true,
|
|
98
|
+
"isNew": true,
|
|
99
|
+
"count": 1,
|
|
100
|
+
"runs": 1,
|
|
101
|
+
"storage": true,
|
|
96
102
|
"id": "s3ss10n-id",
|
|
103
|
+
"device": "d3v1c3-id",
|
|
97
104
|
"start": 1700000000000,
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
"storage": true
|
|
105
|
+
"marketing": true,
|
|
106
|
+
"source": "google",
|
|
107
|
+
"medium": "cpc",
|
|
108
|
+
"campaign": "winter-sale"
|
|
103
109
|
},
|
|
104
110
|
"entity": "session",
|
|
105
111
|
"action": "start"
|
|
106
112
|
}
|
|
107
113
|
},
|
|
108
|
-
"
|
|
114
|
+
"returningVisitor": {
|
|
109
115
|
"in": {
|
|
110
|
-
"storage": true
|
|
111
|
-
"consent": "functional"
|
|
116
|
+
"storage": true
|
|
112
117
|
},
|
|
113
118
|
"out": {
|
|
114
119
|
"name": "session start",
|
|
115
120
|
"data": {
|
|
116
|
-
"id": "s3ss10n-id",
|
|
117
|
-
"start": 1700000000000,
|
|
118
|
-
"isNew": true,
|
|
119
|
-
"count": 1,
|
|
120
|
-
"runs": 1,
|
|
121
121
|
"isStart": true,
|
|
122
|
-
"
|
|
122
|
+
"isNew": false,
|
|
123
|
+
"count": 3,
|
|
124
|
+
"runs": 1,
|
|
125
|
+
"storage": true,
|
|
126
|
+
"id": "n3w-s3ss10n",
|
|
127
|
+
"device": "d3v1c3-id",
|
|
128
|
+
"start": 1700001000000,
|
|
129
|
+
"referrer": "google.com"
|
|
123
130
|
},
|
|
124
131
|
"entity": "session",
|
|
125
132
|
"action": "start"
|
package/package.json
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@walkeros/web-source-session",
|
|
3
3
|
"description": "Session source for walkerOS",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "3.0.0",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"sideEffects": false,
|
|
7
6
|
"main": "./dist/index.js",
|
|
8
7
|
"module": "./dist/index.mjs",
|
|
9
8
|
"types": "./dist/index.d.ts",
|
|
@@ -32,11 +31,11 @@
|
|
|
32
31
|
"update": "npx npm-check-updates -u && npm update"
|
|
33
32
|
},
|
|
34
33
|
"dependencies": {
|
|
35
|
-
"@walkeros/core": "
|
|
36
|
-
"@walkeros/web-core": "
|
|
34
|
+
"@walkeros/core": "^3.0.0",
|
|
35
|
+
"@walkeros/web-core": "^3.0.0"
|
|
37
36
|
},
|
|
38
37
|
"devDependencies": {
|
|
39
|
-
"@walkeros/collector": "
|
|
38
|
+
"@walkeros/collector": "^3.0.0"
|
|
40
39
|
},
|
|
41
40
|
"repository": {
|
|
42
41
|
"url": "git+https://github.com/elbwalker/walkerOS.git",
|
|
@@ -50,7 +49,8 @@
|
|
|
50
49
|
"walkerOS": {
|
|
51
50
|
"type": "source",
|
|
52
51
|
"platform": "web",
|
|
53
|
-
"renderer": "codebox"
|
|
52
|
+
"renderer": "codebox",
|
|
53
|
+
"docs": "https://www.walkeros.io/docs/sources/web/session/detection"
|
|
54
54
|
},
|
|
55
55
|
"keywords": [
|
|
56
56
|
"walkerOS",
|