@etohq/utils 1.5.1-alpha.2 → 1.5.1-alpha.4

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 (262) hide show
  1. package/dist/access-link/case-sensitivity.d.ts +14 -0
  2. package/dist/access-link/case-sensitivity.d.ts.map +1 -0
  3. package/dist/access-link/case-sensitivity.js +57 -0
  4. package/dist/access-link/case-sensitivity.js.map +1 -0
  5. package/dist/access-link/check-if-key-exists.d.ts +7 -0
  6. package/dist/access-link/check-if-key-exists.d.ts.map +1 -0
  7. package/dist/access-link/check-if-key-exists.js +36 -0
  8. package/dist/access-link/check-if-key-exists.js.map +1 -0
  9. package/dist/access-link/index.d.ts +11 -0
  10. package/dist/access-link/index.d.ts.map +1 -0
  11. package/dist/access-link/index.js +27 -0
  12. package/dist/access-link/index.js.map +1 -0
  13. package/dist/access-link/key-checks.d.ts +12 -0
  14. package/dist/access-link/key-checks.d.ts.map +1 -0
  15. package/dist/access-link/key-checks.js +78 -0
  16. package/dist/access-link/key-checks.js.map +1 -0
  17. package/dist/access-link/link-resolution.d.ts +26 -0
  18. package/dist/access-link/link-resolution.d.ts.map +1 -0
  19. package/dist/access-link/link-resolution.js +111 -0
  20. package/dist/access-link/link-resolution.js.map +1 -0
  21. package/dist/access-link/link-utils.d.ts +23 -0
  22. package/dist/access-link/link-utils.d.ts.map +1 -0
  23. package/dist/access-link/link-utils.js +61 -0
  24. package/dist/access-link/link-utils.js.map +1 -0
  25. package/dist/access-link/process-key.d.ts +5 -0
  26. package/dist/access-link/process-key.d.ts.map +1 -0
  27. package/dist/access-link/process-key.js +58 -0
  28. package/dist/access-link/process-key.js.map +1 -0
  29. package/dist/access-link/process-utils.d.ts +19 -0
  30. package/dist/access-link/process-utils.d.ts.map +1 -0
  31. package/dist/access-link/process-utils.js +52 -0
  32. package/dist/access-link/process-utils.js.map +1 -0
  33. package/dist/access-link/transform-link.d.ts +47 -0
  34. package/dist/access-link/transform-link.d.ts.map +1 -0
  35. package/dist/access-link/transform-link.js +25 -0
  36. package/dist/access-link/transform-link.js.map +1 -0
  37. package/dist/access-link/url-detection.d.ts +10 -0
  38. package/dist/access-link/url-detection.d.ts.map +1 -0
  39. package/dist/access-link/url-detection.js +63 -0
  40. package/dist/access-link/url-detection.js.map +1 -0
  41. package/dist/access-link/validation-utils.d.ts +23 -0
  42. package/dist/access-link/validation-utils.d.ts.map +1 -0
  43. package/dist/access-link/validation-utils.js +57 -0
  44. package/dist/access-link/validation-utils.js.map +1 -0
  45. package/dist/analytics/detect-bot.d.ts +2 -0
  46. package/dist/analytics/detect-bot.d.ts.map +1 -0
  47. package/dist/analytics/detect-bot.js +21 -0
  48. package/dist/analytics/detect-bot.js.map +1 -0
  49. package/dist/analytics/detect-qr.d.ts +2 -0
  50. package/dist/analytics/detect-qr.d.ts.map +1 -0
  51. package/dist/analytics/detect-qr.js +10 -0
  52. package/dist/analytics/detect-qr.js.map +1 -0
  53. package/dist/analytics/get-click-event.d.ts +8 -0
  54. package/dist/analytics/get-click-event.d.ts.map +1 -0
  55. package/dist/analytics/get-click-event.js +24 -0
  56. package/dist/analytics/get-click-event.js.map +1 -0
  57. package/dist/analytics/get-geolocation.d.ts +12 -0
  58. package/dist/analytics/get-geolocation.d.ts.map +1 -0
  59. package/dist/analytics/get-geolocation.js +51 -0
  60. package/dist/analytics/get-geolocation.js.map +1 -0
  61. package/dist/analytics/get-grant-event.d.ts +8 -0
  62. package/dist/analytics/get-grant-event.d.ts.map +1 -0
  63. package/dist/analytics/get-grant-event.js +24 -0
  64. package/dist/analytics/get-grant-event.js.map +1 -0
  65. package/dist/analytics/get-import-error-logs.d.ts +17 -0
  66. package/dist/analytics/get-import-error-logs.d.ts.map +1 -0
  67. package/dist/analytics/get-import-error-logs.js +23 -0
  68. package/dist/analytics/get-import-error-logs.js.map +1 -0
  69. package/dist/analytics/get-lead-events.d.ts +17 -0
  70. package/dist/analytics/get-lead-events.d.ts.map +1 -0
  71. package/dist/analytics/get-lead-events.js +17 -0
  72. package/dist/analytics/get-lead-events.js.map +1 -0
  73. package/dist/analytics/get-webhook-events.d.ts +17 -0
  74. package/dist/analytics/get-webhook-events.d.ts.map +1 -0
  75. package/dist/analytics/get-webhook-events.js +22 -0
  76. package/dist/analytics/get-webhook-events.js.map +1 -0
  77. package/dist/analytics/index.d.ts +18 -0
  78. package/dist/analytics/index.d.ts.map +1 -1
  79. package/dist/analytics/index.js +18 -0
  80. package/dist/analytics/index.js.map +1 -1
  81. package/dist/analytics/log-conversion-events.d.ts +6 -0
  82. package/dist/analytics/log-conversion-events.d.ts.map +1 -0
  83. package/dist/analytics/log-conversion-events.js +20 -0
  84. package/dist/analytics/log-conversion-events.js.map +1 -0
  85. package/dist/analytics/log-import-error.d.ts +6 -0
  86. package/dist/analytics/log-import-error.d.ts.map +1 -0
  87. package/dist/analytics/log-import-error.js +18 -0
  88. package/dist/analytics/log-import-error.js.map +1 -0
  89. package/dist/analytics/parse-user-agent.d.ts +13 -0
  90. package/dist/analytics/parse-user-agent.d.ts.map +1 -0
  91. package/dist/analytics/parse-user-agent.js +174 -0
  92. package/dist/analytics/parse-user-agent.js.map +1 -0
  93. package/dist/analytics/record-approval.d.ts +56 -0
  94. package/dist/analytics/record-approval.d.ts.map +1 -0
  95. package/dist/analytics/record-approval.js +32 -0
  96. package/dist/analytics/record-approval.js.map +1 -0
  97. package/dist/analytics/record-click.d.ts +32 -0
  98. package/dist/analytics/record-click.d.ts.map +1 -0
  99. package/dist/analytics/record-click.js +136 -0
  100. package/dist/analytics/record-click.js.map +1 -0
  101. package/dist/analytics/record-lead.d.ts +24 -0
  102. package/dist/analytics/record-lead.d.ts.map +1 -0
  103. package/dist/analytics/record-lead.js +72 -0
  104. package/dist/analytics/record-lead.js.map +1 -0
  105. package/dist/analytics/record-link.d.ts +106 -0
  106. package/dist/analytics/record-link.d.ts.map +1 -0
  107. package/dist/analytics/record-link.js +78 -0
  108. package/dist/analytics/record-link.js.map +1 -0
  109. package/dist/analytics/record-sale.d.ts +10 -0
  110. package/dist/analytics/record-sale.d.ts.map +1 -0
  111. package/dist/analytics/record-sale.js +35 -0
  112. package/dist/analytics/record-sale.js.map +1 -0
  113. package/dist/analytics/record-webhook-event.d.ts +26 -0
  114. package/dist/analytics/record-webhook-event.d.ts.map +1 -0
  115. package/dist/analytics/record-webhook-event.js +22 -0
  116. package/dist/analytics/record-webhook-event.js.map +1 -0
  117. package/dist/analytics/schemas.d.ts +257 -0
  118. package/dist/analytics/schemas.d.ts.map +1 -0
  119. package/dist/analytics/schemas.js +99 -0
  120. package/dist/analytics/schemas.js.map +1 -0
  121. package/dist/analytics/tinybird-client.d.ts +6 -0
  122. package/dist/analytics/tinybird-client.d.ts.map +1 -0
  123. package/dist/analytics/tinybird-client.js +11 -0
  124. package/dist/analytics/tinybird-client.js.map +1 -0
  125. package/dist/common/constants.d.ts +24 -0
  126. package/dist/common/constants.d.ts.map +1 -0
  127. package/dist/common/constants.js +196 -0
  128. package/dist/common/constants.js.map +1 -0
  129. package/dist/common/domains.d.ts +8 -0
  130. package/dist/common/domains.d.ts.map +1 -0
  131. package/dist/common/domains.js +88 -0
  132. package/dist/common/domains.js.map +1 -0
  133. package/dist/common/dynamic-import.d.ts.map +1 -1
  134. package/dist/common/dynamic-import.js +24 -1
  135. package/dist/common/dynamic-import.js.map +1 -1
  136. package/dist/common/fetch-with-retry.d.ts +6 -0
  137. package/dist/common/fetch-with-retry.d.ts.map +1 -0
  138. package/dist/common/fetch-with-retry.js +63 -0
  139. package/dist/common/fetch-with-retry.js.map +1 -0
  140. package/dist/common/get-identity-hash.d.ts +2 -0
  141. package/dist/common/get-identity-hash.d.ts.map +1 -0
  142. package/dist/common/get-identity-hash.js +19 -0
  143. package/dist/common/get-identity-hash.js.map +1 -0
  144. package/dist/common/index.d.ts +3 -0
  145. package/dist/common/index.d.ts.map +1 -1
  146. package/dist/common/index.js +3 -0
  147. package/dist/common/index.js.map +1 -1
  148. package/dist/common/is-valid-url.d.ts +2 -0
  149. package/dist/common/is-valid-url.d.ts.map +1 -0
  150. package/dist/common/is-valid-url.js +14 -0
  151. package/dist/common/is-valid-url.js.map +1 -0
  152. package/dist/common/reserved-slugs.d.ts +7 -0
  153. package/dist/common/reserved-slugs.d.ts.map +1 -0
  154. package/dist/common/reserved-slugs.js +64 -0
  155. package/dist/common/reserved-slugs.js.map +1 -0
  156. package/dist/common/to-snake-case.d.ts +5 -0
  157. package/dist/common/to-snake-case.d.ts.map +1 -0
  158. package/dist/common/to-snake-case.js +14 -0
  159. package/dist/common/to-snake-case.js.map +1 -0
  160. package/dist/dml/entity-builder.d.ts +68 -0
  161. package/dist/dml/entity-builder.d.ts.map +1 -1
  162. package/dist/dml/entity-builder.js +76 -0
  163. package/dist/dml/entity-builder.js.map +1 -1
  164. package/dist/dml/helpers/entity-builder/define-property.d.ts.map +1 -1
  165. package/dist/dml/helpers/entity-builder/define-property.js +77 -0
  166. package/dist/dml/helpers/entity-builder/define-property.js.map +1 -1
  167. package/dist/dml/helpers/mikro-orm/custom-type/geo-json-geometry.d.ts +10 -0
  168. package/dist/dml/helpers/mikro-orm/custom-type/geo-json-geometry.d.ts.map +1 -0
  169. package/dist/dml/helpers/mikro-orm/custom-type/geo-json-geometry.js +31 -0
  170. package/dist/dml/helpers/mikro-orm/custom-type/geo-json-geometry.js.map +1 -0
  171. package/dist/dml/properties/enum.d.ts.map +1 -1
  172. package/dist/dml/properties/enum.js +0 -1
  173. package/dist/dml/properties/enum.js.map +1 -1
  174. package/dist/dml/properties/geometry.d.ts +8 -0
  175. package/dist/dml/properties/geometry.d.ts.map +1 -0
  176. package/dist/dml/properties/geometry.js +14 -0
  177. package/dist/dml/properties/geometry.js.map +1 -0
  178. package/dist/dml/properties/index.d.ts +4 -0
  179. package/dist/dml/properties/index.d.ts.map +1 -1
  180. package/dist/dml/properties/index.js +4 -0
  181. package/dist/dml/properties/index.js.map +1 -1
  182. package/dist/dml/properties/multipolygon.d.ts +8 -0
  183. package/dist/dml/properties/multipolygon.d.ts.map +1 -0
  184. package/dist/dml/properties/multipolygon.js +14 -0
  185. package/dist/dml/properties/multipolygon.js.map +1 -0
  186. package/dist/dml/properties/point.d.ts +8 -0
  187. package/dist/dml/properties/point.d.ts.map +1 -0
  188. package/dist/dml/properties/point.js +14 -0
  189. package/dist/dml/properties/point.js.map +1 -0
  190. package/dist/dml/properties/polygon.d.ts +8 -0
  191. package/dist/dml/properties/polygon.d.ts.map +1 -0
  192. package/dist/dml/properties/polygon.js +14 -0
  193. package/dist/dml/properties/polygon.js.map +1 -0
  194. package/dist/index.d.ts +2 -0
  195. package/dist/index.d.ts.map +1 -1
  196. package/dist/index.js +2 -0
  197. package/dist/index.js.map +1 -1
  198. package/dist/modules-sdk/build-query.d.ts.map +1 -1
  199. package/dist/modules-sdk/build-query.js +3 -1
  200. package/dist/modules-sdk/build-query.js.map +1 -1
  201. package/dist/modules-sdk/definition.d.ts +18 -0
  202. package/dist/modules-sdk/definition.d.ts.map +1 -1
  203. package/dist/modules-sdk/definition.js +12 -0
  204. package/dist/modules-sdk/definition.js.map +1 -1
  205. package/dist/modules-sdk/spatial-query-processor.d.ts +2 -0
  206. package/dist/modules-sdk/spatial-query-processor.d.ts.map +1 -0
  207. package/dist/modules-sdk/spatial-query-processor.js +105 -0
  208. package/dist/modules-sdk/spatial-query-processor.js.map +1 -0
  209. package/dist/permissions/ability.d.ts +39 -0
  210. package/dist/permissions/ability.d.ts.map +1 -0
  211. package/dist/permissions/ability.js +51 -0
  212. package/dist/permissions/ability.js.map +1 -0
  213. package/dist/permissions/context-builder.d.ts +24 -0
  214. package/dist/permissions/context-builder.d.ts.map +1 -0
  215. package/dist/permissions/context-builder.js +30 -0
  216. package/dist/permissions/context-builder.js.map +1 -0
  217. package/dist/permissions/index.d.ts +4 -0
  218. package/dist/permissions/index.d.ts.map +1 -0
  219. package/dist/permissions/index.js +20 -0
  220. package/dist/permissions/index.js.map +1 -0
  221. package/dist/permissions/permission-service.d.ts +8 -0
  222. package/dist/permissions/permission-service.d.ts.map +1 -0
  223. package/dist/permissions/permission-service.js +20 -0
  224. package/dist/permissions/permission-service.js.map +1 -0
  225. package/dist/permissions/types.d.ts +17 -0
  226. package/dist/permissions/types.d.ts.map +1 -0
  227. package/dist/permissions/types.js +11 -0
  228. package/dist/permissions/types.js.map +1 -0
  229. package/dist/tsconfig.tsbuildinfo +1 -1
  230. package/dist/zod/schemas/approvals.d.ts +91 -0
  231. package/dist/zod/schemas/approvals.d.ts.map +1 -0
  232. package/dist/zod/schemas/approvals.js +38 -0
  233. package/dist/zod/schemas/approvals.js.map +1 -0
  234. package/dist/zod/schemas/clicks.d.ts +394 -0
  235. package/dist/zod/schemas/clicks.d.ts.map +1 -0
  236. package/dist/zod/schemas/clicks.js +85 -0
  237. package/dist/zod/schemas/clicks.js.map +1 -0
  238. package/dist/zod/schemas/leads.d.ts +423 -0
  239. package/dist/zod/schemas/leads.d.ts.map +1 -0
  240. package/dist/zod/schemas/leads.js +58 -0
  241. package/dist/zod/schemas/leads.js.map +1 -0
  242. package/package.json +8 -2
  243. package/dist/feature-flags/eto-v2.d.ts +0 -3
  244. package/dist/feature-flags/eto-v2.d.ts.map +0 -1
  245. package/dist/feature-flags/eto-v2.js +0 -10
  246. package/dist/feature-flags/eto-v2.js.map +0 -1
  247. package/dist/feature-flags/order-editing.d.ts +0 -3
  248. package/dist/feature-flags/order-editing.d.ts.map +0 -1
  249. package/dist/feature-flags/order-editing.js +0 -10
  250. package/dist/feature-flags/order-editing.js.map +0 -1
  251. package/dist/feature-flags/product-categories.d.ts +0 -3
  252. package/dist/feature-flags/product-categories.d.ts.map +0 -1
  253. package/dist/feature-flags/product-categories.js +0 -10
  254. package/dist/feature-flags/product-categories.js.map +0 -1
  255. package/dist/feature-flags/sales-channels.d.ts +0 -3
  256. package/dist/feature-flags/sales-channels.d.ts.map +0 -1
  257. package/dist/feature-flags/sales-channels.js +0 -10
  258. package/dist/feature-flags/sales-channels.js.map +0 -1
  259. package/dist/feature-flags/tax-inclusive-pricing.d.ts +0 -3
  260. package/dist/feature-flags/tax-inclusive-pricing.d.ts.map +0 -1
  261. package/dist/feature-flags/tax-inclusive-pricing.js +0 -10
  262. package/dist/feature-flags/tax-inclusive-pricing.js.map +0 -1
