@ourofoundation/ouro-js 3.7.3 → 3.7.8

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 (179) hide show
  1. package/dist/{chunk-WRHPQNEL.js → chunk-3BZRQYRC.js} +2 -2
  2. package/dist/chunk-3BZRQYRC.js.map +1 -0
  3. package/dist/{chunk-F7W5ETUD.js → chunk-3C7PGJ33.js} +2 -2
  4. package/dist/{chunk-F7W5ETUD.js.map → chunk-3C7PGJ33.js.map} +1 -1
  5. package/dist/{chunk-ODFKZL7T.js → chunk-3OUJXTJZ.js} +2 -2
  6. package/dist/{chunk-ODFKZL7T.js.map → chunk-3OUJXTJZ.js.map} +1 -1
  7. package/dist/chunk-3RFYEL3A.cjs +2 -0
  8. package/dist/chunk-3RFYEL3A.cjs.map +1 -0
  9. package/dist/chunk-42ADEGDM.js +2 -0
  10. package/dist/chunk-42ADEGDM.js.map +1 -0
  11. package/dist/{chunk-4IMLVBKS.js → chunk-42WKTHH5.js} +2 -2
  12. package/dist/{chunk-4IMLVBKS.js.map → chunk-42WKTHH5.js.map} +1 -1
  13. package/dist/chunk-4NAPVNIX.js +2 -0
  14. package/dist/chunk-4NAPVNIX.js.map +1 -0
  15. package/dist/chunk-66AAHP6X.cjs +2 -0
  16. package/dist/chunk-66AAHP6X.cjs.map +1 -0
  17. package/dist/{chunk-Q6VQANTI.cjs → chunk-7YG2YDXN.cjs} +2 -2
  18. package/dist/{chunk-Q6VQANTI.cjs.map → chunk-7YG2YDXN.cjs.map} +1 -1
  19. package/dist/{chunk-4BJJ7VCS.js → chunk-ASLHRT77.js} +2 -2
  20. package/dist/{chunk-4BJJ7VCS.js.map → chunk-ASLHRT77.js.map} +1 -1
  21. package/dist/chunk-B3OK6NNR.cjs +2 -0
  22. package/dist/chunk-B3OK6NNR.cjs.map +1 -0
  23. package/dist/chunk-CRUIBV5F.js +2 -0
  24. package/dist/chunk-CRUIBV5F.js.map +1 -0
  25. package/dist/chunk-CW4TV3DY.js +2 -0
  26. package/dist/chunk-CW4TV3DY.js.map +1 -0
  27. package/dist/chunk-EMDUI7HF.js +2 -0
  28. package/dist/chunk-EMDUI7HF.js.map +1 -0
  29. package/dist/chunk-EVQAA7RQ.cjs +2 -0
  30. package/dist/chunk-EVQAA7RQ.cjs.map +1 -0
  31. package/dist/chunk-FJTFM3ML.cjs +2 -0
  32. package/dist/chunk-FJTFM3ML.cjs.map +1 -0
  33. package/dist/chunk-JRBBNFFI.cjs +2 -0
  34. package/dist/chunk-JRBBNFFI.cjs.map +1 -0
  35. package/dist/chunk-KHUEMWG2.js +2 -0
  36. package/dist/chunk-KHUEMWG2.js.map +1 -0
  37. package/dist/chunk-LD5G6GFH.cjs +2 -0
  38. package/dist/chunk-LD5G6GFH.cjs.map +1 -0
  39. package/dist/chunk-LGJ2LLH6.js +2 -0
  40. package/dist/chunk-LGJ2LLH6.js.map +1 -0
  41. package/dist/{chunk-43KB23BA.cjs → chunk-MNECKGIP.cjs} +2 -2
  42. package/dist/chunk-MNECKGIP.cjs.map +1 -0
  43. package/dist/chunk-NAISOUTE.cjs +2 -0
  44. package/dist/chunk-NAISOUTE.cjs.map +1 -0
  45. package/dist/{chunk-PE7JS2HJ.js → chunk-PB4XG5WM.js} +2 -2
  46. package/dist/{chunk-PE7JS2HJ.js.map → chunk-PB4XG5WM.js.map} +1 -1
  47. package/dist/{chunk-SAREC2M2.cjs → chunk-QWD7POET.cjs} +2 -2
  48. package/dist/{chunk-SAREC2M2.cjs.map → chunk-QWD7POET.cjs.map} +1 -1
  49. package/dist/{chunk-FPZA5343.cjs → chunk-UDTRH3OQ.cjs} +2 -2
  50. package/dist/{chunk-FPZA5343.cjs.map → chunk-UDTRH3OQ.cjs.map} +1 -1
  51. package/dist/chunk-UVVPXYJA.cjs +2 -0
  52. package/dist/chunk-UVVPXYJA.cjs.map +1 -0
  53. package/dist/chunk-W3N744QV.js +2 -0
  54. package/dist/chunk-W3N744QV.js.map +1 -0
  55. package/dist/chunk-W6AKVS4L.cjs +2 -0
  56. package/dist/chunk-W6AKVS4L.cjs.map +1 -0
  57. package/dist/{chunk-RJX57RHG.cjs → chunk-W6MBAIKZ.cjs} +2 -2
  58. package/dist/{chunk-RJX57RHG.cjs.map → chunk-W6MBAIKZ.cjs.map} +1 -1
  59. package/dist/chunk-XVN3DFMT.js +2 -0
  60. package/dist/chunk-XVN3DFMT.js.map +1 -0
  61. package/dist/chunk-Y6TOO6ET.js +2 -0
  62. package/dist/chunk-Y6TOO6ET.js.map +1 -0
  63. package/dist/chunk-YTIUJ72Q.js +2 -0
  64. package/dist/chunk-YTIUJ72Q.js.map +1 -0
  65. package/dist/chunk-Z66O3S3W.cjs +2 -0
  66. package/dist/chunk-Z66O3S3W.cjs.map +1 -0
  67. package/dist/{chunk-R736Q46O.cjs → chunk-ZRJUBEIK.cjs} +2 -2
  68. package/dist/{chunk-R736Q46O.cjs.map → chunk-ZRJUBEIK.cjs.map} +1 -1
  69. package/dist/index.cjs +1 -1
  70. package/dist/index.d.cts +8 -5
  71. package/dist/index.d.ts +8 -5
  72. package/dist/index.js +1 -1
  73. package/dist/schema/asset-filters.cjs +2 -0
  74. package/dist/schema/asset-filters.cjs.map +1 -0
  75. package/dist/schema/asset-filters.d.cts +145 -0
  76. package/dist/schema/asset-filters.d.ts +145 -0
  77. package/dist/schema/asset-filters.js +2 -0
  78. package/dist/schema/asset-filters.js.map +1 -0
  79. package/dist/schema/assets.cjs +1 -1
  80. package/dist/schema/assets.d.cts +63 -63
  81. package/dist/schema/assets.d.ts +63 -63
  82. package/dist/schema/assets.js +1 -1
  83. package/dist/schema/comments.cjs +1 -1
  84. package/dist/schema/comments.d.cts +654 -55
  85. package/dist/schema/comments.d.ts +654 -55
  86. package/dist/schema/comments.js +1 -1
  87. package/dist/schema/common.cjs +1 -1
  88. package/dist/schema/common.d.cts +18 -10
  89. package/dist/schema/common.d.ts +18 -10
  90. package/dist/schema/common.js +1 -1
  91. package/dist/schema/content-refs.cjs +2 -0
  92. package/dist/schema/content-refs.cjs.map +1 -0
  93. package/dist/schema/content-refs.d.cts +18 -0
  94. package/dist/schema/content-refs.d.ts +18 -0
  95. package/dist/schema/content-refs.js +2 -0
  96. package/dist/schema/content-refs.js.map +1 -0
  97. package/dist/schema/conversations.cjs +1 -1
  98. package/dist/schema/conversations.d.cts +360 -54
  99. package/dist/schema/conversations.d.ts +360 -54
  100. package/dist/schema/conversations.js +1 -1
  101. package/dist/schema/datasets.cjs +1 -1
  102. package/dist/schema/datasets.d.cts +137 -137
  103. package/dist/schema/datasets.d.ts +137 -137
  104. package/dist/schema/datasets.js +1 -1
  105. package/dist/schema/files.cjs +1 -1
  106. package/dist/schema/files.d.cts +88 -88
  107. package/dist/schema/files.d.ts +88 -88
  108. package/dist/schema/files.js +1 -1
  109. package/dist/schema/notifications.cjs +1 -1
  110. package/dist/schema/notifications.d.cts +3417 -41
  111. package/dist/schema/notifications.d.ts +3417 -41
  112. package/dist/schema/notifications.js +1 -1
  113. package/dist/schema/organizations.cjs +1 -1
  114. package/dist/schema/organizations.js +1 -1
  115. package/dist/schema/posts.cjs +1 -1
  116. package/dist/schema/posts.d.cts +697 -85
  117. package/dist/schema/posts.d.ts +697 -85
  118. package/dist/schema/posts.js +1 -1
  119. package/dist/schema/quests.cjs +1 -1
  120. package/dist/schema/quests.d.cts +278 -289
  121. package/dist/schema/quests.d.ts +278 -289
  122. package/dist/schema/quests.js +1 -1
  123. package/dist/schema/services.cjs +1 -1
  124. package/dist/schema/services.d.cts +2197 -118
  125. package/dist/schema/services.d.ts +2197 -118
  126. package/dist/schema/services.js +1 -1
  127. package/dist/schema/teams.cjs +1 -1
  128. package/dist/schema/teams.d.cts +29 -15
  129. package/dist/schema/teams.d.ts +29 -15
  130. package/dist/schema/teams.js +1 -1
  131. package/dist/utils/air/index.cjs +1 -1
  132. package/dist/utils/air/index.d.cts +13 -1
  133. package/dist/utils/air/index.d.ts +13 -1
  134. package/dist/utils/air/index.js +1 -1
  135. package/dist/utils/asset-filters.cjs +2 -0
  136. package/dist/utils/asset-filters.cjs.map +1 -0
  137. package/dist/utils/asset-filters.d.cts +15 -0
  138. package/dist/utils/asset-filters.d.ts +15 -0
  139. package/dist/utils/asset-filters.js +2 -0
  140. package/dist/utils/asset-filters.js.map +1 -0
  141. package/dist/utils/quest-submission.cjs +1 -1
  142. package/dist/utils/quest-submission.d.cts +6 -6
  143. package/dist/utils/quest-submission.d.ts +6 -6
  144. package/dist/utils/quest-submission.js +1 -1
  145. package/package.json +1 -1
  146. package/dist/chunk-2EXUO67W.cjs +0 -2
  147. package/dist/chunk-2EXUO67W.cjs.map +0 -1
  148. package/dist/chunk-43KB23BA.cjs.map +0 -1
  149. package/dist/chunk-4K6R6FZD.cjs +0 -2
  150. package/dist/chunk-4K6R6FZD.cjs.map +0 -1
  151. package/dist/chunk-AWBCE7ME.cjs +0 -2
  152. package/dist/chunk-AWBCE7ME.cjs.map +0 -1
  153. package/dist/chunk-E4ZLYXHD.cjs +0 -2
  154. package/dist/chunk-E4ZLYXHD.cjs.map +0 -1
  155. package/dist/chunk-G5YNDO2B.cjs +0 -2
  156. package/dist/chunk-G5YNDO2B.cjs.map +0 -1
  157. package/dist/chunk-GSUGFBTH.js +0 -2
  158. package/dist/chunk-GSUGFBTH.js.map +0 -1
  159. package/dist/chunk-GTFGYJSD.js +0 -2
  160. package/dist/chunk-GTFGYJSD.js.map +0 -1
  161. package/dist/chunk-HBCNAVZP.js +0 -2
  162. package/dist/chunk-HBCNAVZP.js.map +0 -1
  163. package/dist/chunk-J2BGBOOC.cjs +0 -2
  164. package/dist/chunk-J2BGBOOC.cjs.map +0 -1
  165. package/dist/chunk-JISPX5A6.js +0 -2
  166. package/dist/chunk-JISPX5A6.js.map +0 -1
  167. package/dist/chunk-P7N5DY3B.cjs +0 -2
  168. package/dist/chunk-P7N5DY3B.cjs.map +0 -1
  169. package/dist/chunk-PAACMXYE.cjs +0 -2
  170. package/dist/chunk-PAACMXYE.cjs.map +0 -1
  171. package/dist/chunk-T3HVRQBB.js +0 -2
  172. package/dist/chunk-T3HVRQBB.js.map +0 -1
  173. package/dist/chunk-WFGZLHG2.js +0 -2
  174. package/dist/chunk-WFGZLHG2.js.map +0 -1
  175. package/dist/chunk-WRHPQNEL.js.map +0 -1
  176. package/dist/chunk-YSWB7HAZ.js +0 -2
  177. package/dist/chunk-YSWB7HAZ.js.map +0 -1
  178. package/dist/chunk-ZNN4S4KJ.js +0 -2
  179. package/dist/chunk-ZNN4S4KJ.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/air/index.ts"],"names":["normalizeViewMode","raw","resolveDisplayConfig","attrs","base","UUID_RE","TYPED_ASSET_LINK_RE","LEGACY_ASSET_LINK_RE","ACTION_LINK_RE","VALID_ASSET_TYPES","parseAssetLinkShorthand","href","typed","assetType","legacy","parseActionLinkShorthand","match","parseOuroAssetUrl","siteUrl","pathname","url","siteHost","entity","slug","extractContent","item","getReferencesInContent","json","options","_a","content","users","_b","_c","unique","u","assets","linkedAssets","actions","seenAssetIds","a","seenActionIds","seenLinkedKeys","linkMark","m","actionShorthand","shorthand","id","parsed","key"],"mappings":"AAyBO,SAASA,EACdC,CAC6C,CAAA,CAC7C,OAAIA,CAAAA,GAAQ,UAAkB,MAC1BA,CAAAA,CAAAA,GAAQ,OAAgB,CAAA,SAAA,CAE1BA,IAAQ,SACRA,EAAAA,CAAAA,GAAQ,eACRA,CAAQ,GAAA,MAAA,EACRA,IAAQ,MAEDA,CAAAA,CAAAA,CACF,MACT,CAOO,SAASC,CAAqBC,CAAAA,CAAAA,CAInB,CAChB,IAAIC,EAAsB,EAAC,CAa3B,GAXID,CAAAA,CAAM,gBACRC,CACE,CAAA,OAAOD,EAAM,aAAkB,EAAA,QAAA,CAC3B,KAAK,KAAMA,CAAAA,CAAAA,CAAM,aAAa,CAAA,CAC9B,CAAE,GAAGA,CAAAA,CAAM,aAAc,CAAA,CAAA,CAI7BC,EAAK,eAAoB,GAAA,MAAA,EAAaD,CAAM,CAAA,eAAA,GAC9CC,EAAK,eAAkBD,CAAAA,CAAAA,CAAM,iBAE3BC,CAAK,CAAA,OAAA,GAAY,QAAaD,CAAM,CAAA,OAAA,CAAS,CAC/C,IAAMF,EAAME,CAAM,CAAA,OAAA,CAClBC,CAAK,CAAA,OAAA,CACH,OAAOH,CAAQ,EAAA,QAAA,CAAW,IAAK,CAAA,KAAA,CAAMA,CAAG,CAAIA,CAAAA,EAChD,CAEA,OAAOG,CACT,CA2BA,IAAMC,CAAAA,CACJ,8DAGIC,CAAAA,CAAAA,CAAsB,IAAI,MAC9B,CAAA,CAAA,0CAAA,EAA6CD,CAAO,CAAA,EAAA,CAAA,CACpD,GACF,CAGME,CAAAA,CAAAA,CAAuB,IAAI,MAAA,CAAO,WAAWF,CAAO,CAAA,EAAA,CAAA,CAAM,GAAG,CAG7DG,CAAAA,CAAAA,CAAiB,IAAI,MAAO,CAAA,CAAA,SAAA,EAAYH,CAAO,CAAA,EAAA,CAAA,CAAM,GAAG,CAExDI,CAAAA,CAAAA,CAAoB,IAAI,GAAA,CAAI,CAChC,MACA,CAAA,SAAA,CACA,MACA,CAAA,SAAA,CACA,QACA,OACF,CAAC,EASD,SAASC,CAAAA,CACPC,EAIO,CACP,IAAMC,CAAQN,CAAAA,CAAAA,CAAoB,KAAKK,CAAI,CAAA,CAC3C,GAAIC,CAAAA,CAAO,CACT,IAAMC,CAAAA,CAAYD,CAAM,CAAA,CAAC,EAAE,WAAY,EAAA,CACvC,OAAKH,CAAkB,CAAA,GAAA,CAAII,CAAS,CAC7B,CAAA,CAAE,EAAID,CAAAA,CAAAA,CAAM,CAAC,CAAG,CAAA,SAAA,CAAAC,EAAW,MAAQ,CAAA,KAAM,EADF,IAEhD,CACA,IAAMC,CAAAA,CAASP,EAAqB,IAAKI,CAAAA,CAAI,EAC7C,OAAIG,CAAAA,CAAe,CAAE,EAAIA,CAAAA,CAAAA,CAAO,CAAC,CAAA,CAAG,OAAQ,IAAK,CAAA,CAC1C,IACT,CAMA,SAASC,CAAyBJ,CAAAA,CAAAA,CAAqC,CACrE,IAAMK,EAAQR,CAAe,CAAA,IAAA,CAAKG,CAAI,CACtC,CAAA,OAAKK,EACE,CAAE,EAAA,CAAIA,CAAM,CAAA,CAAC,CAAE,CADH,CAAA,IAErB,CAOA,SAASC,EACPN,CACAO,CAAAA,CAAAA,CACuB,CACvB,IAAIC,EACJ,GAAI,CACF,GAAIR,CAAK,CAAA,UAAA,CAAW,GAAG,CACrBQ,CAAAA,CAAAA,CAAWR,CACN,CAAA,KAAA,CACL,IAAMS,CAAM,CAAA,IAAI,GAAIT,CAAAA,CAAI,EACxB,GAAIO,CAAAA,CAAS,CACX,IAAMG,EAAW,IAAI,GAAA,CAAIH,CAAO,CAAE,CAAA,IAAA,CAClC,GAAIE,CAAI,CAAA,IAAA,GAASC,CAAU,CAAA,OAAO,IACpC,CACAF,CAAAA,CAAWC,EAAI,SACjB,CACF,MAAQ,CACN,OAAO,IACT,CAGA,IAAMJ,CAAQG,CAAAA,CAAAA,CAAS,MACrB,+BACF,CAAA,CACA,GAAI,CAACH,CAAAA,CAAO,OAAO,IAAA,CAEnB,GAAM,EAAGH,CAAWS,CAAAA,CAAAA,CAAQC,CAAI,CAAIP,CAAAA,CAAAA,CACpC,OAAKP,CAAAA,CAAkB,IAAII,CAAS,CAAA,CAE7B,CAAE,SAAAA,CAAAA,CAAAA,CAAW,OAAQ,kBAAmBS,CAAAA,CAAM,CAAG,CAAA,IAAA,CAAM,mBAAmBC,CAAI,CAAE,CAFzC,CAAA,IAGhD,CAEA,IAAMC,CAAAA,CAAkBC,CAClB,EAAA,KAAA,CAAM,QAAQA,CAAI,CAAA,CAAUA,EAAK,GAAID,CAAAA,CAAc,EACnDC,CAAA,EAAA,IAAA,EAAAA,CAAM,CAAA,OAAA,CACJ,MAAM,OAAQA,CAAAA,CAAAA,CAAK,OAAO,CAAA,CACrBA,EAAK,OAAQ,CAAA,GAAA,CAAID,CAAc,CAAA,CAAE,MAC9BA,CAAAA,CAAAA,CAAeC,EAAK,OAAO,CAAA,CAC3BA,EAGhB,SAASC,CAAAA,CACPC,CACAC,CAAAA,CAAAA,CACA,CA5MF,IAAAC,CAAAA,CA6ME,GAAI,CAACF,CAAAA,EAAQ,EAACA,CAAA,EAAA,IAAA,EAAAA,CAAM,CAAA,OAAA,CAAA,CAClB,OAAO,CAAE,KAAA,CAAO,EAAI,CAAA,MAAA,CAAQ,EAAI,CAAA,OAAA,CAAS,EAAC,CAAG,aAAc,EAAG,CAChE,CAAA,IAAMG,EAAUH,CAAK,CAAA,OAAA,CAAQ,GAAIH,CAAAA,CAAc,EAAE,IAAK,EAAA,CAEhDO,EAAQD,CACX,CAAA,MAAA,CAAQL,GAAcA,CAAK,CAAA,IAAA,GAAS,SAAS,CAAA,CAC7C,IAAKA,CAAW,EAAA,CAnNrB,IAAAI,CAAAA,CAAAG,EAAAC,CAmNyB,CAAA,OAAA,CACnB,OAASJ,CAAAA,CAAAA,CAAAA,CAAAJ,EAAK,KAAL,GAAA,IAAA,CAAA,MAAA,CAAAI,EAAY,EACrB,CAAA,QAAA,CAAA,CAAA,CAAUG,EAAAP,CAAK,CAAA,KAAA,GAAL,IAAAO,CAAAA,MAAAA,CAAAA,CAAAA,CAAY,UAASC,CAAAR,CAAAA,CAAAA,CAAK,KAAL,GAAA,IAAA,CAAA,MAAA,CAAAQ,EAAY,QAC7C,CAAA,CAAA,CAAE,CACD,CAAA,MAAA,CAAO,CAACC,CAAeT,CAAAA,CAAAA,IAEnBS,EAAO,IACLC,CAAAA,CAAAA,EACEA,EAAE,OAAWV,EAAAA,CAAAA,CAAK,OAAWU,EAAAA,CAAAA,CAAE,UAAYV,CAAK,CAAA,OAAA,EAChDU,EAAE,QAAYV,EAAAA,CAAAA,CAAK,UAAYU,CAAE,CAAA,QAAA,GAAaV,CAAK,CAAA,QACxD,GAEAS,CAAO,CAAA,IAAA,CAAKT,CAAI,CAEXS,CAAAA,CAAAA,CAAAA,CACN,EAAE,CAAA,CAEDE,CAAkCN,CAAAA,CAAAA,CACrC,OACEL,CAAW,EAAA,CAtOlB,IAAAI,CAAAA,CAAAG,EAuOQ,OAAAP,CAAAA,CAAK,IAAS,GAAA,gBAAA,GAAA,CAAoBI,EAAAJ,CAAK,CAAA,KAAA,GAAL,YAAAI,CAAY,CAAA,EAAA,CAAA,EAAM,GAACG,CAAAP,CAAAA,CAAAA,CAAK,KAAL,GAAA,IAAA,EAAAO,EAAY,OACrE,CAAA,CAAA,CAAA,CACC,GAAI,CAAA,CAAC,CAAE,KAAA7B,CAAAA,CAAM,CAAoC,IAAA,CAChD,GAAIA,CAAM,CAAA,EAAA,CACV,UAAWA,CAAM,CAAA,SAAA,CACjB,IAAK,OACP,CAAA,CAAE,CACD,CAAA,MAAA,CAAO,CAAC+B,CAAiCT,CAAAA,CAAAA,IACnCS,CAAO,CAAA,IAAA,CAAMC,GAAMA,CAAE,CAAA,EAAA,GAAOV,CAAK,CAAA,EAAE,GACtCS,CAAO,CAAA,IAAA,CAAKT,CAAI,CAEXS,CAAAA,CAAAA,CAAAA,CACN,EAAE,CAAA,CAGDG,CAAiC,CAAA,GACjCC,CAAoC,CAAA,GACpCC,CAAe,CAAA,IAAI,IAAIH,CAAO,CAAA,GAAA,CAAKI,CAAMA,EAAAA,CAAAA,CAAE,EAAE,CAAC,CAAA,CAC9CC,EAAgB,IAAI,GAAA,CACpBC,EAAiB,IAAI,GAAA,CAE3B,IAAWjB,IAAAA,CAAAA,IAAQK,EAAS,CAC1B,GAAA,CAAIL,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAM,IAAS,IAAA,MAAA,EAAU,EAACA,CAAAA,EAAA,MAAAA,CAAM,CAAA,KAAA,CAAA,CAAO,SAC3C,IAAMkB,CAAAA,CAAWlB,EAAK,KAAM,CAAA,IAAA,CAAMmB,CAAWA,EAAAA,CAAAA,CAAE,OAAS,MAAM,CAAA,CAC9D,GAAI,EAAA,CAACf,EAAAc,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAU,CAAA,KAAA,GAAV,MAAAd,CAAiB,CAAA,IAAA,CAAA,CAAM,SAE5B,IAAMlB,CAAAA,CAAegC,EAAS,KAAM,CAAA,IAAA,CAE9BE,CAAkB9B,CAAAA,CAAAA,CAAyBJ,CAAI,CACrD,CAAA,GAAIkC,CAAiB,CAAA,CACdJ,EAAc,GAAII,CAAAA,CAAAA,CAAgB,EAAE,CAAA,GACvCJ,EAAc,GAAII,CAAAA,CAAAA,CAAgB,EAAE,CACpCP,CAAAA,CAAAA,CAAQ,KAAK,CAAE,EAAA,CAAIO,CAAgB,CAAA,EAAA,CAAI,IAAK,MAAO,CAAC,GAEtD,QACF,CAEA,IAAMC,CAAYpC,CAAAA,CAAAA,CAAwBC,CAAI,CAAA,CAC9C,GAAImC,CAAW,CAAA,CACb,IAAMC,CAAKD,CAAAA,CAAAA,CAAU,GAChBP,CAAa,CAAA,GAAA,CAAIQ,CAAE,CAAA,GACtBR,EAAa,GAAIQ,CAAAA,CAAE,CACfD,CAAAA,CAAAA,CAAU,OACZV,CAAO,CAAA,IAAA,CAAK,CAAE,EAAA,CAAAW,EAAI,GAAK,CAAA,MAAA,CAAQ,OAAQ,IAAK,CAAC,EAE7CX,CAAO,CAAA,IAAA,CAAK,CACV,EAAA,CAAAW,EACA,SAAWD,CAAAA,CAAAA,CAAU,SACrB,CAAA,GAAA,CAAK,OACL,MAAQ,CAAA,KACV,CAAC,CAAA,CAAA,CAGL,QACF,CAGA,IAAME,EAAS/B,CAAkBN,CAAAA,CAAAA,CAAMiB,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAS,OAAO,CAAA,CACvD,GAAIoB,CAAQ,CAAA,CACV,IAAMC,CAAAA,CAAM,GAAGD,CAAO,CAAA,SAAS,CAAIA,CAAAA,EAAAA,CAAAA,CAAO,MAAM,CAAIA,CAAAA,EAAAA,CAAAA,CAAO,IAAI,CAC1DN,CAAAA,CAAAA,CAAAA,CAAe,IAAIO,CAAG,CAAA,GACzBP,CAAe,CAAA,GAAA,CAAIO,CAAG,CACtBZ,CAAAA,CAAAA,CAAa,KAAKW,CAAM,CAAA,EAE5B,CACF,CAEA,OAAO,CACL,KAAA,CAAAjB,EACA,MAAAK,CAAAA,CAAAA,CACA,QAAAE,CACA,CAAA,YAAA,CAAAD,CACF,CACF","file":"chunk-CRUIBV5F.js","sourcesContent":["import { Content } from \"../../schema/posts\";\nimport { Profile } from \"../../schema/users\";\n\nexport interface DataFilter {\n column: string;\n value: string;\n operator: string;\n active?: boolean;\n}\n\nexport interface DisplayConfig {\n /** Dataset: ID of a saved visualization to render instead of the default chart. */\n visualizationId?: string | null;\n /** Dataset: column filters applied to the data. */\n filters?: DataFilter[];\n /** Route: ID of a specific action to preview (status, logs, side-effect assets). */\n actionId?: string | null;\n /** Route: author-provided defaults for an interactive route form. */\n defaultValues?: Record<string, unknown>;\n}\n\n/**\n * Normalize legacy viewMode values to the current set.\n * \"chart\" → \"preview\", \"default\" → \"card\", anything else → \"card\".\n */\nexport function normalizeViewMode(\n raw: string | undefined | null\n): \"card\" | \"preview\" | \"interactive\" | \"list\" {\n if (raw === \"default\") return \"card\";\n if (raw === \"chart\") return \"preview\";\n if (\n raw === \"preview\" ||\n raw === \"interactive\" ||\n raw === \"card\" ||\n raw === \"list\"\n )\n return raw;\n return \"card\";\n}\n\n/**\n * Build a DisplayConfig from node/element attributes, handling the legacy\n * flat `visualizationId` / `filters` attrs and the new `displayConfig` object.\n * Prefers values inside `displayConfig` when present.\n */\nexport function resolveDisplayConfig(attrs: {\n displayConfig?: DisplayConfig | string | null;\n visualizationId?: string | null;\n filters?: DataFilter[] | string | null;\n}): DisplayConfig {\n let base: DisplayConfig = {};\n\n if (attrs.displayConfig) {\n base =\n typeof attrs.displayConfig === \"string\"\n ? JSON.parse(attrs.displayConfig)\n : { ...attrs.displayConfig };\n }\n\n // Fall back to legacy flat attrs when displayConfig doesn't carry them\n if (base.visualizationId === undefined && attrs.visualizationId) {\n base.visualizationId = attrs.visualizationId;\n }\n if (base.filters === undefined && attrs.filters) {\n const raw = attrs.filters;\n base.filters =\n typeof raw === \"string\" ? JSON.parse(raw) : raw;\n }\n\n return base;\n}\n\nexport interface InlineAssetAttrs {\n id: string;\n assetType: string;\n viewMode: \"card\" | \"preview\" | \"interactive\" | \"list\";\n displayConfig?: DisplayConfig | null;\n /** @deprecated Use displayConfig.filters */\n filters?: any;\n /** @deprecated Use displayConfig.visualizationId */\n visualizationId?: string | null;\n partial?: boolean;\n}\n\n/** Assets pulled from Air JSON: embedded blocks or link href shorthands. */\nexport type ExtractedContentAsset =\n | { id: string; assetType: string; via: \"embed\" }\n | { id: string; assetType: string; via: \"link\"; legacy: false }\n | { id: string; via: \"link\"; legacy: true };\n\ninterface LinkedAssetRef {\n assetType: string;\n entity: string;\n slug: string;\n}\n\n/** UUID v4 pattern for inline link hrefs */\nconst UUID_RE =\n \"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\";\n\n/** Shorthand link hrefs: `post:<uuid>`, `file:<uuid>`, … (preferred over legacy `asset:<uuid>`). */\nconst TYPED_ASSET_LINK_RE = new RegExp(\n `^(post|dataset|file|service|route|quest):(${UUID_RE})$`,\n \"i\"\n);\n\n/** @deprecated Prefer `post:<uuid>` etc.; still supported and resolved server-side. */\nconst LEGACY_ASSET_LINK_RE = new RegExp(`^asset:(${UUID_RE})$`, \"i\");\n\n/** Route action link hrefs: `action:<uuid>` → history page for that run. */\nconst ACTION_LINK_RE = new RegExp(`^action:(${UUID_RE})$`, \"i\");\n\nconst VALID_ASSET_TYPES = new Set([\n \"post\",\n \"dataset\",\n \"file\",\n \"service\",\n \"route\",\n \"quest\",\n]);\n\nexport type ExtractedContentAction = { id: string; via: \"link\" };\n\n/**\n * Parse an inline link `href` for Ouro asset shorthands.\n * - `post:<uuid>`, `file:<uuid>`, … → typed (asset type known from prefix)\n * - `asset:<uuid>` → legacy (type resolved via DB when creating connections)\n */\nfunction parseAssetLinkShorthand(\n href: string\n):\n | { id: string; assetType: string; legacy: false }\n | { id: string; legacy: true }\n | null {\n const typed = TYPED_ASSET_LINK_RE.exec(href);\n if (typed) {\n const assetType = typed[1].toLowerCase();\n if (!VALID_ASSET_TYPES.has(assetType)) return null;\n return { id: typed[2], assetType, legacy: false };\n }\n const legacy = LEGACY_ASSET_LINK_RE.exec(href);\n if (legacy) return { id: legacy[1], legacy: true };\n return null;\n}\n\n/**\n * Parse an inline link `href` for a route action shorthand: `action:<uuid>`.\n * Actions are not assets — callers must resolve them separately.\n */\nfunction parseActionLinkShorthand(href: string): { id: string } | null {\n const match = ACTION_LINK_RE.exec(href);\n if (!match) return null;\n return { id: match[1] };\n}\n\n/**\n * Parse an Ouro site URL into its asset components.\n * Accepts both absolute URLs (https://ouro.foundation/posts/entity/slug)\n * and relative paths (/posts/entity/slug).\n */\nfunction parseOuroAssetUrl(\n href: string,\n siteUrl?: string\n): LinkedAssetRef | null {\n let pathname: string;\n try {\n if (href.startsWith(\"/\")) {\n pathname = href;\n } else {\n const url = new URL(href);\n if (siteUrl) {\n const siteHost = new URL(siteUrl).host;\n if (url.host !== siteHost) return null;\n }\n pathname = url.pathname;\n }\n } catch {\n return null;\n }\n\n // Pattern: /{assetType}s/{entity}/{slug}\n const match = pathname.match(\n /^\\/(\\w+)s\\/([^/]+)\\/([^/?#]+)/\n );\n if (!match) return null;\n\n const [, assetType, entity, slug] = match;\n if (!VALID_ASSET_TYPES.has(assetType)) return null;\n\n return { assetType, entity: decodeURIComponent(entity), slug: decodeURIComponent(slug) };\n}\n\nconst extractContent = (item: any): any => {\n if (Array.isArray(item)) return item.map(extractContent);\n if (item?.content) {\n if (Array.isArray(item.content))\n return item.content.map(extractContent).flat();\n else return extractContent(item.content);\n } else return item; // leaf\n};\n\nfunction getReferencesInContent(\n json: Content[\"json\"],\n options?: { siteUrl?: string }\n) {\n if (!json || !json?.content)\n return { users: [], assets: [], actions: [], linkedAssets: [] };\n const content = json.content.map(extractContent).flat();\n\n const users = content\n .filter((item: any) => item.type === \"mention\")\n .map((item: any) => ({\n user_id: item.attrs?.id,\n username: item.attrs?.label || item.attrs?.username,\n }))\n .reduce((unique: any[], item: any) => {\n if (\n !unique.some(\n (u) =>\n (u.user_id && item.user_id && u.user_id === item.user_id) ||\n (u.username && item.username && u.username === item.username)\n )\n ) {\n unique.push(item);\n }\n return unique;\n }, []) as Partial<Profile>[];\n\n const assets: ExtractedContentAsset[] = content\n .filter(\n (item: any) =>\n item.type === \"assetComponent\" && item.attrs?.id && !item.attrs?.partial\n )\n .map(({ attrs }: { attrs: InlineAssetAttrs }) => ({\n id: attrs.id,\n assetType: attrs.assetType,\n via: \"embed\" as const,\n }))\n .reduce((unique: ExtractedContentAsset[], item: ExtractedContentAsset) => {\n if (!unique.some((u) => u.id === item.id)) {\n unique.push(item);\n }\n return unique;\n }, []);\n\n // Extract asset / action references from link marks\n const linkedAssets: LinkedAssetRef[] = [];\n const actions: ExtractedContentAction[] = [];\n const seenAssetIds = new Set(assets.map((a) => a.id));\n const seenActionIds = new Set<string>();\n const seenLinkedKeys = new Set<string>();\n\n for (const item of content) {\n if (item?.type !== \"text\" || !item?.marks) continue;\n const linkMark = item.marks.find((m: any) => m.type === \"link\");\n if (!linkMark?.attrs?.href) continue;\n\n const href: string = linkMark.attrs.href;\n\n const actionShorthand = parseActionLinkShorthand(href);\n if (actionShorthand) {\n if (!seenActionIds.has(actionShorthand.id)) {\n seenActionIds.add(actionShorthand.id);\n actions.push({ id: actionShorthand.id, via: \"link\" });\n }\n continue;\n }\n\n const shorthand = parseAssetLinkShorthand(href);\n if (shorthand) {\n const id = shorthand.id;\n if (!seenAssetIds.has(id)) {\n seenAssetIds.add(id);\n if (shorthand.legacy) {\n assets.push({ id, via: \"link\", legacy: true });\n } else {\n assets.push({\n id,\n assetType: shorthand.assetType,\n via: \"link\",\n legacy: false,\n });\n }\n }\n continue;\n }\n\n // Check for Ouro site URLs\n const parsed = parseOuroAssetUrl(href, options?.siteUrl);\n if (parsed) {\n const key = `${parsed.assetType}:${parsed.entity}:${parsed.slug}`;\n if (!seenLinkedKeys.has(key)) {\n seenLinkedKeys.add(key);\n linkedAssets.push(parsed);\n }\n }\n }\n\n return {\n users,\n assets,\n actions,\n linkedAssets,\n };\n}\n\nexport {\n getReferencesInContent,\n parseActionLinkShorthand,\n parseAssetLinkShorthand,\n parseOuroAssetUrl,\n};\n"]}
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-G6GCUGMM.js';import {a,e}from'./chunk-3BZRQYRC.js';import {enum as _enum,object,string,optional,any,nullable,number,array,boolean,uuid,discriminatedUnion,literal}from'zod';var te=_enum(["follow","like","comment","reply","mention","reference","invite","payment","event","share","badge","reaction","deposit","action-complete","action-failed","quest-entry","quest-entry-accepted","onboarding-complete","onboarding-action-required","route-earnings-milestone","route-payout","ownership-transfer","content-moved","content-deleted","other"]),w=object({assetId:string(),assetType:a}),r=object({assetId:optional(string()),assetType:optional(a),id:optional(string()),asset_type:optional(a),name:optional(nullable(string())),user_id:optional(string()),preview:optional(any()),description:optional(any()),slug:optional(nullable(string())),name_url_slug:optional(nullable(string())),org_id:optional(string()),parent_id:optional(nullable(string())),parent:optional(any()),user:optional(any()),organization:optional(any()),team:optional(any())}),h=object({assetId:string(),assetType:a}),l=object({slug:string(),assetType:a}),z=object({name:string(),description:optional(nullable(string())),slug:optional(nullable(string()))}),S=object({id:string(),name:optional(nullable(string()))}),_=object({id:string(),asset_id:optional(nullable(string())),asset_type:optional(nullable(string())),asset_name:optional(nullable(string()))}),i={text:optional(string())},x=object({...i,asset:optional(r),parent:optional(h),root:optional(l)}),C=object({...i,asset:optional(r),parent:optional(h),root:optional(l)}),E=C,I=object({...i,asset:optional(r),referencedAssetIds:optional(array(string())),referencedAssets:optional(array(w)),referenceCount:optional(number())}),O=object({...i,asset:optional(r),reaction_label:optional(string()),reaction_verb:optional(string()),aggregate_count:optional(number())}),g=object({...i,asset:optional(r)}),P=g,B=object({...i}),Q=object({...i,organization:optional(object({id:string(),name:string()}))}),k=object({...i,asset:optional(r),currency:optional(e),value:optional(number())}),M=object({...i,value:optional(number())}),D=object({...i,badge:optional(z)}),N=object({...i,status:optional(_enum(["success","error","timed-out"])),duration:optional(number()),route:optional(object({id:string(),name:optional(nullable(string()))}))}),F=N,j=object({...i,quest:optional(S),entry:optional(_)}),L=object({...i,quest:optional(S),entry:optional(_),reviewer:optional(nullable(object({id:string(),username:optional(nullable(string()))})))}),U=object({...i}),V=object({...i,requirements:optional(array(string()))}),Z=object({...i,milestone_cents:optional(number()),total_earnings_cents:optional(number())}),G=object({...i,payout_cents:optional(number()),gross_cents:optional(number()),platform_fee_cents:optional(number()),assets:optional(any()),asset_names:optional(array(string())),invoice_id:optional(string())}),T=object({...i,team_id:optional(string()),team_name:optional(nullable(string())),asset_name:optional(nullable(string())),asset_type:optional(nullable(string())),action:optional(string()),reason:optional(nullable(string())),moderator_scope:optional(_enum(["platform","team"]))}),H=T,J=object({...i,event:optional(object({type:_enum(["success","error"])}))}),K=object({...i,asset:optional(r)}),W=object({...i}),X=object({id:uuid(),source_user_id:uuid(),destination_user_id:uuid(),org_id:optional(nullable(uuid())),asset_id:optional(nullable(uuid())),reaction_id:optional(nullable(uuid())),action_id:optional(nullable(uuid())),parent_asset_id:optional(nullable(uuid())),root_asset_id:optional(nullable(uuid())),viewed:boolean(),created_at:string(),last_updated:string(),source_user:optional(b.partial()),asset:optional(r)}),o=(v,b)=>X.extend({type:literal(v),content:b}),ne=discriminatedUnion("type",[o("follow",B),o("like",K),o("comment",C),o("reply",E),o("mention",x),o("reference",I),o("invite",Q),o("payment",k),o("event",J),o("share",g),o("badge",D),o("reaction",O),o("deposit",M),o("action-complete",N),o("action-failed",F),o("quest-entry",j),o("quest-entry-accepted",L),o("onboarding-complete",U),o("onboarding-action-required",V),o("route-earnings-milestone",Z),o("route-payout",G),o("ownership-transfer",P),o("content-moved",T),o("content-deleted",H),o("other",W)]);export{J as A,ne as B,te as a,w as b,r as c,h as d,l as e,x as f,C as g,E as h,I as i,O as j,g as k,P as l,B as m,Q as n,k as o,M as p,D as q,N as r,j as s,L as t,U as u,V as v,Z as w,G as x,T as y,H as z};//# sourceMappingURL=chunk-CW4TV3DY.js.map
2
+ //# sourceMappingURL=chunk-CW4TV3DY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schema/notifications.ts"],"names":["NotificationTypeSchema","zodEnum","NotificationAssetRefSchema","object","string","AssetTypeSchema","NotificationContentAssetSchema","optional","nullable","any","NotificationParentRefSchema","NotificationRootInfoSchema","NotificationBadgeContentSchema","NotificationQuestRefSchema","NotificationQuestEntryRefSchema","NotificationContentBase","MentionContentSchema","CommentContentSchema","ReplyContentSchema","ReferenceContentSchema","array","number","ReactionContentSchema","ShareContentSchema","OwnershipTransferContentSchema","FollowContentSchema","InviteContentSchema","PaymentContentSchema","PriceCurrencySchema","DepositContentSchema","BadgeContentSchema","ActionCompleteContentSchema","ActionFailedContentSchema","QuestEntryContentSchema","QuestEntryAcceptedContentSchema","OnboardingCompleteContentSchema","OnboardingActionRequiredContentSchema","RouteEarningsMilestoneContentSchema","RoutePayoutContentSchema","ContentMovedContentSchema","ContentDeletedContentSchema","EventContentSchema","LikeContentSchema","OtherContentSchema","NotificationRowBaseSchema","uuid","boolean","ProfileSchema","notificationVariant","type","content","literal","NotificationSchema","discriminatedUnion"],"mappings":"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","file":"chunk-CW4TV3DY.js","sourcesContent":["import {\n object,\n string,\n boolean,\n number,\n array,\n any,\n type z,\n enum as zodEnum,\n optional,\n nullable,\n uuid,\n literal,\n discriminatedUnion,\n} from \"zod\";\n\nimport { AssetTypeSchema, PriceCurrencySchema } from \"./common\";\nimport { ProfileSchema } from \"./users\";\n\nconst NotificationTypeSchema = zodEnum([\n \"follow\",\n \"like\",\n \"comment\",\n \"reply\",\n \"mention\",\n \"reference\",\n \"invite\",\n \"payment\",\n \"event\",\n \"share\",\n \"badge\",\n \"reaction\",\n \"deposit\",\n \"action-complete\",\n \"action-failed\",\n \"quest-entry\",\n \"quest-entry-accepted\",\n \"onboarding-complete\",\n \"onboarding-action-required\",\n \"route-earnings-milestone\",\n \"route-payout\",\n \"ownership-transfer\",\n \"content-moved\",\n \"content-deleted\",\n \"other\",\n]);\n\n/** Stored pointer written when creating a notification. */\nconst NotificationAssetRefSchema = object({\n assetId: string(),\n assetType: AssetTypeSchema,\n});\n\n/**\n * `content.asset` is a ref at write time and a list-row asset after API\n * hydration (which replaces the ref and may attach `parent`).\n */\nconst NotificationContentAssetSchema = object({\n assetId: optional(string()),\n assetType: optional(AssetTypeSchema),\n id: optional(string()),\n asset_type: optional(AssetTypeSchema),\n name: optional(nullable(string())),\n user_id: optional(string()),\n preview: optional(any()),\n description: optional(any()),\n slug: optional(nullable(string())),\n name_url_slug: optional(nullable(string())),\n org_id: optional(string()),\n parent_id: optional(nullable(string())),\n parent: optional(any()),\n user: optional(any()),\n organization: optional(any()),\n team: optional(any()),\n});\n\nconst NotificationParentRefSchema = object({\n assetId: string(),\n assetType: AssetTypeSchema,\n});\n\nconst NotificationRootInfoSchema = object({\n slug: string(),\n assetType: AssetTypeSchema,\n});\n\nconst NotificationBadgeContentSchema = object({\n name: string(),\n description: optional(nullable(string())),\n slug: optional(nullable(string())),\n});\n\nconst NotificationQuestRefSchema = object({\n id: string(),\n name: optional(nullable(string())),\n});\n\nconst NotificationQuestEntryRefSchema = object({\n id: string(),\n asset_id: optional(nullable(string())),\n asset_type: optional(nullable(string())),\n asset_name: optional(nullable(string())),\n});\n\nconst NotificationContentBase = {\n text: optional(string()),\n};\n\nconst MentionContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n parent: optional(NotificationParentRefSchema),\n root: optional(NotificationRootInfoSchema),\n});\n\nconst CommentContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n parent: optional(NotificationParentRefSchema),\n root: optional(NotificationRootInfoSchema),\n});\n\nconst ReplyContentSchema = CommentContentSchema;\n\nconst ReferenceContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n referencedAssetIds: optional(array(string())),\n referencedAssets: optional(array(NotificationAssetRefSchema)),\n referenceCount: optional(number()),\n});\n\nconst ReactionContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n reaction_label: optional(string()),\n reaction_verb: optional(string()),\n aggregate_count: optional(number()),\n});\n\nconst ShareContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n});\n\nconst OwnershipTransferContentSchema = ShareContentSchema;\n\nconst FollowContentSchema = object({\n ...NotificationContentBase,\n});\n\nconst InviteContentSchema = object({\n ...NotificationContentBase,\n organization: optional(\n object({\n id: string(),\n name: string(),\n })\n ),\n});\n\nconst PaymentContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n currency: optional(PriceCurrencySchema),\n value: optional(number()),\n});\n\nconst DepositContentSchema = object({\n ...NotificationContentBase,\n value: optional(number()),\n});\n\nconst BadgeContentSchema = object({\n ...NotificationContentBase,\n badge: optional(NotificationBadgeContentSchema),\n});\n\nconst ActionCompleteContentSchema = object({\n ...NotificationContentBase,\n status: optional(zodEnum([\"success\", \"error\", \"timed-out\"])),\n duration: optional(number()),\n route: optional(\n object({\n id: string(),\n name: optional(nullable(string())),\n })\n ),\n});\n\nconst ActionFailedContentSchema = ActionCompleteContentSchema;\n\nconst QuestEntryContentSchema = object({\n ...NotificationContentBase,\n quest: optional(NotificationQuestRefSchema),\n entry: optional(NotificationQuestEntryRefSchema),\n});\n\nconst QuestEntryAcceptedContentSchema = object({\n ...NotificationContentBase,\n quest: optional(NotificationQuestRefSchema),\n entry: optional(NotificationQuestEntryRefSchema),\n reviewer: optional(\n nullable(\n object({\n id: string(),\n username: optional(nullable(string())),\n })\n )\n ),\n});\n\nconst OnboardingCompleteContentSchema = object({\n ...NotificationContentBase,\n});\n\nconst OnboardingActionRequiredContentSchema = object({\n ...NotificationContentBase,\n requirements: optional(array(string())),\n});\n\nconst RouteEarningsMilestoneContentSchema = object({\n ...NotificationContentBase,\n milestone_cents: optional(number()),\n total_earnings_cents: optional(number()),\n});\n\nconst RoutePayoutContentSchema = object({\n ...NotificationContentBase,\n payout_cents: optional(number()),\n gross_cents: optional(number()),\n platform_fee_cents: optional(number()),\n assets: optional(any()),\n asset_names: optional(array(string())),\n invoice_id: optional(string()),\n});\n\nconst ContentMovedContentSchema = object({\n ...NotificationContentBase,\n team_id: optional(string()),\n team_name: optional(nullable(string())),\n asset_name: optional(nullable(string())),\n asset_type: optional(nullable(string())),\n action: optional(string()),\n reason: optional(nullable(string())),\n moderator_scope: optional(zodEnum([\"platform\", \"team\"])),\n});\n\nconst ContentDeletedContentSchema = ContentMovedContentSchema;\n\nconst EventContentSchema = object({\n ...NotificationContentBase,\n event: optional(\n object({\n type: zodEnum([\"success\", \"error\"]),\n })\n ),\n});\n\nconst LikeContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n});\n\nconst OtherContentSchema = object({\n ...NotificationContentBase,\n});\n\nconst NotificationRowBaseSchema = object({\n id: uuid(),\n source_user_id: uuid(),\n destination_user_id: uuid(),\n org_id: optional(nullable(uuid())),\n asset_id: optional(nullable(uuid())),\n reaction_id: optional(nullable(uuid())),\n action_id: optional(nullable(uuid())),\n parent_asset_id: optional(nullable(uuid())),\n root_asset_id: optional(nullable(uuid())),\n viewed: boolean(),\n created_at: string(),\n last_updated: string(),\n /** Joined on list/read responses. */\n source_user: optional(ProfileSchema.partial()),\n /** Joined `assets` row for `asset_id` (not `content.asset`). */\n asset: optional(NotificationContentAssetSchema),\n});\n\nconst notificationVariant = <\n T extends z.infer<typeof NotificationTypeSchema>,\n C extends z.ZodType,\n>(\n type: T,\n content: C\n) =>\n NotificationRowBaseSchema.extend({\n type: literal(type),\n content,\n });\n\nconst NotificationSchema = discriminatedUnion(\"type\", [\n notificationVariant(\"follow\", FollowContentSchema),\n notificationVariant(\"like\", LikeContentSchema),\n notificationVariant(\"comment\", CommentContentSchema),\n notificationVariant(\"reply\", ReplyContentSchema),\n notificationVariant(\"mention\", MentionContentSchema),\n notificationVariant(\"reference\", ReferenceContentSchema),\n notificationVariant(\"invite\", InviteContentSchema),\n notificationVariant(\"payment\", PaymentContentSchema),\n notificationVariant(\"event\", EventContentSchema),\n notificationVariant(\"share\", ShareContentSchema),\n notificationVariant(\"badge\", BadgeContentSchema),\n notificationVariant(\"reaction\", ReactionContentSchema),\n notificationVariant(\"deposit\", DepositContentSchema),\n notificationVariant(\"action-complete\", ActionCompleteContentSchema),\n notificationVariant(\"action-failed\", ActionFailedContentSchema),\n notificationVariant(\"quest-entry\", QuestEntryContentSchema),\n notificationVariant(\"quest-entry-accepted\", QuestEntryAcceptedContentSchema),\n notificationVariant(\"onboarding-complete\", OnboardingCompleteContentSchema),\n notificationVariant(\n \"onboarding-action-required\",\n OnboardingActionRequiredContentSchema\n ),\n notificationVariant(\n \"route-earnings-milestone\",\n RouteEarningsMilestoneContentSchema\n ),\n notificationVariant(\"route-payout\", RoutePayoutContentSchema),\n notificationVariant(\"ownership-transfer\", OwnershipTransferContentSchema),\n notificationVariant(\"content-moved\", ContentMovedContentSchema),\n notificationVariant(\"content-deleted\", ContentDeletedContentSchema),\n notificationVariant(\"other\", OtherContentSchema),\n]);\n\ntype Notification = z.infer<typeof NotificationSchema>;\ntype NotificationType = z.infer<typeof NotificationTypeSchema>;\ntype NotificationOfType<T extends NotificationType> = Extract<\n Notification,\n { type: T }\n>;\ntype NotificationContentAsset = z.infer<typeof NotificationContentAssetSchema>;\ntype NotificationAssetRef = z.infer<typeof NotificationAssetRefSchema>;\n\nexport {\n NotificationSchema,\n NotificationTypeSchema,\n NotificationAssetRefSchema,\n NotificationContentAssetSchema,\n NotificationParentRefSchema,\n NotificationRootInfoSchema,\n MentionContentSchema,\n CommentContentSchema,\n ReplyContentSchema,\n ReferenceContentSchema,\n ReactionContentSchema,\n ShareContentSchema,\n OwnershipTransferContentSchema,\n FollowContentSchema,\n InviteContentSchema,\n PaymentContentSchema,\n DepositContentSchema,\n BadgeContentSchema,\n ActionCompleteContentSchema,\n QuestEntryContentSchema,\n QuestEntryAcceptedContentSchema,\n OnboardingCompleteContentSchema,\n OnboardingActionRequiredContentSchema,\n RouteEarningsMilestoneContentSchema,\n RoutePayoutContentSchema,\n ContentMovedContentSchema,\n ContentDeletedContentSchema,\n EventContentSchema,\n};\nexport type {\n Notification,\n NotificationType,\n NotificationOfType,\n NotificationContentAsset,\n NotificationAssetRef,\n};\n"]}
@@ -0,0 +1,2 @@
1
+ import {a as a$1}from'./chunk-WE6CXCEQ.js';import {b as b$1}from'./chunk-KHUEMWG2.js';import {f,e,g,a}from'./chunk-PB4XG5WM.js';import {b}from'./chunk-G6GCUGMM.js';import {a as a$2}from'./chunk-42ADEGDM.js';import {uuidv7}from'uuidv7';import {optional,literal,nullable,object,array,string,record,any,number}from'zod';var u=f.extend({asset_type:literal("comment").default("comment"),preview:optional(nullable(object({type:string().refine(o=>o==="doc"),content:array(record(string(),any()))}).default({type:"doc",content:[]})))}),w=u.partial().omit({id:true,user_id:true}).extend({asset_type:literal("comment").default("comment"),id:string().default(()=>uuidv7()),name:string().default(""),attribution:optional(nullable(e)).transform(o=>e.parse(o!=null?o:g)),created_at:string().default(()=>new Date().toISOString()),last_updated:string().default(()=>new Date().toISOString())}).transform(o=>a(o)),A=array(object({count:number()})),D=u.extend({content:optional(nullable(b$1)),assets:optional(nullable(array(f.partial()))),users:optional(nullable(array(b.partial()))),actions:optional(nullable(array(a$2))),reactions:optional(nullable(array(a$1))),replies:optional(nullable(A)),repliesCount:optional(number())});export{u as a,w as b,A as c,D as d};//# sourceMappingURL=chunk-EMDUI7HF.js.map
2
+ //# sourceMappingURL=chunk-EMDUI7HF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schema/comments.ts"],"names":["CommentSchema","AssetSchema","literal","optional","nullable","object","string","x","array","record","any","CreateCommentSchema","uuidv7","AttributionSchema","value","DEFAULT_ATTRIBUTION","normalizeAssetConfigForParsing","CommentRepliesAggregateSchema","number","ReadCommentSchema","ContentSchema","ProfileSchema","ContentActionRefSchema","reactionSchema"],"mappings":"6TAyBA,IAAMA,CAAgBC,CAAAA,CAAAA,CAAY,OAAO,CACvC,UAAA,CAAYC,OAAQ,CAAA,SAAS,CAAE,CAAA,OAAA,CAAQ,SAAS,CAChD,CAAA,OAAA,CAASC,QACPC,CAAAA,QAAAA,CACEC,MAAO,CAAA,CACL,KAAMC,MAAO,EAAA,CAAE,MAAQC,CAAAA,CAAAA,EAAMA,CAAM,GAAA,KAAK,EACxC,OAASC,CAAAA,KAAAA,CAAMC,MAAOH,CAAAA,MAAAA,EAAUI,CAAAA,GAAAA,EAAK,CAAC,CACxC,CAAC,CAAA,CAAE,OAAQ,CAAA,CAAE,KAAM,KAAO,CAAA,OAAA,CAAS,EAAG,CAAC,CACzC,CACF,CACF,CAAC,CAEKC,CAAAA,CAAAA,CAAsBX,CAAc,CAAA,OAAA,GACvC,IAAK,CAAA,CACJ,EAAI,CAAA,IAAA,CACJ,OAAS,CAAA,IACX,CAAC,CACA,CAAA,MAAA,CAAO,CACN,UAAA,CAAYE,OAAQ,CAAA,SAAS,EAAE,OAAQ,CAAA,SAAS,CAChD,CAAA,EAAA,CAAII,MAAO,EAAA,CAAE,QAAQ,IAAMM,MAAAA,EAAQ,CAAA,CACnC,IAAMN,CAAAA,MAAAA,GAAS,OAAQ,CAAA,EAAE,CACzB,CAAA,WAAA,CAAaH,QAASC,CAAAA,QAAAA,CAASS,CAAiB,CAAC,CAAA,CAAE,SAAWC,CAAAA,CAAAA,EAC5DD,CAAkB,CAAA,KAAA,CAAMC,GAAA,IAAAA,CAAAA,CAAAA,CAASC,CAAmB,CACtD,CACA,CAAA,UAAA,CAAYT,QAAS,CAAA,OAAA,CAAQ,IAAM,IAAI,IAAK,EAAA,CAAE,aAAa,CAAA,CAC3D,YAAcA,CAAAA,MAAAA,EAAS,CAAA,OAAA,CAAQ,IAAM,IAAI,IAAA,EAAO,CAAA,WAAA,EAAa,CAC/D,CAAC,CACA,CAAA,SAAA,CAAWQ,CAAUE,EAAAA,CAAAA,CAA+BF,CAAK,CAAC,EAMvDG,CAAgCT,CAAAA,KAAAA,CACpCH,MAAO,CAAA,CACL,KAAOa,CAAAA,MAAAA,EACT,CAAC,CACH,CAGMC,CAAAA,CAAAA,CAAoBnB,CAAc,CAAA,MAAA,CAAO,CAC7C,OAASG,CAAAA,QAAAA,CAASC,QAASgB,CAAAA,GAAa,CAAC,CAAA,CACzC,OAAQjB,QAASC,CAAAA,QAAAA,CAASI,KAAMP,CAAAA,CAAAA,CAAY,OAAQ,EAAC,CAAC,CAAC,CAAA,CACvD,KAAOE,CAAAA,QAAAA,CAASC,QAASI,CAAAA,KAAAA,CAAMa,EAAc,OAAQ,EAAC,CAAC,CAAC,CACxD,CAAA,OAAA,CAASlB,SAASC,QAASI,CAAAA,KAAAA,CAAMc,GAAsB,CAAC,CAAC,CAAA,CACzD,UAAWnB,QAASC,CAAAA,QAAAA,CAASI,KAAMe,CAAAA,GAAc,CAAC,CAAC,EACnD,OAASpB,CAAAA,QAAAA,CAASC,QAASa,CAAAA,CAA6B,CAAC,CAAA,CAEzD,aAAcd,QAASe,CAAAA,MAAAA,EAAQ,CACjC,CAAC","file":"chunk-EMDUI7HF.js","sourcesContent":["import { uuidv7 } from \"uuidv7\";\nimport {\n object,\n string,\n number,\n array,\n type z,\n record,\n any,\n literal,\n optional,\n nullable\n} from \"zod\";\n\nimport {\n AssetSchema,\n AttributionSchema,\n DEFAULT_ATTRIBUTION,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { ContentActionRefSchema } from \"./content-refs\";\nimport { ContentSchema } from \"./posts\";\nimport { reactionSchema } from \"./reactions\";\nimport { ProfileSchema } from \"./users\";\n\nconst CommentSchema = AssetSchema.extend({\n asset_type: literal(\"comment\").default(\"comment\"),\n preview: optional(\n nullable(\n object({\n type: string().refine((x) => x === \"doc\"),\n content: array(record(string(), any())),\n }).default({ type: \"doc\", content: [] })\n )\n ),\n});\n\nconst CreateCommentSchema = CommentSchema.partial()\n .omit({\n id: true,\n user_id: true,\n })\n .extend({\n asset_type: literal(\"comment\").default(\"comment\"),\n id: string().default(() => uuidv7()),\n name: string().default(\"\"),\n attribution: optional(nullable(AttributionSchema)).transform((value) =>\n AttributionSchema.parse(value ?? DEFAULT_ATTRIBUTION)\n ),\n created_at: string().default(() => new Date().toISOString()),\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\n/**\n * Supabase aggregate from `replies:connections!target_id(count)`.\n * List endpoints leave this as `[{ count }]`; prefer reading `replies[0]?.count`.\n */\nconst CommentRepliesAggregateSchema = array(\n object({\n count: number(),\n })\n);\n\n/** Comment as returned from read/list APIs, with content and resolved embeds. */\nconst ReadCommentSchema = CommentSchema.extend({\n content: optional(nullable(ContentSchema)),\n assets: optional(nullable(array(AssetSchema.partial()))),\n users: optional(nullable(array(ProfileSchema.partial()))),\n actions: optional(nullable(array(ContentActionRefSchema))),\n reactions: optional(nullable(array(reactionSchema))),\n replies: optional(nullable(CommentRepliesAggregateSchema)),\n /** Flattened count set by single-comment read; prefer `replies[0]?.count` on lists. */\n repliesCount: optional(number()),\n});\n\nexport {\n CommentSchema,\n CreateCommentSchema,\n CommentRepliesAggregateSchema,\n ReadCommentSchema,\n};\nexport type Comment = z.infer<typeof CommentSchema>;\nexport type CreateComment = z.infer<typeof CreateCommentSchema>;\nexport type CommentRepliesAggregate = z.infer<\n typeof CommentRepliesAggregateSchema\n>;\nexport type ReadComment = z.infer<typeof ReadCommentSchema>;\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';function _(t){return t==="default"?"card":t==="chart"?"preview":t==="preview"||t==="interactive"||t==="card"||t==="list"?t:"card"}function L(t){let n={};if(t.displayConfig&&(n=typeof t.displayConfig=="string"?JSON.parse(t.displayConfig):{...t.displayConfig}),n.visualizationId===void 0&&t.visualizationId&&(n.visualizationId=t.visualizationId),n.filters===void 0&&t.filters){let r=t.filters;n.filters=typeof r=="string"?JSON.parse(r):r;}return n}var h="[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",I=new RegExp(`^(post|dataset|file|service|route|quest):(${h})$`,"i"),E=new RegExp(`^asset:(${h})$`,"i"),T=new RegExp(`^action:(${h})$`,"i"),x=new Set(["post","dataset","file","service","route","quest"]);function k(t){let n=I.exec(t);if(n){let o=n[1].toLowerCase();return x.has(o)?{id:n[2],assetType:o,legacy:false}:null}let r=E.exec(t);return r?{id:r[1],legacy:true}:null}function R(t){let n=T.exec(t);return n?{id:n[1]}:null}function S(t,n){let r;try{if(t.startsWith("/"))r=t;else {let d=new URL(t);if(n){let g=new URL(n).host;if(d.host!==g)return null}r=d.pathname;}}catch{return null}let o=r.match(/^\/(\w+)s\/([^/]+)\/([^/?#]+)/);if(!o)return null;let[,l,u,p]=o;return x.has(l)?{assetType:l,entity:decodeURIComponent(u),slug:decodeURIComponent(p)}:null}var A=t=>Array.isArray(t)?t.map(A):t!=null&&t.content?Array.isArray(t.content)?t.content.map(A).flat():A(t.content):t;function w(t,n){var C;if(!t||!(t!=null&&t.content))return {users:[],assets:[],actions:[],linkedAssets:[]};let r=t.content.map(A).flat(),o=r.filter(e=>e.type==="mention").map(e=>{var s,i,c;return {user_id:(s=e.attrs)==null?void 0:s.id,username:((i=e.attrs)==null?void 0:i.label)||((c=e.attrs)==null?void 0:c.username)}}).reduce((e,s)=>(e.some(i=>i.user_id&&s.user_id&&i.user_id===s.user_id||i.username&&s.username&&i.username===s.username)||e.push(s),e),[]),l=r.filter(e=>{var s,i;return e.type==="assetComponent"&&((s=e.attrs)==null?void 0:s.id)&&!((i=e.attrs)!=null&&i.partial)}).map(({attrs:e})=>({id:e.id,assetType:e.assetType,via:"embed"})).reduce((e,s)=>(e.some(i=>i.id===s.id)||e.push(s),e),[]),u=[],p=[],d=new Set(l.map(e=>e.id)),g=new Set,v=new Set;for(let e of r){if((e==null?void 0:e.type)!=="text"||!(e!=null&&e.marks))continue;let s=e.marks.find(a=>a.type==="link");if(!((C=s==null?void 0:s.attrs)!=null&&C.href))continue;let i=s.attrs.href,c=R(i);if(c){g.has(c.id)||(g.add(c.id),p.push({id:c.id,via:"link"}));continue}let y=k(i);if(y){let a=y.id;d.has(a)||(d.add(a),y.legacy?l.push({id:a,via:"link",legacy:true}):l.push({id:a,assetType:y.assetType,via:"link",legacy:false}));continue}let f=S(i,n==null?void 0:n.siteUrl);if(f){let a=`${f.assetType}:${f.entity}:${f.slug}`;v.has(a)||(v.add(a),u.push(f));}}return {users:o,assets:l,actions:p,linkedAssets:u}}exports.a=_;exports.b=L;exports.c=k;exports.d=R;exports.e=S;exports.f=w;//# sourceMappingURL=chunk-EVQAA7RQ.cjs.map
2
+ //# sourceMappingURL=chunk-EVQAA7RQ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/air/index.ts"],"names":["normalizeViewMode","raw","resolveDisplayConfig","attrs","base","UUID_RE","TYPED_ASSET_LINK_RE","LEGACY_ASSET_LINK_RE","ACTION_LINK_RE","VALID_ASSET_TYPES","parseAssetLinkShorthand","href","typed","assetType","legacy","parseActionLinkShorthand","match","parseOuroAssetUrl","siteUrl","pathname","url","siteHost","entity","slug","extractContent","item","getReferencesInContent","json","options","_a","content","users","_b","_c","unique","u","assets","linkedAssets","actions","seenAssetIds","a","seenActionIds","seenLinkedKeys","linkMark","m","actionShorthand","shorthand","id","parsed","key"],"mappings":"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","file":"chunk-EVQAA7RQ.cjs","sourcesContent":["import { Content } from \"../../schema/posts\";\nimport { Profile } from \"../../schema/users\";\n\nexport interface DataFilter {\n column: string;\n value: string;\n operator: string;\n active?: boolean;\n}\n\nexport interface DisplayConfig {\n /** Dataset: ID of a saved visualization to render instead of the default chart. */\n visualizationId?: string | null;\n /** Dataset: column filters applied to the data. */\n filters?: DataFilter[];\n /** Route: ID of a specific action to preview (status, logs, side-effect assets). */\n actionId?: string | null;\n /** Route: author-provided defaults for an interactive route form. */\n defaultValues?: Record<string, unknown>;\n}\n\n/**\n * Normalize legacy viewMode values to the current set.\n * \"chart\" → \"preview\", \"default\" → \"card\", anything else → \"card\".\n */\nexport function normalizeViewMode(\n raw: string | undefined | null\n): \"card\" | \"preview\" | \"interactive\" | \"list\" {\n if (raw === \"default\") return \"card\";\n if (raw === \"chart\") return \"preview\";\n if (\n raw === \"preview\" ||\n raw === \"interactive\" ||\n raw === \"card\" ||\n raw === \"list\"\n )\n return raw;\n return \"card\";\n}\n\n/**\n * Build a DisplayConfig from node/element attributes, handling the legacy\n * flat `visualizationId` / `filters` attrs and the new `displayConfig` object.\n * Prefers values inside `displayConfig` when present.\n */\nexport function resolveDisplayConfig(attrs: {\n displayConfig?: DisplayConfig | string | null;\n visualizationId?: string | null;\n filters?: DataFilter[] | string | null;\n}): DisplayConfig {\n let base: DisplayConfig = {};\n\n if (attrs.displayConfig) {\n base =\n typeof attrs.displayConfig === \"string\"\n ? JSON.parse(attrs.displayConfig)\n : { ...attrs.displayConfig };\n }\n\n // Fall back to legacy flat attrs when displayConfig doesn't carry them\n if (base.visualizationId === undefined && attrs.visualizationId) {\n base.visualizationId = attrs.visualizationId;\n }\n if (base.filters === undefined && attrs.filters) {\n const raw = attrs.filters;\n base.filters =\n typeof raw === \"string\" ? JSON.parse(raw) : raw;\n }\n\n return base;\n}\n\nexport interface InlineAssetAttrs {\n id: string;\n assetType: string;\n viewMode: \"card\" | \"preview\" | \"interactive\" | \"list\";\n displayConfig?: DisplayConfig | null;\n /** @deprecated Use displayConfig.filters */\n filters?: any;\n /** @deprecated Use displayConfig.visualizationId */\n visualizationId?: string | null;\n partial?: boolean;\n}\n\n/** Assets pulled from Air JSON: embedded blocks or link href shorthands. */\nexport type ExtractedContentAsset =\n | { id: string; assetType: string; via: \"embed\" }\n | { id: string; assetType: string; via: \"link\"; legacy: false }\n | { id: string; via: \"link\"; legacy: true };\n\ninterface LinkedAssetRef {\n assetType: string;\n entity: string;\n slug: string;\n}\n\n/** UUID v4 pattern for inline link hrefs */\nconst UUID_RE =\n \"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\";\n\n/** Shorthand link hrefs: `post:<uuid>`, `file:<uuid>`, … (preferred over legacy `asset:<uuid>`). */\nconst TYPED_ASSET_LINK_RE = new RegExp(\n `^(post|dataset|file|service|route|quest):(${UUID_RE})$`,\n \"i\"\n);\n\n/** @deprecated Prefer `post:<uuid>` etc.; still supported and resolved server-side. */\nconst LEGACY_ASSET_LINK_RE = new RegExp(`^asset:(${UUID_RE})$`, \"i\");\n\n/** Route action link hrefs: `action:<uuid>` → history page for that run. */\nconst ACTION_LINK_RE = new RegExp(`^action:(${UUID_RE})$`, \"i\");\n\nconst VALID_ASSET_TYPES = new Set([\n \"post\",\n \"dataset\",\n \"file\",\n \"service\",\n \"route\",\n \"quest\",\n]);\n\nexport type ExtractedContentAction = { id: string; via: \"link\" };\n\n/**\n * Parse an inline link `href` for Ouro asset shorthands.\n * - `post:<uuid>`, `file:<uuid>`, … → typed (asset type known from prefix)\n * - `asset:<uuid>` → legacy (type resolved via DB when creating connections)\n */\nfunction parseAssetLinkShorthand(\n href: string\n):\n | { id: string; assetType: string; legacy: false }\n | { id: string; legacy: true }\n | null {\n const typed = TYPED_ASSET_LINK_RE.exec(href);\n if (typed) {\n const assetType = typed[1].toLowerCase();\n if (!VALID_ASSET_TYPES.has(assetType)) return null;\n return { id: typed[2], assetType, legacy: false };\n }\n const legacy = LEGACY_ASSET_LINK_RE.exec(href);\n if (legacy) return { id: legacy[1], legacy: true };\n return null;\n}\n\n/**\n * Parse an inline link `href` for a route action shorthand: `action:<uuid>`.\n * Actions are not assets — callers must resolve them separately.\n */\nfunction parseActionLinkShorthand(href: string): { id: string } | null {\n const match = ACTION_LINK_RE.exec(href);\n if (!match) return null;\n return { id: match[1] };\n}\n\n/**\n * Parse an Ouro site URL into its asset components.\n * Accepts both absolute URLs (https://ouro.foundation/posts/entity/slug)\n * and relative paths (/posts/entity/slug).\n */\nfunction parseOuroAssetUrl(\n href: string,\n siteUrl?: string\n): LinkedAssetRef | null {\n let pathname: string;\n try {\n if (href.startsWith(\"/\")) {\n pathname = href;\n } else {\n const url = new URL(href);\n if (siteUrl) {\n const siteHost = new URL(siteUrl).host;\n if (url.host !== siteHost) return null;\n }\n pathname = url.pathname;\n }\n } catch {\n return null;\n }\n\n // Pattern: /{assetType}s/{entity}/{slug}\n const match = pathname.match(\n /^\\/(\\w+)s\\/([^/]+)\\/([^/?#]+)/\n );\n if (!match) return null;\n\n const [, assetType, entity, slug] = match;\n if (!VALID_ASSET_TYPES.has(assetType)) return null;\n\n return { assetType, entity: decodeURIComponent(entity), slug: decodeURIComponent(slug) };\n}\n\nconst extractContent = (item: any): any => {\n if (Array.isArray(item)) return item.map(extractContent);\n if (item?.content) {\n if (Array.isArray(item.content))\n return item.content.map(extractContent).flat();\n else return extractContent(item.content);\n } else return item; // leaf\n};\n\nfunction getReferencesInContent(\n json: Content[\"json\"],\n options?: { siteUrl?: string }\n) {\n if (!json || !json?.content)\n return { users: [], assets: [], actions: [], linkedAssets: [] };\n const content = json.content.map(extractContent).flat();\n\n const users = content\n .filter((item: any) => item.type === \"mention\")\n .map((item: any) => ({\n user_id: item.attrs?.id,\n username: item.attrs?.label || item.attrs?.username,\n }))\n .reduce((unique: any[], item: any) => {\n if (\n !unique.some(\n (u) =>\n (u.user_id && item.user_id && u.user_id === item.user_id) ||\n (u.username && item.username && u.username === item.username)\n )\n ) {\n unique.push(item);\n }\n return unique;\n }, []) as Partial<Profile>[];\n\n const assets: ExtractedContentAsset[] = content\n .filter(\n (item: any) =>\n item.type === \"assetComponent\" && item.attrs?.id && !item.attrs?.partial\n )\n .map(({ attrs }: { attrs: InlineAssetAttrs }) => ({\n id: attrs.id,\n assetType: attrs.assetType,\n via: \"embed\" as const,\n }))\n .reduce((unique: ExtractedContentAsset[], item: ExtractedContentAsset) => {\n if (!unique.some((u) => u.id === item.id)) {\n unique.push(item);\n }\n return unique;\n }, []);\n\n // Extract asset / action references from link marks\n const linkedAssets: LinkedAssetRef[] = [];\n const actions: ExtractedContentAction[] = [];\n const seenAssetIds = new Set(assets.map((a) => a.id));\n const seenActionIds = new Set<string>();\n const seenLinkedKeys = new Set<string>();\n\n for (const item of content) {\n if (item?.type !== \"text\" || !item?.marks) continue;\n const linkMark = item.marks.find((m: any) => m.type === \"link\");\n if (!linkMark?.attrs?.href) continue;\n\n const href: string = linkMark.attrs.href;\n\n const actionShorthand = parseActionLinkShorthand(href);\n if (actionShorthand) {\n if (!seenActionIds.has(actionShorthand.id)) {\n seenActionIds.add(actionShorthand.id);\n actions.push({ id: actionShorthand.id, via: \"link\" });\n }\n continue;\n }\n\n const shorthand = parseAssetLinkShorthand(href);\n if (shorthand) {\n const id = shorthand.id;\n if (!seenAssetIds.has(id)) {\n seenAssetIds.add(id);\n if (shorthand.legacy) {\n assets.push({ id, via: \"link\", legacy: true });\n } else {\n assets.push({\n id,\n assetType: shorthand.assetType,\n via: \"link\",\n legacy: false,\n });\n }\n }\n continue;\n }\n\n // Check for Ouro site URLs\n const parsed = parseOuroAssetUrl(href, options?.siteUrl);\n if (parsed) {\n const key = `${parsed.assetType}:${parsed.entity}:${parsed.slug}`;\n if (!seenLinkedKeys.has(key)) {\n seenLinkedKeys.add(key);\n linkedAssets.push(parsed);\n }\n }\n }\n\n return {\n users,\n assets,\n actions,\n linkedAssets,\n };\n}\n\nexport {\n getReferencesInContent,\n parseActionLinkShorthand,\n parseAssetLinkShorthand,\n parseOuroAssetUrl,\n};\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkL6SVUDFH_cjs=require('./chunk-L6SVUDFH.cjs'),chunkMNECKGIP_cjs=require('./chunk-MNECKGIP.cjs'),zod=require('zod');var te=zod.enum(["follow","like","comment","reply","mention","reference","invite","payment","event","share","badge","reaction","deposit","action-complete","action-failed","quest-entry","quest-entry-accepted","onboarding-complete","onboarding-action-required","route-earnings-milestone","route-payout","ownership-transfer","content-moved","content-deleted","other"]),w=zod.object({assetId:zod.string(),assetType:chunkMNECKGIP_cjs.a}),r=zod.object({assetId:zod.optional(zod.string()),assetType:zod.optional(chunkMNECKGIP_cjs.a),id:zod.optional(zod.string()),asset_type:zod.optional(chunkMNECKGIP_cjs.a),name:zod.optional(zod.nullable(zod.string())),user_id:zod.optional(zod.string()),preview:zod.optional(zod.any()),description:zod.optional(zod.any()),slug:zod.optional(zod.nullable(zod.string())),name_url_slug:zod.optional(zod.nullable(zod.string())),org_id:zod.optional(zod.string()),parent_id:zod.optional(zod.nullable(zod.string())),parent:zod.optional(zod.any()),user:zod.optional(zod.any()),organization:zod.optional(zod.any()),team:zod.optional(zod.any())}),h=zod.object({assetId:zod.string(),assetType:chunkMNECKGIP_cjs.a}),l=zod.object({slug:zod.string(),assetType:chunkMNECKGIP_cjs.a}),z=zod.object({name:zod.string(),description:zod.optional(zod.nullable(zod.string())),slug:zod.optional(zod.nullable(zod.string()))}),S=zod.object({id:zod.string(),name:zod.optional(zod.nullable(zod.string()))}),_=zod.object({id:zod.string(),asset_id:zod.optional(zod.nullable(zod.string())),asset_type:zod.optional(zod.nullable(zod.string())),asset_name:zod.optional(zod.nullable(zod.string()))}),i={text:zod.optional(zod.string())},x=zod.object({...i,asset:zod.optional(r),parent:zod.optional(h),root:zod.optional(l)}),C=zod.object({...i,asset:zod.optional(r),parent:zod.optional(h),root:zod.optional(l)}),E=C,I=zod.object({...i,asset:zod.optional(r),referencedAssetIds:zod.optional(zod.array(zod.string())),referencedAssets:zod.optional(zod.array(w)),referenceCount:zod.optional(zod.number())}),O=zod.object({...i,asset:zod.optional(r),reaction_label:zod.optional(zod.string()),reaction_verb:zod.optional(zod.string()),aggregate_count:zod.optional(zod.number())}),g=zod.object({...i,asset:zod.optional(r)}),P=g,B=zod.object({...i}),Q=zod.object({...i,organization:zod.optional(zod.object({id:zod.string(),name:zod.string()}))}),k=zod.object({...i,asset:zod.optional(r),currency:zod.optional(chunkMNECKGIP_cjs.e),value:zod.optional(zod.number())}),M=zod.object({...i,value:zod.optional(zod.number())}),D=zod.object({...i,badge:zod.optional(z)}),N=zod.object({...i,status:zod.optional(zod.enum(["success","error","timed-out"])),duration:zod.optional(zod.number()),route:zod.optional(zod.object({id:zod.string(),name:zod.optional(zod.nullable(zod.string()))}))}),F=N,j=zod.object({...i,quest:zod.optional(S),entry:zod.optional(_)}),L=zod.object({...i,quest:zod.optional(S),entry:zod.optional(_),reviewer:zod.optional(zod.nullable(zod.object({id:zod.string(),username:zod.optional(zod.nullable(zod.string()))})))}),U=zod.object({...i}),V=zod.object({...i,requirements:zod.optional(zod.array(zod.string()))}),Z=zod.object({...i,milestone_cents:zod.optional(zod.number()),total_earnings_cents:zod.optional(zod.number())}),G=zod.object({...i,payout_cents:zod.optional(zod.number()),gross_cents:zod.optional(zod.number()),platform_fee_cents:zod.optional(zod.number()),assets:zod.optional(zod.any()),asset_names:zod.optional(zod.array(zod.string())),invoice_id:zod.optional(zod.string())}),T=zod.object({...i,team_id:zod.optional(zod.string()),team_name:zod.optional(zod.nullable(zod.string())),asset_name:zod.optional(zod.nullable(zod.string())),asset_type:zod.optional(zod.nullable(zod.string())),action:zod.optional(zod.string()),reason:zod.optional(zod.nullable(zod.string())),moderator_scope:zod.optional(zod.enum(["platform","team"]))}),H=T,J=zod.object({...i,event:zod.optional(zod.object({type:zod.enum(["success","error"])}))}),K=zod.object({...i,asset:zod.optional(r)}),W=zod.object({...i}),X=zod.object({id:zod.uuid(),source_user_id:zod.uuid(),destination_user_id:zod.uuid(),org_id:zod.optional(zod.nullable(zod.uuid())),asset_id:zod.optional(zod.nullable(zod.uuid())),reaction_id:zod.optional(zod.nullable(zod.uuid())),action_id:zod.optional(zod.nullable(zod.uuid())),parent_asset_id:zod.optional(zod.nullable(zod.uuid())),root_asset_id:zod.optional(zod.nullable(zod.uuid())),viewed:zod.boolean(),created_at:zod.string(),last_updated:zod.string(),source_user:zod.optional(chunkL6SVUDFH_cjs.b.partial()),asset:zod.optional(r)}),o=(v,b)=>X.extend({type:zod.literal(v),content:b}),ne=zod.discriminatedUnion("type",[o("follow",B),o("like",K),o("comment",C),o("reply",E),o("mention",x),o("reference",I),o("invite",Q),o("payment",k),o("event",J),o("share",g),o("badge",D),o("reaction",O),o("deposit",M),o("action-complete",N),o("action-failed",F),o("quest-entry",j),o("quest-entry-accepted",L),o("onboarding-complete",U),o("onboarding-action-required",V),o("route-earnings-milestone",Z),o("route-payout",G),o("ownership-transfer",P),o("content-moved",T),o("content-deleted",H),o("other",W)]);exports.A=J;exports.B=ne;exports.a=te;exports.b=w;exports.c=r;exports.d=h;exports.e=l;exports.f=x;exports.g=C;exports.h=E;exports.i=I;exports.j=O;exports.k=g;exports.l=P;exports.m=B;exports.n=Q;exports.o=k;exports.p=M;exports.q=D;exports.r=N;exports.s=j;exports.t=L;exports.u=U;exports.v=V;exports.w=Z;exports.x=G;exports.y=T;exports.z=H;//# sourceMappingURL=chunk-FJTFM3ML.cjs.map
2
+ //# sourceMappingURL=chunk-FJTFM3ML.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schema/notifications.ts"],"names":["NotificationTypeSchema","zodEnum","NotificationAssetRefSchema","object","string","AssetTypeSchema","NotificationContentAssetSchema","optional","nullable","any","NotificationParentRefSchema","NotificationRootInfoSchema","NotificationBadgeContentSchema","NotificationQuestRefSchema","NotificationQuestEntryRefSchema","NotificationContentBase","MentionContentSchema","CommentContentSchema","ReplyContentSchema","ReferenceContentSchema","array","number","ReactionContentSchema","ShareContentSchema","OwnershipTransferContentSchema","FollowContentSchema","InviteContentSchema","PaymentContentSchema","PriceCurrencySchema","DepositContentSchema","BadgeContentSchema","ActionCompleteContentSchema","ActionFailedContentSchema","QuestEntryContentSchema","QuestEntryAcceptedContentSchema","OnboardingCompleteContentSchema","OnboardingActionRequiredContentSchema","RouteEarningsMilestoneContentSchema","RoutePayoutContentSchema","ContentMovedContentSchema","ContentDeletedContentSchema","EventContentSchema","LikeContentSchema","OtherContentSchema","NotificationRowBaseSchema","uuid","boolean","ProfileSchema","notificationVariant","type","content","literal","NotificationSchema","discriminatedUnion"],"mappings":"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","file":"chunk-FJTFM3ML.cjs","sourcesContent":["import {\n object,\n string,\n boolean,\n number,\n array,\n any,\n type z,\n enum as zodEnum,\n optional,\n nullable,\n uuid,\n literal,\n discriminatedUnion,\n} from \"zod\";\n\nimport { AssetTypeSchema, PriceCurrencySchema } from \"./common\";\nimport { ProfileSchema } from \"./users\";\n\nconst NotificationTypeSchema = zodEnum([\n \"follow\",\n \"like\",\n \"comment\",\n \"reply\",\n \"mention\",\n \"reference\",\n \"invite\",\n \"payment\",\n \"event\",\n \"share\",\n \"badge\",\n \"reaction\",\n \"deposit\",\n \"action-complete\",\n \"action-failed\",\n \"quest-entry\",\n \"quest-entry-accepted\",\n \"onboarding-complete\",\n \"onboarding-action-required\",\n \"route-earnings-milestone\",\n \"route-payout\",\n \"ownership-transfer\",\n \"content-moved\",\n \"content-deleted\",\n \"other\",\n]);\n\n/** Stored pointer written when creating a notification. */\nconst NotificationAssetRefSchema = object({\n assetId: string(),\n assetType: AssetTypeSchema,\n});\n\n/**\n * `content.asset` is a ref at write time and a list-row asset after API\n * hydration (which replaces the ref and may attach `parent`).\n */\nconst NotificationContentAssetSchema = object({\n assetId: optional(string()),\n assetType: optional(AssetTypeSchema),\n id: optional(string()),\n asset_type: optional(AssetTypeSchema),\n name: optional(nullable(string())),\n user_id: optional(string()),\n preview: optional(any()),\n description: optional(any()),\n slug: optional(nullable(string())),\n name_url_slug: optional(nullable(string())),\n org_id: optional(string()),\n parent_id: optional(nullable(string())),\n parent: optional(any()),\n user: optional(any()),\n organization: optional(any()),\n team: optional(any()),\n});\n\nconst NotificationParentRefSchema = object({\n assetId: string(),\n assetType: AssetTypeSchema,\n});\n\nconst NotificationRootInfoSchema = object({\n slug: string(),\n assetType: AssetTypeSchema,\n});\n\nconst NotificationBadgeContentSchema = object({\n name: string(),\n description: optional(nullable(string())),\n slug: optional(nullable(string())),\n});\n\nconst NotificationQuestRefSchema = object({\n id: string(),\n name: optional(nullable(string())),\n});\n\nconst NotificationQuestEntryRefSchema = object({\n id: string(),\n asset_id: optional(nullable(string())),\n asset_type: optional(nullable(string())),\n asset_name: optional(nullable(string())),\n});\n\nconst NotificationContentBase = {\n text: optional(string()),\n};\n\nconst MentionContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n parent: optional(NotificationParentRefSchema),\n root: optional(NotificationRootInfoSchema),\n});\n\nconst CommentContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n parent: optional(NotificationParentRefSchema),\n root: optional(NotificationRootInfoSchema),\n});\n\nconst ReplyContentSchema = CommentContentSchema;\n\nconst ReferenceContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n referencedAssetIds: optional(array(string())),\n referencedAssets: optional(array(NotificationAssetRefSchema)),\n referenceCount: optional(number()),\n});\n\nconst ReactionContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n reaction_label: optional(string()),\n reaction_verb: optional(string()),\n aggregate_count: optional(number()),\n});\n\nconst ShareContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n});\n\nconst OwnershipTransferContentSchema = ShareContentSchema;\n\nconst FollowContentSchema = object({\n ...NotificationContentBase,\n});\n\nconst InviteContentSchema = object({\n ...NotificationContentBase,\n organization: optional(\n object({\n id: string(),\n name: string(),\n })\n ),\n});\n\nconst PaymentContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n currency: optional(PriceCurrencySchema),\n value: optional(number()),\n});\n\nconst DepositContentSchema = object({\n ...NotificationContentBase,\n value: optional(number()),\n});\n\nconst BadgeContentSchema = object({\n ...NotificationContentBase,\n badge: optional(NotificationBadgeContentSchema),\n});\n\nconst ActionCompleteContentSchema = object({\n ...NotificationContentBase,\n status: optional(zodEnum([\"success\", \"error\", \"timed-out\"])),\n duration: optional(number()),\n route: optional(\n object({\n id: string(),\n name: optional(nullable(string())),\n })\n ),\n});\n\nconst ActionFailedContentSchema = ActionCompleteContentSchema;\n\nconst QuestEntryContentSchema = object({\n ...NotificationContentBase,\n quest: optional(NotificationQuestRefSchema),\n entry: optional(NotificationQuestEntryRefSchema),\n});\n\nconst QuestEntryAcceptedContentSchema = object({\n ...NotificationContentBase,\n quest: optional(NotificationQuestRefSchema),\n entry: optional(NotificationQuestEntryRefSchema),\n reviewer: optional(\n nullable(\n object({\n id: string(),\n username: optional(nullable(string())),\n })\n )\n ),\n});\n\nconst OnboardingCompleteContentSchema = object({\n ...NotificationContentBase,\n});\n\nconst OnboardingActionRequiredContentSchema = object({\n ...NotificationContentBase,\n requirements: optional(array(string())),\n});\n\nconst RouteEarningsMilestoneContentSchema = object({\n ...NotificationContentBase,\n milestone_cents: optional(number()),\n total_earnings_cents: optional(number()),\n});\n\nconst RoutePayoutContentSchema = object({\n ...NotificationContentBase,\n payout_cents: optional(number()),\n gross_cents: optional(number()),\n platform_fee_cents: optional(number()),\n assets: optional(any()),\n asset_names: optional(array(string())),\n invoice_id: optional(string()),\n});\n\nconst ContentMovedContentSchema = object({\n ...NotificationContentBase,\n team_id: optional(string()),\n team_name: optional(nullable(string())),\n asset_name: optional(nullable(string())),\n asset_type: optional(nullable(string())),\n action: optional(string()),\n reason: optional(nullable(string())),\n moderator_scope: optional(zodEnum([\"platform\", \"team\"])),\n});\n\nconst ContentDeletedContentSchema = ContentMovedContentSchema;\n\nconst EventContentSchema = object({\n ...NotificationContentBase,\n event: optional(\n object({\n type: zodEnum([\"success\", \"error\"]),\n })\n ),\n});\n\nconst LikeContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n});\n\nconst OtherContentSchema = object({\n ...NotificationContentBase,\n});\n\nconst NotificationRowBaseSchema = object({\n id: uuid(),\n source_user_id: uuid(),\n destination_user_id: uuid(),\n org_id: optional(nullable(uuid())),\n asset_id: optional(nullable(uuid())),\n reaction_id: optional(nullable(uuid())),\n action_id: optional(nullable(uuid())),\n parent_asset_id: optional(nullable(uuid())),\n root_asset_id: optional(nullable(uuid())),\n viewed: boolean(),\n created_at: string(),\n last_updated: string(),\n /** Joined on list/read responses. */\n source_user: optional(ProfileSchema.partial()),\n /** Joined `assets` row for `asset_id` (not `content.asset`). */\n asset: optional(NotificationContentAssetSchema),\n});\n\nconst notificationVariant = <\n T extends z.infer<typeof NotificationTypeSchema>,\n C extends z.ZodType,\n>(\n type: T,\n content: C\n) =>\n NotificationRowBaseSchema.extend({\n type: literal(type),\n content,\n });\n\nconst NotificationSchema = discriminatedUnion(\"type\", [\n notificationVariant(\"follow\", FollowContentSchema),\n notificationVariant(\"like\", LikeContentSchema),\n notificationVariant(\"comment\", CommentContentSchema),\n notificationVariant(\"reply\", ReplyContentSchema),\n notificationVariant(\"mention\", MentionContentSchema),\n notificationVariant(\"reference\", ReferenceContentSchema),\n notificationVariant(\"invite\", InviteContentSchema),\n notificationVariant(\"payment\", PaymentContentSchema),\n notificationVariant(\"event\", EventContentSchema),\n notificationVariant(\"share\", ShareContentSchema),\n notificationVariant(\"badge\", BadgeContentSchema),\n notificationVariant(\"reaction\", ReactionContentSchema),\n notificationVariant(\"deposit\", DepositContentSchema),\n notificationVariant(\"action-complete\", ActionCompleteContentSchema),\n notificationVariant(\"action-failed\", ActionFailedContentSchema),\n notificationVariant(\"quest-entry\", QuestEntryContentSchema),\n notificationVariant(\"quest-entry-accepted\", QuestEntryAcceptedContentSchema),\n notificationVariant(\"onboarding-complete\", OnboardingCompleteContentSchema),\n notificationVariant(\n \"onboarding-action-required\",\n OnboardingActionRequiredContentSchema\n ),\n notificationVariant(\n \"route-earnings-milestone\",\n RouteEarningsMilestoneContentSchema\n ),\n notificationVariant(\"route-payout\", RoutePayoutContentSchema),\n notificationVariant(\"ownership-transfer\", OwnershipTransferContentSchema),\n notificationVariant(\"content-moved\", ContentMovedContentSchema),\n notificationVariant(\"content-deleted\", ContentDeletedContentSchema),\n notificationVariant(\"other\", OtherContentSchema),\n]);\n\ntype Notification = z.infer<typeof NotificationSchema>;\ntype NotificationType = z.infer<typeof NotificationTypeSchema>;\ntype NotificationOfType<T extends NotificationType> = Extract<\n Notification,\n { type: T }\n>;\ntype NotificationContentAsset = z.infer<typeof NotificationContentAssetSchema>;\ntype NotificationAssetRef = z.infer<typeof NotificationAssetRefSchema>;\n\nexport {\n NotificationSchema,\n NotificationTypeSchema,\n NotificationAssetRefSchema,\n NotificationContentAssetSchema,\n NotificationParentRefSchema,\n NotificationRootInfoSchema,\n MentionContentSchema,\n CommentContentSchema,\n ReplyContentSchema,\n ReferenceContentSchema,\n ReactionContentSchema,\n ShareContentSchema,\n OwnershipTransferContentSchema,\n FollowContentSchema,\n InviteContentSchema,\n PaymentContentSchema,\n DepositContentSchema,\n BadgeContentSchema,\n ActionCompleteContentSchema,\n QuestEntryContentSchema,\n QuestEntryAcceptedContentSchema,\n OnboardingCompleteContentSchema,\n OnboardingActionRequiredContentSchema,\n RouteEarningsMilestoneContentSchema,\n RoutePayoutContentSchema,\n ContentMovedContentSchema,\n ContentDeletedContentSchema,\n EventContentSchema,\n};\nexport type {\n Notification,\n NotificationType,\n NotificationOfType,\n NotificationContentAsset,\n NotificationAssetRef,\n};\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var zod=require('zod');var c=zod.object({id:zod.uuid(),status:zod.optional(zod.nullable(zod.string())),name:zod.optional(zod.nullable(zod.string())),web_url:zod.optional(zod.nullable(zod.string())),route:zod.optional(zod.nullable(zod.any()))});exports.a=c;//# sourceMappingURL=chunk-JRBBNFFI.cjs.map
2
+ //# sourceMappingURL=chunk-JRBBNFFI.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schema/content-refs.ts"],"names":["ContentActionRefSchema","object","uuid","optional","nullable","string","any"],"mappings":"oCAeA,IAAMA,EAAyBC,UAAO,CAAA,CACpC,GAAIC,QAAK,EAAA,CACT,MAAQC,CAAAA,YAAAA,CAASC,YAASC,CAAAA,UAAAA,EAAQ,CAAC,CAAA,CACnC,KAAMF,YAASC,CAAAA,YAAAA,CAASC,YAAQ,CAAC,CACjC,CAAA,OAAA,CAASF,YAASC,CAAAA,YAAAA,CAASC,YAAQ,CAAC,EACpC,KAAOF,CAAAA,YAAAA,CAASC,aAASE,OAAI,EAAC,CAAC,CACjC,CAAC","file":"chunk-JRBBNFFI.cjs","sourcesContent":["import {\n object,\n string,\n uuid,\n type z,\n any,\n optional,\n nullable,\n} from \"zod\";\n\n/**\n * Display-time seed for `[label](action:<uuid>)` chips.\n * Resolved server-side when reading content that links to route actions.\n * `route` is intentionally loose to avoid pulling RouteSchema into this module.\n */\nconst ContentActionRefSchema = object({\n id: uuid(),\n status: optional(nullable(string())),\n name: optional(nullable(string())),\n web_url: optional(nullable(string())),\n route: optional(nullable(any())),\n});\n\nexport { ContentActionRefSchema };\nexport type ContentActionRef = z.infer<typeof ContentActionRefSchema>;\n"]}
@@ -0,0 +1,2 @@
1
+ import {b,f,h,a as a$1}from'./chunk-PB4XG5WM.js';import {b as b$1}from'./chunk-G6GCUGMM.js';import {a}from'./chunk-3BZRQYRC.js';import {a as a$2}from'./chunk-42ADEGDM.js';import {lazy,object,optional,string,array,record,any,literal,nullable,number}from'zod';var x=lazy(()=>object({type:string(),content:optional(array(x)),attrs:optional(record(string(),any())),marks:optional(array(object({type:string(),attrs:optional(record(string(),any()))}))),text:optional(string())})),i=object({type:literal("doc"),content:array(x)}),z=object({json:i,text:string()}).default({json:{type:"doc",content:[]},text:""}),C=object({}),_=C.extend(b.partial().shape),d=f.extend({name:nullable(string()),asset_type:a.refine(t=>["post","comment"].includes(t)),metadata:_,preview:i.default({type:"doc",content:[]}),content:z}),L=h.extend({asset_type:literal("post").default("post"),name:string().optional().nullable().default("").transform(t=>t==null?void 0:t.trim()).transform(t=>t||null),preview:i}).transform(t=>a$1(t)),R=d.extend({content:optional(nullable(z.default({json:{type:"doc",content:[]},text:""}))),reactions:array(record(string(),any())).default([]),views:number().default(0),commentCount:number().default(0),assets:optional(nullable(array(f.partial()))),users:optional(nullable(array(b$1.partial()))),actions:optional(nullable(array(a$2)))}),M=array(R),U=array(d),Z=d.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,content:true,organization:true,user:true,team:true,slug:true,is_pinned_in_team:true}).extend({last_updated:string().default(()=>new Date().toISOString())}).transform(t=>a$1(t));export{i as a,z as b,d as c,L as d,R as e,M as f,U as g,Z as h};//# sourceMappingURL=chunk-KHUEMWG2.js.map
2
+ //# sourceMappingURL=chunk-KHUEMWG2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schema/posts.ts"],"names":["TipTapNode","lazy","object","string","optional","array","record","any","TipTapSchema","literal","ContentSchema","BasePostMetadataSchema","PostMetadataSchema","AssetMetadataSchema","PostSchema","AssetSchema","nullable","AssetTypeSchema","x","CreatePostSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","ReadPostSchema","number","ProfileSchema","ContentActionRefSchema","ReadPostsSchema","ListPostsSchema","UpdatePostSchema"],"mappings":"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","file":"chunk-KHUEMWG2.js","sourcesContent":["import {\n object,\n string,\n number,\n array,\n lazy,\n literal,\n record,\n type z,\n any,\n optional,\n nullable,\n boolean,\n type ZodType\n} from \"zod\";\n\nimport {\n AssetMetadataSchema,\n AssetSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { AssetTypeSchema } from \"./common\";\nimport { ContentActionRefSchema } from \"./content-refs\";\nimport { ProfileSchema } from \"./users\";\n\nconst TipTapNode: ZodType<any> = lazy(() =>\n object({\n type: string(),\n content: optional(array(TipTapNode)),\n attrs: optional(record(string(), any())),\n marks: optional(\n array(\n object({\n type: string(),\n attrs: optional(record(string(), any())),\n })\n )\n ),\n text: optional(string()), // For text nodes\n })\n);\n\nconst TipTapSchema = object({\n type: literal(\"doc\"),\n content: array(TipTapNode),\n});\n\nconst ContentSchema = object({\n json: TipTapSchema,\n text: string(),\n}).default({ json: { type: \"doc\", content: [] }, text: \"\" });\n\nconst BasePostMetadataSchema = object({})\n\nconst PostMetadataSchema = BasePostMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst PostSchema = AssetSchema.extend({\n name: nullable(string()),\n asset_type: AssetTypeSchema.refine((x) => [\"post\", \"comment\"].includes(x)),\n metadata: PostMetadataSchema,\n // TODO: make this ContentSchema\n preview: TipTapSchema.default({ type: \"doc\", content: [] }),\n content: ContentSchema,\n\n});\n\nconst CreatePostSchema = CreateAssetSchema.extend({\n asset_type: literal(\"post\").default(\"post\"),\n name: string()\n .optional()\n .nullable()\n .default(\"\")\n .transform((x) => x?.trim())\n .transform((x) => x || null),\n preview: TipTapSchema,\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst ReadPostSchema = PostSchema.extend({\n content: optional(\n nullable(\n ContentSchema.default({\n json: { type: \"doc\", content: [] },\n text: \"\",\n })\n )\n ),\n reactions: array(record(string(), any())).default([]),\n views: number().default(0),\n commentCount: number().default(0),\n // Resolved from content embeds / links at read time\n assets: optional(nullable(array(AssetSchema.partial()))),\n users: optional(nullable(array(ProfileSchema.partial()))),\n actions: optional(nullable(array(ContentActionRefSchema))),\n // We have this on asset now\n // parent: ConnectionSchema.optional().nullable(),\n});\n\nconst ReadPostsSchema = array(ReadPostSchema);\n\nconst ListPostsSchema = array(PostSchema);\n\nconst UpdatePostSchema = PostSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n content: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n })\n .extend({\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nexport {\n TipTapSchema,\n ContentSchema,\n PostSchema,\n CreatePostSchema,\n ListPostsSchema,\n ReadPostSchema,\n ReadPostsSchema,\n UpdatePostSchema,\n};\nexport type Post = z.infer<typeof PostSchema>;\nexport type CreatePost = z.infer<typeof CreatePostSchema>;\nexport type ListPosts = z.infer<typeof ListPostsSchema>;\nexport type ReadPost = z.infer<typeof ReadPostSchema>;\nexport type ReadPosts = z.infer<typeof ReadPostsSchema>;\nexport type UpdatePost = z.infer<typeof UpdatePostSchema>;\nexport type Content = z.infer<typeof ContentSchema>;\nexport type TipTap = z.infer<typeof TipTapSchema>;\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkZRJUBEIK_cjs=require('./chunk-ZRJUBEIK.cjs'),chunkL6SVUDFH_cjs=require('./chunk-L6SVUDFH.cjs'),chunkMNECKGIP_cjs=require('./chunk-MNECKGIP.cjs'),chunkJRBBNFFI_cjs=require('./chunk-JRBBNFFI.cjs'),uuidv7=require('uuidv7'),zod=require('zod');var s=zod.object({id:zod.uuid(),org_id:zod.uuid(),organization:chunkZRJUBEIK_cjs.c,name:zod.string(),description:zod.optional(zod.nullable(zod.object({text:zod.string(),json:zod.record(zod.string(),zod.any())}))),default_role:chunkMNECKGIP_cjs.c,visibility:chunkMNECKGIP_cjs.b,actor_type_policy:zod.optional(zod.nullable(chunkZRJUBEIK_cjs.a)),source_policy:zod.optional(zod.nullable(chunkZRJUBEIK_cjs.b)),userMembership:zod.optional(zod.nullable(zod.object({user_id:zod.uuid(),role:chunkMNECKGIP_cjs.c}))),memberCount:zod.optional(zod.nullable(zod.number())),members:zod.array(zod.object({user_id:zod.uuid(),role:chunkMNECKGIP_cjs.c,added_at:zod.string(),user:zod.optional(zod.nullable(chunkL6SVUDFH_cjs.b.partial()))})),created_at:zod.string()}),P=s.extend({id:zod.string().default(()=>uuidv7.uuidv7()),default_role:chunkMNECKGIP_cjs.c.default("write").refine(d=>d==="read"||d==="write"),visibility:chunkMNECKGIP_cjs.b.default("public").refine(d=>d==="public"||d==="organization"),created_at:zod.string().default(()=>new Date().toISOString())}).omit({organization:true,userMembership:true,memberCount:true,members:true,created_at:true}),T=s.extend({userMembership:zod.optional(zod.nullable(zod.object({user_id:zod.uuid(),role:chunkMNECKGIP_cjs.c}))),memberCount:zod.number(),members:zod.array(zod.object({user_id:zod.uuid(),role:chunkMNECKGIP_cjs.c,added_at:zod.string(),user:zod.optional(zod.nullable(chunkL6SVUDFH_cjs.b.partial()))})),organization:zod.optional(zod.nullable(chunkZRJUBEIK_cjs.c.partial())),assets:zod.optional(zod.nullable(zod.array(zod.record(zod.string(),zod.any())))),users:zod.optional(zod.nullable(zod.array(chunkL6SVUDFH_cjs.b.partial()))),actions:zod.optional(zod.nullable(zod.array(chunkJRBBNFFI_cjs.a)))}),U=zod.array(T.extend({label:zod.string(),value:zod.string()})),j=s.partial().omit({org_id:true,organization:true,created_at:true}).extend({id:zod.uuid()});exports.a=s;exports.b=P;exports.c=T;exports.d=U;exports.e=j;//# sourceMappingURL=chunk-LD5G6GFH.cjs.map
2
+ //# sourceMappingURL=chunk-LD5G6GFH.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schema/teams.ts"],"names":["TeamSchema","object","uuid","OrganizationsSchema","string","optional","nullable","record","any","RoleSchema","VisibilitySchema","ActorTypePolicySchema","SourcePolicySchema","number","array","ProfileSchema","CreateTeamSchema","uuidv7","v","ReadTeamSchema","zodRecord","ContentActionRefSchema","ReadTeamsSchema","UpdateTeamSchema"],"mappings":"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","file":"chunk-LD5G6GFH.cjs","sourcesContent":["import { uuidv7 } from \"uuidv7\";\nimport {\n object,\n string,\n uuid,\n number,\n array,\n type z,\n optional,\n nullable,\n any,\n record\n} from \"zod\";\n\nimport { RoleSchema, VisibilitySchema } from \"./common\";\nimport { ContentActionRefSchema } from \"./content-refs\";\nimport { OrganizationsSchema, ActorTypePolicySchema, SourcePolicySchema } from \"./organizations\";\nimport { ProfileSchema } from \"./users\";\nimport { record as zodRecord } from \"zod\";\n\nconst TeamSchema = object({\n id: uuid(),\n org_id: uuid(),\n organization: OrganizationsSchema,\n name: string(),\n description: optional(\n nullable(\n object({\n text: string(),\n json: record(string(), any()),\n })\n )\n ),\n default_role: RoleSchema,\n visibility: VisibilitySchema,\n actor_type_policy: optional(nullable(ActorTypePolicySchema)),\n source_policy: optional(nullable(SourcePolicySchema)),\n userMembership: optional(\n nullable(\n object({\n user_id: uuid(),\n role: RoleSchema,\n })\n )\n ),\n memberCount: optional(nullable(number())),\n members: array(\n object({\n user_id: uuid(),\n role: RoleSchema,\n added_at: string(),\n user: optional(nullable(ProfileSchema.partial())),\n })\n ),\n created_at: string(),\n});\n\nconst CreateTeamSchema = TeamSchema.extend({\n id: string().default(() => uuidv7()),\n default_role: RoleSchema.default(\"write\").refine(\n (v) => v === \"read\" || v === \"write\"\n ),\n visibility: VisibilitySchema.default(\"public\").refine(\n (v) => v === \"public\" || v === \"organization\"\n ),\n created_at: string().default(() => new Date().toISOString()),\n}).omit({\n organization: true,\n userMembership: true,\n memberCount: true,\n members: true,\n created_at: true,\n});\n\nconst ReadTeamSchema = TeamSchema.extend({\n userMembership: optional(\n nullable(\n object({\n user_id: uuid(),\n role: RoleSchema,\n })\n )\n ),\n memberCount: number(),\n members: array(\n object({\n user_id: uuid(),\n role: RoleSchema,\n added_at: string(),\n user: optional(nullable(ProfileSchema.partial())),\n })\n ),\n organization: optional(nullable(OrganizationsSchema.partial())),\n // Enriched fields used for rendering embedded references in description.\n // assets stay loose here — AssetSchema imports TeamSchema (cycle).\n assets: optional(\n nullable(array(zodRecord(string(), any())))\n ),\n users: optional(\n nullable(array(ProfileSchema.partial()))\n ),\n actions: optional(nullable(array(ContentActionRefSchema))),\n});\n\nconst ReadTeamsSchema = array(\n ReadTeamSchema.extend({\n label: string(),\n value: string(),\n })\n);\n\nconst UpdateTeamSchema = TeamSchema.partial()\n .omit({\n org_id: true,\n organization: true,\n created_at: true,\n })\n .extend({\n id: uuid(),\n });\n\nexport {\n TeamSchema,\n CreateTeamSchema,\n ReadTeamSchema,\n ReadTeamsSchema,\n UpdateTeamSchema,\n};\nexport type Team = z.infer<typeof TeamSchema>;\nexport type CreateTeam = z.infer<typeof CreateTeamSchema>;\nexport type ReadTeam = z.infer<typeof ReadTeamSchema>;\nexport type ReadTeams = z.infer<typeof ReadTeamsSchema>;\nexport type UpdateTeam = z.infer<typeof UpdateTeamSchema>;\n"]}
@@ -0,0 +1,2 @@
1
+ function s(e={}){let t={};return e.user&&(t.user_id=e.user),e.team&&(t.team_id=e.team),e.visibility&&(t.visibility=e.visibility),e.license&&(t.license_id=e.license),e.method&&(t.method=e.method),e.status&&(t.status=e.status),e.source&&(t.source=e.source),e.top_level_only&&(t.top_level_only=e.top_level_only),e.asset_type&&(t.asset_type=e.asset_type),t}function i(e={}){let t={};return e.file_type&&(t.file_type=e.file_type),e.extension&&(t.extension=e.extension),t}export{s as a,i as b};//# sourceMappingURL=chunk-LGJ2LLH6.js.map
2
+ //# sourceMappingURL=chunk-LGJ2LLH6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/asset-filters.ts"],"names":["toAssetSearchFilters","filters","out","toAssetMetadataFilters"],"mappings":"AAWA,SAASA,EAAqBC,CAAwB,CAAA,GAAwB,CAC5E,IAAMC,EAA0B,EAAC,CAEjC,OAAID,CAAQ,CAAA,IAAA,GAAMC,EAAI,OAAUD,CAAAA,CAAAA,CAAQ,MACpCA,CAAQ,CAAA,IAAA,GAAMC,EAAI,OAAUD,CAAAA,CAAAA,CAAQ,IACpCA,CAAAA,CAAAA,CAAAA,CAAQ,aAAYC,CAAI,CAAA,UAAA,CAAaD,EAAQ,UAC7CA,CAAAA,CAAAA,CAAAA,CAAQ,UAASC,CAAI,CAAA,UAAA,CAAaD,EAAQ,OAC1CA,CAAAA,CAAAA,CAAAA,CAAQ,SAAQC,CAAI,CAAA,MAAA,CAASD,EAAQ,MACrCA,CAAAA,CAAAA,CAAAA,CAAQ,SAAQC,CAAI,CAAA,MAAA,CAASD,CAAQ,CAAA,MAAA,CAAA,CACrCA,EAAQ,MAAQC,GAAAA,CAAAA,CAAI,OAASD,CAAQ,CAAA,MAAA,CAAA,CACrCA,EAAQ,cAAgBC,GAAAA,CAAAA,CAAI,eAAiBD,CAAQ,CAAA,cAAA,CAAA,CACrDA,EAAQ,UAAYC,GAAAA,CAAAA,CAAI,WAAaD,CAAQ,CAAA,UAAA,CAAA,CAE1CC,CACT,CAKA,SAASC,EACPF,CAAwB,CAAA,GACF,CACtB,IAAMC,EAA4B,EAAC,CACnC,OAAID,CAAQ,CAAA,SAAA,GAAWC,EAAI,SAAYD,CAAAA,CAAAA,CAAQ,WAC3CA,CAAQ,CAAA,SAAA,GAAWC,EAAI,SAAYD,CAAAA,CAAAA,CAAQ,WACxCC,CACT","file":"chunk-LGJ2LLH6.js","sourcesContent":["import type {\n AssetFilters,\n AssetMetadataFilters,\n AssetSearchFilters,\n} from \"../schema/asset-filters\";\n\n/**\n * Map UI {@link AssetFilters} (short keys) to API {@link AssetSearchFilters}\n * (column names). Does not include `file_type` / `extension` — those belong in\n * {@link AssetMetadataFilters} via {@link toAssetMetadataFilters}.\n */\nfunction toAssetSearchFilters(filters: AssetFilters = {}): AssetSearchFilters {\n const out: AssetSearchFilters = {};\n\n if (filters.user) out.user_id = filters.user;\n if (filters.team) out.team_id = filters.team;\n if (filters.visibility) out.visibility = filters.visibility;\n if (filters.license) out.license_id = filters.license;\n if (filters.method) out.method = filters.method;\n if (filters.status) out.status = filters.status;\n if (filters.source) out.source = filters.source;\n if (filters.top_level_only) out.top_level_only = filters.top_level_only;\n if (filters.asset_type) out.asset_type = filters.asset_type;\n\n return out;\n}\n\n/**\n * Pull file-oriented fields off UI {@link AssetFilters} into metadata filters.\n */\nfunction toAssetMetadataFilters(\n filters: AssetFilters = {}\n): AssetMetadataFilters {\n const out: AssetMetadataFilters = {};\n if (filters.file_type) out.file_type = filters.file_type;\n if (filters.extension) out.extension = filters.extension;\n return out;\n}\n\nexport { toAssetSearchFilters, toAssetMetadataFilters };\n"]}
@@ -1,2 +1,2 @@
1
- 'use strict';var zod=require('zod');var r=zod.enum(["user","organization","team","dataset","file","service","route","post","quest","comment","conversation"]),h=zod.enum(["public","private","organization","monetized","inherit"]),d=zod.enum(["admin","read","write","none"]),S=zod.enum(["none","pay-to-unlock","pay-per-use"]),f=zod.enum(["usd","btc"]),_=zod.object({id:zod.string(),user_id:zod.string(),org_id:zod.optional(zod.nullable(zod.string())),embedding:zod.array(zod.number()),content:zod.string(),asset_type:r,asset_id:zod.string(),metadata:zod.optional(zod.nullable(zod.record(zod.string(),zod.any()))),created_at:zod.string(),last_updated:zod.string()}),y=zod.enum(["comment","reference","mention","action","component","link","completion"]),l=zod.object({id:zod.uuid(),user_id:zod.uuid(),type:y,action_id:zod.optional(zod.nullable(zod.uuid())),source_id:zod.uuid(),target_id:zod.uuid(),source_asset_type:r,target_asset_type:r,created_at:zod.string(),last_updated:zod.string()}),z=zod.object({assetId:zod.uuid(),method:zod.enum(["checkout","api"]),assetType:r}),b=zod.object({id:zod.uuid(),role:d,user:zod.object({user_id:zod.uuid()}),user_id:zod.nullable(zod.uuid()),org_id:zod.nullable(zod.uuid()),asset_type:r,asset_id:zod.uuid(),created_at:zod.string(),last_updated:zod.string()}),g=zod.enum(["queued","in-progress","timed-out","success","error"]),x=zod.enum(["web","api"]);exports.a=r;exports.b=h;exports.c=d;exports.d=S;exports.e=f;exports.f=_;exports.g=l;exports.h=z;exports.i=b;exports.j=g;exports.k=x;//# sourceMappingURL=chunk-43KB23BA.cjs.map
2
- //# sourceMappingURL=chunk-43KB23BA.cjs.map
1
+ 'use strict';var zod=require('zod');var r=zod.enum(["user","organization","team","dataset","file","service","route","post","quest","comment","conversation"]),h=zod.enum(["public","private","organization","monetized","inherit"]),d=zod.enum(["admin","read","write","none"]),S=zod.enum(["none","pay-to-unlock","pay-per-use"]),f=zod.enum(["usd","btc"]),_=zod.object({id:zod.string(),user_id:zod.string(),org_id:zod.optional(zod.nullable(zod.string())),embedding:zod.array(zod.number()),content:zod.string(),asset_type:r,asset_id:zod.string(),metadata:zod.optional(zod.nullable(zod.record(zod.string(),zod.any()))),created_at:zod.string(),last_updated:zod.string()}),y=zod.enum(["comment","reference","mention","action","component","link","completion"]),z=zod.object({id:zod.uuid(),user_id:zod.uuid(),type:y,action_id:zod.optional(zod.nullable(zod.uuid())),source_id:zod.uuid(),target_id:zod.uuid(),source_asset_type:r,target_asset_type:r,created_at:zod.string(),last_updated:zod.string()}),l=zod.object({assetId:zod.uuid(),method:zod.enum(["checkout","api"]),assetType:r}),b=zod.object({id:zod.uuid(),role:d,user:zod.object({user_id:zod.uuid()}),user_id:zod.nullable(zod.uuid()),org_id:zod.nullable(zod.uuid()),asset_type:r,asset_id:zod.uuid(),created_at:zod.string(),last_updated:zod.string()}),x=zod.enum(["queued","in-progress","timed-out","success","error"]),g=zod.enum(["web","api"]),P=zod.enum(["GET","POST","PUT","PATCH","DELETE"]);exports.a=r;exports.b=h;exports.c=d;exports.d=S;exports.e=f;exports.f=_;exports.g=z;exports.h=l;exports.i=b;exports.j=x;exports.k=g;exports.l=P;//# sourceMappingURL=chunk-MNECKGIP.cjs.map
2
+ //# sourceMappingURL=chunk-MNECKGIP.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schema/common.ts"],"names":["AssetTypeSchema","zodEnum","VisibilitySchema","RoleSchema","MonetizationSchema","PriceCurrencySchema","EmbeddingSchema","object","string","optional","nullable","array","number","record","any","ConnectionTypeSchema","ConnectionSchema","uuid","PurchaseAssetSchema","PermissionSchema","StatusSchema","SourceSchema","HttpMethodSchema"],"mappings":"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","file":"chunk-MNECKGIP.cjs","sourcesContent":["import {\n object,\n string,\n uuid,\n number,\n array,\n enum as zodEnum,\n type z,\n any,\n nullable,\n optional,\n record\n} from \"zod\";\n\nconst AssetTypeSchema = zodEnum([\n \"user\",\n \"organization\",\n \"team\",\n \"dataset\",\n \"file\",\n \"service\",\n \"route\",\n \"post\",\n \"quest\",\n \"comment\",\n \"conversation\",\n]);\n\nconst VisibilitySchema = zodEnum([\n \"public\",\n \"private\",\n \"organization\",\n \"monetized\",\n \"inherit\",\n]);\n\nconst RoleSchema = zodEnum([\"admin\", \"read\", \"write\", \"none\"]);\n\nconst MonetizationSchema = zodEnum([\"none\", \"pay-to-unlock\", \"pay-per-use\"]);\n\nconst PriceCurrencySchema = zodEnum([\"usd\", \"btc\"]);\n\nconst EmbeddingSchema = object({\n id: string(),\n user_id: string(),\n org_id: optional(nullable(string())),\n embedding: array(number()),\n content: string(),\n asset_type: AssetTypeSchema,\n asset_id: string(),\n metadata: optional(nullable(record(string(), any()))),\n created_at: string(),\n last_updated: string(),\n});\n\nconst ConnectionTypeSchema = zodEnum([\n \"comment\",\n \"reference\",\n \"mention\",\n \"action\",\n \"component\",\n \"link\",\n \"completion\",\n]);\n\nconst ConnectionSchema = object({\n id: uuid(),\n user_id: uuid(),\n type: ConnectionTypeSchema,\n action_id: optional(nullable(uuid())),\n source_id: uuid(),\n target_id: uuid(),\n source_asset_type: AssetTypeSchema,\n target_asset_type: AssetTypeSchema,\n created_at: string(),\n last_updated: string(),\n});\n\nconst PurchaseAssetSchema = object({\n assetId: uuid(),\n method: zodEnum([\"checkout\", \"api\"]),\n assetType: AssetTypeSchema,\n});\n\nconst PermissionSchema = object({\n id: uuid(),\n role: RoleSchema,\n user: object({\n user_id: uuid(),\n }),\n user_id: nullable(uuid()),\n org_id: nullable(uuid()),\n asset_type: AssetTypeSchema,\n asset_id: uuid(),\n created_at: string(),\n last_updated: string(),\n});\n\nconst StatusSchema = zodEnum([\n \"queued\",\n \"in-progress\",\n \"timed-out\",\n \"success\",\n \"error\",\n]);\n\nconst SourceSchema = zodEnum([\"web\", \"api\"]);\n\nconst HttpMethodSchema = zodEnum([\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\"]);\n\nexport {\n RoleSchema,\n VisibilitySchema,\n MonetizationSchema,\n PriceCurrencySchema,\n ConnectionSchema,\n EmbeddingSchema,\n AssetTypeSchema,\n PurchaseAssetSchema,\n PermissionSchema,\n StatusSchema,\n SourceSchema,\n HttpMethodSchema,\n};\n\nexport type Role = z.infer<typeof RoleSchema>;\nexport type Connection = z.infer<typeof ConnectionSchema>;\nexport type Embedding = z.infer<typeof EmbeddingSchema>;\nexport type Visibility = z.infer<typeof VisibilitySchema>;\nexport type Monetization = z.infer<typeof MonetizationSchema>;\nexport type PriceCurrency = z.infer<typeof PriceCurrencySchema>;\nexport type AssetTypes = z.infer<typeof AssetTypeSchema>;\nexport type PurchaseAsset = z.infer<typeof PurchaseAssetSchema>;\nexport type Permission = z.infer<typeof PermissionSchema>;\nexport type Status = z.infer<typeof StatusSchema>;\nexport type Source = z.infer<typeof SourceSchema>;\nexport type HttpMethod = z.infer<typeof HttpMethodSchema>;\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';function s(e={}){let t={};return e.user&&(t.user_id=e.user),e.team&&(t.team_id=e.team),e.visibility&&(t.visibility=e.visibility),e.license&&(t.license_id=e.license),e.method&&(t.method=e.method),e.status&&(t.status=e.status),e.source&&(t.source=e.source),e.top_level_only&&(t.top_level_only=e.top_level_only),e.asset_type&&(t.asset_type=e.asset_type),t}function i(e={}){let t={};return e.file_type&&(t.file_type=e.file_type),e.extension&&(t.extension=e.extension),t}exports.a=s;exports.b=i;//# sourceMappingURL=chunk-NAISOUTE.cjs.map
2
+ //# sourceMappingURL=chunk-NAISOUTE.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/asset-filters.ts"],"names":["toAssetSearchFilters","filters","out","toAssetMetadataFilters"],"mappings":"aAWA,SAASA,EAAqBC,CAAwB,CAAA,GAAwB,CAC5E,IAAMC,EAA0B,EAAC,CAEjC,OAAID,CAAQ,CAAA,IAAA,GAAMC,EAAI,OAAUD,CAAAA,CAAAA,CAAQ,MACpCA,CAAQ,CAAA,IAAA,GAAMC,EAAI,OAAUD,CAAAA,CAAAA,CAAQ,IACpCA,CAAAA,CAAAA,CAAAA,CAAQ,aAAYC,CAAI,CAAA,UAAA,CAAaD,EAAQ,UAC7CA,CAAAA,CAAAA,CAAAA,CAAQ,UAASC,CAAI,CAAA,UAAA,CAAaD,EAAQ,OAC1CA,CAAAA,CAAAA,CAAAA,CAAQ,SAAQC,CAAI,CAAA,MAAA,CAASD,EAAQ,MACrCA,CAAAA,CAAAA,CAAAA,CAAQ,SAAQC,CAAI,CAAA,MAAA,CAASD,CAAQ,CAAA,MAAA,CAAA,CACrCA,EAAQ,MAAQC,GAAAA,CAAAA,CAAI,OAASD,CAAQ,CAAA,MAAA,CAAA,CACrCA,EAAQ,cAAgBC,GAAAA,CAAAA,CAAI,eAAiBD,CAAQ,CAAA,cAAA,CAAA,CACrDA,EAAQ,UAAYC,GAAAA,CAAAA,CAAI,WAAaD,CAAQ,CAAA,UAAA,CAAA,CAE1CC,CACT,CAKA,SAASC,EACPF,CAAwB,CAAA,GACF,CACtB,IAAMC,EAA4B,EAAC,CACnC,OAAID,CAAQ,CAAA,SAAA,GAAWC,EAAI,SAAYD,CAAAA,CAAAA,CAAQ,WAC3CA,CAAQ,CAAA,SAAA,GAAWC,EAAI,SAAYD,CAAAA,CAAAA,CAAQ,WACxCC,CACT","file":"chunk-NAISOUTE.cjs","sourcesContent":["import type {\n AssetFilters,\n AssetMetadataFilters,\n AssetSearchFilters,\n} from \"../schema/asset-filters\";\n\n/**\n * Map UI {@link AssetFilters} (short keys) to API {@link AssetSearchFilters}\n * (column names). Does not include `file_type` / `extension` — those belong in\n * {@link AssetMetadataFilters} via {@link toAssetMetadataFilters}.\n */\nfunction toAssetSearchFilters(filters: AssetFilters = {}): AssetSearchFilters {\n const out: AssetSearchFilters = {};\n\n if (filters.user) out.user_id = filters.user;\n if (filters.team) out.team_id = filters.team;\n if (filters.visibility) out.visibility = filters.visibility;\n if (filters.license) out.license_id = filters.license;\n if (filters.method) out.method = filters.method;\n if (filters.status) out.status = filters.status;\n if (filters.source) out.source = filters.source;\n if (filters.top_level_only) out.top_level_only = filters.top_level_only;\n if (filters.asset_type) out.asset_type = filters.asset_type;\n\n return out;\n}\n\n/**\n * Pull file-oriented fields off UI {@link AssetFilters} into metadata filters.\n */\nfunction toAssetMetadataFilters(\n filters: AssetFilters = {}\n): AssetMetadataFilters {\n const out: AssetMetadataFilters = {};\n if (filters.file_type) out.file_type = filters.file_type;\n if (filters.extension) out.extension = filters.extension;\n return out;\n}\n\nexport { toAssetSearchFilters, toAssetMetadataFilters };\n"]}
@@ -1,2 +1,2 @@
1
- import {a as a$1}from'./chunk-HBCNAVZP.js';import {c}from'./chunk-4IMLVBKS.js';import {b as b$1}from'./chunk-G6GCUGMM.js';import {k,j,d as d$1,b,a,e}from'./chunk-WRHPQNEL.js';import {b as b$2,c as c$1}from'./chunk-DUBPWSCA.js';import {object,optional,nullable,string,enum as _enum,number,array,uuid,boolean,record,any}from'zod';import {uuidv7}from'uuidv7';var C=a=>a.org_id===b$2&&a.visibility==="organization"?{...a,visibility:"public"}:a,v=object({source:optional(nullable(string())),reply_to_comment_id:optional(nullable(string()))}),O=_enum(["IsSupplementTo","IsDerivedFrom","References","IsVariantFormOf","IsIdenticalTo"]),D=object({doi:optional(nullable(string())),title:optional(nullable(string())),authors:optional(nullable(array(string()))),year:optional(nullable(number())),venue:optional(nullable(string())),url:optional(nullable(string())),bibtex:optional(nullable(string())),source:optional(nullable(string()))}),d=object({originality:optional(_enum(["original","derivative","third-party"])).default("original"),external_url:optional(nullable(string())),github_url:optional(nullable(string())),paper_url:optional(nullable(string())),doi_url:optional(nullable(string())),citation:optional(nullable(D)),relation_type:optional(nullable(O)),doi:optional(nullable(string()))}),T=object({id:uuid(),user_id:uuid(),user:optional(b$1.partial()),org_id:uuid(),organization:optional(c.partial()),team_id:uuid(),team:optional(a$1.partial()),parent_id:optional(nullable(uuid())),parent:optional(record(string(),any())),license_id:string(),license:optional(record(string(),any())),asset_type:a,name:string(),name_url_slug:optional(nullable(string())),slug:optional(nullable(string())),description:optional(nullable(object({json:record(string(),any()),text:string()}))),visibility:b,monetization:d$1,price:optional(nullable(number())),unit_cost:optional(nullable(number())),cost_accounting:optional(nullable(_enum(["fixed","variable"]))),cost_unit:optional(nullable(string())),price_currency:optional(e),stripe_product_id:optional(nullable(string())),stripe_price_id:optional(nullable(string())),stripe_meter_id:optional(nullable(string())),metadata:optional(nullable(v)),attribution:d,preview:optional(nullable(array(record(string(),any())))),state:j,source:k,is_pinned_in_team:optional(boolean().default(false)),created_at:string(),last_updated:string()}),R={originality:"original"},G=T.partial().omit({user_id:true,user:true,organization:true,license:true,team:true,slug:true,is_pinned_in_team:true}).extend({id:uuid().default(()=>uuidv7()),team_id:nullable(uuid()).default(c$1),org_id:nullable(uuid()).default(b$2),name:string().min(1,{message:"Name cannot be empty"}).max(255,{message:"Name must be less than 255 characters"}),name_url_slug:optional(nullable(string())),state:j.optional().default("success"),source:k.default("web"),visibility:b.optional().default("public"),attribution:optional(nullable(d)).transform(a=>d.parse(a!=null?a:R)),created_at:string().default(()=>new Date().toISOString()),last_updated:string().default(()=>new Date().toISOString())}),N=T.partial().omit({id:true,user_id:true,created_at:true,user:true,organization:true,team:true,slug:true,is_pinned_in_team:true}).transform(a=>C(a));export{C as a,v as b,O as c,D as d,d as e,T as f,R as g,G as h,N as i};//# sourceMappingURL=chunk-PE7JS2HJ.js.map
2
- //# sourceMappingURL=chunk-PE7JS2HJ.js.map
1
+ import {a as a$1}from'./chunk-YTIUJ72Q.js';import {c}from'./chunk-42WKTHH5.js';import {b as b$1}from'./chunk-G6GCUGMM.js';import {k,j,d as d$1,b,a,e}from'./chunk-3BZRQYRC.js';import {b as b$2,c as c$1}from'./chunk-DUBPWSCA.js';import {object,optional,nullable,string,enum as _enum,number,array,uuid,boolean,record,any}from'zod';import {uuidv7}from'uuidv7';var C=a=>a.org_id===b$2&&a.visibility==="organization"?{...a,visibility:"public"}:a,v=object({source:optional(nullable(string())),reply_to_comment_id:optional(nullable(string()))}),O=_enum(["IsSupplementTo","IsDerivedFrom","References","IsVariantFormOf","IsIdenticalTo"]),D=object({doi:optional(nullable(string())),title:optional(nullable(string())),authors:optional(nullable(array(string()))),year:optional(nullable(number())),venue:optional(nullable(string())),url:optional(nullable(string())),bibtex:optional(nullable(string())),source:optional(nullable(string()))}),d=object({originality:optional(_enum(["original","derivative","third-party"])).default("original"),external_url:optional(nullable(string())),github_url:optional(nullable(string())),paper_url:optional(nullable(string())),doi_url:optional(nullable(string())),citation:optional(nullable(D)),relation_type:optional(nullable(O)),doi:optional(nullable(string()))}),T=object({id:uuid(),user_id:uuid(),user:optional(b$1.partial()),org_id:uuid(),organization:optional(c.partial()),team_id:uuid(),team:optional(a$1.partial()),parent_id:optional(nullable(uuid())),parent:optional(record(string(),any())),license_id:string(),license:optional(record(string(),any())),asset_type:a,name:string(),name_url_slug:optional(nullable(string())),slug:optional(nullable(string())),description:optional(nullable(object({json:record(string(),any()),text:string()}))),visibility:b,monetization:d$1,price:optional(nullable(number())),unit_cost:optional(nullable(number())),cost_accounting:optional(nullable(_enum(["fixed","variable"]))),cost_unit:optional(nullable(string())),price_currency:optional(e),stripe_product_id:optional(nullable(string())),stripe_price_id:optional(nullable(string())),stripe_meter_id:optional(nullable(string())),metadata:optional(nullable(v)),attribution:d,preview:optional(nullable(array(record(string(),any())))),state:j,source:k,is_pinned_in_team:optional(boolean().default(false)),created_at:string(),last_updated:string()}),R={originality:"original"},G=T.partial().omit({user_id:true,user:true,organization:true,license:true,team:true,slug:true,is_pinned_in_team:true}).extend({id:uuid().default(()=>uuidv7()),team_id:nullable(uuid()).default(c$1),org_id:nullable(uuid()).default(b$2),name:string().min(1,{message:"Name cannot be empty"}).max(255,{message:"Name must be less than 255 characters"}),name_url_slug:optional(nullable(string())),state:j.optional().default("success"),source:k.default("web"),visibility:b.optional().default("public"),attribution:optional(nullable(d)).transform(a=>d.parse(a!=null?a:R)),created_at:string().default(()=>new Date().toISOString()),last_updated:string().default(()=>new Date().toISOString())}),N=T.partial().omit({id:true,user_id:true,created_at:true,user:true,organization:true,team:true,slug:true,is_pinned_in_team:true}).transform(a=>C(a));export{C as a,v as b,O as c,D as d,d as e,T as f,R as g,G as h,N as i};//# sourceMappingURL=chunk-PB4XG5WM.js.map
2
+ //# sourceMappingURL=chunk-PB4XG5WM.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schema/assets.ts"],"names":["normalizeAssetConfigForParsing","input","GLOBAL_ORG_ID","AssetMetadataSchema","object","optional","nullable","string","RelationTypeSchema","zodEnum","CitationSchema","array","number","AttributionSchema","AssetSchema","uuid","ProfileSchema","OrganizationsSchema","TeamSchema","record","any","AssetTypeSchema","VisibilitySchema","MonetizationSchema","PriceCurrencySchema","StatusSchema","SourceSchema","boolean","DEFAULT_ATTRIBUTION","CreateAssetSchema","uuidv7","GLOBAL_TEAM_ID","value","UpdateAssetSchema"],"mappings":"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","file":"chunk-PE7JS2HJ.js","sourcesContent":["import {\n object,\n string,\n uuid,\n number,\n array,\n enum as zodEnum,\n nullable,\n optional,\n boolean,\n record,\n type z,\n any\n} from \"zod\";\n\nimport {\n AssetTypeSchema,\n MonetizationSchema,\n PriceCurrencySchema,\n StatusSchema,\n SourceSchema,\n VisibilitySchema,\n} from \"./common\";\nimport { OrganizationsSchema } from \"./organizations\";\nimport { TeamSchema } from \"./teams\";\nimport { ProfileSchema } from \"./users\";\nimport { uuidv7 } from \"uuidv7\";\nimport { GLOBAL_ORG_ID, GLOBAL_TEAM_ID } from \"./constants\";\n\ntype AssetConfigInput = {\n org_id?: string | null;\n visibility?: z.infer<typeof VisibilitySchema> | null;\n};\n\nconst normalizeAssetConfigForParsing = <T extends AssetConfigInput>(\n input: T\n): T => {\n if (input.org_id === GLOBAL_ORG_ID && input.visibility === \"organization\") {\n return { ...input, visibility: \"public\" as T[\"visibility\"] };\n }\n return input;\n};\n\n/** Type-specific / incidental metadata only (not attribution). */\nconst AssetMetadataSchema = object({\n source: optional(nullable(string())),\n /** When present on a comment, the id of the comment the user directly replied to (for reply-to-reply; parent_id is the top-level comment). */\n reply_to_comment_id: optional(nullable(string())),\n})\n\nconst RelationTypeSchema = zodEnum([\n \"IsSupplementTo\",\n \"IsDerivedFrom\",\n \"References\",\n \"IsVariantFormOf\",\n \"IsIdenticalTo\",\n])\n\nconst CitationSchema = object({\n doi: optional(nullable(string())),\n title: optional(nullable(string())),\n authors: optional(nullable(array(string()))),\n year: optional(nullable(number())),\n venue: optional(nullable(string())),\n url: optional(nullable(string())),\n bibtex: optional(nullable(string())),\n source: optional(nullable(string())),\n})\n\n/** Provenance, related-work citation, and (later) this asset's minted DOI. */\nconst AttributionSchema = object({\n originality: optional(\n zodEnum([\"original\", \"derivative\", \"third-party\"])\n ).default(\"original\"),\n external_url: optional(nullable(string())),\n github_url: optional(nullable(string())),\n paper_url: optional(nullable(string())),\n doi_url: optional(nullable(string())),\n citation: optional(nullable(CitationSchema)),\n relation_type: optional(nullable(RelationTypeSchema)),\n /** This asset's DOI — reserved for minting; never the related paper's DOI. */\n doi: optional(nullable(string())),\n})\n\nconst AssetSchema = object({\n id: uuid(),\n user_id: uuid(),\n user: optional(ProfileSchema.partial()),\n org_id: uuid(),\n organization: optional(OrganizationsSchema.partial()),\n team_id: uuid(),\n team: optional(TeamSchema.partial()),\n parent_id: optional(nullable(uuid())),\n parent: optional(record(string(), any())),\n license_id: string(),\n license: optional(record(string(), any())),\n asset_type: AssetTypeSchema,\n name: string(),\n name_url_slug: optional(nullable(string())),\n slug: optional(nullable(string())),\n // Rich description: store both editor json and plain text\n description: optional(\n nullable(\n object({\n json: record(string(), any()),\n text: string(),\n })\n )\n ),\n visibility: VisibilitySchema,\n monetization: MonetizationSchema,\n price: optional(nullable(number())),\n unit_cost: optional(nullable(number())),\n cost_accounting: optional(nullable(zodEnum([\"fixed\", \"variable\"]))),\n cost_unit: optional(nullable(string())),\n price_currency: optional(PriceCurrencySchema),\n stripe_product_id: optional(nullable(string())),\n stripe_price_id: optional(nullable(string())),\n stripe_meter_id: optional(nullable(string())),\n metadata: optional(nullable(AssetMetadataSchema)),\n // NOT NULL in DB; always present after 20260720_assets_attribution.\n attribution: AttributionSchema,\n preview: optional(nullable(array(record(string(), any())))),\n state: StatusSchema,\n source: SourceSchema,\n is_pinned_in_team: optional(boolean().default(false)),\n created_at: string(),\n last_updated: string(),\n});\n\nconst DEFAULT_ATTRIBUTION = { originality: \"original\" as const };\n\nconst CreateAssetSchema = AssetSchema.partial()\n .omit({\n user_id: true,\n user: true,\n organization: true,\n license: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n })\n .extend({\n id: uuid().default(() => uuidv7()),\n team_id: nullable(uuid())\n .default(GLOBAL_TEAM_ID),\n org_id: nullable(uuid())\n .default(GLOBAL_ORG_ID),\n name: string()\n .min(1, { message: \"Name cannot be empty\" })\n .max(255, { message: \"Name must be less than 255 characters\" }),\n name_url_slug: optional(nullable(string())),\n state: StatusSchema.optional().default(\"success\"),\n source: SourceSchema.default(\"web\"),\n visibility: VisibilitySchema.optional().default(\"public\"),\n // Column is NOT NULL; coerce omitted/null so create_asset_with_content\n // never inserts an explicit null (which bypasses the DB default).\n attribution: optional(nullable(AttributionSchema)).transform((value) =>\n AttributionSchema.parse(value ?? DEFAULT_ATTRIBUTION)\n ),\n created_at: string().default(() => new Date().toISOString()),\n last_updated: string().default(() => new Date().toISOString()),\n });\n\nconst UpdateAssetSchema = AssetSchema.partial().omit({\n id: true,\n user_id: true,\n created_at: true,\n user: true,\n organization: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nexport {\n AssetMetadataSchema,\n AttributionSchema,\n CitationSchema,\n RelationTypeSchema,\n AssetSchema,\n CreateAssetSchema,\n UpdateAssetSchema,\n DEFAULT_ATTRIBUTION,\n normalizeAssetConfigForParsing,\n};\nexport type AssetMetadata = z.infer<typeof AssetMetadataSchema>;\nexport type Attribution = z.infer<typeof AttributionSchema>;\nexport type Citation = z.infer<typeof CitationSchema>;\nexport type RelationType = z.infer<typeof RelationTypeSchema>;\nexport type Asset = z.infer<typeof AssetSchema>;\nexport type CreateAsset = z.infer<typeof CreateAssetSchema>;\nexport type UpdateAsset = z.infer<typeof UpdateAssetSchema>;\n"]}
1
+ {"version":3,"sources":["../src/schema/assets.ts"],"names":["normalizeAssetConfigForParsing","input","GLOBAL_ORG_ID","AssetMetadataSchema","object","optional","nullable","string","RelationTypeSchema","zodEnum","CitationSchema","array","number","AttributionSchema","AssetSchema","uuid","ProfileSchema","OrganizationsSchema","TeamSchema","record","any","AssetTypeSchema","VisibilitySchema","MonetizationSchema","PriceCurrencySchema","StatusSchema","SourceSchema","boolean","DEFAULT_ATTRIBUTION","CreateAssetSchema","uuidv7","GLOBAL_TEAM_ID","value","UpdateAssetSchema"],"mappings":"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","file":"chunk-PB4XG5WM.js","sourcesContent":["import {\n object,\n string,\n uuid,\n number,\n array,\n enum as zodEnum,\n nullable,\n optional,\n boolean,\n record,\n type z,\n any\n} from \"zod\";\n\nimport {\n AssetTypeSchema,\n MonetizationSchema,\n PriceCurrencySchema,\n StatusSchema,\n SourceSchema,\n VisibilitySchema,\n} from \"./common\";\nimport { OrganizationsSchema } from \"./organizations\";\nimport { TeamSchema } from \"./teams\";\nimport { ProfileSchema } from \"./users\";\nimport { uuidv7 } from \"uuidv7\";\nimport { GLOBAL_ORG_ID, GLOBAL_TEAM_ID } from \"./constants\";\n\ntype AssetConfigInput = {\n org_id?: string | null;\n visibility?: z.infer<typeof VisibilitySchema> | null;\n};\n\nconst normalizeAssetConfigForParsing = <T extends AssetConfigInput>(\n input: T\n): T => {\n if (input.org_id === GLOBAL_ORG_ID && input.visibility === \"organization\") {\n return { ...input, visibility: \"public\" as T[\"visibility\"] };\n }\n return input;\n};\n\n/** Type-specific / incidental metadata only (not attribution). */\nconst AssetMetadataSchema = object({\n source: optional(nullable(string())),\n /** When present on a comment, the id of the comment the user directly replied to (for reply-to-reply; parent_id is the top-level comment). */\n reply_to_comment_id: optional(nullable(string())),\n})\n\nconst RelationTypeSchema = zodEnum([\n \"IsSupplementTo\",\n \"IsDerivedFrom\",\n \"References\",\n \"IsVariantFormOf\",\n \"IsIdenticalTo\",\n])\n\nconst CitationSchema = object({\n doi: optional(nullable(string())),\n title: optional(nullable(string())),\n authors: optional(nullable(array(string()))),\n year: optional(nullable(number())),\n venue: optional(nullable(string())),\n url: optional(nullable(string())),\n bibtex: optional(nullable(string())),\n source: optional(nullable(string())),\n})\n\n/** Provenance, related-work citation, and (later) this asset's minted DOI. */\nconst AttributionSchema = object({\n originality: optional(\n zodEnum([\"original\", \"derivative\", \"third-party\"])\n ).default(\"original\"),\n external_url: optional(nullable(string())),\n github_url: optional(nullable(string())),\n paper_url: optional(nullable(string())),\n doi_url: optional(nullable(string())),\n citation: optional(nullable(CitationSchema)),\n relation_type: optional(nullable(RelationTypeSchema)),\n /** This asset's DOI — reserved for minting; never the related paper's DOI. */\n doi: optional(nullable(string())),\n})\n\nconst AssetSchema = object({\n id: uuid(),\n user_id: uuid(),\n user: optional(ProfileSchema.partial()),\n org_id: uuid(),\n organization: optional(OrganizationsSchema.partial()),\n team_id: uuid(),\n team: optional(TeamSchema.partial()),\n parent_id: optional(nullable(uuid())),\n parent: optional(record(string(), any())),\n license_id: string(),\n license: optional(record(string(), any())),\n asset_type: AssetTypeSchema,\n name: string(),\n name_url_slug: optional(nullable(string())),\n slug: optional(nullable(string())),\n // Rich description: store both editor json and plain text\n description: optional(\n nullable(\n object({\n json: record(string(), any()),\n text: string(),\n })\n )\n ),\n visibility: VisibilitySchema,\n monetization: MonetizationSchema,\n price: optional(nullable(number())),\n unit_cost: optional(nullable(number())),\n cost_accounting: optional(nullable(zodEnum([\"fixed\", \"variable\"]))),\n cost_unit: optional(nullable(string())),\n price_currency: optional(PriceCurrencySchema),\n stripe_product_id: optional(nullable(string())),\n stripe_price_id: optional(nullable(string())),\n stripe_meter_id: optional(nullable(string())),\n metadata: optional(nullable(AssetMetadataSchema)),\n // NOT NULL in DB; always present after 20260720_assets_attribution.\n attribution: AttributionSchema,\n preview: optional(nullable(array(record(string(), any())))),\n state: StatusSchema,\n source: SourceSchema,\n is_pinned_in_team: optional(boolean().default(false)),\n created_at: string(),\n last_updated: string(),\n});\n\nconst DEFAULT_ATTRIBUTION = { originality: \"original\" as const };\n\nconst CreateAssetSchema = AssetSchema.partial()\n .omit({\n user_id: true,\n user: true,\n organization: true,\n license: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n })\n .extend({\n id: uuid().default(() => uuidv7()),\n team_id: nullable(uuid())\n .default(GLOBAL_TEAM_ID),\n org_id: nullable(uuid())\n .default(GLOBAL_ORG_ID),\n name: string()\n .min(1, { message: \"Name cannot be empty\" })\n .max(255, { message: \"Name must be less than 255 characters\" }),\n name_url_slug: optional(nullable(string())),\n state: StatusSchema.optional().default(\"success\"),\n source: SourceSchema.default(\"web\"),\n visibility: VisibilitySchema.optional().default(\"public\"),\n // Column is NOT NULL; coerce omitted/null so create_asset_with_content\n // never inserts an explicit null (which bypasses the DB default).\n attribution: optional(nullable(AttributionSchema)).transform((value) =>\n AttributionSchema.parse(value ?? DEFAULT_ATTRIBUTION)\n ),\n created_at: string().default(() => new Date().toISOString()),\n last_updated: string().default(() => new Date().toISOString()),\n });\n\nconst UpdateAssetSchema = AssetSchema.partial().omit({\n id: true,\n user_id: true,\n created_at: true,\n user: true,\n organization: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nexport {\n AssetMetadataSchema,\n AttributionSchema,\n CitationSchema,\n RelationTypeSchema,\n AssetSchema,\n CreateAssetSchema,\n UpdateAssetSchema,\n DEFAULT_ATTRIBUTION,\n normalizeAssetConfigForParsing,\n};\nexport type AssetMetadata = z.infer<typeof AssetMetadataSchema>;\nexport type Attribution = z.infer<typeof AttributionSchema>;\nexport type Citation = z.infer<typeof CitationSchema>;\nexport type RelationType = z.infer<typeof RelationTypeSchema>;\nexport type Asset = z.infer<typeof AssetSchema>;\nexport type CreateAsset = z.infer<typeof CreateAssetSchema>;\nexport type UpdateAsset = z.infer<typeof UpdateAssetSchema>;\n"]}
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkQ6VQANTI_cjs=require('./chunk-Q6VQANTI.cjs'),chunk43KB23BA_cjs=require('./chunk-43KB23BA.cjs'),zod=require('zod');var y=zod.object({type:zod.string(),size:zod.number(),path:zod.string(),extension:zod.string(),name:zod.string(),id:zod.uuid(),bucket:zod.enum(["public-files","files"])}),_=zod.enum(["asset","action"]),x=zod.record(zod.string(),zod.object({kind:_,asset_type:zod.optional(chunk43KB23BA_cjs.a)})),z=zod.record(zod.string(),zod.object({values:zod.array(zod.string())})),F=zod.object({table_name:zod.string(),schema:zod.literal("datasets").default("datasets"),columns:zod.array(zod.string()),refs:zod.optional(zod.nullable(x)),enum_columns:zod.optional(zod.nullable(z))}),w=zod.object({column_name:zod.string(),data_type:zod.string(),fk_constraint_name:zod.optional(zod.nullable(zod.string())),foreign_table_schema:zod.optional(zod.nullable(zod.string())),foreign_table_name:zod.optional(zod.nullable(zod.string())),foreign_column_name:zod.optional(zod.nullable(zod.string())),semantic_type:zod.optional(zod.nullable(zod.enum(["reference","enum"]))),ref_kind:zod.optional(zod.nullable(_)),asset_type:zod.optional(zod.nullable(chunk43KB23BA_cjs.a)),enum_values:zod.optional(zod.nullable(zod.array(zod.string())))}),v=zod.object({kind:zod.literal("asset"),id:zod.uuid(),asset_type:chunk43KB23BA_cjs.a,name:zod.nullable(zod.string()),web_url:zod.nullable(zod.string())}),C=zod.object({kind:zod.literal("action"),id:zod.uuid(),status:zod.nullable(zod.string()),route_id:zod.nullable(zod.uuid()),route_name:zod.nullable(zod.string()),name:zod.nullable(zod.string()),web_url:zod.nullable(zod.string()),created_at:zod.nullable(zod.string())}),b=zod.discriminatedUnion("kind",[v,C]),M=zod.record(zod.string(),zod.record(zod.string(),b)),u=F.extend(chunkQ6VQANTI_cjs.b.partial().shape),g=chunkQ6VQANTI_cjs.f.extend({asset_type:zod.literal("dataset").default("dataset"),metadata:u.extend({...y.partial().shape}),preview:zod.array(zod.record(zod.string(),zod.any()))}),K=chunkQ6VQANTI_cjs.h.extend({asset_type:zod.literal("dataset").default("dataset"),metadata:u.extend({...y.shape}),preview:zod.array(zod.record(zod.string(),zod.any()))}).transform(m=>chunkQ6VQANTI_cjs.a(m)),U=chunkQ6VQANTI_cjs.h.extend({asset_type:zod.literal("dataset").default("dataset"),metadata:u,preview:zod.array(zod.record(zod.string(),zod.any()))}).transform(m=>chunkQ6VQANTI_cjs.a(m)),j=g.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,organization:true,user:true,team:true,slug:true,is_pinned_in_team:true}).extend({asset_type:zod.literal("dataset").default("dataset"),last_updated:zod.string().default(()=>new Date().toISOString())}).transform(m=>chunkQ6VQANTI_cjs.a(m));exports.a=_;exports.b=x;exports.c=z;exports.d=w;exports.e=b;exports.f=M;exports.g=g;exports.h=K;exports.i=U;exports.j=j;//# sourceMappingURL=chunk-SAREC2M2.cjs.map
2
- //# sourceMappingURL=chunk-SAREC2M2.cjs.map
1
+ 'use strict';var chunk7YG2YDXN_cjs=require('./chunk-7YG2YDXN.cjs'),chunkMNECKGIP_cjs=require('./chunk-MNECKGIP.cjs'),zod=require('zod');var y=zod.object({type:zod.string(),size:zod.number(),path:zod.string(),extension:zod.string(),name:zod.string(),id:zod.uuid(),bucket:zod.enum(["public-files","files"])}),_=zod.enum(["asset","action"]),x=zod.record(zod.string(),zod.object({kind:_,asset_type:zod.optional(chunkMNECKGIP_cjs.a)})),z=zod.record(zod.string(),zod.object({values:zod.array(zod.string())})),F=zod.object({table_name:zod.string(),schema:zod.literal("datasets").default("datasets"),columns:zod.array(zod.string()),refs:zod.optional(zod.nullable(x)),enum_columns:zod.optional(zod.nullable(z))}),w=zod.object({column_name:zod.string(),data_type:zod.string(),fk_constraint_name:zod.optional(zod.nullable(zod.string())),foreign_table_schema:zod.optional(zod.nullable(zod.string())),foreign_table_name:zod.optional(zod.nullable(zod.string())),foreign_column_name:zod.optional(zod.nullable(zod.string())),semantic_type:zod.optional(zod.nullable(zod.enum(["reference","enum"]))),ref_kind:zod.optional(zod.nullable(_)),asset_type:zod.optional(zod.nullable(chunkMNECKGIP_cjs.a)),enum_values:zod.optional(zod.nullable(zod.array(zod.string())))}),v=zod.object({kind:zod.literal("asset"),id:zod.uuid(),asset_type:chunkMNECKGIP_cjs.a,name:zod.nullable(zod.string()),web_url:zod.nullable(zod.string())}),C=zod.object({kind:zod.literal("action"),id:zod.uuid(),status:zod.nullable(zod.string()),route_id:zod.nullable(zod.uuid()),route_name:zod.nullable(zod.string()),name:zod.nullable(zod.string()),web_url:zod.nullable(zod.string()),created_at:zod.nullable(zod.string())}),b=zod.discriminatedUnion("kind",[v,C]),M=zod.record(zod.string(),zod.record(zod.string(),b)),u=F.extend(chunk7YG2YDXN_cjs.b.partial().shape),g=chunk7YG2YDXN_cjs.f.extend({asset_type:zod.literal("dataset").default("dataset"),metadata:u.extend({...y.partial().shape}),preview:zod.array(zod.record(zod.string(),zod.any()))}),K=chunk7YG2YDXN_cjs.h.extend({asset_type:zod.literal("dataset").default("dataset"),metadata:u.extend({...y.shape}),preview:zod.array(zod.record(zod.string(),zod.any()))}).transform(m=>chunk7YG2YDXN_cjs.a(m)),U=chunk7YG2YDXN_cjs.h.extend({asset_type:zod.literal("dataset").default("dataset"),metadata:u,preview:zod.array(zod.record(zod.string(),zod.any()))}).transform(m=>chunk7YG2YDXN_cjs.a(m)),j=g.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,organization:true,user:true,team:true,slug:true,is_pinned_in_team:true}).extend({asset_type:zod.literal("dataset").default("dataset"),last_updated:zod.string().default(()=>new Date().toISOString())}).transform(m=>chunk7YG2YDXN_cjs.a(m));exports.a=_;exports.b=x;exports.c=z;exports.d=w;exports.e=b;exports.f=M;exports.g=g;exports.h=K;exports.i=U;exports.j=j;//# sourceMappingURL=chunk-QWD7POET.cjs.map
2
+ //# sourceMappingURL=chunk-QWD7POET.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schema/datasets.ts"],"names":["DatasetFromFileMetadataSchema","object","string","number","uuid","zodEnum","RefKindSchema","DatasetRefsSchema","record","optional","AssetTypeSchema","DatasetEnumColumnsSchema","array","BaseDatasetMetadataSchema","literal","nullable","EnrichedDatasetSchemaFieldSchema","ResolvedAssetRefSchema","ResolvedActionRefSchema","ResolvedRefSchema","discriminatedUnion","ResolvedRefsSchema","DatasetMetadataSchema","AssetMetadataSchema","DatasetSchema","AssetSchema","any","CreateDatasetFromFileSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","CreateDatasetFromSchemaSchema","updateDatasetSchema"],"mappings":"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","file":"chunk-SAREC2M2.cjs","sourcesContent":["import {\n object,\n string,\n uuid,\n number,\n array,\n literal,\n record,\n optional,\n nullable,\n discriminatedUnion,\n type z,\n any,\n enum as zodEnum\n} from \"zod\";\n\nimport {\n AssetSchema,\n CreateAssetSchema,\n AssetMetadataSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { AssetTypeSchema } from \"./common\";\n\nconst DatasetFromFileMetadataSchema = object({\n type: string(),\n size: number(),\n path: string(),\n extension: string(),\n name: string(),\n id: uuid(), // storage file object id,\n bucket: zodEnum([\"public-files\", \"files\"]),\n});\n\n/**\n * The kind of object a dataset reference column points at. The FK target table\n * is the source of truth: public.assets -> \"asset\", public.actions -> \"action\".\n */\nconst RefKindSchema = zodEnum([\"asset\", \"action\"]);\n\n/**\n * Per-column reference declarations.\n *\n * A column becomes a reference when the backend adds a real Postgres FK to a\n * referenceable table. `kind` selects the target table; `asset_type` is an\n * optional target-type hint that only applies when `kind` is \"asset\".\n */\nconst DatasetRefsSchema = record(\n string(),\n object({\n kind: RefKindSchema,\n asset_type: optional(AssetTypeSchema),\n })\n);\n\n/**\n * Per-column enum declarations.\n *\n * Enum columns are stored as ordinary dataset columns plus a Postgres CHECK\n * constraint. The values are surfaced in schema reads so agents can query with\n * known categorical values.\n */\nconst DatasetEnumColumnsSchema = record(\n string(),\n object({\n values: array(string()),\n })\n);\n\nconst BaseDatasetMetadataSchema = object({\n table_name: string(),\n schema: literal(\"datasets\").default(\"datasets\"),\n columns: array(string()),\n refs: optional(nullable(DatasetRefsSchema)),\n enum_columns: optional(nullable(DatasetEnumColumnsSchema)),\n});\n\n/**\n * A single column from GET /datasets/:id/schema, enriched server-side.\n *\n * The FK fields come straight from get_table_schema. `semantic_type` is pure\n * inference: \"reference\" when the column has an FK to a referenceable table,\n * with `ref_kind` naming which one (\"asset\" | \"action\"). The optional\n * `asset_type` is the declared target-type hint from metadata.refs (display +\n * soft validation only, asset kind only). `semantic_type: \"enum\"` comes from\n * metadata.enum_columns and exposes its known values.\n */\nconst EnrichedDatasetSchemaFieldSchema = object({\n column_name: string(),\n data_type: string(),\n fk_constraint_name: optional(nullable(string())),\n foreign_table_schema: optional(nullable(string())),\n foreign_table_name: optional(nullable(string())),\n foreign_column_name: optional(nullable(string())),\n semantic_type: optional(nullable(zodEnum([\"reference\", \"enum\"]))),\n ref_kind: optional(nullable(RefKindSchema)),\n asset_type: optional(nullable(AssetTypeSchema)),\n enum_values: optional(nullable(array(string()))),\n});\n\n/**\n * A resolved reference returned in the `resolved_refs` sidecar of\n * GET /datasets/:id/data?resolve_refs=true. Discriminated on `kind` so asset\n * and action references share one vocabulary while carrying kind-specific\n * fields.\n */\nconst ResolvedAssetRefSchema = object({\n kind: literal(\"asset\"),\n id: uuid(),\n asset_type: AssetTypeSchema,\n name: nullable(string()),\n web_url: nullable(string()),\n});\n\nconst ResolvedActionRefSchema = object({\n kind: literal(\"action\"),\n id: uuid(),\n status: nullable(string()),\n route_id: nullable(uuid()),\n route_name: nullable(string()),\n name: nullable(string()),\n web_url: nullable(string()),\n created_at: nullable(string()),\n});\n\nconst ResolvedRefSchema = discriminatedUnion(\"kind\", [\n ResolvedAssetRefSchema,\n ResolvedActionRefSchema,\n]);\n\n/** column -> (referenced uuid -> resolved reference). */\nconst ResolvedRefsSchema = record(\n string(),\n record(string(), ResolvedRefSchema)\n);\n\nconst DatasetMetadataSchema = BaseDatasetMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst DatasetSchema = AssetSchema.extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n metadata: DatasetMetadataSchema.extend({\n ...DatasetFromFileMetadataSchema.partial().shape,\n }),\n preview: array(record(string(), any())),\n});\n\nconst CreateDatasetFromFileSchema = CreateAssetSchema.extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n metadata: DatasetMetadataSchema.extend({\n ...DatasetFromFileMetadataSchema.shape,\n }),\n preview: array(record(string(), any())),\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst CreateDatasetFromSchemaSchema = CreateAssetSchema.extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n metadata: DatasetMetadataSchema,\n preview: array(record(string(), any())),\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst updateDatasetSchema = DatasetSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n })\n .extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nexport {\n DatasetSchema,\n CreateDatasetFromFileSchema,\n CreateDatasetFromSchemaSchema,\n updateDatasetSchema,\n RefKindSchema,\n DatasetRefsSchema,\n DatasetEnumColumnsSchema,\n EnrichedDatasetSchemaFieldSchema,\n ResolvedRefSchema,\n ResolvedRefsSchema,\n};\nexport type Dataset = z.infer<typeof DatasetSchema>;\nexport type CreateFromFileDataset = z.infer<typeof CreateDatasetFromFileSchema>;\nexport type CreateFromSchemaDataset = z.infer<typeof CreateDatasetFromSchemaSchema>;\nexport type UpdateDataset = z.infer<typeof updateDatasetSchema>;\nexport type RefKind = z.infer<typeof RefKindSchema>;\nexport type DatasetRefs = z.infer<typeof DatasetRefsSchema>;\nexport type DatasetEnumColumns = z.infer<typeof DatasetEnumColumnsSchema>;\nexport type EnrichedDatasetSchemaField = z.infer<\n typeof EnrichedDatasetSchemaFieldSchema\n>;\nexport type ResolvedRef = z.infer<typeof ResolvedRefSchema>;\nexport type ResolvedRefs = z.infer<typeof ResolvedRefsSchema>;\n"]}
1
+ {"version":3,"sources":["../src/schema/datasets.ts"],"names":["DatasetFromFileMetadataSchema","object","string","number","uuid","zodEnum","RefKindSchema","DatasetRefsSchema","record","optional","AssetTypeSchema","DatasetEnumColumnsSchema","array","BaseDatasetMetadataSchema","literal","nullable","EnrichedDatasetSchemaFieldSchema","ResolvedAssetRefSchema","ResolvedActionRefSchema","ResolvedRefSchema","discriminatedUnion","ResolvedRefsSchema","DatasetMetadataSchema","AssetMetadataSchema","DatasetSchema","AssetSchema","any","CreateDatasetFromFileSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","CreateDatasetFromSchemaSchema","updateDatasetSchema"],"mappings":"4IAwBMA,CAAgCC,CAAAA,UAAAA,CAAO,CAC3C,IAAA,CAAMC,UAAO,EAAA,CACb,KAAMC,UAAO,EAAA,CACb,IAAMD,CAAAA,UAAAA,EACN,CAAA,SAAA,CAAWA,YACX,CAAA,IAAA,CAAMA,UAAO,EAAA,CACb,EAAIE,CAAAA,QAAAA,GACJ,MAAQC,CAAAA,QAAAA,CAAQ,CAAC,cAAA,CAAgB,OAAO,CAAC,CAC3C,CAAC,CAAA,CAMKC,EAAgBD,QAAQ,CAAA,CAAC,QAAS,QAAQ,CAAC,CAS3CE,CAAAA,CAAAA,CAAoBC,UACxBN,CAAAA,UAAAA,GACAD,UAAO,CAAA,CACL,IAAMK,CAAAA,CAAAA,CACN,UAAYG,CAAAA,YAAAA,CAASC,mBAAe,CACtC,CAAC,CACH,CAAA,CASMC,CAA2BH,CAAAA,UAAAA,CAC/BN,YACAD,CAAAA,UAAAA,CAAO,CACL,MAAA,CAAQW,SAAMV,CAAAA,UAAAA,EAAQ,CACxB,CAAC,CACH,CAAA,CAEMW,CAA4BZ,CAAAA,UAAAA,CAAO,CACvC,UAAYC,CAAAA,UAAAA,EACZ,CAAA,MAAA,CAAQY,WAAQ,CAAA,UAAU,EAAE,OAAQ,CAAA,UAAU,CAC9C,CAAA,OAAA,CAASF,SAAMV,CAAAA,UAAAA,EAAQ,CACvB,CAAA,IAAA,CAAMO,aAASM,YAASR,CAAAA,CAAiB,CAAC,CAC1C,CAAA,YAAA,CAAcE,YAASM,CAAAA,YAAAA,CAASJ,CAAwB,CAAC,CAC3D,CAAC,CAAA,CAYKK,CAAmCf,CAAAA,UAAAA,CAAO,CAC9C,WAAA,CAAaC,YACb,CAAA,SAAA,CAAWA,UAAO,EAAA,CAClB,kBAAoBO,CAAAA,YAAAA,CAASM,aAASb,UAAO,EAAC,CAAC,CAAA,CAC/C,oBAAsBO,CAAAA,YAAAA,CAASM,aAASb,UAAO,EAAC,CAAC,CAAA,CACjD,kBAAoBO,CAAAA,YAAAA,CAASM,aAASb,UAAO,EAAC,CAAC,CAAA,CAC/C,mBAAqBO,CAAAA,YAAAA,CAASM,aAASb,UAAO,EAAC,CAAC,CAAA,CAChD,aAAeO,CAAAA,YAAAA,CAASM,aAASV,QAAQ,CAAA,CAAC,WAAa,CAAA,MAAM,CAAC,CAAC,CAAC,CAChE,CAAA,QAAA,CAAUI,YAASM,CAAAA,YAAAA,CAAST,CAAa,CAAC,EAC1C,UAAYG,CAAAA,YAAAA,CAASM,YAASL,CAAAA,mBAAe,CAAC,CAAA,CAC9C,YAAaD,YAASM,CAAAA,YAAAA,CAASH,SAAMV,CAAAA,UAAAA,EAAQ,CAAC,CAAC,CACjD,CAAC,CAQKe,CAAAA,CAAAA,CAAyBhB,UAAO,CAAA,CACpC,KAAMa,WAAQ,CAAA,OAAO,CACrB,CAAA,EAAA,CAAIV,QAAK,EAAA,CACT,WAAYM,mBACZ,CAAA,IAAA,CAAMK,YAASb,CAAAA,UAAAA,EAAQ,CAAA,CACvB,QAASa,YAASb,CAAAA,UAAAA,EAAQ,CAC5B,CAAC,CAAA,CAEKgB,EAA0BjB,UAAO,CAAA,CACrC,KAAMa,WAAQ,CAAA,QAAQ,EACtB,EAAIV,CAAAA,QAAAA,EACJ,CAAA,MAAA,CAAQW,YAASb,CAAAA,UAAAA,EAAQ,CACzB,CAAA,QAAA,CAAUa,YAASX,CAAAA,QAAAA,EAAM,CAAA,CACzB,WAAYW,YAASb,CAAAA,UAAAA,EAAQ,CAAA,CAC7B,IAAMa,CAAAA,YAAAA,CAASb,YAAQ,CAAA,CACvB,OAASa,CAAAA,YAAAA,CAASb,UAAO,EAAC,EAC1B,UAAYa,CAAAA,YAAAA,CAASb,UAAO,EAAC,CAC/B,CAAC,EAEKiB,CAAoBC,CAAAA,sBAAAA,CAAmB,MAAQ,CAAA,CACnDH,CACAC,CAAAA,CACF,CAAC,CAGKG,CAAAA,CAAAA,CAAqBb,UACzBN,CAAAA,UAAAA,EACAM,CAAAA,UAAAA,CAAON,YAAUiB,CAAAA,CAAiB,CACpC,CAAA,CAEMG,CAAwBT,CAAAA,CAAAA,CAA0B,OACtDU,mBAAoB,CAAA,OAAA,EAAU,CAAA,KAChC,CAEMC,CAAAA,CAAAA,CAAgBC,oBAAY,MAAO,CAAA,CACvC,UAAYX,CAAAA,WAAAA,CAAQ,SAAS,CAAA,CAAE,QAAQ,SAAS,CAAA,CAChD,QAAUQ,CAAAA,CAAAA,CAAsB,MAAO,CAAA,CACrC,GAAGtB,CAA8B,CAAA,OAAA,EAAU,CAAA,KAC7C,CAAC,CAAA,CACD,QAASY,SAAMJ,CAAAA,UAAAA,CAAON,UAAO,EAAA,CAAGwB,OAAI,EAAC,CAAC,CACxC,CAAC,CAEKC,CAAAA,CAAAA,CAA8BC,mBAAkB,CAAA,MAAA,CAAO,CAC3D,UAAYd,CAAAA,WAAAA,CAAQ,SAAS,CAAA,CAAE,OAAQ,CAAA,SAAS,EAChD,QAAUQ,CAAAA,CAAAA,CAAsB,OAAO,CACrC,GAAGtB,EAA8B,KACnC,CAAC,CACD,CAAA,OAAA,CAASY,SAAMJ,CAAAA,UAAAA,CAAON,YAAUwB,CAAAA,OAAAA,EAAK,CAAC,CACxC,CAAC,EAAE,SAAWG,CAAAA,CAAAA,EAAUC,mBAA+BD,CAAAA,CAAK,CAAC,CAAA,CAEvDE,EAAgCH,mBAAkB,CAAA,MAAA,CAAO,CAC7D,UAAA,CAAYd,WAAQ,CAAA,SAAS,EAAE,OAAQ,CAAA,SAAS,CAChD,CAAA,QAAA,CAAUQ,CACV,CAAA,OAAA,CAASV,UAAMJ,UAAON,CAAAA,UAAAA,EAAUwB,CAAAA,OAAAA,EAAK,CAAC,CACxC,CAAC,CAAA,CAAE,SAAWG,CAAAA,CAAAA,EAAUC,mBAA+BD,CAAAA,CAAK,CAAC,CAEvDG,CAAAA,CAAAA,CAAsBR,CAAc,CAAA,OAAA,EACvC,CAAA,IAAA,CAAK,CACJ,OAAS,CAAA,IAAA,CACT,EAAI,CAAA,IAAA,CACJ,UAAY,CAAA,IAAA,CACZ,aAAc,IACd,CAAA,YAAA,CAAc,IACd,CAAA,IAAA,CAAM,IACN,CAAA,IAAA,CAAM,KACN,IAAM,CAAA,IAAA,CACN,iBAAmB,CAAA,IACrB,CAAC,CAAA,CACA,OAAO,CACN,UAAA,CAAYV,WAAQ,CAAA,SAAS,CAAE,CAAA,OAAA,CAAQ,SAAS,CAChD,CAAA,YAAA,CAAcZ,UAAO,EAAA,CAAE,OAAQ,CAAA,IAAM,IAAI,IAAK,EAAA,CAAE,WAAY,EAAC,CAC/D,CAAC,EACA,SAAW2B,CAAAA,CAAAA,EAAUC,mBAA+BD,CAAAA,CAAK,CAAC","file":"chunk-QWD7POET.cjs","sourcesContent":["import {\n object,\n string,\n uuid,\n number,\n array,\n literal,\n record,\n optional,\n nullable,\n discriminatedUnion,\n type z,\n any,\n enum as zodEnum\n} from \"zod\";\n\nimport {\n AssetSchema,\n CreateAssetSchema,\n AssetMetadataSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { AssetTypeSchema } from \"./common\";\n\nconst DatasetFromFileMetadataSchema = object({\n type: string(),\n size: number(),\n path: string(),\n extension: string(),\n name: string(),\n id: uuid(), // storage file object id,\n bucket: zodEnum([\"public-files\", \"files\"]),\n});\n\n/**\n * The kind of object a dataset reference column points at. The FK target table\n * is the source of truth: public.assets -> \"asset\", public.actions -> \"action\".\n */\nconst RefKindSchema = zodEnum([\"asset\", \"action\"]);\n\n/**\n * Per-column reference declarations.\n *\n * A column becomes a reference when the backend adds a real Postgres FK to a\n * referenceable table. `kind` selects the target table; `asset_type` is an\n * optional target-type hint that only applies when `kind` is \"asset\".\n */\nconst DatasetRefsSchema = record(\n string(),\n object({\n kind: RefKindSchema,\n asset_type: optional(AssetTypeSchema),\n })\n);\n\n/**\n * Per-column enum declarations.\n *\n * Enum columns are stored as ordinary dataset columns plus a Postgres CHECK\n * constraint. The values are surfaced in schema reads so agents can query with\n * known categorical values.\n */\nconst DatasetEnumColumnsSchema = record(\n string(),\n object({\n values: array(string()),\n })\n);\n\nconst BaseDatasetMetadataSchema = object({\n table_name: string(),\n schema: literal(\"datasets\").default(\"datasets\"),\n columns: array(string()),\n refs: optional(nullable(DatasetRefsSchema)),\n enum_columns: optional(nullable(DatasetEnumColumnsSchema)),\n});\n\n/**\n * A single column from GET /datasets/:id/schema, enriched server-side.\n *\n * The FK fields come straight from get_table_schema. `semantic_type` is pure\n * inference: \"reference\" when the column has an FK to a referenceable table,\n * with `ref_kind` naming which one (\"asset\" | \"action\"). The optional\n * `asset_type` is the declared target-type hint from metadata.refs (display +\n * soft validation only, asset kind only). `semantic_type: \"enum\"` comes from\n * metadata.enum_columns and exposes its known values.\n */\nconst EnrichedDatasetSchemaFieldSchema = object({\n column_name: string(),\n data_type: string(),\n fk_constraint_name: optional(nullable(string())),\n foreign_table_schema: optional(nullable(string())),\n foreign_table_name: optional(nullable(string())),\n foreign_column_name: optional(nullable(string())),\n semantic_type: optional(nullable(zodEnum([\"reference\", \"enum\"]))),\n ref_kind: optional(nullable(RefKindSchema)),\n asset_type: optional(nullable(AssetTypeSchema)),\n enum_values: optional(nullable(array(string()))),\n});\n\n/**\n * A resolved reference returned in the `resolved_refs` sidecar of\n * GET /datasets/:id/data?resolve_refs=true. Discriminated on `kind` so asset\n * and action references share one vocabulary while carrying kind-specific\n * fields.\n */\nconst ResolvedAssetRefSchema = object({\n kind: literal(\"asset\"),\n id: uuid(),\n asset_type: AssetTypeSchema,\n name: nullable(string()),\n web_url: nullable(string()),\n});\n\nconst ResolvedActionRefSchema = object({\n kind: literal(\"action\"),\n id: uuid(),\n status: nullable(string()),\n route_id: nullable(uuid()),\n route_name: nullable(string()),\n name: nullable(string()),\n web_url: nullable(string()),\n created_at: nullable(string()),\n});\n\nconst ResolvedRefSchema = discriminatedUnion(\"kind\", [\n ResolvedAssetRefSchema,\n ResolvedActionRefSchema,\n]);\n\n/** column -> (referenced uuid -> resolved reference). */\nconst ResolvedRefsSchema = record(\n string(),\n record(string(), ResolvedRefSchema)\n);\n\nconst DatasetMetadataSchema = BaseDatasetMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst DatasetSchema = AssetSchema.extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n metadata: DatasetMetadataSchema.extend({\n ...DatasetFromFileMetadataSchema.partial().shape,\n }),\n preview: array(record(string(), any())),\n});\n\nconst CreateDatasetFromFileSchema = CreateAssetSchema.extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n metadata: DatasetMetadataSchema.extend({\n ...DatasetFromFileMetadataSchema.shape,\n }),\n preview: array(record(string(), any())),\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst CreateDatasetFromSchemaSchema = CreateAssetSchema.extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n metadata: DatasetMetadataSchema,\n preview: array(record(string(), any())),\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst updateDatasetSchema = DatasetSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n })\n .extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nexport {\n DatasetSchema,\n CreateDatasetFromFileSchema,\n CreateDatasetFromSchemaSchema,\n updateDatasetSchema,\n RefKindSchema,\n DatasetRefsSchema,\n DatasetEnumColumnsSchema,\n EnrichedDatasetSchemaFieldSchema,\n ResolvedRefSchema,\n ResolvedRefsSchema,\n};\nexport type Dataset = z.infer<typeof DatasetSchema>;\nexport type CreateFromFileDataset = z.infer<typeof CreateDatasetFromFileSchema>;\nexport type CreateFromSchemaDataset = z.infer<typeof CreateDatasetFromSchemaSchema>;\nexport type UpdateDataset = z.infer<typeof updateDatasetSchema>;\nexport type RefKind = z.infer<typeof RefKindSchema>;\nexport type DatasetRefs = z.infer<typeof DatasetRefsSchema>;\nexport type DatasetEnumColumns = z.infer<typeof DatasetEnumColumnsSchema>;\nexport type EnrichedDatasetSchemaField = z.infer<\n typeof EnrichedDatasetSchemaFieldSchema\n>;\nexport type ResolvedRef = z.infer<typeof ResolvedRefSchema>;\nexport type ResolvedRefs = z.infer<typeof ResolvedRefsSchema>;\n"]}
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkJ2BGBOOC_cjs=require('./chunk-J2BGBOOC.cjs'),chunk43KB23BA_cjs=require('./chunk-43KB23BA.cjs'),zod=require('zod');function m(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}function k(e){if(!e)return null;let t=e.replace(/^\.+/,"").trim().toLowerCase().replace(/[^a-z0-9]/g,"");return !t||/^\d+$/.test(t)||t.length>12?null:t}function I(e){let s=Array.isArray(e)?e:typeof e=="string"?e.split(/[\s,]+/):[];return Array.from(new Set(s.map(t=>k(t)).filter(t=>!!t)))}var P=zod.record(zod.string(),zod.object({asset_id:zod.uuid(),asset_type:chunk43KB23BA_cjs.a})),K=zod.union([zod.uuid(),zod.object({asset_id:zod.uuid(),asset_type:zod.optional(chunk43KB23BA_cjs.a)})]),E=zod.record(zod.string(),K),q=chunkJ2BGBOOC_cjs.e.extend({required:zod.optional(zod.boolean()).default(true)});function S(e){return I([...Array.isArray(e.file_extensions)?e.file_extensions:[],...Array.isArray(e.input_file_extensions)?e.input_file_extensions:[]].join(","))}function R(e){return e.input_filter||e.filter||void 0}function T(e){var n;let s=e==null?void 0:e.route;if(!s)return {};let t=s.input_assets;if(m(t)){let i=Object.entries(t).filter(([,r])=>m(r));if(i.length>0)return Object.fromEntries(i)}return s.input_type?{[s.input_type]:{asset_type:s.input_type,primary:true,input_filter:s.input_filter,input_file_extensions:(n=s.input_file_extensions)!=null?n:null}}:{}}function j(e){let s=S(e),t=R(e);return {asset_type:e.asset_type,primary:e.primary,input_filter:t!=null?t:null,file_extensions:s.length>0?s:null,required:true}}function Q(e,s){let t=new Set(s),n={};for(let[i,r]of Object.entries(e))t.has(i)||(n[i]=j(r));return n}function L(e){let s=Object.entries(e);if(!s.length)return null;let t=s.find(([,n])=>n.primary===true);return t?t[0]:(s.length===1,s[0][0])}function B(e,s){var i,r;let t=(i=e.eval_static_inputs)!=null?i:{};if(e.eval_route_id&&s){let a=T(s),l=Object.keys(t),u=e.submission_assets&&Object.keys(e.submission_assets).length>0?e.submission_assets:Q(a,l);return {contributorKeys:Object.keys(u),declarations:u,pinned:t}}let n=(r=e.submission_assets)!=null?r:{};return {contributorKeys:Object.keys(n),declarations:n,pinned:t}}function F(e){if(!e)return null;let s=e.asset_type||void 0;if(!s)return null;let t={assetType:s,hasConstraints:false};if(s==="file"){let n=S(e);n.length>0&&(t.extensions=n,t.hasConstraints=true);let i=R(e);i&&(t.fileType=i,t.hasConstraints=true);}return t}function V(e,s){var i,r,a,l,u,p;if(!s||!e)return true;let t=F(s);if(!t)return true;let n=(i=e.assetType)!=null?i:e.asset_type;if(t.assetType&&n!==t.assetType)return false;if(t.assetType==="file"){let c=(a=(r=e.asset)==null?void 0:r.metadata)!=null?a:{};if(t.extensions&&t.extensions.length>0){let o=String((l=c.extension)!=null?l:"").toLowerCase();if(!o||!t.extensions.includes(o))return false}if(t.fileType){let o=String((p=(u=c.file_type)!=null?u:c.type)!=null?p:"").toLowerCase().split("/")[0],f=t.fileType.toLowerCase();if(o&&f&&!o.includes(f)&&o!==f)return false}}return true}function M(e,s){if(!e||!Object.keys(e).length)return null;let t=s&&L(s)||Object.keys(e)[0],n=e[t];return n?{key:t,asset_id:n.asset_id,asset_type:n.asset_type}:null}function $(e){return e?Object.fromEntries(Object.entries(e).map(([s,t])=>[s,{assetId:t.asset_id,assetType:t.asset_type}])):{}}exports.a=P;exports.b=K;exports.c=E;exports.d=q;exports.e=T;exports.f=j;exports.g=Q;exports.h=L;exports.i=B;exports.j=F;exports.k=V;exports.l=M;exports.m=$;//# sourceMappingURL=chunk-FPZA5343.cjs.map
2
- //# sourceMappingURL=chunk-FPZA5343.cjs.map
1
+ 'use strict';var chunkB3OK6NNR_cjs=require('./chunk-B3OK6NNR.cjs'),chunkMNECKGIP_cjs=require('./chunk-MNECKGIP.cjs'),zod=require('zod');function m(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}function k(e){if(!e)return null;let t=e.replace(/^\.+/,"").trim().toLowerCase().replace(/[^a-z0-9]/g,"");return !t||/^\d+$/.test(t)||t.length>12?null:t}function I(e){let s=Array.isArray(e)?e:typeof e=="string"?e.split(/[\s,]+/):[];return Array.from(new Set(s.map(t=>k(t)).filter(t=>!!t)))}var P=zod.record(zod.string(),zod.object({asset_id:zod.uuid(),asset_type:chunkMNECKGIP_cjs.a})),K=zod.union([zod.uuid(),zod.object({asset_id:zod.uuid(),asset_type:zod.optional(chunkMNECKGIP_cjs.a)})]),E=zod.record(zod.string(),K),q=chunkB3OK6NNR_cjs.e.extend({required:zod.optional(zod.boolean()).default(true)});function S(e){return I([...Array.isArray(e.file_extensions)?e.file_extensions:[],...Array.isArray(e.input_file_extensions)?e.input_file_extensions:[]].join(","))}function R(e){return e.input_filter||e.filter||void 0}function T(e){var n;let s=e==null?void 0:e.route;if(!s)return {};let t=s.input_assets;if(m(t)){let i=Object.entries(t).filter(([,r])=>m(r));if(i.length>0)return Object.fromEntries(i)}return s.input_type?{[s.input_type]:{asset_type:s.input_type,primary:true,input_filter:s.input_filter,input_file_extensions:(n=s.input_file_extensions)!=null?n:null}}:{}}function j(e){let s=S(e),t=R(e);return {asset_type:e.asset_type,primary:e.primary,input_filter:t!=null?t:null,file_extensions:s.length>0?s:null,required:true}}function Q(e,s){let t=new Set(s),n={};for(let[i,r]of Object.entries(e))t.has(i)||(n[i]=j(r));return n}function L(e){let s=Object.entries(e);if(!s.length)return null;let t=s.find(([,n])=>n.primary===true);return t?t[0]:(s.length===1,s[0][0])}function B(e,s){var i,r;let t=(i=e.eval_static_inputs)!=null?i:{};if(e.eval_route_id&&s){let a=T(s),l=Object.keys(t),u=e.submission_assets&&Object.keys(e.submission_assets).length>0?e.submission_assets:Q(a,l);return {contributorKeys:Object.keys(u),declarations:u,pinned:t}}let n=(r=e.submission_assets)!=null?r:{};return {contributorKeys:Object.keys(n),declarations:n,pinned:t}}function F(e){if(!e)return null;let s=e.asset_type||void 0;if(!s)return null;let t={assetType:s,hasConstraints:false};if(s==="file"){let n=S(e);n.length>0&&(t.extensions=n,t.hasConstraints=true);let i=R(e);i&&(t.fileType=i,t.hasConstraints=true);}return t}function V(e,s){var i,r,a,l,u,p;if(!s||!e)return true;let t=F(s);if(!t)return true;let n=(i=e.assetType)!=null?i:e.asset_type;if(t.assetType&&n!==t.assetType)return false;if(t.assetType==="file"){let c=(a=(r=e.asset)==null?void 0:r.metadata)!=null?a:{};if(t.extensions&&t.extensions.length>0){let o=String((l=c.extension)!=null?l:"").toLowerCase();if(!o||!t.extensions.includes(o))return false}if(t.fileType){let o=String((p=(u=c.file_type)!=null?u:c.type)!=null?p:"").toLowerCase().split("/")[0],f=t.fileType.toLowerCase();if(o&&f&&!o.includes(f)&&o!==f)return false}}return true}function M(e,s){if(!e||!Object.keys(e).length)return null;let t=s&&L(s)||Object.keys(e)[0],n=e[t];return n?{key:t,asset_id:n.asset_id,asset_type:n.asset_type}:null}function $(e){return e?Object.fromEntries(Object.entries(e).map(([s,t])=>[s,{assetId:t.asset_id,assetType:t.asset_type}])):{}}exports.a=P;exports.b=K;exports.c=E;exports.d=q;exports.e=T;exports.f=j;exports.g=Q;exports.h=L;exports.i=B;exports.j=F;exports.k=V;exports.l=M;exports.m=$;//# sourceMappingURL=chunk-UDTRH3OQ.cjs.map
2
+ //# sourceMappingURL=chunk-UDTRH3OQ.cjs.map