@segment/analytics-browser-actions-facebook-conversions-api-web 1.0.1-staging-0104ee0bb.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/README.md +31 -0
  2. package/dist/cjs/generated-types.d.ts +5 -0
  3. package/dist/cjs/generated-types.js +3 -0
  4. package/dist/cjs/generated-types.js.map +1 -0
  5. package/dist/cjs/index.d.ts +11 -0
  6. package/dist/cjs/index.js +191 -0
  7. package/dist/cjs/index.js.map +1 -0
  8. package/dist/cjs/init-script.d.ts +2 -0
  9. package/dist/cjs/init-script.js +41 -0
  10. package/dist/cjs/init-script.js.map +1 -0
  11. package/dist/cjs/send/constants.d.ts +3 -0
  12. package/dist/cjs/send/constants.js +484 -0
  13. package/dist/cjs/send/constants.js.map +1 -0
  14. package/dist/cjs/send/depends-on.d.ts +5 -0
  15. package/dist/cjs/send/depends-on.js +46 -0
  16. package/dist/cjs/send/depends-on.js.map +1 -0
  17. package/dist/cjs/send/fields.d.ts +39 -0
  18. package/dist/cjs/send/fields.js +383 -0
  19. package/dist/cjs/send/fields.js.map +1 -0
  20. package/dist/cjs/send/generated-types.d.ts +43 -0
  21. package/dist/cjs/send/generated-types.js +3 -0
  22. package/dist/cjs/send/generated-types.js.map +1 -0
  23. package/dist/cjs/send/index.d.ts +6 -0
  24. package/dist/cjs/send/index.js +37 -0
  25. package/dist/cjs/send/index.js.map +1 -0
  26. package/dist/cjs/send/utils.d.ts +8 -0
  27. package/dist/cjs/send/utils.js +79 -0
  28. package/dist/cjs/send/utils.js.map +1 -0
  29. package/dist/cjs/send/validate.d.ts +2 -0
  30. package/dist/cjs/send/validate.js +12 -0
  31. package/dist/cjs/send/validate.js.map +1 -0
  32. package/dist/cjs/types.d.ts +132 -0
  33. package/dist/cjs/types.js +30 -0
  34. package/dist/cjs/types.js.map +1 -0
  35. package/dist/esm/generated-types.d.ts +5 -0
  36. package/dist/esm/generated-types.js +2 -0
  37. package/dist/esm/generated-types.js.map +1 -0
  38. package/dist/esm/index.d.ts +11 -0
  39. package/dist/esm/index.js +187 -0
  40. package/dist/esm/index.js.map +1 -0
  41. package/dist/esm/init-script.d.ts +2 -0
  42. package/dist/esm/init-script.js +38 -0
  43. package/dist/esm/init-script.js.map +1 -0
  44. package/dist/esm/send/constants.d.ts +3 -0
  45. package/dist/esm/send/constants.js +481 -0
  46. package/dist/esm/send/constants.js.map +1 -0
  47. package/dist/esm/send/depends-on.d.ts +5 -0
  48. package/dist/esm/send/depends-on.js +41 -0
  49. package/dist/esm/send/depends-on.js.map +1 -0
  50. package/dist/esm/send/fields.d.ts +39 -0
  51. package/dist/esm/send/fields.js +380 -0
  52. package/dist/esm/send/fields.js.map +1 -0
  53. package/dist/esm/send/generated-types.d.ts +43 -0
  54. package/dist/esm/send/generated-types.js +2 -0
  55. package/dist/esm/send/generated-types.js.map +1 -0
  56. package/dist/esm/send/index.d.ts +6 -0
  57. package/dist/esm/send/index.js +35 -0
  58. package/dist/esm/send/index.js.map +1 -0
  59. package/dist/esm/send/utils.d.ts +8 -0
  60. package/dist/esm/send/utils.js +74 -0
  61. package/dist/esm/send/utils.js.map +1 -0
  62. package/dist/esm/send/validate.d.ts +2 -0
  63. package/dist/esm/send/validate.js +9 -0
  64. package/dist/esm/send/validate.js.map +1 -0
  65. package/dist/esm/types.d.ts +132 -0
  66. package/dist/esm/types.js +27 -0
  67. package/dist/esm/types.js.map +1 -0
  68. package/dist/tsconfig.tsbuildinfo +1 -0
  69. package/package.json +25 -0
  70. package/src/generated-types.ts +16 -0
  71. package/src/index.ts +205 -0
  72. package/src/init-script.ts +40 -0
  73. package/src/send/constants.ts +482 -0
  74. package/src/send/depends-on.ts +47 -0
  75. package/src/send/fields.ts +400 -0
  76. package/src/send/generated-types.ts +150 -0
  77. package/src/send/index.ts +64 -0
  78. package/src/send/utils.ts +90 -0
  79. package/src/send/validate.ts +15 -0
  80. package/src/types.ts +117 -0
  81. package/tsconfig.json +9 -0
