@ourofoundation/ouro-js 3.6.0 → 3.7.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 (98) hide show
  1. package/dist/{chunk-6GPIZJ4T.cjs → chunk-57RRLX7P.cjs} +2 -2
  2. package/dist/{chunk-6GPIZJ4T.cjs.map → chunk-57RRLX7P.cjs.map} +1 -1
  3. package/dist/chunk-5EQ5LO7V.cjs +2 -0
  4. package/dist/chunk-5EQ5LO7V.cjs.map +1 -0
  5. package/dist/chunk-7EKD5NQB.js +2 -0
  6. package/dist/{chunk-IWOXGKK4.js.map → chunk-7EKD5NQB.js.map} +1 -1
  7. package/dist/{chunk-YKA3RUTN.cjs → chunk-AI2FA44G.cjs} +2 -2
  8. package/dist/{chunk-YKA3RUTN.cjs.map → chunk-AI2FA44G.cjs.map} +1 -1
  9. package/dist/chunk-DY5QSBE4.js +2 -0
  10. package/dist/{chunk-NGN2PI7X.js.map → chunk-DY5QSBE4.js.map} +1 -1
  11. package/dist/{chunk-DBEBXFQI.cjs → chunk-HW6FGPTA.cjs} +2 -2
  12. package/dist/{chunk-DBEBXFQI.cjs.map → chunk-HW6FGPTA.cjs.map} +1 -1
  13. package/dist/{chunk-G3VMEPTP.js → chunk-ITF5WQQB.js} +2 -2
  14. package/dist/{chunk-G3VMEPTP.js.map → chunk-ITF5WQQB.js.map} +1 -1
  15. package/dist/{chunk-IBRRR3T2.cjs → chunk-IVO3RQUN.cjs} +2 -2
  16. package/dist/{chunk-IBRRR3T2.cjs.map → chunk-IVO3RQUN.cjs.map} +1 -1
  17. package/dist/chunk-JUELSRCY.js +2 -0
  18. package/dist/{chunk-4UE3XIYR.js.map → chunk-JUELSRCY.js.map} +1 -1
  19. package/dist/chunk-KHERHT26.cjs +2 -0
  20. package/dist/chunk-KHERHT26.cjs.map +1 -0
  21. package/dist/{chunk-F5CWCYOP.cjs → chunk-NTWSEN2H.cjs} +2 -2
  22. package/dist/{chunk-F5CWCYOP.cjs.map → chunk-NTWSEN2H.cjs.map} +1 -1
  23. package/dist/chunk-OU4JKY4M.js +2 -0
  24. package/dist/chunk-OU4JKY4M.js.map +1 -0
  25. package/dist/chunk-QBL6KIST.js +2 -0
  26. package/dist/{chunk-WNYOQITO.js.map → chunk-QBL6KIST.js.map} +1 -1
  27. package/dist/{chunk-6ZJQTECB.cjs → chunk-QNERXSMJ.cjs} +2 -2
  28. package/dist/{chunk-6ZJQTECB.cjs.map → chunk-QNERXSMJ.cjs.map} +1 -1
  29. package/dist/chunk-QSOXS57A.cjs +2 -0
  30. package/dist/chunk-QSOXS57A.cjs.map +1 -0
  31. package/dist/chunk-RD6EPK44.js +2 -0
  32. package/dist/{chunk-KCVE35IO.js.map → chunk-RD6EPK44.js.map} +1 -1
  33. package/dist/{chunk-FRMPLGE4.cjs → chunk-SY5IKIT6.cjs} +2 -2
  34. package/dist/{chunk-FRMPLGE4.cjs.map → chunk-SY5IKIT6.cjs.map} +1 -1
  35. package/dist/chunk-TGOXRPF5.js +2 -0
  36. package/dist/chunk-TGOXRPF5.js.map +1 -0
  37. package/dist/{chunk-TYOQ32UV.js → chunk-TMNFNVTZ.js} +2 -2
  38. package/dist/{chunk-TYOQ32UV.js.map → chunk-TMNFNVTZ.js.map} +1 -1
  39. package/dist/chunk-ZC2VDKSH.js +2 -0
  40. package/dist/chunk-ZC2VDKSH.js.map +1 -0
  41. package/dist/index.cjs +1 -1
  42. package/dist/index.d.cts +2 -1
  43. package/dist/index.d.ts +2 -1
  44. package/dist/index.js +1 -1
  45. package/dist/schema/assets.cjs +1 -1
  46. package/dist/schema/assets.d.cts +175 -45
  47. package/dist/schema/assets.d.ts +175 -45
  48. package/dist/schema/assets.js +1 -1
  49. package/dist/schema/comments.cjs +1 -1
  50. package/dist/schema/comments.d.cts +95 -27
  51. package/dist/schema/comments.d.ts +95 -27
  52. package/dist/schema/comments.js +1 -1
  53. package/dist/schema/conversations.cjs +1 -1
  54. package/dist/schema/conversations.d.cts +163 -47
  55. package/dist/schema/conversations.d.ts +163 -47
  56. package/dist/schema/conversations.js +1 -1
  57. package/dist/schema/datasets.cjs +1 -1
  58. package/dist/schema/datasets.d.cts +230 -66
  59. package/dist/schema/datasets.d.ts +230 -66
  60. package/dist/schema/datasets.js +1 -1
  61. package/dist/schema/files.cjs +1 -1
  62. package/dist/schema/files.d.cts +230 -66
  63. package/dist/schema/files.d.ts +230 -66
  64. package/dist/schema/files.js +1 -1
  65. package/dist/schema/posts.cjs +1 -1
  66. package/dist/schema/posts.d.cts +250 -74
  67. package/dist/schema/posts.d.ts +250 -74
  68. package/dist/schema/posts.js +1 -1
  69. package/dist/schema/quests.cjs +1 -1
  70. package/dist/schema/quests.d.cts +163 -47
  71. package/dist/schema/quests.d.ts +163 -47
  72. package/dist/schema/quests.js +1 -1
  73. package/dist/schema/services.cjs +1 -1
  74. package/dist/schema/services.d.cts +247 -71
  75. package/dist/schema/services.d.ts +247 -71
  76. package/dist/schema/services.js +1 -1
  77. package/dist/utils/files.cjs +2 -0
  78. package/dist/utils/files.cjs.map +1 -0
  79. package/dist/utils/files.d.cts +18 -0
  80. package/dist/utils/files.d.ts +18 -0
  81. package/dist/utils/files.js +2 -0
  82. package/dist/utils/files.js.map +1 -0
  83. package/dist/utils/quest-submission.cjs +1 -1
  84. package/dist/utils/quest-submission.js +1 -1
  85. package/package.json +2 -2
  86. package/dist/chunk-4UE3XIYR.js +0 -2
  87. package/dist/chunk-IWOXGKK4.js +0 -2
  88. package/dist/chunk-KCVE35IO.js +0 -2
  89. package/dist/chunk-MLTO7TMM.js +0 -2
  90. package/dist/chunk-MLTO7TMM.js.map +0 -1
  91. package/dist/chunk-NGN2PI7X.js +0 -2
  92. package/dist/chunk-ROMY5WNQ.cjs +0 -2
  93. package/dist/chunk-ROMY5WNQ.cjs.map +0 -1
  94. package/dist/chunk-SR5UZ4NP.js +0 -2
  95. package/dist/chunk-SR5UZ4NP.js.map +0 -1
  96. package/dist/chunk-V73EW77Y.cjs +0 -2
  97. package/dist/chunk-V73EW77Y.cjs.map +0 -1
  98. package/dist/chunk-WNYOQITO.js +0 -2
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkROMY5WNQ_cjs=require('./chunk-ROMY5WNQ.cjs'),zod=require('zod');var f=zod.object({id:zod.uuid(),path:zod.string(),bucket:zod.enum(["public-files","files"]),name:zod.string(),type:zod.string(),extension:zod.string(),size:zod.number(),width:zod.optional(zod.number()),height:zod.optional(zod.number())}),h=zod.object({type:zod.string()}),p=f.extend(chunkROMY5WNQ_cjs.b.partial().shape),S=h.extend(chunkROMY5WNQ_cjs.b.partial().shape),F=chunkROMY5WNQ_cjs.c.extend({asset_type:zod.literal("file").default("file"),metadata:p}),g=zod.discriminatedUnion("state",[chunkROMY5WNQ_cjs.d.extend({asset_type:zod.literal("file").default("file"),state:zod.literal("success").default("success"),metadata:p}),chunkROMY5WNQ_cjs.d.extend({asset_type:zod.literal("file").default("file"),state:zod.literal("in-progress").default("in-progress"),metadata:S})]).transform(a=>chunkROMY5WNQ_cjs.a(a)),z=F.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,organization:true,user:true,team:true,slug:true,is_pinned_in_team:true}).extend({last_updated:zod.string().default(()=>new Date().toISOString())}).transform(a=>chunkROMY5WNQ_cjs.a(a));exports.a=F;exports.b=g;exports.c=z;//# sourceMappingURL=chunk-6GPIZJ4T.cjs.map
2
- //# sourceMappingURL=chunk-6GPIZJ4T.cjs.map
1
+ 'use strict';var chunk5EQ5LO7V_cjs=require('./chunk-5EQ5LO7V.cjs'),zod=require('zod');var f=zod.object({id:zod.uuid(),path:zod.string(),bucket:zod.enum(["public-files","files"]),name:zod.string(),type:zod.string(),extension:zod.string(),size:zod.number(),width:zod.optional(zod.number()),height:zod.optional(zod.number())}),h=zod.object({type:zod.string()}),p=f.extend(chunk5EQ5LO7V_cjs.b.partial().shape),S=h.extend(chunk5EQ5LO7V_cjs.b.partial().shape),F=chunk5EQ5LO7V_cjs.f.extend({asset_type:zod.literal("file").default("file"),metadata:p}),g=zod.discriminatedUnion("state",[chunk5EQ5LO7V_cjs.g.extend({asset_type:zod.literal("file").default("file"),state:zod.literal("success").default("success"),metadata:p}),chunk5EQ5LO7V_cjs.g.extend({asset_type:zod.literal("file").default("file"),state:zod.literal("in-progress").default("in-progress"),metadata:S})]).transform(a=>chunk5EQ5LO7V_cjs.a(a)),z=F.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,organization:true,user:true,team:true,slug:true,is_pinned_in_team:true}).extend({last_updated:zod.string().default(()=>new Date().toISOString())}).transform(a=>chunk5EQ5LO7V_cjs.a(a));exports.a=F;exports.b=g;exports.c=z;//# sourceMappingURL=chunk-57RRLX7P.cjs.map
2
+ //# sourceMappingURL=chunk-57RRLX7P.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schema/files.ts"],"names":["BaseFileMetadataSchema","object","uuid","string","zodEnum","number","optional","BaseStubFileMetadataSchema","FileMetadataSchema","AssetMetadataSchema","StubFileMetadataSchema","FileSchema","AssetSchema","literal","CreateFileSchema","discriminatedUnion","CreateAssetSchema","value","normalizeAssetConfigForParsing","updateFileSchema"],"mappings":"sFAoBMA,IAAAA,CAAAA,CAAyBC,UAAO,CAAA,CACpC,EAAIC,CAAAA,QAAAA,GACJ,IAAMC,CAAAA,UAAAA,GACN,MAAQC,CAAAA,QAAAA,CAAQ,CAAC,cAAgB,CAAA,OAAO,CAAC,CACzC,CAAA,IAAA,CAAMD,YACN,CAAA,IAAA,CAAMA,YACN,CAAA,SAAA,CAAWA,YACX,CAAA,IAAA,CAAME,UAAO,EAAA,CAEb,KAAOC,CAAAA,YAAAA,CAASD,YAAQ,CAAA,CACxB,OAAQC,YAASD,CAAAA,UAAAA,EAAQ,CAC3B,CAAC,EAEKE,CAA6BN,CAAAA,UAAAA,CAAO,CACxC,IAAME,CAAAA,UAAAA,EACR,CAAC,CAAA,CAEKK,EAAqBR,CAAuB,CAAA,MAAA,CAChDS,mBAAoB,CAAA,OAAA,EAAU,CAAA,KAChC,EAEMC,CAAyBH,CAAAA,CAAAA,CAA2B,OACxDE,mBAAoB,CAAA,OAAA,GAAU,KAChC,CAAA,CAEME,EAAaC,mBAAY,CAAA,MAAA,CAAO,CACpC,UAAYC,CAAAA,WAAAA,CAAQ,MAAM,CAAE,CAAA,OAAA,CAAQ,MAAM,CAC1C,CAAA,QAAA,CAAUL,CACZ,CAAC,CAEKM,CAAAA,CAAAA,CAAmBC,uBAAmB,OAAS,CAAA,CAEnDC,oBAAkB,MAAO,CAAA,CACvB,WAAYH,WAAQ,CAAA,MAAM,EAAE,OAAQ,CAAA,MAAM,EAC1C,KAAOA,CAAAA,WAAAA,CAAQ,SAAS,CAAE,CAAA,OAAA,CAAQ,SAAS,CAC3C,CAAA,QAAA,CAAUL,CACZ,CAAC,CAEDQ,CAAAA,mBAAAA,CAAkB,OAAO,CACvB,UAAA,CAAYH,YAAQ,MAAM,CAAA,CAAE,QAAQ,MAAM,CAAA,CAC1C,MAAOA,WAAQ,CAAA,aAAa,EAAE,OAAQ,CAAA,aAAa,EACnD,QAAUH,CAAAA,CACZ,CAAC,CACH,CAAC,CAAE,CAAA,SAAA,CAAWO,CAAUC,EAAAA,mBAAAA,CAA+BD,CAAK,CAAC,CAAA,CAEvDE,EAAmBR,CAAW,CAAA,OAAA,GACjC,IAAK,CAAA,CACJ,QAAS,IACT,CAAA,EAAA,CAAI,KACJ,UAAY,CAAA,IAAA,CACZ,aAAc,IACd,CAAA,YAAA,CAAc,KACd,IAAM,CAAA,IAAA,CACN,IAAM,CAAA,IAAA,CACN,IAAM,CAAA,IAAA,CACN,kBAAmB,IACrB,CAAC,EACA,MAAO,CAAA,CACN,aAAcR,UAAO,EAAA,CAAE,QAAQ,IAAM,IAAI,MAAO,CAAA,WAAA,EAAa,CAC/D,CAAC,EACA,SAAWc,CAAAA,CAAAA,EAAUC,mBAA+BD,CAAAA,CAAK,CAAC","file":"chunk-6GPIZJ4T.cjs","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} from \"zod\";\n\nimport {\n AssetSchema,\n CreateAssetSchema,\n AssetMetadataSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\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});\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 { FileSchema, CreateFileSchema, updateFileSchema };\nexport type File = z.infer<typeof FileSchema>;\nexport type CreateFile = z.infer<typeof CreateFileSchema>;\nexport type UpdateFile = z.infer<typeof updateFileSchema>;\n"]}
1
+ {"version":3,"sources":["../src/schema/files.ts"],"names":["BaseFileMetadataSchema","object","uuid","string","zodEnum","number","optional","BaseStubFileMetadataSchema","FileMetadataSchema","AssetMetadataSchema","StubFileMetadataSchema","FileSchema","AssetSchema","literal","CreateFileSchema","discriminatedUnion","CreateAssetSchema","value","normalizeAssetConfigForParsing","updateFileSchema"],"mappings":"sFAoBMA,IAAAA,CAAAA,CAAyBC,UAAO,CAAA,CACpC,EAAIC,CAAAA,QAAAA,GACJ,IAAMC,CAAAA,UAAAA,GACN,MAAQC,CAAAA,QAAAA,CAAQ,CAAC,cAAgB,CAAA,OAAO,CAAC,CACzC,CAAA,IAAA,CAAMD,YACN,CAAA,IAAA,CAAMA,YACN,CAAA,SAAA,CAAWA,YACX,CAAA,IAAA,CAAME,UAAO,EAAA,CAEb,KAAOC,CAAAA,YAAAA,CAASD,YAAQ,CAAA,CACxB,OAAQC,YAASD,CAAAA,UAAAA,EAAQ,CAC3B,CAAC,EAEKE,CAA6BN,CAAAA,UAAAA,CAAO,CACxC,IAAME,CAAAA,UAAAA,EACR,CAAC,CAAA,CAEKK,EAAqBR,CAAuB,CAAA,MAAA,CAChDS,mBAAoB,CAAA,OAAA,EAAU,CAAA,KAChC,EAEMC,CAAyBH,CAAAA,CAAAA,CAA2B,OACxDE,mBAAoB,CAAA,OAAA,GAAU,KAChC,CAAA,CAEME,EAAaC,mBAAY,CAAA,MAAA,CAAO,CACpC,UAAYC,CAAAA,WAAAA,CAAQ,MAAM,CAAE,CAAA,OAAA,CAAQ,MAAM,CAC1C,CAAA,QAAA,CAAUL,CACZ,CAAC,CAEKM,CAAAA,CAAAA,CAAmBC,uBAAmB,OAAS,CAAA,CAEnDC,oBAAkB,MAAO,CAAA,CACvB,WAAYH,WAAQ,CAAA,MAAM,EAAE,OAAQ,CAAA,MAAM,EAC1C,KAAOA,CAAAA,WAAAA,CAAQ,SAAS,CAAE,CAAA,OAAA,CAAQ,SAAS,CAC3C,CAAA,QAAA,CAAUL,CACZ,CAAC,CAEDQ,CAAAA,mBAAAA,CAAkB,OAAO,CACvB,UAAA,CAAYH,YAAQ,MAAM,CAAA,CAAE,QAAQ,MAAM,CAAA,CAC1C,MAAOA,WAAQ,CAAA,aAAa,EAAE,OAAQ,CAAA,aAAa,EACnD,QAAUH,CAAAA,CACZ,CAAC,CACH,CAAC,CAAE,CAAA,SAAA,CAAWO,CAAUC,EAAAA,mBAAAA,CAA+BD,CAAK,CAAC,CAAA,CAEvDE,EAAmBR,CAAW,CAAA,OAAA,GACjC,IAAK,CAAA,CACJ,QAAS,IACT,CAAA,EAAA,CAAI,KACJ,UAAY,CAAA,IAAA,CACZ,aAAc,IACd,CAAA,YAAA,CAAc,KACd,IAAM,CAAA,IAAA,CACN,IAAM,CAAA,IAAA,CACN,IAAM,CAAA,IAAA,CACN,kBAAmB,IACrB,CAAC,EACA,MAAO,CAAA,CACN,aAAcR,UAAO,EAAA,CAAE,QAAQ,IAAM,IAAI,MAAO,CAAA,WAAA,EAAa,CAC/D,CAAC,EACA,SAAWc,CAAAA,CAAAA,EAAUC,mBAA+BD,CAAAA,CAAK,CAAC","file":"chunk-57RRLX7P.cjs","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} from \"zod\";\n\nimport {\n AssetSchema,\n CreateAssetSchema,\n AssetMetadataSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\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});\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 { FileSchema, CreateFileSchema, updateFileSchema };\nexport type File = z.infer<typeof FileSchema>;\nexport type CreateFile = z.infer<typeof CreateFileSchema>;\nexport type UpdateFile = z.infer<typeof updateFileSchema>;\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkUY43EQTO_cjs=require('./chunk-UY43EQTO.cjs'),chunkVOY623ZD_cjs=require('./chunk-VOY623ZD.cjs'),chunkGY6SLMMJ_cjs=require('./chunk-GY6SLMMJ.cjs'),chunk43KB23BA_cjs=require('./chunk-43KB23BA.cjs'),chunk7HF5VHUN_cjs=require('./chunk-7HF5VHUN.cjs'),zod=require('zod'),uuidv7=require('uuidv7');var T=r=>r.org_id===chunk7HF5VHUN_cjs.b&&r.visibility==="organization"?{...r,visibility:"public"}:r,I=zod.object({source:zod.optional(zod.nullable(zod.string())),reply_to_comment_id:zod.optional(zod.nullable(zod.string()))}),C=zod.enum(["IsSupplementTo","IsDerivedFrom","References","IsVariantFormOf","IsIdenticalTo"]),O=zod.object({doi:zod.optional(zod.nullable(zod.string())),title:zod.optional(zod.nullable(zod.string())),authors:zod.optional(zod.nullable(zod.array(zod.string()))),year:zod.optional(zod.nullable(zod.number())),venue:zod.optional(zod.nullable(zod.string())),url:zod.optional(zod.nullable(zod.string())),bibtex:zod.optional(zod.nullable(zod.string())),source:zod.optional(zod.nullable(zod.string()))}),D=zod.object({originality:zod.optional(zod.enum(["original","derivative","third-party"])).default("original"),external_url:zod.optional(zod.nullable(zod.string())),github_url:zod.optional(zod.nullable(zod.string())),paper_url:zod.optional(zod.nullable(zod.string())),doi_url:zod.optional(zod.nullable(zod.string())),citation:zod.optional(zod.nullable(O)),relation_type:zod.optional(zod.nullable(C)),doi:zod.optional(zod.nullable(zod.string()))}),z=zod.object({id:zod.uuid(),user_id:zod.uuid(),user:zod.optional(chunkGY6SLMMJ_cjs.b.partial()),org_id:zod.uuid(),organization:zod.optional(chunkVOY623ZD_cjs.c.partial()),team_id:zod.uuid(),team:zod.optional(chunkUY43EQTO_cjs.a.partial()),parent_id:zod.optional(zod.nullable(zod.uuid())),parent:zod.optional(zod.record(zod.string(),zod.any())),license_id:zod.string(),license:zod.optional(zod.record(zod.string(),zod.any())),asset_type:chunk43KB23BA_cjs.a,name:zod.string(),name_url_slug:zod.optional(zod.nullable(zod.string())),slug:zod.optional(zod.nullable(zod.string())),description:zod.optional(zod.nullable(zod.object({json:zod.record(zod.string(),zod.any()),text:zod.string()}))),visibility:chunk43KB23BA_cjs.b,monetization:chunk43KB23BA_cjs.d,price:zod.optional(zod.nullable(zod.number())),unit_cost:zod.optional(zod.nullable(zod.number())),cost_accounting:zod.optional(zod.nullable(zod.enum(["fixed","variable"]))),cost_unit:zod.optional(zod.nullable(zod.string())),price_currency:zod.optional(chunk43KB23BA_cjs.e),stripe_product_id:zod.optional(zod.nullable(zod.string())),stripe_price_id:zod.optional(zod.nullable(zod.string())),stripe_meter_id:zod.optional(zod.nullable(zod.string())),metadata:zod.optional(zod.nullable(I)),attribution:zod.optional(zod.nullable(D)),preview:zod.optional(zod.nullable(zod.array(zod.record(zod.string(),zod.any())))),state:chunk43KB23BA_cjs.j,source:chunk43KB23BA_cjs.k,is_pinned_in_team:zod.optional(zod.boolean().default(false)),created_at:zod.string(),last_updated:zod.string()}),U=z.partial().omit({user_id:true,user:true,organization:true,license:true,team:true,slug:true,is_pinned_in_team:true}).extend({id:zod.uuid().default(()=>uuidv7.uuidv7()),team_id:zod.nullable(zod.uuid()).default(chunk7HF5VHUN_cjs.c),org_id:zod.nullable(zod.uuid()).default(chunk7HF5VHUN_cjs.b),name:zod.string().min(1,{message:"Name cannot be empty"}).max(255,{message:"Name must be less than 255 characters"}),name_url_slug:zod.optional(zod.nullable(zod.string())),state:chunk43KB23BA_cjs.j.optional().default("success"),source:chunk43KB23BA_cjs.k.default("web"),visibility:chunk43KB23BA_cjs.b.optional().default("public"),created_at:zod.string().default(()=>new Date().toISOString()),last_updated:zod.string().default(()=>new Date().toISOString())}),V=z.partial().omit({id:true,user_id:true,created_at:true,user:true,organization:true,team:true,slug:true,is_pinned_in_team:true}).transform(r=>T(r));exports.a=T;exports.b=I;exports.c=C;exports.d=O;exports.e=D;exports.f=z;exports.g=U;exports.h=V;//# sourceMappingURL=chunk-5EQ5LO7V.cjs.map
2
+ //# sourceMappingURL=chunk-5EQ5LO7V.cjs.map
@@ -0,0 +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","CreateAssetSchema","uuidv7","GLOBAL_TEAM_ID","UpdateAssetSchema","value"],"mappings":"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","file":"chunk-5EQ5LO7V.cjs","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 attribution: optional(nullable(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 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 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 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"]}
@@ -0,0 +1,2 @@
1
+ import {b,f,g,a as a$1}from'./chunk-TGOXRPF5.js';import {a}from'./chunk-WRHPQNEL.js';import {lazy,object,optional,string,array,record,any,literal,nullable,number}from'zod';var h=lazy(()=>object({type:string(),content:optional(array(h)),attrs:optional(record(string(),any())),marks:optional(array(object({type:string(),attrs:optional(record(string(),any()))}))),text:optional(string())})),c=object({type:literal("doc"),content:array(h)}),P=object({json:c,text:string()}).default({json:{type:"doc",content:[]},text:""}),z=object({}),T=z.extend(b.partial().shape),m=f.extend({name:nullable(string()),asset_type:a.refine(t=>["post","comment"].includes(t)),metadata:T,preview:c.default({type:"doc",content:[]}),content:P}),A=g.extend({asset_type:literal("post").default("post"),name:string().optional().nullable().default("").transform(t=>t==null?void 0:t.trim()).transform(t=>t||null),preview:c}).transform(t=>a$1(t)),C=m.extend({content:optional(nullable(P.default({json:{type:"doc",content:[]},text:""}))),reactions:array(record(string(),any())).default([]),views:number().default(0),commentCount:number().default(0)}),j=array(C),w=array(m),v=m.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,content:true,organization:true,user:true,team:true,slug:true,is_pinned_in_team:true}).extend({last_updated:string().default(()=>new Date().toISOString())}).transform(t=>a$1(t));export{c as a,P as b,m as c,A as d,C as e,j as f,w as g,v as h};//# sourceMappingURL=chunk-7EKD5NQB.js.map
2
+ //# sourceMappingURL=chunk-7EKD5NQB.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schema/posts.ts"],"names":["TipTapNode","lazy","object","string","optional","array","record","any","TipTapSchema","literal","ContentSchema","BasePostMetadataSchema","PostMetadataSchema","AssetMetadataSchema","PostSchema","AssetSchema","nullable","AssetTypeSchema","x","CreatePostSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","ReadPostSchema","number","ReadPostsSchema","ListPostsSchema","UpdatePostSchema"],"mappings":"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","file":"chunk-IWOXGKK4.js","sourcesContent":["import {\n object,\n string,\n number,\n array,\n lazy,\n literal,\n record,\n type z,\n any,\n optional,\n nullable,\n boolean,\n type ZodType\n} from \"zod\";\n\nimport {\n AssetMetadataSchema,\n AssetSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { AssetTypeSchema } from \"./common\";\n\nconst TipTapNode: ZodType<any> = lazy(() =>\n object({\n type: string(),\n content: optional(array(TipTapNode)),\n attrs: optional(record(string(), any())),\n marks: optional(\n array(\n object({\n type: string(),\n attrs: optional(record(string(), any())),\n })\n )\n ),\n text: optional(string()), // For text nodes\n })\n);\n\nconst TipTapSchema = object({\n type: literal(\"doc\"),\n content: array(TipTapNode),\n});\n\nconst ContentSchema = object({\n json: TipTapSchema,\n text: string(),\n}).default({ json: { type: \"doc\", content: [] }, text: \"\" });\n\nconst BasePostMetadataSchema = object({})\n\nconst PostMetadataSchema = BasePostMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst PostSchema = AssetSchema.extend({\n name: nullable(string()),\n asset_type: AssetTypeSchema.refine((x) => [\"post\", \"comment\"].includes(x)),\n metadata: PostMetadataSchema,\n // TODO: make this ContentSchema\n preview: TipTapSchema.default({ type: \"doc\", content: [] }),\n content: ContentSchema,\n\n});\n\nconst CreatePostSchema = CreateAssetSchema.extend({\n asset_type: literal(\"post\").default(\"post\"),\n name: string()\n .optional()\n .nullable()\n .default(\"\")\n .transform((x) => x?.trim())\n .transform((x) => x || null),\n preview: TipTapSchema,\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst ReadPostSchema = PostSchema.extend({\n content: optional(\n nullable(\n ContentSchema.default({\n json: { type: \"doc\", content: [] },\n text: \"\",\n })\n )\n ),\n reactions: array(record(string(), any())).default([]),\n views: number().default(0),\n commentCount: number().default(0),\n // We have this on asset now\n // parent: ConnectionSchema.optional().nullable(),\n});\n\nconst ReadPostsSchema = array(ReadPostSchema);\n\nconst ListPostsSchema = array(PostSchema);\n\nconst UpdatePostSchema = PostSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n content: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n })\n .extend({\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nexport {\n TipTapSchema,\n ContentSchema,\n PostSchema,\n CreatePostSchema,\n ListPostsSchema,\n ReadPostSchema,\n ReadPostsSchema,\n UpdatePostSchema,\n};\nexport type Post = z.infer<typeof PostSchema>;\nexport type CreatePost = z.infer<typeof CreatePostSchema>;\nexport type ListPosts = z.infer<typeof ListPostsSchema>;\nexport type ReadPost = z.infer<typeof ReadPostSchema>;\nexport type ReadPosts = z.infer<typeof ReadPostsSchema>;\nexport type UpdatePost = z.infer<typeof UpdatePostSchema>;\nexport type Content = z.infer<typeof ContentSchema>;\nexport type TipTap = z.infer<typeof TipTapSchema>;\n"]}
1
+ {"version":3,"sources":["../src/schema/posts.ts"],"names":["TipTapNode","lazy","object","string","optional","array","record","any","TipTapSchema","literal","ContentSchema","BasePostMetadataSchema","PostMetadataSchema","AssetMetadataSchema","PostSchema","AssetSchema","nullable","AssetTypeSchema","x","CreatePostSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","ReadPostSchema","number","ReadPostsSchema","ListPostsSchema","UpdatePostSchema"],"mappings":"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","file":"chunk-7EKD5NQB.js","sourcesContent":["import {\n object,\n string,\n number,\n array,\n lazy,\n literal,\n record,\n type z,\n any,\n optional,\n nullable,\n boolean,\n type ZodType\n} from \"zod\";\n\nimport {\n AssetMetadataSchema,\n AssetSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { AssetTypeSchema } from \"./common\";\n\nconst TipTapNode: ZodType<any> = lazy(() =>\n object({\n type: string(),\n content: optional(array(TipTapNode)),\n attrs: optional(record(string(), any())),\n marks: optional(\n array(\n object({\n type: string(),\n attrs: optional(record(string(), any())),\n })\n )\n ),\n text: optional(string()), // For text nodes\n })\n);\n\nconst TipTapSchema = object({\n type: literal(\"doc\"),\n content: array(TipTapNode),\n});\n\nconst ContentSchema = object({\n json: TipTapSchema,\n text: string(),\n}).default({ json: { type: \"doc\", content: [] }, text: \"\" });\n\nconst BasePostMetadataSchema = object({})\n\nconst PostMetadataSchema = BasePostMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst PostSchema = AssetSchema.extend({\n name: nullable(string()),\n asset_type: AssetTypeSchema.refine((x) => [\"post\", \"comment\"].includes(x)),\n metadata: PostMetadataSchema,\n // TODO: make this ContentSchema\n preview: TipTapSchema.default({ type: \"doc\", content: [] }),\n content: ContentSchema,\n\n});\n\nconst CreatePostSchema = CreateAssetSchema.extend({\n asset_type: literal(\"post\").default(\"post\"),\n name: string()\n .optional()\n .nullable()\n .default(\"\")\n .transform((x) => x?.trim())\n .transform((x) => x || null),\n preview: TipTapSchema,\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst ReadPostSchema = PostSchema.extend({\n content: optional(\n nullable(\n ContentSchema.default({\n json: { type: \"doc\", content: [] },\n text: \"\",\n })\n )\n ),\n reactions: array(record(string(), any())).default([]),\n views: number().default(0),\n commentCount: number().default(0),\n // We have this on asset now\n // parent: ConnectionSchema.optional().nullable(),\n});\n\nconst ReadPostsSchema = array(ReadPostSchema);\n\nconst ListPostsSchema = array(PostSchema);\n\nconst UpdatePostSchema = PostSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n content: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n })\n .extend({\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nexport {\n TipTapSchema,\n ContentSchema,\n PostSchema,\n CreatePostSchema,\n ListPostsSchema,\n ReadPostSchema,\n ReadPostsSchema,\n UpdatePostSchema,\n};\nexport type Post = z.infer<typeof PostSchema>;\nexport type CreatePost = z.infer<typeof CreatePostSchema>;\nexport type ListPosts = z.infer<typeof ListPostsSchema>;\nexport type ReadPost = z.infer<typeof ReadPostSchema>;\nexport type ReadPosts = z.infer<typeof ReadPostsSchema>;\nexport type UpdatePost = z.infer<typeof UpdatePostSchema>;\nexport type Content = z.infer<typeof ContentSchema>;\nexport type TipTap = z.infer<typeof TipTapSchema>;\n"]}
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkROMY5WNQ_cjs=require('./chunk-ROMY5WNQ.cjs'),chunk43KB23BA_cjs=require('./chunk-43KB23BA.cjs'),zod=require('zod');var y=zod.object({type:zod.string(),size:zod.number(),path:zod.string(),extension:zod.string(),name:zod.string(),id:zod.uuid(),bucket:zod.enum(["public-files","files"])}),_=zod.enum(["asset","action"]),x=zod.record(zod.string(),zod.object({kind:_,asset_type:zod.optional(chunk43KB23BA_cjs.a)})),z=zod.record(zod.string(),zod.object({values:zod.array(zod.string())})),F=zod.object({table_name:zod.string(),schema:zod.literal("datasets").default("datasets"),columns:zod.array(zod.string()),refs:zod.optional(zod.nullable(x)),enum_columns:zod.optional(zod.nullable(z))}),w=zod.object({column_name:zod.string(),data_type:zod.string(),fk_constraint_name:zod.optional(zod.nullable(zod.string())),foreign_table_schema:zod.optional(zod.nullable(zod.string())),foreign_table_name:zod.optional(zod.nullable(zod.string())),foreign_column_name:zod.optional(zod.nullable(zod.string())),semantic_type:zod.optional(zod.nullable(zod.enum(["reference","enum"]))),ref_kind:zod.optional(zod.nullable(_)),asset_type:zod.optional(zod.nullable(chunk43KB23BA_cjs.a)),enum_values:zod.optional(zod.nullable(zod.array(zod.string())))}),v=zod.object({kind:zod.literal("asset"),id:zod.uuid(),asset_type:chunk43KB23BA_cjs.a,name:zod.nullable(zod.string()),web_url:zod.nullable(zod.string())}),C=zod.object({kind:zod.literal("action"),id:zod.uuid(),status:zod.nullable(zod.string()),route_id:zod.nullable(zod.uuid()),route_name:zod.nullable(zod.string()),name:zod.nullable(zod.string()),web_url:zod.nullable(zod.string()),created_at:zod.nullable(zod.string())}),b=zod.discriminatedUnion("kind",[v,C]),M=zod.record(zod.string(),zod.record(zod.string(),b)),u=F.extend(chunkROMY5WNQ_cjs.b.partial().shape),g=chunkROMY5WNQ_cjs.c.extend({asset_type:zod.literal("dataset").default("dataset"),metadata:u.extend({...y.partial().shape}),preview:zod.array(zod.record(zod.string(),zod.any()))}),K=chunkROMY5WNQ_cjs.d.extend({asset_type:zod.literal("dataset").default("dataset"),metadata:u.extend({...y.shape}),preview:zod.array(zod.record(zod.string(),zod.any()))}).transform(m=>chunkROMY5WNQ_cjs.a(m)),U=chunkROMY5WNQ_cjs.d.extend({asset_type:zod.literal("dataset").default("dataset"),metadata:u,preview:zod.array(zod.record(zod.string(),zod.any()))}).transform(m=>chunkROMY5WNQ_cjs.a(m)),j=g.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,organization:true,user:true,team:true,slug:true,is_pinned_in_team:true}).extend({asset_type:zod.literal("dataset").default("dataset"),last_updated:zod.string().default(()=>new Date().toISOString())}).transform(m=>chunkROMY5WNQ_cjs.a(m));exports.a=_;exports.b=x;exports.c=z;exports.d=w;exports.e=b;exports.f=M;exports.g=g;exports.h=K;exports.i=U;exports.j=j;//# sourceMappingURL=chunk-YKA3RUTN.cjs.map
2
- //# sourceMappingURL=chunk-YKA3RUTN.cjs.map
1
+ 'use strict';var chunk5EQ5LO7V_cjs=require('./chunk-5EQ5LO7V.cjs'),chunk43KB23BA_cjs=require('./chunk-43KB23BA.cjs'),zod=require('zod');var y=zod.object({type:zod.string(),size:zod.number(),path:zod.string(),extension:zod.string(),name:zod.string(),id:zod.uuid(),bucket:zod.enum(["public-files","files"])}),_=zod.enum(["asset","action"]),x=zod.record(zod.string(),zod.object({kind:_,asset_type:zod.optional(chunk43KB23BA_cjs.a)})),z=zod.record(zod.string(),zod.object({values:zod.array(zod.string())})),F=zod.object({table_name:zod.string(),schema:zod.literal("datasets").default("datasets"),columns:zod.array(zod.string()),refs:zod.optional(zod.nullable(x)),enum_columns:zod.optional(zod.nullable(z))}),w=zod.object({column_name:zod.string(),data_type:zod.string(),fk_constraint_name:zod.optional(zod.nullable(zod.string())),foreign_table_schema:zod.optional(zod.nullable(zod.string())),foreign_table_name:zod.optional(zod.nullable(zod.string())),foreign_column_name:zod.optional(zod.nullable(zod.string())),semantic_type:zod.optional(zod.nullable(zod.enum(["reference","enum"]))),ref_kind:zod.optional(zod.nullable(_)),asset_type:zod.optional(zod.nullable(chunk43KB23BA_cjs.a)),enum_values:zod.optional(zod.nullable(zod.array(zod.string())))}),v=zod.object({kind:zod.literal("asset"),id:zod.uuid(),asset_type:chunk43KB23BA_cjs.a,name:zod.nullable(zod.string()),web_url:zod.nullable(zod.string())}),C=zod.object({kind:zod.literal("action"),id:zod.uuid(),status:zod.nullable(zod.string()),route_id:zod.nullable(zod.uuid()),route_name:zod.nullable(zod.string()),name:zod.nullable(zod.string()),web_url:zod.nullable(zod.string()),created_at:zod.nullable(zod.string())}),b=zod.discriminatedUnion("kind",[v,C]),M=zod.record(zod.string(),zod.record(zod.string(),b)),u=F.extend(chunk5EQ5LO7V_cjs.b.partial().shape),g=chunk5EQ5LO7V_cjs.f.extend({asset_type:zod.literal("dataset").default("dataset"),metadata:u.extend({...y.partial().shape}),preview:zod.array(zod.record(zod.string(),zod.any()))}),K=chunk5EQ5LO7V_cjs.g.extend({asset_type:zod.literal("dataset").default("dataset"),metadata:u.extend({...y.shape}),preview:zod.array(zod.record(zod.string(),zod.any()))}).transform(m=>chunk5EQ5LO7V_cjs.a(m)),U=chunk5EQ5LO7V_cjs.g.extend({asset_type:zod.literal("dataset").default("dataset"),metadata:u,preview:zod.array(zod.record(zod.string(),zod.any()))}).transform(m=>chunk5EQ5LO7V_cjs.a(m)),j=g.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,organization:true,user:true,team:true,slug:true,is_pinned_in_team:true}).extend({asset_type:zod.literal("dataset").default("dataset"),last_updated:zod.string().default(()=>new Date().toISOString())}).transform(m=>chunk5EQ5LO7V_cjs.a(m));exports.a=_;exports.b=x;exports.c=z;exports.d=w;exports.e=b;exports.f=M;exports.g=g;exports.h=K;exports.i=U;exports.j=j;//# sourceMappingURL=chunk-AI2FA44G.cjs.map
2
+ //# sourceMappingURL=chunk-AI2FA44G.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schema/datasets.ts"],"names":["DatasetFromFileMetadataSchema","object","string","number","uuid","zodEnum","RefKindSchema","DatasetRefsSchema","record","optional","AssetTypeSchema","DatasetEnumColumnsSchema","array","BaseDatasetMetadataSchema","literal","nullable","EnrichedDatasetSchemaFieldSchema","ResolvedAssetRefSchema","ResolvedActionRefSchema","ResolvedRefSchema","discriminatedUnion","ResolvedRefsSchema","DatasetMetadataSchema","AssetMetadataSchema","DatasetSchema","AssetSchema","any","CreateDatasetFromFileSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","CreateDatasetFromSchemaSchema","updateDatasetSchema"],"mappings":"4IAwBMA,CAAgCC,CAAAA,UAAAA,CAAO,CAC3C,IAAA,CAAMC,UAAO,EAAA,CACb,KAAMC,UAAO,EAAA,CACb,IAAMD,CAAAA,UAAAA,EACN,CAAA,SAAA,CAAWA,YACX,CAAA,IAAA,CAAMA,UAAO,EAAA,CACb,EAAIE,CAAAA,QAAAA,GACJ,MAAQC,CAAAA,QAAAA,CAAQ,CAAC,cAAA,CAAgB,OAAO,CAAC,CAC3C,CAAC,CAAA,CAMKC,EAAgBD,QAAQ,CAAA,CAAC,QAAS,QAAQ,CAAC,CAS3CE,CAAAA,CAAAA,CAAoBC,UACxBN,CAAAA,UAAAA,GACAD,UAAO,CAAA,CACL,IAAMK,CAAAA,CAAAA,CACN,UAAYG,CAAAA,YAAAA,CAASC,mBAAe,CACtC,CAAC,CACH,CAAA,CASMC,CAA2BH,CAAAA,UAAAA,CAC/BN,YACAD,CAAAA,UAAAA,CAAO,CACL,MAAA,CAAQW,SAAMV,CAAAA,UAAAA,EAAQ,CACxB,CAAC,CACH,CAAA,CAEMW,CAA4BZ,CAAAA,UAAAA,CAAO,CACvC,UAAYC,CAAAA,UAAAA,EACZ,CAAA,MAAA,CAAQY,WAAQ,CAAA,UAAU,EAAE,OAAQ,CAAA,UAAU,CAC9C,CAAA,OAAA,CAASF,SAAMV,CAAAA,UAAAA,EAAQ,CACvB,CAAA,IAAA,CAAMO,aAASM,YAASR,CAAAA,CAAiB,CAAC,CAC1C,CAAA,YAAA,CAAcE,YAASM,CAAAA,YAAAA,CAASJ,CAAwB,CAAC,CAC3D,CAAC,CAAA,CAYKK,CAAmCf,CAAAA,UAAAA,CAAO,CAC9C,WAAA,CAAaC,YACb,CAAA,SAAA,CAAWA,UAAO,EAAA,CAClB,kBAAoBO,CAAAA,YAAAA,CAASM,aAASb,UAAO,EAAC,CAAC,CAAA,CAC/C,oBAAsBO,CAAAA,YAAAA,CAASM,aAASb,UAAO,EAAC,CAAC,CAAA,CACjD,kBAAoBO,CAAAA,YAAAA,CAASM,aAASb,UAAO,EAAC,CAAC,CAAA,CAC/C,mBAAqBO,CAAAA,YAAAA,CAASM,aAASb,UAAO,EAAC,CAAC,CAAA,CAChD,aAAeO,CAAAA,YAAAA,CAASM,aAASV,QAAQ,CAAA,CAAC,WAAa,CAAA,MAAM,CAAC,CAAC,CAAC,CAChE,CAAA,QAAA,CAAUI,YAASM,CAAAA,YAAAA,CAAST,CAAa,CAAC,EAC1C,UAAYG,CAAAA,YAAAA,CAASM,YAASL,CAAAA,mBAAe,CAAC,CAAA,CAC9C,YAAaD,YAASM,CAAAA,YAAAA,CAASH,SAAMV,CAAAA,UAAAA,EAAQ,CAAC,CAAC,CACjD,CAAC,CAQKe,CAAAA,CAAAA,CAAyBhB,UAAO,CAAA,CACpC,KAAMa,WAAQ,CAAA,OAAO,CACrB,CAAA,EAAA,CAAIV,QAAK,EAAA,CACT,WAAYM,mBACZ,CAAA,IAAA,CAAMK,YAASb,CAAAA,UAAAA,EAAQ,CAAA,CACvB,QAASa,YAASb,CAAAA,UAAAA,EAAQ,CAC5B,CAAC,CAAA,CAEKgB,EAA0BjB,UAAO,CAAA,CACrC,KAAMa,WAAQ,CAAA,QAAQ,EACtB,EAAIV,CAAAA,QAAAA,EACJ,CAAA,MAAA,CAAQW,YAASb,CAAAA,UAAAA,EAAQ,CACzB,CAAA,QAAA,CAAUa,YAASX,CAAAA,QAAAA,EAAM,CAAA,CACzB,WAAYW,YAASb,CAAAA,UAAAA,EAAQ,CAAA,CAC7B,IAAMa,CAAAA,YAAAA,CAASb,YAAQ,CAAA,CACvB,OAASa,CAAAA,YAAAA,CAASb,UAAO,EAAC,EAC1B,UAAYa,CAAAA,YAAAA,CAASb,UAAO,EAAC,CAC/B,CAAC,EAEKiB,CAAoBC,CAAAA,sBAAAA,CAAmB,MAAQ,CAAA,CACnDH,CACAC,CAAAA,CACF,CAAC,CAGKG,CAAAA,CAAAA,CAAqBb,UACzBN,CAAAA,UAAAA,EACAM,CAAAA,UAAAA,CAAON,YAAUiB,CAAAA,CAAiB,CACpC,CAAA,CAEMG,CAAwBT,CAAAA,CAAAA,CAA0B,OACtDU,mBAAoB,CAAA,OAAA,EAAU,CAAA,KAChC,CAEMC,CAAAA,CAAAA,CAAgBC,oBAAY,MAAO,CAAA,CACvC,UAAYX,CAAAA,WAAAA,CAAQ,SAAS,CAAA,CAAE,QAAQ,SAAS,CAAA,CAChD,QAAUQ,CAAAA,CAAAA,CAAsB,MAAO,CAAA,CACrC,GAAGtB,CAA8B,CAAA,OAAA,EAAU,CAAA,KAC7C,CAAC,CAAA,CACD,QAASY,SAAMJ,CAAAA,UAAAA,CAAON,UAAO,EAAA,CAAGwB,OAAI,EAAC,CAAC,CACxC,CAAC,CAEKC,CAAAA,CAAAA,CAA8BC,mBAAkB,CAAA,MAAA,CAAO,CAC3D,UAAYd,CAAAA,WAAAA,CAAQ,SAAS,CAAA,CAAE,OAAQ,CAAA,SAAS,EAChD,QAAUQ,CAAAA,CAAAA,CAAsB,OAAO,CACrC,GAAGtB,EAA8B,KACnC,CAAC,CACD,CAAA,OAAA,CAASY,SAAMJ,CAAAA,UAAAA,CAAON,YAAUwB,CAAAA,OAAAA,EAAK,CAAC,CACxC,CAAC,EAAE,SAAWG,CAAAA,CAAAA,EAAUC,mBAA+BD,CAAAA,CAAK,CAAC,CAAA,CAEvDE,EAAgCH,mBAAkB,CAAA,MAAA,CAAO,CAC7D,UAAA,CAAYd,WAAQ,CAAA,SAAS,EAAE,OAAQ,CAAA,SAAS,CAChD,CAAA,QAAA,CAAUQ,CACV,CAAA,OAAA,CAASV,UAAMJ,UAAON,CAAAA,UAAAA,EAAUwB,CAAAA,OAAAA,EAAK,CAAC,CACxC,CAAC,CAAA,CAAE,SAAWG,CAAAA,CAAAA,EAAUC,mBAA+BD,CAAAA,CAAK,CAAC,CAEvDG,CAAAA,CAAAA,CAAsBR,CAAc,CAAA,OAAA,EACvC,CAAA,IAAA,CAAK,CACJ,OAAS,CAAA,IAAA,CACT,EAAI,CAAA,IAAA,CACJ,UAAY,CAAA,IAAA,CACZ,aAAc,IACd,CAAA,YAAA,CAAc,IACd,CAAA,IAAA,CAAM,IACN,CAAA,IAAA,CAAM,KACN,IAAM,CAAA,IAAA,CACN,iBAAmB,CAAA,IACrB,CAAC,CAAA,CACA,OAAO,CACN,UAAA,CAAYV,WAAQ,CAAA,SAAS,CAAE,CAAA,OAAA,CAAQ,SAAS,CAChD,CAAA,YAAA,CAAcZ,UAAO,EAAA,CAAE,OAAQ,CAAA,IAAM,IAAI,IAAK,EAAA,CAAE,WAAY,EAAC,CAC/D,CAAC,EACA,SAAW2B,CAAAA,CAAAA,EAAUC,mBAA+BD,CAAAA,CAAK,CAAC","file":"chunk-YKA3RUTN.cjs","sourcesContent":["import {\n object,\n string,\n uuid,\n number,\n array,\n literal,\n record,\n optional,\n nullable,\n discriminatedUnion,\n type z,\n any,\n enum as zodEnum\n} from \"zod\";\n\nimport {\n AssetSchema,\n CreateAssetSchema,\n AssetMetadataSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { AssetTypeSchema } from \"./common\";\n\nconst DatasetFromFileMetadataSchema = object({\n type: string(),\n size: number(),\n path: string(),\n extension: string(),\n name: string(),\n id: uuid(), // storage file object id,\n bucket: zodEnum([\"public-files\", \"files\"]),\n});\n\n/**\n * The kind of object a dataset reference column points at. The FK target table\n * is the source of truth: public.assets -> \"asset\", public.actions -> \"action\".\n */\nconst RefKindSchema = zodEnum([\"asset\", \"action\"]);\n\n/**\n * Per-column reference declarations.\n *\n * A column becomes a reference when the backend adds a real Postgres FK to a\n * referenceable table. `kind` selects the target table; `asset_type` is an\n * optional target-type hint that only applies when `kind` is \"asset\".\n */\nconst DatasetRefsSchema = record(\n string(),\n object({\n kind: RefKindSchema,\n asset_type: optional(AssetTypeSchema),\n })\n);\n\n/**\n * Per-column enum declarations.\n *\n * Enum columns are stored as ordinary dataset columns plus a Postgres CHECK\n * constraint. The values are surfaced in schema reads so agents can query with\n * known categorical values.\n */\nconst DatasetEnumColumnsSchema = record(\n string(),\n object({\n values: array(string()),\n })\n);\n\nconst BaseDatasetMetadataSchema = object({\n table_name: string(),\n schema: literal(\"datasets\").default(\"datasets\"),\n columns: array(string()),\n refs: optional(nullable(DatasetRefsSchema)),\n enum_columns: optional(nullable(DatasetEnumColumnsSchema)),\n});\n\n/**\n * A single column from GET /datasets/:id/schema, enriched server-side.\n *\n * The FK fields come straight from get_table_schema. `semantic_type` is pure\n * inference: \"reference\" when the column has an FK to a referenceable table,\n * with `ref_kind` naming which one (\"asset\" | \"action\"). The optional\n * `asset_type` is the declared target-type hint from metadata.refs (display +\n * soft validation only, asset kind only). `semantic_type: \"enum\"` comes from\n * metadata.enum_columns and exposes its known values.\n */\nconst EnrichedDatasetSchemaFieldSchema = object({\n column_name: string(),\n data_type: string(),\n fk_constraint_name: optional(nullable(string())),\n foreign_table_schema: optional(nullable(string())),\n foreign_table_name: optional(nullable(string())),\n foreign_column_name: optional(nullable(string())),\n semantic_type: optional(nullable(zodEnum([\"reference\", \"enum\"]))),\n ref_kind: optional(nullable(RefKindSchema)),\n asset_type: optional(nullable(AssetTypeSchema)),\n enum_values: optional(nullable(array(string()))),\n});\n\n/**\n * A resolved reference returned in the `resolved_refs` sidecar of\n * GET /datasets/:id/data?resolve_refs=true. Discriminated on `kind` so asset\n * and action references share one vocabulary while carrying kind-specific\n * fields.\n */\nconst ResolvedAssetRefSchema = object({\n kind: literal(\"asset\"),\n id: uuid(),\n asset_type: AssetTypeSchema,\n name: nullable(string()),\n web_url: nullable(string()),\n});\n\nconst ResolvedActionRefSchema = object({\n kind: literal(\"action\"),\n id: uuid(),\n status: nullable(string()),\n route_id: nullable(uuid()),\n route_name: nullable(string()),\n name: nullable(string()),\n web_url: nullable(string()),\n created_at: nullable(string()),\n});\n\nconst ResolvedRefSchema = discriminatedUnion(\"kind\", [\n ResolvedAssetRefSchema,\n ResolvedActionRefSchema,\n]);\n\n/** column -> (referenced uuid -> resolved reference). */\nconst ResolvedRefsSchema = record(\n string(),\n record(string(), ResolvedRefSchema)\n);\n\nconst DatasetMetadataSchema = BaseDatasetMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst DatasetSchema = AssetSchema.extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n metadata: DatasetMetadataSchema.extend({\n ...DatasetFromFileMetadataSchema.partial().shape,\n }),\n preview: array(record(string(), any())),\n});\n\nconst CreateDatasetFromFileSchema = CreateAssetSchema.extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n metadata: DatasetMetadataSchema.extend({\n ...DatasetFromFileMetadataSchema.shape,\n }),\n preview: array(record(string(), any())),\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst CreateDatasetFromSchemaSchema = CreateAssetSchema.extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n metadata: DatasetMetadataSchema,\n preview: array(record(string(), any())),\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst updateDatasetSchema = DatasetSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n })\n .extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nexport {\n DatasetSchema,\n CreateDatasetFromFileSchema,\n CreateDatasetFromSchemaSchema,\n updateDatasetSchema,\n RefKindSchema,\n DatasetRefsSchema,\n DatasetEnumColumnsSchema,\n EnrichedDatasetSchemaFieldSchema,\n ResolvedRefSchema,\n ResolvedRefsSchema,\n};\nexport type Dataset = z.infer<typeof DatasetSchema>;\nexport type CreateFromFileDataset = z.infer<typeof CreateDatasetFromFileSchema>;\nexport type CreateFromSchemaDataset = z.infer<typeof CreateDatasetFromSchemaSchema>;\nexport type UpdateDataset = z.infer<typeof updateDatasetSchema>;\nexport type RefKind = z.infer<typeof RefKindSchema>;\nexport type DatasetRefs = z.infer<typeof DatasetRefsSchema>;\nexport type DatasetEnumColumns = z.infer<typeof DatasetEnumColumnsSchema>;\nexport type EnrichedDatasetSchemaField = z.infer<\n typeof EnrichedDatasetSchemaFieldSchema\n>;\nexport type ResolvedRef = z.infer<typeof ResolvedRefSchema>;\nexport type ResolvedRefs = z.infer<typeof ResolvedRefsSchema>;\n"]}
1
+ {"version":3,"sources":["../src/schema/datasets.ts"],"names":["DatasetFromFileMetadataSchema","object","string","number","uuid","zodEnum","RefKindSchema","DatasetRefsSchema","record","optional","AssetTypeSchema","DatasetEnumColumnsSchema","array","BaseDatasetMetadataSchema","literal","nullable","EnrichedDatasetSchemaFieldSchema","ResolvedAssetRefSchema","ResolvedActionRefSchema","ResolvedRefSchema","discriminatedUnion","ResolvedRefsSchema","DatasetMetadataSchema","AssetMetadataSchema","DatasetSchema","AssetSchema","any","CreateDatasetFromFileSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","CreateDatasetFromSchemaSchema","updateDatasetSchema"],"mappings":"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","file":"chunk-AI2FA44G.cjs","sourcesContent":["import {\n object,\n string,\n uuid,\n number,\n array,\n literal,\n record,\n optional,\n nullable,\n discriminatedUnion,\n type z,\n any,\n enum as zodEnum\n} from \"zod\";\n\nimport {\n AssetSchema,\n CreateAssetSchema,\n AssetMetadataSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { AssetTypeSchema } from \"./common\";\n\nconst DatasetFromFileMetadataSchema = object({\n type: string(),\n size: number(),\n path: string(),\n extension: string(),\n name: string(),\n id: uuid(), // storage file object id,\n bucket: zodEnum([\"public-files\", \"files\"]),\n});\n\n/**\n * The kind of object a dataset reference column points at. The FK target table\n * is the source of truth: public.assets -> \"asset\", public.actions -> \"action\".\n */\nconst RefKindSchema = zodEnum([\"asset\", \"action\"]);\n\n/**\n * Per-column reference declarations.\n *\n * A column becomes a reference when the backend adds a real Postgres FK to a\n * referenceable table. `kind` selects the target table; `asset_type` is an\n * optional target-type hint that only applies when `kind` is \"asset\".\n */\nconst DatasetRefsSchema = record(\n string(),\n object({\n kind: RefKindSchema,\n asset_type: optional(AssetTypeSchema),\n })\n);\n\n/**\n * Per-column enum declarations.\n *\n * Enum columns are stored as ordinary dataset columns plus a Postgres CHECK\n * constraint. The values are surfaced in schema reads so agents can query with\n * known categorical values.\n */\nconst DatasetEnumColumnsSchema = record(\n string(),\n object({\n values: array(string()),\n })\n);\n\nconst BaseDatasetMetadataSchema = object({\n table_name: string(),\n schema: literal(\"datasets\").default(\"datasets\"),\n columns: array(string()),\n refs: optional(nullable(DatasetRefsSchema)),\n enum_columns: optional(nullable(DatasetEnumColumnsSchema)),\n});\n\n/**\n * A single column from GET /datasets/:id/schema, enriched server-side.\n *\n * The FK fields come straight from get_table_schema. `semantic_type` is pure\n * inference: \"reference\" when the column has an FK to a referenceable table,\n * with `ref_kind` naming which one (\"asset\" | \"action\"). The optional\n * `asset_type` is the declared target-type hint from metadata.refs (display +\n * soft validation only, asset kind only). `semantic_type: \"enum\"` comes from\n * metadata.enum_columns and exposes its known values.\n */\nconst EnrichedDatasetSchemaFieldSchema = object({\n column_name: string(),\n data_type: string(),\n fk_constraint_name: optional(nullable(string())),\n foreign_table_schema: optional(nullable(string())),\n foreign_table_name: optional(nullable(string())),\n foreign_column_name: optional(nullable(string())),\n semantic_type: optional(nullable(zodEnum([\"reference\", \"enum\"]))),\n ref_kind: optional(nullable(RefKindSchema)),\n asset_type: optional(nullable(AssetTypeSchema)),\n enum_values: optional(nullable(array(string()))),\n});\n\n/**\n * A resolved reference returned in the `resolved_refs` sidecar of\n * GET /datasets/:id/data?resolve_refs=true. Discriminated on `kind` so asset\n * and action references share one vocabulary while carrying kind-specific\n * fields.\n */\nconst ResolvedAssetRefSchema = object({\n kind: literal(\"asset\"),\n id: uuid(),\n asset_type: AssetTypeSchema,\n name: nullable(string()),\n web_url: nullable(string()),\n});\n\nconst ResolvedActionRefSchema = object({\n kind: literal(\"action\"),\n id: uuid(),\n status: nullable(string()),\n route_id: nullable(uuid()),\n route_name: nullable(string()),\n name: nullable(string()),\n web_url: nullable(string()),\n created_at: nullable(string()),\n});\n\nconst ResolvedRefSchema = discriminatedUnion(\"kind\", [\n ResolvedAssetRefSchema,\n ResolvedActionRefSchema,\n]);\n\n/** column -> (referenced uuid -> resolved reference). */\nconst ResolvedRefsSchema = record(\n string(),\n record(string(), ResolvedRefSchema)\n);\n\nconst DatasetMetadataSchema = BaseDatasetMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst DatasetSchema = AssetSchema.extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n metadata: DatasetMetadataSchema.extend({\n ...DatasetFromFileMetadataSchema.partial().shape,\n }),\n preview: array(record(string(), any())),\n});\n\nconst CreateDatasetFromFileSchema = CreateAssetSchema.extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n metadata: DatasetMetadataSchema.extend({\n ...DatasetFromFileMetadataSchema.shape,\n }),\n preview: array(record(string(), any())),\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst CreateDatasetFromSchemaSchema = CreateAssetSchema.extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n metadata: DatasetMetadataSchema,\n preview: array(record(string(), any())),\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst updateDatasetSchema = DatasetSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n })\n .extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nexport {\n DatasetSchema,\n CreateDatasetFromFileSchema,\n CreateDatasetFromSchemaSchema,\n updateDatasetSchema,\n RefKindSchema,\n DatasetRefsSchema,\n DatasetEnumColumnsSchema,\n EnrichedDatasetSchemaFieldSchema,\n ResolvedRefSchema,\n ResolvedRefsSchema,\n};\nexport type Dataset = z.infer<typeof DatasetSchema>;\nexport type CreateFromFileDataset = z.infer<typeof CreateDatasetFromFileSchema>;\nexport type CreateFromSchemaDataset = z.infer<typeof CreateDatasetFromSchemaSchema>;\nexport type UpdateDataset = z.infer<typeof updateDatasetSchema>;\nexport type RefKind = z.infer<typeof RefKindSchema>;\nexport type DatasetRefs = z.infer<typeof DatasetRefsSchema>;\nexport type DatasetEnumColumns = z.infer<typeof DatasetEnumColumnsSchema>;\nexport type EnrichedDatasetSchemaField = z.infer<\n typeof EnrichedDatasetSchemaFieldSchema\n>;\nexport type ResolvedRef = z.infer<typeof ResolvedRefSchema>;\nexport type ResolvedRefs = z.infer<typeof ResolvedRefsSchema>;\n"]}
@@ -0,0 +1,2 @@
1
+ import {a,d,c}from'./chunk-TMNFNVTZ.js';import {f,b,g,a as a$2}from'./chunk-TGOXRPF5.js';import {a as a$1}from'./chunk-WRHPQNEL.js';import {enum as _enum,object,optional,string,array,any,record,literal,number,uuid,nullable,boolean,union}from'zod';var z=_enum(["closable","continuous"]),E=_enum(["draft","open","closed","cancelled"]),_=_enum(["pending","in_progress","done","skipped"]),C=_enum(["btc","usd"]),I=_enum(["skipped","running","passed","failed","errored"]),q=_enum(["submitted","accepted","rejected"]),k=object({type:string(),content:optional(array(any())),attrs:optional(record(string(),any())),marks:optional(array(any())),text:optional(string())}),p=object({json:object({type:literal("doc"),content:array(k)}),text:string()}),T=object({id:uuid(),quest_id:uuid(),description:string(),status:_.default("pending"),auto_skipped:optional(nullable(string().or(any()))),status_before_auto_skip:optional(nullable(_)),sort_order:number().default(0),type:string().default("task"),created_by:uuid(),assignee_id:optional(nullable(uuid())),expected_asset_type:optional(nullable(a$1)),reward_xp:number().int().nonnegative().default(0),reward_currency:C.default("btc"),reward_amount:number().int().nonnegative().default(0),child_quest_id:optional(nullable(uuid())),eval_route_id:optional(nullable(uuid())),eval_score_path:optional(nullable(string())),eval_pass_min:optional(nullable(number())),eval_pass_max:optional(nullable(number())),submission_assets:optional(nullable(record(string(),d))),eval_static_inputs:optional(nullable(a)),notes:optional(nullable(string())),contributor_keys:optional(nullable(array(object({key:string(),required:boolean().default(true),filters:object({assetType:optional(string()),fileType:optional(string()),extensions:optional(array(string())),hasConstraints:boolean().default(false)})})))),created_at:string(),updated_at:string()}),A=T,S=object({description:string().min(1,{message:"Item description cannot be empty"}),type:optional(string()).default("task"),sort_order:optional(number().int()),assignee_id:optional(nullable(uuid())),expected_asset_type:optional(nullable(a$1)),reward_xp:optional(number().int().nonnegative()).default(0),reward_currency:optional(C).default("btc"),reward_amount:optional(number().int().nonnegative()).default(0),child_quest_id:optional(nullable(uuid())),eval_route_id:optional(nullable(uuid())),eval_score_path:optional(nullable(string())),eval_pass_min:optional(nullable(number())),eval_pass_max:optional(nullable(number())),submission_assets:optional(nullable(record(string(),d))),eval_static_inputs:optional(nullable(a)),notes:optional(nullable(string()))}),R=union([string().transform(u=>({description:u})),S]).pipe(S),U=object({type:z.default("closable"),status:E.default("open"),max_xp_per_contributor:optional(nullable(number().int().nonnegative())),closed_at:optional(nullable(string()))}),j=f.extend({asset_type:literal("quest").default("quest"),metadata:optional(nullable(b.partial())),quest:optional(U.partial()),items:optional(array(A.partial())),progress:optional(object({total:number(),resolved:number(),remaining:number(),items:optional(array(object({id:string(),status:_,waiting_on:optional(nullable(string())),waiting_until:optional(nullable(string())),waiting_check_every:optional(nullable(string()))}).partial()))}))}),Z=g.extend({asset_type:literal("quest").default("quest"),name:optional(nullable(string())).default(null),description:optional(nullable(p)),type:z.default("closable"),status:E.default("open"),max_xp_per_contributor:optional(nullable(number().int().nonnegative())),items:optional(array(R)).default([])}).transform(u=>a$2(u)),F=j.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,organization:true,user:true,team:true,slug:true,items:true,progress:true,is_pinned_in_team:true}).extend({asset_type:literal("quest").default("quest"),last_updated:string().default(()=>new Date().toISOString())}).transform(u=>a$2(u)),M=S.partial().extend({status:optional(_)}),N=object({id:uuid(),quest_id:uuid(),user_id:uuid(),item_id:optional(nullable(uuid())),asset_id:optional(nullable(uuid())),asset_type:optional(nullable(a$1)),assets:optional(nullable(a)),description:optional(nullable(p)),review:optional(nullable(p)),status:q,reviewer_id:optional(nullable(uuid())),reviewed_at:optional(nullable(string())),eval_action_id:optional(nullable(uuid())),eval_score:optional(nullable(number())),eval_status:optional(nullable(I)),created_at:string(),updated_at:string()}),P=object({item_id:uuid(),assets:optional(nullable(c)),description:optional(nullable(union([string(),p])))}),G=object({status:_enum(["accepted","rejected"]),review:optional(nullable(union([string(),p])))});export{z as a,E as b,_ as c,C as d,I as e,q as f,T as g,A as h,S as i,R as j,j as k,Z as l,F as m,M as n,N as o,P as p,G as q};//# sourceMappingURL=chunk-DY5QSBE4.js.map
2
+ //# sourceMappingURL=chunk-DY5QSBE4.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schema/quests.ts"],"names":["QuestTypeSchema","zodEnum","QuestStatusSchema","QuestItemStatusSchema","RewardCurrencySchema","EntryEvalStatusSchema","EntryStatusSchema","TipTapNode","object","string","optional","array","any","record","ContentSchema","literal","QuestItemBaseSchema","uuid","nullable","number","AssetTypeSchema","QuestSubmissionAssetDeclarationSchema","KeyedAssetRefsSchema","zodBoolean","QuestItemSchema","CreateQuestItemObjectSchema","CreateQuestItemSchema","union","s","QuestSpecificsSchema","QuestSchema","AssetSchema","AssetMetadataSchema","CreateQuestSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","UpdateQuestSchema","UpdateQuestItemSchema","EntrySchema","CreateEntrySchema","KeyedAssetInputSchema","ReviewEntrySchema"],"mappings":"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","file":"chunk-NGN2PI7X.js","sourcesContent":["import {\n object,\n string,\n number,\n array,\n literal,\n record,\n type z,\n any,\n optional,\n nullable,\n union,\n uuid,\n boolean as zodBoolean,\n enum as zodEnum,\n type ZodType,\n} from \"zod\";\n\nimport {\n AssetSchema,\n AssetMetadataSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { AssetTypeSchema } from \"./common\";\nimport {\n KeyedAssetRefsSchema,\n KeyedAssetInputSchema,\n QuestSubmissionAssetDeclarationSchema,\n} from \"../utils/quest-submission\";\n\n// ── Enums ──────────────────────────────────────────────────────────────\n\n/** closable: one active entry per item per user; continuous: unlimited per item */\nconst QuestTypeSchema = zodEnum([\"closable\", \"continuous\"]);\nconst QuestStatusSchema = zodEnum([\"draft\", \"open\", \"closed\", \"cancelled\"]);\n\nconst QuestItemStatusSchema = zodEnum([\n \"pending\",\n \"in_progress\",\n \"done\",\n \"skipped\",\n]);\n\nconst RewardCurrencySchema = zodEnum([\"btc\", \"usd\"]);\n\nconst EntryEvalStatusSchema = zodEnum([\n \"skipped\",\n \"running\",\n \"passed\",\n \"failed\",\n \"errored\",\n]);\n\nconst EntryStatusSchema = zodEnum([\"submitted\", \"accepted\", \"rejected\"]);\n\n// ── Content (TipTap) ───────────────────────────────────────────────────\n// Posts/quests share the same rich description shape: { json, text }.\n// We mirror it locally here so the quest schema doesn't depend on posts.\n\nconst TipTapNode: ZodType<any> = object({\n type: string(),\n content: optional(array(any())),\n attrs: optional(record(string(), any())),\n marks: optional(array(any())),\n text: optional(string()),\n});\n\nconst ContentSchema = object({\n json: object({\n type: literal(\"doc\"),\n content: array(TipTapNode),\n }),\n text: string(),\n});\n\n// ── Quest items ────────────────────────────────────────────────────────\n\nconst QuestItemBaseSchema = object({\n id: uuid(),\n quest_id: uuid(),\n description: string(),\n status: QuestItemStatusSchema.default(\"pending\"),\n auto_skipped: optional(nullable(string().or(any()))),\n status_before_auto_skip: optional(nullable(QuestItemStatusSchema)),\n sort_order: number().default(0),\n type: string().default(\"task\"),\n created_by: uuid(),\n assignee_id: optional(nullable(uuid())),\n expected_asset_type: optional(nullable(AssetTypeSchema)),\n reward_xp: number().int().nonnegative().default(0),\n reward_currency: RewardCurrencySchema.default(\"btc\"),\n reward_amount: number().int().nonnegative().default(0),\n child_quest_id: optional(nullable(uuid())),\n eval_route_id: optional(nullable(uuid())),\n eval_score_path: optional(nullable(string())),\n eval_pass_min: optional(nullable(number())),\n eval_pass_max: optional(nullable(number())),\n submission_assets: optional(\n nullable(record(string(), QuestSubmissionAssetDeclarationSchema)),\n ),\n eval_static_inputs: optional(nullable(KeyedAssetRefsSchema)),\n notes: optional(nullable(string())),\n contributor_keys: optional(\n nullable(\n array(\n object({\n key: string(),\n required: zodBoolean().default(true),\n filters: object({\n assetType: optional(string()),\n fileType: optional(string()),\n extensions: optional(array(string())),\n hasConstraints: zodBoolean().default(false),\n }),\n }),\n ),\n ),\n ),\n created_at: string(),\n updated_at: string(),\n});\n\nconst QuestItemSchema = QuestItemBaseSchema;\n\n/**\n * Shape used by `POST /quests/create` (inline items) and\n * `POST /quests/:id/items` (batch add). The controller fills in\n * `quest_id`, `created_by`, and lifecycle-derived fields\n * (`auto_skipped`, `status_before_auto_skip`).\n *\n * Accepts a plain description string as a convenience — it's lifted\n * into `{ description }` by the `union` below.\n */\nconst CreateQuestItemObjectSchema = object({\n description: string().min(1, { message: \"Item description cannot be empty\" }),\n type: optional(string()).default(\"task\"),\n sort_order: optional(number().int()),\n assignee_id: optional(nullable(uuid())),\n expected_asset_type: optional(nullable(AssetTypeSchema)),\n reward_xp: optional(number().int().nonnegative()).default(0),\n reward_currency: optional(RewardCurrencySchema).default(\"btc\"),\n // Amount is in minor units of `reward_currency`: sats for BTC, cents\n // for USD. Both fit in JS numbers comfortably for our reward sizes;\n // the underlying column is `bigint`.\n reward_amount: optional(number().int().nonnegative()).default(0),\n child_quest_id: optional(nullable(uuid())),\n eval_route_id: optional(nullable(uuid())),\n eval_score_path: optional(nullable(string())),\n eval_pass_min: optional(nullable(number())),\n eval_pass_max: optional(nullable(number())),\n submission_assets: optional(\n nullable(record(string(), QuestSubmissionAssetDeclarationSchema)),\n ),\n eval_static_inputs: optional(nullable(KeyedAssetRefsSchema)),\n notes: optional(nullable(string())),\n});\n\nconst CreateQuestItemSchema = union([\n string().transform((s) => ({ description: s })),\n CreateQuestItemObjectSchema,\n]).pipe(CreateQuestItemObjectSchema);\n\n// ── Quest ──────────────────────────────────────────────────────────────\n\nconst QuestSpecificsSchema = object({\n type: QuestTypeSchema.default(\"closable\"),\n status: QuestStatusSchema.default(\"open\"),\n max_xp_per_contributor: optional(nullable(number().int().nonnegative())),\n closed_at: optional(nullable(string())),\n});\n\nconst QuestSchema = AssetSchema.extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n metadata: optional(nullable(AssetMetadataSchema.partial())),\n // List and detail both nest specifics under `quest`. Detail also hoists\n // full items to the top level. Progress (counts + bar segments) is always\n // top-level `progress` on list and detail responses.\n quest: optional(QuestSpecificsSchema.partial()),\n items: optional(array(QuestItemSchema.partial())),\n progress: optional(\n object({\n total: number(),\n resolved: number(),\n remaining: number(),\n // Lightweight per-item segments for progress bars (list + detail).\n items: optional(\n array(\n object({\n id: string(),\n status: QuestItemStatusSchema,\n waiting_on: optional(nullable(string())),\n waiting_until: optional(nullable(string())),\n waiting_check_every: optional(nullable(string())),\n }).partial()\n )\n ),\n })\n ),\n});\n\n/**\n * Schema used by the backend controller and SDK clients to validate /\n * default the body of `POST /quests/create`. Mirrors how\n * `CreatePostSchema` defaults `org_id`/`team_id` so non-frontend callers\n * don't have to know about `GLOBAL_ORG_ID`.\n *\n * The `items` field accepts either plain strings or full item objects —\n * the backend `createQuestItems`/`createQuest` paths already handle both\n * shapes, and `CreateQuestItemSchema` normalizes strings into\n * `{ description }`.\n */\nconst CreateQuestSchema = CreateAssetSchema.extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n name: optional(nullable(string())).default(null),\n description: optional(nullable(ContentSchema)),\n type: QuestTypeSchema.default(\"closable\"),\n status: QuestStatusSchema.default(\"open\"),\n max_xp_per_contributor: optional(nullable(number().int().nonnegative())),\n items: optional(array(CreateQuestItemSchema)).default([]),\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst UpdateQuestSchema = QuestSchema.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 items: true,\n progress: true,\n is_pinned_in_team: true,\n })\n .extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nconst UpdateQuestItemSchema = CreateQuestItemObjectSchema.partial().extend({\n status: optional(QuestItemStatusSchema),\n});\n\n// ── Entries ────────────────────────────────────────────────────────────\n\nconst EntrySchema = object({\n id: uuid(),\n quest_id: uuid(),\n user_id: uuid(),\n item_id: optional(nullable(uuid())),\n asset_id: optional(nullable(uuid())),\n asset_type: optional(nullable(AssetTypeSchema)),\n assets: optional(nullable(KeyedAssetRefsSchema)),\n description: optional(nullable(ContentSchema)),\n review: optional(nullable(ContentSchema)),\n status: EntryStatusSchema,\n reviewer_id: optional(nullable(uuid())),\n reviewed_at: optional(nullable(string())),\n eval_action_id: optional(nullable(uuid())),\n eval_score: optional(nullable(number())),\n eval_status: optional(nullable(EntryEvalStatusSchema)),\n created_at: string(),\n updated_at: string(),\n});\n\nconst CreateEntrySchema = object({\n item_id: uuid(),\n assets: optional(nullable(KeyedAssetInputSchema)),\n description: optional(nullable(union([string(), ContentSchema]))),\n});\n\nconst ReviewEntrySchema = object({\n status: zodEnum([\"accepted\", \"rejected\"]),\n review: optional(nullable(union([string(), ContentSchema]))),\n});\n\n// ── Exports ────────────────────────────────────────────────────────────\n\nexport {\n KeyedAssetRefsSchema,\n KeyedAssetInputSchema,\n QuestSubmissionAssetDeclarationSchema,\n QuestTypeSchema,\n QuestStatusSchema,\n QuestItemStatusSchema,\n RewardCurrencySchema,\n EntryEvalStatusSchema,\n EntryStatusSchema,\n QuestSchema,\n QuestItemSchema,\n QuestItemBaseSchema,\n CreateQuestSchema,\n CreateQuestItemSchema,\n CreateQuestItemObjectSchema,\n UpdateQuestSchema,\n UpdateQuestItemSchema,\n EntrySchema,\n CreateEntrySchema,\n ReviewEntrySchema,\n};\n\nexport type QuestType = z.infer<typeof QuestTypeSchema>;\nexport type QuestStatus = z.infer<typeof QuestStatusSchema>;\nexport type QuestItemStatus = z.infer<typeof QuestItemStatusSchema>;\nexport type RewardCurrency = z.infer<typeof RewardCurrencySchema>;\nexport type EntryEvalStatus = z.infer<typeof EntryEvalStatusSchema>;\nexport type EntryStatus = z.infer<typeof EntryStatusSchema>;\nexport type Quest = z.infer<typeof QuestSchema>;\nexport type QuestItem = z.infer<typeof QuestItemSchema>;\nexport type CreateQuest = z.infer<typeof CreateQuestSchema>;\nexport type CreateQuestItem = z.infer<typeof CreateQuestItemSchema>;\nexport type UpdateQuest = z.infer<typeof UpdateQuestSchema>;\nexport type UpdateQuestItem = z.infer<typeof UpdateQuestItemSchema>;\nexport type Entry = z.infer<typeof EntrySchema>;\nexport type CreateEntry = z.infer<typeof CreateEntrySchema>;\nexport type ReviewEntry = z.infer<typeof ReviewEntrySchema>;\n"]}
1
+ {"version":3,"sources":["../src/schema/quests.ts"],"names":["QuestTypeSchema","zodEnum","QuestStatusSchema","QuestItemStatusSchema","RewardCurrencySchema","EntryEvalStatusSchema","EntryStatusSchema","TipTapNode","object","string","optional","array","any","record","ContentSchema","literal","QuestItemBaseSchema","uuid","nullable","number","AssetTypeSchema","QuestSubmissionAssetDeclarationSchema","KeyedAssetRefsSchema","zodBoolean","QuestItemSchema","CreateQuestItemObjectSchema","CreateQuestItemSchema","union","s","QuestSpecificsSchema","QuestSchema","AssetSchema","AssetMetadataSchema","CreateQuestSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","UpdateQuestSchema","UpdateQuestItemSchema","EntrySchema","CreateEntrySchema","KeyedAssetInputSchema","ReviewEntrySchema"],"mappings":"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","file":"chunk-DY5QSBE4.js","sourcesContent":["import {\n object,\n string,\n number,\n array,\n literal,\n record,\n type z,\n any,\n optional,\n nullable,\n union,\n uuid,\n boolean as zodBoolean,\n enum as zodEnum,\n type ZodType,\n} from \"zod\";\n\nimport {\n AssetSchema,\n AssetMetadataSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { AssetTypeSchema } from \"./common\";\nimport {\n KeyedAssetRefsSchema,\n KeyedAssetInputSchema,\n QuestSubmissionAssetDeclarationSchema,\n} from \"../utils/quest-submission\";\n\n// ── Enums ──────────────────────────────────────────────────────────────\n\n/** closable: one active entry per item per user; continuous: unlimited per item */\nconst QuestTypeSchema = zodEnum([\"closable\", \"continuous\"]);\nconst QuestStatusSchema = zodEnum([\"draft\", \"open\", \"closed\", \"cancelled\"]);\n\nconst QuestItemStatusSchema = zodEnum([\n \"pending\",\n \"in_progress\",\n \"done\",\n \"skipped\",\n]);\n\nconst RewardCurrencySchema = zodEnum([\"btc\", \"usd\"]);\n\nconst EntryEvalStatusSchema = zodEnum([\n \"skipped\",\n \"running\",\n \"passed\",\n \"failed\",\n \"errored\",\n]);\n\nconst EntryStatusSchema = zodEnum([\"submitted\", \"accepted\", \"rejected\"]);\n\n// ── Content (TipTap) ───────────────────────────────────────────────────\n// Posts/quests share the same rich description shape: { json, text }.\n// We mirror it locally here so the quest schema doesn't depend on posts.\n\nconst TipTapNode: ZodType<any> = object({\n type: string(),\n content: optional(array(any())),\n attrs: optional(record(string(), any())),\n marks: optional(array(any())),\n text: optional(string()),\n});\n\nconst ContentSchema = object({\n json: object({\n type: literal(\"doc\"),\n content: array(TipTapNode),\n }),\n text: string(),\n});\n\n// ── Quest items ────────────────────────────────────────────────────────\n\nconst QuestItemBaseSchema = object({\n id: uuid(),\n quest_id: uuid(),\n description: string(),\n status: QuestItemStatusSchema.default(\"pending\"),\n auto_skipped: optional(nullable(string().or(any()))),\n status_before_auto_skip: optional(nullable(QuestItemStatusSchema)),\n sort_order: number().default(0),\n type: string().default(\"task\"),\n created_by: uuid(),\n assignee_id: optional(nullable(uuid())),\n expected_asset_type: optional(nullable(AssetTypeSchema)),\n reward_xp: number().int().nonnegative().default(0),\n reward_currency: RewardCurrencySchema.default(\"btc\"),\n reward_amount: number().int().nonnegative().default(0),\n child_quest_id: optional(nullable(uuid())),\n eval_route_id: optional(nullable(uuid())),\n eval_score_path: optional(nullable(string())),\n eval_pass_min: optional(nullable(number())),\n eval_pass_max: optional(nullable(number())),\n submission_assets: optional(\n nullable(record(string(), QuestSubmissionAssetDeclarationSchema)),\n ),\n eval_static_inputs: optional(nullable(KeyedAssetRefsSchema)),\n notes: optional(nullable(string())),\n contributor_keys: optional(\n nullable(\n array(\n object({\n key: string(),\n required: zodBoolean().default(true),\n filters: object({\n assetType: optional(string()),\n fileType: optional(string()),\n extensions: optional(array(string())),\n hasConstraints: zodBoolean().default(false),\n }),\n }),\n ),\n ),\n ),\n created_at: string(),\n updated_at: string(),\n});\n\nconst QuestItemSchema = QuestItemBaseSchema;\n\n/**\n * Shape used by `POST /quests/create` (inline items) and\n * `POST /quests/:id/items` (batch add). The controller fills in\n * `quest_id`, `created_by`, and lifecycle-derived fields\n * (`auto_skipped`, `status_before_auto_skip`).\n *\n * Accepts a plain description string as a convenience — it's lifted\n * into `{ description }` by the `union` below.\n */\nconst CreateQuestItemObjectSchema = object({\n description: string().min(1, { message: \"Item description cannot be empty\" }),\n type: optional(string()).default(\"task\"),\n sort_order: optional(number().int()),\n assignee_id: optional(nullable(uuid())),\n expected_asset_type: optional(nullable(AssetTypeSchema)),\n reward_xp: optional(number().int().nonnegative()).default(0),\n reward_currency: optional(RewardCurrencySchema).default(\"btc\"),\n // Amount is in minor units of `reward_currency`: sats for BTC, cents\n // for USD. Both fit in JS numbers comfortably for our reward sizes;\n // the underlying column is `bigint`.\n reward_amount: optional(number().int().nonnegative()).default(0),\n child_quest_id: optional(nullable(uuid())),\n eval_route_id: optional(nullable(uuid())),\n eval_score_path: optional(nullable(string())),\n eval_pass_min: optional(nullable(number())),\n eval_pass_max: optional(nullable(number())),\n submission_assets: optional(\n nullable(record(string(), QuestSubmissionAssetDeclarationSchema)),\n ),\n eval_static_inputs: optional(nullable(KeyedAssetRefsSchema)),\n notes: optional(nullable(string())),\n});\n\nconst CreateQuestItemSchema = union([\n string().transform((s) => ({ description: s })),\n CreateQuestItemObjectSchema,\n]).pipe(CreateQuestItemObjectSchema);\n\n// ── Quest ──────────────────────────────────────────────────────────────\n\nconst QuestSpecificsSchema = object({\n type: QuestTypeSchema.default(\"closable\"),\n status: QuestStatusSchema.default(\"open\"),\n max_xp_per_contributor: optional(nullable(number().int().nonnegative())),\n closed_at: optional(nullable(string())),\n});\n\nconst QuestSchema = AssetSchema.extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n metadata: optional(nullable(AssetMetadataSchema.partial())),\n // List and detail both nest specifics under `quest`. Detail also hoists\n // full items to the top level. Progress (counts + bar segments) is always\n // top-level `progress` on list and detail responses.\n quest: optional(QuestSpecificsSchema.partial()),\n items: optional(array(QuestItemSchema.partial())),\n progress: optional(\n object({\n total: number(),\n resolved: number(),\n remaining: number(),\n // Lightweight per-item segments for progress bars (list + detail).\n items: optional(\n array(\n object({\n id: string(),\n status: QuestItemStatusSchema,\n waiting_on: optional(nullable(string())),\n waiting_until: optional(nullable(string())),\n waiting_check_every: optional(nullable(string())),\n }).partial()\n )\n ),\n })\n ),\n});\n\n/**\n * Schema used by the backend controller and SDK clients to validate /\n * default the body of `POST /quests/create`. Mirrors how\n * `CreatePostSchema` defaults `org_id`/`team_id` so non-frontend callers\n * don't have to know about `GLOBAL_ORG_ID`.\n *\n * The `items` field accepts either plain strings or full item objects —\n * the backend `createQuestItems`/`createQuest` paths already handle both\n * shapes, and `CreateQuestItemSchema` normalizes strings into\n * `{ description }`.\n */\nconst CreateQuestSchema = CreateAssetSchema.extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n name: optional(nullable(string())).default(null),\n description: optional(nullable(ContentSchema)),\n type: QuestTypeSchema.default(\"closable\"),\n status: QuestStatusSchema.default(\"open\"),\n max_xp_per_contributor: optional(nullable(number().int().nonnegative())),\n items: optional(array(CreateQuestItemSchema)).default([]),\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst UpdateQuestSchema = QuestSchema.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 items: true,\n progress: true,\n is_pinned_in_team: true,\n })\n .extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nconst UpdateQuestItemSchema = CreateQuestItemObjectSchema.partial().extend({\n status: optional(QuestItemStatusSchema),\n});\n\n// ── Entries ────────────────────────────────────────────────────────────\n\nconst EntrySchema = object({\n id: uuid(),\n quest_id: uuid(),\n user_id: uuid(),\n item_id: optional(nullable(uuid())),\n asset_id: optional(nullable(uuid())),\n asset_type: optional(nullable(AssetTypeSchema)),\n assets: optional(nullable(KeyedAssetRefsSchema)),\n description: optional(nullable(ContentSchema)),\n review: optional(nullable(ContentSchema)),\n status: EntryStatusSchema,\n reviewer_id: optional(nullable(uuid())),\n reviewed_at: optional(nullable(string())),\n eval_action_id: optional(nullable(uuid())),\n eval_score: optional(nullable(number())),\n eval_status: optional(nullable(EntryEvalStatusSchema)),\n created_at: string(),\n updated_at: string(),\n});\n\nconst CreateEntrySchema = object({\n item_id: uuid(),\n assets: optional(nullable(KeyedAssetInputSchema)),\n description: optional(nullable(union([string(), ContentSchema]))),\n});\n\nconst ReviewEntrySchema = object({\n status: zodEnum([\"accepted\", \"rejected\"]),\n review: optional(nullable(union([string(), ContentSchema]))),\n});\n\n// ── Exports ────────────────────────────────────────────────────────────\n\nexport {\n KeyedAssetRefsSchema,\n KeyedAssetInputSchema,\n QuestSubmissionAssetDeclarationSchema,\n QuestTypeSchema,\n QuestStatusSchema,\n QuestItemStatusSchema,\n RewardCurrencySchema,\n EntryEvalStatusSchema,\n EntryStatusSchema,\n QuestSchema,\n QuestItemSchema,\n QuestItemBaseSchema,\n CreateQuestSchema,\n CreateQuestItemSchema,\n CreateQuestItemObjectSchema,\n UpdateQuestSchema,\n UpdateQuestItemSchema,\n EntrySchema,\n CreateEntrySchema,\n ReviewEntrySchema,\n};\n\nexport type QuestType = z.infer<typeof QuestTypeSchema>;\nexport type QuestStatus = z.infer<typeof QuestStatusSchema>;\nexport type QuestItemStatus = z.infer<typeof QuestItemStatusSchema>;\nexport type RewardCurrency = z.infer<typeof RewardCurrencySchema>;\nexport type EntryEvalStatus = z.infer<typeof EntryEvalStatusSchema>;\nexport type EntryStatus = z.infer<typeof EntryStatusSchema>;\nexport type Quest = z.infer<typeof QuestSchema>;\nexport type QuestItem = z.infer<typeof QuestItemSchema>;\nexport type CreateQuest = z.infer<typeof CreateQuestSchema>;\nexport type CreateQuestItem = z.infer<typeof CreateQuestItemSchema>;\nexport type UpdateQuest = z.infer<typeof UpdateQuestSchema>;\nexport type UpdateQuestItem = z.infer<typeof UpdateQuestItemSchema>;\nexport type Entry = z.infer<typeof EntrySchema>;\nexport type CreateEntry = z.infer<typeof CreateEntrySchema>;\nexport type ReviewEntry = z.infer<typeof ReviewEntrySchema>;\n"]}
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkF5CWCYOP_cjs=require('./chunk-F5CWCYOP.cjs'),chunkROMY5WNQ_cjs=require('./chunk-ROMY5WNQ.cjs'),chunkGY6SLMMJ_cjs=require('./chunk-GY6SLMMJ.cjs'),chunk43KB23BA_cjs=require('./chunk-43KB23BA.cjs'),zod=require('zod');var z=zod.object({members:zod.array(zod.string())}),v=z.extend(chunkROMY5WNQ_cjs.b.partial().shape),U=chunkROMY5WNQ_cjs.c.extend({asset_type:chunk43KB23BA_cjs.a.default("conversation"),name:zod.nullable(zod.string()),metadata:v,users:zod.optional(zod.nullable(zod.array(chunkGY6SLMMJ_cjs.b)))}),S=chunkROMY5WNQ_cjs.d.extend({asset_type:zod.literal("conversation").default("conversation"),monetization:chunk43KB23BA_cjs.d.default("none"),visibility:chunk43KB23BA_cjs.b.default("private"),name:zod.string().optional().nullable().default("").transform(e=>e==null?void 0:e.trim()).transform(e=>e||null),metadata:v}),j=S.transform(e=>chunkROMY5WNQ_cjs.a(e)),B=S.omit({id:true,org_id:true,team_id:true}).partial().transform(e=>chunkROMY5WNQ_cjs.a(e)),P=zod.object({id:zod.uuid(),conversation_id:zod.uuid(),turn_id:zod.uuid(),seq:zod.number(),user_id:zod.uuid(),user:zod.optional(zod.nullable(chunkGY6SLMMJ_cjs.b)),type:zod.string().default("message"),created_at:zod.string(),last_updated:zod.string(),viewers:zod.array(zod.uuid()),json:chunkF5CWCYOP_cjs.a,text:zod.string(),metadata:zod.optional(zod.nullable(zod.record(zod.string(),zod.any())))});exports.a=U;exports.b=j;exports.c=B;exports.d=P;//# sourceMappingURL=chunk-DBEBXFQI.cjs.map
2
- //# sourceMappingURL=chunk-DBEBXFQI.cjs.map
1
+ 'use strict';var chunkNTWSEN2H_cjs=require('./chunk-NTWSEN2H.cjs'),chunk5EQ5LO7V_cjs=require('./chunk-5EQ5LO7V.cjs'),chunkGY6SLMMJ_cjs=require('./chunk-GY6SLMMJ.cjs'),chunk43KB23BA_cjs=require('./chunk-43KB23BA.cjs'),zod=require('zod');var z=zod.object({members:zod.array(zod.string())}),v=z.extend(chunk5EQ5LO7V_cjs.b.partial().shape),U=chunk5EQ5LO7V_cjs.f.extend({asset_type:chunk43KB23BA_cjs.a.default("conversation"),name:zod.nullable(zod.string()),metadata:v,users:zod.optional(zod.nullable(zod.array(chunkGY6SLMMJ_cjs.b)))}),S=chunk5EQ5LO7V_cjs.g.extend({asset_type:zod.literal("conversation").default("conversation"),monetization:chunk43KB23BA_cjs.d.default("none"),visibility:chunk43KB23BA_cjs.b.default("private"),name:zod.string().optional().nullable().default("").transform(e=>e==null?void 0:e.trim()).transform(e=>e||null),metadata:v}),j=S.transform(e=>chunk5EQ5LO7V_cjs.a(e)),B=S.omit({id:true,org_id:true,team_id:true}).partial().transform(e=>chunk5EQ5LO7V_cjs.a(e)),P=zod.object({id:zod.uuid(),conversation_id:zod.uuid(),turn_id:zod.uuid(),seq:zod.number(),user_id:zod.uuid(),user:zod.optional(zod.nullable(chunkGY6SLMMJ_cjs.b)),type:zod.string().default("message"),created_at:zod.string(),last_updated:zod.string(),viewers:zod.array(zod.uuid()),json:chunkNTWSEN2H_cjs.a,text:zod.string(),metadata:zod.optional(zod.nullable(zod.record(zod.string(),zod.any())))});exports.a=U;exports.b=j;exports.c=B;exports.d=P;//# sourceMappingURL=chunk-HW6FGPTA.cjs.map
2
+ //# sourceMappingURL=chunk-HW6FGPTA.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schema/conversations.ts"],"names":["BaseConversationMetadataSchema","object","array","string","ConversationMetadataSchema","AssetMetadataSchema","ConversationSchema","AssetSchema","AssetTypeSchema","nullable","optional","ProfileSchema","BaseCreateConversationSchema","CreateAssetSchema","literal","MonetizationSchema","VisibilitySchema","x","CreateConversationSchema","value","normalizeAssetConfigForParsing","UpdateConversationSchema","MessageSchema","uuid","number","TipTapSchema","record","any"],"mappings":"4OA4BMA,IAAAA,CAAAA,CAAiCC,WAAO,CAC5C,OAAA,CAASC,UAAMC,UAAO,EAAC,CACzB,CAAC,CAAA,CAEKC,EAA6BJ,CAA+B,CAAA,MAAA,CAChEK,oBAAoB,OAAQ,EAAA,CAAE,KAChC,CAEMC,CAAAA,CAAAA,CAAqBC,oBAAY,MAAO,CAAA,CAC5C,UAAYC,CAAAA,mBAAAA,CAAgB,OAAQ,CAAA,cAAc,EAElD,IAAMC,CAAAA,YAAAA,CAASN,YAAQ,CAAA,CACvB,SAAUC,CACV,CAAA,KAAA,CAAOM,aAASD,YAASP,CAAAA,SAAAA,CAAMS,mBAAa,CAAC,CAAC,CAChD,CAAC,CAAA,CAEKC,EAA+BC,mBAAkB,CAAA,MAAA,CAAO,CAC5D,UAAA,CAAYC,WAAQ,CAAA,cAAc,EAAE,OAAQ,CAAA,cAAc,EAC1D,YAAcC,CAAAA,mBAAAA,CAAmB,QAAQ,MAAM,CAAA,CAC/C,UAAYC,CAAAA,mBAAAA,CAAiB,OAAQ,CAAA,SAAS,EAE9C,IAAMb,CAAAA,UAAAA,GACH,QAAS,EAAA,CACT,UACA,CAAA,OAAA,CAAQ,EAAE,CAAA,CACV,SAAWc,CAAAA,CAAAA,EAAMA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAG,MAAM,CAC1B,CAAA,SAAA,CAAWA,GAAMA,CAAK,EAAA,IAAI,EAC7B,QAAUb,CAAAA,CACZ,CAAC,CAEKc,CAAAA,CAAAA,CAA2BN,EAC9B,SAAWO,CAAAA,CAAAA,EAAUC,oBAA+BD,CAAK,CAAC,CAGvDE,CAAAA,CAAAA,CAA2BT,CAA6B,CAAA,IAAA,CAAK,CACjE,EAAI,CAAA,IAAA,CACJ,OAAQ,IACR,CAAA,OAAA,CAAS,IAKX,CAAC,CAAA,CAAE,SAAU,CAAA,SAAA,CAAWO,GAAUC,mBAA+BD,CAAAA,CAAK,CAAC,CAEjEG,CAAAA,CAAAA,CAAgBrB,WAAO,CAC3B,EAAA,CAAIsB,QAAK,EAAA,CACT,eAAiBA,CAAAA,QAAAA,GACjB,OAASA,CAAAA,QAAAA,GACT,GAAKC,CAAAA,UAAAA,GACL,OAASD,CAAAA,QAAAA,GACT,IAAMb,CAAAA,YAAAA,CAASD,aAASE,mBAAa,CAAC,EACtC,IAAMR,CAAAA,UAAAA,GAAS,OAAQ,CAAA,SAAS,CAChC,CAAA,UAAA,CAAYA,UAAO,EAAA,CACnB,aAAcA,UAAO,EAAA,CACrB,QAASD,SAAMqB,CAAAA,QAAAA,EAAM,CACrB,CAAA,IAAA,CAAME,mBACN,CAAA,IAAA,CAAMtB,UAAO,EAAA,CACb,SAAUO,YAASD,CAAAA,YAAAA,CAASiB,WAAOvB,UAAO,EAAA,CAAGwB,SAAK,CAAC,CAAC,CACtD,CAAC","file":"chunk-DBEBXFQI.cjs","sourcesContent":["import {\n object,\n string,\n number,\n uuid,\n array,\n type z,\n record,\n any,\n optional,\n nullable,\n literal\n} from \"zod\";\n\nimport {\n AssetTypeSchema,\n MonetizationSchema,\n VisibilitySchema,\n} from \"./common\";\nimport {\n AssetMetadataSchema,\n AssetSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { TipTapSchema } from \"./posts\";\nimport { ProfileSchema } from \"./users\";\n\nconst BaseConversationMetadataSchema = object({\n members: array(string()),\n});\n\nconst ConversationMetadataSchema = BaseConversationMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst ConversationSchema = AssetSchema.extend({\n asset_type: AssetTypeSchema.default(\"conversation\"),\n // Agents often name conversations after the first exchange; allow null until then.\n name: nullable(string()),\n metadata: ConversationMetadataSchema,\n users: optional(nullable(array(ProfileSchema))),\n});\n\nconst BaseCreateConversationSchema = CreateAssetSchema.extend({\n asset_type: literal(\"conversation\").default(\"conversation\"),\n monetization: MonetizationSchema.default(\"none\"),\n visibility: VisibilitySchema.default(\"private\"),\n // Optional like posts — leave blank and let a responding agent name it.\n name: string()\n .optional()\n .nullable()\n .default(\"\")\n .transform((x) => x?.trim())\n .transform((x) => x || null),\n metadata: ConversationMetadataSchema,\n});\n\nconst CreateConversationSchema = BaseCreateConversationSchema\n .transform((value) => normalizeAssetConfigForParsing(value));\n\n// Partial because we can make updates to conversations without providing all fields\nconst UpdateConversationSchema = BaseCreateConversationSchema.omit({\n id: true,\n org_id: true,\n team_id: true,\n // team: true,\n // user: true,\n // organization: true,\n // slug: true,\n}).partial().transform((value) => normalizeAssetConfigForParsing(value));\n\nconst MessageSchema = object({\n id: uuid(),\n conversation_id: uuid(),\n turn_id: uuid(),\n seq: number(),\n user_id: uuid(),\n user: optional(nullable(ProfileSchema)),\n type: string().default(\"message\"),\n created_at: string(),\n last_updated: string(),\n viewers: array(uuid()),\n json: TipTapSchema,\n text: string(),\n metadata: optional(nullable(record(string(), any()))),\n});\n\nexport {\n MessageSchema,\n UpdateConversationSchema,\n CreateConversationSchema,\n ConversationSchema,\n};\nexport type Conversation = z.infer<typeof ConversationSchema>;\nexport type CreateConversation = z.infer<typeof CreateConversationSchema>;\nexport type UpdateConversation = z.infer<typeof UpdateConversationSchema>;\nexport type Message = z.infer<typeof MessageSchema>;\n"]}
1
+ {"version":3,"sources":["../src/schema/conversations.ts"],"names":["BaseConversationMetadataSchema","object","array","string","ConversationMetadataSchema","AssetMetadataSchema","ConversationSchema","AssetSchema","AssetTypeSchema","nullable","optional","ProfileSchema","BaseCreateConversationSchema","CreateAssetSchema","literal","MonetizationSchema","VisibilitySchema","x","CreateConversationSchema","value","normalizeAssetConfigForParsing","UpdateConversationSchema","MessageSchema","uuid","number","TipTapSchema","record","any"],"mappings":"4OA4BMA,IAAAA,CAAAA,CAAiCC,WAAO,CAC5C,OAAA,CAASC,UAAMC,UAAO,EAAC,CACzB,CAAC,CAAA,CAEKC,EAA6BJ,CAA+B,CAAA,MAAA,CAChEK,oBAAoB,OAAQ,EAAA,CAAE,KAChC,CAEMC,CAAAA,CAAAA,CAAqBC,oBAAY,MAAO,CAAA,CAC5C,UAAYC,CAAAA,mBAAAA,CAAgB,OAAQ,CAAA,cAAc,EAElD,IAAMC,CAAAA,YAAAA,CAASN,YAAQ,CAAA,CACvB,SAAUC,CACV,CAAA,KAAA,CAAOM,aAASD,YAASP,CAAAA,SAAAA,CAAMS,mBAAa,CAAC,CAAC,CAChD,CAAC,CAAA,CAEKC,EAA+BC,mBAAkB,CAAA,MAAA,CAAO,CAC5D,UAAA,CAAYC,WAAQ,CAAA,cAAc,EAAE,OAAQ,CAAA,cAAc,EAC1D,YAAcC,CAAAA,mBAAAA,CAAmB,QAAQ,MAAM,CAAA,CAC/C,UAAYC,CAAAA,mBAAAA,CAAiB,OAAQ,CAAA,SAAS,EAE9C,IAAMb,CAAAA,UAAAA,GACH,QAAS,EAAA,CACT,UACA,CAAA,OAAA,CAAQ,EAAE,CAAA,CACV,SAAWc,CAAAA,CAAAA,EAAMA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAG,MAAM,CAC1B,CAAA,SAAA,CAAWA,GAAMA,CAAK,EAAA,IAAI,EAC7B,QAAUb,CAAAA,CACZ,CAAC,CAEKc,CAAAA,CAAAA,CAA2BN,EAC9B,SAAWO,CAAAA,CAAAA,EAAUC,oBAA+BD,CAAK,CAAC,CAGvDE,CAAAA,CAAAA,CAA2BT,CAA6B,CAAA,IAAA,CAAK,CACjE,EAAI,CAAA,IAAA,CACJ,OAAQ,IACR,CAAA,OAAA,CAAS,IAKX,CAAC,CAAA,CAAE,SAAU,CAAA,SAAA,CAAWO,GAAUC,mBAA+BD,CAAAA,CAAK,CAAC,CAEjEG,CAAAA,CAAAA,CAAgBrB,WAAO,CAC3B,EAAA,CAAIsB,QAAK,EAAA,CACT,eAAiBA,CAAAA,QAAAA,GACjB,OAASA,CAAAA,QAAAA,GACT,GAAKC,CAAAA,UAAAA,GACL,OAASD,CAAAA,QAAAA,GACT,IAAMb,CAAAA,YAAAA,CAASD,aAASE,mBAAa,CAAC,EACtC,IAAMR,CAAAA,UAAAA,GAAS,OAAQ,CAAA,SAAS,CAChC,CAAA,UAAA,CAAYA,UAAO,EAAA,CACnB,aAAcA,UAAO,EAAA,CACrB,QAASD,SAAMqB,CAAAA,QAAAA,EAAM,CACrB,CAAA,IAAA,CAAME,mBACN,CAAA,IAAA,CAAMtB,UAAO,EAAA,CACb,SAAUO,YAASD,CAAAA,YAAAA,CAASiB,WAAOvB,UAAO,EAAA,CAAGwB,SAAK,CAAC,CAAC,CACtD,CAAC","file":"chunk-HW6FGPTA.cjs","sourcesContent":["import {\n object,\n string,\n number,\n uuid,\n array,\n type z,\n record,\n any,\n optional,\n nullable,\n literal\n} from \"zod\";\n\nimport {\n AssetTypeSchema,\n MonetizationSchema,\n VisibilitySchema,\n} from \"./common\";\nimport {\n AssetMetadataSchema,\n AssetSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { TipTapSchema } from \"./posts\";\nimport { ProfileSchema } from \"./users\";\n\nconst BaseConversationMetadataSchema = object({\n members: array(string()),\n});\n\nconst ConversationMetadataSchema = BaseConversationMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst ConversationSchema = AssetSchema.extend({\n asset_type: AssetTypeSchema.default(\"conversation\"),\n // Agents often name conversations after the first exchange; allow null until then.\n name: nullable(string()),\n metadata: ConversationMetadataSchema,\n users: optional(nullable(array(ProfileSchema))),\n});\n\nconst BaseCreateConversationSchema = CreateAssetSchema.extend({\n asset_type: literal(\"conversation\").default(\"conversation\"),\n monetization: MonetizationSchema.default(\"none\"),\n visibility: VisibilitySchema.default(\"private\"),\n // Optional like posts — leave blank and let a responding agent name it.\n name: string()\n .optional()\n .nullable()\n .default(\"\")\n .transform((x) => x?.trim())\n .transform((x) => x || null),\n metadata: ConversationMetadataSchema,\n});\n\nconst CreateConversationSchema = BaseCreateConversationSchema\n .transform((value) => normalizeAssetConfigForParsing(value));\n\n// Partial because we can make updates to conversations without providing all fields\nconst UpdateConversationSchema = BaseCreateConversationSchema.omit({\n id: true,\n org_id: true,\n team_id: true,\n // team: true,\n // user: true,\n // organization: true,\n // slug: true,\n}).partial().transform((value) => normalizeAssetConfigForParsing(value));\n\nconst MessageSchema = object({\n id: uuid(),\n conversation_id: uuid(),\n turn_id: uuid(),\n seq: number(),\n user_id: uuid(),\n user: optional(nullable(ProfileSchema)),\n type: string().default(\"message\"),\n created_at: string(),\n last_updated: string(),\n viewers: array(uuid()),\n json: TipTapSchema,\n text: string(),\n metadata: optional(nullable(record(string(), any()))),\n});\n\nexport {\n MessageSchema,\n UpdateConversationSchema,\n CreateConversationSchema,\n ConversationSchema,\n};\nexport type Conversation = z.infer<typeof ConversationSchema>;\nexport type CreateConversation = z.infer<typeof CreateConversationSchema>;\nexport type UpdateConversation = z.infer<typeof UpdateConversationSchema>;\nexport type Message = z.infer<typeof MessageSchema>;\n"]}
@@ -1,2 +1,2 @@
1
- import {c,a}from'./chunk-SR5UZ4NP.js';import {uuidv7}from'uuidv7';import {optional,literal,nullable,object,array,string,record,any}from'zod';var l=c.extend({asset_type:literal("comment").default("comment"),preview:optional(nullable(object({type:string().refine(t=>t==="doc"),content:array(record(string(),any()))}).default({type:"doc",content:[]})))}),C=l.partial().omit({id:true,user_id:true}).extend({asset_type:literal("comment").default("comment"),id:string().default(()=>uuidv7()),name:string().default(""),created_at:string().default(()=>new Date().toISOString()),last_updated:string().default(()=>new Date().toISOString())}).transform(t=>a(t));export{l as a,C as b};//# sourceMappingURL=chunk-G3VMEPTP.js.map
2
- //# sourceMappingURL=chunk-G3VMEPTP.js.map
1
+ import {f,a}from'./chunk-TGOXRPF5.js';import {uuidv7}from'uuidv7';import {optional,literal,nullable,object,array,string,record,any}from'zod';var l=f.extend({asset_type:literal("comment").default("comment"),preview:optional(nullable(object({type:string().refine(t=>t==="doc"),content:array(record(string(),any()))}).default({type:"doc",content:[]})))}),C=l.partial().omit({id:true,user_id:true}).extend({asset_type:literal("comment").default("comment"),id:string().default(()=>uuidv7()),name:string().default(""),created_at:string().default(()=>new Date().toISOString()),last_updated:string().default(()=>new Date().toISOString())}).transform(t=>a(t));export{l as a,C as b};//# sourceMappingURL=chunk-ITF5WQQB.js.map
2
+ //# sourceMappingURL=chunk-ITF5WQQB.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","value","normalizeAssetConfigForParsing"],"mappings":"6IAeMA,IAAAA,CAAAA,CAAgBC,CAAY,CAAA,MAAA,CAAO,CACvC,UAAA,CAAYC,OAAQ,CAAA,SAAS,EAAE,OAAQ,CAAA,SAAS,CAChD,CAAA,OAAA,CAASC,QACPC,CAAAA,QAAAA,CACEC,MAAO,CAAA,CACL,IAAMC,CAAAA,MAAAA,EAAS,CAAA,MAAA,CAAQC,CAAMA,EAAAA,CAAAA,GAAM,KAAK,CAAA,CACxC,QAASC,KAAMC,CAAAA,MAAAA,CAAOH,MAAO,EAAA,CAAGI,GAAI,EAAC,CAAC,CACxC,CAAC,CAAA,CAAE,OAAQ,CAAA,CAAE,IAAM,CAAA,KAAA,CAAO,OAAS,CAAA,EAAG,CAAC,CACzC,CACF,CACF,CAAC,CAAA,CAEKC,CAAsBX,CAAAA,CAAAA,CAAc,OAAQ,EAAA,CAC/C,IAAK,CAAA,CACJ,EAAI,CAAA,IAAA,CACJ,OAAS,CAAA,IACX,CAAC,CACA,CAAA,MAAA,CAAO,CACN,UAAA,CAAYE,OAAQ,CAAA,SAAS,CAAE,CAAA,OAAA,CAAQ,SAAS,CAAA,CAChD,EAAII,CAAAA,MAAAA,EAAS,CAAA,OAAA,CAAQ,IAAMM,MAAAA,EAAQ,CACnC,CAAA,IAAA,CAAMN,MAAO,EAAA,CAAE,OAAQ,CAAA,EAAE,CACzB,CAAA,UAAA,CAAYA,MAAO,EAAA,CAAE,OAAQ,CAAA,IAAM,IAAI,IAAA,EAAO,CAAA,WAAA,EAAa,CAC3D,CAAA,YAAA,CAAcA,MAAO,EAAA,CAAE,OAAQ,CAAA,IAAM,IAAI,IAAA,GAAO,WAAY,EAAC,CAC/D,CAAC,CACA,CAAA,SAAA,CAAWO,CAAUC,EAAAA,CAAAA,CAA+BD,CAAK,CAAC","file":"chunk-G3VMEPTP.js","sourcesContent":["import { uuidv7 } from \"uuidv7\";\nimport {\n object,\n string,\n array,\n type z,\n record,\n any,\n literal,\n optional,\n nullable\n} from \"zod\";\n\nimport { AssetSchema, normalizeAssetConfigForParsing } from \"./assets\";\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 created_at: string().default(() => new Date().toISOString()),\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nexport { CommentSchema, CreateCommentSchema };\nexport type Comment = z.infer<typeof CommentSchema>;\nexport type CreateComment = z.infer<typeof CreateCommentSchema>;\n"]}
1
+ {"version":3,"sources":["../src/schema/comments.ts"],"names":["CommentSchema","AssetSchema","literal","optional","nullable","object","string","x","array","record","any","CreateCommentSchema","uuidv7","value","normalizeAssetConfigForParsing"],"mappings":"6IAeMA,IAAAA,CAAAA,CAAgBC,CAAY,CAAA,MAAA,CAAO,CACvC,UAAA,CAAYC,OAAQ,CAAA,SAAS,EAAE,OAAQ,CAAA,SAAS,CAChD,CAAA,OAAA,CAASC,QACPC,CAAAA,QAAAA,CACEC,MAAO,CAAA,CACL,IAAMC,CAAAA,MAAAA,EAAS,CAAA,MAAA,CAAQC,CAAMA,EAAAA,CAAAA,GAAM,KAAK,CAAA,CACxC,QAASC,KAAMC,CAAAA,MAAAA,CAAOH,MAAO,EAAA,CAAGI,GAAI,EAAC,CAAC,CACxC,CAAC,CAAA,CAAE,OAAQ,CAAA,CAAE,IAAM,CAAA,KAAA,CAAO,OAAS,CAAA,EAAG,CAAC,CACzC,CACF,CACF,CAAC,CAAA,CAEKC,CAAsBX,CAAAA,CAAAA,CAAc,OAAQ,EAAA,CAC/C,IAAK,CAAA,CACJ,EAAI,CAAA,IAAA,CACJ,OAAS,CAAA,IACX,CAAC,CACA,CAAA,MAAA,CAAO,CACN,UAAA,CAAYE,OAAQ,CAAA,SAAS,CAAE,CAAA,OAAA,CAAQ,SAAS,CAAA,CAChD,EAAII,CAAAA,MAAAA,EAAS,CAAA,OAAA,CAAQ,IAAMM,MAAAA,EAAQ,CACnC,CAAA,IAAA,CAAMN,MAAO,EAAA,CAAE,OAAQ,CAAA,EAAE,CACzB,CAAA,UAAA,CAAYA,MAAO,EAAA,CAAE,OAAQ,CAAA,IAAM,IAAI,IAAA,EAAO,CAAA,WAAA,EAAa,CAC3D,CAAA,YAAA,CAAcA,MAAO,EAAA,CAAE,OAAQ,CAAA,IAAM,IAAI,IAAA,GAAO,WAAY,EAAC,CAC/D,CAAC,CACA,CAAA,SAAA,CAAWO,CAAUC,EAAAA,CAAAA,CAA+BD,CAAK,CAAC","file":"chunk-ITF5WQQB.js","sourcesContent":["import { uuidv7 } from \"uuidv7\";\nimport {\n object,\n string,\n array,\n type z,\n record,\n any,\n literal,\n optional,\n nullable\n} from \"zod\";\n\nimport { AssetSchema, normalizeAssetConfigForParsing } from \"./assets\";\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 created_at: string().default(() => new Date().toISOString()),\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nexport { CommentSchema, CreateCommentSchema };\nexport type Comment = z.infer<typeof CommentSchema>;\nexport type CreateComment = z.infer<typeof CreateCommentSchema>;\n"]}
@@ -1,2 +1,2 @@
1
- 'use strict';var chunk6ZJQTECB_cjs=require('./chunk-6ZJQTECB.cjs'),chunkROMY5WNQ_cjs=require('./chunk-ROMY5WNQ.cjs'),chunk43KB23BA_cjs=require('./chunk-43KB23BA.cjs'),zod=require('zod');var z=zod.enum(["closable","continuous"]),E=zod.enum(["draft","open","closed","cancelled"]),_=zod.enum(["pending","in_progress","done","skipped"]),C=zod.enum(["btc","usd"]),I=zod.enum(["skipped","running","passed","failed","errored"]),q=zod.enum(["submitted","accepted","rejected"]),k=zod.object({type:zod.string(),content:zod.optional(zod.array(zod.any())),attrs:zod.optional(zod.record(zod.string(),zod.any())),marks:zod.optional(zod.array(zod.any())),text:zod.optional(zod.string())}),p=zod.object({json:zod.object({type:zod.literal("doc"),content:zod.array(k)}),text:zod.string()}),T=zod.object({id:zod.uuid(),quest_id:zod.uuid(),description:zod.string(),status:_.default("pending"),auto_skipped:zod.optional(zod.nullable(zod.string().or(zod.any()))),status_before_auto_skip:zod.optional(zod.nullable(_)),sort_order:zod.number().default(0),type:zod.string().default("task"),created_by:zod.uuid(),assignee_id:zod.optional(zod.nullable(zod.uuid())),expected_asset_type:zod.optional(zod.nullable(chunk43KB23BA_cjs.a)),reward_xp:zod.number().int().nonnegative().default(0),reward_currency:C.default("btc"),reward_amount:zod.number().int().nonnegative().default(0),child_quest_id:zod.optional(zod.nullable(zod.uuid())),eval_route_id:zod.optional(zod.nullable(zod.uuid())),eval_score_path:zod.optional(zod.nullable(zod.string())),eval_pass_min:zod.optional(zod.nullable(zod.number())),eval_pass_max:zod.optional(zod.nullable(zod.number())),submission_assets:zod.optional(zod.nullable(zod.record(zod.string(),chunk6ZJQTECB_cjs.d))),eval_static_inputs:zod.optional(zod.nullable(chunk6ZJQTECB_cjs.a)),notes:zod.optional(zod.nullable(zod.string())),contributor_keys:zod.optional(zod.nullable(zod.array(zod.object({key:zod.string(),required:zod.boolean().default(true),filters:zod.object({assetType:zod.optional(zod.string()),fileType:zod.optional(zod.string()),extensions:zod.optional(zod.array(zod.string())),hasConstraints:zod.boolean().default(false)})})))),created_at:zod.string(),updated_at:zod.string()}),A=T,S=zod.object({description:zod.string().min(1,{message:"Item description cannot be empty"}),type:zod.optional(zod.string()).default("task"),sort_order:zod.optional(zod.number().int()),assignee_id:zod.optional(zod.nullable(zod.uuid())),expected_asset_type:zod.optional(zod.nullable(chunk43KB23BA_cjs.a)),reward_xp:zod.optional(zod.number().int().nonnegative()).default(0),reward_currency:zod.optional(C).default("btc"),reward_amount:zod.optional(zod.number().int().nonnegative()).default(0),child_quest_id:zod.optional(zod.nullable(zod.uuid())),eval_route_id:zod.optional(zod.nullable(zod.uuid())),eval_score_path:zod.optional(zod.nullable(zod.string())),eval_pass_min:zod.optional(zod.nullable(zod.number())),eval_pass_max:zod.optional(zod.nullable(zod.number())),submission_assets:zod.optional(zod.nullable(zod.record(zod.string(),chunk6ZJQTECB_cjs.d))),eval_static_inputs:zod.optional(zod.nullable(chunk6ZJQTECB_cjs.a)),notes:zod.optional(zod.nullable(zod.string()))}),R=zod.union([zod.string().transform(u=>({description:u})),S]).pipe(S),U=zod.object({type:z.default("closable"),status:E.default("open"),max_xp_per_contributor:zod.optional(zod.nullable(zod.number().int().nonnegative())),closed_at:zod.optional(zod.nullable(zod.string()))}),j=chunkROMY5WNQ_cjs.c.extend({asset_type:zod.literal("quest").default("quest"),metadata:zod.optional(zod.nullable(chunkROMY5WNQ_cjs.b.partial())),quest:zod.optional(U.partial()),items:zod.optional(zod.array(A.partial())),progress:zod.optional(zod.object({total:zod.number(),resolved:zod.number(),remaining:zod.number(),items:zod.optional(zod.array(zod.object({id:zod.string(),status:_,waiting_on:zod.optional(zod.nullable(zod.string())),waiting_until:zod.optional(zod.nullable(zod.string())),waiting_check_every:zod.optional(zod.nullable(zod.string()))}).partial()))}))}),Z=chunkROMY5WNQ_cjs.d.extend({asset_type:zod.literal("quest").default("quest"),name:zod.optional(zod.nullable(zod.string())).default(null),description:zod.optional(zod.nullable(p)),type:z.default("closable"),status:E.default("open"),max_xp_per_contributor:zod.optional(zod.nullable(zod.number().int().nonnegative())),items:zod.optional(zod.array(R)).default([])}).transform(u=>chunkROMY5WNQ_cjs.a(u)),F=j.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,organization:true,user:true,team:true,slug:true,items:true,progress:true,is_pinned_in_team:true}).extend({asset_type:zod.literal("quest").default("quest"),last_updated:zod.string().default(()=>new Date().toISOString())}).transform(u=>chunkROMY5WNQ_cjs.a(u)),M=S.partial().extend({status:zod.optional(_)}),N=zod.object({id:zod.uuid(),quest_id:zod.uuid(),user_id:zod.uuid(),item_id:zod.optional(zod.nullable(zod.uuid())),asset_id:zod.optional(zod.nullable(zod.uuid())),asset_type:zod.optional(zod.nullable(chunk43KB23BA_cjs.a)),assets:zod.optional(zod.nullable(chunk6ZJQTECB_cjs.a)),description:zod.optional(zod.nullable(p)),review:zod.optional(zod.nullable(p)),status:q,reviewer_id:zod.optional(zod.nullable(zod.uuid())),reviewed_at:zod.optional(zod.nullable(zod.string())),eval_action_id:zod.optional(zod.nullable(zod.uuid())),eval_score:zod.optional(zod.nullable(zod.number())),eval_status:zod.optional(zod.nullable(I)),created_at:zod.string(),updated_at:zod.string()}),P=zod.object({item_id:zod.uuid(),assets:zod.optional(zod.nullable(chunk6ZJQTECB_cjs.c)),description:zod.optional(zod.nullable(zod.union([zod.string(),p])))}),G=zod.object({status:zod.enum(["accepted","rejected"]),review:zod.optional(zod.nullable(zod.union([zod.string(),p])))});exports.a=z;exports.b=E;exports.c=_;exports.d=C;exports.e=I;exports.f=q;exports.g=T;exports.h=A;exports.i=S;exports.j=R;exports.k=j;exports.l=Z;exports.m=F;exports.n=M;exports.o=N;exports.p=P;exports.q=G;//# sourceMappingURL=chunk-IBRRR3T2.cjs.map
2
- //# sourceMappingURL=chunk-IBRRR3T2.cjs.map
1
+ 'use strict';var chunkQNERXSMJ_cjs=require('./chunk-QNERXSMJ.cjs'),chunk5EQ5LO7V_cjs=require('./chunk-5EQ5LO7V.cjs'),chunk43KB23BA_cjs=require('./chunk-43KB23BA.cjs'),zod=require('zod');var z=zod.enum(["closable","continuous"]),E=zod.enum(["draft","open","closed","cancelled"]),_=zod.enum(["pending","in_progress","done","skipped"]),C=zod.enum(["btc","usd"]),I=zod.enum(["skipped","running","passed","failed","errored"]),q=zod.enum(["submitted","accepted","rejected"]),k=zod.object({type:zod.string(),content:zod.optional(zod.array(zod.any())),attrs:zod.optional(zod.record(zod.string(),zod.any())),marks:zod.optional(zod.array(zod.any())),text:zod.optional(zod.string())}),p=zod.object({json:zod.object({type:zod.literal("doc"),content:zod.array(k)}),text:zod.string()}),T=zod.object({id:zod.uuid(),quest_id:zod.uuid(),description:zod.string(),status:_.default("pending"),auto_skipped:zod.optional(zod.nullable(zod.string().or(zod.any()))),status_before_auto_skip:zod.optional(zod.nullable(_)),sort_order:zod.number().default(0),type:zod.string().default("task"),created_by:zod.uuid(),assignee_id:zod.optional(zod.nullable(zod.uuid())),expected_asset_type:zod.optional(zod.nullable(chunk43KB23BA_cjs.a)),reward_xp:zod.number().int().nonnegative().default(0),reward_currency:C.default("btc"),reward_amount:zod.number().int().nonnegative().default(0),child_quest_id:zod.optional(zod.nullable(zod.uuid())),eval_route_id:zod.optional(zod.nullable(zod.uuid())),eval_score_path:zod.optional(zod.nullable(zod.string())),eval_pass_min:zod.optional(zod.nullable(zod.number())),eval_pass_max:zod.optional(zod.nullable(zod.number())),submission_assets:zod.optional(zod.nullable(zod.record(zod.string(),chunkQNERXSMJ_cjs.d))),eval_static_inputs:zod.optional(zod.nullable(chunkQNERXSMJ_cjs.a)),notes:zod.optional(zod.nullable(zod.string())),contributor_keys:zod.optional(zod.nullable(zod.array(zod.object({key:zod.string(),required:zod.boolean().default(true),filters:zod.object({assetType:zod.optional(zod.string()),fileType:zod.optional(zod.string()),extensions:zod.optional(zod.array(zod.string())),hasConstraints:zod.boolean().default(false)})})))),created_at:zod.string(),updated_at:zod.string()}),A=T,S=zod.object({description:zod.string().min(1,{message:"Item description cannot be empty"}),type:zod.optional(zod.string()).default("task"),sort_order:zod.optional(zod.number().int()),assignee_id:zod.optional(zod.nullable(zod.uuid())),expected_asset_type:zod.optional(zod.nullable(chunk43KB23BA_cjs.a)),reward_xp:zod.optional(zod.number().int().nonnegative()).default(0),reward_currency:zod.optional(C).default("btc"),reward_amount:zod.optional(zod.number().int().nonnegative()).default(0),child_quest_id:zod.optional(zod.nullable(zod.uuid())),eval_route_id:zod.optional(zod.nullable(zod.uuid())),eval_score_path:zod.optional(zod.nullable(zod.string())),eval_pass_min:zod.optional(zod.nullable(zod.number())),eval_pass_max:zod.optional(zod.nullable(zod.number())),submission_assets:zod.optional(zod.nullable(zod.record(zod.string(),chunkQNERXSMJ_cjs.d))),eval_static_inputs:zod.optional(zod.nullable(chunkQNERXSMJ_cjs.a)),notes:zod.optional(zod.nullable(zod.string()))}),R=zod.union([zod.string().transform(u=>({description:u})),S]).pipe(S),U=zod.object({type:z.default("closable"),status:E.default("open"),max_xp_per_contributor:zod.optional(zod.nullable(zod.number().int().nonnegative())),closed_at:zod.optional(zod.nullable(zod.string()))}),j=chunk5EQ5LO7V_cjs.f.extend({asset_type:zod.literal("quest").default("quest"),metadata:zod.optional(zod.nullable(chunk5EQ5LO7V_cjs.b.partial())),quest:zod.optional(U.partial()),items:zod.optional(zod.array(A.partial())),progress:zod.optional(zod.object({total:zod.number(),resolved:zod.number(),remaining:zod.number(),items:zod.optional(zod.array(zod.object({id:zod.string(),status:_,waiting_on:zod.optional(zod.nullable(zod.string())),waiting_until:zod.optional(zod.nullable(zod.string())),waiting_check_every:zod.optional(zod.nullable(zod.string()))}).partial()))}))}),Z=chunk5EQ5LO7V_cjs.g.extend({asset_type:zod.literal("quest").default("quest"),name:zod.optional(zod.nullable(zod.string())).default(null),description:zod.optional(zod.nullable(p)),type:z.default("closable"),status:E.default("open"),max_xp_per_contributor:zod.optional(zod.nullable(zod.number().int().nonnegative())),items:zod.optional(zod.array(R)).default([])}).transform(u=>chunk5EQ5LO7V_cjs.a(u)),F=j.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,organization:true,user:true,team:true,slug:true,items:true,progress:true,is_pinned_in_team:true}).extend({asset_type:zod.literal("quest").default("quest"),last_updated:zod.string().default(()=>new Date().toISOString())}).transform(u=>chunk5EQ5LO7V_cjs.a(u)),M=S.partial().extend({status:zod.optional(_)}),N=zod.object({id:zod.uuid(),quest_id:zod.uuid(),user_id:zod.uuid(),item_id:zod.optional(zod.nullable(zod.uuid())),asset_id:zod.optional(zod.nullable(zod.uuid())),asset_type:zod.optional(zod.nullable(chunk43KB23BA_cjs.a)),assets:zod.optional(zod.nullable(chunkQNERXSMJ_cjs.a)),description:zod.optional(zod.nullable(p)),review:zod.optional(zod.nullable(p)),status:q,reviewer_id:zod.optional(zod.nullable(zod.uuid())),reviewed_at:zod.optional(zod.nullable(zod.string())),eval_action_id:zod.optional(zod.nullable(zod.uuid())),eval_score:zod.optional(zod.nullable(zod.number())),eval_status:zod.optional(zod.nullable(I)),created_at:zod.string(),updated_at:zod.string()}),P=zod.object({item_id:zod.uuid(),assets:zod.optional(zod.nullable(chunkQNERXSMJ_cjs.c)),description:zod.optional(zod.nullable(zod.union([zod.string(),p])))}),G=zod.object({status:zod.enum(["accepted","rejected"]),review:zod.optional(zod.nullable(zod.union([zod.string(),p])))});exports.a=z;exports.b=E;exports.c=_;exports.d=C;exports.e=I;exports.f=q;exports.g=T;exports.h=A;exports.i=S;exports.j=R;exports.k=j;exports.l=Z;exports.m=F;exports.n=M;exports.o=N;exports.p=P;exports.q=G;//# sourceMappingURL=chunk-IVO3RQUN.cjs.map
2
+ //# sourceMappingURL=chunk-IVO3RQUN.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schema/quests.ts"],"names":["QuestTypeSchema","zodEnum","QuestStatusSchema","QuestItemStatusSchema","RewardCurrencySchema","EntryEvalStatusSchema","EntryStatusSchema","TipTapNode","object","string","optional","array","any","record","ContentSchema","literal","QuestItemBaseSchema","uuid","nullable","number","AssetTypeSchema","QuestSubmissionAssetDeclarationSchema","KeyedAssetRefsSchema","zodBoolean","QuestItemSchema","CreateQuestItemObjectSchema","CreateQuestItemSchema","union","s","QuestSpecificsSchema","QuestSchema","AssetSchema","AssetMetadataSchema","CreateQuestSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","UpdateQuestSchema","UpdateQuestItemSchema","EntrySchema","CreateEntrySchema","KeyedAssetInputSchema","ReviewEntrySchema"],"mappings":"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","file":"chunk-IBRRR3T2.cjs","sourcesContent":["import {\n object,\n string,\n number,\n array,\n literal,\n record,\n type z,\n any,\n optional,\n nullable,\n union,\n uuid,\n boolean as zodBoolean,\n enum as zodEnum,\n type ZodType,\n} from \"zod\";\n\nimport {\n AssetSchema,\n AssetMetadataSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { AssetTypeSchema } from \"./common\";\nimport {\n KeyedAssetRefsSchema,\n KeyedAssetInputSchema,\n QuestSubmissionAssetDeclarationSchema,\n} from \"../utils/quest-submission\";\n\n// ── Enums ──────────────────────────────────────────────────────────────\n\n/** closable: one active entry per item per user; continuous: unlimited per item */\nconst QuestTypeSchema = zodEnum([\"closable\", \"continuous\"]);\nconst QuestStatusSchema = zodEnum([\"draft\", \"open\", \"closed\", \"cancelled\"]);\n\nconst QuestItemStatusSchema = zodEnum([\n \"pending\",\n \"in_progress\",\n \"done\",\n \"skipped\",\n]);\n\nconst RewardCurrencySchema = zodEnum([\"btc\", \"usd\"]);\n\nconst EntryEvalStatusSchema = zodEnum([\n \"skipped\",\n \"running\",\n \"passed\",\n \"failed\",\n \"errored\",\n]);\n\nconst EntryStatusSchema = zodEnum([\"submitted\", \"accepted\", \"rejected\"]);\n\n// ── Content (TipTap) ───────────────────────────────────────────────────\n// Posts/quests share the same rich description shape: { json, text }.\n// We mirror it locally here so the quest schema doesn't depend on posts.\n\nconst TipTapNode: ZodType<any> = object({\n type: string(),\n content: optional(array(any())),\n attrs: optional(record(string(), any())),\n marks: optional(array(any())),\n text: optional(string()),\n});\n\nconst ContentSchema = object({\n json: object({\n type: literal(\"doc\"),\n content: array(TipTapNode),\n }),\n text: string(),\n});\n\n// ── Quest items ────────────────────────────────────────────────────────\n\nconst QuestItemBaseSchema = object({\n id: uuid(),\n quest_id: uuid(),\n description: string(),\n status: QuestItemStatusSchema.default(\"pending\"),\n auto_skipped: optional(nullable(string().or(any()))),\n status_before_auto_skip: optional(nullable(QuestItemStatusSchema)),\n sort_order: number().default(0),\n type: string().default(\"task\"),\n created_by: uuid(),\n assignee_id: optional(nullable(uuid())),\n expected_asset_type: optional(nullable(AssetTypeSchema)),\n reward_xp: number().int().nonnegative().default(0),\n reward_currency: RewardCurrencySchema.default(\"btc\"),\n reward_amount: number().int().nonnegative().default(0),\n child_quest_id: optional(nullable(uuid())),\n eval_route_id: optional(nullable(uuid())),\n eval_score_path: optional(nullable(string())),\n eval_pass_min: optional(nullable(number())),\n eval_pass_max: optional(nullable(number())),\n submission_assets: optional(\n nullable(record(string(), QuestSubmissionAssetDeclarationSchema)),\n ),\n eval_static_inputs: optional(nullable(KeyedAssetRefsSchema)),\n notes: optional(nullable(string())),\n contributor_keys: optional(\n nullable(\n array(\n object({\n key: string(),\n required: zodBoolean().default(true),\n filters: object({\n assetType: optional(string()),\n fileType: optional(string()),\n extensions: optional(array(string())),\n hasConstraints: zodBoolean().default(false),\n }),\n }),\n ),\n ),\n ),\n created_at: string(),\n updated_at: string(),\n});\n\nconst QuestItemSchema = QuestItemBaseSchema;\n\n/**\n * Shape used by `POST /quests/create` (inline items) and\n * `POST /quests/:id/items` (batch add). The controller fills in\n * `quest_id`, `created_by`, and lifecycle-derived fields\n * (`auto_skipped`, `status_before_auto_skip`).\n *\n * Accepts a plain description string as a convenience — it's lifted\n * into `{ description }` by the `union` below.\n */\nconst CreateQuestItemObjectSchema = object({\n description: string().min(1, { message: \"Item description cannot be empty\" }),\n type: optional(string()).default(\"task\"),\n sort_order: optional(number().int()),\n assignee_id: optional(nullable(uuid())),\n expected_asset_type: optional(nullable(AssetTypeSchema)),\n reward_xp: optional(number().int().nonnegative()).default(0),\n reward_currency: optional(RewardCurrencySchema).default(\"btc\"),\n // Amount is in minor units of `reward_currency`: sats for BTC, cents\n // for USD. Both fit in JS numbers comfortably for our reward sizes;\n // the underlying column is `bigint`.\n reward_amount: optional(number().int().nonnegative()).default(0),\n child_quest_id: optional(nullable(uuid())),\n eval_route_id: optional(nullable(uuid())),\n eval_score_path: optional(nullable(string())),\n eval_pass_min: optional(nullable(number())),\n eval_pass_max: optional(nullable(number())),\n submission_assets: optional(\n nullable(record(string(), QuestSubmissionAssetDeclarationSchema)),\n ),\n eval_static_inputs: optional(nullable(KeyedAssetRefsSchema)),\n notes: optional(nullable(string())),\n});\n\nconst CreateQuestItemSchema = union([\n string().transform((s) => ({ description: s })),\n CreateQuestItemObjectSchema,\n]).pipe(CreateQuestItemObjectSchema);\n\n// ── Quest ──────────────────────────────────────────────────────────────\n\nconst QuestSpecificsSchema = object({\n type: QuestTypeSchema.default(\"closable\"),\n status: QuestStatusSchema.default(\"open\"),\n max_xp_per_contributor: optional(nullable(number().int().nonnegative())),\n closed_at: optional(nullable(string())),\n});\n\nconst QuestSchema = AssetSchema.extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n metadata: optional(nullable(AssetMetadataSchema.partial())),\n // List and detail both nest specifics under `quest`. Detail also hoists\n // full items to the top level. Progress (counts + bar segments) is always\n // top-level `progress` on list and detail responses.\n quest: optional(QuestSpecificsSchema.partial()),\n items: optional(array(QuestItemSchema.partial())),\n progress: optional(\n object({\n total: number(),\n resolved: number(),\n remaining: number(),\n // Lightweight per-item segments for progress bars (list + detail).\n items: optional(\n array(\n object({\n id: string(),\n status: QuestItemStatusSchema,\n waiting_on: optional(nullable(string())),\n waiting_until: optional(nullable(string())),\n waiting_check_every: optional(nullable(string())),\n }).partial()\n )\n ),\n })\n ),\n});\n\n/**\n * Schema used by the backend controller and SDK clients to validate /\n * default the body of `POST /quests/create`. Mirrors how\n * `CreatePostSchema` defaults `org_id`/`team_id` so non-frontend callers\n * don't have to know about `GLOBAL_ORG_ID`.\n *\n * The `items` field accepts either plain strings or full item objects —\n * the backend `createQuestItems`/`createQuest` paths already handle both\n * shapes, and `CreateQuestItemSchema` normalizes strings into\n * `{ description }`.\n */\nconst CreateQuestSchema = CreateAssetSchema.extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n name: optional(nullable(string())).default(null),\n description: optional(nullable(ContentSchema)),\n type: QuestTypeSchema.default(\"closable\"),\n status: QuestStatusSchema.default(\"open\"),\n max_xp_per_contributor: optional(nullable(number().int().nonnegative())),\n items: optional(array(CreateQuestItemSchema)).default([]),\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst UpdateQuestSchema = QuestSchema.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 items: true,\n progress: true,\n is_pinned_in_team: true,\n })\n .extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nconst UpdateQuestItemSchema = CreateQuestItemObjectSchema.partial().extend({\n status: optional(QuestItemStatusSchema),\n});\n\n// ── Entries ────────────────────────────────────────────────────────────\n\nconst EntrySchema = object({\n id: uuid(),\n quest_id: uuid(),\n user_id: uuid(),\n item_id: optional(nullable(uuid())),\n asset_id: optional(nullable(uuid())),\n asset_type: optional(nullable(AssetTypeSchema)),\n assets: optional(nullable(KeyedAssetRefsSchema)),\n description: optional(nullable(ContentSchema)),\n review: optional(nullable(ContentSchema)),\n status: EntryStatusSchema,\n reviewer_id: optional(nullable(uuid())),\n reviewed_at: optional(nullable(string())),\n eval_action_id: optional(nullable(uuid())),\n eval_score: optional(nullable(number())),\n eval_status: optional(nullable(EntryEvalStatusSchema)),\n created_at: string(),\n updated_at: string(),\n});\n\nconst CreateEntrySchema = object({\n item_id: uuid(),\n assets: optional(nullable(KeyedAssetInputSchema)),\n description: optional(nullable(union([string(), ContentSchema]))),\n});\n\nconst ReviewEntrySchema = object({\n status: zodEnum([\"accepted\", \"rejected\"]),\n review: optional(nullable(union([string(), ContentSchema]))),\n});\n\n// ── Exports ────────────────────────────────────────────────────────────\n\nexport {\n KeyedAssetRefsSchema,\n KeyedAssetInputSchema,\n QuestSubmissionAssetDeclarationSchema,\n QuestTypeSchema,\n QuestStatusSchema,\n QuestItemStatusSchema,\n RewardCurrencySchema,\n EntryEvalStatusSchema,\n EntryStatusSchema,\n QuestSchema,\n QuestItemSchema,\n QuestItemBaseSchema,\n CreateQuestSchema,\n CreateQuestItemSchema,\n CreateQuestItemObjectSchema,\n UpdateQuestSchema,\n UpdateQuestItemSchema,\n EntrySchema,\n CreateEntrySchema,\n ReviewEntrySchema,\n};\n\nexport type QuestType = z.infer<typeof QuestTypeSchema>;\nexport type QuestStatus = z.infer<typeof QuestStatusSchema>;\nexport type QuestItemStatus = z.infer<typeof QuestItemStatusSchema>;\nexport type RewardCurrency = z.infer<typeof RewardCurrencySchema>;\nexport type EntryEvalStatus = z.infer<typeof EntryEvalStatusSchema>;\nexport type EntryStatus = z.infer<typeof EntryStatusSchema>;\nexport type Quest = z.infer<typeof QuestSchema>;\nexport type QuestItem = z.infer<typeof QuestItemSchema>;\nexport type CreateQuest = z.infer<typeof CreateQuestSchema>;\nexport type CreateQuestItem = z.infer<typeof CreateQuestItemSchema>;\nexport type UpdateQuest = z.infer<typeof UpdateQuestSchema>;\nexport type UpdateQuestItem = z.infer<typeof UpdateQuestItemSchema>;\nexport type Entry = z.infer<typeof EntrySchema>;\nexport type CreateEntry = z.infer<typeof CreateEntrySchema>;\nexport type ReviewEntry = z.infer<typeof ReviewEntrySchema>;\n"]}
1
+ {"version":3,"sources":["../src/schema/quests.ts"],"names":["QuestTypeSchema","zodEnum","QuestStatusSchema","QuestItemStatusSchema","RewardCurrencySchema","EntryEvalStatusSchema","EntryStatusSchema","TipTapNode","object","string","optional","array","any","record","ContentSchema","literal","QuestItemBaseSchema","uuid","nullable","number","AssetTypeSchema","QuestSubmissionAssetDeclarationSchema","KeyedAssetRefsSchema","zodBoolean","QuestItemSchema","CreateQuestItemObjectSchema","CreateQuestItemSchema","union","s","QuestSpecificsSchema","QuestSchema","AssetSchema","AssetMetadataSchema","CreateQuestSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","UpdateQuestSchema","UpdateQuestItemSchema","EntrySchema","CreateEntrySchema","KeyedAssetInputSchema","ReviewEntrySchema"],"mappings":"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","file":"chunk-IVO3RQUN.cjs","sourcesContent":["import {\n object,\n string,\n number,\n array,\n literal,\n record,\n type z,\n any,\n optional,\n nullable,\n union,\n uuid,\n boolean as zodBoolean,\n enum as zodEnum,\n type ZodType,\n} from \"zod\";\n\nimport {\n AssetSchema,\n AssetMetadataSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { AssetTypeSchema } from \"./common\";\nimport {\n KeyedAssetRefsSchema,\n KeyedAssetInputSchema,\n QuestSubmissionAssetDeclarationSchema,\n} from \"../utils/quest-submission\";\n\n// ── Enums ──────────────────────────────────────────────────────────────\n\n/** closable: one active entry per item per user; continuous: unlimited per item */\nconst QuestTypeSchema = zodEnum([\"closable\", \"continuous\"]);\nconst QuestStatusSchema = zodEnum([\"draft\", \"open\", \"closed\", \"cancelled\"]);\n\nconst QuestItemStatusSchema = zodEnum([\n \"pending\",\n \"in_progress\",\n \"done\",\n \"skipped\",\n]);\n\nconst RewardCurrencySchema = zodEnum([\"btc\", \"usd\"]);\n\nconst EntryEvalStatusSchema = zodEnum([\n \"skipped\",\n \"running\",\n \"passed\",\n \"failed\",\n \"errored\",\n]);\n\nconst EntryStatusSchema = zodEnum([\"submitted\", \"accepted\", \"rejected\"]);\n\n// ── Content (TipTap) ───────────────────────────────────────────────────\n// Posts/quests share the same rich description shape: { json, text }.\n// We mirror it locally here so the quest schema doesn't depend on posts.\n\nconst TipTapNode: ZodType<any> = object({\n type: string(),\n content: optional(array(any())),\n attrs: optional(record(string(), any())),\n marks: optional(array(any())),\n text: optional(string()),\n});\n\nconst ContentSchema = object({\n json: object({\n type: literal(\"doc\"),\n content: array(TipTapNode),\n }),\n text: string(),\n});\n\n// ── Quest items ────────────────────────────────────────────────────────\n\nconst QuestItemBaseSchema = object({\n id: uuid(),\n quest_id: uuid(),\n description: string(),\n status: QuestItemStatusSchema.default(\"pending\"),\n auto_skipped: optional(nullable(string().or(any()))),\n status_before_auto_skip: optional(nullable(QuestItemStatusSchema)),\n sort_order: number().default(0),\n type: string().default(\"task\"),\n created_by: uuid(),\n assignee_id: optional(nullable(uuid())),\n expected_asset_type: optional(nullable(AssetTypeSchema)),\n reward_xp: number().int().nonnegative().default(0),\n reward_currency: RewardCurrencySchema.default(\"btc\"),\n reward_amount: number().int().nonnegative().default(0),\n child_quest_id: optional(nullable(uuid())),\n eval_route_id: optional(nullable(uuid())),\n eval_score_path: optional(nullable(string())),\n eval_pass_min: optional(nullable(number())),\n eval_pass_max: optional(nullable(number())),\n submission_assets: optional(\n nullable(record(string(), QuestSubmissionAssetDeclarationSchema)),\n ),\n eval_static_inputs: optional(nullable(KeyedAssetRefsSchema)),\n notes: optional(nullable(string())),\n contributor_keys: optional(\n nullable(\n array(\n object({\n key: string(),\n required: zodBoolean().default(true),\n filters: object({\n assetType: optional(string()),\n fileType: optional(string()),\n extensions: optional(array(string())),\n hasConstraints: zodBoolean().default(false),\n }),\n }),\n ),\n ),\n ),\n created_at: string(),\n updated_at: string(),\n});\n\nconst QuestItemSchema = QuestItemBaseSchema;\n\n/**\n * Shape used by `POST /quests/create` (inline items) and\n * `POST /quests/:id/items` (batch add). The controller fills in\n * `quest_id`, `created_by`, and lifecycle-derived fields\n * (`auto_skipped`, `status_before_auto_skip`).\n *\n * Accepts a plain description string as a convenience — it's lifted\n * into `{ description }` by the `union` below.\n */\nconst CreateQuestItemObjectSchema = object({\n description: string().min(1, { message: \"Item description cannot be empty\" }),\n type: optional(string()).default(\"task\"),\n sort_order: optional(number().int()),\n assignee_id: optional(nullable(uuid())),\n expected_asset_type: optional(nullable(AssetTypeSchema)),\n reward_xp: optional(number().int().nonnegative()).default(0),\n reward_currency: optional(RewardCurrencySchema).default(\"btc\"),\n // Amount is in minor units of `reward_currency`: sats for BTC, cents\n // for USD. Both fit in JS numbers comfortably for our reward sizes;\n // the underlying column is `bigint`.\n reward_amount: optional(number().int().nonnegative()).default(0),\n child_quest_id: optional(nullable(uuid())),\n eval_route_id: optional(nullable(uuid())),\n eval_score_path: optional(nullable(string())),\n eval_pass_min: optional(nullable(number())),\n eval_pass_max: optional(nullable(number())),\n submission_assets: optional(\n nullable(record(string(), QuestSubmissionAssetDeclarationSchema)),\n ),\n eval_static_inputs: optional(nullable(KeyedAssetRefsSchema)),\n notes: optional(nullable(string())),\n});\n\nconst CreateQuestItemSchema = union([\n string().transform((s) => ({ description: s })),\n CreateQuestItemObjectSchema,\n]).pipe(CreateQuestItemObjectSchema);\n\n// ── Quest ──────────────────────────────────────────────────────────────\n\nconst QuestSpecificsSchema = object({\n type: QuestTypeSchema.default(\"closable\"),\n status: QuestStatusSchema.default(\"open\"),\n max_xp_per_contributor: optional(nullable(number().int().nonnegative())),\n closed_at: optional(nullable(string())),\n});\n\nconst QuestSchema = AssetSchema.extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n metadata: optional(nullable(AssetMetadataSchema.partial())),\n // List and detail both nest specifics under `quest`. Detail also hoists\n // full items to the top level. Progress (counts + bar segments) is always\n // top-level `progress` on list and detail responses.\n quest: optional(QuestSpecificsSchema.partial()),\n items: optional(array(QuestItemSchema.partial())),\n progress: optional(\n object({\n total: number(),\n resolved: number(),\n remaining: number(),\n // Lightweight per-item segments for progress bars (list + detail).\n items: optional(\n array(\n object({\n id: string(),\n status: QuestItemStatusSchema,\n waiting_on: optional(nullable(string())),\n waiting_until: optional(nullable(string())),\n waiting_check_every: optional(nullable(string())),\n }).partial()\n )\n ),\n })\n ),\n});\n\n/**\n * Schema used by the backend controller and SDK clients to validate /\n * default the body of `POST /quests/create`. Mirrors how\n * `CreatePostSchema` defaults `org_id`/`team_id` so non-frontend callers\n * don't have to know about `GLOBAL_ORG_ID`.\n *\n * The `items` field accepts either plain strings or full item objects —\n * the backend `createQuestItems`/`createQuest` paths already handle both\n * shapes, and `CreateQuestItemSchema` normalizes strings into\n * `{ description }`.\n */\nconst CreateQuestSchema = CreateAssetSchema.extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n name: optional(nullable(string())).default(null),\n description: optional(nullable(ContentSchema)),\n type: QuestTypeSchema.default(\"closable\"),\n status: QuestStatusSchema.default(\"open\"),\n max_xp_per_contributor: optional(nullable(number().int().nonnegative())),\n items: optional(array(CreateQuestItemSchema)).default([]),\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst UpdateQuestSchema = QuestSchema.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 items: true,\n progress: true,\n is_pinned_in_team: true,\n })\n .extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nconst UpdateQuestItemSchema = CreateQuestItemObjectSchema.partial().extend({\n status: optional(QuestItemStatusSchema),\n});\n\n// ── Entries ────────────────────────────────────────────────────────────\n\nconst EntrySchema = object({\n id: uuid(),\n quest_id: uuid(),\n user_id: uuid(),\n item_id: optional(nullable(uuid())),\n asset_id: optional(nullable(uuid())),\n asset_type: optional(nullable(AssetTypeSchema)),\n assets: optional(nullable(KeyedAssetRefsSchema)),\n description: optional(nullable(ContentSchema)),\n review: optional(nullable(ContentSchema)),\n status: EntryStatusSchema,\n reviewer_id: optional(nullable(uuid())),\n reviewed_at: optional(nullable(string())),\n eval_action_id: optional(nullable(uuid())),\n eval_score: optional(nullable(number())),\n eval_status: optional(nullable(EntryEvalStatusSchema)),\n created_at: string(),\n updated_at: string(),\n});\n\nconst CreateEntrySchema = object({\n item_id: uuid(),\n assets: optional(nullable(KeyedAssetInputSchema)),\n description: optional(nullable(union([string(), ContentSchema]))),\n});\n\nconst ReviewEntrySchema = object({\n status: zodEnum([\"accepted\", \"rejected\"]),\n review: optional(nullable(union([string(), ContentSchema]))),\n});\n\n// ── Exports ────────────────────────────────────────────────────────────\n\nexport {\n KeyedAssetRefsSchema,\n KeyedAssetInputSchema,\n QuestSubmissionAssetDeclarationSchema,\n QuestTypeSchema,\n QuestStatusSchema,\n QuestItemStatusSchema,\n RewardCurrencySchema,\n EntryEvalStatusSchema,\n EntryStatusSchema,\n QuestSchema,\n QuestItemSchema,\n QuestItemBaseSchema,\n CreateQuestSchema,\n CreateQuestItemSchema,\n CreateQuestItemObjectSchema,\n UpdateQuestSchema,\n UpdateQuestItemSchema,\n EntrySchema,\n CreateEntrySchema,\n ReviewEntrySchema,\n};\n\nexport type QuestType = z.infer<typeof QuestTypeSchema>;\nexport type QuestStatus = z.infer<typeof QuestStatusSchema>;\nexport type QuestItemStatus = z.infer<typeof QuestItemStatusSchema>;\nexport type RewardCurrency = z.infer<typeof RewardCurrencySchema>;\nexport type EntryEvalStatus = z.infer<typeof EntryEvalStatusSchema>;\nexport type EntryStatus = z.infer<typeof EntryStatusSchema>;\nexport type Quest = z.infer<typeof QuestSchema>;\nexport type QuestItem = z.infer<typeof QuestItemSchema>;\nexport type CreateQuest = z.infer<typeof CreateQuestSchema>;\nexport type CreateQuestItem = z.infer<typeof CreateQuestItemSchema>;\nexport type UpdateQuest = z.infer<typeof UpdateQuestSchema>;\nexport type UpdateQuestItem = z.infer<typeof UpdateQuestItemSchema>;\nexport type Entry = z.infer<typeof EntrySchema>;\nexport type CreateEntry = z.infer<typeof CreateEntrySchema>;\nexport type ReviewEntry = z.infer<typeof ReviewEntrySchema>;\n"]}
@@ -0,0 +1,2 @@
1
+ import {a as a$2}from'./chunk-7EKD5NQB.js';import {b,f,g,a as a$1}from'./chunk-TGOXRPF5.js';import {b as b$1}from'./chunk-3N56ERWF.js';import {a,b as b$2,d}from'./chunk-WRHPQNEL.js';import {object,array,string,optional,nullable,literal,uuid,number,record,any}from'zod';var z=object({members:array(string())}),v=z.extend(b.partial().shape),U=f.extend({asset_type:a.default("conversation"),name:nullable(string()),metadata:v,users:optional(nullable(array(b$1)))}),S=g.extend({asset_type:literal("conversation").default("conversation"),monetization:d.default("none"),visibility:b$2.default("private"),name:string().optional().nullable().default("").transform(e=>e==null?void 0:e.trim()).transform(e=>e||null),metadata:v}),j=S.transform(e=>a$1(e)),B=S.omit({id:true,org_id:true,team_id:true}).partial().transform(e=>a$1(e)),P=object({id:uuid(),conversation_id:uuid(),turn_id:uuid(),seq:number(),user_id:uuid(),user:optional(nullable(b$1)),type:string().default("message"),created_at:string(),last_updated:string(),viewers:array(uuid()),json:a$2,text:string(),metadata:optional(nullable(record(string(),any())))});export{U as a,j as b,B as c,P as d};//# sourceMappingURL=chunk-JUELSRCY.js.map
2
+ //# sourceMappingURL=chunk-JUELSRCY.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schema/conversations.ts"],"names":["BaseConversationMetadataSchema","object","array","string","ConversationMetadataSchema","AssetMetadataSchema","ConversationSchema","AssetSchema","AssetTypeSchema","nullable","optional","ProfileSchema","BaseCreateConversationSchema","CreateAssetSchema","literal","MonetizationSchema","VisibilitySchema","x","CreateConversationSchema","value","normalizeAssetConfigForParsing","UpdateConversationSchema","MessageSchema","uuid","number","TipTapSchema","record","any"],"mappings":"oRA4BMA,IAAAA,CAAAA,CAAiCC,OAAO,CAC5C,OAAA,CAASC,MAAMC,MAAO,EAAC,CACzB,CAAC,CAAA,CAEKC,EAA6BJ,CAA+B,CAAA,MAAA,CAChEK,EAAoB,OAAQ,EAAA,CAAE,KAChC,CAEMC,CAAAA,CAAAA,CAAqBC,EAAY,MAAO,CAAA,CAC5C,UAAYC,CAAAA,CAAAA,CAAgB,OAAQ,CAAA,cAAc,EAElD,IAAMC,CAAAA,QAAAA,CAASN,QAAQ,CAAA,CACvB,SAAUC,CACV,CAAA,KAAA,CAAOM,SAASD,QAASP,CAAAA,KAAAA,CAAMS,GAAa,CAAC,CAAC,CAChD,CAAC,CAAA,CAEKC,EAA+BC,CAAkB,CAAA,MAAA,CAAO,CAC5D,UAAA,CAAYC,OAAQ,CAAA,cAAc,EAAE,OAAQ,CAAA,cAAc,EAC1D,YAAcC,CAAAA,GAAAA,CAAmB,QAAQ,MAAM,CAAA,CAC/C,UAAYC,CAAAA,GAAAA,CAAiB,OAAQ,CAAA,SAAS,EAE9C,IAAMb,CAAAA,MAAAA,GACH,QAAS,EAAA,CACT,UACA,CAAA,OAAA,CAAQ,EAAE,CAAA,CACV,SAAWc,CAAAA,CAAAA,EAAMA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAG,MAAM,CAC1B,CAAA,SAAA,CAAWA,GAAMA,CAAK,EAAA,IAAI,EAC7B,QAAUb,CAAAA,CACZ,CAAC,CAEKc,CAAAA,CAAAA,CAA2BN,EAC9B,SAAWO,CAAAA,CAAAA,EAAUC,IAA+BD,CAAK,CAAC,CAGvDE,CAAAA,CAAAA,CAA2BT,CAA6B,CAAA,IAAA,CAAK,CACjE,EAAI,CAAA,IAAA,CACJ,OAAQ,IACR,CAAA,OAAA,CAAS,IAKX,CAAC,CAAA,CAAE,SAAU,CAAA,SAAA,CAAWO,GAAUC,GAA+BD,CAAAA,CAAK,CAAC,CAEjEG,CAAAA,CAAAA,CAAgBrB,OAAO,CAC3B,EAAA,CAAIsB,IAAK,EAAA,CACT,eAAiBA,CAAAA,IAAAA,GACjB,OAASA,CAAAA,IAAAA,GACT,GAAKC,CAAAA,MAAAA,GACL,OAASD,CAAAA,IAAAA,GACT,IAAMb,CAAAA,QAAAA,CAASD,SAASE,GAAa,CAAC,EACtC,IAAMR,CAAAA,MAAAA,GAAS,OAAQ,CAAA,SAAS,CAChC,CAAA,UAAA,CAAYA,MAAO,EAAA,CACnB,aAAcA,MAAO,EAAA,CACrB,QAASD,KAAMqB,CAAAA,IAAAA,EAAM,CACrB,CAAA,IAAA,CAAME,GACN,CAAA,IAAA,CAAMtB,MAAO,EAAA,CACb,SAAUO,QAASD,CAAAA,QAAAA,CAASiB,OAAOvB,MAAO,EAAA,CAAGwB,KAAK,CAAC,CAAC,CACtD,CAAC","file":"chunk-4UE3XIYR.js","sourcesContent":["import {\n object,\n string,\n number,\n uuid,\n array,\n type z,\n record,\n any,\n optional,\n nullable,\n literal\n} from \"zod\";\n\nimport {\n AssetTypeSchema,\n MonetizationSchema,\n VisibilitySchema,\n} from \"./common\";\nimport {\n AssetMetadataSchema,\n AssetSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { TipTapSchema } from \"./posts\";\nimport { ProfileSchema } from \"./users\";\n\nconst BaseConversationMetadataSchema = object({\n members: array(string()),\n});\n\nconst ConversationMetadataSchema = BaseConversationMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst ConversationSchema = AssetSchema.extend({\n asset_type: AssetTypeSchema.default(\"conversation\"),\n // Agents often name conversations after the first exchange; allow null until then.\n name: nullable(string()),\n metadata: ConversationMetadataSchema,\n users: optional(nullable(array(ProfileSchema))),\n});\n\nconst BaseCreateConversationSchema = CreateAssetSchema.extend({\n asset_type: literal(\"conversation\").default(\"conversation\"),\n monetization: MonetizationSchema.default(\"none\"),\n visibility: VisibilitySchema.default(\"private\"),\n // Optional like posts — leave blank and let a responding agent name it.\n name: string()\n .optional()\n .nullable()\n .default(\"\")\n .transform((x) => x?.trim())\n .transform((x) => x || null),\n metadata: ConversationMetadataSchema,\n});\n\nconst CreateConversationSchema = BaseCreateConversationSchema\n .transform((value) => normalizeAssetConfigForParsing(value));\n\n// Partial because we can make updates to conversations without providing all fields\nconst UpdateConversationSchema = BaseCreateConversationSchema.omit({\n id: true,\n org_id: true,\n team_id: true,\n // team: true,\n // user: true,\n // organization: true,\n // slug: true,\n}).partial().transform((value) => normalizeAssetConfigForParsing(value));\n\nconst MessageSchema = object({\n id: uuid(),\n conversation_id: uuid(),\n turn_id: uuid(),\n seq: number(),\n user_id: uuid(),\n user: optional(nullable(ProfileSchema)),\n type: string().default(\"message\"),\n created_at: string(),\n last_updated: string(),\n viewers: array(uuid()),\n json: TipTapSchema,\n text: string(),\n metadata: optional(nullable(record(string(), any()))),\n});\n\nexport {\n MessageSchema,\n UpdateConversationSchema,\n CreateConversationSchema,\n ConversationSchema,\n};\nexport type Conversation = z.infer<typeof ConversationSchema>;\nexport type CreateConversation = z.infer<typeof CreateConversationSchema>;\nexport type UpdateConversation = z.infer<typeof UpdateConversationSchema>;\nexport type Message = z.infer<typeof MessageSchema>;\n"]}
1
+ {"version":3,"sources":["../src/schema/conversations.ts"],"names":["BaseConversationMetadataSchema","object","array","string","ConversationMetadataSchema","AssetMetadataSchema","ConversationSchema","AssetSchema","AssetTypeSchema","nullable","optional","ProfileSchema","BaseCreateConversationSchema","CreateAssetSchema","literal","MonetizationSchema","VisibilitySchema","x","CreateConversationSchema","value","normalizeAssetConfigForParsing","UpdateConversationSchema","MessageSchema","uuid","number","TipTapSchema","record","any"],"mappings":"6QA4BMA,IAAAA,CAAAA,CAAiCC,OAAO,CAC5C,OAAA,CAASC,MAAMC,MAAO,EAAC,CACzB,CAAC,CAAA,CAEKC,EAA6BJ,CAA+B,CAAA,MAAA,CAChEK,EAAoB,OAAQ,EAAA,CAAE,KAChC,CAEMC,CAAAA,CAAAA,CAAqBC,EAAY,MAAO,CAAA,CAC5C,UAAYC,CAAAA,CAAAA,CAAgB,OAAQ,CAAA,cAAc,EAElD,IAAMC,CAAAA,QAAAA,CAASN,QAAQ,CAAA,CACvB,SAAUC,CACV,CAAA,KAAA,CAAOM,SAASD,QAASP,CAAAA,KAAAA,CAAMS,GAAa,CAAC,CAAC,CAChD,CAAC,CAAA,CAEKC,EAA+BC,CAAkB,CAAA,MAAA,CAAO,CAC5D,UAAA,CAAYC,OAAQ,CAAA,cAAc,EAAE,OAAQ,CAAA,cAAc,EAC1D,YAAcC,CAAAA,CAAAA,CAAmB,QAAQ,MAAM,CAAA,CAC/C,UAAYC,CAAAA,GAAAA,CAAiB,OAAQ,CAAA,SAAS,EAE9C,IAAMb,CAAAA,MAAAA,GACH,QAAS,EAAA,CACT,UACA,CAAA,OAAA,CAAQ,EAAE,CAAA,CACV,SAAWc,CAAAA,CAAAA,EAAMA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAG,MAAM,CAC1B,CAAA,SAAA,CAAWA,GAAMA,CAAK,EAAA,IAAI,EAC7B,QAAUb,CAAAA,CACZ,CAAC,CAEKc,CAAAA,CAAAA,CAA2BN,EAC9B,SAAWO,CAAAA,CAAAA,EAAUC,IAA+BD,CAAK,CAAC,CAGvDE,CAAAA,CAAAA,CAA2BT,CAA6B,CAAA,IAAA,CAAK,CACjE,EAAI,CAAA,IAAA,CACJ,OAAQ,IACR,CAAA,OAAA,CAAS,IAKX,CAAC,CAAA,CAAE,SAAU,CAAA,SAAA,CAAWO,GAAUC,GAA+BD,CAAAA,CAAK,CAAC,CAEjEG,CAAAA,CAAAA,CAAgBrB,OAAO,CAC3B,EAAA,CAAIsB,IAAK,EAAA,CACT,eAAiBA,CAAAA,IAAAA,GACjB,OAASA,CAAAA,IAAAA,GACT,GAAKC,CAAAA,MAAAA,GACL,OAASD,CAAAA,IAAAA,GACT,IAAMb,CAAAA,QAAAA,CAASD,SAASE,GAAa,CAAC,EACtC,IAAMR,CAAAA,MAAAA,GAAS,OAAQ,CAAA,SAAS,CAChC,CAAA,UAAA,CAAYA,MAAO,EAAA,CACnB,aAAcA,MAAO,EAAA,CACrB,QAASD,KAAMqB,CAAAA,IAAAA,EAAM,CACrB,CAAA,IAAA,CAAME,GACN,CAAA,IAAA,CAAMtB,MAAO,EAAA,CACb,SAAUO,QAASD,CAAAA,QAAAA,CAASiB,OAAOvB,MAAO,EAAA,CAAGwB,KAAK,CAAC,CAAC,CACtD,CAAC","file":"chunk-JUELSRCY.js","sourcesContent":["import {\n object,\n string,\n number,\n uuid,\n array,\n type z,\n record,\n any,\n optional,\n nullable,\n literal\n} from \"zod\";\n\nimport {\n AssetTypeSchema,\n MonetizationSchema,\n VisibilitySchema,\n} from \"./common\";\nimport {\n AssetMetadataSchema,\n AssetSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { TipTapSchema } from \"./posts\";\nimport { ProfileSchema } from \"./users\";\n\nconst BaseConversationMetadataSchema = object({\n members: array(string()),\n});\n\nconst ConversationMetadataSchema = BaseConversationMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst ConversationSchema = AssetSchema.extend({\n asset_type: AssetTypeSchema.default(\"conversation\"),\n // Agents often name conversations after the first exchange; allow null until then.\n name: nullable(string()),\n metadata: ConversationMetadataSchema,\n users: optional(nullable(array(ProfileSchema))),\n});\n\nconst BaseCreateConversationSchema = CreateAssetSchema.extend({\n asset_type: literal(\"conversation\").default(\"conversation\"),\n monetization: MonetizationSchema.default(\"none\"),\n visibility: VisibilitySchema.default(\"private\"),\n // Optional like posts — leave blank and let a responding agent name it.\n name: string()\n .optional()\n .nullable()\n .default(\"\")\n .transform((x) => x?.trim())\n .transform((x) => x || null),\n metadata: ConversationMetadataSchema,\n});\n\nconst CreateConversationSchema = BaseCreateConversationSchema\n .transform((value) => normalizeAssetConfigForParsing(value));\n\n// Partial because we can make updates to conversations without providing all fields\nconst UpdateConversationSchema = BaseCreateConversationSchema.omit({\n id: true,\n org_id: true,\n team_id: true,\n // team: true,\n // user: true,\n // organization: true,\n // slug: true,\n}).partial().transform((value) => normalizeAssetConfigForParsing(value));\n\nconst MessageSchema = object({\n id: uuid(),\n conversation_id: uuid(),\n turn_id: uuid(),\n seq: number(),\n user_id: uuid(),\n user: optional(nullable(ProfileSchema)),\n type: string().default(\"message\"),\n created_at: string(),\n last_updated: string(),\n viewers: array(uuid()),\n json: TipTapSchema,\n text: string(),\n metadata: optional(nullable(record(string(), any()))),\n});\n\nexport {\n MessageSchema,\n UpdateConversationSchema,\n CreateConversationSchema,\n ConversationSchema,\n};\nexport type Conversation = z.infer<typeof ConversationSchema>;\nexport type CreateConversation = z.infer<typeof CreateConversationSchema>;\nexport type UpdateConversation = z.infer<typeof UpdateConversationSchema>;\nexport type Message = z.infer<typeof MessageSchema>;\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var d=["audio","video","image","pdf","3d model","atomic structure"],t={audio:["audio/mpeg","audio/wav","audio/ogg","audio/flac","audio/aac","audio/x-aiff","audio/midi","audio/x-ms-wma","audio/amr"],video:["video/mp4","video/webm","video/ogg","video/avi","video/mpeg","video/quicktime","video/x-ms-wmv","video/x-flv"],image:["image/png","image/jpeg","image/webp","image/gif","image/svg+xml","image/bmp","image/tiff","image/vnd.microsoft.icon"],pdf:["application/pdf"],"3d model":["model/obj"],"atomic structure":["chemical/x-cif","chemical/x-pdb","chemical/x-sdf","chemical/x-mdl-sdfile","chemical/x-mdl-molfile","text/cif"]},u={"atomic structure":"atoms"};function o(i){var n;return i?(n=u[i])!=null?n:i:null}function r(i){if(!i)return null;let e=i.replace(/^\.+/,"").toLowerCase().replace(/[^a-z0-9]/g,"");return !e||/^\d+$/.test(e)||e.length>12?null:e}function a(i){if(!i)return null;let e=(i.split("/").pop()||i).split(".");if(e.length<=1)return null;let l=e.pop();return r(l)}function s(i){var l;if(!i)return null;let n=(l=i.split(";")[0])==null?void 0:l.trim().toLowerCase();if(!n||!n.includes("/"))return null;let e=n.split("/")[1];return e?r(e.split("+")[0]):null}function c({fileName:i,mimeType:n,fallback:e="bin"}){return a(i)||s(n)||r(e)||"bin"}function m(i,n){var e;return t.audio.includes(i)?"audio":t.video.includes(i)?"video":t.image.includes(i)?"image":t.pdf.includes(i)?"PDF":t["3d model"].includes(i)?"3D model":t["atomic structure"].includes(i)?(e=o("atomic structure"))!=null?e:"atomic structure":`.${n}`}exports.a=d;exports.b=t;exports.c=o;exports.d=r;exports.e=a;exports.f=s;exports.g=c;exports.h=m;//# sourceMappingURL=chunk-KHERHT26.cjs.map
2
+ //# sourceMappingURL=chunk-KHERHT26.cjs.map