@etohq/utils 1.5.1-alpha.3 → 1.5.1-alpha.5

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 (346) 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/caching/index.d.ts +27 -0
  126. package/dist/caching/index.d.ts.map +1 -0
  127. package/dist/caching/index.js +157 -0
  128. package/dist/caching/index.js.map +1 -0
  129. package/dist/common/constants.d.ts +24 -0
  130. package/dist/common/constants.d.ts.map +1 -0
  131. package/dist/common/constants.js +196 -0
  132. package/dist/common/constants.js.map +1 -0
  133. package/dist/common/define-file-config.d.ts +8 -0
  134. package/dist/common/define-file-config.d.ts.map +1 -0
  135. package/dist/common/define-file-config.js +34 -0
  136. package/dist/common/define-file-config.js.map +1 -0
  137. package/dist/common/domains.d.ts +8 -0
  138. package/dist/common/domains.d.ts.map +1 -0
  139. package/dist/common/domains.js +88 -0
  140. package/dist/common/domains.js.map +1 -0
  141. package/dist/common/dynamic-import.d.ts.map +1 -1
  142. package/dist/common/dynamic-import.js +24 -1
  143. package/dist/common/dynamic-import.js.map +1 -1
  144. package/dist/common/errors.d.ts +2 -0
  145. package/dist/common/errors.d.ts.map +1 -1
  146. package/dist/common/errors.js +2 -0
  147. package/dist/common/errors.js.map +1 -1
  148. package/dist/common/execute-with-concurrency.d.ts +5 -0
  149. package/dist/common/execute-with-concurrency.d.ts.map +1 -0
  150. package/dist/common/execute-with-concurrency.js +26 -0
  151. package/dist/common/execute-with-concurrency.js.map +1 -0
  152. package/dist/common/fetch-with-retry.d.ts +6 -0
  153. package/dist/common/fetch-with-retry.d.ts.map +1 -0
  154. package/dist/common/fetch-with-retry.js +63 -0
  155. package/dist/common/fetch-with-retry.js.map +1 -0
  156. package/dist/common/get-identity-hash.d.ts +2 -0
  157. package/dist/common/get-identity-hash.d.ts.map +1 -0
  158. package/dist/common/get-identity-hash.js +19 -0
  159. package/dist/common/get-identity-hash.js.map +1 -0
  160. package/dist/common/index.d.ts +6 -0
  161. package/dist/common/index.d.ts.map +1 -1
  162. package/dist/common/index.js +6 -0
  163. package/dist/common/index.js.map +1 -1
  164. package/dist/common/is-valid-url.d.ts +2 -0
  165. package/dist/common/is-valid-url.d.ts.map +1 -0
  166. package/dist/common/is-valid-url.js +14 -0
  167. package/dist/common/is-valid-url.js.map +1 -0
  168. package/dist/common/parse-stringify-if-necessary.d.ts +5 -0
  169. package/dist/common/parse-stringify-if-necessary.d.ts.map +1 -0
  170. package/dist/common/parse-stringify-if-necessary.js +38 -0
  171. package/dist/common/parse-stringify-if-necessary.js.map +1 -0
  172. package/dist/common/reserved-slugs.d.ts +7 -0
  173. package/dist/common/reserved-slugs.d.ts.map +1 -0
  174. package/dist/common/reserved-slugs.js +64 -0
  175. package/dist/common/reserved-slugs.js.map +1 -0
  176. package/dist/common/to-snake-case.d.ts +5 -0
  177. package/dist/common/to-snake-case.d.ts.map +1 -0
  178. package/dist/common/to-snake-case.js +14 -0
  179. package/dist/common/to-snake-case.js.map +1 -0
  180. package/dist/dev-server/handlers/job-handler.d.ts +9 -0
  181. package/dist/dev-server/handlers/job-handler.d.ts.map +1 -0
  182. package/dist/dev-server/handlers/job-handler.js +33 -0
  183. package/dist/dev-server/handlers/job-handler.js.map +1 -0
  184. package/dist/dev-server/handlers/step-handler.d.ts +11 -0
  185. package/dist/dev-server/handlers/step-handler.d.ts.map +1 -0
  186. package/dist/dev-server/handlers/step-handler.js +39 -0
  187. package/dist/dev-server/handlers/step-handler.js.map +1 -0
  188. package/dist/dev-server/handlers/subscriber-handler.d.ts +9 -0
  189. package/dist/dev-server/handlers/subscriber-handler.d.ts.map +1 -0
  190. package/dist/dev-server/handlers/subscriber-handler.js +40 -0
  191. package/dist/dev-server/handlers/subscriber-handler.js.map +1 -0
  192. package/dist/dev-server/handlers/workflow-handler.d.ts +9 -0
  193. package/dist/dev-server/handlers/workflow-handler.d.ts.map +1 -0
  194. package/dist/dev-server/handlers/workflow-handler.js +30 -0
  195. package/dist/dev-server/handlers/workflow-handler.js.map +1 -0
  196. package/dist/dev-server/index.d.ts +8 -0
  197. package/dist/dev-server/index.d.ts.map +1 -0
  198. package/dist/dev-server/index.js +50 -0
  199. package/dist/dev-server/index.js.map +1 -0
  200. package/dist/dev-server/registry-helpers.d.ts +5 -0
  201. package/dist/dev-server/registry-helpers.d.ts.map +1 -0
  202. package/dist/dev-server/registry-helpers.js +23 -0
  203. package/dist/dev-server/registry-helpers.js.map +1 -0
  204. package/dist/dev-server/types.d.ts +44 -0
  205. package/dist/dev-server/types.d.ts.map +1 -0
  206. package/dist/dev-server/types.js +3 -0
  207. package/dist/dev-server/types.js.map +1 -0
  208. package/dist/dml/entity-builder.d.ts +68 -0
  209. package/dist/dml/entity-builder.d.ts.map +1 -1
  210. package/dist/dml/entity-builder.js +76 -0
  211. package/dist/dml/entity-builder.js.map +1 -1
  212. package/dist/dml/helpers/entity-builder/define-property.d.ts.map +1 -1
  213. package/dist/dml/helpers/entity-builder/define-property.js +77 -0
  214. package/dist/dml/helpers/entity-builder/define-property.js.map +1 -1
  215. package/dist/dml/helpers/mikro-orm/custom-type/geo-json-geometry.d.ts +10 -0
  216. package/dist/dml/helpers/mikro-orm/custom-type/geo-json-geometry.d.ts.map +1 -0
  217. package/dist/dml/helpers/mikro-orm/custom-type/geo-json-geometry.js +31 -0
  218. package/dist/dml/helpers/mikro-orm/custom-type/geo-json-geometry.js.map +1 -0
  219. package/dist/dml/properties/enum.d.ts.map +1 -1
  220. package/dist/dml/properties/enum.js +0 -1
  221. package/dist/dml/properties/enum.js.map +1 -1
  222. package/dist/dml/properties/geometry.d.ts +8 -0
  223. package/dist/dml/properties/geometry.d.ts.map +1 -0
  224. package/dist/dml/properties/geometry.js +14 -0
  225. package/dist/dml/properties/geometry.js.map +1 -0
  226. package/dist/dml/properties/index.d.ts +4 -0
  227. package/dist/dml/properties/index.d.ts.map +1 -1
  228. package/dist/dml/properties/index.js +4 -0
  229. package/dist/dml/properties/index.js.map +1 -1
  230. package/dist/dml/properties/multipolygon.d.ts +8 -0
  231. package/dist/dml/properties/multipolygon.d.ts.map +1 -0
  232. package/dist/dml/properties/multipolygon.js +14 -0
  233. package/dist/dml/properties/multipolygon.js.map +1 -0
  234. package/dist/dml/properties/point.d.ts +8 -0
  235. package/dist/dml/properties/point.d.ts.map +1 -0
  236. package/dist/dml/properties/point.js +14 -0
  237. package/dist/dml/properties/point.js.map +1 -0
  238. package/dist/dml/properties/polygon.d.ts +8 -0
  239. package/dist/dml/properties/polygon.d.ts.map +1 -0
  240. package/dist/dml/properties/polygon.js +14 -0
  241. package/dist/dml/properties/polygon.js.map +1 -0
  242. package/dist/event-bus/index.d.ts +11 -2
  243. package/dist/event-bus/index.d.ts.map +1 -1
  244. package/dist/event-bus/index.js +19 -0
  245. package/dist/event-bus/index.js.map +1 -1
  246. package/dist/feature-flags/discover-and-register-feature-flags.d.ts +15 -0
  247. package/dist/feature-flags/discover-and-register-feature-flags.d.ts.map +1 -0
  248. package/dist/feature-flags/discover-and-register-feature-flags.js +23 -0
  249. package/dist/feature-flags/discover-and-register-feature-flags.js.map +1 -0
  250. package/dist/feature-flags/discover-feature-flags.d.ts +6 -0
  251. package/dist/feature-flags/discover-feature-flags.d.ts.map +1 -0
  252. package/dist/feature-flags/discover-feature-flags.js +53 -0
  253. package/dist/feature-flags/discover-feature-flags.js.map +1 -0
  254. package/dist/feature-flags/flag-router.d.ts +33 -0
  255. package/dist/feature-flags/flag-router.d.ts.map +1 -0
  256. package/dist/feature-flags/flag-router.js +68 -0
  257. package/dist/feature-flags/flag-router.js.map +1 -0
  258. package/dist/feature-flags/index.d.ts +2 -0
  259. package/dist/feature-flags/index.d.ts.map +1 -1
  260. package/dist/feature-flags/index.js +3 -0
  261. package/dist/feature-flags/index.js.map +1 -1
  262. package/dist/feature-flags/register-flag.d.ts +18 -0
  263. package/dist/feature-flags/register-flag.d.ts.map +1 -0
  264. package/dist/feature-flags/register-flag.js +41 -0
  265. package/dist/feature-flags/register-flag.js.map +1 -0
  266. package/dist/index.d.ts +5 -0
  267. package/dist/index.d.ts.map +1 -1
  268. package/dist/index.js +5 -0
  269. package/dist/index.js.map +1 -1
  270. package/dist/modules-sdk/build-query.d.ts.map +1 -1
  271. package/dist/modules-sdk/build-query.js +3 -1
  272. package/dist/modules-sdk/build-query.js.map +1 -1
  273. package/dist/modules-sdk/definition.d.ts +18 -0
  274. package/dist/modules-sdk/definition.d.ts.map +1 -1
  275. package/dist/modules-sdk/definition.js +13 -1
  276. package/dist/modules-sdk/definition.js.map +1 -1
  277. package/dist/modules-sdk/spatial-query-processor.d.ts +2 -0
  278. package/dist/modules-sdk/spatial-query-processor.d.ts.map +1 -0
  279. package/dist/modules-sdk/spatial-query-processor.js +105 -0
  280. package/dist/modules-sdk/spatial-query-processor.js.map +1 -0
  281. package/dist/permissions/ability.d.ts +39 -0
  282. package/dist/permissions/ability.d.ts.map +1 -0
  283. package/dist/permissions/ability.js +51 -0
  284. package/dist/permissions/ability.js.map +1 -0
  285. package/dist/permissions/context-builder.d.ts +24 -0
  286. package/dist/permissions/context-builder.d.ts.map +1 -0
  287. package/dist/permissions/context-builder.js +30 -0
  288. package/dist/permissions/context-builder.js.map +1 -0
  289. package/dist/permissions/index.d.ts +4 -0
  290. package/dist/permissions/index.d.ts.map +1 -0
  291. package/dist/permissions/index.js +20 -0
  292. package/dist/permissions/index.js.map +1 -0
  293. package/dist/permissions/permission-service.d.ts +8 -0
  294. package/dist/permissions/permission-service.d.ts.map +1 -0
  295. package/dist/permissions/permission-service.js +20 -0
  296. package/dist/permissions/permission-service.js.map +1 -0
  297. package/dist/permissions/types.d.ts +17 -0
  298. package/dist/permissions/types.d.ts.map +1 -0
  299. package/dist/permissions/types.js +11 -0
  300. package/dist/permissions/types.js.map +1 -0
  301. package/dist/translations/apply-translations-to-tax-lines.d.ts +17 -0
  302. package/dist/translations/apply-translations-to-tax-lines.d.ts.map +1 -0
  303. package/dist/translations/apply-translations-to-tax-lines.js +38 -0
  304. package/dist/translations/apply-translations-to-tax-lines.js.map +1 -0
  305. package/dist/translations/apply-translations.d.ts +7 -0
  306. package/dist/translations/apply-translations.d.ts.map +1 -0
  307. package/dist/translations/apply-translations.js +104 -0
  308. package/dist/translations/apply-translations.js.map +1 -0
  309. package/dist/translations/index.d.ts +3 -0
  310. package/dist/translations/index.d.ts.map +1 -0
  311. package/dist/translations/index.js +19 -0
  312. package/dist/translations/index.js.map +1 -0
  313. package/dist/tsconfig.tsbuildinfo +1 -1
  314. package/dist/zod/schemas/approvals.d.ts +91 -0
  315. package/dist/zod/schemas/approvals.d.ts.map +1 -0
  316. package/dist/zod/schemas/approvals.js +38 -0
  317. package/dist/zod/schemas/approvals.js.map +1 -0
  318. package/dist/zod/schemas/clicks.d.ts +394 -0
  319. package/dist/zod/schemas/clicks.d.ts.map +1 -0
  320. package/dist/zod/schemas/clicks.js +85 -0
  321. package/dist/zod/schemas/clicks.js.map +1 -0
  322. package/dist/zod/schemas/leads.d.ts +423 -0
  323. package/dist/zod/schemas/leads.d.ts.map +1 -0
  324. package/dist/zod/schemas/leads.js +58 -0
  325. package/dist/zod/schemas/leads.js.map +1 -0
  326. package/package.json +8 -2
  327. package/dist/feature-flags/eto-v2.d.ts +0 -3
  328. package/dist/feature-flags/eto-v2.d.ts.map +0 -1
  329. package/dist/feature-flags/eto-v2.js +0 -10
  330. package/dist/feature-flags/eto-v2.js.map +0 -1
  331. package/dist/feature-flags/order-editing.d.ts +0 -3
  332. package/dist/feature-flags/order-editing.d.ts.map +0 -1
  333. package/dist/feature-flags/order-editing.js +0 -10
  334. package/dist/feature-flags/order-editing.js.map +0 -1
  335. package/dist/feature-flags/product-categories.d.ts +0 -3
  336. package/dist/feature-flags/product-categories.d.ts.map +0 -1
  337. package/dist/feature-flags/product-categories.js +0 -10
  338. package/dist/feature-flags/product-categories.js.map +0 -1
  339. package/dist/feature-flags/sales-channels.d.ts +0 -3
  340. package/dist/feature-flags/sales-channels.d.ts.map +0 -1
  341. package/dist/feature-flags/sales-channels.js +0 -10
  342. package/dist/feature-flags/sales-channels.js.map +0 -1
  343. package/dist/feature-flags/tax-inclusive-pricing.d.ts +0 -3
  344. package/dist/feature-flags/tax-inclusive-pricing.d.ts.map +0 -1
  345. package/dist/feature-flags/tax-inclusive-pricing.js +0 -10
  346. package/dist/feature-flags/tax-inclusive-pricing.js.map +0 -1
