@ourofoundation/ouro-js 3.7.8 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/dist/{chunk-66AAHP6X.cjs → chunk-23FTPTDP.cjs} +2 -2
  2. package/dist/{chunk-66AAHP6X.cjs.map → chunk-23FTPTDP.cjs.map} +1 -1
  3. package/dist/chunk-33C7IDRP.js +2 -0
  4. package/dist/chunk-33C7IDRP.js.map +1 -0
  5. package/dist/{chunk-4NAPVNIX.js → chunk-3UE4H5TR.js} +2 -2
  6. package/dist/{chunk-4NAPVNIX.js.map → chunk-3UE4H5TR.js.map} +1 -1
  7. package/dist/{chunk-3OUJXTJZ.js → chunk-5CKFMTWZ.js} +2 -2
  8. package/dist/{chunk-3OUJXTJZ.js.map → chunk-5CKFMTWZ.js.map} +1 -1
  9. package/dist/{chunk-Z66O3S3W.cjs → chunk-5SC4M4E3.cjs} +2 -2
  10. package/dist/{chunk-Z66O3S3W.cjs.map → chunk-5SC4M4E3.cjs.map} +1 -1
  11. package/dist/{chunk-KHUEMWG2.js → chunk-6OO4SOWL.js} +2 -2
  12. package/dist/{chunk-KHUEMWG2.js.map → chunk-6OO4SOWL.js.map} +1 -1
  13. package/dist/{chunk-7YG2YDXN.cjs → chunk-7R5EIIIR.cjs} +2 -2
  14. package/dist/{chunk-7YG2YDXN.cjs.map → chunk-7R5EIIIR.cjs.map} +1 -1
  15. package/dist/chunk-APZA6MIM.js +2 -0
  16. package/dist/chunk-APZA6MIM.js.map +1 -0
  17. package/dist/chunk-AUDVUOLX.js +2 -0
  18. package/dist/chunk-AUDVUOLX.js.map +1 -0
  19. package/dist/{chunk-ZRJUBEIK.cjs → chunk-BELCP7OL.cjs} +2 -2
  20. package/dist/{chunk-ZRJUBEIK.cjs.map → chunk-BELCP7OL.cjs.map} +1 -1
  21. package/dist/{chunk-CW4TV3DY.js → chunk-CXMEZGVG.js} +2 -2
  22. package/dist/{chunk-CW4TV3DY.js.map → chunk-CXMEZGVG.js.map} +1 -1
  23. package/dist/{chunk-42WKTHH5.js → chunk-EIB2YGN3.js} +2 -2
  24. package/dist/{chunk-42WKTHH5.js.map → chunk-EIB2YGN3.js.map} +1 -1
  25. package/dist/{chunk-EMDUI7HF.js → chunk-GT7CSIDN.js} +2 -2
  26. package/dist/{chunk-EMDUI7HF.js.map → chunk-GT7CSIDN.js.map} +1 -1
  27. package/dist/{chunk-PB4XG5WM.js → chunk-GX6RCMZR.js} +2 -2
  28. package/dist/{chunk-PB4XG5WM.js.map → chunk-GX6RCMZR.js.map} +1 -1
  29. package/dist/{chunk-W3N744QV.js → chunk-KMENBGAB.js} +2 -2
  30. package/dist/{chunk-W3N744QV.js.map → chunk-KMENBGAB.js.map} +1 -1
  31. package/dist/{chunk-UDTRH3OQ.cjs → chunk-M2ZH6MMH.cjs} +2 -2
  32. package/dist/{chunk-UDTRH3OQ.cjs.map → chunk-M2ZH6MMH.cjs.map} +1 -1
  33. package/dist/{chunk-YTIUJ72Q.js → chunk-M5ZLLARC.js} +2 -2
  34. package/dist/{chunk-YTIUJ72Q.js.map → chunk-M5ZLLARC.js.map} +1 -1
  35. package/dist/{chunk-3RFYEL3A.cjs → chunk-N3HC2ASR.cjs} +2 -2
  36. package/dist/{chunk-3RFYEL3A.cjs.map → chunk-N3HC2ASR.cjs.map} +1 -1
  37. package/dist/chunk-NVKZLT3M.cjs +2 -0
  38. package/dist/chunk-NVKZLT3M.cjs.map +1 -0
  39. package/dist/{chunk-QWD7POET.cjs → chunk-O6RFWCC4.cjs} +2 -2
  40. package/dist/{chunk-QWD7POET.cjs.map → chunk-O6RFWCC4.cjs.map} +1 -1
  41. package/dist/{chunk-3C7PGJ33.js → chunk-QUBJLDJY.js} +2 -2
  42. package/dist/{chunk-3C7PGJ33.js.map → chunk-QUBJLDJY.js.map} +1 -1
  43. package/dist/chunk-RNBIB6S7.cjs +2 -0
  44. package/dist/chunk-RNBIB6S7.cjs.map +1 -0
  45. package/dist/{chunk-FJTFM3ML.cjs → chunk-RQUVICCB.cjs} +2 -2
  46. package/dist/{chunk-FJTFM3ML.cjs.map → chunk-RQUVICCB.cjs.map} +1 -1
  47. package/dist/chunk-RRDGLT3N.cjs +2 -0
  48. package/dist/{chunk-LD5G6GFH.cjs.map → chunk-RRDGLT3N.cjs.map} +1 -1
  49. package/dist/chunk-SZWAE35B.cjs +2 -0
  50. package/dist/chunk-SZWAE35B.cjs.map +1 -0
  51. package/dist/chunk-U5JVCESS.js +2 -0
  52. package/dist/chunk-U5JVCESS.js.map +1 -0
  53. package/dist/{chunk-B3OK6NNR.cjs → chunk-W4V643O5.cjs} +2 -2
  54. package/dist/{chunk-B3OK6NNR.cjs.map → chunk-W4V643O5.cjs.map} +1 -1
  55. package/dist/chunk-YFEGRZXL.cjs +2 -0
  56. package/dist/chunk-YFEGRZXL.cjs.map +1 -0
  57. package/dist/index.cjs +1 -1
  58. package/dist/index.d.cts +3 -3
  59. package/dist/index.d.ts +3 -3
  60. package/dist/index.js +1 -1
  61. package/dist/schema/asset-filters.cjs +1 -1
  62. package/dist/schema/asset-filters.d.cts +7 -7
  63. package/dist/schema/asset-filters.d.ts +7 -7
  64. package/dist/schema/asset-filters.js +1 -1
  65. package/dist/schema/assets.cjs +1 -1
  66. package/dist/schema/assets.d.cts +63 -63
  67. package/dist/schema/assets.d.ts +63 -63
  68. package/dist/schema/assets.js +1 -1
  69. package/dist/schema/comments.cjs +1 -1
  70. package/dist/schema/comments.d.cts +59 -59
  71. package/dist/schema/comments.d.ts +59 -59
  72. package/dist/schema/comments.js +1 -1
  73. package/dist/schema/common.cjs +1 -1
  74. package/dist/schema/common.d.cts +10 -9
  75. package/dist/schema/common.d.ts +10 -9
  76. package/dist/schema/common.js +1 -1
  77. package/dist/schema/conversations.cjs +1 -1
  78. package/dist/schema/conversations.d.cts +77 -58
  79. package/dist/schema/conversations.d.ts +77 -58
  80. package/dist/schema/conversations.js +1 -1
  81. package/dist/schema/datasets.cjs +1 -1
  82. package/dist/schema/datasets.d.cts +137 -137
  83. package/dist/schema/datasets.d.ts +137 -137
  84. package/dist/schema/datasets.js +1 -1
  85. package/dist/schema/files.cjs +1 -1
  86. package/dist/schema/files.d.cts +154 -89
  87. package/dist/schema/files.d.ts +154 -89
  88. package/dist/schema/files.js +1 -1
  89. package/dist/schema/notifications.cjs +1 -1
  90. package/dist/schema/notifications.d.cts +106 -106
  91. package/dist/schema/notifications.d.ts +106 -106
  92. package/dist/schema/notifications.js +1 -1
  93. package/dist/schema/organizations.cjs +1 -1
  94. package/dist/schema/organizations.js +1 -1
  95. package/dist/schema/posts.cjs +1 -1
  96. package/dist/schema/posts.d.cts +91 -91
  97. package/dist/schema/posts.d.ts +91 -91
  98. package/dist/schema/posts.js +1 -1
  99. package/dist/schema/quests.cjs +1 -1
  100. package/dist/schema/quests.d.cts +192 -131
  101. package/dist/schema/quests.d.ts +192 -131
  102. package/dist/schema/quests.js +1 -1
  103. package/dist/schema/services.cjs +1 -1
  104. package/dist/schema/services.d.cts +132 -132
  105. package/dist/schema/services.d.ts +132 -132
  106. package/dist/schema/services.js +1 -1
  107. package/dist/schema/teams.cjs +1 -1
  108. package/dist/schema/teams.d.cts +15 -15
  109. package/dist/schema/teams.d.ts +15 -15
  110. package/dist/schema/teams.js +1 -1
  111. package/dist/utils/quest-submission.cjs +1 -1
  112. package/dist/utils/quest-submission.d.cts +4 -4
  113. package/dist/utils/quest-submission.d.ts +4 -4
  114. package/dist/utils/quest-submission.js +1 -1
  115. package/package.json +2 -2
  116. package/tests/files.test.mjs +42 -0
  117. package/dist/chunk-3BZRQYRC.js +0 -2
  118. package/dist/chunk-3BZRQYRC.js.map +0 -1
  119. package/dist/chunk-ASLHRT77.js +0 -2
  120. package/dist/chunk-ASLHRT77.js.map +0 -1
  121. package/dist/chunk-LD5G6GFH.cjs +0 -2
  122. package/dist/chunk-MNECKGIP.cjs +0 -2
  123. package/dist/chunk-MNECKGIP.cjs.map +0 -1
  124. package/dist/chunk-UVVPXYJA.cjs +0 -2
  125. package/dist/chunk-UVVPXYJA.cjs.map +0 -1
  126. package/dist/chunk-W6AKVS4L.cjs +0 -2
  127. package/dist/chunk-W6AKVS4L.cjs.map +0 -1
  128. package/dist/chunk-W6MBAIKZ.cjs +0 -2
  129. package/dist/chunk-W6MBAIKZ.cjs.map +0 -1
  130. package/dist/chunk-XVN3DFMT.js +0 -2
  131. package/dist/chunk-XVN3DFMT.js.map +0 -1
  132. package/dist/chunk-Y6TOO6ET.js +0 -2
  133. package/dist/chunk-Y6TOO6ET.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schema/files.ts"],"names":["ZipArchiveMetadataSchema","object","number","boolean","BaseFileMetadataSchema","uuid","string","zodEnum","optional","BaseStubFileMetadataSchema","FileMetadataSchema","AssetMetadataSchema","StubFileMetadataSchema","FileSchema","AssetSchema","literal","CreateFileSchema","discriminatedUnion","CreateAssetSchema","value","normalizeAssetConfigForParsing","updateFileSchema"],"mappings":"kKAqBMA,CAA2BC,CAAAA,MAAAA,CAAO,CACtC,WAAA,CAAaC,MAAO,EAAA,CACpB,WAAYA,MAAO,EAAA,CACnB,eAAiBA,CAAAA,MAAAA,EACjB,CAAA,uBAAA,CAAyBA,QACzB,CAAA,qBAAA,CAAuBA,MAAO,EAAA,CAC9B,iBAAmBC,CAAAA,OAAAA,EACrB,CAAC,CAAA,CAEKC,CAAyBH,CAAAA,MAAAA,CAAO,CACpC,EAAA,CAAII,IAAK,EAAA,CACT,IAAMC,CAAAA,MAAAA,EACN,CAAA,MAAA,CAAQC,KAAQ,CAAA,CAAC,eAAgB,OAAO,CAAC,CACzC,CAAA,IAAA,CAAMD,MAAO,EAAA,CACb,KAAMA,MAAO,EAAA,CACb,SAAWA,CAAAA,MAAAA,EACX,CAAA,IAAA,CAAMJ,QAEN,CAAA,KAAA,CAAOM,QAASN,CAAAA,MAAAA,EAAQ,CAAA,CACxB,OAAQM,QAASN,CAAAA,MAAAA,EAAQ,CAAA,CACzB,OAASM,CAAAA,QAAAA,CAASR,CAAwB,CAC5C,CAAC,CAEKS,CAAAA,CAAAA,CAA6BR,MAAO,CAAA,CACxC,KAAMK,MAAO,EACf,CAAC,CAAA,CAEKI,CAAqBN,CAAAA,CAAAA,CAAuB,OAChDO,GAAoB,CAAA,OAAA,EAAU,CAAA,KAChC,CAEMC,CAAAA,CAAAA,CAAyBH,CAA2B,CAAA,MAAA,CACxDE,GAAoB,CAAA,OAAA,EAAU,CAAA,KAChC,CAEME,CAAAA,CAAAA,CAAaC,EAAY,MAAO,CAAA,CACpC,UAAYC,CAAAA,OAAAA,CAAQ,MAAM,CAAA,CAAE,QAAQ,MAAM,CAAA,CAC1C,QAAUL,CAAAA,CACZ,CAAC,CAAA,CAEKM,EAAmBC,kBAAmB,CAAA,OAAA,CAAS,CAEnDC,GAAAA,CAAkB,MAAO,CAAA,CACvB,WAAYH,OAAQ,CAAA,MAAM,CAAE,CAAA,OAAA,CAAQ,MAAM,CAAA,CAC1C,MAAOA,OAAQ,CAAA,SAAS,CAAE,CAAA,OAAA,CAAQ,SAAS,CAAA,CAC3C,SAAUL,CACZ,CAAC,CAEDQ,CAAAA,GAAAA,CAAkB,MAAO,CAAA,CACvB,WAAYH,OAAQ,CAAA,MAAM,CAAE,CAAA,OAAA,CAAQ,MAAM,CAAA,CAC1C,KAAOA,CAAAA,OAAAA,CAAQ,aAAa,CAAA,CAAE,OAAQ,CAAA,aAAa,CACnD,CAAA,QAAA,CAAUH,CACZ,CAAC,CACH,CAAC,CAAA,CAAE,SAAWO,CAAAA,CAAAA,EAAUC,EAA+BD,CAAK,CAAC,CAEvDE,CAAAA,CAAAA,CAAmBR,CAAW,CAAA,OAAA,GACjC,IAAK,CAAA,CACJ,OAAS,CAAA,IAAA,CACT,EAAI,CAAA,IAAA,CACJ,UAAY,CAAA,IAAA,CACZ,YAAc,CAAA,IAAA,CACd,YAAc,CAAA,IAAA,CACd,IAAM,CAAA,IAAA,CACN,KAAM,IACN,CAAA,IAAA,CAAM,IACN,CAAA,iBAAA,CAAmB,IACrB,CAAC,EACA,MAAO,CAAA,CACN,YAAcP,CAAAA,MAAAA,EAAS,CAAA,OAAA,CAAQ,IAAM,IAAI,IAAA,EAAO,CAAA,WAAA,EAAa,CAC/D,CAAC,CAAA,CACA,SAAWa,CAAAA,CAAAA,EAAUC,CAA+BD,CAAAA,CAAK,CAAC","file":"chunk-AUDVUOLX.js","sourcesContent":["import {\n object,\n string,\n uuid,\n number,\n enum as zodEnum,\n type z,\n optional,\n literal,\n discriminatedUnion,\n nullable,\n boolean\n} from \"zod\";\n\nimport {\n AssetSchema,\n CreateAssetSchema,\n AssetMetadataSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\n\nconst ZipArchiveMetadataSchema = object({\n entry_count: number(),\n file_count: number(),\n directory_count: number(),\n total_uncompressed_size: number(),\n total_compressed_size: number(),\n preview_truncated: boolean(),\n});\n\nconst BaseFileMetadataSchema = object({\n id: uuid(), // The id of the file object\n path: string(), // The path of the file in storage\n bucket: zodEnum([\"public-files\", \"files\"]),\n name: string(),\n type: string(),\n extension: string(),\n size: number(),\n // If the file is an image, we store width and height\n width: optional(number()),\n height: optional(number()),\n archive: optional(ZipArchiveMetadataSchema),\n});\n\nconst BaseStubFileMetadataSchema = object({\n type: string(),\n});\n\nconst FileMetadataSchema = BaseFileMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst StubFileMetadataSchema = BaseStubFileMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst FileSchema = AssetSchema.extend({\n asset_type: literal(\"file\").default(\"file\"),\n metadata: FileMetadataSchema,\n});\n\nconst CreateFileSchema = discriminatedUnion(\"state\", [\n // Success state, file is ready\n CreateAssetSchema.extend({\n asset_type: literal(\"file\").default(\"file\"),\n state: literal(\"success\").default(\"success\"),\n metadata: FileMetadataSchema,\n }),\n // In-progress state, file is being processed\n CreateAssetSchema.extend({\n asset_type: literal(\"file\").default(\"file\"),\n state: literal(\"in-progress\").default(\"in-progress\"),\n metadata: StubFileMetadataSchema,\n }),\n]).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst updateFileSchema = FileSchema.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 last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nexport {\n FileSchema,\n CreateFileSchema,\n updateFileSchema,\n ZipArchiveMetadataSchema,\n};\nexport type File = z.infer<typeof FileSchema>;\nexport type CreateFile = z.infer<typeof CreateFileSchema>;\nexport type UpdateFile = z.infer<typeof updateFileSchema>;\nexport type ZipArchiveMetadata = z.infer<typeof ZipArchiveMetadataSchema>;\n"]}
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkL6SVUDFH_cjs=require('./chunk-L6SVUDFH.cjs'),chunkMNECKGIP_cjs=require('./chunk-MNECKGIP.cjs'),zod=require('zod');var s=zod.string().refine(t=>["invite_only","request","open"].includes(t),{message:"Invalid join policy"}),u=zod.string().refine(t=>["internal","external"].includes(t),{message:"Invalid membership type"}),d=zod.enum(["any","verified_only","agents_only"]),f=zod.enum(["any","web_only","api_only"]),b=zod.object({id:zod.uuid(),name:zod.string(),display_name:zod.optional(zod.nullable(zod.string())),avatar_path:zod.optional(zod.nullable(zod.string())),mission:zod.optional(zod.nullable(zod.string())),size:zod.string(),email:zod.optional(zod.nullable(zod.string())),domain:zod.optional(zod.nullable(zod.string())),urls:zod.optional(zod.nullable(zod.array(zod.object({value:zod.string()})))),base_role:chunkMNECKGIP_cjs.c.default("write"),allow_external_members:zod.optional(zod.boolean()).default(false),allow_external_public_team_creation:zod.optional(zod.boolean()).default(false),join_policy:zod.optional(s).default("invite_only"),actor_type_policy:zod.optional(d).default("any"),source_policy:zod.optional(f).default("any")}),z=zod.object({id:zod.uuid(),user_id:zod.uuid(),user:zod.optional(zod.nullable(chunkL6SVUDFH_cjs.b)),org_id:zod.uuid(),team_id:zod.uuid(),role:chunkMNECKGIP_cjs.c,membership_type:zod.optional(u).default("internal"),added_at:zod.string().default(()=>new Date().toISOString()),visibility:chunkMNECKGIP_cjs.b.default("public")});exports.a=d;exports.b=f;exports.c=b;exports.d=z;//# sourceMappingURL=chunk-ZRJUBEIK.cjs.map
2
- //# sourceMappingURL=chunk-ZRJUBEIK.cjs.map
1
+ 'use strict';var chunkL6SVUDFH_cjs=require('./chunk-L6SVUDFH.cjs'),chunkYFEGRZXL_cjs=require('./chunk-YFEGRZXL.cjs'),zod=require('zod');var s=zod.string().refine(t=>["invite_only","request","open"].includes(t),{message:"Invalid join policy"}),u=zod.string().refine(t=>["internal","external"].includes(t),{message:"Invalid membership type"}),d=zod.enum(["any","verified_only","agents_only"]),f=zod.enum(["any","web_only","api_only"]),b=zod.object({id:zod.uuid(),name:zod.string(),display_name:zod.optional(zod.nullable(zod.string())),avatar_path:zod.optional(zod.nullable(zod.string())),mission:zod.optional(zod.nullable(zod.string())),size:zod.string(),email:zod.optional(zod.nullable(zod.string())),domain:zod.optional(zod.nullable(zod.string())),urls:zod.optional(zod.nullable(zod.array(zod.object({value:zod.string()})))),base_role:chunkYFEGRZXL_cjs.c.default("write"),allow_external_members:zod.optional(zod.boolean()).default(false),allow_external_public_team_creation:zod.optional(zod.boolean()).default(false),join_policy:zod.optional(s).default("invite_only"),actor_type_policy:zod.optional(d).default("any"),source_policy:zod.optional(f).default("any")}),z=zod.object({id:zod.uuid(),user_id:zod.uuid(),user:zod.optional(zod.nullable(chunkL6SVUDFH_cjs.b)),org_id:zod.uuid(),team_id:zod.uuid(),role:chunkYFEGRZXL_cjs.c,membership_type:zod.optional(u).default("internal"),added_at:zod.string().default(()=>new Date().toISOString()),visibility:chunkYFEGRZXL_cjs.b.default("public")});exports.a=d;exports.b=f;exports.c=b;exports.d=z;//# sourceMappingURL=chunk-BELCP7OL.cjs.map
2
+ //# sourceMappingURL=chunk-BELCP7OL.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schema/organizations.ts"],"names":["JoinPolicySchema","string","val","MembershipTypeSchema","ActorTypePolicySchema","zodEnum","SourcePolicySchema","OrganizationsSchema","object","uuid","optional","nullable","array","RoleSchema","boolean","MembershipSchema","ProfileSchema","VisibilitySchema"],"mappings":"wIAeMA,IAAAA,CAAAA,CAAmBC,YAAS,CAAA,MAAA,CAC/BC,CAAQ,EAAA,CAAC,aAAe,CAAA,SAAA,CAAW,MAAM,CAAE,CAAA,QAAA,CAASA,CAAG,CAAA,CACxD,CAAE,OAAA,CAAS,qBAAsB,CACnC,CAAA,CAEMC,CAAuBF,CAAAA,UAAAA,EAAS,CAAA,MAAA,CACnCC,GAAQ,CAAC,UAAA,CAAY,UAAU,CAAA,CAAE,QAASA,CAAAA,CAAG,EAC9C,CAAE,OAAA,CAAS,yBAA0B,CACvC,CAEME,CAAAA,CAAAA,CAAwBC,SAAQ,CAAC,KAAA,CAAO,eAAiB,CAAA,aAAa,CAAC,CAAA,CACvEC,EAAqBD,QAAQ,CAAA,CAAC,KAAO,CAAA,UAAA,CAAY,UAAU,CAAC,EAE5DE,CAAsBC,CAAAA,UAAAA,CAAO,CACjC,EAAA,CAAIC,QAAK,EAAA,CACT,KAAMR,UAAO,EAAA,CACb,YAAcS,CAAAA,YAAAA,CAASC,YAASV,CAAAA,UAAAA,EAAQ,CAAC,CAAA,CACzC,WAAaS,CAAAA,YAAAA,CAASC,YAASV,CAAAA,UAAAA,EAAQ,CAAC,CAAA,CACxC,OAASS,CAAAA,YAAAA,CAASC,YAASV,CAAAA,UAAAA,EAAQ,CAAC,CAAA,CACpC,IAAMA,CAAAA,UAAAA,EACN,CAAA,KAAA,CAAOS,aAASC,YAASV,CAAAA,UAAAA,EAAQ,CAAC,CAClC,CAAA,MAAA,CAAQS,aAASC,YAASV,CAAAA,UAAAA,EAAQ,CAAC,CACnC,CAAA,IAAA,CAAMS,aACJC,YACEC,CAAAA,SAAAA,CACEJ,UAAO,CAAA,CACL,KAAOP,CAAAA,UAAAA,EACT,CAAC,CACH,CACF,CACF,CACA,CAAA,SAAA,CAAWY,oBAAW,OAAQ,CAAA,OAAO,CACrC,CAAA,sBAAA,CAAwBH,YAASI,CAAAA,WAAAA,EAAS,CAAE,CAAA,OAAA,CAAQ,KAAK,CAAA,CACzD,mCAAqCJ,CAAAA,YAAAA,CAASI,aAAS,CAAA,CAAE,OAAQ,CAAA,KAAK,CACtE,CAAA,WAAA,CAAaJ,aAASV,CAAgB,CAAA,CAAE,OAAQ,CAAA,aAAa,CAC7D,CAAA,iBAAA,CAAmBU,aAASN,CAAqB,CAAA,CAAE,OAAQ,CAAA,KAAK,CAChE,CAAA,aAAA,CAAeM,aAASJ,CAAkB,CAAA,CAAE,OAAQ,CAAA,KAAK,CAC3D,CAAC,EAEKS,CAAmBP,CAAAA,UAAAA,CAAO,CAC9B,EAAA,CAAIC,QAAK,EAAA,CACT,QAASA,QAAK,EAAA,CACd,IAAMC,CAAAA,YAAAA,CAASC,YAASK,CAAAA,mBAAa,CAAC,CACtC,CAAA,MAAA,CAAQP,QAAK,EAAA,CACb,OAASA,CAAAA,QAAAA,GACT,IAAMI,CAAAA,mBAAAA,CACN,eAAiBH,CAAAA,YAAAA,CAASP,CAAoB,CAAA,CAAE,QAAQ,UAAU,CAAA,CAClE,QAAUF,CAAAA,UAAAA,EAAS,CAAA,OAAA,CAAQ,IAAM,IAAI,IAAA,EAAO,CAAA,WAAA,EAAa,CAAA,CACzD,WAAYgB,mBAAiB,CAAA,OAAA,CAAQ,QAAQ,CAC/C,CAAC","file":"chunk-ZRJUBEIK.cjs","sourcesContent":["import {\n boolean,\n object,\n string,\n array,\n enum as zodEnum,\n type z,\n optional,\n nullable,\n uuid,\n} from \"zod\";\n\nimport { RoleSchema, VisibilitySchema } from \"./common\";\nimport { ProfileSchema } from \"./users\";\n\nconst JoinPolicySchema = string().refine(\n (val) => [\"invite_only\", \"request\", \"open\"].includes(val),\n { message: \"Invalid join policy\" }\n);\n\nconst MembershipTypeSchema = string().refine(\n (val) => [\"internal\", \"external\"].includes(val),\n { message: \"Invalid membership type\" }\n);\n\nconst ActorTypePolicySchema = zodEnum([\"any\", \"verified_only\", \"agents_only\"]);\nconst SourcePolicySchema = zodEnum([\"any\", \"web_only\", \"api_only\"]);\n\nconst OrganizationsSchema = object({\n id: uuid(),\n name: string(),\n display_name: optional(nullable(string())),\n avatar_path: optional(nullable(string())),\n mission: optional(nullable(string())),\n size: string(),\n email: optional(nullable(string())),\n domain: optional(nullable(string())),\n urls: optional(\n nullable(\n array(\n object({\n value: string(),\n })\n )\n )\n ),\n base_role: RoleSchema.default(\"write\"),\n allow_external_members: optional(boolean()).default(false),\n allow_external_public_team_creation: optional(boolean()).default(false),\n join_policy: optional(JoinPolicySchema).default(\"invite_only\"),\n actor_type_policy: optional(ActorTypePolicySchema).default(\"any\"),\n source_policy: optional(SourcePolicySchema).default(\"any\"),\n});\n\nconst MembershipSchema = object({\n id: uuid(),\n user_id: uuid(),\n user: optional(nullable(ProfileSchema)),\n org_id: uuid(),\n team_id: uuid(),\n role: RoleSchema,\n membership_type: optional(MembershipTypeSchema).default(\"internal\"),\n added_at: string().default(() => new Date().toISOString()),\n visibility: VisibilitySchema.default(\"public\"),\n});\n\nexport { OrganizationsSchema, MembershipSchema, ActorTypePolicySchema, SourcePolicySchema };\nexport type Organization = z.infer<typeof OrganizationsSchema>;\nexport type Membership = z.infer<typeof MembershipSchema>;\nexport type ActorTypePolicy = z.infer<typeof ActorTypePolicySchema>;\nexport type SourcePolicy = z.infer<typeof SourcePolicySchema>;\n"]}
1
+ {"version":3,"sources":["../src/schema/organizations.ts"],"names":["JoinPolicySchema","string","val","MembershipTypeSchema","ActorTypePolicySchema","zodEnum","SourcePolicySchema","OrganizationsSchema","object","uuid","optional","nullable","array","RoleSchema","boolean","MembershipSchema","ProfileSchema","VisibilitySchema"],"mappings":"wIAeMA,IAAAA,CAAAA,CAAmBC,YAAS,CAAA,MAAA,CAC/BC,CAAQ,EAAA,CAAC,aAAe,CAAA,SAAA,CAAW,MAAM,CAAE,CAAA,QAAA,CAASA,CAAG,CAAA,CACxD,CAAE,OAAA,CAAS,qBAAsB,CACnC,CAAA,CAEMC,CAAuBF,CAAAA,UAAAA,EAAS,CAAA,MAAA,CACnCC,GAAQ,CAAC,UAAA,CAAY,UAAU,CAAA,CAAE,QAASA,CAAAA,CAAG,EAC9C,CAAE,OAAA,CAAS,yBAA0B,CACvC,CAEME,CAAAA,CAAAA,CAAwBC,SAAQ,CAAC,KAAA,CAAO,eAAiB,CAAA,aAAa,CAAC,CAAA,CACvEC,EAAqBD,QAAQ,CAAA,CAAC,KAAO,CAAA,UAAA,CAAY,UAAU,CAAC,EAE5DE,CAAsBC,CAAAA,UAAAA,CAAO,CACjC,EAAA,CAAIC,QAAK,EAAA,CACT,KAAMR,UAAO,EAAA,CACb,YAAcS,CAAAA,YAAAA,CAASC,YAASV,CAAAA,UAAAA,EAAQ,CAAC,CAAA,CACzC,WAAaS,CAAAA,YAAAA,CAASC,YAASV,CAAAA,UAAAA,EAAQ,CAAC,CAAA,CACxC,OAASS,CAAAA,YAAAA,CAASC,YAASV,CAAAA,UAAAA,EAAQ,CAAC,CAAA,CACpC,IAAMA,CAAAA,UAAAA,EACN,CAAA,KAAA,CAAOS,aAASC,YAASV,CAAAA,UAAAA,EAAQ,CAAC,CAClC,CAAA,MAAA,CAAQS,aAASC,YAASV,CAAAA,UAAAA,EAAQ,CAAC,CACnC,CAAA,IAAA,CAAMS,aACJC,YACEC,CAAAA,SAAAA,CACEJ,UAAO,CAAA,CACL,KAAOP,CAAAA,UAAAA,EACT,CAAC,CACH,CACF,CACF,CACA,CAAA,SAAA,CAAWY,oBAAW,OAAQ,CAAA,OAAO,CACrC,CAAA,sBAAA,CAAwBH,YAASI,CAAAA,WAAAA,EAAS,CAAE,CAAA,OAAA,CAAQ,KAAK,CAAA,CACzD,mCAAqCJ,CAAAA,YAAAA,CAASI,aAAS,CAAA,CAAE,OAAQ,CAAA,KAAK,CACtE,CAAA,WAAA,CAAaJ,aAASV,CAAgB,CAAA,CAAE,OAAQ,CAAA,aAAa,CAC7D,CAAA,iBAAA,CAAmBU,aAASN,CAAqB,CAAA,CAAE,OAAQ,CAAA,KAAK,CAChE,CAAA,aAAA,CAAeM,aAASJ,CAAkB,CAAA,CAAE,OAAQ,CAAA,KAAK,CAC3D,CAAC,EAEKS,CAAmBP,CAAAA,UAAAA,CAAO,CAC9B,EAAA,CAAIC,QAAK,EAAA,CACT,QAASA,QAAK,EAAA,CACd,IAAMC,CAAAA,YAAAA,CAASC,YAASK,CAAAA,mBAAa,CAAC,CACtC,CAAA,MAAA,CAAQP,QAAK,EAAA,CACb,OAASA,CAAAA,QAAAA,GACT,IAAMI,CAAAA,mBAAAA,CACN,eAAiBH,CAAAA,YAAAA,CAASP,CAAoB,CAAA,CAAE,QAAQ,UAAU,CAAA,CAClE,QAAUF,CAAAA,UAAAA,EAAS,CAAA,OAAA,CAAQ,IAAM,IAAI,IAAA,EAAO,CAAA,WAAA,EAAa,CAAA,CACzD,WAAYgB,mBAAiB,CAAA,OAAA,CAAQ,QAAQ,CAC/C,CAAC","file":"chunk-BELCP7OL.cjs","sourcesContent":["import {\n boolean,\n object,\n string,\n array,\n enum as zodEnum,\n type z,\n optional,\n nullable,\n uuid,\n} from \"zod\";\n\nimport { RoleSchema, VisibilitySchema } from \"./common\";\nimport { ProfileSchema } from \"./users\";\n\nconst JoinPolicySchema = string().refine(\n (val) => [\"invite_only\", \"request\", \"open\"].includes(val),\n { message: \"Invalid join policy\" }\n);\n\nconst MembershipTypeSchema = string().refine(\n (val) => [\"internal\", \"external\"].includes(val),\n { message: \"Invalid membership type\" }\n);\n\nconst ActorTypePolicySchema = zodEnum([\"any\", \"verified_only\", \"agents_only\"]);\nconst SourcePolicySchema = zodEnum([\"any\", \"web_only\", \"api_only\"]);\n\nconst OrganizationsSchema = object({\n id: uuid(),\n name: string(),\n display_name: optional(nullable(string())),\n avatar_path: optional(nullable(string())),\n mission: optional(nullable(string())),\n size: string(),\n email: optional(nullable(string())),\n domain: optional(nullable(string())),\n urls: optional(\n nullable(\n array(\n object({\n value: string(),\n })\n )\n )\n ),\n base_role: RoleSchema.default(\"write\"),\n allow_external_members: optional(boolean()).default(false),\n allow_external_public_team_creation: optional(boolean()).default(false),\n join_policy: optional(JoinPolicySchema).default(\"invite_only\"),\n actor_type_policy: optional(ActorTypePolicySchema).default(\"any\"),\n source_policy: optional(SourcePolicySchema).default(\"any\"),\n});\n\nconst MembershipSchema = object({\n id: uuid(),\n user_id: uuid(),\n user: optional(nullable(ProfileSchema)),\n org_id: uuid(),\n team_id: uuid(),\n role: RoleSchema,\n membership_type: optional(MembershipTypeSchema).default(\"internal\"),\n added_at: string().default(() => new Date().toISOString()),\n visibility: VisibilitySchema.default(\"public\"),\n});\n\nexport { OrganizationsSchema, MembershipSchema, ActorTypePolicySchema, SourcePolicySchema };\nexport type Organization = z.infer<typeof OrganizationsSchema>;\nexport type Membership = z.infer<typeof MembershipSchema>;\nexport type ActorTypePolicy = z.infer<typeof ActorTypePolicySchema>;\nexport type SourcePolicy = z.infer<typeof SourcePolicySchema>;\n"]}
@@ -1,2 +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
1
+ import {b}from'./chunk-G6GCUGMM.js';import {a,e}from'./chunk-33C7IDRP.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-CXMEZGVG.js.map
2
+ //# sourceMappingURL=chunk-CXMEZGVG.js.map
@@ -1 +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"]}
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-CXMEZGVG.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"]}
@@ -1,2 +1,2 @@
1
- import {b as b$2}from'./chunk-G6GCUGMM.js';import {c,b as b$1}from'./chunk-3BZRQYRC.js';import {string,enum as _enum,object,optional,uuid,boolean,nullable,array}from'zod';var s=string().refine(t=>["invite_only","request","open"].includes(t),{message:"Invalid join policy"}),u=string().refine(t=>["internal","external"].includes(t),{message:"Invalid membership type"}),d=_enum(["any","verified_only","agents_only"]),f=_enum(["any","web_only","api_only"]),b=object({id:uuid(),name:string(),display_name:optional(nullable(string())),avatar_path:optional(nullable(string())),mission:optional(nullable(string())),size:string(),email:optional(nullable(string())),domain:optional(nullable(string())),urls:optional(nullable(array(object({value:string()})))),base_role:c.default("write"),allow_external_members:optional(boolean()).default(false),allow_external_public_team_creation:optional(boolean()).default(false),join_policy:optional(s).default("invite_only"),actor_type_policy:optional(d).default("any"),source_policy:optional(f).default("any")}),z=object({id:uuid(),user_id:uuid(),user:optional(nullable(b$2)),org_id:uuid(),team_id:uuid(),role:c,membership_type:optional(u).default("internal"),added_at:string().default(()=>new Date().toISOString()),visibility:b$1.default("public")});export{d as a,f as b,b as c,z as d};//# sourceMappingURL=chunk-42WKTHH5.js.map
2
- //# sourceMappingURL=chunk-42WKTHH5.js.map
1
+ import {b as b$2}from'./chunk-G6GCUGMM.js';import {c,b as b$1}from'./chunk-33C7IDRP.js';import {string,enum as _enum,object,optional,uuid,boolean,nullable,array}from'zod';var s=string().refine(t=>["invite_only","request","open"].includes(t),{message:"Invalid join policy"}),u=string().refine(t=>["internal","external"].includes(t),{message:"Invalid membership type"}),d=_enum(["any","verified_only","agents_only"]),f=_enum(["any","web_only","api_only"]),b=object({id:uuid(),name:string(),display_name:optional(nullable(string())),avatar_path:optional(nullable(string())),mission:optional(nullable(string())),size:string(),email:optional(nullable(string())),domain:optional(nullable(string())),urls:optional(nullable(array(object({value:string()})))),base_role:c.default("write"),allow_external_members:optional(boolean()).default(false),allow_external_public_team_creation:optional(boolean()).default(false),join_policy:optional(s).default("invite_only"),actor_type_policy:optional(d).default("any"),source_policy:optional(f).default("any")}),z=object({id:uuid(),user_id:uuid(),user:optional(nullable(b$2)),org_id:uuid(),team_id:uuid(),role:c,membership_type:optional(u).default("internal"),added_at:string().default(()=>new Date().toISOString()),visibility:b$1.default("public")});export{d as a,f as b,b as c,z as d};//# sourceMappingURL=chunk-EIB2YGN3.js.map
2
+ //# sourceMappingURL=chunk-EIB2YGN3.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schema/organizations.ts"],"names":["JoinPolicySchema","string","val","MembershipTypeSchema","ActorTypePolicySchema","zodEnum","SourcePolicySchema","OrganizationsSchema","object","uuid","optional","nullable","array","RoleSchema","boolean","MembershipSchema","ProfileSchema","VisibilitySchema"],"mappings":"2KAeMA,IAAAA,CAAAA,CAAmBC,QAAS,CAAA,MAAA,CAC/BC,CAAQ,EAAA,CAAC,aAAe,CAAA,SAAA,CAAW,MAAM,CAAE,CAAA,QAAA,CAASA,CAAG,CAAA,CACxD,CAAE,OAAA,CAAS,qBAAsB,CACnC,CAAA,CAEMC,CAAuBF,CAAAA,MAAAA,EAAS,CAAA,MAAA,CACnCC,GAAQ,CAAC,UAAA,CAAY,UAAU,CAAA,CAAE,QAASA,CAAAA,CAAG,EAC9C,CAAE,OAAA,CAAS,yBAA0B,CACvC,CAEME,CAAAA,CAAAA,CAAwBC,MAAQ,CAAC,KAAA,CAAO,eAAiB,CAAA,aAAa,CAAC,CAAA,CACvEC,EAAqBD,KAAQ,CAAA,CAAC,KAAO,CAAA,UAAA,CAAY,UAAU,CAAC,EAE5DE,CAAsBC,CAAAA,MAAAA,CAAO,CACjC,EAAA,CAAIC,IAAK,EAAA,CACT,KAAMR,MAAO,EAAA,CACb,YAAcS,CAAAA,QAAAA,CAASC,QAASV,CAAAA,MAAAA,EAAQ,CAAC,CAAA,CACzC,WAAaS,CAAAA,QAAAA,CAASC,QAASV,CAAAA,MAAAA,EAAQ,CAAC,CAAA,CACxC,OAASS,CAAAA,QAAAA,CAASC,QAASV,CAAAA,MAAAA,EAAQ,CAAC,CAAA,CACpC,IAAMA,CAAAA,MAAAA,EACN,CAAA,KAAA,CAAOS,SAASC,QAASV,CAAAA,MAAAA,EAAQ,CAAC,CAClC,CAAA,MAAA,CAAQS,SAASC,QAASV,CAAAA,MAAAA,EAAQ,CAAC,CACnC,CAAA,IAAA,CAAMS,SACJC,QACEC,CAAAA,KAAAA,CACEJ,MAAO,CAAA,CACL,KAAOP,CAAAA,MAAAA,EACT,CAAC,CACH,CACF,CACF,CACA,CAAA,SAAA,CAAWY,EAAW,OAAQ,CAAA,OAAO,CACrC,CAAA,sBAAA,CAAwBH,QAASI,CAAAA,OAAAA,EAAS,CAAE,CAAA,OAAA,CAAQ,KAAK,CAAA,CACzD,mCAAqCJ,CAAAA,QAAAA,CAASI,SAAS,CAAA,CAAE,OAAQ,CAAA,KAAK,CACtE,CAAA,WAAA,CAAaJ,SAASV,CAAgB,CAAA,CAAE,OAAQ,CAAA,aAAa,CAC7D,CAAA,iBAAA,CAAmBU,SAASN,CAAqB,CAAA,CAAE,OAAQ,CAAA,KAAK,CAChE,CAAA,aAAA,CAAeM,SAASJ,CAAkB,CAAA,CAAE,OAAQ,CAAA,KAAK,CAC3D,CAAC,EAEKS,CAAmBP,CAAAA,MAAAA,CAAO,CAC9B,EAAA,CAAIC,IAAK,EAAA,CACT,QAASA,IAAK,EAAA,CACd,IAAMC,CAAAA,QAAAA,CAASC,QAASK,CAAAA,GAAa,CAAC,CACtC,CAAA,MAAA,CAAQP,IAAK,EAAA,CACb,OAASA,CAAAA,IAAAA,GACT,IAAMI,CAAAA,CAAAA,CACN,eAAiBH,CAAAA,QAAAA,CAASP,CAAoB,CAAA,CAAE,QAAQ,UAAU,CAAA,CAClE,QAAUF,CAAAA,MAAAA,EAAS,CAAA,OAAA,CAAQ,IAAM,IAAI,IAAA,EAAO,CAAA,WAAA,EAAa,CAAA,CACzD,WAAYgB,GAAiB,CAAA,OAAA,CAAQ,QAAQ,CAC/C,CAAC","file":"chunk-42WKTHH5.js","sourcesContent":["import {\n boolean,\n object,\n string,\n array,\n enum as zodEnum,\n type z,\n optional,\n nullable,\n uuid,\n} from \"zod\";\n\nimport { RoleSchema, VisibilitySchema } from \"./common\";\nimport { ProfileSchema } from \"./users\";\n\nconst JoinPolicySchema = string().refine(\n (val) => [\"invite_only\", \"request\", \"open\"].includes(val),\n { message: \"Invalid join policy\" }\n);\n\nconst MembershipTypeSchema = string().refine(\n (val) => [\"internal\", \"external\"].includes(val),\n { message: \"Invalid membership type\" }\n);\n\nconst ActorTypePolicySchema = zodEnum([\"any\", \"verified_only\", \"agents_only\"]);\nconst SourcePolicySchema = zodEnum([\"any\", \"web_only\", \"api_only\"]);\n\nconst OrganizationsSchema = object({\n id: uuid(),\n name: string(),\n display_name: optional(nullable(string())),\n avatar_path: optional(nullable(string())),\n mission: optional(nullable(string())),\n size: string(),\n email: optional(nullable(string())),\n domain: optional(nullable(string())),\n urls: optional(\n nullable(\n array(\n object({\n value: string(),\n })\n )\n )\n ),\n base_role: RoleSchema.default(\"write\"),\n allow_external_members: optional(boolean()).default(false),\n allow_external_public_team_creation: optional(boolean()).default(false),\n join_policy: optional(JoinPolicySchema).default(\"invite_only\"),\n actor_type_policy: optional(ActorTypePolicySchema).default(\"any\"),\n source_policy: optional(SourcePolicySchema).default(\"any\"),\n});\n\nconst MembershipSchema = object({\n id: uuid(),\n user_id: uuid(),\n user: optional(nullable(ProfileSchema)),\n org_id: uuid(),\n team_id: uuid(),\n role: RoleSchema,\n membership_type: optional(MembershipTypeSchema).default(\"internal\"),\n added_at: string().default(() => new Date().toISOString()),\n visibility: VisibilitySchema.default(\"public\"),\n});\n\nexport { OrganizationsSchema, MembershipSchema, ActorTypePolicySchema, SourcePolicySchema };\nexport type Organization = z.infer<typeof OrganizationsSchema>;\nexport type Membership = z.infer<typeof MembershipSchema>;\nexport type ActorTypePolicy = z.infer<typeof ActorTypePolicySchema>;\nexport type SourcePolicy = z.infer<typeof SourcePolicySchema>;\n"]}
1
+ {"version":3,"sources":["../src/schema/organizations.ts"],"names":["JoinPolicySchema","string","val","MembershipTypeSchema","ActorTypePolicySchema","zodEnum","SourcePolicySchema","OrganizationsSchema","object","uuid","optional","nullable","array","RoleSchema","boolean","MembershipSchema","ProfileSchema","VisibilitySchema"],"mappings":"2KAeMA,IAAAA,CAAAA,CAAmBC,QAAS,CAAA,MAAA,CAC/BC,CAAQ,EAAA,CAAC,aAAe,CAAA,SAAA,CAAW,MAAM,CAAE,CAAA,QAAA,CAASA,CAAG,CAAA,CACxD,CAAE,OAAA,CAAS,qBAAsB,CACnC,CAAA,CAEMC,CAAuBF,CAAAA,MAAAA,EAAS,CAAA,MAAA,CACnCC,GAAQ,CAAC,UAAA,CAAY,UAAU,CAAA,CAAE,QAASA,CAAAA,CAAG,EAC9C,CAAE,OAAA,CAAS,yBAA0B,CACvC,CAEME,CAAAA,CAAAA,CAAwBC,MAAQ,CAAC,KAAA,CAAO,eAAiB,CAAA,aAAa,CAAC,CAAA,CACvEC,EAAqBD,KAAQ,CAAA,CAAC,KAAO,CAAA,UAAA,CAAY,UAAU,CAAC,EAE5DE,CAAsBC,CAAAA,MAAAA,CAAO,CACjC,EAAA,CAAIC,IAAK,EAAA,CACT,KAAMR,MAAO,EAAA,CACb,YAAcS,CAAAA,QAAAA,CAASC,QAASV,CAAAA,MAAAA,EAAQ,CAAC,CAAA,CACzC,WAAaS,CAAAA,QAAAA,CAASC,QAASV,CAAAA,MAAAA,EAAQ,CAAC,CAAA,CACxC,OAASS,CAAAA,QAAAA,CAASC,QAASV,CAAAA,MAAAA,EAAQ,CAAC,CAAA,CACpC,IAAMA,CAAAA,MAAAA,EACN,CAAA,KAAA,CAAOS,SAASC,QAASV,CAAAA,MAAAA,EAAQ,CAAC,CAClC,CAAA,MAAA,CAAQS,SAASC,QAASV,CAAAA,MAAAA,EAAQ,CAAC,CACnC,CAAA,IAAA,CAAMS,SACJC,QACEC,CAAAA,KAAAA,CACEJ,MAAO,CAAA,CACL,KAAOP,CAAAA,MAAAA,EACT,CAAC,CACH,CACF,CACF,CACA,CAAA,SAAA,CAAWY,EAAW,OAAQ,CAAA,OAAO,CACrC,CAAA,sBAAA,CAAwBH,QAASI,CAAAA,OAAAA,EAAS,CAAE,CAAA,OAAA,CAAQ,KAAK,CAAA,CACzD,mCAAqCJ,CAAAA,QAAAA,CAASI,SAAS,CAAA,CAAE,OAAQ,CAAA,KAAK,CACtE,CAAA,WAAA,CAAaJ,SAASV,CAAgB,CAAA,CAAE,OAAQ,CAAA,aAAa,CAC7D,CAAA,iBAAA,CAAmBU,SAASN,CAAqB,CAAA,CAAE,OAAQ,CAAA,KAAK,CAChE,CAAA,aAAA,CAAeM,SAASJ,CAAkB,CAAA,CAAE,OAAQ,CAAA,KAAK,CAC3D,CAAC,EAEKS,CAAmBP,CAAAA,MAAAA,CAAO,CAC9B,EAAA,CAAIC,IAAK,EAAA,CACT,QAASA,IAAK,EAAA,CACd,IAAMC,CAAAA,QAAAA,CAASC,QAASK,CAAAA,GAAa,CAAC,CACtC,CAAA,MAAA,CAAQP,IAAK,EAAA,CACb,OAASA,CAAAA,IAAAA,GACT,IAAMI,CAAAA,CAAAA,CACN,eAAiBH,CAAAA,QAAAA,CAASP,CAAoB,CAAA,CAAE,QAAQ,UAAU,CAAA,CAClE,QAAUF,CAAAA,MAAAA,EAAS,CAAA,OAAA,CAAQ,IAAM,IAAI,IAAA,EAAO,CAAA,WAAA,EAAa,CAAA,CACzD,WAAYgB,GAAiB,CAAA,OAAA,CAAQ,QAAQ,CAC/C,CAAC","file":"chunk-EIB2YGN3.js","sourcesContent":["import {\n boolean,\n object,\n string,\n array,\n enum as zodEnum,\n type z,\n optional,\n nullable,\n uuid,\n} from \"zod\";\n\nimport { RoleSchema, VisibilitySchema } from \"./common\";\nimport { ProfileSchema } from \"./users\";\n\nconst JoinPolicySchema = string().refine(\n (val) => [\"invite_only\", \"request\", \"open\"].includes(val),\n { message: \"Invalid join policy\" }\n);\n\nconst MembershipTypeSchema = string().refine(\n (val) => [\"internal\", \"external\"].includes(val),\n { message: \"Invalid membership type\" }\n);\n\nconst ActorTypePolicySchema = zodEnum([\"any\", \"verified_only\", \"agents_only\"]);\nconst SourcePolicySchema = zodEnum([\"any\", \"web_only\", \"api_only\"]);\n\nconst OrganizationsSchema = object({\n id: uuid(),\n name: string(),\n display_name: optional(nullable(string())),\n avatar_path: optional(nullable(string())),\n mission: optional(nullable(string())),\n size: string(),\n email: optional(nullable(string())),\n domain: optional(nullable(string())),\n urls: optional(\n nullable(\n array(\n object({\n value: string(),\n })\n )\n )\n ),\n base_role: RoleSchema.default(\"write\"),\n allow_external_members: optional(boolean()).default(false),\n allow_external_public_team_creation: optional(boolean()).default(false),\n join_policy: optional(JoinPolicySchema).default(\"invite_only\"),\n actor_type_policy: optional(ActorTypePolicySchema).default(\"any\"),\n source_policy: optional(SourcePolicySchema).default(\"any\"),\n});\n\nconst MembershipSchema = object({\n id: uuid(),\n user_id: uuid(),\n user: optional(nullable(ProfileSchema)),\n org_id: uuid(),\n team_id: uuid(),\n role: RoleSchema,\n membership_type: optional(MembershipTypeSchema).default(\"internal\"),\n added_at: string().default(() => new Date().toISOString()),\n visibility: VisibilitySchema.default(\"public\"),\n});\n\nexport { OrganizationsSchema, MembershipSchema, ActorTypePolicySchema, SourcePolicySchema };\nexport type Organization = z.infer<typeof OrganizationsSchema>;\nexport type Membership = z.infer<typeof MembershipSchema>;\nexport type ActorTypePolicy = z.infer<typeof ActorTypePolicySchema>;\nexport type SourcePolicy = z.infer<typeof SourcePolicySchema>;\n"]}
@@ -1,2 +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
1
+ import {a as a$1}from'./chunk-WE6CXCEQ.js';import {b as b$1}from'./chunk-6OO4SOWL.js';import {f,e,g,a}from'./chunk-GX6RCMZR.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-GT7CSIDN.js.map
2
+ //# sourceMappingURL=chunk-GT7CSIDN.js.map
@@ -1 +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"]}
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-GT7CSIDN.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"]}
@@ -1,2 +1,2 @@
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
+ import {a as a$1}from'./chunk-M5ZLLARC.js';import {c}from'./chunk-EIB2YGN3.js';import {b as b$1}from'./chunk-G6GCUGMM.js';import {k,j,d as d$1,b,a,e}from'./chunk-33C7IDRP.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-GX6RCMZR.js.map
2
+ //# sourceMappingURL=chunk-GX6RCMZR.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-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
+ {"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-GX6RCMZR.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
- import {k,j,l,a}from'./chunk-3BZRQYRC.js';import {enum as _enum,object,optional,boolean,string,uuid,array,union}from'zod';var n=_enum(["public","private","organization","monetized"]),h=_enum(["image","video","audio"]),u=object({user:optional(uuid()),team:optional(uuid()),visibility:optional(n),top_level_only:optional(boolean()),asset_type:optional(_enum(["file","dataset"])),file_type:optional(h),extension:optional(string()),license:optional(string()),method:optional(l),status:optional(j),source:optional(k),has_reactions:optional(boolean()),has_comments:optional(boolean())}),F=object({asset_type:optional(union([a,array(a)])),user_id:optional(uuid()),org_id:optional(uuid()),team_id:optional(uuid()),visibility:optional(union([n,array(n)])),license_id:optional(string()),source:optional(k),top_level_only:optional(boolean()),method:optional(l),status:optional(j),exclude_user_id:optional(uuid()),exclude_org_ids:optional(array(uuid()))}),_=object({file_type:optional(string()),extension:optional(union([string(),array(string())]))}).catchall(optional(union([string(),array(string()),boolean()])));export{n as a,h as b,u as c,F as d,_ as e};//# sourceMappingURL=chunk-W3N744QV.js.map
2
- //# sourceMappingURL=chunk-W3N744QV.js.map
1
+ import {k,j,l,a}from'./chunk-33C7IDRP.js';import {enum as _enum,object,optional,boolean,string,uuid,array,union}from'zod';var n=_enum(["public","private","organization","monetized"]),h=_enum(["image","video","audio"]),u=object({user:optional(uuid()),team:optional(uuid()),visibility:optional(n),top_level_only:optional(boolean()),asset_type:optional(_enum(["file","dataset"])),file_type:optional(h),extension:optional(string()),license:optional(string()),method:optional(l),status:optional(j),source:optional(k),has_reactions:optional(boolean()),has_comments:optional(boolean())}),F=object({asset_type:optional(union([a,array(a)])),user_id:optional(uuid()),org_id:optional(uuid()),team_id:optional(uuid()),visibility:optional(union([n,array(n)])),license_id:optional(string()),source:optional(k),top_level_only:optional(boolean()),method:optional(l),status:optional(j),exclude_user_id:optional(uuid()),exclude_org_ids:optional(array(uuid()))}),_=object({file_type:optional(string()),extension:optional(union([string(),array(string())]))}).catchall(optional(union([string(),array(string()),boolean()])));export{n as a,h as b,u as c,F as d,_ as e};//# sourceMappingURL=chunk-KMENBGAB.js.map
2
+ //# sourceMappingURL=chunk-KMENBGAB.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schema/asset-filters.ts"],"names":["AssetFilterVisibilitySchema","zodEnum","AssetFilterFileTypeSchema","AssetFiltersSchema","object","optional","uuid","boolean","string","HttpMethodSchema","StatusSchema","SourceSchema","AssetSearchFiltersSchema","union","AssetTypeSchema","array","AssetMetadataFiltersSchema"],"mappings":"0HAoBA,IAAMA,EAA8BC,KAAQ,CAAA,CAC1C,QACA,CAAA,SAAA,CACA,cACA,CAAA,WACF,CAAC,CAGKC,CAAAA,CAAAA,CAA4BD,KAAQ,CAAA,CAAC,OAAS,CAAA,OAAA,CAAS,OAAO,CAAC,CAAA,CAO/DE,CAAqBC,CAAAA,MAAAA,CAAO,CAChC,IAAA,CAAMC,SAASC,IAAK,EAAC,CACrB,CAAA,IAAA,CAAMD,QAASC,CAAAA,IAAAA,EAAM,CACrB,CAAA,UAAA,CAAYD,QAASL,CAAAA,CAA2B,CAChD,CAAA,cAAA,CAAgBK,SAASE,OAAQ,EAAC,EAElC,UAAYF,CAAAA,QAAAA,CAASJ,MAAQ,CAAC,MAAA,CAAQ,SAAS,CAAC,CAAC,CAAA,CACjD,UAAWI,QAASH,CAAAA,CAAyB,CAC7C,CAAA,SAAA,CAAWG,QAASG,CAAAA,MAAAA,EAAQ,CAC5B,CAAA,OAAA,CAASH,QAASG,CAAAA,MAAAA,EAAQ,CAAA,CAC1B,OAAQH,QAASI,CAAAA,CAAgB,CACjC,CAAA,MAAA,CAAQJ,QAASK,CAAAA,CAAY,EAC7B,MAAQL,CAAAA,QAAAA,CAASM,CAAY,CAAA,CAC7B,aAAeN,CAAAA,QAAAA,CAASE,SAAS,CAAA,CACjC,YAAcF,CAAAA,QAAAA,CAASE,OAAQ,EAAC,CAClC,CAAC,CAAA,CAMKK,CAA2BR,CAAAA,MAAAA,CAAO,CACtC,UAAA,CAAYC,SAASQ,KAAM,CAAA,CAACC,EAAiBC,KAAMD,CAAAA,CAAe,CAAC,CAAC,CAAC,CACrE,CAAA,OAAA,CAAST,QAASC,CAAAA,IAAAA,EAAM,CACxB,CAAA,MAAA,CAAQD,QAASC,CAAAA,IAAAA,EAAM,CAAA,CACvB,QAASD,QAASC,CAAAA,IAAAA,EAAM,CAAA,CACxB,UAAYD,CAAAA,QAAAA,CACVQ,MAAM,CAACb,CAAAA,CAA6Be,KAAMf,CAAAA,CAA2B,CAAC,CAAC,CACzE,CACA,CAAA,UAAA,CAAYK,QAASG,CAAAA,MAAAA,EAAQ,CAAA,CAC7B,OAAQH,QAASM,CAAAA,CAAY,CAC7B,CAAA,cAAA,CAAgBN,QAASE,CAAAA,OAAAA,EAAS,CAClC,CAAA,MAAA,CAAQF,QAASI,CAAAA,CAAgB,CACjC,CAAA,MAAA,CAAQJ,SAASK,CAAY,CAAA,CAE7B,eAAiBL,CAAAA,QAAAA,CAASC,IAAK,EAAC,EAChC,eAAiBD,CAAAA,QAAAA,CAASU,KAAMT,CAAAA,IAAAA,EAAM,CAAC,CACzC,CAAC,CAAA,CAMKU,CAA6BZ,CAAAA,MAAAA,CAAO,CACxC,SAAA,CAAWC,SAASG,MAAO,EAAC,CAC5B,CAAA,SAAA,CAAWH,QAASQ,CAAAA,KAAAA,CAAM,CAACL,MAAO,EAAA,CAAGO,KAAMP,CAAAA,MAAAA,EAAQ,CAAC,CAAC,CAAC,CACxD,CAAC,CAAA,CAAE,QAASH,CAAAA,QAAAA,CAASQ,MAAM,CAACL,MAAAA,EAAUO,CAAAA,KAAAA,CAAMP,MAAO,EAAC,EAAGD,OAAQ,EAAC,CAAC,CAAC,CAAC","file":"chunk-W3N744QV.js","sourcesContent":["import {\n object,\n string,\n uuid,\n boolean,\n array,\n union,\n enum as zodEnum,\n optional,\n type z,\n} from \"zod\";\n\nimport {\n AssetTypeSchema,\n HttpMethodSchema,\n SourceSchema,\n StatusSchema,\n} from \"./common\";\n\n/** Filterable visibilities — excludes `inherit` (not a browse/search value). */\nconst AssetFilterVisibilitySchema = zodEnum([\n \"public\",\n \"private\",\n \"organization\",\n \"monetized\",\n]);\n\n/** UI file-category chips used in the assets filter bar. */\nconst AssetFilterFileTypeSchema = zodEnum([\"image\", \"video\", \"audio\"]);\n\n/**\n * Client/UI filter state for asset lists and the filter bar.\n * Short keys (`user`, `team`, `license`) map to API columns via\n * {@link toAssetSearchFilters}.\n */\nconst AssetFiltersSchema = object({\n user: optional(uuid()),\n team: optional(uuid()),\n visibility: optional(AssetFilterVisibilitySchema),\n top_level_only: optional(boolean()),\n /** Data-list subtype chip (file vs dataset). */\n asset_type: optional(zodEnum([\"file\", \"dataset\"])),\n file_type: optional(AssetFilterFileTypeSchema),\n extension: optional(string()),\n license: optional(string()),\n method: optional(HttpMethodSchema),\n status: optional(StatusSchema),\n source: optional(SourceSchema),\n has_reactions: optional(boolean()),\n has_comments: optional(boolean()),\n});\n\n/**\n * Wire-format `filters` object for `/search/assets` and related RPCs.\n * Uses DB/API column names (`user_id`, `team_id`, `license_id`).\n */\nconst AssetSearchFiltersSchema = object({\n asset_type: optional(union([AssetTypeSchema, array(AssetTypeSchema)])),\n user_id: optional(uuid()),\n org_id: optional(uuid()),\n team_id: optional(uuid()),\n visibility: optional(\n union([AssetFilterVisibilitySchema, array(AssetFilterVisibilitySchema)])\n ),\n license_id: optional(string()),\n source: optional(SourceSchema),\n top_level_only: optional(boolean()),\n method: optional(HttpMethodSchema),\n status: optional(StatusSchema),\n /** Server-side personal/global scoping helper. */\n exclude_user_id: optional(uuid()),\n exclude_org_ids: optional(array(uuid())),\n});\n\n/**\n * Wire-format `metadata_filters` for file-oriented search\n * (`file_type`, `extension`, and arbitrary metadata keys).\n */\nconst AssetMetadataFiltersSchema = object({\n file_type: optional(string()),\n extension: optional(union([string(), array(string())])),\n}).catchall(optional(union([string(), array(string()), boolean()])));\n\nexport {\n AssetFilterVisibilitySchema,\n AssetFilterFileTypeSchema,\n AssetFiltersSchema,\n AssetSearchFiltersSchema,\n AssetMetadataFiltersSchema,\n};\n\nexport type AssetFilterVisibility = z.infer<typeof AssetFilterVisibilitySchema>;\nexport type AssetFilterFileType = z.infer<typeof AssetFilterFileTypeSchema>;\nexport type AssetFilters = z.infer<typeof AssetFiltersSchema>;\nexport type AssetSearchFilters = z.infer<typeof AssetSearchFiltersSchema>;\nexport type AssetMetadataFilters = z.infer<typeof AssetMetadataFiltersSchema>;\n"]}
1
+ {"version":3,"sources":["../src/schema/asset-filters.ts"],"names":["AssetFilterVisibilitySchema","zodEnum","AssetFilterFileTypeSchema","AssetFiltersSchema","object","optional","uuid","boolean","string","HttpMethodSchema","StatusSchema","SourceSchema","AssetSearchFiltersSchema","union","AssetTypeSchema","array","AssetMetadataFiltersSchema"],"mappings":"0HAoBA,IAAMA,EAA8BC,KAAQ,CAAA,CAC1C,QACA,CAAA,SAAA,CACA,cACA,CAAA,WACF,CAAC,CAGKC,CAAAA,CAAAA,CAA4BD,KAAQ,CAAA,CAAC,OAAS,CAAA,OAAA,CAAS,OAAO,CAAC,CAAA,CAO/DE,CAAqBC,CAAAA,MAAAA,CAAO,CAChC,IAAA,CAAMC,SAASC,IAAK,EAAC,CACrB,CAAA,IAAA,CAAMD,QAASC,CAAAA,IAAAA,EAAM,CACrB,CAAA,UAAA,CAAYD,QAASL,CAAAA,CAA2B,CAChD,CAAA,cAAA,CAAgBK,SAASE,OAAQ,EAAC,EAElC,UAAYF,CAAAA,QAAAA,CAASJ,MAAQ,CAAC,MAAA,CAAQ,SAAS,CAAC,CAAC,CAAA,CACjD,UAAWI,QAASH,CAAAA,CAAyB,CAC7C,CAAA,SAAA,CAAWG,QAASG,CAAAA,MAAAA,EAAQ,CAC5B,CAAA,OAAA,CAASH,QAASG,CAAAA,MAAAA,EAAQ,CAAA,CAC1B,OAAQH,QAASI,CAAAA,CAAgB,CACjC,CAAA,MAAA,CAAQJ,QAASK,CAAAA,CAAY,EAC7B,MAAQL,CAAAA,QAAAA,CAASM,CAAY,CAAA,CAC7B,aAAeN,CAAAA,QAAAA,CAASE,SAAS,CAAA,CACjC,YAAcF,CAAAA,QAAAA,CAASE,OAAQ,EAAC,CAClC,CAAC,CAAA,CAMKK,CAA2BR,CAAAA,MAAAA,CAAO,CACtC,UAAA,CAAYC,SAASQ,KAAM,CAAA,CAACC,EAAiBC,KAAMD,CAAAA,CAAe,CAAC,CAAC,CAAC,CACrE,CAAA,OAAA,CAAST,QAASC,CAAAA,IAAAA,EAAM,CACxB,CAAA,MAAA,CAAQD,QAASC,CAAAA,IAAAA,EAAM,CAAA,CACvB,QAASD,QAASC,CAAAA,IAAAA,EAAM,CAAA,CACxB,UAAYD,CAAAA,QAAAA,CACVQ,MAAM,CAACb,CAAAA,CAA6Be,KAAMf,CAAAA,CAA2B,CAAC,CAAC,CACzE,CACA,CAAA,UAAA,CAAYK,QAASG,CAAAA,MAAAA,EAAQ,CAAA,CAC7B,OAAQH,QAASM,CAAAA,CAAY,CAC7B,CAAA,cAAA,CAAgBN,QAASE,CAAAA,OAAAA,EAAS,CAClC,CAAA,MAAA,CAAQF,QAASI,CAAAA,CAAgB,CACjC,CAAA,MAAA,CAAQJ,SAASK,CAAY,CAAA,CAE7B,eAAiBL,CAAAA,QAAAA,CAASC,IAAK,EAAC,EAChC,eAAiBD,CAAAA,QAAAA,CAASU,KAAMT,CAAAA,IAAAA,EAAM,CAAC,CACzC,CAAC,CAAA,CAMKU,CAA6BZ,CAAAA,MAAAA,CAAO,CACxC,SAAA,CAAWC,SAASG,MAAO,EAAC,CAC5B,CAAA,SAAA,CAAWH,QAASQ,CAAAA,KAAAA,CAAM,CAACL,MAAO,EAAA,CAAGO,KAAMP,CAAAA,MAAAA,EAAQ,CAAC,CAAC,CAAC,CACxD,CAAC,CAAA,CAAE,QAASH,CAAAA,QAAAA,CAASQ,MAAM,CAACL,MAAAA,EAAUO,CAAAA,KAAAA,CAAMP,MAAO,EAAC,EAAGD,OAAQ,EAAC,CAAC,CAAC,CAAC","file":"chunk-KMENBGAB.js","sourcesContent":["import {\n object,\n string,\n uuid,\n boolean,\n array,\n union,\n enum as zodEnum,\n optional,\n type z,\n} from \"zod\";\n\nimport {\n AssetTypeSchema,\n HttpMethodSchema,\n SourceSchema,\n StatusSchema,\n} from \"./common\";\n\n/** Filterable visibilities — excludes `inherit` (not a browse/search value). */\nconst AssetFilterVisibilitySchema = zodEnum([\n \"public\",\n \"private\",\n \"organization\",\n \"monetized\",\n]);\n\n/** UI file-category chips used in the assets filter bar. */\nconst AssetFilterFileTypeSchema = zodEnum([\"image\", \"video\", \"audio\"]);\n\n/**\n * Client/UI filter state for asset lists and the filter bar.\n * Short keys (`user`, `team`, `license`) map to API columns via\n * {@link toAssetSearchFilters}.\n */\nconst AssetFiltersSchema = object({\n user: optional(uuid()),\n team: optional(uuid()),\n visibility: optional(AssetFilterVisibilitySchema),\n top_level_only: optional(boolean()),\n /** Data-list subtype chip (file vs dataset). */\n asset_type: optional(zodEnum([\"file\", \"dataset\"])),\n file_type: optional(AssetFilterFileTypeSchema),\n extension: optional(string()),\n license: optional(string()),\n method: optional(HttpMethodSchema),\n status: optional(StatusSchema),\n source: optional(SourceSchema),\n has_reactions: optional(boolean()),\n has_comments: optional(boolean()),\n});\n\n/**\n * Wire-format `filters` object for `/search/assets` and related RPCs.\n * Uses DB/API column names (`user_id`, `team_id`, `license_id`).\n */\nconst AssetSearchFiltersSchema = object({\n asset_type: optional(union([AssetTypeSchema, array(AssetTypeSchema)])),\n user_id: optional(uuid()),\n org_id: optional(uuid()),\n team_id: optional(uuid()),\n visibility: optional(\n union([AssetFilterVisibilitySchema, array(AssetFilterVisibilitySchema)])\n ),\n license_id: optional(string()),\n source: optional(SourceSchema),\n top_level_only: optional(boolean()),\n method: optional(HttpMethodSchema),\n status: optional(StatusSchema),\n /** Server-side personal/global scoping helper. */\n exclude_user_id: optional(uuid()),\n exclude_org_ids: optional(array(uuid())),\n});\n\n/**\n * Wire-format `metadata_filters` for file-oriented search\n * (`file_type`, `extension`, and arbitrary metadata keys).\n */\nconst AssetMetadataFiltersSchema = object({\n file_type: optional(string()),\n extension: optional(union([string(), array(string())])),\n}).catchall(optional(union([string(), array(string()), boolean()])));\n\nexport {\n AssetFilterVisibilitySchema,\n AssetFilterFileTypeSchema,\n AssetFiltersSchema,\n AssetSearchFiltersSchema,\n AssetMetadataFiltersSchema,\n};\n\nexport type AssetFilterVisibility = z.infer<typeof AssetFilterVisibilitySchema>;\nexport type AssetFilterFileType = z.infer<typeof AssetFilterFileTypeSchema>;\nexport type AssetFilters = z.infer<typeof AssetFiltersSchema>;\nexport type AssetSearchFilters = z.infer<typeof AssetSearchFiltersSchema>;\nexport type AssetMetadataFilters = z.infer<typeof AssetMetadataFiltersSchema>;\n"]}
@@ -1,2 +1,2 @@
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
1
+ 'use strict';var chunkW4V643O5_cjs=require('./chunk-W4V643O5.cjs'),chunkYFEGRZXL_cjs=require('./chunk-YFEGRZXL.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:chunkYFEGRZXL_cjs.a})),K=zod.union([zod.uuid(),zod.object({asset_id:zod.uuid(),asset_type:zod.optional(chunkYFEGRZXL_cjs.a)})]),E=zod.record(zod.string(),K),q=chunkW4V643O5_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-M2ZH6MMH.cjs.map
2
+ //# sourceMappingURL=chunk-M2ZH6MMH.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/quest-submission.ts"],"names":["isPlainObject","value","normalizeFileExtension","safe","normalizeFileExtensions","rawValues","entry","KeyedAssetRefsSchema","record","string","object","uuid","AssetTypeSchema","KeyedAssetInputValueSchema","union","optional","KeyedAssetInputSchema","QuestSubmissionAssetDeclarationSchema","RouteInputAssetDeclarationSchema","boolean","readDeclarationExtensions","declaration","readDeclarationFilter","getRouteInputDeclarationsFromRoute","route","_a","detail","inputs","entries","declarationToSubmissionDeclaration","extensions","filter","materializeContributorSubmissionAssets","routeInputs","pinnedKeys","pinned","out","key","getPrimaryDeclarationKey","declarations","primary","d","getSubmissionAssetShape","item","_b","materialized","declarationToPickerFilters","assetType","filters","fileType","assetMatchesDeclaration","asset","_c","_d","_e","_f","metadata","ext","type","expected","getPrimaryAssetRef","refs","ref","toRouteInputAssets"],"mappings":"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","file":"chunk-UDTRH3OQ.cjs","sourcesContent":["import {\n object,\n string,\n record,\n optional,\n boolean,\n array,\n uuid,\n union,\n type z,\n} from \"zod\";\n\nimport { AssetTypeSchema } from \"../schema/common\";\nimport { RouteInputAssetDeclarationSchema } from \"../schema/services\";\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction normalizeFileExtension(value: string | null | undefined): string | null {\n if (!value) return null;\n const normalized = value.replace(/^\\.+/, \"\").trim().toLowerCase();\n const safe = normalized.replace(/[^a-z0-9]/g, \"\");\n if (!safe || /^\\d+$/.test(safe) || safe.length > 12) return null;\n return safe;\n}\n\nfunction normalizeFileExtensions(\n value: string | string[] | null | undefined\n): string[] {\n const rawValues = Array.isArray(value)\n ? value\n : typeof value === \"string\"\n ? value.split(/[\\s,]+/)\n : [];\n return Array.from(\n new Set(\n rawValues\n .map((entry) => normalizeFileExtension(entry))\n .filter((entry): entry is string => Boolean(entry))\n )\n );\n}\n\n/** Stored on entries and eval_static_inputs after server normalization. */\nexport const KeyedAssetRefsSchema = record(\n string(),\n object({\n asset_id: uuid(),\n asset_type: AssetTypeSchema,\n })\n);\n\n/** Accepted on POST /quests/:id/entries/create — server fills asset_type. */\nexport const KeyedAssetInputValueSchema = union([\n uuid(),\n object({\n asset_id: uuid(),\n asset_type: optional(AssetTypeSchema),\n }),\n]);\n\nexport const KeyedAssetInputSchema = record(\n string(),\n KeyedAssetInputValueSchema\n);\n\nexport const QuestSubmissionAssetDeclarationSchema =\n RouteInputAssetDeclarationSchema.extend({\n required: optional(boolean()).default(true),\n });\n\nexport type KeyedAssetRefs = z.infer<typeof KeyedAssetRefsSchema>;\nexport type KeyedAssetInput = z.infer<typeof KeyedAssetInputSchema>;\nexport type QuestSubmissionAssetDeclaration = z.infer<\n typeof QuestSubmissionAssetDeclarationSchema\n>;\n\nexport type AssetDeclarationPickerFilters = {\n assetType?: string;\n fileType?: string;\n extensions?: string[];\n hasConstraints: boolean;\n};\n\nexport type QuestSubmissionItemInput = {\n eval_route_id?: string | null;\n submission_assets?: Record<string, QuestSubmissionAssetDeclaration> | null;\n eval_static_inputs?: KeyedAssetRefs | null;\n expected_asset_type?: string | null;\n};\n\nexport type RouteInputDeclarationLike = {\n asset_type?: string | null;\n primary?: boolean;\n input_filter?: string | null;\n filter?: string | null;\n file_extensions?: string[] | null;\n input_file_extensions?: string[] | null;\n};\n\nexport type RouteForSubmissionShape = {\n route?: {\n input_assets?: Record<string, RouteInputDeclarationLike> | null;\n input_type?: string | null;\n input_filter?: string | null;\n input_file_extensions?: string[] | null;\n } | null;\n} | null;\n\nfunction readDeclarationExtensions(\n declaration: RouteInputDeclarationLike\n): string[] {\n return normalizeFileExtensions([\n ...(Array.isArray(declaration.file_extensions)\n ? declaration.file_extensions\n : []),\n ...(Array.isArray(declaration.input_file_extensions)\n ? declaration.input_file_extensions\n : []),\n ].join(\",\"));\n}\n\nfunction readDeclarationFilter(\n declaration: RouteInputDeclarationLike\n): string | undefined {\n return declaration.input_filter || declaration.filter || undefined;\n}\n\n/** Route keyed inputs as a flat map (includes legacy input_type fallback). */\nexport function getRouteInputDeclarationsFromRoute(\n route: RouteForSubmissionShape\n): Record<string, RouteInputDeclarationLike> {\n const detail = route?.route;\n if (!detail) return {};\n\n const inputs = detail.input_assets;\n if (isPlainObject(inputs)) {\n const entries = Object.entries(inputs).filter(([, value]) =>\n isPlainObject(value)\n ) as [string, RouteInputDeclarationLike][];\n if (entries.length > 0) {\n return Object.fromEntries(entries);\n }\n }\n\n if (detail.input_type) {\n return {\n [detail.input_type]: {\n asset_type: detail.input_type,\n primary: true,\n input_filter: detail.input_filter,\n input_file_extensions: detail.input_file_extensions ?? null,\n },\n };\n }\n\n return {};\n}\n\nexport function declarationToSubmissionDeclaration(\n declaration: RouteInputDeclarationLike\n): QuestSubmissionAssetDeclaration {\n const extensions = readDeclarationExtensions(declaration);\n const filter = readDeclarationFilter(declaration);\n return {\n asset_type: declaration.asset_type as QuestSubmissionAssetDeclaration[\"asset_type\"],\n primary: declaration.primary,\n input_filter: (filter ?? null) as QuestSubmissionAssetDeclaration[\"input_filter\"],\n file_extensions: extensions.length > 0 ? extensions : null,\n required: true,\n };\n}\n\n/** Materialize contributor declarations from route inputs minus pinned keys. */\nexport function materializeContributorSubmissionAssets(\n routeInputs: Record<string, RouteInputDeclarationLike>,\n pinnedKeys: string[]\n): Record<string, QuestSubmissionAssetDeclaration> {\n const pinned = new Set(pinnedKeys);\n const out: Record<string, QuestSubmissionAssetDeclaration> = {};\n for (const [key, declaration] of Object.entries(routeInputs)) {\n if (pinned.has(key)) continue;\n out[key] = declarationToSubmissionDeclaration(declaration);\n }\n return out;\n}\n\nexport function getPrimaryDeclarationKey(\n declarations: Record<string, QuestSubmissionAssetDeclaration>\n): string | null {\n const entries = Object.entries(declarations);\n if (!entries.length) return null;\n const primary = entries.find(([, d]) => d.primary === true);\n if (primary) return primary[0];\n if (entries.length === 1) return entries[0][0];\n return entries[0][0];\n}\n\nexport function getSubmissionAssetShape(\n item: QuestSubmissionItemInput,\n route?: RouteForSubmissionShape | null\n): {\n contributorKeys: string[];\n declarations: Record<string, QuestSubmissionAssetDeclaration>;\n pinned: KeyedAssetRefs;\n} {\n const pinned: KeyedAssetRefs = item.eval_static_inputs ?? {};\n\n if (item.eval_route_id && route) {\n const routeInputs = getRouteInputDeclarationsFromRoute(route);\n const pinnedKeys = Object.keys(pinned);\n const materialized =\n item.submission_assets &&\n Object.keys(item.submission_assets).length > 0\n ? item.submission_assets\n : materializeContributorSubmissionAssets(routeInputs, pinnedKeys);\n const contributorKeys = Object.keys(materialized);\n return {\n contributorKeys,\n declarations: materialized,\n pinned,\n };\n }\n\n const declarations = item.submission_assets ?? {};\n return {\n contributorKeys: Object.keys(declarations),\n declarations,\n pinned,\n };\n}\n\nexport function declarationToPickerFilters(\n declaration: RouteInputDeclarationLike | QuestSubmissionAssetDeclaration | null | undefined\n): AssetDeclarationPickerFilters | null {\n if (!declaration) return null;\n const assetType = declaration.asset_type || undefined;\n if (!assetType) return null;\n\n const filters: AssetDeclarationPickerFilters = {\n assetType,\n hasConstraints: false,\n };\n\n if (assetType === \"file\") {\n const extensions = readDeclarationExtensions(declaration);\n if (extensions.length > 0) {\n filters.extensions = extensions;\n filters.hasConstraints = true;\n }\n const fileType = readDeclarationFilter(declaration);\n if (fileType) {\n filters.fileType = fileType;\n filters.hasConstraints = true;\n }\n }\n\n return filters;\n}\n\nexport function assetMatchesDeclaration(\n asset:\n | {\n assetType?: string | null;\n asset_type?: string | null;\n asset?: { metadata?: Record<string, unknown> } | null;\n }\n | null\n | undefined,\n declaration: RouteInputDeclarationLike | QuestSubmissionAssetDeclaration | null | undefined\n): boolean {\n if (!declaration || !asset) return true;\n const filters = declarationToPickerFilters(declaration);\n if (!filters) return true;\n\n const assetType = asset.assetType ?? asset.asset_type;\n if (filters.assetType && assetType !== filters.assetType) return false;\n\n if (filters.assetType === \"file\") {\n const metadata = asset.asset?.metadata ?? {};\n if (filters.extensions && filters.extensions.length > 0) {\n const ext = String(metadata.extension ?? \"\").toLowerCase();\n if (!ext || !filters.extensions.includes(ext)) return false;\n }\n if (filters.fileType) {\n const type = String(metadata.file_type ?? metadata.type ?? \"\")\n .toLowerCase()\n .split(\"/\")[0];\n const expected = filters.fileType.toLowerCase();\n if (type && expected && !type.includes(expected) && type !== expected) {\n return false;\n }\n }\n }\n\n return true;\n}\n\nexport function getPrimaryAssetRef(\n refs: KeyedAssetRefs | null | undefined,\n declarations?: Record<string, QuestSubmissionAssetDeclaration> | null\n): { key: string; asset_id: string; asset_type: string } | null {\n if (!refs || !Object.keys(refs).length) return null;\n const key =\n (declarations && getPrimaryDeclarationKey(declarations)) ||\n Object.keys(refs)[0];\n const ref = refs[key];\n if (!ref) return null;\n return { key, asset_id: ref.asset_id, asset_type: ref.asset_type };\n}\n\nexport function toRouteInputAssets(\n refs: KeyedAssetRefs | null | undefined\n): Record<string, { assetId: string; assetType: string }> {\n if (!refs) return {};\n return Object.fromEntries(\n Object.entries(refs).map(([key, ref]) => [\n key,\n { assetId: ref.asset_id, assetType: ref.asset_type },\n ])\n );\n}\n\n/** @deprecated Use declarationToPickerFilters */\nexport type EvalSubmissionFilters = AssetDeclarationPickerFilters;\n"]}
1
+ {"version":3,"sources":["../src/utils/quest-submission.ts"],"names":["isPlainObject","value","normalizeFileExtension","safe","normalizeFileExtensions","rawValues","entry","KeyedAssetRefsSchema","record","string","object","uuid","AssetTypeSchema","KeyedAssetInputValueSchema","union","optional","KeyedAssetInputSchema","QuestSubmissionAssetDeclarationSchema","RouteInputAssetDeclarationSchema","boolean","readDeclarationExtensions","declaration","readDeclarationFilter","getRouteInputDeclarationsFromRoute","route","_a","detail","inputs","entries","declarationToSubmissionDeclaration","extensions","filter","materializeContributorSubmissionAssets","routeInputs","pinnedKeys","pinned","out","key","getPrimaryDeclarationKey","declarations","primary","d","getSubmissionAssetShape","item","_b","materialized","declarationToPickerFilters","assetType","filters","fileType","assetMatchesDeclaration","asset","_c","_d","_e","_f","metadata","ext","type","expected","getPrimaryAssetRef","refs","ref","toRouteInputAssets"],"mappings":"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","file":"chunk-M2ZH6MMH.cjs","sourcesContent":["import {\n object,\n string,\n record,\n optional,\n boolean,\n array,\n uuid,\n union,\n type z,\n} from \"zod\";\n\nimport { AssetTypeSchema } from \"../schema/common\";\nimport { RouteInputAssetDeclarationSchema } from \"../schema/services\";\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction normalizeFileExtension(value: string | null | undefined): string | null {\n if (!value) return null;\n const normalized = value.replace(/^\\.+/, \"\").trim().toLowerCase();\n const safe = normalized.replace(/[^a-z0-9]/g, \"\");\n if (!safe || /^\\d+$/.test(safe) || safe.length > 12) return null;\n return safe;\n}\n\nfunction normalizeFileExtensions(\n value: string | string[] | null | undefined\n): string[] {\n const rawValues = Array.isArray(value)\n ? value\n : typeof value === \"string\"\n ? value.split(/[\\s,]+/)\n : [];\n return Array.from(\n new Set(\n rawValues\n .map((entry) => normalizeFileExtension(entry))\n .filter((entry): entry is string => Boolean(entry))\n )\n );\n}\n\n/** Stored on entries and eval_static_inputs after server normalization. */\nexport const KeyedAssetRefsSchema = record(\n string(),\n object({\n asset_id: uuid(),\n asset_type: AssetTypeSchema,\n })\n);\n\n/** Accepted on POST /quests/:id/entries/create — server fills asset_type. */\nexport const KeyedAssetInputValueSchema = union([\n uuid(),\n object({\n asset_id: uuid(),\n asset_type: optional(AssetTypeSchema),\n }),\n]);\n\nexport const KeyedAssetInputSchema = record(\n string(),\n KeyedAssetInputValueSchema\n);\n\nexport const QuestSubmissionAssetDeclarationSchema =\n RouteInputAssetDeclarationSchema.extend({\n required: optional(boolean()).default(true),\n });\n\nexport type KeyedAssetRefs = z.infer<typeof KeyedAssetRefsSchema>;\nexport type KeyedAssetInput = z.infer<typeof KeyedAssetInputSchema>;\nexport type QuestSubmissionAssetDeclaration = z.infer<\n typeof QuestSubmissionAssetDeclarationSchema\n>;\n\nexport type AssetDeclarationPickerFilters = {\n assetType?: string;\n fileType?: string;\n extensions?: string[];\n hasConstraints: boolean;\n};\n\nexport type QuestSubmissionItemInput = {\n eval_route_id?: string | null;\n submission_assets?: Record<string, QuestSubmissionAssetDeclaration> | null;\n eval_static_inputs?: KeyedAssetRefs | null;\n expected_asset_type?: string | null;\n};\n\nexport type RouteInputDeclarationLike = {\n asset_type?: string | null;\n primary?: boolean;\n input_filter?: string | null;\n filter?: string | null;\n file_extensions?: string[] | null;\n input_file_extensions?: string[] | null;\n};\n\nexport type RouteForSubmissionShape = {\n route?: {\n input_assets?: Record<string, RouteInputDeclarationLike> | null;\n input_type?: string | null;\n input_filter?: string | null;\n input_file_extensions?: string[] | null;\n } | null;\n} | null;\n\nfunction readDeclarationExtensions(\n declaration: RouteInputDeclarationLike\n): string[] {\n return normalizeFileExtensions([\n ...(Array.isArray(declaration.file_extensions)\n ? declaration.file_extensions\n : []),\n ...(Array.isArray(declaration.input_file_extensions)\n ? declaration.input_file_extensions\n : []),\n ].join(\",\"));\n}\n\nfunction readDeclarationFilter(\n declaration: RouteInputDeclarationLike\n): string | undefined {\n return declaration.input_filter || declaration.filter || undefined;\n}\n\n/** Route keyed inputs as a flat map (includes legacy input_type fallback). */\nexport function getRouteInputDeclarationsFromRoute(\n route: RouteForSubmissionShape\n): Record<string, RouteInputDeclarationLike> {\n const detail = route?.route;\n if (!detail) return {};\n\n const inputs = detail.input_assets;\n if (isPlainObject(inputs)) {\n const entries = Object.entries(inputs).filter(([, value]) =>\n isPlainObject(value)\n ) as [string, RouteInputDeclarationLike][];\n if (entries.length > 0) {\n return Object.fromEntries(entries);\n }\n }\n\n if (detail.input_type) {\n return {\n [detail.input_type]: {\n asset_type: detail.input_type,\n primary: true,\n input_filter: detail.input_filter,\n input_file_extensions: detail.input_file_extensions ?? null,\n },\n };\n }\n\n return {};\n}\n\nexport function declarationToSubmissionDeclaration(\n declaration: RouteInputDeclarationLike\n): QuestSubmissionAssetDeclaration {\n const extensions = readDeclarationExtensions(declaration);\n const filter = readDeclarationFilter(declaration);\n return {\n asset_type: declaration.asset_type as QuestSubmissionAssetDeclaration[\"asset_type\"],\n primary: declaration.primary,\n input_filter: (filter ?? null) as QuestSubmissionAssetDeclaration[\"input_filter\"],\n file_extensions: extensions.length > 0 ? extensions : null,\n required: true,\n };\n}\n\n/** Materialize contributor declarations from route inputs minus pinned keys. */\nexport function materializeContributorSubmissionAssets(\n routeInputs: Record<string, RouteInputDeclarationLike>,\n pinnedKeys: string[]\n): Record<string, QuestSubmissionAssetDeclaration> {\n const pinned = new Set(pinnedKeys);\n const out: Record<string, QuestSubmissionAssetDeclaration> = {};\n for (const [key, declaration] of Object.entries(routeInputs)) {\n if (pinned.has(key)) continue;\n out[key] = declarationToSubmissionDeclaration(declaration);\n }\n return out;\n}\n\nexport function getPrimaryDeclarationKey(\n declarations: Record<string, QuestSubmissionAssetDeclaration>\n): string | null {\n const entries = Object.entries(declarations);\n if (!entries.length) return null;\n const primary = entries.find(([, d]) => d.primary === true);\n if (primary) return primary[0];\n if (entries.length === 1) return entries[0][0];\n return entries[0][0];\n}\n\nexport function getSubmissionAssetShape(\n item: QuestSubmissionItemInput,\n route?: RouteForSubmissionShape | null\n): {\n contributorKeys: string[];\n declarations: Record<string, QuestSubmissionAssetDeclaration>;\n pinned: KeyedAssetRefs;\n} {\n const pinned: KeyedAssetRefs = item.eval_static_inputs ?? {};\n\n if (item.eval_route_id && route) {\n const routeInputs = getRouteInputDeclarationsFromRoute(route);\n const pinnedKeys = Object.keys(pinned);\n const materialized =\n item.submission_assets &&\n Object.keys(item.submission_assets).length > 0\n ? item.submission_assets\n : materializeContributorSubmissionAssets(routeInputs, pinnedKeys);\n const contributorKeys = Object.keys(materialized);\n return {\n contributorKeys,\n declarations: materialized,\n pinned,\n };\n }\n\n const declarations = item.submission_assets ?? {};\n return {\n contributorKeys: Object.keys(declarations),\n declarations,\n pinned,\n };\n}\n\nexport function declarationToPickerFilters(\n declaration: RouteInputDeclarationLike | QuestSubmissionAssetDeclaration | null | undefined\n): AssetDeclarationPickerFilters | null {\n if (!declaration) return null;\n const assetType = declaration.asset_type || undefined;\n if (!assetType) return null;\n\n const filters: AssetDeclarationPickerFilters = {\n assetType,\n hasConstraints: false,\n };\n\n if (assetType === \"file\") {\n const extensions = readDeclarationExtensions(declaration);\n if (extensions.length > 0) {\n filters.extensions = extensions;\n filters.hasConstraints = true;\n }\n const fileType = readDeclarationFilter(declaration);\n if (fileType) {\n filters.fileType = fileType;\n filters.hasConstraints = true;\n }\n }\n\n return filters;\n}\n\nexport function assetMatchesDeclaration(\n asset:\n | {\n assetType?: string | null;\n asset_type?: string | null;\n asset?: { metadata?: Record<string, unknown> } | null;\n }\n | null\n | undefined,\n declaration: RouteInputDeclarationLike | QuestSubmissionAssetDeclaration | null | undefined\n): boolean {\n if (!declaration || !asset) return true;\n const filters = declarationToPickerFilters(declaration);\n if (!filters) return true;\n\n const assetType = asset.assetType ?? asset.asset_type;\n if (filters.assetType && assetType !== filters.assetType) return false;\n\n if (filters.assetType === \"file\") {\n const metadata = asset.asset?.metadata ?? {};\n if (filters.extensions && filters.extensions.length > 0) {\n const ext = String(metadata.extension ?? \"\").toLowerCase();\n if (!ext || !filters.extensions.includes(ext)) return false;\n }\n if (filters.fileType) {\n const type = String(metadata.file_type ?? metadata.type ?? \"\")\n .toLowerCase()\n .split(\"/\")[0];\n const expected = filters.fileType.toLowerCase();\n if (type && expected && !type.includes(expected) && type !== expected) {\n return false;\n }\n }\n }\n\n return true;\n}\n\nexport function getPrimaryAssetRef(\n refs: KeyedAssetRefs | null | undefined,\n declarations?: Record<string, QuestSubmissionAssetDeclaration> | null\n): { key: string; asset_id: string; asset_type: string } | null {\n if (!refs || !Object.keys(refs).length) return null;\n const key =\n (declarations && getPrimaryDeclarationKey(declarations)) ||\n Object.keys(refs)[0];\n const ref = refs[key];\n if (!ref) return null;\n return { key, asset_id: ref.asset_id, asset_type: ref.asset_type };\n}\n\nexport function toRouteInputAssets(\n refs: KeyedAssetRefs | null | undefined\n): Record<string, { assetId: string; assetType: string }> {\n if (!refs) return {};\n return Object.fromEntries(\n Object.entries(refs).map(([key, ref]) => [\n key,\n { assetId: ref.asset_id, assetType: ref.asset_type },\n ])\n );\n}\n\n/** @deprecated Use declarationToPickerFilters */\nexport type EvalSubmissionFilters = AssetDeclarationPickerFilters;\n"]}
@@ -1,2 +1,2 @@
1
- import {c as c$1,b as b$2,a}from'./chunk-42WKTHH5.js';import {b as b$1}from'./chunk-G6GCUGMM.js';import {b,c}from'./chunk-3BZRQYRC.js';import {a as a$1}from'./chunk-42ADEGDM.js';import {uuidv7}from'uuidv7';import {object,string,array,optional,uuid,nullable,number,record,any}from'zod';var s=object({id:uuid(),org_id:uuid(),organization:c$1,name:string(),description:optional(nullable(object({text:string(),json:record(string(),any())}))),default_role:c,visibility:b,actor_type_policy:optional(nullable(a)),source_policy:optional(nullable(b$2)),userMembership:optional(nullable(object({user_id:uuid(),role:c}))),memberCount:optional(nullable(number())),members:array(object({user_id:uuid(),role:c,added_at:string(),user:optional(nullable(b$1.partial()))})),created_at:string()}),P=s.extend({id:string().default(()=>uuidv7()),default_role:c.default("write").refine(d=>d==="read"||d==="write"),visibility:b.default("public").refine(d=>d==="public"||d==="organization"),created_at:string().default(()=>new Date().toISOString())}).omit({organization:true,userMembership:true,memberCount:true,members:true,created_at:true}),T=s.extend({userMembership:optional(nullable(object({user_id:uuid(),role:c}))),memberCount:number(),members:array(object({user_id:uuid(),role:c,added_at:string(),user:optional(nullable(b$1.partial()))})),organization:optional(nullable(c$1.partial())),assets:optional(nullable(array(record(string(),any())))),users:optional(nullable(array(b$1.partial()))),actions:optional(nullable(array(a$1)))}),U=array(T.extend({label:string(),value:string()})),j=s.partial().omit({org_id:true,organization:true,created_at:true}).extend({id:uuid()});export{s as a,P as b,T as c,U as d,j as e};//# sourceMappingURL=chunk-YTIUJ72Q.js.map
2
- //# sourceMappingURL=chunk-YTIUJ72Q.js.map
1
+ import {c as c$1,b as b$2,a}from'./chunk-EIB2YGN3.js';import {b as b$1}from'./chunk-G6GCUGMM.js';import {b,c}from'./chunk-33C7IDRP.js';import {a as a$1}from'./chunk-42ADEGDM.js';import {uuidv7}from'uuidv7';import {object,string,array,optional,uuid,nullable,number,record,any}from'zod';var s=object({id:uuid(),org_id:uuid(),organization:c$1,name:string(),description:optional(nullable(object({text:string(),json:record(string(),any())}))),default_role:c,visibility:b,actor_type_policy:optional(nullable(a)),source_policy:optional(nullable(b$2)),userMembership:optional(nullable(object({user_id:uuid(),role:c}))),memberCount:optional(nullable(number())),members:array(object({user_id:uuid(),role:c,added_at:string(),user:optional(nullable(b$1.partial()))})),created_at:string()}),P=s.extend({id:string().default(()=>uuidv7()),default_role:c.default("write").refine(d=>d==="read"||d==="write"),visibility:b.default("public").refine(d=>d==="public"||d==="organization"),created_at:string().default(()=>new Date().toISOString())}).omit({organization:true,userMembership:true,memberCount:true,members:true,created_at:true}),T=s.extend({userMembership:optional(nullable(object({user_id:uuid(),role:c}))),memberCount:number(),members:array(object({user_id:uuid(),role:c,added_at:string(),user:optional(nullable(b$1.partial()))})),organization:optional(nullable(c$1.partial())),assets:optional(nullable(array(record(string(),any())))),users:optional(nullable(array(b$1.partial()))),actions:optional(nullable(array(a$1)))}),U=array(T.extend({label:string(),value:string()})),j=s.partial().omit({org_id:true,organization:true,created_at:true}).extend({id:uuid()});export{s as a,P as b,T as c,U as d,j as e};//# sourceMappingURL=chunk-M5ZLLARC.js.map
2
+ //# sourceMappingURL=chunk-M5ZLLARC.js.map
@@ -1 +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-YTIUJ72Q.js","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"]}
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-M5ZLLARC.js","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"]}
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkT4BUMCXS_cjs=require('./chunk-T4BUMCXS.cjs'),chunk66AAHP6X_cjs=require('./chunk-66AAHP6X.cjs'),chunk7YG2YDXN_cjs=require('./chunk-7YG2YDXN.cjs'),chunkL6SVUDFH_cjs=require('./chunk-L6SVUDFH.cjs'),chunkJRBBNFFI_cjs=require('./chunk-JRBBNFFI.cjs'),uuidv7=require('uuidv7'),zod=require('zod');var u=chunk7YG2YDXN_cjs.f.extend({asset_type:zod.literal("comment").default("comment"),preview:zod.optional(zod.nullable(zod.object({type:zod.string().refine(o=>o==="doc"),content:zod.array(zod.record(zod.string(),zod.any()))}).default({type:"doc",content:[]})))}),w=u.partial().omit({id:true,user_id:true}).extend({asset_type:zod.literal("comment").default("comment"),id:zod.string().default(()=>uuidv7.uuidv7()),name:zod.string().default(""),attribution:zod.optional(zod.nullable(chunk7YG2YDXN_cjs.e)).transform(o=>chunk7YG2YDXN_cjs.e.parse(o!=null?o:chunk7YG2YDXN_cjs.g)),created_at:zod.string().default(()=>new Date().toISOString()),last_updated:zod.string().default(()=>new Date().toISOString())}).transform(o=>chunk7YG2YDXN_cjs.a(o)),A=zod.array(zod.object({count:zod.number()})),D=u.extend({content:zod.optional(zod.nullable(chunk66AAHP6X_cjs.b)),assets:zod.optional(zod.nullable(zod.array(chunk7YG2YDXN_cjs.f.partial()))),users:zod.optional(zod.nullable(zod.array(chunkL6SVUDFH_cjs.b.partial()))),actions:zod.optional(zod.nullable(zod.array(chunkJRBBNFFI_cjs.a))),reactions:zod.optional(zod.nullable(zod.array(chunkT4BUMCXS_cjs.a))),replies:zod.optional(zod.nullable(A)),repliesCount:zod.optional(zod.number())});exports.a=u;exports.b=w;exports.c=A;exports.d=D;//# sourceMappingURL=chunk-3RFYEL3A.cjs.map
2
- //# sourceMappingURL=chunk-3RFYEL3A.cjs.map
1
+ 'use strict';var chunkT4BUMCXS_cjs=require('./chunk-T4BUMCXS.cjs'),chunk23FTPTDP_cjs=require('./chunk-23FTPTDP.cjs'),chunk7R5EIIIR_cjs=require('./chunk-7R5EIIIR.cjs'),chunkL6SVUDFH_cjs=require('./chunk-L6SVUDFH.cjs'),chunkJRBBNFFI_cjs=require('./chunk-JRBBNFFI.cjs'),uuidv7=require('uuidv7'),zod=require('zod');var u=chunk7R5EIIIR_cjs.f.extend({asset_type:zod.literal("comment").default("comment"),preview:zod.optional(zod.nullable(zod.object({type:zod.string().refine(o=>o==="doc"),content:zod.array(zod.record(zod.string(),zod.any()))}).default({type:"doc",content:[]})))}),w=u.partial().omit({id:true,user_id:true}).extend({asset_type:zod.literal("comment").default("comment"),id:zod.string().default(()=>uuidv7.uuidv7()),name:zod.string().default(""),attribution:zod.optional(zod.nullable(chunk7R5EIIIR_cjs.e)).transform(o=>chunk7R5EIIIR_cjs.e.parse(o!=null?o:chunk7R5EIIIR_cjs.g)),created_at:zod.string().default(()=>new Date().toISOString()),last_updated:zod.string().default(()=>new Date().toISOString())}).transform(o=>chunk7R5EIIIR_cjs.a(o)),A=zod.array(zod.object({count:zod.number()})),D=u.extend({content:zod.optional(zod.nullable(chunk23FTPTDP_cjs.b)),assets:zod.optional(zod.nullable(zod.array(chunk7R5EIIIR_cjs.f.partial()))),users:zod.optional(zod.nullable(zod.array(chunkL6SVUDFH_cjs.b.partial()))),actions:zod.optional(zod.nullable(zod.array(chunkJRBBNFFI_cjs.a))),reactions:zod.optional(zod.nullable(zod.array(chunkT4BUMCXS_cjs.a))),replies:zod.optional(zod.nullable(A)),repliesCount:zod.optional(zod.number())});exports.a=u;exports.b=w;exports.c=A;exports.d=D;//# sourceMappingURL=chunk-N3HC2ASR.cjs.map
2
+ //# sourceMappingURL=chunk-N3HC2ASR.cjs.map