@@ -0,0 +1,17 @@
1
+ import { Tinybird } from "@chronark/zod-bird";
2
+ export declare function createGetWebhookEvents(tb: Tinybird): (params: any) => Promise<{
3
+ meta: {
4
+ name: string;
5
+ type: string;
6
+ }[];
7
+ rows?: number | undefined;
8
+ rows_before_limit_at_least?: number | undefined;
9
+ statistics?: {
10
+ elapsed?: number | undefined;
11
+ rows_read?: number | undefined;
12
+ bytes_read?: number | undefined;
13
+ } | undefined;
14
+ } & {
15
+ data: any[];
16
+ }>;
17
+ //# sourceMappingURL=get-webhook-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-webhook-events.d.ts","sourceRoot":"","sources":["../../src/analytics/get-webhook-events.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAS7C,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ;;;;;;;;eAWskB,CAAC;iBAAuC,CAAC;kBAAwC,CAAC;;;;GAD1sB"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createGetWebhookEvents = createGetWebhookEvents;
4
+ const zod_1 = require("zod");
5
+ const webhookEventSchemaTB = zod_1.z.object({
6
+ webhook_id: zod_1.z.string(),
7
+ event_type: zod_1.z.string(),
8
+ payload: zod_1.z.string(),
9
+ status: zod_1.z.string(),
10
+ });
11
+ function createGetWebhookEvents(tb) {
12
+ return tb.buildPipe({
13
+ pipe: "get_webhook_events",
14
+ // @ts-ignore
15
+ parameters: zod_1.z.object({
16
+ webhookId: zod_1.z.string(),
17
+ }),
18
+ // @ts-ignore
19
+ data: webhookEventSchemaTB,
20
+ });
21
+ }
22
+ //# sourceMappingURL=get-webhook-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-webhook-events.js","sourceRoot":"","sources":["../../src/analytics/get-webhook-events.ts"],"names":[],"mappings":";;AAUA,wDAUC;AApBD,6BAAuB;AAGvB,MAAM,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IACpC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;IACtB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;IACtB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAA;AAEF,SAAgB,sBAAsB,CAAC,EAAY;IACjD,OAAO,EAAE,CAAC,SAAS,CAAC;QAClB,IAAI,EAAE,oBAAoB;QAC1B,aAAa;QACb,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC;YACnB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;SACtB,CAAC;QACF,aAAa;QACb,IAAI,EAAE,oBAAoB;KAC3B,CAAC,CAAA;AACJ,CAAC"}
@@ -1,2 +1,20 @@
1
1
  export * from "./abstract-analytics-provider";
