@walkeros/server-destination-linkedin 3.3.1 → 3.4.0-next-1776749829492

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.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,t=(e,n)=>{for(var o in n)r(e,o,{get:n[o],enumerable:!0})},i={};t(i,{examples:()=>g,schemas:()=>s}),module.exports=(e=i,((e,t,i,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let c of o(t))a.call(e,c)||c===i||r(e,c,{get:()=>t[c],enumerable:!(s=n(t,c))||s.enumerable});return e})(r({},"__esModule",{value:!0}),e));var s={};t(s,{ApiVersionSchema:()=>p,MappingSchema:()=>b,SettingsSchema:()=>m,UserIdTypeSchema:()=>l,mapping:()=>I,settings:()=>f});var c=require("@walkeros/core/dev"),d=require("@walkeros/core/dev"),u=require("@walkeros/core/dev"),l=u.z.enum(["SHA256_EMAIL","LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID","ACXIOM_ID","ORACLE_MOAT_ID"]),p=u.z.string().regex(/^\d{6}$/,"API version must be in YYYYMM format (e.g. 202604)"),m=d.z.object({accessToken:d.z.string().min(1).describe("LinkedIn OAuth 2.0 Bearer token for Conversions API authentication (like AQX...)"),conversionRuleId:d.z.string().regex(/^[0-9]+$/,"Conversion rule ID must contain only digits").describe("Default LinkedIn conversion rule ID from Campaign Manager (like 12345678)"),apiVersion:p.describe("Linkedin-Version header value in YYYYMM format (like 202604)").optional(),doNotHash:d.z.array(d.z.string()).describe("Array of user data fields that should not be hashed (like ['email'])").optional(),url:d.z.string().url().describe("Custom URL for LinkedIn Conversions API endpoint (like https://api.linkedin.com/rest/)").optional(),user_data:d.z.record(d.z.string(),d.z.string()).describe("Mapping configuration for user data fields (like { email: 'user.email', li_fat_id: 'context.li_fat_id' })").optional()}),v=require("@walkeros/core/dev"),b=v.z.object({conversion:v.z.object({ruleId:v.z.string().describe("Override conversion rule ID for this event").optional(),value:v.z.union([v.z.string(),v.z.number()]).describe("Conversion monetary value").optional(),currency:v.z.string().describe("ISO 4217 currency code (like USD, EUR)").optional()}).describe("Per-event conversion override with ruleId, value, and currency").optional()}),f=(0,c.zodToSchema)(m),I=(0,c.zodToSchema)(b),g={};t(g,{env:()=>y,step:()=>A});var y={};t(y,{push:()=>_,simulation:()=>h});var _={sendServer:async function(e,r,n){return{ok:!0,data:{}}}},h=["sendServer"],A={};t(A,{lead:()=>z,purchase:()=>S,purchaseWithLiFatId:()=>D});var k=require("@walkeros/core"),S={in:(0,k.getEvent)("order complete",{timestamp:17000009e5,data:{total:249.99,currency:"EUR"},user:{email:"jane@example.com"},source:{type:"server",id:"https://shop.example.com",previous_id:""}}),mapping:{settings:{conversion:{map:{value:"data.total",currency:{key:"data.currency",value:"EUR"}}}}},out:{elements:[{conversion:"urn:lla:llaPartnerConversion:12345678",conversionHappenedAt:17000009e5,conversionValue:{currencyCode:"EUR",amount:"249.99"},user:{userIds:[{idType:"SHA256_EMAIL",idValue:"8c87b489ce35cf2e2f39f80e282cb2e804932a56a213983eeeb428407d43b52d"}]},eventId:"1700000900000-gr0up-1"}]}},z={in:(0,k.getEvent)("form submit",{timestamp:1700000901e3,user:{email:"user@example.com"},source:{type:"server",id:"https://example.com",previous_id:""}}),mapping:void 0,out:{elements:[{conversion:"urn:lla:llaPartnerConversion:12345678",conversionHappenedAt:1700000901e3,user:{userIds:[{idType:"SHA256_EMAIL",idValue:"b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514"}]},eventId:"1700000901000-gr0up-1"}]}},D={in:(0,k.getEvent)("order complete",{timestamp:1700000902e3,data:{total:89.99,currency:"USD"},user:{email:"buyer@co.com"},context:{li_fat_id:["abc123-fat-id",0]},source:{type:"server",id:"https://shop.example.com",previous_id:""}}),mapping:{settings:{conversion:{map:{value:"data.total",currency:{key:"data.currency",value:"USD"}}}},data:{map:{user_data:{map:{li_fat_id:"context.li_fat_id"}}}}},out:{elements:[{conversion:"urn:lla:llaPartnerConversion:12345678",conversionHappenedAt:1700000902e3,conversionValue:{currencyCode:"USD",amount:"89.99"},user:{userIds:[{idType:"SHA256_EMAIL",idValue:"484c39bfb51212665d9673805c112b5ba04cbf0460b6d3f00bcdc18b92afed66"},{idType:"LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID",idValue:"abc123-fat-id"}]},eventId:"1700000902000-gr0up-1"}]}};//# sourceMappingURL=dev.js.map
1
+ "use strict";var e,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,t=(e,n)=>{for(var i in n)r(e,i,{get:n[i],enumerable:!0})},a={};t(a,{examples:()=>y,schemas:()=>s}),module.exports=(e=a,((e,t,a,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let c of i(t))o.call(e,c)||c===a||r(e,c,{get:()=>t[c],enumerable:!(s=n(t,c))||s.enumerable});return e})(r({},"__esModule",{value:!0}),e));var s={};t(s,{ApiVersionSchema:()=>p,MappingSchema:()=>b,SettingsSchema:()=>v,UserIdTypeSchema:()=>u,mapping:()=>g,settings:()=>f});var c=require("@walkeros/core/dev"),d=require("@walkeros/core/dev"),l=require("@walkeros/core/dev"),u=l.z.enum(["SHA256_EMAIL","LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID","ACXIOM_ID","ORACLE_MOAT_ID"]),p=l.z.string().regex(/^\d{6}$/,"API version must be in YYYYMM format (e.g. 202604)"),v=d.z.object({accessToken:d.z.string().min(1).describe("LinkedIn OAuth 2.0 Bearer token for Conversions API authentication (like AQX...)"),conversionRuleId:d.z.string().regex(/^[0-9]+$/,"Conversion rule ID must contain only digits").describe("Default LinkedIn conversion rule ID from Campaign Manager (like 12345678)"),apiVersion:p.describe("Linkedin-Version header value in YYYYMM format (like 202604)").optional(),doNotHash:d.z.array(d.z.string()).describe("Array of user data fields that should not be hashed (like ['email'])").optional(),url:d.z.string().url().describe("Custom URL for LinkedIn Conversions API endpoint (like https://api.linkedin.com/rest/)").optional(),user_data:d.z.record(d.z.string(),d.z.string()).describe("Mapping configuration for user data fields (like { email: 'user.email', li_fat_id: 'context.li_fat_id' })").optional()}),m=require("@walkeros/core/dev"),b=m.z.object({conversion:m.z.object({ruleId:m.z.string().describe("Override conversion rule ID for this event").optional(),value:m.z.union([m.z.string(),m.z.number()]).describe("Conversion monetary value").optional(),currency:m.z.string().describe("ISO 4217 currency code (like USD, EUR)").optional()}).describe("Per-event conversion override with ruleId, value, and currency").optional()}),f=(0,c.zodToSchema)(v),g=(0,c.zodToSchema)(b),y={};t(y,{env:()=>I,step:()=>A});var I={};t(I,{push:()=>_,simulation:()=>h});var _={sendServer:async function(e,r,n){return{ok:!0,data:{}}}},h=["sendServer"],A={};t(A,{lead:()=>T,purchase:()=>C,purchaseWithLiFatId:()=>D});var S=require("@walkeros/core"),k="https://api.linkedin.com/rest/conversionEvents",z={headers:{Authorization:"Bearer s3cr3t","Content-Type":"application/json","X-Restli-Protocol-Version":"2.0.0","X-RestLi-Method":"BATCH_CREATE","Linkedin-Version":"202604"}},C={in:(0,S.getEvent)("order complete",{timestamp:17000009e5,data:{total:249.99,currency:"EUR"},user:{email:"jane@example.com"},source:{type:"server",id:"https://shop.example.com",previous_id:""}}),mapping:{settings:{conversion:{map:{value:"data.total",currency:{key:"data.currency",value:"EUR"}}}}},out:[["sendServer",k,JSON.stringify({elements:[{conversion:"urn:lla:llaPartnerConversion:12345678",conversionHappenedAt:17000009e5,user:{userIds:[{idType:"SHA256_EMAIL",idValue:"8c87b489ce35cf2e2f39f80e282cb2e804932a56a213983eeeb428407d43b52d"}]},eventId:"1700000900000-gr0up-1",conversionValue:{currencyCode:"EUR",amount:"249.99"}}]}),z]]},T={in:(0,S.getEvent)("form submit",{timestamp:1700000901e3,user:{email:"user@example.com"},source:{type:"server",id:"https://example.com",previous_id:""}}),mapping:void 0,out:[["sendServer",k,JSON.stringify({elements:[{conversion:"urn:lla:llaPartnerConversion:12345678",conversionHappenedAt:1700000901e3,user:{userIds:[{idType:"SHA256_EMAIL",idValue:"b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514"}]},eventId:"1700000901000-gr0up-1"}]}),z]]},D={in:(0,S.getEvent)("order complete",{timestamp:1700000902e3,data:{total:89.99,currency:"USD"},user:{email:"buyer@co.com"},context:{li_fat_id:["abc123-fat-id",0]},source:{type:"server",id:"https://shop.example.com",previous_id:""}}),mapping:{settings:{conversion:{map:{value:"data.total",currency:{key:"data.currency",value:"USD"}}}},data:{map:{user_data:{map:{li_fat_id:"context.li_fat_id"}}}}},out:[["sendServer",k,JSON.stringify({elements:[{conversion:"urn:lla:llaPartnerConversion:12345678",conversionHappenedAt:1700000902e3,user:{userIds:[{idType:"SHA256_EMAIL",idValue:"484c39bfb51212665d9673805c112b5ba04cbf0460b6d3f00bcdc18b92afed66"},{idType:"LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID",idValue:"abc123-fat-id"}]},eventId:"1700000902000-gr0up-1",conversionValue:{currencyCode:"USD",amount:"89.99"}}]}),z]]};//# 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/schemas/primitives.ts","../src/schemas/mapping.ts","../src/examples/index.ts","../src/examples/env.ts","../src/examples/step.ts"],"sourcesContent":["export * as schemas from './schemas';\nexport * as examples from './examples';\n","import { zodToSchema } from '@walkeros/core/dev';\nimport { SettingsSchema } from './settings';\nimport { MappingSchema } from './mapping';\n\nexport * from './primitives';\n\nexport { SettingsSchema, type Settings } from './settings';\nexport { MappingSchema, type Mapping } from './mapping';\n\n// JSON Schema\nexport const settings = zodToSchema(SettingsSchema);\nexport const mapping = zodToSchema(MappingSchema);\n","import { z } from '@walkeros/core/dev';\nimport { ApiVersionSchema } from './primitives';\n\nexport const SettingsSchema = z.object({\n accessToken: z\n .string()\n .min(1)\n .describe(\n 'LinkedIn OAuth 2.0 Bearer token for Conversions API authentication (like AQX...)',\n ),\n conversionRuleId: z\n .string()\n .regex(/^[0-9]+$/, 'Conversion rule ID must contain only digits')\n .describe(\n 'Default LinkedIn conversion rule ID from Campaign Manager (like 12345678)',\n ),\n apiVersion: ApiVersionSchema.describe(\n 'Linkedin-Version header value in YYYYMM format (like 202604)',\n ).optional(),\n doNotHash: z\n .array(z.string())\n .describe(\n \"Array of user data fields that should not be hashed (like ['email'])\",\n )\n .optional(),\n url: z\n .string()\n .url()\n .describe(\n 'Custom URL for LinkedIn Conversions API endpoint (like https://api.linkedin.com/rest/)',\n )\n .optional(),\n user_data: z\n .record(z.string(), z.string())\n .describe(\n \"Mapping configuration for user data fields (like { email: 'user.email', li_fat_id: 'context.li_fat_id' })\",\n )\n .optional(),\n});\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","import { z } from '@walkeros/core/dev';\n\n/**\n * LinkedIn User ID Type Enum\n * Types of user identifiers supported by LinkedIn Conversions API\n */\nexport const UserIdTypeSchema = z.enum([\n 'SHA256_EMAIL',\n 'LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID',\n 'ACXIOM_ID',\n 'ORACLE_MOAT_ID',\n]);\n\n/**\n * API Version Schema\n * LinkedIn-Version header value in YYYYMM format\n */\nexport const ApiVersionSchema = z\n .string()\n .regex(/^\\d{6}$/, 'API version must be in YYYYMM format (e.g. 202604)');\n","import { z } from '@walkeros/core/dev';\n\n/**\n * LinkedIn Conversions API Mapping Schema\n *\n * Per-event override for conversion rule, value, and currency.\n * The `conversion` field is a mapping value that resolves to an object\n * with optional `ruleId`, `value`, and `currency` keys.\n */\nexport const MappingSchema = z.object({\n conversion: z\n .object({\n ruleId: z\n .string()\n .describe('Override conversion rule ID for this event')\n .optional(),\n value: z\n .union([z.string(), z.number()])\n .describe('Conversion monetary value')\n .optional(),\n currency: z\n .string()\n .describe('ISO 4217 currency code (like USD, EUR)')\n .optional(),\n })\n .describe('Per-event conversion override with ruleId, value, and currency')\n .optional(),\n});\n\nexport type Mapping = z.infer<typeof MappingSchema>;\n","export * as env from './env';\nexport * as step from './step';\n","import type { SendDataValue, SendResponse } from '@walkeros/core';\nimport type { SendServerOptions } from '@walkeros/server-core';\nimport type { Env } from '../types';\n\n/**\n * Example environment configurations for LinkedIn Conversions API destination\n *\n * These environments provide standardized mock structures for testing\n * and development without requiring actual HTTP requests.\n */\n\n/**\n * Mock sendServer function that simulates successful HTTP responses\n */\nasync function mockSendServer(\n url: string,\n data?: SendDataValue,\n options?: SendServerOptions,\n): Promise<SendResponse> {\n return {\n ok: true,\n data: {},\n };\n}\n\n/**\n * Standard mock environment for push operations\n *\n * Use this for testing LinkedIn Conversions API events without making\n * actual HTTP requests to LinkedIn's servers.\n */\nexport const push: Env = {\n sendServer: mockSendServer,\n};\n\nexport const simulation = ['sendServer'];\n","import type { Flow } from '@walkeros/core';\nimport { getEvent } from '@walkeros/core';\n\nexport const purchase: Flow.StepExample = {\n in: getEvent('order complete', {\n timestamp: 1700000900000,\n data: { total: 249.99, currency: 'EUR' },\n user: { email: 'jane@example.com' },\n source: { type: 'server', id: 'https://shop.example.com', previous_id: '' },\n }),\n mapping: {\n settings: {\n conversion: {\n map: {\n value: 'data.total',\n currency: { key: 'data.currency', value: 'EUR' },\n },\n },\n },\n },\n out: {\n elements: [\n {\n conversion: 'urn:lla:llaPartnerConversion:12345678',\n conversionHappenedAt: 1700000900000,\n conversionValue: {\n currencyCode: 'EUR',\n amount: '249.99',\n },\n user: {\n userIds: [\n {\n idType: 'SHA256_EMAIL',\n idValue:\n '8c87b489ce35cf2e2f39f80e282cb2e804932a56a213983eeeb428407d43b52d',\n },\n ],\n },\n eventId: '1700000900000-gr0up-1',\n },\n ],\n },\n};\n\nexport const lead: Flow.StepExample = {\n in: getEvent('form submit', {\n timestamp: 1700000901000,\n user: { email: 'user@example.com' },\n source: { type: 'server', id: 'https://example.com', previous_id: '' },\n }),\n mapping: undefined,\n out: {\n elements: [\n {\n conversion: 'urn:lla:llaPartnerConversion:12345678',\n conversionHappenedAt: 1700000901000,\n user: {\n userIds: [\n {\n idType: 'SHA256_EMAIL',\n idValue:\n 'b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514',\n },\n ],\n },\n eventId: '1700000901000-gr0up-1',\n },\n ],\n },\n};\n\nexport const purchaseWithLiFatId: Flow.StepExample = {\n in: getEvent('order complete', {\n timestamp: 1700000902000,\n data: { total: 89.99, currency: 'USD' },\n user: { email: 'buyer@co.com' },\n context: { li_fat_id: ['abc123-fat-id', 0] },\n source: { type: 'server', id: 'https://shop.example.com', previous_id: '' },\n }),\n mapping: {\n settings: {\n conversion: {\n map: {\n value: 'data.total',\n currency: { key: 'data.currency', value: 'USD' },\n },\n },\n },\n data: {\n map: {\n user_data: {\n map: {\n li_fat_id: 'context.li_fat_id',\n },\n },\n },\n },\n },\n out: {\n elements: [\n {\n conversion: 'urn:lla:llaPartnerConversion:12345678',\n conversionHappenedAt: 1700000902000,\n conversionValue: {\n currencyCode: 'USD',\n amount: '89.99',\n },\n user: {\n userIds: [\n {\n idType: 'SHA256_EMAIL',\n idValue:\n '484c39bfb51212665d9673805c112b5ba04cbf0460b6d3f00bcdc18b92afed66',\n },\n {\n idType: 'LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID',\n idValue: 'abc123-fat-id',\n },\n ],\n },\n eventId: '1700000902000-gr0up-1',\n },\n ],\n },\n};\n"],"mappings":"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","names":["import_dev","import_dev","import_dev"]}
1
+ {"version":3,"sources":["../src/dev.ts","../src/schemas/index.ts","../src/schemas/settings.ts","../src/schemas/primitives.ts","../src/schemas/mapping.ts","../src/examples/index.ts","../src/examples/env.ts","../src/examples/step.ts"],"sourcesContent":["export * as schemas from './schemas';\nexport * as examples from './examples';\n","import { zodToSchema } from '@walkeros/core/dev';\nimport { SettingsSchema } from './settings';\nimport { MappingSchema } from './mapping';\n\nexport * from './primitives';\n\nexport { SettingsSchema, type Settings } from './settings';\nexport { MappingSchema, type Mapping } from './mapping';\n\n// JSON Schema\nexport const settings = zodToSchema(SettingsSchema);\nexport const mapping = zodToSchema(MappingSchema);\n","import { z } from '@walkeros/core/dev';\nimport { ApiVersionSchema } from './primitives';\n\nexport const SettingsSchema = z.object({\n accessToken: z\n .string()\n .min(1)\n .describe(\n 'LinkedIn OAuth 2.0 Bearer token for Conversions API authentication (like AQX...)',\n ),\n conversionRuleId: z\n .string()\n .regex(/^[0-9]+$/, 'Conversion rule ID must contain only digits')\n .describe(\n 'Default LinkedIn conversion rule ID from Campaign Manager (like 12345678)',\n ),\n apiVersion: ApiVersionSchema.describe(\n 'Linkedin-Version header value in YYYYMM format (like 202604)',\n ).optional(),\n doNotHash: z\n .array(z.string())\n .describe(\n \"Array of user data fields that should not be hashed (like ['email'])\",\n )\n .optional(),\n url: z\n .string()\n .url()\n .describe(\n 'Custom URL for LinkedIn Conversions API endpoint (like https://api.linkedin.com/rest/)',\n )\n .optional(),\n user_data: z\n .record(z.string(), z.string())\n .describe(\n \"Mapping configuration for user data fields (like { email: 'user.email', li_fat_id: 'context.li_fat_id' })\",\n )\n .optional(),\n});\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","import { z } from '@walkeros/core/dev';\n\n/**\n * LinkedIn User ID Type Enum\n * Types of user identifiers supported by LinkedIn Conversions API\n */\nexport const UserIdTypeSchema = z.enum([\n 'SHA256_EMAIL',\n 'LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID',\n 'ACXIOM_ID',\n 'ORACLE_MOAT_ID',\n]);\n\n/**\n * API Version Schema\n * LinkedIn-Version header value in YYYYMM format\n */\nexport const ApiVersionSchema = z\n .string()\n .regex(/^\\d{6}$/, 'API version must be in YYYYMM format (e.g. 202604)');\n","import { z } from '@walkeros/core/dev';\n\n/**\n * LinkedIn Conversions API Mapping Schema\n *\n * Per-event override for conversion rule, value, and currency.\n * The `conversion` field is a mapping value that resolves to an object\n * with optional `ruleId`, `value`, and `currency` keys.\n */\nexport const MappingSchema = z.object({\n conversion: z\n .object({\n ruleId: z\n .string()\n .describe('Override conversion rule ID for this event')\n .optional(),\n value: z\n .union([z.string(), z.number()])\n .describe('Conversion monetary value')\n .optional(),\n currency: z\n .string()\n .describe('ISO 4217 currency code (like USD, EUR)')\n .optional(),\n })\n .describe('Per-event conversion override with ruleId, value, and currency')\n .optional(),\n});\n\nexport type Mapping = z.infer<typeof MappingSchema>;\n","export * as env from './env';\nexport * as step from './step';\n","import type { SendDataValue, SendResponse } from '@walkeros/core';\nimport type { SendServerOptions } from '@walkeros/server-core';\nimport type { Env } from '../types';\n\n/**\n * Example environment configurations for LinkedIn Conversions API destination\n *\n * These environments provide standardized mock structures for testing\n * and development without requiring actual HTTP requests.\n */\n\n/**\n * Mock sendServer function that simulates successful HTTP responses\n */\nasync function mockSendServer(\n url: string,\n data?: SendDataValue,\n options?: SendServerOptions,\n): Promise<SendResponse> {\n return {\n ok: true,\n data: {},\n };\n}\n\n/**\n * Standard mock environment for push operations\n *\n * Use this for testing LinkedIn Conversions API events without making\n * actual HTTP requests to LinkedIn's servers.\n */\nexport const push: Env = {\n sendServer: mockSendServer,\n};\n\nexport const simulation = ['sendServer'];\n","import type { Flow } from '@walkeros/core';\nimport { getEvent } from '@walkeros/core';\n\n/**\n * LinkedIn Conversions API step examples.\n *\n * At push time, the destination calls\n * `env.sendServer(endpoint, JSON.stringify(body), options)` where\n * endpoint = `${settings.url}conversionEvents`\n * body = `{ elements: [conversionEvent] }`\n *\n * Test fixture pins `conversionRuleId = '12345678'` and the default url, so\n * every call targets:\n * https://api.linkedin.com/rest/conversionEvents\n *\n * Each conversion event is emitted with keys in the destination's build order:\n * 1. conversion (`urn:lla:llaPartnerConversion:<ruleId>`)\n * 2. conversionHappenedAt (raw `event.timestamp` in ms)\n * 3. user\n * 4. eventId\n * 5. conversionValue (only when mapping provides a value)\n *\n * `options` carries the Authorization + LinkedIn-specific headers.\n */\nconst ENDPOINT = 'https://api.linkedin.com/rest/conversionEvents';\nconst OPTIONS = {\n headers: {\n Authorization: 'Bearer s3cr3t',\n 'Content-Type': 'application/json',\n 'X-Restli-Protocol-Version': '2.0.0',\n 'X-RestLi-Method': 'BATCH_CREATE',\n 'Linkedin-Version': '202604',\n },\n};\n\nexport const purchase: Flow.StepExample = {\n in: getEvent('order complete', {\n timestamp: 1700000900000,\n data: { total: 249.99, currency: 'EUR' },\n user: { email: 'jane@example.com' },\n source: { type: 'server', id: 'https://shop.example.com', previous_id: '' },\n }),\n mapping: {\n settings: {\n conversion: {\n map: {\n value: 'data.total',\n currency: { key: 'data.currency', value: 'EUR' },\n },\n },\n },\n },\n out: [\n [\n 'sendServer',\n ENDPOINT,\n JSON.stringify({\n elements: [\n {\n conversion: 'urn:lla:llaPartnerConversion:12345678',\n conversionHappenedAt: 1700000900000,\n user: {\n userIds: [\n {\n idType: 'SHA256_EMAIL',\n // sha256('jane@example.com')\n idValue:\n '8c87b489ce35cf2e2f39f80e282cb2e804932a56a213983eeeb428407d43b52d',\n },\n ],\n },\n eventId: '1700000900000-gr0up-1',\n conversionValue: {\n currencyCode: 'EUR',\n amount: '249.99',\n },\n },\n ],\n }),\n OPTIONS,\n ],\n ],\n};\n\nexport const lead: Flow.StepExample = {\n in: getEvent('form submit', {\n timestamp: 1700000901000,\n user: { email: 'user@example.com' },\n source: { type: 'server', id: 'https://example.com', previous_id: '' },\n }),\n mapping: undefined,\n out: [\n [\n 'sendServer',\n ENDPOINT,\n JSON.stringify({\n elements: [\n {\n conversion: 'urn:lla:llaPartnerConversion:12345678',\n conversionHappenedAt: 1700000901000,\n user: {\n userIds: [\n {\n idType: 'SHA256_EMAIL',\n // sha256('user@example.com')\n idValue:\n 'b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514',\n },\n ],\n },\n eventId: '1700000901000-gr0up-1',\n },\n ],\n }),\n OPTIONS,\n ],\n ],\n};\n\nexport const purchaseWithLiFatId: Flow.StepExample = {\n in: getEvent('order complete', {\n timestamp: 1700000902000,\n data: { total: 89.99, currency: 'USD' },\n user: { email: 'buyer@co.com' },\n context: { li_fat_id: ['abc123-fat-id', 0] },\n source: { type: 'server', id: 'https://shop.example.com', previous_id: '' },\n }),\n mapping: {\n settings: {\n conversion: {\n map: {\n value: 'data.total',\n currency: { key: 'data.currency', value: 'USD' },\n },\n },\n },\n data: {\n map: {\n user_data: {\n map: {\n li_fat_id: 'context.li_fat_id',\n },\n },\n },\n },\n },\n out: [\n [\n 'sendServer',\n ENDPOINT,\n JSON.stringify({\n elements: [\n {\n conversion: 'urn:lla:llaPartnerConversion:12345678',\n conversionHappenedAt: 1700000902000,\n user: {\n userIds: [\n {\n idType: 'SHA256_EMAIL',\n // sha256('buyer@co.com')\n idValue:\n '484c39bfb51212665d9673805c112b5ba04cbf0460b6d3f00bcdc18b92afed66',\n },\n {\n idType: 'LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID',\n idValue: 'abc123-fat-id',\n },\n ],\n },\n eventId: '1700000902000-gr0up-1',\n conversionValue: {\n currencyCode: 'USD',\n amount: '89.99',\n },\n },\n ],\n }),\n OPTIONS,\n ],\n ],\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAAA,cAA4B;;;ACA5B,IAAAC,cAAkB;;;ACAlB,iBAAkB;AAMX,IAAM,mBAAmB,aAAE,KAAK;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAMM,IAAM,mBAAmB,aAC7B,OAAO,EACP,MAAM,WAAW,oDAAoD;;;ADhBjE,IAAM,iBAAiB,cAAE,OAAO;AAAA,EACrC,aAAa,cACV,OAAO,EACP,IAAI,CAAC,EACL;AAAA,IACC;AAAA,EACF;AAAA,EACF,kBAAkB,cACf,OAAO,EACP,MAAM,YAAY,6CAA6C,EAC/D;AAAA,IACC;AAAA,EACF;AAAA,EACF,YAAY,iBAAiB;AAAA,IAC3B;AAAA,EACF,EAAE,SAAS;AAAA,EACX,WAAW,cACR,MAAM,cAAE,OAAO,CAAC,EAChB;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,KAAK,cACF,OAAO,EACP,IAAI,EACJ;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,WAAW,cACR,OAAO,cAAE,OAAO,GAAG,cAAE,OAAO,CAAC,EAC7B;AAAA,IACC;AAAA,EACF,EACC,SAAS;AACd,CAAC;;;AEtCD,IAAAC,cAAkB;AASX,IAAM,gBAAgB,cAAE,OAAO;AAAA,EACpC,YAAY,cACT,OAAO;AAAA,IACN,QAAQ,cACL,OAAO,EACP,SAAS,4CAA4C,EACrD,SAAS;AAAA,IACZ,OAAO,cACJ,MAAM,CAAC,cAAE,OAAO,GAAG,cAAE,OAAO,CAAC,CAAC,EAC9B,SAAS,2BAA2B,EACpC,SAAS;AAAA,IACZ,UAAU,cACP,OAAO,EACP,SAAS,wCAAwC,EACjD,SAAS;AAAA,EACd,CAAC,EACA,SAAS,gEAAgE,EACzE,SAAS;AACd,CAAC;;;AHjBM,IAAM,eAAW,yBAAY,cAAc;AAC3C,IAAM,cAAU,yBAAY,aAAa;;;AIXhD;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAcA,eAAe,eACb,KACA,MACA,SACuB;AACvB,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,MAAM,CAAC;AAAA,EACT;AACF;AAQO,IAAM,OAAY;AAAA,EACvB,YAAY;AACd;AAEO,IAAM,aAAa,CAAC,YAAY;;;ACnCvC;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,kBAAyB;AAuBzB,IAAM,WAAW;AACjB,IAAM,UAAU;AAAA,EACd,SAAS;AAAA,IACP,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,6BAA6B;AAAA,IAC7B,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,EACtB;AACF;AAEO,IAAM,WAA6B;AAAA,EACxC,QAAI,sBAAS,kBAAkB;AAAA,IAC7B,WAAW;AAAA,IACX,MAAM,EAAE,OAAO,QAAQ,UAAU,MAAM;AAAA,IACvC,MAAM,EAAE,OAAO,mBAAmB;AAAA,IAClC,QAAQ,EAAE,MAAM,UAAU,IAAI,4BAA4B,aAAa,GAAG;AAAA,EAC5E,CAAC;AAAA,EACD,SAAS;AAAA,IACP,UAAU;AAAA,MACR,YAAY;AAAA,QACV,KAAK;AAAA,UACH,OAAO;AAAA,UACP,UAAU,EAAE,KAAK,iBAAiB,OAAO,MAAM;AAAA,QACjD;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,KAAK;AAAA,IACH;AAAA,MACE;AAAA,MACA;AAAA,MACA,KAAK,UAAU;AAAA,QACb,UAAU;AAAA,UACR;AAAA,YACE,YAAY;AAAA,YACZ,sBAAsB;AAAA,YACtB,MAAM;AAAA,cACJ,SAAS;AAAA,gBACP;AAAA,kBACE,QAAQ;AAAA;AAAA,kBAER,SACE;AAAA,gBACJ;AAAA,cACF;AAAA,YACF;AAAA,YACA,SAAS;AAAA,YACT,iBAAiB;AAAA,cACf,cAAc;AAAA,cACd,QAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,OAAyB;AAAA,EACpC,QAAI,sBAAS,eAAe;AAAA,IAC1B,WAAW;AAAA,IACX,MAAM,EAAE,OAAO,mBAAmB;AAAA,IAClC,QAAQ,EAAE,MAAM,UAAU,IAAI,uBAAuB,aAAa,GAAG;AAAA,EACvE,CAAC;AAAA,EACD,SAAS;AAAA,EACT,KAAK;AAAA,IACH;AAAA,MACE;AAAA,MACA;AAAA,MACA,KAAK,UAAU;AAAA,QACb,UAAU;AAAA,UACR;AAAA,YACE,YAAY;AAAA,YACZ,sBAAsB;AAAA,YACtB,MAAM;AAAA,cACJ,SAAS;AAAA,gBACP;AAAA,kBACE,QAAQ;AAAA;AAAA,kBAER,SACE;AAAA,gBACJ;AAAA,cACF;AAAA,YACF;AAAA,YACA,SAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,sBAAwC;AAAA,EACnD,QAAI,sBAAS,kBAAkB;AAAA,IAC7B,WAAW;AAAA,IACX,MAAM,EAAE,OAAO,OAAO,UAAU,MAAM;AAAA,IACtC,MAAM,EAAE,OAAO,eAAe;AAAA,IAC9B,SAAS,EAAE,WAAW,CAAC,iBAAiB,CAAC,EAAE;AAAA,IAC3C,QAAQ,EAAE,MAAM,UAAU,IAAI,4BAA4B,aAAa,GAAG;AAAA,EAC5E,CAAC;AAAA,EACD,SAAS;AAAA,IACP,UAAU;AAAA,MACR,YAAY;AAAA,QACV,KAAK;AAAA,UACH,OAAO;AAAA,UACP,UAAU,EAAE,KAAK,iBAAiB,OAAO,MAAM;AAAA,QACjD;AAAA,MACF;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,KAAK;AAAA,QACH,WAAW;AAAA,UACT,KAAK;AAAA,YACH,WAAW;AAAA,UACb;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,KAAK;AAAA,IACH;AAAA,MACE;AAAA,MACA;AAAA,MACA,KAAK,UAAU;AAAA,QACb,UAAU;AAAA,UACR;AAAA,YACE,YAAY;AAAA,YACZ,sBAAsB;AAAA,YACtB,MAAM;AAAA,cACJ,SAAS;AAAA,gBACP;AAAA,kBACE,QAAQ;AAAA;AAAA,kBAER,SACE;AAAA,gBACJ;AAAA,gBACA;AAAA,kBACE,QAAQ;AAAA,kBACR,SAAS;AAAA,gBACX;AAAA,cACF;AAAA,YACF;AAAA,YACA,SAAS;AAAA,YACT,iBAAiB;AAAA,cACf,cAAc;AAAA,cACd,QAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF;AACF;","names":["import_dev","import_dev","import_dev"]}
package/dist/dev.mjs CHANGED
@@ -1 +1 @@
1
- var e=Object.defineProperty,r=(r,a)=>{for(var n in a)e(r,n,{get:a[n],enumerable:!0})},a={};r(a,{ApiVersionSchema:()=>s,MappingSchema:()=>l,SettingsSchema:()=>c,UserIdTypeSchema:()=>t,mapping:()=>p,settings:()=>u});import{zodToSchema as n}from"@walkeros/core/dev";import{z as i}from"@walkeros/core/dev";import{z as o}from"@walkeros/core/dev";var t=o.enum(["SHA256_EMAIL","LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID","ACXIOM_ID","ORACLE_MOAT_ID"]),s=o.string().regex(/^\d{6}$/,"API version must be in YYYYMM format (e.g. 202604)"),c=i.object({accessToken:i.string().min(1).describe("LinkedIn OAuth 2.0 Bearer token for Conversions API authentication (like AQX...)"),conversionRuleId:i.string().regex(/^[0-9]+$/,"Conversion rule ID must contain only digits").describe("Default LinkedIn conversion rule ID from Campaign Manager (like 12345678)"),apiVersion:s.describe("Linkedin-Version header value in YYYYMM format (like 202604)").optional(),doNotHash:i.array(i.string()).describe("Array of user data fields that should not be hashed (like ['email'])").optional(),url:i.string().url().describe("Custom URL for LinkedIn Conversions API endpoint (like https://api.linkedin.com/rest/)").optional(),user_data:i.record(i.string(),i.string()).describe("Mapping configuration for user data fields (like { email: 'user.email', li_fat_id: 'context.li_fat_id' })").optional()});import{z as d}from"@walkeros/core/dev";var l=d.object({conversion:d.object({ruleId:d.string().describe("Override conversion rule ID for this event").optional(),value:d.union([d.string(),d.number()]).describe("Conversion monetary value").optional(),currency:d.string().describe("ISO 4217 currency code (like USD, EUR)").optional()}).describe("Per-event conversion override with ruleId, value, and currency").optional()}),u=n(c),p=n(l),m={};r(m,{env:()=>v,step:()=>I});var v={};r(v,{push:()=>f,simulation:()=>b});var f={sendServer:async function(e,r,a){return{ok:!0,data:{}}}},b=["sendServer"],I={};r(I,{lead:()=>y,purchase:()=>g,purchaseWithLiFatId:()=>A});import{getEvent as _}from"@walkeros/core";var g={in:_("order complete",{timestamp:17000009e5,data:{total:249.99,currency:"EUR"},user:{email:"jane@example.com"},source:{type:"server",id:"https://shop.example.com",previous_id:""}}),mapping:{settings:{conversion:{map:{value:"data.total",currency:{key:"data.currency",value:"EUR"}}}}},out:{elements:[{conversion:"urn:lla:llaPartnerConversion:12345678",conversionHappenedAt:17000009e5,conversionValue:{currencyCode:"EUR",amount:"249.99"},user:{userIds:[{idType:"SHA256_EMAIL",idValue:"8c87b489ce35cf2e2f39f80e282cb2e804932a56a213983eeeb428407d43b52d"}]},eventId:"1700000900000-gr0up-1"}]}},y={in:_("form submit",{timestamp:1700000901e3,user:{email:"user@example.com"},source:{type:"server",id:"https://example.com",previous_id:""}}),mapping:void 0,out:{elements:[{conversion:"urn:lla:llaPartnerConversion:12345678",conversionHappenedAt:1700000901e3,user:{userIds:[{idType:"SHA256_EMAIL",idValue:"b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514"}]},eventId:"1700000901000-gr0up-1"}]}},A={in:_("order complete",{timestamp:1700000902e3,data:{total:89.99,currency:"USD"},user:{email:"buyer@co.com"},context:{li_fat_id:["abc123-fat-id",0]},source:{type:"server",id:"https://shop.example.com",previous_id:""}}),mapping:{settings:{conversion:{map:{value:"data.total",currency:{key:"data.currency",value:"USD"}}}},data:{map:{user_data:{map:{li_fat_id:"context.li_fat_id"}}}}},out:{elements:[{conversion:"urn:lla:llaPartnerConversion:12345678",conversionHappenedAt:1700000902e3,conversionValue:{currencyCode:"USD",amount:"89.99"},user:{userIds:[{idType:"SHA256_EMAIL",idValue:"484c39bfb51212665d9673805c112b5ba04cbf0460b6d3f00bcdc18b92afed66"},{idType:"LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID",idValue:"abc123-fat-id"}]},eventId:"1700000902000-gr0up-1"}]}};export{m as examples,a as schemas};//# sourceMappingURL=dev.mjs.map
1
+ var e=Object.defineProperty,r=(r,n)=>{for(var i in n)e(r,i,{get:n[i],enumerable:!0})},n={};r(n,{ApiVersionSchema:()=>s,MappingSchema:()=>l,SettingsSchema:()=>c,UserIdTypeSchema:()=>t,mapping:()=>p,settings:()=>u});import{zodToSchema as i}from"@walkeros/core/dev";import{z as o}from"@walkeros/core/dev";import{z as a}from"@walkeros/core/dev";var t=a.enum(["SHA256_EMAIL","LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID","ACXIOM_ID","ORACLE_MOAT_ID"]),s=a.string().regex(/^\d{6}$/,"API version must be in YYYYMM format (e.g. 202604)"),c=o.object({accessToken:o.string().min(1).describe("LinkedIn OAuth 2.0 Bearer token for Conversions API authentication (like AQX...)"),conversionRuleId:o.string().regex(/^[0-9]+$/,"Conversion rule ID must contain only digits").describe("Default LinkedIn conversion rule ID from Campaign Manager (like 12345678)"),apiVersion:s.describe("Linkedin-Version header value in YYYYMM format (like 202604)").optional(),doNotHash:o.array(o.string()).describe("Array of user data fields that should not be hashed (like ['email'])").optional(),url:o.string().url().describe("Custom URL for LinkedIn Conversions API endpoint (like https://api.linkedin.com/rest/)").optional(),user_data:o.record(o.string(),o.string()).describe("Mapping configuration for user data fields (like { email: 'user.email', li_fat_id: 'context.li_fat_id' })").optional()});import{z as d}from"@walkeros/core/dev";var l=d.object({conversion:d.object({ruleId:d.string().describe("Override conversion rule ID for this event").optional(),value:d.union([d.string(),d.number()]).describe("Conversion monetary value").optional(),currency:d.string().describe("ISO 4217 currency code (like USD, EUR)").optional()}).describe("Per-event conversion override with ruleId, value, and currency").optional()}),u=i(c),p=i(l),m={};r(m,{env:()=>v,step:()=>I});var v={};r(v,{push:()=>f,simulation:()=>b});var f={sendServer:async function(e,r,n){return{ok:!0,data:{}}}},b=["sendServer"],I={};r(I,{lead:()=>h,purchase:()=>A,purchaseWithLiFatId:()=>S});import{getEvent as g}from"@walkeros/core";var _="https://api.linkedin.com/rest/conversionEvents",y={headers:{Authorization:"Bearer s3cr3t","Content-Type":"application/json","X-Restli-Protocol-Version":"2.0.0","X-RestLi-Method":"BATCH_CREATE","Linkedin-Version":"202604"}},A={in:g("order complete",{timestamp:17000009e5,data:{total:249.99,currency:"EUR"},user:{email:"jane@example.com"},source:{type:"server",id:"https://shop.example.com",previous_id:""}}),mapping:{settings:{conversion:{map:{value:"data.total",currency:{key:"data.currency",value:"EUR"}}}}},out:[["sendServer",_,JSON.stringify({elements:[{conversion:"urn:lla:llaPartnerConversion:12345678",conversionHappenedAt:17000009e5,user:{userIds:[{idType:"SHA256_EMAIL",idValue:"8c87b489ce35cf2e2f39f80e282cb2e804932a56a213983eeeb428407d43b52d"}]},eventId:"1700000900000-gr0up-1",conversionValue:{currencyCode:"EUR",amount:"249.99"}}]}),y]]},h={in:g("form submit",{timestamp:1700000901e3,user:{email:"user@example.com"},source:{type:"server",id:"https://example.com",previous_id:""}}),mapping:void 0,out:[["sendServer",_,JSON.stringify({elements:[{conversion:"urn:lla:llaPartnerConversion:12345678",conversionHappenedAt:1700000901e3,user:{userIds:[{idType:"SHA256_EMAIL",idValue:"b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514"}]},eventId:"1700000901000-gr0up-1"}]}),y]]},S={in:g("order complete",{timestamp:1700000902e3,data:{total:89.99,currency:"USD"},user:{email:"buyer@co.com"},context:{li_fat_id:["abc123-fat-id",0]},source:{type:"server",id:"https://shop.example.com",previous_id:""}}),mapping:{settings:{conversion:{map:{value:"data.total",currency:{key:"data.currency",value:"USD"}}}},data:{map:{user_data:{map:{li_fat_id:"context.li_fat_id"}}}}},out:[["sendServer",_,JSON.stringify({elements:[{conversion:"urn:lla:llaPartnerConversion:12345678",conversionHappenedAt:1700000902e3,user:{userIds:[{idType:"SHA256_EMAIL",idValue:"484c39bfb51212665d9673805c112b5ba04cbf0460b6d3f00bcdc18b92afed66"},{idType:"LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID",idValue:"abc123-fat-id"}]},eventId:"1700000902000-gr0up-1",conversionValue:{currencyCode:"USD",amount:"89.99"}}]}),y]]};export{m as examples,n 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/schemas/primitives.ts","../src/schemas/mapping.ts","../src/examples/index.ts","../src/examples/env.ts","../src/examples/step.ts"],"sourcesContent":["import { zodToSchema } from '@walkeros/core/dev';\nimport { SettingsSchema } from './settings';\nimport { MappingSchema } from './mapping';\n\nexport * from './primitives';\n\nexport { SettingsSchema, type Settings } from './settings';\nexport { MappingSchema, type Mapping } from './mapping';\n\n// JSON Schema\nexport const settings = zodToSchema(SettingsSchema);\nexport const mapping = zodToSchema(MappingSchema);\n","import { z } from '@walkeros/core/dev';\nimport { ApiVersionSchema } from './primitives';\n\nexport const SettingsSchema = z.object({\n accessToken: z\n .string()\n .min(1)\n .describe(\n 'LinkedIn OAuth 2.0 Bearer token for Conversions API authentication (like AQX...)',\n ),\n conversionRuleId: z\n .string()\n .regex(/^[0-9]+$/, 'Conversion rule ID must contain only digits')\n .describe(\n 'Default LinkedIn conversion rule ID from Campaign Manager (like 12345678)',\n ),\n apiVersion: ApiVersionSchema.describe(\n 'Linkedin-Version header value in YYYYMM format (like 202604)',\n ).optional(),\n doNotHash: z\n .array(z.string())\n .describe(\n \"Array of user data fields that should not be hashed (like ['email'])\",\n )\n .optional(),\n url: z\n .string()\n .url()\n .describe(\n 'Custom URL for LinkedIn Conversions API endpoint (like https://api.linkedin.com/rest/)',\n )\n .optional(),\n user_data: z\n .record(z.string(), z.string())\n .describe(\n \"Mapping configuration for user data fields (like { email: 'user.email', li_fat_id: 'context.li_fat_id' })\",\n )\n .optional(),\n});\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","import { z } from '@walkeros/core/dev';\n\n/**\n * LinkedIn User ID Type Enum\n * Types of user identifiers supported by LinkedIn Conversions API\n */\nexport const UserIdTypeSchema = z.enum([\n 'SHA256_EMAIL',\n 'LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID',\n 'ACXIOM_ID',\n 'ORACLE_MOAT_ID',\n]);\n\n/**\n * API Version Schema\n * LinkedIn-Version header value in YYYYMM format\n */\nexport const ApiVersionSchema = z\n .string()\n .regex(/^\\d{6}$/, 'API version must be in YYYYMM format (e.g. 202604)');\n","import { z } from '@walkeros/core/dev';\n\n/**\n * LinkedIn Conversions API Mapping Schema\n *\n * Per-event override for conversion rule, value, and currency.\n * The `conversion` field is a mapping value that resolves to an object\n * with optional `ruleId`, `value`, and `currency` keys.\n */\nexport const MappingSchema = z.object({\n conversion: z\n .object({\n ruleId: z\n .string()\n .describe('Override conversion rule ID for this event')\n .optional(),\n value: z\n .union([z.string(), z.number()])\n .describe('Conversion monetary value')\n .optional(),\n currency: z\n .string()\n .describe('ISO 4217 currency code (like USD, EUR)')\n .optional(),\n })\n .describe('Per-event conversion override with ruleId, value, and currency')\n .optional(),\n});\n\nexport type Mapping = z.infer<typeof MappingSchema>;\n","export * as env from './env';\nexport * as step from './step';\n","import type { SendDataValue, SendResponse } from '@walkeros/core';\nimport type { SendServerOptions } from '@walkeros/server-core';\nimport type { Env } from '../types';\n\n/**\n * Example environment configurations for LinkedIn Conversions API destination\n *\n * These environments provide standardized mock structures for testing\n * and development without requiring actual HTTP requests.\n */\n\n/**\n * Mock sendServer function that simulates successful HTTP responses\n */\nasync function mockSendServer(\n url: string,\n data?: SendDataValue,\n options?: SendServerOptions,\n): Promise<SendResponse> {\n return {\n ok: true,\n data: {},\n };\n}\n\n/**\n * Standard mock environment for push operations\n *\n * Use this for testing LinkedIn Conversions API events without making\n * actual HTTP requests to LinkedIn's servers.\n */\nexport const push: Env = {\n sendServer: mockSendServer,\n};\n\nexport const simulation = ['sendServer'];\n","import type { Flow } from '@walkeros/core';\nimport { getEvent } from '@walkeros/core';\n\nexport const purchase: Flow.StepExample = {\n in: getEvent('order complete', {\n timestamp: 1700000900000,\n data: { total: 249.99, currency: 'EUR' },\n user: { email: 'jane@example.com' },\n source: { type: 'server', id: 'https://shop.example.com', previous_id: '' },\n }),\n mapping: {\n settings: {\n conversion: {\n map: {\n value: 'data.total',\n currency: { key: 'data.currency', value: 'EUR' },\n },\n },\n },\n },\n out: {\n elements: [\n {\n conversion: 'urn:lla:llaPartnerConversion:12345678',\n conversionHappenedAt: 1700000900000,\n conversionValue: {\n currencyCode: 'EUR',\n amount: '249.99',\n },\n user: {\n userIds: [\n {\n idType: 'SHA256_EMAIL',\n idValue:\n '8c87b489ce35cf2e2f39f80e282cb2e804932a56a213983eeeb428407d43b52d',\n },\n ],\n },\n eventId: '1700000900000-gr0up-1',\n },\n ],\n },\n};\n\nexport const lead: Flow.StepExample = {\n in: getEvent('form submit', {\n timestamp: 1700000901000,\n user: { email: 'user@example.com' },\n source: { type: 'server', id: 'https://example.com', previous_id: '' },\n }),\n mapping: undefined,\n out: {\n elements: [\n {\n conversion: 'urn:lla:llaPartnerConversion:12345678',\n conversionHappenedAt: 1700000901000,\n user: {\n userIds: [\n {\n idType: 'SHA256_EMAIL',\n idValue:\n 'b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514',\n },\n ],\n },\n eventId: '1700000901000-gr0up-1',\n },\n ],\n },\n};\n\nexport const purchaseWithLiFatId: Flow.StepExample = {\n in: getEvent('order complete', {\n timestamp: 1700000902000,\n data: { total: 89.99, currency: 'USD' },\n user: { email: 'buyer@co.com' },\n context: { li_fat_id: ['abc123-fat-id', 0] },\n source: { type: 'server', id: 'https://shop.example.com', previous_id: '' },\n }),\n mapping: {\n settings: {\n conversion: {\n map: {\n value: 'data.total',\n currency: { key: 'data.currency', value: 'USD' },\n },\n },\n },\n data: {\n map: {\n user_data: {\n map: {\n li_fat_id: 'context.li_fat_id',\n },\n },\n },\n },\n },\n out: {\n elements: [\n {\n conversion: 'urn:lla:llaPartnerConversion:12345678',\n conversionHappenedAt: 1700000902000,\n conversionValue: {\n currencyCode: 'USD',\n amount: '89.99',\n },\n user: {\n userIds: [\n {\n idType: 'SHA256_EMAIL',\n idValue:\n '484c39bfb51212665d9673805c112b5ba04cbf0460b6d3f00bcdc18b92afed66',\n },\n {\n idType: 'LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID',\n idValue: 'abc123-fat-id',\n },\n ],\n },\n eventId: '1700000902000-gr0up-1',\n },\n ],\n },\n};\n"],"mappings":"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","names":["z","z","z"]}
1
+ {"version":3,"sources":["../src/schemas/index.ts","../src/schemas/settings.ts","../src/schemas/primitives.ts","../src/schemas/mapping.ts","../src/examples/index.ts","../src/examples/env.ts","../src/examples/step.ts"],"sourcesContent":["import { zodToSchema } from '@walkeros/core/dev';\nimport { SettingsSchema } from './settings';\nimport { MappingSchema } from './mapping';\n\nexport * from './primitives';\n\nexport { SettingsSchema, type Settings } from './settings';\nexport { MappingSchema, type Mapping } from './mapping';\n\n// JSON Schema\nexport const settings = zodToSchema(SettingsSchema);\nexport const mapping = zodToSchema(MappingSchema);\n","import { z } from '@walkeros/core/dev';\nimport { ApiVersionSchema } from './primitives';\n\nexport const SettingsSchema = z.object({\n accessToken: z\n .string()\n .min(1)\n .describe(\n 'LinkedIn OAuth 2.0 Bearer token for Conversions API authentication (like AQX...)',\n ),\n conversionRuleId: z\n .string()\n .regex(/^[0-9]+$/, 'Conversion rule ID must contain only digits')\n .describe(\n 'Default LinkedIn conversion rule ID from Campaign Manager (like 12345678)',\n ),\n apiVersion: ApiVersionSchema.describe(\n 'Linkedin-Version header value in YYYYMM format (like 202604)',\n ).optional(),\n doNotHash: z\n .array(z.string())\n .describe(\n \"Array of user data fields that should not be hashed (like ['email'])\",\n )\n .optional(),\n url: z\n .string()\n .url()\n .describe(\n 'Custom URL for LinkedIn Conversions API endpoint (like https://api.linkedin.com/rest/)',\n )\n .optional(),\n user_data: z\n .record(z.string(), z.string())\n .describe(\n \"Mapping configuration for user data fields (like { email: 'user.email', li_fat_id: 'context.li_fat_id' })\",\n )\n .optional(),\n});\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","import { z } from '@walkeros/core/dev';\n\n/**\n * LinkedIn User ID Type Enum\n * Types of user identifiers supported by LinkedIn Conversions API\n */\nexport const UserIdTypeSchema = z.enum([\n 'SHA256_EMAIL',\n 'LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID',\n 'ACXIOM_ID',\n 'ORACLE_MOAT_ID',\n]);\n\n/**\n * API Version Schema\n * LinkedIn-Version header value in YYYYMM format\n */\nexport const ApiVersionSchema = z\n .string()\n .regex(/^\\d{6}$/, 'API version must be in YYYYMM format (e.g. 202604)');\n","import { z } from '@walkeros/core/dev';\n\n/**\n * LinkedIn Conversions API Mapping Schema\n *\n * Per-event override for conversion rule, value, and currency.\n * The `conversion` field is a mapping value that resolves to an object\n * with optional `ruleId`, `value`, and `currency` keys.\n */\nexport const MappingSchema = z.object({\n conversion: z\n .object({\n ruleId: z\n .string()\n .describe('Override conversion rule ID for this event')\n .optional(),\n value: z\n .union([z.string(), z.number()])\n .describe('Conversion monetary value')\n .optional(),\n currency: z\n .string()\n .describe('ISO 4217 currency code (like USD, EUR)')\n .optional(),\n })\n .describe('Per-event conversion override with ruleId, value, and currency')\n .optional(),\n});\n\nexport type Mapping = z.infer<typeof MappingSchema>;\n","export * as env from './env';\nexport * as step from './step';\n","import type { SendDataValue, SendResponse } from '@walkeros/core';\nimport type { SendServerOptions } from '@walkeros/server-core';\nimport type { Env } from '../types';\n\n/**\n * Example environment configurations for LinkedIn Conversions API destination\n *\n * These environments provide standardized mock structures for testing\n * and development without requiring actual HTTP requests.\n */\n\n/**\n * Mock sendServer function that simulates successful HTTP responses\n */\nasync function mockSendServer(\n url: string,\n data?: SendDataValue,\n options?: SendServerOptions,\n): Promise<SendResponse> {\n return {\n ok: true,\n data: {},\n };\n}\n\n/**\n * Standard mock environment for push operations\n *\n * Use this for testing LinkedIn Conversions API events without making\n * actual HTTP requests to LinkedIn's servers.\n */\nexport const push: Env = {\n sendServer: mockSendServer,\n};\n\nexport const simulation = ['sendServer'];\n","import type { Flow } from '@walkeros/core';\nimport { getEvent } from '@walkeros/core';\n\n/**\n * LinkedIn Conversions API step examples.\n *\n * At push time, the destination calls\n * `env.sendServer(endpoint, JSON.stringify(body), options)` where\n * endpoint = `${settings.url}conversionEvents`\n * body = `{ elements: [conversionEvent] }`\n *\n * Test fixture pins `conversionRuleId = '12345678'` and the default url, so\n * every call targets:\n * https://api.linkedin.com/rest/conversionEvents\n *\n * Each conversion event is emitted with keys in the destination's build order:\n * 1. conversion (`urn:lla:llaPartnerConversion:<ruleId>`)\n * 2. conversionHappenedAt (raw `event.timestamp` in ms)\n * 3. user\n * 4. eventId\n * 5. conversionValue (only when mapping provides a value)\n *\n * `options` carries the Authorization + LinkedIn-specific headers.\n */\nconst ENDPOINT = 'https://api.linkedin.com/rest/conversionEvents';\nconst OPTIONS = {\n headers: {\n Authorization: 'Bearer s3cr3t',\n 'Content-Type': 'application/json',\n 'X-Restli-Protocol-Version': '2.0.0',\n 'X-RestLi-Method': 'BATCH_CREATE',\n 'Linkedin-Version': '202604',\n },\n};\n\nexport const purchase: Flow.StepExample = {\n in: getEvent('order complete', {\n timestamp: 1700000900000,\n data: { total: 249.99, currency: 'EUR' },\n user: { email: 'jane@example.com' },\n source: { type: 'server', id: 'https://shop.example.com', previous_id: '' },\n }),\n mapping: {\n settings: {\n conversion: {\n map: {\n value: 'data.total',\n currency: { key: 'data.currency', value: 'EUR' },\n },\n },\n },\n },\n out: [\n [\n 'sendServer',\n ENDPOINT,\n JSON.stringify({\n elements: [\n {\n conversion: 'urn:lla:llaPartnerConversion:12345678',\n conversionHappenedAt: 1700000900000,\n user: {\n userIds: [\n {\n idType: 'SHA256_EMAIL',\n // sha256('jane@example.com')\n idValue:\n '8c87b489ce35cf2e2f39f80e282cb2e804932a56a213983eeeb428407d43b52d',\n },\n ],\n },\n eventId: '1700000900000-gr0up-1',\n conversionValue: {\n currencyCode: 'EUR',\n amount: '249.99',\n },\n },\n ],\n }),\n OPTIONS,\n ],\n ],\n};\n\nexport const lead: Flow.StepExample = {\n in: getEvent('form submit', {\n timestamp: 1700000901000,\n user: { email: 'user@example.com' },\n source: { type: 'server', id: 'https://example.com', previous_id: '' },\n }),\n mapping: undefined,\n out: [\n [\n 'sendServer',\n ENDPOINT,\n JSON.stringify({\n elements: [\n {\n conversion: 'urn:lla:llaPartnerConversion:12345678',\n conversionHappenedAt: 1700000901000,\n user: {\n userIds: [\n {\n idType: 'SHA256_EMAIL',\n // sha256('user@example.com')\n idValue:\n 'b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514',\n },\n ],\n },\n eventId: '1700000901000-gr0up-1',\n },\n ],\n }),\n OPTIONS,\n ],\n ],\n};\n\nexport const purchaseWithLiFatId: Flow.StepExample = {\n in: getEvent('order complete', {\n timestamp: 1700000902000,\n data: { total: 89.99, currency: 'USD' },\n user: { email: 'buyer@co.com' },\n context: { li_fat_id: ['abc123-fat-id', 0] },\n source: { type: 'server', id: 'https://shop.example.com', previous_id: '' },\n }),\n mapping: {\n settings: {\n conversion: {\n map: {\n value: 'data.total',\n currency: { key: 'data.currency', value: 'USD' },\n },\n },\n },\n data: {\n map: {\n user_data: {\n map: {\n li_fat_id: 'context.li_fat_id',\n },\n },\n },\n },\n },\n out: [\n [\n 'sendServer',\n ENDPOINT,\n JSON.stringify({\n elements: [\n {\n conversion: 'urn:lla:llaPartnerConversion:12345678',\n conversionHappenedAt: 1700000902000,\n user: {\n userIds: [\n {\n idType: 'SHA256_EMAIL',\n // sha256('buyer@co.com')\n idValue:\n '484c39bfb51212665d9673805c112b5ba04cbf0460b6d3f00bcdc18b92afed66',\n },\n {\n idType: 'LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID',\n idValue: 'abc123-fat-id',\n },\n ],\n },\n eventId: '1700000902000-gr0up-1',\n conversionValue: {\n currencyCode: 'USD',\n amount: '89.99',\n },\n },\n ],\n }),\n OPTIONS,\n ],\n ],\n};\n"],"mappings":"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","names":["z","z","z"]}
@@ -50,6 +50,16 @@ __export(step_exports, {
50
50
  purchaseWithLiFatId: () => purchaseWithLiFatId
51
51
  });
52
52
  var import_core = require("@walkeros/core");
53
+ var ENDPOINT = "https://api.linkedin.com/rest/conversionEvents";
54
+ var OPTIONS = {
55
+ headers: {
56
+ Authorization: "Bearer s3cr3t",
57
+ "Content-Type": "application/json",
58
+ "X-Restli-Protocol-Version": "2.0.0",
59
+ "X-RestLi-Method": "BATCH_CREATE",
60
+ "Linkedin-Version": "202604"
61
+ }
62
+ };
53
63
  var purchase = {
54
64
  in: (0, import_core.getEvent)("order complete", {
55
65
  timestamp: 17000009e5,
@@ -67,27 +77,35 @@ var purchase = {
67
77
  }
68
78
  }
69
79
  },
70
- out: {
71
- elements: [
72
- {
73
- conversion: "urn:lla:llaPartnerConversion:12345678",
74
- conversionHappenedAt: 17000009e5,
75
- conversionValue: {
76
- currencyCode: "EUR",
77
- amount: "249.99"
78
- },
79
- user: {
80
- userIds: [
81
- {
82
- idType: "SHA256_EMAIL",
83
- idValue: "8c87b489ce35cf2e2f39f80e282cb2e804932a56a213983eeeb428407d43b52d"
80
+ out: [
81
+ [
82
+ "sendServer",
83
+ ENDPOINT,
84
+ JSON.stringify({
85
+ elements: [
86
+ {
87
+ conversion: "urn:lla:llaPartnerConversion:12345678",
88
+ conversionHappenedAt: 17000009e5,
89
+ user: {
90
+ userIds: [
91
+ {
92
+ idType: "SHA256_EMAIL",
93
+ // sha256('jane@example.com')
94
+ idValue: "8c87b489ce35cf2e2f39f80e282cb2e804932a56a213983eeeb428407d43b52d"
95
+ }
96
+ ]
97
+ },
98
+ eventId: "1700000900000-gr0up-1",
99
+ conversionValue: {
100
+ currencyCode: "EUR",
101
+ amount: "249.99"
84
102
  }
85
- ]
86
- },
87
- eventId: "1700000900000-gr0up-1"
88
- }
103
+ }
104
+ ]
105
+ }),
106
+ OPTIONS
89
107
  ]
90
- }
108
+ ]
91
109
  };
92
110
  var lead = {
93
111
  in: (0, import_core.getEvent)("form submit", {
@@ -96,23 +114,31 @@ var lead = {
96
114
  source: { type: "server", id: "https://example.com", previous_id: "" }
97
115
  }),
98
116
  mapping: void 0,
99
- out: {
100
- elements: [
101
- {
102
- conversion: "urn:lla:llaPartnerConversion:12345678",
103
- conversionHappenedAt: 1700000901e3,
104
- user: {
105
- userIds: [
106
- {
107
- idType: "SHA256_EMAIL",
108
- idValue: "b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514"
109
- }
110
- ]
111
- },
112
- eventId: "1700000901000-gr0up-1"
113
- }
117
+ out: [
118
+ [
119
+ "sendServer",
120
+ ENDPOINT,
121
+ JSON.stringify({
122
+ elements: [
123
+ {
124
+ conversion: "urn:lla:llaPartnerConversion:12345678",
125
+ conversionHappenedAt: 1700000901e3,
126
+ user: {
127
+ userIds: [
128
+ {
129
+ idType: "SHA256_EMAIL",
130
+ // sha256('user@example.com')
131
+ idValue: "b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514"
132
+ }
133
+ ]
134
+ },
135
+ eventId: "1700000901000-gr0up-1"
136
+ }
137
+ ]
138
+ }),
139
+ OPTIONS
114
140
  ]
115
- }
141
+ ]
116
142
  };
117
143
  var purchaseWithLiFatId = {
118
144
  in: (0, import_core.getEvent)("order complete", {
@@ -141,31 +167,39 @@ var purchaseWithLiFatId = {
141
167
  }
142
168
  }
143
169
  },
144
- out: {
145
- elements: [
146
- {
147
- conversion: "urn:lla:llaPartnerConversion:12345678",
148
- conversionHappenedAt: 1700000902e3,
149
- conversionValue: {
150
- currencyCode: "USD",
151
- amount: "89.99"
152
- },
153
- user: {
154
- userIds: [
155
- {
156
- idType: "SHA256_EMAIL",
157
- idValue: "484c39bfb51212665d9673805c112b5ba04cbf0460b6d3f00bcdc18b92afed66"
170
+ out: [
171
+ [
172
+ "sendServer",
173
+ ENDPOINT,
174
+ JSON.stringify({
175
+ elements: [
176
+ {
177
+ conversion: "urn:lla:llaPartnerConversion:12345678",
178
+ conversionHappenedAt: 1700000902e3,
179
+ user: {
180
+ userIds: [
181
+ {
182
+ idType: "SHA256_EMAIL",
183
+ // sha256('buyer@co.com')
184
+ idValue: "484c39bfb51212665d9673805c112b5ba04cbf0460b6d3f00bcdc18b92afed66"
185
+ },
186
+ {
187
+ idType: "LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID",
188
+ idValue: "abc123-fat-id"
189
+ }
190
+ ]
158
191
  },
159
- {
160
- idType: "LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID",
161
- idValue: "abc123-fat-id"
192
+ eventId: "1700000902000-gr0up-1",
193
+ conversionValue: {
194
+ currencyCode: "USD",
195
+ amount: "89.99"
162
196
  }
163
- ]
164
- },
165
- eventId: "1700000902000-gr0up-1"
166
- }
197
+ }
198
+ ]
199
+ }),
200
+ OPTIONS
167
201
  ]
168
- }
202
+ ]
169
203
  };
170
204
  // Annotate the CommonJS export names for ESM import in node:
171
205
  0 && (module.exports = {
@@ -29,6 +29,16 @@ __export(step_exports, {
29
29
  purchaseWithLiFatId: () => purchaseWithLiFatId
30
30
  });
31
31
  import { getEvent } from "@walkeros/core";
32
+ var ENDPOINT = "https://api.linkedin.com/rest/conversionEvents";
33
+ var OPTIONS = {
34
+ headers: {
35
+ Authorization: "Bearer s3cr3t",
36
+ "Content-Type": "application/json",
37
+ "X-Restli-Protocol-Version": "2.0.0",
38
+ "X-RestLi-Method": "BATCH_CREATE",
39
+ "Linkedin-Version": "202604"
40
+ }
41
+ };
32
42
  var purchase = {
33
43
  in: getEvent("order complete", {
34
44
  timestamp: 17000009e5,
@@ -46,27 +56,35 @@ var purchase = {
46
56
  }
47
57
  }
48
58
  },
49
- out: {
50
- elements: [
51
- {
52
- conversion: "urn:lla:llaPartnerConversion:12345678",
53
- conversionHappenedAt: 17000009e5,
54
- conversionValue: {
55
- currencyCode: "EUR",
56
- amount: "249.99"
57
- },
58
- user: {
59
- userIds: [
60
- {
61
- idType: "SHA256_EMAIL",
62
- idValue: "8c87b489ce35cf2e2f39f80e282cb2e804932a56a213983eeeb428407d43b52d"
59
+ out: [
60
+ [
61
+ "sendServer",
62
+ ENDPOINT,
63
+ JSON.stringify({
64
+ elements: [
65
+ {
66
+ conversion: "urn:lla:llaPartnerConversion:12345678",
67
+ conversionHappenedAt: 17000009e5,
68
+ user: {
69
+ userIds: [
70
+ {
71
+ idType: "SHA256_EMAIL",
72
+ // sha256('jane@example.com')
73
+ idValue: "8c87b489ce35cf2e2f39f80e282cb2e804932a56a213983eeeb428407d43b52d"
74
+ }
75
+ ]
76
+ },
77
+ eventId: "1700000900000-gr0up-1",
78
+ conversionValue: {
79
+ currencyCode: "EUR",
80
+ amount: "249.99"
63
81
  }
64
- ]
65
- },
66
- eventId: "1700000900000-gr0up-1"
67
- }
82
+ }
83
+ ]
84
+ }),
85
+ OPTIONS
68
86
  ]
69
- }
87
+ ]
70
88
  };
71
89
  var lead = {
72
90
  in: getEvent("form submit", {
@@ -75,23 +93,31 @@ var lead = {
75
93
  source: { type: "server", id: "https://example.com", previous_id: "" }
76
94
  }),
77
95
  mapping: void 0,
78
- out: {
79
- elements: [
80
- {
81
- conversion: "urn:lla:llaPartnerConversion:12345678",
82
- conversionHappenedAt: 1700000901e3,
83
- user: {
84
- userIds: [
85
- {
86
- idType: "SHA256_EMAIL",
87
- idValue: "b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514"
88
- }
89
- ]
90
- },
91
- eventId: "1700000901000-gr0up-1"
92
- }
96
+ out: [
97
+ [
98
+ "sendServer",
99
+ ENDPOINT,
100
+ JSON.stringify({
101
+ elements: [
102
+ {
103
+ conversion: "urn:lla:llaPartnerConversion:12345678",
104
+ conversionHappenedAt: 1700000901e3,
105
+ user: {
106
+ userIds: [
107
+ {
108
+ idType: "SHA256_EMAIL",
109
+ // sha256('user@example.com')
110
+ idValue: "b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514"
111
+ }
112
+ ]
113
+ },
114
+ eventId: "1700000901000-gr0up-1"
115
+ }
116
+ ]
117
+ }),
118
+ OPTIONS
93
119
  ]
94
- }
120
+ ]
95
121
  };
96
122
  var purchaseWithLiFatId = {
97
123
  in: getEvent("order complete", {
@@ -120,31 +146,39 @@ var purchaseWithLiFatId = {
120
146
  }
121
147
  }
122
148
  },
123
- out: {
124
- elements: [
125
- {
126
- conversion: "urn:lla:llaPartnerConversion:12345678",
127
- conversionHappenedAt: 1700000902e3,
128
- conversionValue: {
129
- currencyCode: "USD",
130
- amount: "89.99"
131
- },
132
- user: {
133
- userIds: [
134
- {
135
- idType: "SHA256_EMAIL",
136
- idValue: "484c39bfb51212665d9673805c112b5ba04cbf0460b6d3f00bcdc18b92afed66"
149
+ out: [
150
+ [
151
+ "sendServer",
152
+ ENDPOINT,
153
+ JSON.stringify({
154
+ elements: [
155
+ {
156
+ conversion: "urn:lla:llaPartnerConversion:12345678",
157
+ conversionHappenedAt: 1700000902e3,
158
+ user: {
159
+ userIds: [
160
+ {
161
+ idType: "SHA256_EMAIL",
162
+ // sha256('buyer@co.com')
163
+ idValue: "484c39bfb51212665d9673805c112b5ba04cbf0460b6d3f00bcdc18b92afed66"
164
+ },
165
+ {
166
+ idType: "LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID",
167
+ idValue: "abc123-fat-id"
168
+ }
169
+ ]
137
170
  },
138
- {
139
- idType: "LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID",
140
- idValue: "abc123-fat-id"
171
+ eventId: "1700000902000-gr0up-1",
172
+ conversionValue: {
173
+ currencyCode: "USD",
174
+ amount: "89.99"
141
175
  }
142
- ]
143
- },
144
- eventId: "1700000902000-gr0up-1"
145
- }
176
+ }
177
+ ]
178
+ }),
179
+ OPTIONS
146
180
  ]
147
- }
181
+ ]
148
182
  };
149
183
  export {
150
184
  env_exports as env,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$meta": {
3
3
  "package": "@walkeros/server-destination-linkedin",
4
- "version": "3.3.1",
4
+ "version": "3.4.0-next-1776749829492",
5
5
  "type": "destination",
6
6
  "platform": [
7
7
  "server"
@@ -96,7 +96,7 @@
96
96
  "env": {
97
97
  "push": {
98
98
  "sendServer": {
99
- "$code": "async function(e,r,a){return{ok:!0,data:{}}}"
99
+ "$code": "async function(e,r,n){return{ok:!0,data:{}}}"
100
100
  }
101
101
  },
102
102
  "simulation": [
@@ -159,7 +159,7 @@
159
159
  "group": "gr0up",
160
160
  "count": 1,
161
161
  "version": {
162
- "source": "3.3.1",
162
+ "source": "3.4.0-next-1776749829492",
163
163
  "tagging": 1
164
164
  },
165
165
  "source": {
@@ -168,23 +168,22 @@
168
168
  "previous_id": ""
169
169
  }
170
170
  },
171
- "out": {
172
- "elements": [
171
+ "out": [
172
+ [
173
+ "sendServer",
174
+ "https://api.linkedin.com/rest/conversionEvents",
175
+ "{\"elements\":[{\"conversion\":\"urn:lla:llaPartnerConversion:12345678\",\"conversionHappenedAt\":1700000901000,\"user\":{\"userIds\":[{\"idType\":\"SHA256_EMAIL\",\"idValue\":\"b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514\"}]},\"eventId\":\"1700000901000-gr0up-1\"}]}",
173
176
  {
174
- "conversion": "urn:lla:llaPartnerConversion:12345678",
175
- "conversionHappenedAt": 1700000901000,
176
- "user": {
177
- "userIds": [
178
- {
179
- "idType": "SHA256_EMAIL",
180
- "idValue": "b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514"
181
- }
182
- ]
183
- },
184
- "eventId": "1700000901000-gr0up-1"
177
+ "headers": {
178
+ "Authorization": "Bearer s3cr3t",
179
+ "Content-Type": "application/json",
180
+ "X-Restli-Protocol-Version": "2.0.0",
181
+ "X-RestLi-Method": "BATCH_CREATE",
182
+ "Linkedin-Version": "202604"
183
+ }
185
184
  }
186
185
  ]
187
- }
186
+ ]
188
187
  },
189
188
  "purchase": {
190
189
  "in": {
@@ -268,7 +267,7 @@
268
267
  "group": "gr0up",
269
268
  "count": 1,
270
269
  "version": {
271
- "source": "3.3.1",
270
+ "source": "3.4.0-next-1776749829492",
272
271
  "tagging": 1
273
272
  },
274
273
  "source": {
@@ -290,27 +289,22 @@
290
289
  }
291
290
  }
292
291
  },
293
- "out": {
294
- "elements": [
292
+ "out": [
293
+ [
294
+ "sendServer",
295
+ "https://api.linkedin.com/rest/conversionEvents",
296
+ "{\"elements\":[{\"conversion\":\"urn:lla:llaPartnerConversion:12345678\",\"conversionHappenedAt\":1700000900000,\"user\":{\"userIds\":[{\"idType\":\"SHA256_EMAIL\",\"idValue\":\"8c87b489ce35cf2e2f39f80e282cb2e804932a56a213983eeeb428407d43b52d\"}]},\"eventId\":\"1700000900000-gr0up-1\",\"conversionValue\":{\"currencyCode\":\"EUR\",\"amount\":\"249.99\"}}]}",
295
297
  {
296
- "conversion": "urn:lla:llaPartnerConversion:12345678",
297
- "conversionHappenedAt": 1700000900000,
298
- "conversionValue": {
299
- "currencyCode": "EUR",
300
- "amount": "249.99"
301
- },
302
- "user": {
303
- "userIds": [
304
- {
305
- "idType": "SHA256_EMAIL",
306
- "idValue": "8c87b489ce35cf2e2f39f80e282cb2e804932a56a213983eeeb428407d43b52d"
307
- }
308
- ]
309
- },
310
- "eventId": "1700000900000-gr0up-1"
298
+ "headers": {
299
+ "Authorization": "Bearer s3cr3t",
300
+ "Content-Type": "application/json",
301
+ "X-Restli-Protocol-Version": "2.0.0",
302
+ "X-RestLi-Method": "BATCH_CREATE",
303
+ "Linkedin-Version": "202604"
304
+ }
311
305
  }
312
306
  ]
313
- }
307
+ ]
314
308
  },
315
309
  "purchaseWithLiFatId": {
316
310
  "in": {
@@ -394,7 +388,7 @@
394
388
  "group": "gr0up",
395
389
  "count": 1,
396
390
  "version": {
397
- "source": "3.3.1",
391
+ "source": "3.4.0-next-1776749829492",
398
392
  "tagging": 1
399
393
  },
400
394
  "source": {
@@ -425,31 +419,22 @@
425
419
  }
426
420
  }
427
421
  },
428
- "out": {
429
- "elements": [
422
+ "out": [
423
+ [
424
+ "sendServer",
425
+ "https://api.linkedin.com/rest/conversionEvents",
426
+ "{\"elements\":[{\"conversion\":\"urn:lla:llaPartnerConversion:12345678\",\"conversionHappenedAt\":1700000902000,\"user\":{\"userIds\":[{\"idType\":\"SHA256_EMAIL\",\"idValue\":\"484c39bfb51212665d9673805c112b5ba04cbf0460b6d3f00bcdc18b92afed66\"},{\"idType\":\"LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID\",\"idValue\":\"abc123-fat-id\"}]},\"eventId\":\"1700000902000-gr0up-1\",\"conversionValue\":{\"currencyCode\":\"USD\",\"amount\":\"89.99\"}}]}",
430
427
  {
431
- "conversion": "urn:lla:llaPartnerConversion:12345678",
432
- "conversionHappenedAt": 1700000902000,
433
- "conversionValue": {
434
- "currencyCode": "USD",
435
- "amount": "89.99"
436
- },
437
- "user": {
438
- "userIds": [
439
- {
440
- "idType": "SHA256_EMAIL",
441
- "idValue": "484c39bfb51212665d9673805c112b5ba04cbf0460b6d3f00bcdc18b92afed66"
442
- },
443
- {
444
- "idType": "LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID",
445
- "idValue": "abc123-fat-id"
446
- }
447
- ]
448
- },
449
- "eventId": "1700000902000-gr0up-1"
428
+ "headers": {
429
+ "Authorization": "Bearer s3cr3t",
430
+ "Content-Type": "application/json",
431
+ "X-Restli-Protocol-Version": "2.0.0",
432
+ "X-RestLi-Method": "BATCH_CREATE",
433
+ "Linkedin-Version": "202604"
434
+ }
450
435
  }
451
436
  ]
452
- }
437
+ ]
453
438
  }
454
439
  }
455
440
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@walkeros/server-destination-linkedin",
3
3
  "description": "LinkedIn Conversions API server destination for walkerOS",
4
- "version": "3.3.1",
4
+ "version": "3.4.0-next-1776749829492",
5
5
  "license": "MIT",
6
6
  "exports": {
7
7
  ".": {
@@ -34,11 +34,11 @@
34
34
  "update": "npx npm-check-updates -u && npm update"
35
35
  },
36
36
  "dependencies": {
37
- "@walkeros/core": "3.3.1",
38
- "@walkeros/server-core": "3.3.1"
37
+ "@walkeros/core": "3.4.0-next-1776749829492",
38
+ "@walkeros/server-core": "3.4.0-next-1776749829492"
39
39
  },
40
40
  "devDependencies": {
41
- "@walkeros/collector": "3.3.1"
41
+ "@walkeros/collector": "3.4.0-next-1776749829492"
42
42
  },
43
43
  "repository": {
44
44
  "url": "git+https://github.com/elbwalker/walkerOS.git",