@@ -0,0 +1,15 @@
1
+ import { Payload } from './generated-types'
2
+
3
+ export function validate(payload: Payload) {
4
+ const {
5
+ event_config: { event_name },
6
+ content_ids,
7
+ contents
8
+ } = payload
9
+
10
+ if(['AddToCart', 'Purchase', 'ViewContent'].includes(event_name)){
11
+ if(content_ids?.length === 0 || contents?.length === 0) {
12
+ throw new Error(`content_ids or contents are required for event ${event_name}`)
13
+ }
14
+ }
15
+ }
package/src/types.ts ADDED
@@ -0,0 +1,117 @@
1
+
2
+ export type FBStandardEventType =
3
+ | 'PageView'
4
+ | 'ViewContent'
5
+ | 'Search'
6
+ | 'AddToCart'
7
+ | 'AddToWishlist'
8
+ | 'InitiateCheckout'
9
+ | 'AddPaymentInfo'
10
+ | 'Purchase'
11
+ | 'Lead'
12
+ | 'CompleteRegistration'
13
+ | 'Contact'
14
+ | 'CustomizeProduct'
15
+ | 'Donate'
16
+ | 'FindLocation'
17
+ | 'Schedule'
18
+ | 'StartTrial'
19
+ | 'SubmitApplication'
20
+ | 'Subscribe'
21
+
22
+ export type FBNonStandardEventType = 'CustomEvent'
23
+
24
+ export type FieldName =
25
+ | 'content_category'
26
+ | 'content_ids'
27
+ | 'content_name'
28
+ | 'content_type'
29
+ | 'contents'
30
+ | 'currency'
31
+ | 'num_items'
32
+ | 'predicted_ltv'
33
+ | 'status'
34
+ | 'value'
35
+
36
+ export type FBClient = {
37
+ (command: 'init', pixelId: string): void
38
+ (command: 'trackSingle', pixelId: string, event: FBStandardEventType, params?: FBEvent, options?: Options): void
39
+ (command: 'trackSingleCustom', pixelId: string, event: string, params?: FBEvent, options?: Options): void
40
+ (command: 'track', event: FBStandardEventType, params?: FBEvent): void
41
+ (command: 'trackCustom', event: string, params?: FBEvent): void
42
+ }
43
+
44
+ export type FBEvent = {
45
+ content_category?: string
46
+ content_ids?: string[]
47
+ content_name?: string
48
+ content_type?: string
49
+ contents?: {
50
+ id: string
51
+ quantity: number
52
+ item_price?: number
53
+ [k: string]: unknown
54
+ }[]
55
+ currency?: string
56
+ delivery_category?: string
57
+ num_items?: number
58
+ value?: number
59
+ custom_data?: {
60
+ [k: string]: unknown
61
+ }
62
+ }
63
+
64
+ export const ACTION_SOURCES = {
65
+ email: 'email',
66
+ website: 'website',
67
+ app: 'app',
68
+ phone_call: 'phone_call',
69
+ chat: 'chat',
70
+ physical_store: 'physical_store',
71
+ system_generated: 'system_generated',
72
+ other: 'other'
73
+ } as const
74
+
75
+ export type ActionSource = typeof ACTION_SOURCES[keyof typeof ACTION_SOURCES]
76
+
77
+ export type Options = {
78
+ eventID?: string
79
+ eventSourceUrl?: string
80
+ userData?: UserData
81
+ actionSource?: ActionSource
82
+ }
83
+
84
+ export type UserData = {
85
+ // Identifiers
86
+ external_id?: string // Unique user ID from your system (SHA-256)
87
+
88
+ em?: string // Email (SHA-256)
89
+ ph?: string // Phone number (SHA-256)
90
+ fn?: string // First name (SHA-256)
91
+ ln?: string // Last name (SHA-256)
92
+ ge?: string // Gender (SHA-256)
93
+ db?: string // Date of birth (SHA-256) - format: YYYYMMDD
94
+ ct?: string // City (SHA-256)
95
+ st?: string // State (SHA-256)
96
+ zp?: string // ZIP/Postal code (SHA-256)
97
+ country?: string // Country code (SHA-256)
98
+ }
99
+
100
+ export const LDU = {
101
+ Disabled: {key: 'Disabled', state: undefined, country: undefined},
102
+ GeolocationLogic: {key: 'GeolocationLogic', state: 0, country: 0},
103
+ California: {key: 'California', state: 1000, country: 1},
104
+ Colorado: {key: 'Colorado', state: 1001, country: 1},
105
+ Connecticut: {key: 'Connecticut', state: 1002, country: 1},
106
+ Florida: {key: 'Florida', state: 1003, country: 1},
107
+ Oregon: {key: 'Oregon', state: 1004, country: 1},
108
+ Texas: {key: 'Texas', state: 1005, country: 1},
109
+ Montana: {key: 'Montana', state: 1006, country: 1},
110
+ Delaware: {key: 'Delaware', state: 1007, country: 1},
111
+ Nebraska: {key: 'Nebraska', state: 1008, country: 1},
112
+ NewHampshire: {key: 'NewHampshire', state: 1009, country: 1},
113
+ NewJersey: {key: 'NewJersey', state: 1010, country: 1},
114
+ Minnesota: {key: 'Minnesota', state: 1011, country: 1}
115
+ } as const
116
+
117
+ export type LDU = typeof LDU[keyof typeof LDU]
package/tsconfig.json ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "../../tsconfig.build.json",
3
+ "compilerOptions": {
4
+ "rootDir": "./src",
5
+ "baseUrl": "."
6
+ },
7
+ "include": ["src"],
8
+ "exclude": ["dist", "**/__tests__"]
9
+ }