2
+ export * from "./tinybird-client";
3
+ export * from "./record-click";
4
+ export * from "./record-lead";
5
+ export * from "./record-sale";
6
+ export * from "./record-link";
7
+ export * from "./record-approval";
8
+ export * from "./get-click-event";
9
+ export * from "./get-grant-event";
10
+ export * from "./get-lead-events";
11
+ export * from "./get-import-error-logs";
12
+ export * from "./get-webhook-events";
13
+ export * from "./log-conversion-events";
14
+ export * from "./log-import-error";
15
+ export * from "./record-webhook-event";
16
+ export * from "./get-geolocation";
17
+ export * from "./detect-bot";
18
+ export * from "./detect-qr";
19
+ export * from "./parse-user-agent";
2
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAC7C,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA"}
@@ -15,4 +15,22 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./abstract-analytics-provider"), exports);
18
+ __exportStar(require("./tinybird-client"), exports);
19
+ __exportStar(require("./record-click"), exports);
20
+ __exportStar(require("./record-lead"), exports);
21
+ __exportStar(require("./record-sale"), exports);
22
+ __exportStar(require("./record-link"), exports);
23
+ __exportStar(require("./record-approval"), exports);
24
+ __exportStar(require("./get-click-event"), exports);
25
+ __exportStar(require("./get-grant-event"), exports);
26
+ __exportStar(require("./get-lead-events"), exports);
27
+ __exportStar(require("./get-import-error-logs"), exports);
28
+ __exportStar(require("./get-webhook-events"), exports);
29
+ __exportStar(require("./log-conversion-events"), exports);
30
+ __exportStar(require("./log-import-error"), exports);
31
+ __exportStar(require("./record-webhook-event"), exports);
32
+ __exportStar(require("./get-geolocation"), exports);
33
+ __exportStar(require("./detect-bot"), exports);
34
+ __exportStar(require("./detect-qr"), exports);
35
+ __exportStar(require("./parse-user-agent"), exports);
18
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA6C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA6C;AAC7C,oDAAiC;AACjC,iDAA8B;AAC9B,gDAA6B;AAC7B,gDAA6B;AAC7B,gDAA6B;AAC7B,oDAAiC;AACjC,oDAAiC;AACjC,oDAAiC;AACjC,oDAAiC;AACjC,0DAAuC;AACvC,uDAAoC;AACpC,0DAAuC;AACvC,qDAAkC;AAClC,yDAAsC;AACtC,oDAAiC;AACjC,+CAA4B;AAC5B,8CAA2B;AAC3B,qDAAkC"}
@@ -0,0 +1,6 @@
1
+ import { Tinybird } from "@chronark/zod-bird";
2
+ export declare function createLogConversionEvent(tb: Tinybird): (events: any) => Promise<{
3
+ successful_rows: number;
4
+ quarantined_rows: number;
5
+ }>;
6
+ //# sourceMappingURL=log-conversion-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-conversion-events.d.ts","sourceRoot":"","sources":["../../src/analytics/log-conversion-events.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAW7C,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,QAAQ;;;GAMpD"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createLogConversionEvent = createLogConversionEvent;
4
+ const zod_1 = require("zod");
5
+ const schema = zod_1.z.object({
6
+ project_id: zod_1.z.string(),
7
+ link_id: zod_1.z.string().default(""),
8
+ path: zod_1.z.string(),
9
+ body: zod_1.z.string().default(""),
10
+ error: zod_1.z.string().default(""),
11
+ });
12
+ // Log the conversion events for debugging purposes (following Dub's pattern)
13
+ function createLogConversionEvent(tb) {
14
+ return tb.buildIngestEndpoint({
15
+ datasource: "access_conversion_events_log",
16
+ // @ts-ignore
17
+ event: schema,
18
+ });
19
+ }
20
+ //# sourceMappingURL=log-conversion-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-conversion-events.js","sourceRoot":"","sources":["../../src/analytics/log-conversion-events.ts"],"names":[],"mappings":";;AAYA,4DAMC;AAlBD,6BAAuB;AAGvB,MAAM,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;IACtB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;IACtB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC9B,CAAC,CAAA;AAEF,6EAA6E;AAC7E,SAAgB,wBAAwB,CAAC,EAAY;IACnD,OAAO,EAAE,CAAC,mBAAmB,CAAC;QAC5B,UAAU,EAAE,8BAA8B;QAC1C,aAAa;QACb,KAAK,EAAE,MAAM;KACd,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Tinybird } from "@chronark/zod-bird";
2
+ export declare function createLogImportError(tb: Tinybird): (events: any) => Promise<{
3
+ successful_rows: number;
4
+ quarantined_rows: number;
5
+ }>;
6
+ //# sourceMappingURL=log-import-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-import-error.d.ts","sourceRoot":"","sources":["../../src/analytics/log-import-error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAS7C,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ;;;GAMhD"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createLogImportError = createLogImportError;
4
+ const zod_1 = require("zod");
5
+ const importErrorLogSchema = zod_1.z.object({
6
+ project_id: zod_1.z.string(),
7
+ import_id: zod_1.z.string(),
8
+ error: zod_1.z.string(),
9
+ context: zod_1.z.string().default(""),
10
+ });
11
+ function createLogImportError(tb) {
12
+ return tb.buildIngestEndpoint({
13
+ datasource: "access_import_error_logs",
14
+ // @ts-ignore
15
+ event: importErrorLogSchema,
16
+ });
17
+ }
18
+ //# sourceMappingURL=log-import-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-import-error.js","sourceRoot":"","sources":["../../src/analytics/log-import-error.ts"],"names":[],"mappings":";;AAUA,oDAMC;AAhBD,6BAAuB;AAGvB,MAAM,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IACpC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAChC,CAAC,CAAA;AAEF,SAAgB,oBAAoB,CAAC,EAAY;IAC/C,OAAO,EAAE,CAAC,mBAAmB,CAAC;QAC5B,UAAU,EAAE,0BAA0B;QACtC,aAAa;QACb,KAAK,EAAE,oBAAoB;KAC5B,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare function parseUserAgent(userAgent?: string): {
2
+ device: string;
3
+ vendor: string;
4
+ model: string;
5
+ browser: string;
6
+ version: string;
7
+ engine: string;
8
+ engineVersion: string;
9
+ os: string;
10
+ osVersion: string;
11
+ cpu: string;
12
+ };
13
+ //# sourceMappingURL=parse-user-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-user-agent.d.ts","sourceRoot":"","sources":["../../src/analytics/parse-user-agent.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM;;;;;;;;;;;EA+JhD"}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ // User agent parser mimicking Dub/recordClick output, covering device/vendor/model/browser/browser_version/engine/engine_version/os/os_version/cpu
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.parseUserAgent = parseUserAgent;
5
+ function parseUserAgent(userAgent) {
6
+ if (!userAgent) {
7
+ return {
8
+ device: "Unknown",
9
+ vendor: "Unknown",
10
+ model: "Unknown",
11
+ browser: "Unknown",
12
+ version: "Unknown",
13
+ engine: "Unknown",
14
+ engineVersion: "Unknown",
15
+ os: "Unknown",
16
+ osVersion: "Unknown",
17
+ cpu: "Unknown"
18
+ };
19
+ }
20
+ // Heuristics based UA parsing, best effort (expand later if needed)
21
+ const ua = userAgent;
22
+ // const uaLower = userAgent.toLowerCase()
23
+ let browser = "Unknown";
24
+ let version = "Unknown";
25
+ // Browser & version
26
+ if (/edg\//i.test(ua)) {
27
+ browser = "Edge";
28
+ version = (ua.match(/edg\/([\d.]+)/i) || [])[1] || "Unknown";
29
+ }
30
+ else if (/chrome|crios|crmo/i.test(ua)) {
31
+ browser = "Chrome";
32
+ version =
33
+ (ua.match(/chrome\/([\d.]+)/i) || ua.match(/crios\/([\d.]+)/i) || [])[1] ||
34
+ "Unknown";
35
+ }
36
+ else if (/firefox|fxios/i.test(ua)) {
37
+ browser = "Firefox";
38
+ version =
39
+ (ua.match(/firefox\/([\d.]+)/i) || ua.match(/fxios\/([\d.]+)/i) || [])[1] ||
40
+ "Unknown";
41
+ }
42
+ else if (/safari/i.test(ua) && !/chrome|crios|crmo|fxios|firefox|edg/i.test(ua)) {
43
+ browser = "Safari";
44
+ version = (ua.match(/version\/([\d.]+)/i) || [])[1] || "Unknown";
45
+ }
46
+ else if (/opr\//i.test(ua)) {
47
+ browser = "Opera";
48
+ version = (ua.match(/opr\/([\d.]+)/i) || [])[1] || "Unknown";
49
+ }
50
+ // Engine and version
51
+ let engine = "Unknown";
52
+ let engineVersion = "Unknown";
53
+ if (/webkit/i.test(ua)) {
54
+ engine = "WebKit";
55
+ engineVersion = (ua.match(/applewebkit\/([\d.]+)/i) || [])[1] || "Unknown";
56
+ }
57
+ else if (/gecko/i.test(ua) && !/webkit/i.test(ua)) {
58
+ engine = "Gecko";
59
+ engineVersion = (ua.match(/gecko\/([\d.]+)/i) || [])[1] || "Unknown";
60
+ }
61
+ else if (/trident/i.test(ua)) {
62
+ engine = "Trident";
63
+ engineVersion = (ua.match(/trident\/([\d.]+)/i) || [])[1] || "Unknown";
64
+ }
65
+ else if (/blink/i.test(ua)) {
66
+ engine = "Blink";
67
+ engineVersion = "Unknown";
68
+ }
69
+ // OS and version
70
+ let os = "Unknown";
71
+ let osVersion = "Unknown";
72
+ if (/windows nt/i.test(ua)) {
73
+ os = "Windows";
74
+ osVersion = (ua.match(/windows nt ([\d.]+)/i) || [])[1] || "Unknown";
75
+ }
76
+ else if (/android/i.test(ua)) {
77
+ os = "Android";
78
+ osVersion = (ua.match(/android\s([\d.]+)/i) || [])[1] || "Unknown";
79
+ }
80
+ else if (/iphone os/i.test(ua)) {
81
+ os = "iOS";
82
+ osVersion = (ua.match(/iphone os\s([\d_]+)/i) || [])[1]?.replace(/_/g, ".") || "Unknown";
83
+ }
84
+ else if (/ipad; cpu os/i.test(ua)) {
85
+ os = "iOS";
86
+ osVersion = (ua.match(/cpu os\s([\d_]+)/i) || [])[1]?.replace(/_/g, ".") || "Unknown";
87
+ }
88
+ else if (/mac os x/i.test(ua)) {
89
+ os = "macOS";
90
+ osVersion = (ua.match(/mac os x\s([\d_]+)/i) || [])[1]?.replace(/_/g, ".") || "Unknown";
91
+ }
92
+ else if (/linux/i.test(ua)) {
93
+ os = "Linux";
94
+ osVersion = "Unknown";
95
+ }
96
+ // Device type/model/vendor
97
+ let device = "Desktop";
98
+ let vendor = "Unknown";
99
+ let model = "Unknown";
100
+ // Tablets
101
+ if (/ipad/i.test(ua)) {
102
+ device = "Tablet";
103
+ vendor = "Apple";
104
+ model = "iPad";
105
+ }
106
+ else if (/tablet/i.test(ua)) {
107
+ device = "Tablet";
108
+ model = "Tablet";
109
+ }
110
+ // Phones
111
+ else if (/mobile/i.test(ua) && /iphone/i.test(ua)) {
112
+ device = "Mobile";
113
+ vendor = "Apple";
114
+ model = "iPhone";
115
+ }
116
+ else if (/mobile/i.test(ua) && /android/i.test(ua)) {
117
+ device = "Mobile";
118
+ vendor = "Android";
119
+ const m = ua.match(/android.*;\s*([^;)]*)/i);
120
+ model = m ? m[1].trim() : "Android";
121
+ }
122
+ else if (/mobile/i.test(ua)) {
123
+ device = "Mobile";
124
+ model = "Mobile";
125
+ }
126
+ // Desktop or fallback
127
+ else if (/macintosh/i.test(ua)) {
128
+ device = "Desktop";
129
+ vendor = "Apple";
130
+ model = "Mac";
131
+ }
132
+ else if (/windows/i.test(ua)) {
133
+ device = "Desktop";
134
+ vendor = "Microsoft";
135
+ model = "PC";
136
+ }
137
+ else if (/linux/i.test(ua)) {
138
+ device = "Desktop";
139
+ vendor = "Linux";
140
+ model = "PC";
141
+ }
142
+ // Try to extract more vendor/model from common Android patterns (optional, best-effort)
143
+ if (vendor === "Android" && model !== "Android") {
144
+ // Many Androids: "Build/{model}" or other variants
145
+ const build = ua.match(/;\s?([a-z0-9\s\-]+)\s?build\//i);
146
+ if (build && build[1]) {
147
+ model = build[1].trim();
148
+ }
149
+ }
150
+ // CPU architecture
151
+ let cpu = "Unknown";
152
+ if (/arm|aarch64/i.test(ua)) {
153
+ cpu = "ARM";
154
+ }
155
+ else if (/x86_64|win64|amd64|wow64/i.test(ua)) {
156
+ cpu = "x86_64";
157
+ }
158
+ else if (/i[3456]86/i.test(ua)) {
159
+ cpu = "x86";
160
+ }
161
+ return {
162
+ device,
163
+ vendor,
164
+ model,
165
+ browser,
166
+ version,
167
+ engine,
168
+ engineVersion,
169
+ os,
170
+ osVersion,
171
+ cpu
172
+ };
173
+ }
174
+ //# sourceMappingURL=parse-user-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-user-agent.js","sourceRoot":"","sources":["../../src/analytics/parse-user-agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { z } from "zod";
2
+ import { Tinybird } from "@chronark/zod-bird";
3
+ export declare const approvalEventSchemaTB: z.ZodObject<{
4
+ approval_id: z.ZodString;
5
+ link_id: z.ZodString;
6
+ requester_id: z.ZodString;
7
+ approver_id: z.ZodEffects<z.ZodNullable<z.ZodString>, string, string | null>;
8
+ resource_type: z.ZodString;
9
+ resource_id: z.ZodString;
10
+ decision: z.ZodEnum<["approve", "reject", "pending"]>;
11
+ requested_at: z.ZodEffects<z.ZodDate, string, Date>;
12
+ processed_at: z.ZodEffects<z.ZodNullable<z.ZodDate>, string, Date | null>;
13
+ project_id: z.ZodEffects<z.ZodNullable<z.ZodString>, string, string | null>;
14
+ ip: z.ZodEffects<z.ZodNullable<z.ZodString>, string, string | null>;
15
+ continent: z.ZodEffects<z.ZodNullable<z.ZodString>, string, string | null>;
16
+ country: z.ZodEffects<z.ZodNullable<z.ZodString>, string, string | null>;
17
+ region: z.ZodEffects<z.ZodNullable<z.ZodString>, string, string | null>;
18
+ city: z.ZodEffects<z.ZodNullable<z.ZodString>, string, string | null>;
19
+ }, "strip", z.ZodTypeAny, {
20
+ continent: string;
21
+ country: string;
22
+ region: string;
23
+ city: string;
24
+ ip: string;
25
+ link_id: string;
26
+ project_id: string;
27
+ approval_id: string;
28
+ requester_id: string;
29
+ approver_id: string;
30
+ resource_type: string;
31
+ resource_id: string;
32
+ decision: "approve" | "reject" | "pending";
33
+ requested_at: string;
34
+ processed_at: string;
35
+ }, {
36
+ continent: string | null;
37
+ country: string | null;
38
+ region: string | null;
39
+ city: string | null;
40
+ ip: string | null;
41
+ link_id: string;
42
+ project_id: string | null;
43
+ approval_id: string;
44
+ requester_id: string;
45
+ approver_id: string | null;
46
+ resource_type: string;
47
+ resource_id: string;
48
+ decision: "approve" | "reject" | "pending";
49
+ requested_at: Date;
50
+ processed_at: Date | null;
51
+ }>;
52
+ export declare function createRecordApproval(tb: Tinybird): (events: any) => Promise<{
53
+ successful_rows: number;
54
+ quarantined_rows: number;
55
+ }>;
56
+ //# sourceMappingURL=record-approval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-approval.d.ts","sourceRoot":"","sources":["../../src/analytics/record-approval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAG7C,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBhC,CAAA;AAEF,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ;;;GAOhD"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.approvalEventSchemaTB = void 0;
4
+ exports.createRecordApproval = createRecordApproval;
5
+ const zod_1 = require("zod");
6
+ // ETO approval workflow event schema (following Dub's pattern)
7
+ exports.approvalEventSchemaTB = zod_1.z.object({
8
+ approval_id: zod_1.z.string(),
9
+ link_id: zod_1.z.string(),
10
+ requester_id: zod_1.z.string(),
11
+ approver_id: zod_1.z.string().nullable().transform((v) => v || ""),
12
+ resource_type: zod_1.z.string(),
13
+ resource_id: zod_1.z.string(),
14
+ decision: zod_1.z.enum(["approve", "reject", "pending"]),
15
+ requested_at: zod_1.z.date().transform((v) => v.toISOString().replace("T", " ").replace("Z", "")),
16
+ processed_at: zod_1.z.date().nullable().transform((v) => v ? v.toISOString().replace("T", " ").replace("Z", "") : ""),
17
+ project_id: zod_1.z.string().nullable().transform((v) => v || ""),
18
+ ip: zod_1.z.string().nullable().transform((v) => v || ""),
19
+ continent: zod_1.z.string().nullable().transform((v) => v || ""),
20
+ country: zod_1.z.string().nullable().transform((v) => v || ""),
21
+ region: zod_1.z.string().nullable().transform((v) => v || ""),
22
+ city: zod_1.z.string().nullable().transform((v) => v || ""),
23
+ });
24
+ function createRecordApproval(tb) {
25
+ return tb.buildIngestEndpoint({
26
+ datasource: "access_approval_events",
27
+ // @ts-ignore
28
+ event: exports.approvalEventSchemaTB,
29
+ wait: true,
30
+ });
31
+ }
32
+ //# sourceMappingURL=record-approval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-approval.js","sourceRoot":"","sources":["../../src/analytics/record-approval.ts"],"names":[],"mappings":";;;AAsBA,oDAOC;AA7BD,6BAAuB;AAGvB,+DAA+D;AAClD,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IACnB,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE;IACxB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5D,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE;IACzB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,QAAQ,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAClD,YAAY,EAAE,OAAC,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC3F,YAAY,EAAE,OAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/G,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3D,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;CACtD,CAAC,CAAA;AAEF,SAAgB,oBAAoB,CAAC,EAAY;IAC/C,OAAO,EAAE,CAAC,mBAAmB,CAAC;QAC5B,UAAU,EAAE,wBAAwB;QACpC,aAAa;QACb,KAAK,EAAE,6BAAqB;QAC5B,IAAI,EAAE,IAAI;KACX,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Recording access link clicks with geo, ua, referer and timestamp data
3
+ * Following Dub's recordClick pattern exactly, adapted for ETO access links
4
+ **/
5
+ export declare function recordClick({ req, clickId, linkId, domain, key, url, userId, projectId, skipRatelimit, timestamp, referrer, trigger, eventName, tinybirdConfig, ip, userAgent, country, region, city, continent, latitude, longitude, }: {
6
+ req?: Request;
7
+ clickId?: string;
8
+ linkId: string;
9
+ domain: string;
10
+ key: string;
11
+ url?: string;
12
+ userId: string;
13
+ projectId?: string;
14
+ skipRatelimit?: boolean;
15
+ timestamp?: string;
16
+ referrer?: string;
17
+ trigger?: string;
18
+ eventName?: string;
19
+ tinybirdConfig: {
20
+ apiKey: string;
21
+ apiUrl: string;
22
+ };
23
+ ip?: string;
24
+ userAgent?: string;
25
+ country?: string;
26
+ region?: string;
27
+ city?: string;
28
+ continent?: string;
29
+ latitude?: string;
30
+ longitude?: string;
31
+ }): Promise<any>;
32
+ //# sourceMappingURL=record-click.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-click.d.ts","sourceRoot":"","sources":["../../src/analytics/record-click.ts"],"names":[],"mappings":"AAWA;;;IAGI;AACJ,wBAAsB,WAAW,CAAC,EAChC,GAAG,EACH,OAAO,EACP,MAAM,EACN,MAAM,EACN,GAAG,EACH,GAAG,EACH,MAAM,EACN,SAAS,EACT,aAAa,EACb,SAAS,EACT,QAAQ,EACR,OAAgB,EAChB,SAA0B,EAC1B,cAAc,EAEd,EAAE,EACF,SAAS,EACT,OAAO,EACP,MAAM,EACN,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,SAAS,GACV,EAAE;IACD,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAClD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,gBA2HA"}