@walkeros/server-destination-tiktok 3.3.0 → 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 +1 -1
- package/dist/dev.js.map +1 -1
- package/dist/dev.mjs +1 -1
- package/dist/dev.mjs.map +1 -1
- package/dist/examples/index.js +127 -91
- package/dist/examples/index.mjs +127 -91
- package/dist/walkerOS.json +45 -92
- package/package.json +4 -4
package/dist/dev.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e,t=Object.defineProperty,a=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,n=Object.prototype.hasOwnProperty,o=(e,a)=>{for(var r in a)t(e,r,{get:a[r],enumerable:!0})},i={};o(i,{examples:()=>
|
|
1
|
+
"use strict";var e,t=Object.defineProperty,a=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,n=Object.prototype.hasOwnProperty,o=(e,a)=>{for(var r in a)t(e,r,{get:a[r],enumerable:!0})},i={};o(i,{examples:()=>y,schemas:()=>c}),module.exports=(e=i,((e,o,i,c)=>{if(o&&"object"==typeof o||"function"==typeof o)for(let s of r(o))n.call(e,s)||s===i||t(e,s,{get:()=>o[s],enumerable:!(c=a(o,s))||c.enumerable});return e})(t({},"__esModule",{value:!0}),e));var c={};o(c,{MappingSchema:()=>m,SettingsSchema:()=>d,StandardEventNameSchema:()=>l,mapping:()=>g,settings:()=>v});var s=require("@walkeros/core/dev"),p=require("@walkeros/core/dev"),d=p.z.object({pixelCode:p.z.string().min(1).describe("TikTok Pixel Code from Events Manager (like C0ABCDEF12345)"),accessToken:p.z.string().min(1).describe("Events API access token from TikTok Events Manager"),url:p.z.string().url().describe("Custom Events API endpoint URL").optional(),test_event_code:p.z.string().describe("Test event code for debugging in TikTok Events Manager (like TEST12345)").optional(),doNotHash:p.z.array(p.z.string()).describe("User data fields to skip hashing (like ['email', 'phone_number'])").optional(),user_data:p.z.record(p.z.string(),p.z.string()).describe("Mapping for user data fields (like { email: 'user.email' })").optional(),partner_name:p.z.string().describe("Partner name for TikTok attribution").optional()}),m=require("@walkeros/core/dev").z.object({}),u=require("@walkeros/core/dev"),l=u.z.union([u.z.enum(["ViewContent","ClickButton","Search","AddToWishlist","AddToCart","InitiateCheckout","AddPaymentInfo","CompletePayment","PlaceAnOrder","Contact","Download","SubmitForm","CompleteRegistration","Subscribe"]),u.z.string()]),v=(0,s.zodToSchema)(d),g=(0,s.zodToSchema)(m),y={};o(y,{env:()=>_,step:()=>k});var _={};o(_,{push:()=>b,simulation:()=>h});var b={sendServer:async function(e,t,a){return{ok:!0,data:{code:0,message:"OK"}}}},h=["sendServer"],k={};o(k,{addToCart:()=>T,lead:()=>C,pageView:()=>x,purchase:()=>O});var S=require("@walkeros/core"),f="https://business-api.tiktok.com/open_api/v1.3/event/track/",E={headers:{"Access-Token":"s3cr3t","Content-Type":"application/json"}},O={in:(0,S.getEvent)("order complete",{timestamp:17000009e5,data:{id:"ORD-300",total:249.99,currency:"EUR"},nested:[{entity:"product",data:{id:"SKU-A1",name:"Widget Pro",price:124.99,quantity:2}}],user:{id:"user-123",device:"device-456"},source:{type:"server",id:"https://shop.example.com/checkout/complete",previous_id:""}}),mapping:{name:"CompletePayment",data:{map:{value:"data.total",currency:{key:"data.currency",value:"EUR"},order_id:"data.id",content_type:{value:"product"},contents:{loop:["nested",{condition:e=>(0,S.isObject)(e)&&"product"===e.entity,map:{content_id:"data.id",content_name:"data.name",quantity:{key:"data.quantity",value:1},price:"data.price"}}]},user_data:{map:{external_id:"user.id"}}}}},out:[["sendServer",f,JSON.stringify({pixel_code:"PIXEL_CODE",partner_name:"walkerOS",data:[{event:"CompletePayment",event_id:"1700000900000-gr0up-1",timestamp:"2023-11-14T22:28:20.000Z",context:{user:{external_id:"fcdec6df4d44dbc637c7c5b58efface52a7f8a88535423430255be0bb89bedd8"},page:{url:"https://shop.example.com/checkout/complete"}},properties:{value:249.99,currency:"EUR",order_id:"ORD-300",content_type:"product",contents:[{content_id:"SKU-A1",content_name:"Widget Pro",quantity:2,price:124.99}]}}]}),E]]},T={in:(0,S.getEvent)("product add",{timestamp:1700000901e3,data:{id:"SKU-B2",name:"Running Shoes",price:89.99,color:"blue"},nested:[{entity:"product",data:{id:"SKU-B2",name:"Running Shoes",price:89.99,quantity:1}}],source:{type:"server",id:"https://shop.example.com/products/running-shoes",previous_id:""}}),mapping:{name:"AddToCart",data:{map:{content_type:{value:"product"},value:"data.price",currency:{value:"EUR"},contents:{loop:["nested",{condition:e=>(0,S.isObject)(e)&&"product"===e.entity,map:{content_id:"data.id",content_name:"data.name",quantity:{key:"data.quantity",value:1},price:"data.price"}}]}}}},out:[["sendServer",f,JSON.stringify({pixel_code:"PIXEL_CODE",partner_name:"walkerOS",data:[{event:"AddToCart",event_id:"1700000901000-gr0up-1",timestamp:"2023-11-14T22:28:21.000Z",context:{page:{url:"https://shop.example.com/products/running-shoes"}},properties:{content_type:"product",value:89.99,currency:"EUR",contents:[{content_id:"SKU-B2",content_name:"Running Shoes",quantity:1,price:89.99}]}}]}),E]]},x={in:(0,S.getEvent)("page view",{timestamp:1700000902e3,source:{type:"server",id:"https://example.com/docs/",previous_id:""}}),mapping:void 0,out:[["sendServer",f,JSON.stringify({pixel_code:"PIXEL_CODE",partner_name:"walkerOS",data:[{event:"page view",event_id:"1700000902000-gr0up-1",timestamp:"2023-11-14T22:28:22.000Z",context:{page:{url:"https://example.com/docs/"}},properties:{}}]}),E]]},C={in:(0,S.getEvent)("form submit",{timestamp:1700000903e3,data:{type:"newsletter"},user:{email:"user@example.com"},source:{type:"server",id:"https://example.com/contact",previous_id:""}}),mapping:{name:"SubmitForm",data:{map:{user_data:{map:{email:"user.email"}}}}},out:[["sendServer",f,JSON.stringify({pixel_code:"PIXEL_CODE",partner_name:"walkerOS",data:[{event:"SubmitForm",event_id:"1700000903000-gr0up-1",timestamp:"2023-11-14T22:28:23.000Z",context:{user:{email:"b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514"},page:{url:"https://example.com/contact"}},properties:{}}]}),E]]};//# 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/mapping.ts","../src/schemas/primitives.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';\n\nexport const SettingsSchema = z.object({\n pixelCode: z\n .string()\n .min(1)\n .describe('TikTok Pixel Code from Events Manager (like C0ABCDEF12345)'),\n accessToken: z\n .string()\n .min(1)\n .describe('Events API access token from TikTok Events Manager'),\n url: z.string().url().describe('Custom Events API endpoint URL').optional(),\n test_event_code: z\n .string()\n .describe(\n 'Test event code for debugging in TikTok Events Manager (like TEST12345)',\n )\n .optional(),\n doNotHash: z\n .array(z.string())\n .describe(\n \"User data fields to skip hashing (like ['email', 'phone_number'])\",\n )\n .optional(),\n user_data: z\n .record(z.string(), z.string())\n .describe(\"Mapping for user data fields (like { email: 'user.email' })\")\n .optional(),\n partner_name: z\n .string()\n .describe('Partner name for TikTok attribution')\n .optional(),\n});\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","import { z } from '@walkeros/core/dev';\n\n/**\n * TikTok Events API Mapping Schema\n * TikTok Events API has no event-level mapping configuration\n */\nexport const MappingSchema = z.object({});\n\n/**\n * Type inference from MappingSchema\n */\nexport type Mapping = z.infer<typeof MappingSchema>;\n","import { z } from '@walkeros/core/dev';\n\n/**\n * Standard TikTok Event Names\n * https://business-api.tiktok.com/portal/docs?id=1771100865818625\n */\nexport const StandardEventNameSchema = z.union([\n z.enum([\n 'ViewContent',\n 'ClickButton',\n 'Search',\n 'AddToWishlist',\n 'AddToCart',\n 'InitiateCheckout',\n 'AddPaymentInfo',\n 'CompletePayment',\n 'PlaceAnOrder',\n 'Contact',\n 'Download',\n 'SubmitForm',\n 'CompleteRegistration',\n 'Subscribe',\n ]),\n z.string(), // Allow custom event names\n]);\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 TikTok Events 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 // Simulate successful TikTok API response\n return {\n ok: true,\n data: {\n code: 0,\n message: 'OK',\n },\n };\n}\n\n/**\n * Standard mock environment for push operations\n *\n * Use this for testing TikTok Events API events without making\n * actual HTTP requests to TikTok'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, isObject } from '@walkeros/core';\n\nexport const purchase: Flow.StepExample = {\n in: getEvent('order complete', {\n timestamp: 1700000900000,\n data: { id: 'ORD-300', total: 249.99, currency: 'EUR' },\n nested: [\n {\n entity: 'product',\n data: { id: 'SKU-A1', name: 'Widget Pro', price: 124.99, quantity: 2 },\n },\n ],\n user: { id: 'user-123', device: 'device-456' },\n source: {\n type: 'server',\n id: 'https://shop.example.com/checkout/complete',\n previous_id: '',\n },\n }),\n mapping: {\n name: 'CompletePayment',\n data: {\n map: {\n value: 'data.total',\n currency: { key: 'data.currency', value: 'EUR' },\n order_id: 'data.id',\n content_type: { value: 'product' },\n contents: {\n loop: [\n 'nested',\n {\n condition: (entity: unknown) =>\n isObject(entity) && entity.entity === 'product',\n map: {\n content_id: 'data.id',\n content_name: 'data.name',\n quantity: { key: 'data.quantity', value: 1 },\n price: 'data.price',\n },\n },\n ],\n },\n user_data: {\n map: {\n external_id: 'user.id',\n },\n },\n },\n },\n },\n out: {\n pixel_code: 'PIXEL_CODE',\n partner_name: 'walkerOS',\n data: [\n {\n event: 'CompletePayment',\n event_id: '1700000900000-gr0up-1',\n timestamp: '2023-11-14T22:28:20.000Z',\n context: {\n user: {\n external_id: 'user-123',\n },\n page: {\n url: 'https://shop.example.com/checkout/complete',\n },\n },\n properties: {\n value: 249.99,\n currency: 'EUR',\n order_id: 'ORD-300',\n content_type: 'product',\n contents: [\n {\n content_id: 'SKU-A1',\n content_name: 'Widget Pro',\n quantity: 2,\n price: 124.99,\n },\n ],\n },\n },\n ],\n },\n};\n\nexport const addToCart: Flow.StepExample = {\n in: getEvent('product add', {\n timestamp: 1700000901000,\n data: {\n id: 'SKU-B2',\n name: 'Running Shoes',\n price: 89.99,\n color: 'blue',\n },\n nested: [\n {\n entity: 'product',\n data: {\n id: 'SKU-B2',\n name: 'Running Shoes',\n price: 89.99,\n quantity: 1,\n },\n },\n ],\n source: {\n type: 'server',\n id: 'https://shop.example.com/products/running-shoes',\n previous_id: '',\n },\n }),\n mapping: {\n name: 'AddToCart',\n data: {\n map: {\n content_type: { value: 'product' },\n value: 'data.price',\n currency: { value: 'EUR' },\n contents: {\n loop: [\n 'nested',\n {\n condition: (entity: unknown) =>\n isObject(entity) && entity.entity === 'product',\n map: {\n content_id: 'data.id',\n content_name: 'data.name',\n quantity: { key: 'data.quantity', value: 1 },\n price: 'data.price',\n },\n },\n ],\n },\n },\n },\n },\n out: {\n pixel_code: 'PIXEL_CODE',\n partner_name: 'walkerOS',\n data: [\n {\n event: 'AddToCart',\n event_id: '1700000901000-gr0up-1',\n timestamp: '2023-11-14T22:28:21.000Z',\n context: {\n page: {\n url: 'https://shop.example.com/products/running-shoes',\n },\n },\n properties: {\n content_type: 'product',\n value: 89.99,\n currency: 'EUR',\n contents: [\n {\n content_id: 'SKU-B2',\n content_name: 'Running Shoes',\n quantity: 1,\n price: 89.99,\n },\n ],\n },\n },\n ],\n },\n};\n\nexport const pageView: Flow.StepExample = {\n in: getEvent('page view', {\n timestamp: 1700000902000,\n source: {\n type: 'server',\n id: 'https://example.com/docs/',\n previous_id: '',\n },\n }),\n mapping: undefined,\n out: {\n pixel_code: 'PIXEL_CODE',\n partner_name: 'walkerOS',\n data: [\n {\n event: 'page view',\n event_id: '1700000902000-gr0up-1',\n timestamp: '2023-11-14T22:28:22.000Z',\n context: {\n page: {\n url: 'https://example.com/docs/',\n },\n },\n properties: {},\n },\n ],\n },\n};\n\nexport const lead: Flow.StepExample = {\n in: getEvent('form submit', {\n timestamp: 1700000903000,\n data: { type: 'newsletter' },\n user: { email: 'user@example.com' },\n source: {\n type: 'server',\n id: 'https://example.com/contact',\n previous_id: '',\n },\n }),\n mapping: {\n name: 'SubmitForm',\n data: {\n map: {\n user_data: {\n map: {\n email: 'user.email',\n },\n },\n },\n },\n },\n out: {\n pixel_code: 'PIXEL_CODE',\n partner_name: 'walkerOS',\n data: [\n {\n event: 'SubmitForm',\n event_id: '1700000903000-gr0up-1',\n timestamp: '2023-11-14T22:28:23.000Z',\n context: {\n user: {\n email: 'user@example.com',\n },\n page: {\n url: 'https://example.com/contact',\n },\n },\n properties: {},\n },\n ],\n },\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAAA,cAA4B;;;ACA5B,iBAAkB;AAEX,IAAM,iBAAiB,aAAE,OAAO;AAAA,EACrC,WAAW,aACR,OAAO,EACP,IAAI,CAAC,EACL,SAAS,4DAA4D;AAAA,EACxE,aAAa,aACV,OAAO,EACP,IAAI,CAAC,EACL,SAAS,oDAAoD;AAAA,EAChE,KAAK,aAAE,OAAO,EAAE,IAAI,EAAE,SAAS,gCAAgC,EAAE,SAAS;AAAA,EAC1E,iBAAiB,aACd,OAAO,EACP;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,WAAW,aACR,MAAM,aAAE,OAAO,CAAC,EAChB;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,WAAW,aACR,OAAO,aAAE,OAAO,GAAG,aAAE,OAAO,CAAC,EAC7B,SAAS,6DAA6D,EACtE,SAAS;AAAA,EACZ,cAAc,aACX,OAAO,EACP,SAAS,qCAAqC,EAC9C,SAAS;AACd,CAAC;;;AChCD,IAAAC,cAAkB;AAMX,IAAM,gBAAgB,cAAE,OAAO,CAAC,CAAC;;;ACNxC,IAAAC,cAAkB;AAMX,IAAM,0BAA0B,cAAE,MAAM;AAAA,EAC7C,cAAE,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,cAAE,OAAO;AAAA;AACX,CAAC;;;AHdM,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;AAEvB,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAQO,IAAM,OAAY;AAAA,EACvB,YAAY;AACd;AAEO,IAAM,aAAa,CAAC,YAAY;;;ACvCvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,kBAAmC;AAE5B,IAAM,WAA6B;AAAA,EACxC,QAAI,sBAAS,kBAAkB;AAAA,IAC7B,WAAW;AAAA,IACX,MAAM,EAAE,IAAI,WAAW,OAAO,QAAQ,UAAU,MAAM;AAAA,IACtD,QAAQ;AAAA,MACN;AAAA,QACE,QAAQ;AAAA,QACR,MAAM,EAAE,IAAI,UAAU,MAAM,cAAc,OAAO,QAAQ,UAAU,EAAE;AAAA,MACvE;AAAA,IACF;AAAA,IACA,MAAM,EAAE,IAAI,YAAY,QAAQ,aAAa;AAAA,IAC7C,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,aAAa;AAAA,IACf;AAAA,EACF,CAAC;AAAA,EACD,SAAS;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,KAAK;AAAA,QACH,OAAO;AAAA,QACP,UAAU,EAAE,KAAK,iBAAiB,OAAO,MAAM;AAAA,QAC/C,UAAU;AAAA,QACV,cAAc,EAAE,OAAO,UAAU;AAAA,QACjC,UAAU;AAAA,UACR,MAAM;AAAA,YACJ;AAAA,YACA;AAAA,cACE,WAAW,CAAC,eACV,sBAAS,MAAM,KAAK,OAAO,WAAW;AAAA,cACxC,KAAK;AAAA,gBACH,YAAY;AAAA,gBACZ,cAAc;AAAA,gBACd,UAAU,EAAE,KAAK,iBAAiB,OAAO,EAAE;AAAA,gBAC3C,OAAO;AAAA,cACT;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA,WAAW;AAAA,UACT,KAAK;AAAA,YACH,aAAa;AAAA,UACf;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,KAAK;AAAA,IACH,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,MAAM;AAAA,MACJ;AAAA,QACE,OAAO;AAAA,QACP,UAAU;AAAA,QACV,WAAW;AAAA,QACX,SAAS;AAAA,UACP,MAAM;AAAA,YACJ,aAAa;AAAA,UACf;AAAA,UACA,MAAM;AAAA,YACJ,KAAK;AAAA,UACP;AAAA,QACF;AAAA,QACA,YAAY;AAAA,UACV,OAAO;AAAA,UACP,UAAU;AAAA,UACV,UAAU;AAAA,UACV,cAAc;AAAA,UACd,UAAU;AAAA,YACR;AAAA,cACE,YAAY;AAAA,cACZ,cAAc;AAAA,cACd,UAAU;AAAA,cACV,OAAO;AAAA,YACT;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,YAA8B;AAAA,EACzC,QAAI,sBAAS,eAAe;AAAA,IAC1B,WAAW;AAAA,IACX,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA,QAAQ;AAAA,MACN;AAAA,QACE,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,OAAO;AAAA,UACP,UAAU;AAAA,QACZ;AAAA,MACF;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,aAAa;AAAA,IACf;AAAA,EACF,CAAC;AAAA,EACD,SAAS;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,KAAK;AAAA,QACH,cAAc,EAAE,OAAO,UAAU;AAAA,QACjC,OAAO;AAAA,QACP,UAAU,EAAE,OAAO,MAAM;AAAA,QACzB,UAAU;AAAA,UACR,MAAM;AAAA,YACJ;AAAA,YACA;AAAA,cACE,WAAW,CAAC,eACV,sBAAS,MAAM,KAAK,OAAO,WAAW;AAAA,cACxC,KAAK;AAAA,gBACH,YAAY;AAAA,gBACZ,cAAc;AAAA,gBACd,UAAU,EAAE,KAAK,iBAAiB,OAAO,EAAE;AAAA,gBAC3C,OAAO;AAAA,cACT;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,KAAK;AAAA,IACH,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,MAAM;AAAA,MACJ;AAAA,QACE,OAAO;AAAA,QACP,UAAU;AAAA,QACV,WAAW;AAAA,QACX,SAAS;AAAA,UACP,MAAM;AAAA,YACJ,KAAK;AAAA,UACP;AAAA,QACF;AAAA,QACA,YAAY;AAAA,UACV,cAAc;AAAA,UACd,OAAO;AAAA,UACP,UAAU;AAAA,UACV,UAAU;AAAA,YACR;AAAA,cACE,YAAY;AAAA,cACZ,cAAc;AAAA,cACd,UAAU;AAAA,cACV,OAAO;AAAA,YACT;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,WAA6B;AAAA,EACxC,QAAI,sBAAS,aAAa;AAAA,IACxB,WAAW;AAAA,IACX,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,aAAa;AAAA,IACf;AAAA,EACF,CAAC;AAAA,EACD,SAAS;AAAA,EACT,KAAK;AAAA,IACH,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,MAAM;AAAA,MACJ;AAAA,QACE,OAAO;AAAA,QACP,UAAU;AAAA,QACV,WAAW;AAAA,QACX,SAAS;AAAA,UACP,MAAM;AAAA,YACJ,KAAK;AAAA,UACP;AAAA,QACF;AAAA,QACA,YAAY,CAAC;AAAA,MACf;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,OAAyB;AAAA,EACpC,QAAI,sBAAS,eAAe;AAAA,IAC1B,WAAW;AAAA,IACX,MAAM,EAAE,MAAM,aAAa;AAAA,IAC3B,MAAM,EAAE,OAAO,mBAAmB;AAAA,IAClC,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,aAAa;AAAA,IACf;AAAA,EACF,CAAC;AAAA,EACD,SAAS;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,KAAK;AAAA,QACH,WAAW;AAAA,UACT,KAAK;AAAA,YACH,OAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,KAAK;AAAA,IACH,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,MAAM;AAAA,MACJ;AAAA,QACE,OAAO;AAAA,QACP,UAAU;AAAA,QACV,WAAW;AAAA,QACX,SAAS;AAAA,UACP,MAAM;AAAA,YACJ,OAAO;AAAA,UACT;AAAA,UACA,MAAM;AAAA,YACJ,KAAK;AAAA,UACP;AAAA,QACF;AAAA,QACA,YAAY,CAAC;AAAA,MACf;AAAA,IACF;AAAA,EACF;AACF;","names":["import_dev","import_dev","import_dev"]}
|
|
1
|
+
{"version":3,"sources":["../src/dev.ts","../src/schemas/index.ts","../src/schemas/settings.ts","../src/schemas/mapping.ts","../src/schemas/primitives.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';\n\nexport const SettingsSchema = z.object({\n pixelCode: z\n .string()\n .min(1)\n .describe('TikTok Pixel Code from Events Manager (like C0ABCDEF12345)'),\n accessToken: z\n .string()\n .min(1)\n .describe('Events API access token from TikTok Events Manager'),\n url: z.string().url().describe('Custom Events API endpoint URL').optional(),\n test_event_code: z\n .string()\n .describe(\n 'Test event code for debugging in TikTok Events Manager (like TEST12345)',\n )\n .optional(),\n doNotHash: z\n .array(z.string())\n .describe(\n \"User data fields to skip hashing (like ['email', 'phone_number'])\",\n )\n .optional(),\n user_data: z\n .record(z.string(), z.string())\n .describe(\"Mapping for user data fields (like { email: 'user.email' })\")\n .optional(),\n partner_name: z\n .string()\n .describe('Partner name for TikTok attribution')\n .optional(),\n});\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","import { z } from '@walkeros/core/dev';\n\n/**\n * TikTok Events API Mapping Schema\n * TikTok Events API has no event-level mapping configuration\n */\nexport const MappingSchema = z.object({});\n\n/**\n * Type inference from MappingSchema\n */\nexport type Mapping = z.infer<typeof MappingSchema>;\n","import { z } from '@walkeros/core/dev';\n\n/**\n * Standard TikTok Event Names\n * https://business-api.tiktok.com/portal/docs?id=1771100865818625\n */\nexport const StandardEventNameSchema = z.union([\n z.enum([\n 'ViewContent',\n 'ClickButton',\n 'Search',\n 'AddToWishlist',\n 'AddToCart',\n 'InitiateCheckout',\n 'AddPaymentInfo',\n 'CompletePayment',\n 'PlaceAnOrder',\n 'Contact',\n 'Download',\n 'SubmitForm',\n 'CompleteRegistration',\n 'Subscribe',\n ]),\n z.string(), // Allow custom event names\n]);\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 TikTok Events 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 // Simulate successful TikTok API response\n return {\n ok: true,\n data: {\n code: 0,\n message: 'OK',\n },\n };\n}\n\n/**\n * Standard mock environment for push operations\n *\n * Use this for testing TikTok Events API events without making\n * actual HTTP requests to TikTok'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, isObject } from '@walkeros/core';\n\n/**\n * TikTok Events API step examples.\n *\n * At push time, the destination calls\n * `env.sendServer(url, body, { headers })` where `url` is the fixed\n * TikTok Events API endpoint and `body` is the JSON-stringified payload\n * `{ pixel_code, partner_name, data: [tiktokEvent] }`.\n *\n * The test fixture pins `accessToken = 's3cr3t'` and `pixelCode = 'PIXEL_CODE'`.\n *\n * Body fields are emitted in the order the destination constructs them\n * (insertion order matters for `JSON.stringify` string equality):\n * pixel_code, partner_name, data[] with { event, event_id, timestamp,\n * context: { user?, page }, properties }.\n *\n * User identity fields (`email`, `phone_number`, `external_id`) are hashed\n * with SHA-256.\n */\nconst ENDPOINT = 'https://business-api.tiktok.com/open_api/v1.3/event/track/';\nconst HEADERS = {\n headers: {\n 'Access-Token': 's3cr3t',\n 'Content-Type': 'application/json',\n },\n};\n\nexport const purchase: Flow.StepExample = {\n in: getEvent('order complete', {\n timestamp: 1700000900000,\n data: { id: 'ORD-300', total: 249.99, currency: 'EUR' },\n nested: [\n {\n entity: 'product',\n data: { id: 'SKU-A1', name: 'Widget Pro', price: 124.99, quantity: 2 },\n },\n ],\n user: { id: 'user-123', device: 'device-456' },\n source: {\n type: 'server',\n id: 'https://shop.example.com/checkout/complete',\n previous_id: '',\n },\n }),\n mapping: {\n name: 'CompletePayment',\n data: {\n map: {\n value: 'data.total',\n currency: { key: 'data.currency', value: 'EUR' },\n order_id: 'data.id',\n content_type: { value: 'product' },\n contents: {\n loop: [\n 'nested',\n {\n condition: (entity: unknown) =>\n isObject(entity) && entity.entity === 'product',\n map: {\n content_id: 'data.id',\n content_name: 'data.name',\n quantity: { key: 'data.quantity', value: 1 },\n price: 'data.price',\n },\n },\n ],\n },\n user_data: {\n map: {\n external_id: 'user.id',\n },\n },\n },\n },\n },\n out: [\n [\n 'sendServer',\n ENDPOINT,\n JSON.stringify({\n pixel_code: 'PIXEL_CODE',\n partner_name: 'walkerOS',\n data: [\n {\n event: 'CompletePayment',\n event_id: '1700000900000-gr0up-1',\n timestamp: '2023-11-14T22:28:20.000Z',\n context: {\n user: {\n external_id:\n 'fcdec6df4d44dbc637c7c5b58efface52a7f8a88535423430255be0bb89bedd8',\n },\n page: {\n url: 'https://shop.example.com/checkout/complete',\n },\n },\n properties: {\n value: 249.99,\n currency: 'EUR',\n order_id: 'ORD-300',\n content_type: 'product',\n contents: [\n {\n content_id: 'SKU-A1',\n content_name: 'Widget Pro',\n quantity: 2,\n price: 124.99,\n },\n ],\n },\n },\n ],\n }),\n HEADERS,\n ],\n ],\n};\n\nexport const addToCart: Flow.StepExample = {\n in: getEvent('product add', {\n timestamp: 1700000901000,\n data: {\n id: 'SKU-B2',\n name: 'Running Shoes',\n price: 89.99,\n color: 'blue',\n },\n nested: [\n {\n entity: 'product',\n data: {\n id: 'SKU-B2',\n name: 'Running Shoes',\n price: 89.99,\n quantity: 1,\n },\n },\n ],\n source: {\n type: 'server',\n id: 'https://shop.example.com/products/running-shoes',\n previous_id: '',\n },\n }),\n mapping: {\n name: 'AddToCart',\n data: {\n map: {\n content_type: { value: 'product' },\n value: 'data.price',\n currency: { value: 'EUR' },\n contents: {\n loop: [\n 'nested',\n {\n condition: (entity: unknown) =>\n isObject(entity) && entity.entity === 'product',\n map: {\n content_id: 'data.id',\n content_name: 'data.name',\n quantity: { key: 'data.quantity', value: 1 },\n price: 'data.price',\n },\n },\n ],\n },\n },\n },\n },\n out: [\n [\n 'sendServer',\n ENDPOINT,\n JSON.stringify({\n pixel_code: 'PIXEL_CODE',\n partner_name: 'walkerOS',\n data: [\n {\n event: 'AddToCart',\n event_id: '1700000901000-gr0up-1',\n timestamp: '2023-11-14T22:28:21.000Z',\n context: {\n page: {\n url: 'https://shop.example.com/products/running-shoes',\n },\n },\n properties: {\n content_type: 'product',\n value: 89.99,\n currency: 'EUR',\n contents: [\n {\n content_id: 'SKU-B2',\n content_name: 'Running Shoes',\n quantity: 1,\n price: 89.99,\n },\n ],\n },\n },\n ],\n }),\n HEADERS,\n ],\n ],\n};\n\nexport const pageView: Flow.StepExample = {\n in: getEvent('page view', {\n timestamp: 1700000902000,\n source: {\n type: 'server',\n id: 'https://example.com/docs/',\n previous_id: '',\n },\n }),\n mapping: undefined,\n out: [\n [\n 'sendServer',\n ENDPOINT,\n JSON.stringify({\n pixel_code: 'PIXEL_CODE',\n partner_name: 'walkerOS',\n data: [\n {\n event: 'page view',\n event_id: '1700000902000-gr0up-1',\n timestamp: '2023-11-14T22:28:22.000Z',\n context: {\n page: {\n url: 'https://example.com/docs/',\n },\n },\n properties: {},\n },\n ],\n }),\n HEADERS,\n ],\n ],\n};\n\nexport const lead: Flow.StepExample = {\n in: getEvent('form submit', {\n timestamp: 1700000903000,\n data: { type: 'newsletter' },\n user: { email: 'user@example.com' },\n source: {\n type: 'server',\n id: 'https://example.com/contact',\n previous_id: '',\n },\n }),\n mapping: {\n name: 'SubmitForm',\n data: {\n map: {\n user_data: {\n map: {\n email: 'user.email',\n },\n },\n },\n },\n },\n out: [\n [\n 'sendServer',\n ENDPOINT,\n JSON.stringify({\n pixel_code: 'PIXEL_CODE',\n partner_name: 'walkerOS',\n data: [\n {\n event: 'SubmitForm',\n event_id: '1700000903000-gr0up-1',\n timestamp: '2023-11-14T22:28:23.000Z',\n context: {\n user: {\n // sha256('user@example.com')\n email:\n 'b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514',\n },\n page: {\n url: 'https://example.com/contact',\n },\n },\n properties: {},\n },\n ],\n }),\n HEADERS,\n ],\n ],\n};\n"],"mappings":"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","names":["import_dev","import_dev","import_dev"]}
|
package/dist/dev.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=Object.defineProperty,t=(t,a)=>{for(var r in a)e(t,r,{get:a[r],enumerable:!0})},a={};t(a,{MappingSchema:()=>
|
|
1
|
+
var e=Object.defineProperty,t=(t,a)=>{for(var r in a)e(t,r,{get:a[r],enumerable:!0})},a={};t(a,{MappingSchema:()=>s,SettingsSchema:()=>i,StandardEventNameSchema:()=>d,mapping:()=>m,settings:()=>c});import{zodToSchema as r}from"@walkeros/core/dev";import{z as n}from"@walkeros/core/dev";var i=n.object({pixelCode:n.string().min(1).describe("TikTok Pixel Code from Events Manager (like C0ABCDEF12345)"),accessToken:n.string().min(1).describe("Events API access token from TikTok Events Manager"),url:n.string().url().describe("Custom Events API endpoint URL").optional(),test_event_code:n.string().describe("Test event code for debugging in TikTok Events Manager (like TEST12345)").optional(),doNotHash:n.array(n.string()).describe("User data fields to skip hashing (like ['email', 'phone_number'])").optional(),user_data:n.record(n.string(),n.string()).describe("Mapping for user data fields (like { email: 'user.email' })").optional(),partner_name:n.string().describe("Partner name for TikTok attribution").optional()});import{z as o}from"@walkeros/core/dev";var s=o.object({});import{z as p}from"@walkeros/core/dev";var d=p.union([p.enum(["ViewContent","ClickButton","Search","AddToWishlist","AddToCart","InitiateCheckout","AddPaymentInfo","CompletePayment","PlaceAnOrder","Contact","Download","SubmitForm","CompleteRegistration","Subscribe"]),p.string()]),c=r(i),m=r(s),u={};t(u,{env:()=>l,step:()=>_});var l={};t(l,{push:()=>v,simulation:()=>g});var v={sendServer:async function(e,t,a){return{ok:!0,data:{code:0,message:"OK"}}}},g=["sendServer"],_={};t(_,{addToCart:()=>f,lead:()=>T,pageView:()=>x,purchase:()=>S});import{getEvent as y,isObject as k}from"@walkeros/core";var h="https://business-api.tiktok.com/open_api/v1.3/event/track/",b={headers:{"Access-Token":"s3cr3t","Content-Type":"application/json"}},S={in:y("order complete",{timestamp:17000009e5,data:{id:"ORD-300",total:249.99,currency:"EUR"},nested:[{entity:"product",data:{id:"SKU-A1",name:"Widget Pro",price:124.99,quantity:2}}],user:{id:"user-123",device:"device-456"},source:{type:"server",id:"https://shop.example.com/checkout/complete",previous_id:""}}),mapping:{name:"CompletePayment",data:{map:{value:"data.total",currency:{key:"data.currency",value:"EUR"},order_id:"data.id",content_type:{value:"product"},contents:{loop:["nested",{condition:e=>k(e)&&"product"===e.entity,map:{content_id:"data.id",content_name:"data.name",quantity:{key:"data.quantity",value:1},price:"data.price"}}]},user_data:{map:{external_id:"user.id"}}}}},out:[["sendServer",h,JSON.stringify({pixel_code:"PIXEL_CODE",partner_name:"walkerOS",data:[{event:"CompletePayment",event_id:"1700000900000-gr0up-1",timestamp:"2023-11-14T22:28:20.000Z",context:{user:{external_id:"fcdec6df4d44dbc637c7c5b58efface52a7f8a88535423430255be0bb89bedd8"},page:{url:"https://shop.example.com/checkout/complete"}},properties:{value:249.99,currency:"EUR",order_id:"ORD-300",content_type:"product",contents:[{content_id:"SKU-A1",content_name:"Widget Pro",quantity:2,price:124.99}]}}]}),b]]},f={in:y("product add",{timestamp:1700000901e3,data:{id:"SKU-B2",name:"Running Shoes",price:89.99,color:"blue"},nested:[{entity:"product",data:{id:"SKU-B2",name:"Running Shoes",price:89.99,quantity:1}}],source:{type:"server",id:"https://shop.example.com/products/running-shoes",previous_id:""}}),mapping:{name:"AddToCart",data:{map:{content_type:{value:"product"},value:"data.price",currency:{value:"EUR"},contents:{loop:["nested",{condition:e=>k(e)&&"product"===e.entity,map:{content_id:"data.id",content_name:"data.name",quantity:{key:"data.quantity",value:1},price:"data.price"}}]}}}},out:[["sendServer",h,JSON.stringify({pixel_code:"PIXEL_CODE",partner_name:"walkerOS",data:[{event:"AddToCart",event_id:"1700000901000-gr0up-1",timestamp:"2023-11-14T22:28:21.000Z",context:{page:{url:"https://shop.example.com/products/running-shoes"}},properties:{content_type:"product",value:89.99,currency:"EUR",contents:[{content_id:"SKU-B2",content_name:"Running Shoes",quantity:1,price:89.99}]}}]}),b]]},x={in:y("page view",{timestamp:1700000902e3,source:{type:"server",id:"https://example.com/docs/",previous_id:""}}),mapping:void 0,out:[["sendServer",h,JSON.stringify({pixel_code:"PIXEL_CODE",partner_name:"walkerOS",data:[{event:"page view",event_id:"1700000902000-gr0up-1",timestamp:"2023-11-14T22:28:22.000Z",context:{page:{url:"https://example.com/docs/"}},properties:{}}]}),b]]},T={in:y("form submit",{timestamp:1700000903e3,data:{type:"newsletter"},user:{email:"user@example.com"},source:{type:"server",id:"https://example.com/contact",previous_id:""}}),mapping:{name:"SubmitForm",data:{map:{user_data:{map:{email:"user.email"}}}}},out:[["sendServer",h,JSON.stringify({pixel_code:"PIXEL_CODE",partner_name:"walkerOS",data:[{event:"SubmitForm",event_id:"1700000903000-gr0up-1",timestamp:"2023-11-14T22:28:23.000Z",context:{user:{email:"b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514"},page:{url:"https://example.com/contact"}},properties:{}}]}),b]]};export{u as examples,a 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/mapping.ts","../src/schemas/primitives.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';\n\nexport const SettingsSchema = z.object({\n pixelCode: z\n .string()\n .min(1)\n .describe('TikTok Pixel Code from Events Manager (like C0ABCDEF12345)'),\n accessToken: z\n .string()\n .min(1)\n .describe('Events API access token from TikTok Events Manager'),\n url: z.string().url().describe('Custom Events API endpoint URL').optional(),\n test_event_code: z\n .string()\n .describe(\n 'Test event code for debugging in TikTok Events Manager (like TEST12345)',\n )\n .optional(),\n doNotHash: z\n .array(z.string())\n .describe(\n \"User data fields to skip hashing (like ['email', 'phone_number'])\",\n )\n .optional(),\n user_data: z\n .record(z.string(), z.string())\n .describe(\"Mapping for user data fields (like { email: 'user.email' })\")\n .optional(),\n partner_name: z\n .string()\n .describe('Partner name for TikTok attribution')\n .optional(),\n});\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","import { z } from '@walkeros/core/dev';\n\n/**\n * TikTok Events API Mapping Schema\n * TikTok Events API has no event-level mapping configuration\n */\nexport const MappingSchema = z.object({});\n\n/**\n * Type inference from MappingSchema\n */\nexport type Mapping = z.infer<typeof MappingSchema>;\n","import { z } from '@walkeros/core/dev';\n\n/**\n * Standard TikTok Event Names\n * https://business-api.tiktok.com/portal/docs?id=1771100865818625\n */\nexport const StandardEventNameSchema = z.union([\n z.enum([\n 'ViewContent',\n 'ClickButton',\n 'Search',\n 'AddToWishlist',\n 'AddToCart',\n 'InitiateCheckout',\n 'AddPaymentInfo',\n 'CompletePayment',\n 'PlaceAnOrder',\n 'Contact',\n 'Download',\n 'SubmitForm',\n 'CompleteRegistration',\n 'Subscribe',\n ]),\n z.string(), // Allow custom event names\n]);\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 TikTok Events 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 // Simulate successful TikTok API response\n return {\n ok: true,\n data: {\n code: 0,\n message: 'OK',\n },\n };\n}\n\n/**\n * Standard mock environment for push operations\n *\n * Use this for testing TikTok Events API events without making\n * actual HTTP requests to TikTok'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, isObject } from '@walkeros/core';\n\nexport const purchase: Flow.StepExample = {\n in: getEvent('order complete', {\n timestamp: 1700000900000,\n data: { id: 'ORD-300', total: 249.99, currency: 'EUR' },\n nested: [\n {\n entity: 'product',\n data: { id: 'SKU-A1', name: 'Widget Pro', price: 124.99, quantity: 2 },\n },\n ],\n user: { id: 'user-123', device: 'device-456' },\n source: {\n type: 'server',\n id: 'https://shop.example.com/checkout/complete',\n previous_id: '',\n },\n }),\n mapping: {\n name: 'CompletePayment',\n data: {\n map: {\n value: 'data.total',\n currency: { key: 'data.currency', value: 'EUR' },\n order_id: 'data.id',\n content_type: { value: 'product' },\n contents: {\n loop: [\n 'nested',\n {\n condition: (entity: unknown) =>\n isObject(entity) && entity.entity === 'product',\n map: {\n content_id: 'data.id',\n content_name: 'data.name',\n quantity: { key: 'data.quantity', value: 1 },\n price: 'data.price',\n },\n },\n ],\n },\n user_data: {\n map: {\n external_id: 'user.id',\n },\n },\n },\n },\n },\n out: {\n pixel_code: 'PIXEL_CODE',\n partner_name: 'walkerOS',\n data: [\n {\n event: 'CompletePayment',\n event_id: '1700000900000-gr0up-1',\n timestamp: '2023-11-14T22:28:20.000Z',\n context: {\n user: {\n external_id: 'user-123',\n },\n page: {\n url: 'https://shop.example.com/checkout/complete',\n },\n },\n properties: {\n value: 249.99,\n currency: 'EUR',\n order_id: 'ORD-300',\n content_type: 'product',\n contents: [\n {\n content_id: 'SKU-A1',\n content_name: 'Widget Pro',\n quantity: 2,\n price: 124.99,\n },\n ],\n },\n },\n ],\n },\n};\n\nexport const addToCart: Flow.StepExample = {\n in: getEvent('product add', {\n timestamp: 1700000901000,\n data: {\n id: 'SKU-B2',\n name: 'Running Shoes',\n price: 89.99,\n color: 'blue',\n },\n nested: [\n {\n entity: 'product',\n data: {\n id: 'SKU-B2',\n name: 'Running Shoes',\n price: 89.99,\n quantity: 1,\n },\n },\n ],\n source: {\n type: 'server',\n id: 'https://shop.example.com/products/running-shoes',\n previous_id: '',\n },\n }),\n mapping: {\n name: 'AddToCart',\n data: {\n map: {\n content_type: { value: 'product' },\n value: 'data.price',\n currency: { value: 'EUR' },\n contents: {\n loop: [\n 'nested',\n {\n condition: (entity: unknown) =>\n isObject(entity) && entity.entity === 'product',\n map: {\n content_id: 'data.id',\n content_name: 'data.name',\n quantity: { key: 'data.quantity', value: 1 },\n price: 'data.price',\n },\n },\n ],\n },\n },\n },\n },\n out: {\n pixel_code: 'PIXEL_CODE',\n partner_name: 'walkerOS',\n data: [\n {\n event: 'AddToCart',\n event_id: '1700000901000-gr0up-1',\n timestamp: '2023-11-14T22:28:21.000Z',\n context: {\n page: {\n url: 'https://shop.example.com/products/running-shoes',\n },\n },\n properties: {\n content_type: 'product',\n value: 89.99,\n currency: 'EUR',\n contents: [\n {\n content_id: 'SKU-B2',\n content_name: 'Running Shoes',\n quantity: 1,\n price: 89.99,\n },\n ],\n },\n },\n ],\n },\n};\n\nexport const pageView: Flow.StepExample = {\n in: getEvent('page view', {\n timestamp: 1700000902000,\n source: {\n type: 'server',\n id: 'https://example.com/docs/',\n previous_id: '',\n },\n }),\n mapping: undefined,\n out: {\n pixel_code: 'PIXEL_CODE',\n partner_name: 'walkerOS',\n data: [\n {\n event: 'page view',\n event_id: '1700000902000-gr0up-1',\n timestamp: '2023-11-14T22:28:22.000Z',\n context: {\n page: {\n url: 'https://example.com/docs/',\n },\n },\n properties: {},\n },\n ],\n },\n};\n\nexport const lead: Flow.StepExample = {\n in: getEvent('form submit', {\n timestamp: 1700000903000,\n data: { type: 'newsletter' },\n user: { email: 'user@example.com' },\n source: {\n type: 'server',\n id: 'https://example.com/contact',\n previous_id: '',\n },\n }),\n mapping: {\n name: 'SubmitForm',\n data: {\n map: {\n user_data: {\n map: {\n email: 'user.email',\n },\n },\n },\n },\n },\n out: {\n pixel_code: 'PIXEL_CODE',\n partner_name: 'walkerOS',\n data: [\n {\n event: 'SubmitForm',\n event_id: '1700000903000-gr0up-1',\n timestamp: '2023-11-14T22:28:23.000Z',\n context: {\n user: {\n email: 'user@example.com',\n },\n page: {\n url: 'https://example.com/contact',\n },\n },\n properties: {},\n },\n ],\n },\n};\n"],"mappings":"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","names":["z","z"]}
|
|
1
|
+
{"version":3,"sources":["../src/schemas/index.ts","../src/schemas/settings.ts","../src/schemas/mapping.ts","../src/schemas/primitives.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';\n\nexport const SettingsSchema = z.object({\n pixelCode: z\n .string()\n .min(1)\n .describe('TikTok Pixel Code from Events Manager (like C0ABCDEF12345)'),\n accessToken: z\n .string()\n .min(1)\n .describe('Events API access token from TikTok Events Manager'),\n url: z.string().url().describe('Custom Events API endpoint URL').optional(),\n test_event_code: z\n .string()\n .describe(\n 'Test event code for debugging in TikTok Events Manager (like TEST12345)',\n )\n .optional(),\n doNotHash: z\n .array(z.string())\n .describe(\n \"User data fields to skip hashing (like ['email', 'phone_number'])\",\n )\n .optional(),\n user_data: z\n .record(z.string(), z.string())\n .describe(\"Mapping for user data fields (like { email: 'user.email' })\")\n .optional(),\n partner_name: z\n .string()\n .describe('Partner name for TikTok attribution')\n .optional(),\n});\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","import { z } from '@walkeros/core/dev';\n\n/**\n * TikTok Events API Mapping Schema\n * TikTok Events API has no event-level mapping configuration\n */\nexport const MappingSchema = z.object({});\n\n/**\n * Type inference from MappingSchema\n */\nexport type Mapping = z.infer<typeof MappingSchema>;\n","import { z } from '@walkeros/core/dev';\n\n/**\n * Standard TikTok Event Names\n * https://business-api.tiktok.com/portal/docs?id=1771100865818625\n */\nexport const StandardEventNameSchema = z.union([\n z.enum([\n 'ViewContent',\n 'ClickButton',\n 'Search',\n 'AddToWishlist',\n 'AddToCart',\n 'InitiateCheckout',\n 'AddPaymentInfo',\n 'CompletePayment',\n 'PlaceAnOrder',\n 'Contact',\n 'Download',\n 'SubmitForm',\n 'CompleteRegistration',\n 'Subscribe',\n ]),\n z.string(), // Allow custom event names\n]);\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 TikTok Events 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 // Simulate successful TikTok API response\n return {\n ok: true,\n data: {\n code: 0,\n message: 'OK',\n },\n };\n}\n\n/**\n * Standard mock environment for push operations\n *\n * Use this for testing TikTok Events API events without making\n * actual HTTP requests to TikTok'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, isObject } from '@walkeros/core';\n\n/**\n * TikTok Events API step examples.\n *\n * At push time, the destination calls\n * `env.sendServer(url, body, { headers })` where `url` is the fixed\n * TikTok Events API endpoint and `body` is the JSON-stringified payload\n * `{ pixel_code, partner_name, data: [tiktokEvent] }`.\n *\n * The test fixture pins `accessToken = 's3cr3t'` and `pixelCode = 'PIXEL_CODE'`.\n *\n * Body fields are emitted in the order the destination constructs them\n * (insertion order matters for `JSON.stringify` string equality):\n * pixel_code, partner_name, data[] with { event, event_id, timestamp,\n * context: { user?, page }, properties }.\n *\n * User identity fields (`email`, `phone_number`, `external_id`) are hashed\n * with SHA-256.\n */\nconst ENDPOINT = 'https://business-api.tiktok.com/open_api/v1.3/event/track/';\nconst HEADERS = {\n headers: {\n 'Access-Token': 's3cr3t',\n 'Content-Type': 'application/json',\n },\n};\n\nexport const purchase: Flow.StepExample = {\n in: getEvent('order complete', {\n timestamp: 1700000900000,\n data: { id: 'ORD-300', total: 249.99, currency: 'EUR' },\n nested: [\n {\n entity: 'product',\n data: { id: 'SKU-A1', name: 'Widget Pro', price: 124.99, quantity: 2 },\n },\n ],\n user: { id: 'user-123', device: 'device-456' },\n source: {\n type: 'server',\n id: 'https://shop.example.com/checkout/complete',\n previous_id: '',\n },\n }),\n mapping: {\n name: 'CompletePayment',\n data: {\n map: {\n value: 'data.total',\n currency: { key: 'data.currency', value: 'EUR' },\n order_id: 'data.id',\n content_type: { value: 'product' },\n contents: {\n loop: [\n 'nested',\n {\n condition: (entity: unknown) =>\n isObject(entity) && entity.entity === 'product',\n map: {\n content_id: 'data.id',\n content_name: 'data.name',\n quantity: { key: 'data.quantity', value: 1 },\n price: 'data.price',\n },\n },\n ],\n },\n user_data: {\n map: {\n external_id: 'user.id',\n },\n },\n },\n },\n },\n out: [\n [\n 'sendServer',\n ENDPOINT,\n JSON.stringify({\n pixel_code: 'PIXEL_CODE',\n partner_name: 'walkerOS',\n data: [\n {\n event: 'CompletePayment',\n event_id: '1700000900000-gr0up-1',\n timestamp: '2023-11-14T22:28:20.000Z',\n context: {\n user: {\n external_id:\n 'fcdec6df4d44dbc637c7c5b58efface52a7f8a88535423430255be0bb89bedd8',\n },\n page: {\n url: 'https://shop.example.com/checkout/complete',\n },\n },\n properties: {\n value: 249.99,\n currency: 'EUR',\n order_id: 'ORD-300',\n content_type: 'product',\n contents: [\n {\n content_id: 'SKU-A1',\n content_name: 'Widget Pro',\n quantity: 2,\n price: 124.99,\n },\n ],\n },\n },\n ],\n }),\n HEADERS,\n ],\n ],\n};\n\nexport const addToCart: Flow.StepExample = {\n in: getEvent('product add', {\n timestamp: 1700000901000,\n data: {\n id: 'SKU-B2',\n name: 'Running Shoes',\n price: 89.99,\n color: 'blue',\n },\n nested: [\n {\n entity: 'product',\n data: {\n id: 'SKU-B2',\n name: 'Running Shoes',\n price: 89.99,\n quantity: 1,\n },\n },\n ],\n source: {\n type: 'server',\n id: 'https://shop.example.com/products/running-shoes',\n previous_id: '',\n },\n }),\n mapping: {\n name: 'AddToCart',\n data: {\n map: {\n content_type: { value: 'product' },\n value: 'data.price',\n currency: { value: 'EUR' },\n contents: {\n loop: [\n 'nested',\n {\n condition: (entity: unknown) =>\n isObject(entity) && entity.entity === 'product',\n map: {\n content_id: 'data.id',\n content_name: 'data.name',\n quantity: { key: 'data.quantity', value: 1 },\n price: 'data.price',\n },\n },\n ],\n },\n },\n },\n },\n out: [\n [\n 'sendServer',\n ENDPOINT,\n JSON.stringify({\n pixel_code: 'PIXEL_CODE',\n partner_name: 'walkerOS',\n data: [\n {\n event: 'AddToCart',\n event_id: '1700000901000-gr0up-1',\n timestamp: '2023-11-14T22:28:21.000Z',\n context: {\n page: {\n url: 'https://shop.example.com/products/running-shoes',\n },\n },\n properties: {\n content_type: 'product',\n value: 89.99,\n currency: 'EUR',\n contents: [\n {\n content_id: 'SKU-B2',\n content_name: 'Running Shoes',\n quantity: 1,\n price: 89.99,\n },\n ],\n },\n },\n ],\n }),\n HEADERS,\n ],\n ],\n};\n\nexport const pageView: Flow.StepExample = {\n in: getEvent('page view', {\n timestamp: 1700000902000,\n source: {\n type: 'server',\n id: 'https://example.com/docs/',\n previous_id: '',\n },\n }),\n mapping: undefined,\n out: [\n [\n 'sendServer',\n ENDPOINT,\n JSON.stringify({\n pixel_code: 'PIXEL_CODE',\n partner_name: 'walkerOS',\n data: [\n {\n event: 'page view',\n event_id: '1700000902000-gr0up-1',\n timestamp: '2023-11-14T22:28:22.000Z',\n context: {\n page: {\n url: 'https://example.com/docs/',\n },\n },\n properties: {},\n },\n ],\n }),\n HEADERS,\n ],\n ],\n};\n\nexport const lead: Flow.StepExample = {\n in: getEvent('form submit', {\n timestamp: 1700000903000,\n data: { type: 'newsletter' },\n user: { email: 'user@example.com' },\n source: {\n type: 'server',\n id: 'https://example.com/contact',\n previous_id: '',\n },\n }),\n mapping: {\n name: 'SubmitForm',\n data: {\n map: {\n user_data: {\n map: {\n email: 'user.email',\n },\n },\n },\n },\n },\n out: [\n [\n 'sendServer',\n ENDPOINT,\n JSON.stringify({\n pixel_code: 'PIXEL_CODE',\n partner_name: 'walkerOS',\n data: [\n {\n event: 'SubmitForm',\n event_id: '1700000903000-gr0up-1',\n timestamp: '2023-11-14T22:28:23.000Z',\n context: {\n user: {\n // sha256('user@example.com')\n email:\n 'b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514',\n },\n page: {\n url: 'https://example.com/contact',\n },\n },\n properties: {},\n },\n ],\n }),\n HEADERS,\n ],\n ],\n};\n"],"mappings":"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","names":["z","z"]}
|
package/dist/examples/index.js
CHANGED
|
@@ -54,6 +54,13 @@ __export(step_exports, {
|
|
|
54
54
|
purchase: () => purchase
|
|
55
55
|
});
|
|
56
56
|
var import_core = require("@walkeros/core");
|
|
57
|
+
var ENDPOINT = "https://business-api.tiktok.com/open_api/v1.3/event/track/";
|
|
58
|
+
var HEADERS = {
|
|
59
|
+
headers: {
|
|
60
|
+
"Access-Token": "s3cr3t",
|
|
61
|
+
"Content-Type": "application/json"
|
|
62
|
+
}
|
|
63
|
+
};
|
|
57
64
|
var purchase = {
|
|
58
65
|
in: (0, import_core.getEvent)("order complete", {
|
|
59
66
|
timestamp: 17000009e5,
|
|
@@ -101,39 +108,46 @@ var purchase = {
|
|
|
101
108
|
}
|
|
102
109
|
}
|
|
103
110
|
},
|
|
104
|
-
out:
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
{
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
111
|
+
out: [
|
|
112
|
+
[
|
|
113
|
+
"sendServer",
|
|
114
|
+
ENDPOINT,
|
|
115
|
+
JSON.stringify({
|
|
116
|
+
pixel_code: "PIXEL_CODE",
|
|
117
|
+
partner_name: "walkerOS",
|
|
118
|
+
data: [
|
|
119
|
+
{
|
|
120
|
+
event: "CompletePayment",
|
|
121
|
+
event_id: "1700000900000-gr0up-1",
|
|
122
|
+
timestamp: "2023-11-14T22:28:20.000Z",
|
|
123
|
+
context: {
|
|
124
|
+
user: {
|
|
125
|
+
external_id: "fcdec6df4d44dbc637c7c5b58efface52a7f8a88535423430255be0bb89bedd8"
|
|
126
|
+
},
|
|
127
|
+
page: {
|
|
128
|
+
url: "https://shop.example.com/checkout/complete"
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
properties: {
|
|
132
|
+
value: 249.99,
|
|
133
|
+
currency: "EUR",
|
|
134
|
+
order_id: "ORD-300",
|
|
135
|
+
content_type: "product",
|
|
136
|
+
contents: [
|
|
137
|
+
{
|
|
138
|
+
content_id: "SKU-A1",
|
|
139
|
+
content_name: "Widget Pro",
|
|
140
|
+
quantity: 2,
|
|
141
|
+
price: 124.99
|
|
142
|
+
}
|
|
143
|
+
]
|
|
131
144
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
}
|
|
145
|
+
}
|
|
146
|
+
]
|
|
147
|
+
}),
|
|
148
|
+
HEADERS
|
|
135
149
|
]
|
|
136
|
-
|
|
150
|
+
]
|
|
137
151
|
};
|
|
138
152
|
var addToCart = {
|
|
139
153
|
in: (0, import_core.getEvent)("product add", {
|
|
@@ -185,35 +199,42 @@ var addToCart = {
|
|
|
185
199
|
}
|
|
186
200
|
}
|
|
187
201
|
},
|
|
188
|
-
out:
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
{
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
202
|
+
out: [
|
|
203
|
+
[
|
|
204
|
+
"sendServer",
|
|
205
|
+
ENDPOINT,
|
|
206
|
+
JSON.stringify({
|
|
207
|
+
pixel_code: "PIXEL_CODE",
|
|
208
|
+
partner_name: "walkerOS",
|
|
209
|
+
data: [
|
|
210
|
+
{
|
|
211
|
+
event: "AddToCart",
|
|
212
|
+
event_id: "1700000901000-gr0up-1",
|
|
213
|
+
timestamp: "2023-11-14T22:28:21.000Z",
|
|
214
|
+
context: {
|
|
215
|
+
page: {
|
|
216
|
+
url: "https://shop.example.com/products/running-shoes"
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
properties: {
|
|
220
|
+
content_type: "product",
|
|
221
|
+
value: 89.99,
|
|
222
|
+
currency: "EUR",
|
|
223
|
+
contents: [
|
|
224
|
+
{
|
|
225
|
+
content_id: "SKU-B2",
|
|
226
|
+
content_name: "Running Shoes",
|
|
227
|
+
quantity: 1,
|
|
228
|
+
price: 89.99
|
|
229
|
+
}
|
|
230
|
+
]
|
|
211
231
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
}
|
|
232
|
+
}
|
|
233
|
+
]
|
|
234
|
+
}),
|
|
235
|
+
HEADERS
|
|
215
236
|
]
|
|
216
|
-
|
|
237
|
+
]
|
|
217
238
|
};
|
|
218
239
|
var pageView = {
|
|
219
240
|
in: (0, import_core.getEvent)("page view", {
|
|
@@ -225,23 +246,30 @@ var pageView = {
|
|
|
225
246
|
}
|
|
226
247
|
}),
|
|
227
248
|
mapping: void 0,
|
|
228
|
-
out:
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
{
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
249
|
+
out: [
|
|
250
|
+
[
|
|
251
|
+
"sendServer",
|
|
252
|
+
ENDPOINT,
|
|
253
|
+
JSON.stringify({
|
|
254
|
+
pixel_code: "PIXEL_CODE",
|
|
255
|
+
partner_name: "walkerOS",
|
|
256
|
+
data: [
|
|
257
|
+
{
|
|
258
|
+
event: "page view",
|
|
259
|
+
event_id: "1700000902000-gr0up-1",
|
|
260
|
+
timestamp: "2023-11-14T22:28:22.000Z",
|
|
261
|
+
context: {
|
|
262
|
+
page: {
|
|
263
|
+
url: "https://example.com/docs/"
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
properties: {}
|
|
239
267
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
268
|
+
]
|
|
269
|
+
}),
|
|
270
|
+
HEADERS
|
|
243
271
|
]
|
|
244
|
-
|
|
272
|
+
]
|
|
245
273
|
};
|
|
246
274
|
var lead = {
|
|
247
275
|
in: (0, import_core.getEvent)("form submit", {
|
|
@@ -266,26 +294,34 @@ var lead = {
|
|
|
266
294
|
}
|
|
267
295
|
}
|
|
268
296
|
},
|
|
269
|
-
out:
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
{
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
297
|
+
out: [
|
|
298
|
+
[
|
|
299
|
+
"sendServer",
|
|
300
|
+
ENDPOINT,
|
|
301
|
+
JSON.stringify({
|
|
302
|
+
pixel_code: "PIXEL_CODE",
|
|
303
|
+
partner_name: "walkerOS",
|
|
304
|
+
data: [
|
|
305
|
+
{
|
|
306
|
+
event: "SubmitForm",
|
|
307
|
+
event_id: "1700000903000-gr0up-1",
|
|
308
|
+
timestamp: "2023-11-14T22:28:23.000Z",
|
|
309
|
+
context: {
|
|
310
|
+
user: {
|
|
311
|
+
// sha256('user@example.com')
|
|
312
|
+
email: "b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514"
|
|
313
|
+
},
|
|
314
|
+
page: {
|
|
315
|
+
url: "https://example.com/contact"
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
properties: {}
|
|
283
319
|
}
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
320
|
+
]
|
|
321
|
+
}),
|
|
322
|
+
HEADERS
|
|
287
323
|
]
|
|
288
|
-
|
|
324
|
+
]
|
|
289
325
|
};
|
|
290
326
|
// Annotate the CommonJS export names for ESM import in node:
|
|
291
327
|
0 && (module.exports = {
|
package/dist/examples/index.mjs
CHANGED
|
@@ -33,6 +33,13 @@ __export(step_exports, {
|
|
|
33
33
|
purchase: () => purchase
|
|
34
34
|
});
|
|
35
35
|
import { getEvent, isObject } from "@walkeros/core";
|
|
36
|
+
var ENDPOINT = "https://business-api.tiktok.com/open_api/v1.3/event/track/";
|
|
37
|
+
var HEADERS = {
|
|
38
|
+
headers: {
|
|
39
|
+
"Access-Token": "s3cr3t",
|
|
40
|
+
"Content-Type": "application/json"
|
|
41
|
+
}
|
|
42
|
+
};
|
|
36
43
|
var purchase = {
|
|
37
44
|
in: getEvent("order complete", {
|
|
38
45
|
timestamp: 17000009e5,
|
|
@@ -80,39 +87,46 @@ var purchase = {
|
|
|
80
87
|
}
|
|
81
88
|
}
|
|
82
89
|
},
|
|
83
|
-
out:
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
{
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
90
|
+
out: [
|
|
91
|
+
[
|
|
92
|
+
"sendServer",
|
|
93
|
+
ENDPOINT,
|
|
94
|
+
JSON.stringify({
|
|
95
|
+
pixel_code: "PIXEL_CODE",
|
|
96
|
+
partner_name: "walkerOS",
|
|
97
|
+
data: [
|
|
98
|
+
{
|
|
99
|
+
event: "CompletePayment",
|
|
100
|
+
event_id: "1700000900000-gr0up-1",
|
|
101
|
+
timestamp: "2023-11-14T22:28:20.000Z",
|
|
102
|
+
context: {
|
|
103
|
+
user: {
|
|
104
|
+
external_id: "fcdec6df4d44dbc637c7c5b58efface52a7f8a88535423430255be0bb89bedd8"
|
|
105
|
+
},
|
|
106
|
+
page: {
|
|
107
|
+
url: "https://shop.example.com/checkout/complete"
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
properties: {
|
|
111
|
+
value: 249.99,
|
|
112
|
+
currency: "EUR",
|
|
113
|
+
order_id: "ORD-300",
|
|
114
|
+
content_type: "product",
|
|
115
|
+
contents: [
|
|
116
|
+
{
|
|
117
|
+
content_id: "SKU-A1",
|
|
118
|
+
content_name: "Widget Pro",
|
|
119
|
+
quantity: 2,
|
|
120
|
+
price: 124.99
|
|
121
|
+
}
|
|
122
|
+
]
|
|
110
123
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
124
|
+
}
|
|
125
|
+
]
|
|
126
|
+
}),
|
|
127
|
+
HEADERS
|
|
114
128
|
]
|
|
115
|
-
|
|
129
|
+
]
|
|
116
130
|
};
|
|
117
131
|
var addToCart = {
|
|
118
132
|
in: getEvent("product add", {
|
|
@@ -164,35 +178,42 @@ var addToCart = {
|
|
|
164
178
|
}
|
|
165
179
|
}
|
|
166
180
|
},
|
|
167
|
-
out:
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
{
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
181
|
+
out: [
|
|
182
|
+
[
|
|
183
|
+
"sendServer",
|
|
184
|
+
ENDPOINT,
|
|
185
|
+
JSON.stringify({
|
|
186
|
+
pixel_code: "PIXEL_CODE",
|
|
187
|
+
partner_name: "walkerOS",
|
|
188
|
+
data: [
|
|
189
|
+
{
|
|
190
|
+
event: "AddToCart",
|
|
191
|
+
event_id: "1700000901000-gr0up-1",
|
|
192
|
+
timestamp: "2023-11-14T22:28:21.000Z",
|
|
193
|
+
context: {
|
|
194
|
+
page: {
|
|
195
|
+
url: "https://shop.example.com/products/running-shoes"
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
properties: {
|
|
199
|
+
content_type: "product",
|
|
200
|
+
value: 89.99,
|
|
201
|
+
currency: "EUR",
|
|
202
|
+
contents: [
|
|
203
|
+
{
|
|
204
|
+
content_id: "SKU-B2",
|
|
205
|
+
content_name: "Running Shoes",
|
|
206
|
+
quantity: 1,
|
|
207
|
+
price: 89.99
|
|
208
|
+
}
|
|
209
|
+
]
|
|
190
210
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
}
|
|
211
|
+
}
|
|
212
|
+
]
|
|
213
|
+
}),
|
|
214
|
+
HEADERS
|
|
194
215
|
]
|
|
195
|
-
|
|
216
|
+
]
|
|
196
217
|
};
|
|
197
218
|
var pageView = {
|
|
198
219
|
in: getEvent("page view", {
|
|
@@ -204,23 +225,30 @@ var pageView = {
|
|
|
204
225
|
}
|
|
205
226
|
}),
|
|
206
227
|
mapping: void 0,
|
|
207
|
-
out:
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
{
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
228
|
+
out: [
|
|
229
|
+
[
|
|
230
|
+
"sendServer",
|
|
231
|
+
ENDPOINT,
|
|
232
|
+
JSON.stringify({
|
|
233
|
+
pixel_code: "PIXEL_CODE",
|
|
234
|
+
partner_name: "walkerOS",
|
|
235
|
+
data: [
|
|
236
|
+
{
|
|
237
|
+
event: "page view",
|
|
238
|
+
event_id: "1700000902000-gr0up-1",
|
|
239
|
+
timestamp: "2023-11-14T22:28:22.000Z",
|
|
240
|
+
context: {
|
|
241
|
+
page: {
|
|
242
|
+
url: "https://example.com/docs/"
|
|
243
|
+
}
|
|
244
|
+
},
|
|
245
|
+
properties: {}
|
|
218
246
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
247
|
+
]
|
|
248
|
+
}),
|
|
249
|
+
HEADERS
|
|
222
250
|
]
|
|
223
|
-
|
|
251
|
+
]
|
|
224
252
|
};
|
|
225
253
|
var lead = {
|
|
226
254
|
in: getEvent("form submit", {
|
|
@@ -245,26 +273,34 @@ var lead = {
|
|
|
245
273
|
}
|
|
246
274
|
}
|
|
247
275
|
},
|
|
248
|
-
out:
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
{
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
276
|
+
out: [
|
|
277
|
+
[
|
|
278
|
+
"sendServer",
|
|
279
|
+
ENDPOINT,
|
|
280
|
+
JSON.stringify({
|
|
281
|
+
pixel_code: "PIXEL_CODE",
|
|
282
|
+
partner_name: "walkerOS",
|
|
283
|
+
data: [
|
|
284
|
+
{
|
|
285
|
+
event: "SubmitForm",
|
|
286
|
+
event_id: "1700000903000-gr0up-1",
|
|
287
|
+
timestamp: "2023-11-14T22:28:23.000Z",
|
|
288
|
+
context: {
|
|
289
|
+
user: {
|
|
290
|
+
// sha256('user@example.com')
|
|
291
|
+
email: "b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514"
|
|
292
|
+
},
|
|
293
|
+
page: {
|
|
294
|
+
url: "https://example.com/contact"
|
|
295
|
+
}
|
|
296
|
+
},
|
|
297
|
+
properties: {}
|
|
262
298
|
}
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
299
|
+
]
|
|
300
|
+
}),
|
|
301
|
+
HEADERS
|
|
266
302
|
]
|
|
267
|
-
|
|
303
|
+
]
|
|
268
304
|
};
|
|
269
305
|
export {
|
|
270
306
|
env_exports as env,
|
package/dist/walkerOS.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$meta": {
|
|
3
3
|
"package": "@walkeros/server-destination-tiktok",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "3.4.0-next-1776749829492",
|
|
5
5
|
"type": "destination",
|
|
6
6
|
"platform": [
|
|
7
7
|
"server"
|
|
@@ -129,7 +129,7 @@
|
|
|
129
129
|
"group": "gr0up",
|
|
130
130
|
"count": 1,
|
|
131
131
|
"version": {
|
|
132
|
-
"source": "3.
|
|
132
|
+
"source": "3.4.0-next-1776749829492",
|
|
133
133
|
"tagging": 1
|
|
134
134
|
},
|
|
135
135
|
"source": {
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
"nested",
|
|
155
155
|
{
|
|
156
156
|
"condition": {
|
|
157
|
-
"$code": "e=>
|
|
157
|
+
"$code": "e=>k(e)&&\"product\"===e.entity"
|
|
158
158
|
},
|
|
159
159
|
"map": {
|
|
160
160
|
"content_id": "data.id",
|
|
@@ -171,35 +171,19 @@
|
|
|
171
171
|
}
|
|
172
172
|
}
|
|
173
173
|
},
|
|
174
|
-
"out":
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
174
|
+
"out": [
|
|
175
|
+
[
|
|
176
|
+
"sendServer",
|
|
177
|
+
"https://business-api.tiktok.com/open_api/v1.3/event/track/",
|
|
178
|
+
"{\"pixel_code\":\"PIXEL_CODE\",\"partner_name\":\"walkerOS\",\"data\":[{\"event\":\"AddToCart\",\"event_id\":\"1700000901000-gr0up-1\",\"timestamp\":\"2023-11-14T22:28:21.000Z\",\"context\":{\"page\":{\"url\":\"https://shop.example.com/products/running-shoes\"}},\"properties\":{\"content_type\":\"product\",\"value\":89.99,\"currency\":\"EUR\",\"contents\":[{\"content_id\":\"SKU-B2\",\"content_name\":\"Running Shoes\",\"quantity\":1,\"price\":89.99}]}}]}",
|
|
178
179
|
{
|
|
179
|
-
"
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
"context": {
|
|
183
|
-
"page": {
|
|
184
|
-
"url": "https://shop.example.com/products/running-shoes"
|
|
185
|
-
}
|
|
186
|
-
},
|
|
187
|
-
"properties": {
|
|
188
|
-
"content_type": "product",
|
|
189
|
-
"value": 89.99,
|
|
190
|
-
"currency": "EUR",
|
|
191
|
-
"contents": [
|
|
192
|
-
{
|
|
193
|
-
"content_id": "SKU-B2",
|
|
194
|
-
"content_name": "Running Shoes",
|
|
195
|
-
"quantity": 1,
|
|
196
|
-
"price": 89.99
|
|
197
|
-
}
|
|
198
|
-
]
|
|
180
|
+
"headers": {
|
|
181
|
+
"Access-Token": "s3cr3t",
|
|
182
|
+
"Content-Type": "application/json"
|
|
199
183
|
}
|
|
200
184
|
}
|
|
201
185
|
]
|
|
202
|
-
|
|
186
|
+
]
|
|
203
187
|
},
|
|
204
188
|
"lead": {
|
|
205
189
|
"in": {
|
|
@@ -249,7 +233,7 @@
|
|
|
249
233
|
"group": "gr0up",
|
|
250
234
|
"count": 1,
|
|
251
235
|
"version": {
|
|
252
|
-
"source": "3.
|
|
236
|
+
"source": "3.4.0-next-1776749829492",
|
|
253
237
|
"tagging": 1
|
|
254
238
|
},
|
|
255
239
|
"source": {
|
|
@@ -270,26 +254,19 @@
|
|
|
270
254
|
}
|
|
271
255
|
}
|
|
272
256
|
},
|
|
273
|
-
"out":
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
257
|
+
"out": [
|
|
258
|
+
[
|
|
259
|
+
"sendServer",
|
|
260
|
+
"https://business-api.tiktok.com/open_api/v1.3/event/track/",
|
|
261
|
+
"{\"pixel_code\":\"PIXEL_CODE\",\"partner_name\":\"walkerOS\",\"data\":[{\"event\":\"SubmitForm\",\"event_id\":\"1700000903000-gr0up-1\",\"timestamp\":\"2023-11-14T22:28:23.000Z\",\"context\":{\"user\":{\"email\":\"b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514\"},\"page\":{\"url\":\"https://example.com/contact\"}},\"properties\":{}}]}",
|
|
277
262
|
{
|
|
278
|
-
"
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
"user": {
|
|
283
|
-
"email": "user@example.com"
|
|
284
|
-
},
|
|
285
|
-
"page": {
|
|
286
|
-
"url": "https://example.com/contact"
|
|
287
|
-
}
|
|
288
|
-
},
|
|
289
|
-
"properties": {}
|
|
263
|
+
"headers": {
|
|
264
|
+
"Access-Token": "s3cr3t",
|
|
265
|
+
"Content-Type": "application/json"
|
|
266
|
+
}
|
|
290
267
|
}
|
|
291
268
|
]
|
|
292
|
-
|
|
269
|
+
]
|
|
293
270
|
},
|
|
294
271
|
"pageView": {
|
|
295
272
|
"in": {
|
|
@@ -346,7 +323,7 @@
|
|
|
346
323
|
"group": "gr0up",
|
|
347
324
|
"count": 1,
|
|
348
325
|
"version": {
|
|
349
|
-
"source": "3.
|
|
326
|
+
"source": "3.4.0-next-1776749829492",
|
|
350
327
|
"tagging": 1
|
|
351
328
|
},
|
|
352
329
|
"source": {
|
|
@@ -355,23 +332,19 @@
|
|
|
355
332
|
"previous_id": ""
|
|
356
333
|
}
|
|
357
334
|
},
|
|
358
|
-
"out":
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
335
|
+
"out": [
|
|
336
|
+
[
|
|
337
|
+
"sendServer",
|
|
338
|
+
"https://business-api.tiktok.com/open_api/v1.3/event/track/",
|
|
339
|
+
"{\"pixel_code\":\"PIXEL_CODE\",\"partner_name\":\"walkerOS\",\"data\":[{\"event\":\"page view\",\"event_id\":\"1700000902000-gr0up-1\",\"timestamp\":\"2023-11-14T22:28:22.000Z\",\"context\":{\"page\":{\"url\":\"https://example.com/docs/\"}},\"properties\":{}}]}",
|
|
362
340
|
{
|
|
363
|
-
"
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
"page": {
|
|
368
|
-
"url": "https://example.com/docs/"
|
|
369
|
-
}
|
|
370
|
-
},
|
|
371
|
-
"properties": {}
|
|
341
|
+
"headers": {
|
|
342
|
+
"Access-Token": "s3cr3t",
|
|
343
|
+
"Content-Type": "application/json"
|
|
344
|
+
}
|
|
372
345
|
}
|
|
373
346
|
]
|
|
374
|
-
|
|
347
|
+
]
|
|
375
348
|
},
|
|
376
349
|
"purchase": {
|
|
377
350
|
"in": {
|
|
@@ -420,7 +393,7 @@
|
|
|
420
393
|
"group": "gr0up",
|
|
421
394
|
"count": 1,
|
|
422
395
|
"version": {
|
|
423
|
-
"source": "3.
|
|
396
|
+
"source": "3.4.0-next-1776749829492",
|
|
424
397
|
"tagging": 1
|
|
425
398
|
},
|
|
426
399
|
"source": {
|
|
@@ -447,7 +420,7 @@
|
|
|
447
420
|
"nested",
|
|
448
421
|
{
|
|
449
422
|
"condition": {
|
|
450
|
-
"$code": "e=>
|
|
423
|
+
"$code": "e=>k(e)&&\"product\"===e.entity"
|
|
451
424
|
},
|
|
452
425
|
"map": {
|
|
453
426
|
"content_id": "data.id",
|
|
@@ -469,39 +442,19 @@
|
|
|
469
442
|
}
|
|
470
443
|
}
|
|
471
444
|
},
|
|
472
|
-
"out":
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
445
|
+
"out": [
|
|
446
|
+
[
|
|
447
|
+
"sendServer",
|
|
448
|
+
"https://business-api.tiktok.com/open_api/v1.3/event/track/",
|
|
449
|
+
"{\"pixel_code\":\"PIXEL_CODE\",\"partner_name\":\"walkerOS\",\"data\":[{\"event\":\"CompletePayment\",\"event_id\":\"1700000900000-gr0up-1\",\"timestamp\":\"2023-11-14T22:28:20.000Z\",\"context\":{\"user\":{\"external_id\":\"fcdec6df4d44dbc637c7c5b58efface52a7f8a88535423430255be0bb89bedd8\"},\"page\":{\"url\":\"https://shop.example.com/checkout/complete\"}},\"properties\":{\"value\":249.99,\"currency\":\"EUR\",\"order_id\":\"ORD-300\",\"content_type\":\"product\",\"contents\":[{\"content_id\":\"SKU-A1\",\"content_name\":\"Widget Pro\",\"quantity\":2,\"price\":124.99}]}}]}",
|
|
476
450
|
{
|
|
477
|
-
"
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
"context": {
|
|
481
|
-
"user": {
|
|
482
|
-
"external_id": "user-123"
|
|
483
|
-
},
|
|
484
|
-
"page": {
|
|
485
|
-
"url": "https://shop.example.com/checkout/complete"
|
|
486
|
-
}
|
|
487
|
-
},
|
|
488
|
-
"properties": {
|
|
489
|
-
"value": 249.99,
|
|
490
|
-
"currency": "EUR",
|
|
491
|
-
"order_id": "ORD-300",
|
|
492
|
-
"content_type": "product",
|
|
493
|
-
"contents": [
|
|
494
|
-
{
|
|
495
|
-
"content_id": "SKU-A1",
|
|
496
|
-
"content_name": "Widget Pro",
|
|
497
|
-
"quantity": 2,
|
|
498
|
-
"price": 124.99
|
|
499
|
-
}
|
|
500
|
-
]
|
|
451
|
+
"headers": {
|
|
452
|
+
"Access-Token": "s3cr3t",
|
|
453
|
+
"Content-Type": "application/json"
|
|
501
454
|
}
|
|
502
455
|
}
|
|
503
456
|
]
|
|
504
|
-
|
|
457
|
+
]
|
|
505
458
|
}
|
|
506
459
|
}
|
|
507
460
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@walkeros/server-destination-tiktok",
|
|
3
3
|
"description": "TikTok Events API server destination for walkerOS",
|
|
4
|
-
"version": "3.
|
|
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.
|
|
38
|
-
"@walkeros/server-core": "3.
|
|
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.
|
|
41
|
+
"@walkeros/collector": "3.4.0-next-1776749829492"
|
|
42
42
|
},
|
|
43
43
|
"repository": {
|
|
44
44
|
"url": "git+https://github.com/elbwalker/walkerOS.git",
|