@@ -1,6 +1,7 @@
1
1
  export declare const Modules: {
2
2
  readonly ANALYTICS: "analytics";
3
3
  readonly AUTH: "auth";
4
+ readonly RBAC: "rbac";
4
5
  readonly CACHE: "cache";
5
6
  readonly EVENT_BUS: "event_bus";
6
7
  readonly LINK: "link_modules";
@@ -15,10 +16,16 @@ export declare const Modules: {
15
16
  readonly NOTIFICATION: "notification";
16
17
  readonly INDEX: "index";
17
18
  readonly LOCKING: "locking";
19
+ readonly AUDIT_LOG: "audit_log";
20
+ readonly AMBASSADOR: "ambassador";
21
+ readonly MEMBERSHIP: "membership";
22
+ readonly SPACE: "space";
23
+ readonly ACCESS_LINK: "access_link";
18
24
  };
19
25
  export declare const MODULE_PACKAGE_NAMES: {
20
26
  analytics: string;
21
27
  auth: string;
28
+ rbac: string;
22
29
  cache: string;
23
30
  event_bus: string;
24
31
  link_modules: string;
@@ -30,6 +37,11 @@ export declare const MODULE_PACKAGE_NAMES: {
30
37
  notification: string;
31
38
  index: string;
32
39
  locking: string;
40
+ audit_log: string;
41
+ ambassador: string;
42
+ membership: string;
43
+ space: string;
44
+ access_link: string;
33
45
  };
34
46
  export declare const REVERSED_MODULE_PACKAGE_NAMES: {};
35
47
  /**
@@ -39,6 +51,7 @@ export type Modules = (typeof Modules)[keyof typeof Modules];
39
51
  export declare const ModuleRegistrationName: {
40
52
  readonly ANALYTICS: "analytics";
41
53
  readonly AUTH: "auth";
54
+ readonly RBAC: "rbac";
42
55
  readonly CACHE: "cache";
43
56
  readonly EVENT_BUS: "event_bus";
44
57
  readonly LINK: "link_modules";
@@ -53,5 +66,10 @@ export declare const ModuleRegistrationName: {
53
66
  readonly NOTIFICATION: "notification";
54
67
  readonly INDEX: "index";
55
68
  readonly LOCKING: "locking";
69
+ readonly AUDIT_LOG: "audit_log";
70
+ readonly AMBASSADOR: "ambassador";
71
+ readonly MEMBERSHIP: "membership";
72
+ readonly SPACE: "space";
73
+ readonly ACCESS_LINK: "access_link";
56
74
  };
57
75
  //# sourceMappingURL=definition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/modules-sdk/definition.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;CAiBV,CAAA;AAEV,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;CAchC,CAAA;AAED,eAAO,MAAM,6BAA6B,IAKpC,CAAA;AAEN;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAA;AAC5D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;CAAU,CAAA"}
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/modules-sdk/definition.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;CAuBV,CAAA;AAEV,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;CAoBhC,CAAA;AAED,eAAO,MAAM,6BAA6B,IAKpC,CAAA;AAEN;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAA;AAC5D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;CAAU,CAAA"}
@@ -4,6 +4,7 @@ exports.ModuleRegistrationName = exports.REVERSED_MODULE_PACKAGE_NAMES = exports
4
4
  exports.Modules = {
5
5
  ANALYTICS: "analytics",
6
6
  AUTH: "auth",
7
+ RBAC: "rbac",
7
8
  CACHE: "cache",
8
9
  EVENT_BUS: "event_bus",
9
10
  LINK: "link_modules",
@@ -18,13 +19,19 @@ exports.Modules = {
18
19
  NOTIFICATION: "notification",
19
20
  INDEX: "index",
20
21
  LOCKING: "locking",
22
+ AUDIT_LOG: "audit_log",
23
+ AMBASSADOR: "ambassador",
24
+ MEMBERSHIP: "membership",
25
+ SPACE: "space",
26
+ ACCESS_LINK: "access_link",
21
27
  };
22
28
  exports.MODULE_PACKAGE_NAMES = {
23
29
  [exports.Modules.ANALYTICS]: "@etohq/eto/analytics",
24
30
  [exports.Modules.AUTH]: "@etohq/eto/auth",
31
+ [exports.Modules.RBAC]: "@etohq/eto/rbac",
25
32
  [exports.Modules.CACHE]: "@etohq/eto/cache-inmemory",
26
33
  [exports.Modules.EVENT_BUS]: "@etohq/eto/event-bus-local",
27
- [exports.Modules.LINK]: "@etohq/eto/commerce-link-modules",
34
+ [exports.Modules.LINK]: "@etohq/link-modules-sdk",
28
35
  [exports.Modules.PAYMENT]: "@etohq/eto/payment",
29
36
  [exports.Modules.USER]: "@etohq/eto/user",
30
37
  [exports.Modules.WORKFLOW_ENGINE]: "@etohq/eto/workflow-engine-inmemory",
@@ -33,6 +40,11 @@ exports.MODULE_PACKAGE_NAMES = {
33
40
  [exports.Modules.NOTIFICATION]: "@etohq/eto/notification",
34
41
  [exports.Modules.INDEX]: "@etohq/eto/index-module",
35
42
  [exports.Modules.LOCKING]: "@etohq/eto/locking",
43
+ [exports.Modules.AUDIT_LOG]: "@etohq/eto/audit-log",
44
+ [exports.Modules.AMBASSADOR]: "@etohq/eto/ambassador",
45
+ [exports.Modules.MEMBERSHIP]: "@etohq/eto/membership",
46
+ [exports.Modules.SPACE]: "@etohq/eto/space",
47
+ [exports.Modules.ACCESS_LINK]: "@etohq/eto/access-link",
36
48
  };
37
49
  exports.REVERSED_MODULE_PACKAGE_NAMES = Object.entries(exports.MODULE_PACKAGE_NAMES).reduce((acc, [key, value]) => {
38
50
  acc[value] = key;
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/modules-sdk/definition.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG;IACrB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,eAAe,EAAE,WAAW;IAC5B,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,cAAc;IAC5B,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;CACV,CAAA;AAEG,QAAA,oBAAoB,GAAG;IAClC,CAAC,eAAO,CAAC,SAAS,CAAC,EAAE,sBAAsB;IAC3C,CAAC,eAAO,CAAC,IAAI,CAAC,EAAE,iBAAiB;IACjC,CAAC,eAAO,CAAC,KAAK,CAAC,EAAE,2BAA2B;IAC5C,CAAC,eAAO,CAAC,SAAS,CAAC,EAAE,4BAA4B;IACjD,CAAC,eAAO,CAAC,IAAI,CAAC,EAAE,kCAAkC;IAClD,CAAC,eAAO,CAAC,OAAO,CAAC,EAAE,oBAAoB;IACvC,CAAC,eAAO,CAAC,IAAI,CAAC,EAAE,iBAAiB;IACjC,CAAC,eAAO,CAAC,eAAe,CAAC,EAAE,qCAAqC;IAChE,CAAC,eAAO,CAAC,OAAO,CAAC,EAAE,oBAAoB;IACvC,CAAC,eAAO,CAAC,IAAI,CAAC,EAAE,iBAAiB;IACjC,CAAC,eAAO,CAAC,YAAY,CAAC,EAAE,yBAAyB;IACjD,CAAC,eAAO,CAAC,KAAK,CAAC,EAAE,yBAAyB;IAC1C,CAAC,eAAO,CAAC,OAAO,CAAC,EAAE,oBAAoB;CACxC,CAAA;AAEY,QAAA,6BAA6B,GAAG,MAAM,CAAC,OAAO,CACzD,4BAAoB,CACrB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;IAC7B,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;IAChB,OAAO,GAAG,CAAA;AACZ,CAAC,EAAE,EAAE,CAAC,CAAA;AAMO,QAAA,sBAAsB,GAAG,eAAO,CAAA"}
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/modules-sdk/definition.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG;IACrB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,eAAe,EAAE,WAAW;IAC5B,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,cAAc;IAC5B,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;CAClB,CAAA;AAEG,QAAA,oBAAoB,GAAG;IAClC,CAAC,eAAO,CAAC,SAAS,CAAC,EAAE,sBAAsB;IAC3C,CAAC,eAAO,CAAC,IAAI,CAAC,EAAE,iBAAiB;IACjC,CAAC,eAAO,CAAC,IAAI,CAAC,EAAE,iBAAiB;IACjC,CAAC,eAAO,CAAC,KAAK,CAAC,EAAE,2BAA2B;IAC5C,CAAC,eAAO,CAAC,SAAS,CAAC,EAAE,4BAA4B;IACjD,CAAC,eAAO,CAAC,IAAI,CAAC,EAAE,yBAAyB;IACzC,CAAC,eAAO,CAAC,OAAO,CAAC,EAAE,oBAAoB;IACvC,CAAC,eAAO,CAAC,IAAI,CAAC,EAAE,iBAAiB;IACjC,CAAC,eAAO,CAAC,eAAe,CAAC,EAAE,qCAAqC;IAChE,CAAC,eAAO,CAAC,OAAO,CAAC,EAAE,oBAAoB;IACvC,CAAC,eAAO,CAAC,IAAI,CAAC,EAAE,iBAAiB;IACjC,CAAC,eAAO,CAAC,YAAY,CAAC,EAAE,yBAAyB;IACjD,CAAC,eAAO,CAAC,KAAK,CAAC,EAAE,yBAAyB;IAC1C,CAAC,eAAO,CAAC,OAAO,CAAC,EAAE,oBAAoB;IACvC,CAAC,eAAO,CAAC,SAAS,CAAC,EAAE,sBAAsB;IAC3C,CAAC,eAAO,CAAC,UAAU,CAAC,EAAE,uBAAuB;IAC7C,CAAC,eAAO,CAAC,UAAU,CAAC,EAAE,uBAAuB;IAC7C,CAAC,eAAO,CAAC,KAAK,CAAC,EAAE,kBAAkB;IACnC,CAAC,eAAO,CAAC,WAAW,CAAC,EAAE,wBAAwB;CAChD,CAAA;AAEY,QAAA,6BAA6B,GAAG,MAAM,CAAC,OAAO,CACzD,4BAAoB,CACrB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;IAC7B,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;IAChB,OAAO,GAAG,CAAA;AACZ,CAAC,EAAE,EAAE,CAAC,CAAA;AAMO,QAAA,sBAAsB,GAAG,eAAO,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function processSpatialQueries(filters: Record<string, any>): Record<string, any>;
2
+ //# sourceMappingURL=spatial-query-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spatial-query-processor.d.ts","sourceRoot":"","sources":["../../src/modules-sdk/spatial-query-processor.ts"],"names":[],"mappings":"AAkEA,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAmErB"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processSpatialQueries = processSpatialQueries;
4
+ const core_1 = require("@mikro-orm/core");
5
+ const common_1 = require("../common");
6
+ const SPATIAL_OPERATORS = {
7
+ // Relationship operators
8
+ $contains: "ST_Contains",
9
+ $within: "ST_Within",
10
+ $intersects: "ST_Intersects",
11
+ $touches: "ST_Touches",
12
+ $crosses: "ST_Crosses",
13
+ $overlaps: "ST_Overlaps",
14
+ $disjoint: "ST_Disjoint",
15
+ $equals: "ST_Equals",
16
+ // Distance operators
17
+ $distance: "ST_DWithin",
18
+ $distance_sphere: "ST_DistanceSphere",
19
+ // Negated operators
20
+ $not_contains: "ST_Contains",
21
+ $not_within: "ST_Within",
22
+ $not_intersects: "ST_Intersects",
23
+ $not_touches: "ST_Touches",
24
+ $not_crosses: "ST_Crosses",
25
+ $not_overlaps: "ST_Overlaps",
26
+ $not_disjoint: "ST_Disjoint",
27
+ $not_equals: "ST_Equals"
28
+ };
29
+ // Fields that should be treated as spatial
30
+ const SPATIAL_FIELDS = new Set([
31
+ "geometry",
32
+ "point",
33
+ "polygon",
34
+ "multipolygon",
35
+ "location",
36
+ "boundary",
37
+ ]);
38
+ function isSpatialField(fieldName) {
39
+ return (SPATIAL_FIELDS.has(fieldName) ||
40
+ fieldName.includes("geo") ||
41
+ fieldName.includes("spatial"));
42
+ }
43
+ function isGeoJSON(value) {
44
+ return ((0, common_1.isObject)(value) &&
45
+ // @ts-ignore
46
+ typeof value.type === "string" &&
47
+ [
48
+ "Point",
49
+ "LineString",
50
+ "Polygon",
51
+ "MultiPoint",
52
+ "MultiLineString",
53
+ "MultiPolygon",
54
+ "GeometryCollection",
55
+ ]
56
+ // @ts-ignore
57
+ .includes(value.type));
58
+ }
59
+ function processSpatialQueries(filters) {
60
+ const processed = { ...filters };
61
+ for (const [field, value] of Object.entries(processed)) {
62
+ if (field === "$and" || field === "$or") {
63
+ if (Array.isArray(value)) {
64
+ processed[field] = value.map((item) => processSpatialQueries(item));
65
+ }
66
+ continue;
67
+ }
68
+ if ((0, common_1.isObject)(value)) {
69
+ for (const [operator, operand] of Object.entries(value)) {
70
+ if (operator in SPATIAL_OPERATORS) {
71
+ // Only process as spatial if field name suggests spatial data OR operand is GeoJSON
72
+ const isSpatial = isSpatialField(field) ||
73
+ (operator === "$contains" && isGeoJSON(operand)) ||
74
+ (operator === "$distance" &&
75
+ (0, common_1.isObject)(operand) &&
76
+ "point" in operand);
77
+ if (isSpatial) {
78
+ const postgisFunc = SPATIAL_OPERATORS[operator];
79
+ if (operator === "$distance") {
80
+ const { point, meters } = operand;
81
+ const geoJson = JSON.stringify(point).replace(/'/g, "''");
82
+ processed[field] = (0, core_1.raw)(`${postgisFunc}(??, ST_GeomFromGeoJSON(?), ?)`, [field, geoJson, meters]);
83
+ }
84
+ else if (operator === "$distance_sphere") {
85
+ const { point, meters } = operand;
86
+ const geoJson = JSON.stringify(point).replace(/'/g, "''");
87
+ processed[field] = (0, core_1.raw)(`${postgisFunc}(??, ST_GeomFromGeoJSON(?)) <= ?`, [field, geoJson, meters]);
88
+ }
89
+ else if (operator.startsWith("$not_")) {
90
+ const geoJson = JSON.stringify(operand).replace(/'/g, "''");
91
+ processed[field] = (0, core_1.raw)(`NOT ${postgisFunc}(??, ST_GeomFromGeoJSON(?))`, [field, geoJson]);
92
+ }
93
+ else {
94
+ const geoJson = JSON.stringify(operand).replace(/'/g, "''");
95
+ processed[field] = (0, core_1.raw)(`${postgisFunc}(??, ST_GeomFromGeoJSON(?))`, [field, geoJson]);
96
+ }
97
+ break;
98
+ }
99
+ }
100
+ }
101
+ }
102
+ }
103
+ return processed;
104
+ }
105
+ //# sourceMappingURL=spatial-query-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spatial-query-processor.js","sourceRoot":"","sources":["../../src/modules-sdk/spatial-query-processor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { PureAbility } from '@casl/ability';
2
+ import { PermissionContext } from './types';
3
+ export type Action = 'manage' | 'create' | 'read' | 'update' | 'delete' | 'invite' | 'remove' | 'promote';
4
+ export type Subjects = 'all' | 'Store' | 'Product' | 'Membership' | 'Community' | 'CommunityMember' | 'Group' | 'GroupMember' | 'User';
5
+ export type SubjectConditions = {
6
+ Store: {
7
+ spaceId: string;
8
+ };
9
+ Product: {
10
+ spaceId: string;
11
+ };
12
+ Membership: {
13
+ spaceId: string;
14
+ };
15
+ Community: {
16
+ id: string;
17
+ };
18
+ CommunityMember: {
19
+ communityId: string;
20
+ };
21
+ Group: {
22
+ id: string;
23
+ };
24
+ GroupMember: {
25
+ groupId: string;
26
+ };
27
+ User: {
28
+ id: string;
29
+ };
30
+ all: {
31
+ spaceId: string;
32
+ };
33
+ };
34
+ export type AppAbility = PureAbility<[
35
+ Action,
36
+ Subjects
37
+ ], any>;
38
+ export declare const createAbility: (context: PermissionContext) => AppAbility;
39
+ //# sourceMappingURL=ability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ability.d.ts","sourceRoot":"","sources":["../../src/permissions/ability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,WAAW,EAAgB,MAAM,eAAe,CAAA;AACzE,OAAO,EAAkB,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAG3D,MAAM,MAAM,MAAM,GACd,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,SAAS,CAAA;AAGb,MAAM,MAAM,QAAQ,GAChB,KAAK,GACL,OAAO,GACP,SAAS,GACT,YAAY,GACZ,WAAW,GACX,iBAAiB,GACjB,OAAO,GACP,aAAa,GACb,MAAM,CAAA;AAGV,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1B,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5B,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/B,SAAS,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACzB,eAAe,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;IACxC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACrB,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAChC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACpB,GAAG,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CACzB,CAAA;AAGD,MAAM,MAAM,UAAU,GAAG,WAAW,CAClC;IAAC,MAAM;IAAE,QAAQ;CAAC,EAClB,GAAG,CACJ,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,SAAS,iBAAiB,KAAG,UA2C1D,CAAA"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAbility = void 0;
4
+ const ability_1 = require("@casl/ability");
5
+ const types_1 = require("./types");
6
+ const createAbility = (context) => {
7
+ const builder = new ability_1.AbilityBuilder(ability_1.PureAbility);
8
+ const { can, build } = builder;
9
+ // Space permissions
10
+ context.spaceMemberships?.forEach(membership => {
11
+ if (membership.role === types_1.MembershipRole.OWNER) {
12
+ can('manage', 'all', { spaceId: membership.resourceId });
13
+ }
14
+ else if (membership.role === types_1.MembershipRole.ADMIN) {
15
+ can(['create', 'read', 'update'], 'Store', { spaceId: membership.resourceId });
16
+ can(['read', 'invite', 'remove'], 'Membership', { spaceId: membership.resourceId });
17
+ }
18
+ else if (membership.role === types_1.MembershipRole.MEMBER) {
19
+ can('read', 'Store', { spaceId: membership.resourceId });
20
+ can('read', 'Product', { spaceId: membership.resourceId });
21
+ }
22
+ });
23
+ // Community permissions
24
+ context.communityMemberships?.forEach(membership => {
25
+ if (membership.role === types_1.MembershipRole.ADMIN) {
26
+ can('update', 'Community', { id: membership.resourceId });
27
+ can(['invite', 'remove', 'promote'], 'CommunityMember', { communityId: membership.resourceId });
28
+ }
29
+ else if (membership.role === types_1.MembershipRole.MODERATOR) {
30
+ can(['invite', 'remove'], 'CommunityMember', { communityId: membership.resourceId });
31
+ }
32
+ else if (membership.role === types_1.MembershipRole.MEMBER) {
33
+ can('read', 'Community', { id: membership.resourceId });
34
+ }
35
+ });
36
+ // Group permissions
37
+ context.groupMemberships?.forEach(membership => {
38
+ if (membership.role === types_1.MembershipRole.ADMIN) {
39
+ can(['update', 'delete'], 'Group', { id: membership.resourceId });
40
+ can(['invite', 'remove'], 'GroupMember', { groupId: membership.resourceId });
41
+ }
42
+ else if (membership.role === types_1.MembershipRole.MEMBER) {
43
+ can('read', 'Group', { id: membership.resourceId });
44
+ }
45
+ });
46
+ // User can always update their own profile
47
+ can('update', 'User', { id: context.userId });
48
+ return build();
49
+ };
50
+ exports.createAbility = createAbility;
51
+ //# sourceMappingURL=ability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ability.js","sourceRoot":"","sources":["../../src/permissions/ability.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { PermissionContext, MembershipRole } from './types';
2
+ export interface PermissionContextDependencies {
3
+ membershipService: {
4
+ getUserSpaceMemberships(userId: string): Promise<Array<{
5
+ resourceId: string;
6
+ role: MembershipRole;
7
+ }>>;
8
+ getUserCommunityMemberships(userId: string): Promise<Array<{
9
+ resourceId: string;
10
+ role: MembershipRole;
11
+ }>>;
12
+ getUserGroupMemberships(userId: string): Promise<Array<{
13
+ resourceId: string;
14
+ role: MembershipRole;
15
+ }>>;
16
+ };
17
+ }
18
+ export declare class PermissionContextBuilder {
19
+ private dependencies;
20
+ constructor(dependencies: PermissionContextDependencies);
21
+ buildContext(userId: string): Promise<PermissionContext>;
22
+ buildSpaceContext(userId: string, spaceId: string): Promise<PermissionContext>;
23
+ }
24
+ //# sourceMappingURL=context-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-builder.d.ts","sourceRoot":"","sources":["../../src/permissions/context-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE3D,MAAM,WAAW,6BAA6B;IAC5C,iBAAiB,EAAE;QACjB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,cAAc,CAAA;SAAC,CAAC,CAAC,CAAA;QACnG,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,cAAc,CAAA;SAAC,CAAC,CAAC,CAAA;QACvG,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,cAAc,CAAA;SAAC,CAAC,CAAC,CAAA;KACpG,CAAA;CACF;AAED,qBAAa,wBAAwB;IACvB,OAAO,CAAC,YAAY;gBAAZ,YAAY,EAAE,6BAA6B;IAEzD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAexD,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAQrF"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PermissionContextBuilder = void 0;
4
+ class PermissionContextBuilder {
5
+ constructor(dependencies) {
6
+ this.dependencies = dependencies;
7
+ }
8
+ async buildContext(userId) {
9
+ const [spaceMemberships, communityMemberships, groupMemberships] = await Promise.all([
10
+ this.dependencies.membershipService.getUserSpaceMemberships(userId),
11
+ this.dependencies.membershipService.getUserCommunityMemberships(userId),
12
+ this.dependencies.membershipService.getUserGroupMemberships(userId)
13
+ ]);
14
+ return {
15
+ userId,
16
+ spaceMemberships,
17
+ communityMemberships,
18
+ groupMemberships
19
+ };
20
+ }
21
+ async buildSpaceContext(userId, spaceId) {
22
+ const spaceMemberships = await this.dependencies.membershipService.getUserSpaceMemberships(userId);
23
+ return {
24
+ userId,
25
+ spaceMemberships: spaceMemberships.filter(m => m.resourceId === spaceId)
26
+ };
27
+ }
28
+ }
29
+ exports.PermissionContextBuilder = PermissionContextBuilder;
30
+ //# sourceMappingURL=context-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-builder.js","sourceRoot":"","sources":["../../src/permissions/context-builder.ts"],"names":[],"mappings":";;;AAUA,MAAa,wBAAwB;IACnC,YAAoB,YAA2C;QAA3C,iBAAY,GAAZ,YAAY,CAA+B;IAAG,CAAC;IAEnE,KAAK,CAAC,YAAY,CAAC,MAAc;QAC/B,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnF,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,MAAM,CAAC;YACnE,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,MAAM,CAAC;YACvE,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,MAAM,CAAC;SACpE,CAAC,CAAA;QAEF,OAAO;YACL,MAAM;YACN,gBAAgB;YAChB,oBAAoB;YACpB,gBAAgB;SACjB,CAAA;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,OAAe;QACrD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAA;QAElG,OAAO;YACL,MAAM;YACN,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC;SACzE,CAAA;IACH,CAAC;CACF;AA1BD,4DA0BC"}
@@ -0,0 +1,4 @@
1
+ export * from "./types";
2
+ export * from "./ability";
3
+ export * from "./permission-service";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/permissions/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,sBAAsB,CAAA"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./types"), exports);
18
+ __exportStar(require("./ability"), exports);
19
+ __exportStar(require("./permission-service"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/permissions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,4CAAyB;AACzB,uDAAoC"}
@@ -0,0 +1,8 @@
1
+ import { PermissionContext } from "./types";
2
+ import { Action, Subjects } from "./ability";
3
+ export declare class PermissionService {
4
+ static can(context: PermissionContext, action: Action, subject: Subjects, resource?: any): boolean;
5
+ static cannot(context: PermissionContext, action: Action, subject: Subjects, resource?: any): boolean;
6
+ static require(context: PermissionContext, action: Action, subject: Subjects, resource?: any): void;
7
+ }
8
+ //# sourceMappingURL=permission-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-service.d.ts","sourceRoot":"","sources":["../../src/permissions/permission-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAiB,QAAQ,EAAE,MAAM,WAAW,CAAA;AAE3D,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,GAAG,CACR,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,EACjB,QAAQ,CAAC,EAAE,GAAG,GACb,OAAO;IAKV,MAAM,CAAC,MAAM,CACX,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,EACjB,QAAQ,CAAC,EAAE,GAAG,GACb,OAAO;IAIV,MAAM,CAAC,OAAO,CACZ,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,EACjB,QAAQ,CAAC,EAAE,GAAG,GACb,IAAI;CAKR"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PermissionService = void 0;
4
+ const ability_1 = require("./ability");
5
+ class PermissionService {
6
+ static can(context, action, subject, resource) {
7
+ const ability = (0, ability_1.createAbility)(context);
8
+ return ability.can(action, subject, resource);
9
+ }
10
+ static cannot(context, action, subject, resource) {
11
+ return !this.can(context, action, subject, resource);
12
+ }
13
+ static require(context, action, subject, resource) {
14
+ if (this.cannot(context, action, subject, resource)) {
15
+ throw new Error(`Permission denied: ${action} ${subject}`);
16
+ }
17
+ }
18
+ }
19
+ exports.PermissionService = PermissionService;
20
+ //# sourceMappingURL=permission-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-service.js","sourceRoot":"","sources":["../../src/permissions/permission-service.ts"],"names":[],"mappings":";;;AACA,uCAA2D;AAE3D,MAAa,iBAAiB;IAC5B,MAAM,CAAC,GAAG,CACR,OAA0B,EAC1B,MAAc,EACd,OAAiB,EACjB,QAAc;QAEd,MAAM,OAAO,GAAG,IAAA,uBAAa,EAAC,OAAO,CAAC,CAAA;QACtC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,CAAC,MAAM,CACX,OAA0B,EAC1B,MAAc,EACd,OAAiB,EACjB,QAAc;QAEd,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IACtD,CAAC;IAED,MAAM,CAAC,OAAO,CACZ,OAA0B,EAC1B,MAAc,EACd,OAAiB,EACjB,QAAc;QAEd,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,IAAI,OAAO,EAAE,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;CACF;AA9BD,8CA8BC"}
@@ -0,0 +1,17 @@
1
+ export declare enum MembershipRole {
2
+ OWNER = "OWNER",
3
+ ADMIN = "ADMIN",
4
+ MEMBER = "MEMBER",
5
+ MODERATOR = "MODERATOR"
6
+ }
7
+ export interface Membership {
8
+ resourceId: string;
9
+ role: MembershipRole;
10
+ }
11
+ export interface PermissionContext {
12
+ userId: string;
13
+ spaceMemberships?: Membership[];
14
+ communityMemberships?: Membership[];
15
+ groupMemberships?: Membership[];
16
+ }
17
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/permissions/types.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,SAAS,cAAc;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,cAAc,CAAA;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IAEd,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAA;IAC/B,oBAAoB,CAAC,EAAE,UAAU,EAAE,CAAA;IACnC,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAA;CAEhC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MembershipRole = void 0;
4
+ var MembershipRole;
5
+ (function (MembershipRole) {
6
+ MembershipRole["OWNER"] = "OWNER";
7
+ MembershipRole["ADMIN"] = "ADMIN";
8
+ MembershipRole["MEMBER"] = "MEMBER";
9
+ MembershipRole["MODERATOR"] = "MODERATOR";
10
+ })(MembershipRole || (exports.MembershipRole = MembershipRole = {}));
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/permissions/types.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,iCAAe,CAAA;IACf,mCAAiB,CAAA;IACjB,yCAAuB,CAAA;AACzB,CAAC,EALW,cAAc,8BAAd,cAAc,QAKzB"}
@@ -0,0 +1,17 @@
1
+ import { EtoContainer } from "@etohq/types";
2
+ type TaxLineLike = {
3
+ rate_id?: string | null;
4
+ name: string;
5
+ };
6
+ /**
7
+ * Applies translations to tax lines. If you are using a tax provider that doesn't have TaxRates defined in the database,
8
+ * you should apply the translations inside of your tax provider's `getTaxLines` method, using the `locale` provided in the context.
9
+ *
10
+ * @param taxLines - The tax lines to apply translations to.
11
+ * @param locale - The locale to apply translations to.
12
+ * @param container - The container to use for the translations.
13
+ * @returns The tax lines with translations applied.
14
+ */
15
+ export declare const applyTranslationsToTaxLines: (taxLines: TaxLineLike[], locale: string | undefined, container: EtoContainer) => Promise<TaxLineLike[]>;
16
+ export {};
17
+ //# sourceMappingURL=apply-translations-to-tax-lines.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-translations-to-tax-lines.d.ts","sourceRoot":"","sources":["../../src/translations/apply-translations-to-tax-lines.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,GACtC,UAAU,WAAW,EAAE,EACvB,QAAQ,MAAM,GAAG,SAAS,EAC1B,WAAW,YAAY,2BA6BxB,CAAA"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyTranslationsToTaxLines = void 0;
4
+ const apply_translations_1 = require("./apply-translations");
5
+ /**
6
+ * Applies translations to tax lines. If you are using a tax provider that doesn't have TaxRates defined in the database,
7
+ * you should apply the translations inside of your tax provider's `getTaxLines` method, using the `locale` provided in the context.
8
+ *
9
+ * @param taxLines - The tax lines to apply translations to.
10
+ * @param locale - The locale to apply translations to.
11
+ * @param container - The container to use for the translations.
12
+ * @returns The tax lines with translations applied.
13
+ */
14
+ const applyTranslationsToTaxLines = async (taxLines, locale, container) => {
15
+ const translatedTaxRates = taxLines.map((taxLine) => ({
16
+ id: taxLine.rate_id,
17
+ name: taxLine.name,
18
+ }));
19
+ await (0, apply_translations_1.applyTranslations)({
20
+ localeCode: locale,
21
+ objects: translatedTaxRates,
22
+ container,
23
+ });
24
+ const rateTranslationMap = new Map();
25
+ for (const translatedRate of translatedTaxRates) {
26
+ if (!!translatedRate.id) {
27
+ rateTranslationMap.set(translatedRate.id, translatedRate.name);
28
+ }
29
+ }
30
+ for (const taxLine of taxLines) {
31
+ if (taxLine.rate_id) {
32
+ taxLine.name = rateTranslationMap.get(taxLine.rate_id);
33
+ }
34
+ }
35
+ return taxLines;
36
+ };
37
+ exports.applyTranslationsToTaxLines = applyTranslationsToTaxLines;
38
+ //# sourceMappingURL=apply-translations-to-tax-lines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-translations-to-tax-lines.js","sourceRoot":"","sources":["../../src/translations/apply-translations-to-tax-lines.ts"],"names":[],"mappings":";;;AAAA,6DAAwD;AAQxD;;;;;;;;GAQG;AACI,MAAM,2BAA2B,GAAG,KAAK,EAC9C,QAAuB,EACvB,MAA0B,EAC1B,SAAuB,EACvB,EAAE;IACF,MAAM,kBAAkB,GAAG,QAAQ,CAAC,GAAG,CACrC,CAAC,OAAoB,EAAE,EAAE,CAAC,CAAC;QACzB,EAAE,EAAE,OAAO,CAAC,OAAO;QACnB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC,CACH,CAAA;IAED,MAAM,IAAA,sCAAiB,EAAC;QACtB,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,kBAAkB;QAC3B,SAAS;KACV,CAAC,CAAA;IAEF,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAA;IACpD,KAAK,MAAM,cAAc,IAAI,kBAAkB,EAAE,CAAC;QAChD,IAAI,CAAC,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;YACxB,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAA;QAChE,CAAC;IACH,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAE,CAAA;QACzD,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAhCY,QAAA,2BAA2B,+BAgCvC"}
@@ -0,0 +1,7 @@
1
+ import { EtoContainer } from "@etohq/types";
2
+ export declare function applyTranslations({ localeCode, objects, container, }: {
3
+ localeCode: string | undefined;
4
+ objects: Record<string, any>[];
5
+ container: EtoContainer;
6
+ }): Promise<void>;
7
+ //# sourceMappingURL=apply-translations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-translations.d.ts","sourceRoot":"","sources":["../../src/translations/apply-translations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,cAAc,CAAA;AAsEhE,wBAAsB,iBAAiB,CAAC,EACtC,UAAU,EACV,OAAO,EACP,SAAS,GACV,EAAE;IACD,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAA;IAC9B,SAAS,EAAE,YAAY,CAAA;CACxB,iBAmEA"}