@ourofoundation/ouro-js 3.8.2 → 3.8.3

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 (45) hide show
  1. package/dist/chunk-64ZUBBP7.js +2 -0
  2. package/dist/chunk-64ZUBBP7.js.map +1 -0
  3. package/dist/chunk-ADLJ3UUW.cjs +2 -0
  4. package/dist/chunk-ADLJ3UUW.cjs.map +1 -0
  5. package/dist/{chunk-T6UO42TO.cjs → chunk-CIEATF7M.cjs} +2 -2
  6. package/dist/{chunk-T6UO42TO.cjs.map → chunk-CIEATF7M.cjs.map} +1 -1
  7. package/dist/chunk-GUEHIQ6T.cjs +2 -0
  8. package/dist/chunk-GUEHIQ6T.cjs.map +1 -0
  9. package/dist/chunk-LMRFVO4I.cjs +2 -0
  10. package/dist/chunk-LMRFVO4I.cjs.map +1 -0
  11. package/dist/chunk-MRUJUIPN.js +2 -0
  12. package/dist/chunk-MRUJUIPN.js.map +1 -0
  13. package/dist/chunk-XXFKHRNE.js +2 -0
  14. package/dist/chunk-XXFKHRNE.js.map +1 -0
  15. package/dist/{chunk-5CPECQKN.js → chunk-ZFARY5F4.js} +2 -2
  16. package/dist/{chunk-5CPECQKN.js.map → chunk-ZFARY5F4.js.map} +1 -1
  17. package/dist/index.cjs +1 -1
  18. package/dist/index.d.cts +1 -1
  19. package/dist/index.d.ts +1 -1
  20. package/dist/index.js +1 -1
  21. package/dist/schema/asset-filters.cjs +1 -1
  22. package/dist/schema/asset-filters.d.cts +2 -0
  23. package/dist/schema/asset-filters.d.ts +2 -0
  24. package/dist/schema/asset-filters.js +1 -1
  25. package/dist/schema/notifications.cjs +1 -1
  26. package/dist/schema/notifications.d.cts +128 -1
  27. package/dist/schema/notifications.d.ts +128 -1
  28. package/dist/schema/notifications.js +1 -1
  29. package/dist/schema/quests.cjs +1 -1
  30. package/dist/schema/quests.js +1 -1
  31. package/dist/utils/quest-submission.cjs +1 -1
  32. package/dist/utils/quest-submission.js +1 -1
  33. package/package.json +1 -1
  34. package/dist/chunk-5SC4M4E3.cjs +0 -2
  35. package/dist/chunk-5SC4M4E3.cjs.map +0 -1
  36. package/dist/chunk-EC376C5T.js +0 -2
  37. package/dist/chunk-EC376C5T.js.map +0 -1
  38. package/dist/chunk-KMENBGAB.js +0 -2
  39. package/dist/chunk-KMENBGAB.js.map +0 -1
  40. package/dist/chunk-LHCGBWFP.cjs +0 -2
  41. package/dist/chunk-LHCGBWFP.cjs.map +0 -1
  42. package/dist/chunk-O4LSX56P.js +0 -2
  43. package/dist/chunk-O4LSX56P.js.map +0 -1
  44. package/dist/chunk-U6XOT6XH.cjs +0 -2
  45. package/dist/chunk-U6XOT6XH.cjs.map +0 -1
@@ -0,0 +1,2 @@
1
+ import {e}from'./chunk-RS5H4XDK.js';import {a}from'./chunk-33C7IDRP.js';import {record,string,object,uuid,union,optional,boolean}from'zod';function _(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}function k(e){if(!e)return null;let t=e.replace(/^\.+/,"").trim().toLowerCase().replace(/[^a-z0-9]/g,"");return !t||/^\d+$/.test(t)||t.length>12?null:t}function I(e){let s=Array.isArray(e)?e:typeof e=="string"?e.split(/[\s,]+/):[];return Array.from(new Set(s.map(t=>k(t)).filter(t=>!!t)))}var P=record(string(),object({asset_id:uuid(),asset_type:a})),T=union([uuid(),object({asset_id:uuid(),asset_type:optional(a)})]),E=record(string(),T),q=e.extend({required:optional(boolean()).default(true)});function S(e){return I([...Array.isArray(e.file_extensions)?e.file_extensions:[],...Array.isArray(e.input_file_extensions)?e.input_file_extensions:[]].join(","))}function R(e){return e.input_filter||e.filter||void 0}function K(e){var n;let s=e==null?void 0:e.route;if(!s)return {};let t=s.input_assets;if(_(t)){let i=Object.entries(t).filter(([,r])=>_(r));if(i.length>0)return Object.fromEntries(i)}return s.input_type?{[s.input_type]:{asset_type:s.input_type,primary:true,input_filter:s.input_filter,input_file_extensions:(n=s.input_file_extensions)!=null?n:null}}:{}}function Q(e){let s=S(e),t=R(e);return {asset_type:e.asset_type,primary:e.primary,input_filter:t!=null?t:null,file_extensions:s.length>0?s:null,required:true}}function j(e,s){let t=new Set(s),n={};for(let[i,r]of Object.entries(e))t.has(i)||(n[i]=Q(r));return n}function L(e){let s=Object.entries(e);if(!s.length)return null;let t=s.find(([,n])=>n.primary===true);return t?t[0]:(s.length===1,s[0][0])}function B(e,s){var i,r;let t=(i=e.eval_static_inputs)!=null?i:{};if(e.eval_route_id&&s){let a=K(s),l=Object.keys(t),u=j(a,l);return {contributorKeys:Object.keys(u),declarations:u,pinned:t}}let n=(r=e.submission_assets)!=null?r:{};return {contributorKeys:Object.keys(n),declarations:n,pinned:t}}function F(e){if(!e)return null;let s=e.asset_type||void 0;if(!s)return null;let t={assetType:s,hasConstraints:false};if(s==="file"){let n=S(e);n.length>0&&(t.extensions=n,t.hasConstraints=true);let i=R(e);i&&(t.fileType=i,t.hasConstraints=true);}return t}function V(e,s){var i,r,a,l,u,d;if(!s||!e)return true;let t=F(s);if(!t)return true;let n=(i=e.assetType)!=null?i:e.asset_type;if(t.assetType&&n!==t.assetType)return false;if(t.assetType==="file"){let p=(a=(r=e.asset)==null?void 0:r.metadata)!=null?a:{};if(t.extensions&&t.extensions.length>0){let o=String((l=p.extension)!=null?l:"").toLowerCase();if(!o||!t.extensions.includes(o))return false}if(t.fileType){let o=String((d=(u=p.file_type)!=null?u:p.type)!=null?d:"").toLowerCase().split("/")[0],c=t.fileType.toLowerCase();if(o&&c&&!o.includes(c)&&o!==c)return false}}return true}function M(e,s){if(!e||!Object.keys(e).length)return null;let t=s&&L(s)||Object.keys(e)[0],n=e[t];return n?{key:t,asset_id:n.asset_id,asset_type:n.asset_type}:null}function $(e){return e?Object.fromEntries(Object.entries(e).map(([s,t])=>[s,{assetId:t.asset_id,assetType:t.asset_type}])):{}}export{P as a,T as b,E as c,q as d,K as e,Q as f,j as g,L as h,B as i,F as j,V as k,M as l,$ as m};//# sourceMappingURL=chunk-64ZUBBP7.js.map
2
+ //# sourceMappingURL=chunk-64ZUBBP7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/quest-submission.ts"],"names":["isPlainObject","value","normalizeFileExtension","safe","normalizeFileExtensions","rawValues","entry","KeyedAssetRefsSchema","record","string","object","uuid","AssetTypeSchema","KeyedAssetInputValueSchema","union","optional","KeyedAssetInputSchema","QuestSubmissionAssetDeclarationSchema","RouteInputAssetDeclarationSchema","boolean","readDeclarationExtensions","declaration","readDeclarationFilter","getRouteInputDeclarationsFromRoute","route","_a","detail","inputs","entries","declarationToSubmissionDeclaration","extensions","filter","materializeContributorSubmissionAssets","routeInputs","pinnedKeys","pinned","out","key","getPrimaryDeclarationKey","declarations","primary","d","getSubmissionAssetShape","item","_b","materialized","declarationToPickerFilters","assetType","filters","fileType","assetMatchesDeclaration","asset","_c","_d","_e","_f","metadata","ext","type","expected","getPrimaryAssetRef","refs","ref","toRouteInputAssets"],"mappings":"2IAeA,SAASA,CAAcC,CAAAA,CAAAA,CAAkD,CACvE,OAAO,CAAA,CAAQA,GAAU,OAAOA,CAAAA,EAAU,UAAY,CAAC,KAAA,CAAM,QAAQA,CAAK,CAC5E,CAEA,SAASC,CAAAA,CAAuBD,EAAiD,CAC/E,GAAI,CAACA,CAAO,CAAA,OAAO,KAEnB,IAAME,CAAAA,CADaF,EAAM,OAAQ,CAAA,MAAA,CAAQ,EAAE,CAAE,CAAA,IAAA,GAAO,WAAY,EAAA,CACxC,QAAQ,YAAc,CAAA,EAAE,EAChD,OAAI,CAACE,GAAQ,OAAQ,CAAA,IAAA,CAAKA,CAAI,CAAKA,EAAAA,CAAAA,CAAK,OAAS,EAAW,CAAA,IAAA,CACrDA,CACT,CAEA,SAASC,EACPH,CACU,CAAA,CACV,IAAMI,CAAY,CAAA,KAAA,CAAM,QAAQJ,CAAK,CAAA,CACjCA,EACA,OAAOA,CAAAA,EAAU,SACfA,CAAM,CAAA,KAAA,CAAM,QAAQ,CACpB,CAAA,GACN,OAAO,KAAA,CAAM,KACX,IAAI,GAAA,CACFI,CACG,CAAA,GAAA,CAAKC,GAAUJ,CAAuBI,CAAAA,CAAK,CAAC,CAC5C,CAAA,MAAA,CAAQA,GAA2B,CAAQA,CAAAA,CAAM,CACtD,CACF,CACF,CAGaC,IAAAA,CAAAA,CAAuBC,OAClCC,MAAO,EAAA,CACPC,OAAO,CACL,QAAA,CAAUC,MACV,CAAA,UAAA,CAAYC,CACd,CAAC,CACH,EAGaC,CAA6BC,CAAAA,KAAAA,CAAM,CAC9CH,IAAK,EAAA,CACLD,OAAO,CACL,QAAA,CAAUC,MACV,CAAA,UAAA,CAAYI,SAASH,CAAe,CACtC,CAAC,CACH,CAAC,EAEYI,CAAwBR,CAAAA,MAAAA,CACnCC,QACAI,CAAAA,CACF,EAEaI,CACXC,CAAAA,CAAAA,CAAiC,OAAO,CACtC,QAAA,CAAUH,SAASI,OAAQ,EAAC,EAAE,OAAQ,CAAA,IAAI,CAC5C,CAAC,EAwCH,SAASC,CACPC,CAAAA,CAAAA,CACU,CACV,OAAOjB,CAAAA,CAAwB,CAC7B,GAAI,KAAA,CAAM,QAAQiB,CAAY,CAAA,eAAe,EACzCA,CAAY,CAAA,eAAA,CACZ,EACJ,CAAA,GAAI,MAAM,OAAQA,CAAAA,CAAAA,CAAY,qBAAqB,CAC/CA,CAAAA,CAAAA,CAAY,sBACZ,EACN,CAAE,CAAA,IAAA,CAAK,GAAG,CAAC,CACb,CAEA,SAASC,CAAAA,CACPD,EACoB,CACpB,OAAOA,EAAY,YAAgBA,EAAAA,CAAAA,CAAY,QAAU,MAC3D,CAGO,SAASE,CACdC,CAAAA,CAAAA,CAC2C,CApI7C,IAAAC,CAAAA,CAqIE,IAAMC,CAASF,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,KAAA,CACtB,GAAI,CAACE,CAAAA,CAAQ,OAAO,EAAC,CAErB,IAAMC,CAASD,CAAAA,CAAAA,CAAO,aACtB,GAAI1B,CAAAA,CAAc2B,CAAM,CAAG,CAAA,CACzB,IAAMC,CAAU,CAAA,MAAA,CAAO,QAAQD,CAAM,CAAA,CAAE,OAAO,CAAC,EAAG1B,CAAK,CAAA,GACrDD,EAAcC,CAAK,CACrB,EACA,GAAI2B,CAAAA,CAAQ,OAAS,CACnB,CAAA,OAAO,OAAO,WAAYA,CAAAA,CAAO,CAErC,CAEA,OAAIF,EAAO,UACF,CAAA,CACL,CAACA,CAAO,CAAA,UAAU,EAAG,CACnB,UAAA,CAAYA,EAAO,UACnB,CAAA,OAAA,CAAS,KACT,YAAcA,CAAAA,CAAAA,CAAO,aACrB,qBAAuBD,CAAAA,CAAAA,CAAAA,CAAAC,EAAO,qBAAP,GAAA,IAAA,CAAAD,EAAgC,IACzD,CACF,CAGK,CAAA,EACT,CAEO,SAASI,EACdR,CACiC,CAAA,CACjC,IAAMS,CAAaV,CAAAA,CAAAA,CAA0BC,CAAW,CAClDU,CAAAA,CAAAA,CAAST,EAAsBD,CAAW,CAAA,CAChD,OAAO,CACL,UAAA,CAAYA,EAAY,UACxB,CAAA,OAAA,CAASA,EAAY,OACrB,CAAA,YAAA,CAAeU,GAAA,IAAAA,CAAAA,CAAAA,CAAU,KACzB,eAAiBD,CAAAA,CAAAA,CAAW,OAAS,CAAIA,CAAAA,CAAAA,CAAa,KACtD,QAAU,CAAA,IACZ,CACF,CAGO,SAASE,EACdC,CACAC,CAAAA,CAAAA,CACiD,CACjD,IAAMC,CAAAA,CAAS,IAAI,GAAID,CAAAA,CAAU,EAC3BE,CAAuD,CAAA,GAC7D,IAAW,GAAA,CAACC,EAAKhB,CAAW,CAAA,GAAK,OAAO,OAAQY,CAAAA,CAAW,EACrDE,CAAO,CAAA,GAAA,CAAIE,CAAG,CAClBD,GAAAA,CAAAA,CAAIC,CAAG,CAAIR,CAAAA,CAAAA,CAAmCR,CAAW,CAE3D,CAAA,CAAA,OAAOe,CACT,CAEO,SAASE,EACdC,CACe,CAAA,CACf,IAAMX,CAAU,CAAA,MAAA,CAAO,QAAQW,CAAY,CAAA,CAC3C,GAAI,CAACX,CAAAA,CAAQ,OAAQ,OAAO,IAAA,CAC5B,IAAMY,CAAUZ,CAAAA,CAAAA,CAAQ,IAAK,CAAA,CAAC,EAAGa,CAAC,IAAMA,CAAE,CAAA,OAAA,GAAY,IAAI,CAC1D,CAAA,OAAID,EAAgBA,CAAQ,CAAA,CAAC,GACzBZ,CAAQ,CAAA,MAAA,GAAW,EAAUA,CAAQ,CAAA,CAAC,EAAE,CAAC,CAAA,CAE/C,CAEO,SAASc,CAAAA,CACdC,EACAnB,CAKA,CAAA,CA9MF,IAAAC,CAAAmB,CAAAA,CAAAA,CA+ME,IAAMT,CAAyBV,CAAAA,CAAAA,CAAAA,CAAAkB,EAAK,kBAAL,GAAA,IAAA,CAAAlB,EAA2B,EAAC,CAE3D,GAAIkB,CAAK,CAAA,aAAA,EAAiBnB,EAAO,CAC/B,IAAMS,EAAcV,CAAmCC,CAAAA,CAAK,EACtDU,CAAa,CAAA,MAAA,CAAO,KAAKC,CAAM,CAAA,CAC/BU,EAAeb,CACnBC,CAAAA,CAAAA,CACAC,CACF,CACA,CAAA,OAAO,CACL,eAAiB,CAAA,MAAA,CAAO,KAAKW,CAAY,CAAA,CACzC,aAAcA,CACd,CAAA,MAAA,CAAAV,CACF,CACF,CAEA,IAAMI,CAAeK,CAAAA,CAAAA,CAAAA,CAAAD,EAAK,iBAAL,GAAA,IAAA,CAAAC,EAA0B,EAAC,CAChD,OAAO,CACL,eAAA,CAAiB,OAAO,IAAKL,CAAAA,CAAY,EACzC,YAAAA,CAAAA,CAAAA,CACA,OAAAJ,CACF,CACF,CAEO,SAASW,EACdzB,CACsC,CAAA,CACtC,GAAI,CAACA,CAAAA,CAAa,OAAO,IACzB,CAAA,IAAM0B,EAAY1B,CAAY,CAAA,UAAA,EAAc,OAC5C,GAAI,CAAC0B,EAAW,OAAO,IAAA,CAEvB,IAAMC,CAAyC,CAAA,CAC7C,UAAAD,CACA,CAAA,cAAA,CAAgB,KAClB,CAEA,CAAA,GAAIA,IAAc,MAAQ,CAAA,CACxB,IAAMjB,CAAaV,CAAAA,CAAAA,CAA0BC,CAAW,CACpDS,CAAAA,CAAAA,CAAW,OAAS,CACtBkB,GAAAA,CAAAA,CAAQ,WAAalB,CACrBkB,CAAAA,CAAAA,CAAQ,eAAiB,IAE3B,CAAA,CAAA,IAAMC,EAAW3B,CAAsBD,CAAAA,CAAW,EAC9C4B,CACFD,GAAAA,CAAAA,CAAQ,SAAWC,CACnBD,CAAAA,CAAAA,CAAQ,eAAiB,IAE7B,EAAA,CAEA,OAAOA,CACT,CAEO,SAASE,CACdC,CAAAA,CAAAA,CAQA9B,EACS,CA7QX,IAAAI,EAAAmB,CAAAQ,CAAAA,CAAAA,CAAAC,EAAAC,CAAAC,CAAAA,CAAAA,CA8QE,GAAI,CAAClC,CAAAA,EAAe,CAAC8B,CAAO,CAAA,OAAO,MACnC,IAAMH,CAAAA,CAAUF,EAA2BzB,CAAW,CAAA,CACtD,GAAI,CAAC2B,CAAAA,CAAS,OAAO,KAErB,CAAA,IAAMD,GAAYtB,CAAA0B,CAAAA,CAAAA,CAAM,SAAN,GAAA,IAAA,CAAA1B,EAAmB0B,CAAM,CAAA,UAAA,CAC3C,GAAIH,CAAQ,CAAA,SAAA,EAAaD,IAAcC,CAAQ,CAAA,SAAA,CAAW,OAAO,MAEjE,CAAA,GAAIA,EAAQ,SAAc,GAAA,MAAA,CAAQ,CAChC,IAAMQ,CAAAA,CAAAA,CAAWJ,GAAAR,CAAAO,CAAAA,CAAAA,CAAM,QAAN,IAAAP,CAAAA,MAAAA,CAAAA,CAAAA,CAAa,WAAb,IAAAQ,CAAAA,CAAAA,CAAyB,EAC1C,CAAA,GAAIJ,EAAQ,UAAcA,EAAAA,CAAAA,CAAQ,WAAW,MAAS,CAAA,CAAA,CAAG,CACvD,IAAMS,CAAAA,CAAM,QAAOJ,CAAAG,CAAAA,CAAAA,CAAS,YAAT,IAAAH,CAAAA,CAAAA,CAAsB,EAAE,CAAE,CAAA,WAAA,GAC7C,GAAI,CAACI,GAAO,CAACT,CAAAA,CAAQ,WAAW,QAASS,CAAAA,CAAG,EAAG,OAAO,MACxD,CACA,GAAIT,CAAAA,CAAQ,SAAU,CACpB,IAAMU,EAAO,MAAOH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAD,EAAAE,CAAS,CAAA,SAAA,GAAT,KAAAF,CAAsBE,CAAAA,CAAAA,CAAS,OAA/B,IAAAD,CAAAA,CAAAA,CAAuC,EAAE,CAC1D,CAAA,WAAA,GACA,KAAM,CAAA,GAAG,EAAE,CAAC,CAAA,CACTI,EAAWX,CAAQ,CAAA,QAAA,CAAS,aAClC,CAAA,GAAIU,GAAQC,CAAY,EAAA,CAACD,EAAK,QAASC,CAAAA,CAAQ,GAAKD,CAASC,GAAAA,CAAAA,CAC3D,OAAO,MAEX,CACF,CAEA,OAAO,KACT,CAEO,SAASC,CAAAA,CACdC,EACAtB,CAC8D,CAAA,CAC9D,GAAI,CAACsB,CAAAA,EAAQ,CAAC,MAAO,CAAA,IAAA,CAAKA,CAAI,CAAE,CAAA,MAAA,CAAQ,OAAO,IAC/C,CAAA,IAAMxB,EACHE,CAAgBD,EAAAA,CAAAA,CAAyBC,CAAY,CACtD,EAAA,MAAA,CAAO,KAAKsB,CAAI,CAAA,CAAE,CAAC,CACfC,CAAAA,CAAAA,CAAMD,EAAKxB,CAAG,CAAA,CACpB,OAAKyB,CACE,CAAA,CAAE,IAAAzB,CAAK,CAAA,QAAA,CAAUyB,EAAI,QAAU,CAAA,UAAA,CAAYA,EAAI,UAAW,CAAA,CADhD,IAEnB,CAEO,SAASC,EACdF,CACwD,CAAA,CACxD,OAAKA,CACE,CAAA,MAAA,CAAO,YACZ,MAAO,CAAA,OAAA,CAAQA,CAAI,CAAE,CAAA,GAAA,CAAI,CAAC,CAACxB,CAAAA,CAAKyB,CAAG,CAAM,GAAA,CACvCzB,EACA,CAAE,OAAA,CAASyB,EAAI,QAAU,CAAA,SAAA,CAAWA,EAAI,UAAW,CACrD,CAAC,CACH,CAAA,CANkB,EAOpB","file":"chunk-64ZUBBP7.js","sourcesContent":["import {\n object,\n string,\n record,\n optional,\n boolean,\n array,\n uuid,\n union,\n type z,\n} from \"zod\";\n\nimport { AssetTypeSchema } from \"../schema/common\";\nimport { RouteInputAssetDeclarationSchema } from \"../schema/services\";\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction normalizeFileExtension(value: string | null | undefined): string | null {\n if (!value) return null;\n const normalized = value.replace(/^\\.+/, \"\").trim().toLowerCase();\n const safe = normalized.replace(/[^a-z0-9]/g, \"\");\n if (!safe || /^\\d+$/.test(safe) || safe.length > 12) return null;\n return safe;\n}\n\nfunction normalizeFileExtensions(\n value: string | string[] | null | undefined\n): string[] {\n const rawValues = Array.isArray(value)\n ? value\n : typeof value === \"string\"\n ? value.split(/[\\s,]+/)\n : [];\n return Array.from(\n new Set(\n rawValues\n .map((entry) => normalizeFileExtension(entry))\n .filter((entry): entry is string => Boolean(entry))\n )\n );\n}\n\n/** Stored on entries and eval_static_inputs after server normalization. */\nexport const KeyedAssetRefsSchema = record(\n string(),\n object({\n asset_id: uuid(),\n asset_type: AssetTypeSchema,\n })\n);\n\n/** Accepted on POST /quests/:id/entries/create — server fills asset_type. */\nexport const KeyedAssetInputValueSchema = union([\n uuid(),\n object({\n asset_id: uuid(),\n asset_type: optional(AssetTypeSchema),\n }),\n]);\n\nexport const KeyedAssetInputSchema = record(\n string(),\n KeyedAssetInputValueSchema\n);\n\nexport const QuestSubmissionAssetDeclarationSchema =\n RouteInputAssetDeclarationSchema.extend({\n required: optional(boolean()).default(true),\n });\n\nexport type KeyedAssetRefs = z.infer<typeof KeyedAssetRefsSchema>;\nexport type KeyedAssetInput = z.infer<typeof KeyedAssetInputSchema>;\nexport type QuestSubmissionAssetDeclaration = z.infer<\n typeof QuestSubmissionAssetDeclarationSchema\n>;\n\nexport type AssetDeclarationPickerFilters = {\n assetType?: string;\n fileType?: string;\n extensions?: string[];\n hasConstraints: boolean;\n};\n\nexport type QuestSubmissionItemInput = {\n eval_route_id?: string | null;\n submission_assets?: Record<string, QuestSubmissionAssetDeclaration> | null;\n eval_static_inputs?: KeyedAssetRefs | null;\n expected_asset_type?: string | null;\n};\n\nexport type RouteInputDeclarationLike = {\n asset_type?: string | null;\n primary?: boolean;\n input_filter?: string | null;\n filter?: string | null;\n file_extensions?: string[] | null;\n input_file_extensions?: string[] | null;\n};\n\nexport type RouteForSubmissionShape = {\n route?: {\n input_assets?: Record<string, RouteInputDeclarationLike> | null;\n input_type?: string | null;\n input_filter?: string | null;\n input_file_extensions?: string[] | null;\n } | null;\n} | null;\n\nfunction readDeclarationExtensions(\n declaration: RouteInputDeclarationLike\n): string[] {\n return normalizeFileExtensions([\n ...(Array.isArray(declaration.file_extensions)\n ? declaration.file_extensions\n : []),\n ...(Array.isArray(declaration.input_file_extensions)\n ? declaration.input_file_extensions\n : []),\n ].join(\",\"));\n}\n\nfunction readDeclarationFilter(\n declaration: RouteInputDeclarationLike\n): string | undefined {\n return declaration.input_filter || declaration.filter || undefined;\n}\n\n/** Route keyed inputs as a flat map (includes legacy input_type fallback). */\nexport function getRouteInputDeclarationsFromRoute(\n route: RouteForSubmissionShape\n): Record<string, RouteInputDeclarationLike> {\n const detail = route?.route;\n if (!detail) return {};\n\n const inputs = detail.input_assets;\n if (isPlainObject(inputs)) {\n const entries = Object.entries(inputs).filter(([, value]) =>\n isPlainObject(value)\n ) as [string, RouteInputDeclarationLike][];\n if (entries.length > 0) {\n return Object.fromEntries(entries);\n }\n }\n\n if (detail.input_type) {\n return {\n [detail.input_type]: {\n asset_type: detail.input_type,\n primary: true,\n input_filter: detail.input_filter,\n input_file_extensions: detail.input_file_extensions ?? null,\n },\n };\n }\n\n return {};\n}\n\nexport function declarationToSubmissionDeclaration(\n declaration: RouteInputDeclarationLike\n): QuestSubmissionAssetDeclaration {\n const extensions = readDeclarationExtensions(declaration);\n const filter = readDeclarationFilter(declaration);\n return {\n asset_type: declaration.asset_type as QuestSubmissionAssetDeclaration[\"asset_type\"],\n primary: declaration.primary,\n input_filter: (filter ?? null) as QuestSubmissionAssetDeclaration[\"input_filter\"],\n file_extensions: extensions.length > 0 ? extensions : null,\n required: true,\n };\n}\n\n/** Materialize contributor declarations from route inputs minus pinned keys. */\nexport function materializeContributorSubmissionAssets(\n routeInputs: Record<string, RouteInputDeclarationLike>,\n pinnedKeys: string[]\n): Record<string, QuestSubmissionAssetDeclaration> {\n const pinned = new Set(pinnedKeys);\n const out: Record<string, QuestSubmissionAssetDeclaration> = {};\n for (const [key, declaration] of Object.entries(routeInputs)) {\n if (pinned.has(key)) continue;\n out[key] = declarationToSubmissionDeclaration(declaration);\n }\n return out;\n}\n\nexport function getPrimaryDeclarationKey(\n declarations: Record<string, QuestSubmissionAssetDeclaration>\n): string | null {\n const entries = Object.entries(declarations);\n if (!entries.length) return null;\n const primary = entries.find(([, d]) => d.primary === true);\n if (primary) return primary[0];\n if (entries.length === 1) return entries[0][0];\n return entries[0][0];\n}\n\nexport function getSubmissionAssetShape(\n item: QuestSubmissionItemInput,\n route?: RouteForSubmissionShape | null\n): {\n contributorKeys: string[];\n declarations: Record<string, QuestSubmissionAssetDeclaration>;\n pinned: KeyedAssetRefs;\n} {\n const pinned: KeyedAssetRefs = item.eval_static_inputs ?? {};\n\n if (item.eval_route_id && route) {\n const routeInputs = getRouteInputDeclarationsFromRoute(route);\n const pinnedKeys = Object.keys(pinned);\n const materialized = materializeContributorSubmissionAssets(\n routeInputs,\n pinnedKeys\n );\n return {\n contributorKeys: Object.keys(materialized),\n declarations: materialized,\n pinned,\n };\n }\n\n const declarations = item.submission_assets ?? {};\n return {\n contributorKeys: Object.keys(declarations),\n declarations,\n pinned,\n };\n}\n\nexport function declarationToPickerFilters(\n declaration: RouteInputDeclarationLike | QuestSubmissionAssetDeclaration | null | undefined\n): AssetDeclarationPickerFilters | null {\n if (!declaration) return null;\n const assetType = declaration.asset_type || undefined;\n if (!assetType) return null;\n\n const filters: AssetDeclarationPickerFilters = {\n assetType,\n hasConstraints: false,\n };\n\n if (assetType === \"file\") {\n const extensions = readDeclarationExtensions(declaration);\n if (extensions.length > 0) {\n filters.extensions = extensions;\n filters.hasConstraints = true;\n }\n const fileType = readDeclarationFilter(declaration);\n if (fileType) {\n filters.fileType = fileType;\n filters.hasConstraints = true;\n }\n }\n\n return filters;\n}\n\nexport function assetMatchesDeclaration(\n asset:\n | {\n assetType?: string | null;\n asset_type?: string | null;\n asset?: { metadata?: Record<string, unknown> } | null;\n }\n | null\n | undefined,\n declaration: RouteInputDeclarationLike | QuestSubmissionAssetDeclaration | null | undefined\n): boolean {\n if (!declaration || !asset) return true;\n const filters = declarationToPickerFilters(declaration);\n if (!filters) return true;\n\n const assetType = asset.assetType ?? asset.asset_type;\n if (filters.assetType && assetType !== filters.assetType) return false;\n\n if (filters.assetType === \"file\") {\n const metadata = asset.asset?.metadata ?? {};\n if (filters.extensions && filters.extensions.length > 0) {\n const ext = String(metadata.extension ?? \"\").toLowerCase();\n if (!ext || !filters.extensions.includes(ext)) return false;\n }\n if (filters.fileType) {\n const type = String(metadata.file_type ?? metadata.type ?? \"\")\n .toLowerCase()\n .split(\"/\")[0];\n const expected = filters.fileType.toLowerCase();\n if (type && expected && !type.includes(expected) && type !== expected) {\n return false;\n }\n }\n }\n\n return true;\n}\n\nexport function getPrimaryAssetRef(\n refs: KeyedAssetRefs | null | undefined,\n declarations?: Record<string, QuestSubmissionAssetDeclaration> | null\n): { key: string; asset_id: string; asset_type: string } | null {\n if (!refs || !Object.keys(refs).length) return null;\n const key =\n (declarations && getPrimaryDeclarationKey(declarations)) ||\n Object.keys(refs)[0];\n const ref = refs[key];\n if (!ref) return null;\n return { key, asset_id: ref.asset_id, asset_type: ref.asset_type };\n}\n\nexport function toRouteInputAssets(\n refs: KeyedAssetRefs | null | undefined\n): Record<string, { assetId: string; assetType: string }> {\n if (!refs) return {};\n return Object.fromEntries(\n Object.entries(refs).map(([key, ref]) => [\n key,\n { assetId: ref.asset_id, assetType: ref.asset_type },\n ])\n );\n}\n\n/** @deprecated Use declarationToPickerFilters */\nexport type EvalSubmissionFilters = AssetDeclarationPickerFilters;\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkXEA4DDOE_cjs=require('./chunk-XEA4DDOE.cjs'),chunkYFEGRZXL_cjs=require('./chunk-YFEGRZXL.cjs'),zod=require('zod');function _(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}function k(e){if(!e)return null;let t=e.replace(/^\.+/,"").trim().toLowerCase().replace(/[^a-z0-9]/g,"");return !t||/^\d+$/.test(t)||t.length>12?null:t}function I(e){let s=Array.isArray(e)?e:typeof e=="string"?e.split(/[\s,]+/):[];return Array.from(new Set(s.map(t=>k(t)).filter(t=>!!t)))}var P=zod.record(zod.string(),zod.object({asset_id:zod.uuid(),asset_type:chunkYFEGRZXL_cjs.a})),T=zod.union([zod.uuid(),zod.object({asset_id:zod.uuid(),asset_type:zod.optional(chunkYFEGRZXL_cjs.a)})]),E=zod.record(zod.string(),T),q=chunkXEA4DDOE_cjs.e.extend({required:zod.optional(zod.boolean()).default(true)});function S(e){return I([...Array.isArray(e.file_extensions)?e.file_extensions:[],...Array.isArray(e.input_file_extensions)?e.input_file_extensions:[]].join(","))}function R(e){return e.input_filter||e.filter||void 0}function K(e){var n;let s=e==null?void 0:e.route;if(!s)return {};let t=s.input_assets;if(_(t)){let i=Object.entries(t).filter(([,r])=>_(r));if(i.length>0)return Object.fromEntries(i)}return s.input_type?{[s.input_type]:{asset_type:s.input_type,primary:true,input_filter:s.input_filter,input_file_extensions:(n=s.input_file_extensions)!=null?n:null}}:{}}function Q(e){let s=S(e),t=R(e);return {asset_type:e.asset_type,primary:e.primary,input_filter:t!=null?t:null,file_extensions:s.length>0?s:null,required:true}}function j(e,s){let t=new Set(s),n={};for(let[i,r]of Object.entries(e))t.has(i)||(n[i]=Q(r));return n}function L(e){let s=Object.entries(e);if(!s.length)return null;let t=s.find(([,n])=>n.primary===true);return t?t[0]:(s.length===1,s[0][0])}function B(e,s){var i,r;let t=(i=e.eval_static_inputs)!=null?i:{};if(e.eval_route_id&&s){let a=K(s),l=Object.keys(t),u=j(a,l);return {contributorKeys:Object.keys(u),declarations:u,pinned:t}}let n=(r=e.submission_assets)!=null?r:{};return {contributorKeys:Object.keys(n),declarations:n,pinned:t}}function F(e){if(!e)return null;let s=e.asset_type||void 0;if(!s)return null;let t={assetType:s,hasConstraints:false};if(s==="file"){let n=S(e);n.length>0&&(t.extensions=n,t.hasConstraints=true);let i=R(e);i&&(t.fileType=i,t.hasConstraints=true);}return t}function V(e,s){var i,r,a,l,u,d;if(!s||!e)return true;let t=F(s);if(!t)return true;let n=(i=e.assetType)!=null?i:e.asset_type;if(t.assetType&&n!==t.assetType)return false;if(t.assetType==="file"){let p=(a=(r=e.asset)==null?void 0:r.metadata)!=null?a:{};if(t.extensions&&t.extensions.length>0){let o=String((l=p.extension)!=null?l:"").toLowerCase();if(!o||!t.extensions.includes(o))return false}if(t.fileType){let o=String((d=(u=p.file_type)!=null?u:p.type)!=null?d:"").toLowerCase().split("/")[0],c=t.fileType.toLowerCase();if(o&&c&&!o.includes(c)&&o!==c)return false}}return true}function M(e,s){if(!e||!Object.keys(e).length)return null;let t=s&&L(s)||Object.keys(e)[0],n=e[t];return n?{key:t,asset_id:n.asset_id,asset_type:n.asset_type}:null}function $(e){return e?Object.fromEntries(Object.entries(e).map(([s,t])=>[s,{assetId:t.asset_id,assetType:t.asset_type}])):{}}exports.a=P;exports.b=T;exports.c=E;exports.d=q;exports.e=K;exports.f=Q;exports.g=j;exports.h=L;exports.i=B;exports.j=F;exports.k=V;exports.l=M;exports.m=$;//# sourceMappingURL=chunk-ADLJ3UUW.cjs.map
2
+ //# sourceMappingURL=chunk-ADLJ3UUW.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/quest-submission.ts"],"names":["isPlainObject","value","normalizeFileExtension","safe","normalizeFileExtensions","rawValues","entry","KeyedAssetRefsSchema","record","string","object","uuid","AssetTypeSchema","KeyedAssetInputValueSchema","union","optional","KeyedAssetInputSchema","QuestSubmissionAssetDeclarationSchema","RouteInputAssetDeclarationSchema","boolean","readDeclarationExtensions","declaration","readDeclarationFilter","getRouteInputDeclarationsFromRoute","route","_a","detail","inputs","entries","declarationToSubmissionDeclaration","extensions","filter","materializeContributorSubmissionAssets","routeInputs","pinnedKeys","pinned","out","key","getPrimaryDeclarationKey","declarations","primary","d","getSubmissionAssetShape","item","_b","materialized","declarationToPickerFilters","assetType","filters","fileType","assetMatchesDeclaration","asset","_c","_d","_e","_f","metadata","ext","type","expected","getPrimaryAssetRef","refs","ref","toRouteInputAssets"],"mappings":"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","file":"chunk-ADLJ3UUW.cjs","sourcesContent":["import {\n object,\n string,\n record,\n optional,\n boolean,\n array,\n uuid,\n union,\n type z,\n} from \"zod\";\n\nimport { AssetTypeSchema } from \"../schema/common\";\nimport { RouteInputAssetDeclarationSchema } from \"../schema/services\";\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction normalizeFileExtension(value: string | null | undefined): string | null {\n if (!value) return null;\n const normalized = value.replace(/^\\.+/, \"\").trim().toLowerCase();\n const safe = normalized.replace(/[^a-z0-9]/g, \"\");\n if (!safe || /^\\d+$/.test(safe) || safe.length > 12) return null;\n return safe;\n}\n\nfunction normalizeFileExtensions(\n value: string | string[] | null | undefined\n): string[] {\n const rawValues = Array.isArray(value)\n ? value\n : typeof value === \"string\"\n ? value.split(/[\\s,]+/)\n : [];\n return Array.from(\n new Set(\n rawValues\n .map((entry) => normalizeFileExtension(entry))\n .filter((entry): entry is string => Boolean(entry))\n )\n );\n}\n\n/** Stored on entries and eval_static_inputs after server normalization. */\nexport const KeyedAssetRefsSchema = record(\n string(),\n object({\n asset_id: uuid(),\n asset_type: AssetTypeSchema,\n })\n);\n\n/** Accepted on POST /quests/:id/entries/create — server fills asset_type. */\nexport const KeyedAssetInputValueSchema = union([\n uuid(),\n object({\n asset_id: uuid(),\n asset_type: optional(AssetTypeSchema),\n }),\n]);\n\nexport const KeyedAssetInputSchema = record(\n string(),\n KeyedAssetInputValueSchema\n);\n\nexport const QuestSubmissionAssetDeclarationSchema =\n RouteInputAssetDeclarationSchema.extend({\n required: optional(boolean()).default(true),\n });\n\nexport type KeyedAssetRefs = z.infer<typeof KeyedAssetRefsSchema>;\nexport type KeyedAssetInput = z.infer<typeof KeyedAssetInputSchema>;\nexport type QuestSubmissionAssetDeclaration = z.infer<\n typeof QuestSubmissionAssetDeclarationSchema\n>;\n\nexport type AssetDeclarationPickerFilters = {\n assetType?: string;\n fileType?: string;\n extensions?: string[];\n hasConstraints: boolean;\n};\n\nexport type QuestSubmissionItemInput = {\n eval_route_id?: string | null;\n submission_assets?: Record<string, QuestSubmissionAssetDeclaration> | null;\n eval_static_inputs?: KeyedAssetRefs | null;\n expected_asset_type?: string | null;\n};\n\nexport type RouteInputDeclarationLike = {\n asset_type?: string | null;\n primary?: boolean;\n input_filter?: string | null;\n filter?: string | null;\n file_extensions?: string[] | null;\n input_file_extensions?: string[] | null;\n};\n\nexport type RouteForSubmissionShape = {\n route?: {\n input_assets?: Record<string, RouteInputDeclarationLike> | null;\n input_type?: string | null;\n input_filter?: string | null;\n input_file_extensions?: string[] | null;\n } | null;\n} | null;\n\nfunction readDeclarationExtensions(\n declaration: RouteInputDeclarationLike\n): string[] {\n return normalizeFileExtensions([\n ...(Array.isArray(declaration.file_extensions)\n ? declaration.file_extensions\n : []),\n ...(Array.isArray(declaration.input_file_extensions)\n ? declaration.input_file_extensions\n : []),\n ].join(\",\"));\n}\n\nfunction readDeclarationFilter(\n declaration: RouteInputDeclarationLike\n): string | undefined {\n return declaration.input_filter || declaration.filter || undefined;\n}\n\n/** Route keyed inputs as a flat map (includes legacy input_type fallback). */\nexport function getRouteInputDeclarationsFromRoute(\n route: RouteForSubmissionShape\n): Record<string, RouteInputDeclarationLike> {\n const detail = route?.route;\n if (!detail) return {};\n\n const inputs = detail.input_assets;\n if (isPlainObject(inputs)) {\n const entries = Object.entries(inputs).filter(([, value]) =>\n isPlainObject(value)\n ) as [string, RouteInputDeclarationLike][];\n if (entries.length > 0) {\n return Object.fromEntries(entries);\n }\n }\n\n if (detail.input_type) {\n return {\n [detail.input_type]: {\n asset_type: detail.input_type,\n primary: true,\n input_filter: detail.input_filter,\n input_file_extensions: detail.input_file_extensions ?? null,\n },\n };\n }\n\n return {};\n}\n\nexport function declarationToSubmissionDeclaration(\n declaration: RouteInputDeclarationLike\n): QuestSubmissionAssetDeclaration {\n const extensions = readDeclarationExtensions(declaration);\n const filter = readDeclarationFilter(declaration);\n return {\n asset_type: declaration.asset_type as QuestSubmissionAssetDeclaration[\"asset_type\"],\n primary: declaration.primary,\n input_filter: (filter ?? null) as QuestSubmissionAssetDeclaration[\"input_filter\"],\n file_extensions: extensions.length > 0 ? extensions : null,\n required: true,\n };\n}\n\n/** Materialize contributor declarations from route inputs minus pinned keys. */\nexport function materializeContributorSubmissionAssets(\n routeInputs: Record<string, RouteInputDeclarationLike>,\n pinnedKeys: string[]\n): Record<string, QuestSubmissionAssetDeclaration> {\n const pinned = new Set(pinnedKeys);\n const out: Record<string, QuestSubmissionAssetDeclaration> = {};\n for (const [key, declaration] of Object.entries(routeInputs)) {\n if (pinned.has(key)) continue;\n out[key] = declarationToSubmissionDeclaration(declaration);\n }\n return out;\n}\n\nexport function getPrimaryDeclarationKey(\n declarations: Record<string, QuestSubmissionAssetDeclaration>\n): string | null {\n const entries = Object.entries(declarations);\n if (!entries.length) return null;\n const primary = entries.find(([, d]) => d.primary === true);\n if (primary) return primary[0];\n if (entries.length === 1) return entries[0][0];\n return entries[0][0];\n}\n\nexport function getSubmissionAssetShape(\n item: QuestSubmissionItemInput,\n route?: RouteForSubmissionShape | null\n): {\n contributorKeys: string[];\n declarations: Record<string, QuestSubmissionAssetDeclaration>;\n pinned: KeyedAssetRefs;\n} {\n const pinned: KeyedAssetRefs = item.eval_static_inputs ?? {};\n\n if (item.eval_route_id && route) {\n const routeInputs = getRouteInputDeclarationsFromRoute(route);\n const pinnedKeys = Object.keys(pinned);\n const materialized = materializeContributorSubmissionAssets(\n routeInputs,\n pinnedKeys\n );\n return {\n contributorKeys: Object.keys(materialized),\n declarations: materialized,\n pinned,\n };\n }\n\n const declarations = item.submission_assets ?? {};\n return {\n contributorKeys: Object.keys(declarations),\n declarations,\n pinned,\n };\n}\n\nexport function declarationToPickerFilters(\n declaration: RouteInputDeclarationLike | QuestSubmissionAssetDeclaration | null | undefined\n): AssetDeclarationPickerFilters | null {\n if (!declaration) return null;\n const assetType = declaration.asset_type || undefined;\n if (!assetType) return null;\n\n const filters: AssetDeclarationPickerFilters = {\n assetType,\n hasConstraints: false,\n };\n\n if (assetType === \"file\") {\n const extensions = readDeclarationExtensions(declaration);\n if (extensions.length > 0) {\n filters.extensions = extensions;\n filters.hasConstraints = true;\n }\n const fileType = readDeclarationFilter(declaration);\n if (fileType) {\n filters.fileType = fileType;\n filters.hasConstraints = true;\n }\n }\n\n return filters;\n}\n\nexport function assetMatchesDeclaration(\n asset:\n | {\n assetType?: string | null;\n asset_type?: string | null;\n asset?: { metadata?: Record<string, unknown> } | null;\n }\n | null\n | undefined,\n declaration: RouteInputDeclarationLike | QuestSubmissionAssetDeclaration | null | undefined\n): boolean {\n if (!declaration || !asset) return true;\n const filters = declarationToPickerFilters(declaration);\n if (!filters) return true;\n\n const assetType = asset.assetType ?? asset.asset_type;\n if (filters.assetType && assetType !== filters.assetType) return false;\n\n if (filters.assetType === \"file\") {\n const metadata = asset.asset?.metadata ?? {};\n if (filters.extensions && filters.extensions.length > 0) {\n const ext = String(metadata.extension ?? \"\").toLowerCase();\n if (!ext || !filters.extensions.includes(ext)) return false;\n }\n if (filters.fileType) {\n const type = String(metadata.file_type ?? metadata.type ?? \"\")\n .toLowerCase()\n .split(\"/\")[0];\n const expected = filters.fileType.toLowerCase();\n if (type && expected && !type.includes(expected) && type !== expected) {\n return false;\n }\n }\n }\n\n return true;\n}\n\nexport function getPrimaryAssetRef(\n refs: KeyedAssetRefs | null | undefined,\n declarations?: Record<string, QuestSubmissionAssetDeclaration> | null\n): { key: string; asset_id: string; asset_type: string } | null {\n if (!refs || !Object.keys(refs).length) return null;\n const key =\n (declarations && getPrimaryDeclarationKey(declarations)) ||\n Object.keys(refs)[0];\n const ref = refs[key];\n if (!ref) return null;\n return { key, asset_id: ref.asset_id, asset_type: ref.asset_type };\n}\n\nexport function toRouteInputAssets(\n refs: KeyedAssetRefs | null | undefined\n): Record<string, { assetId: string; assetType: string }> {\n if (!refs) return {};\n return Object.fromEntries(\n Object.entries(refs).map(([key, ref]) => [\n key,\n { assetId: ref.asset_id, assetType: ref.asset_type },\n ])\n );\n}\n\n/** @deprecated Use declarationToPickerFilters */\nexport type EvalSubmissionFilters = AssetDeclarationPickerFilters;\n"]}
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkU6XOT6XH_cjs=require('./chunk-U6XOT6XH.cjs'),chunkRMMMRN4X_cjs=require('./chunk-RMMMRN4X.cjs'),chunkYFEGRZXL_cjs=require('./chunk-YFEGRZXL.cjs'),zod=require('zod');var w=zod.enum(["closable","continuous"]),E=zod.enum(["draft","open","closed","cancelled"]),l=zod.enum(["pending","in_progress","done","skipped"]),I=zod.enum(["btc","usd"]),q=zod.enum(["skipped","running","passed","failed","errored"]),k=zod.enum(["submitted","accepted","rejected"]),C=zod.enum(["desc","asc"]),T=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())}),d=zod.object({json:zod.object({type:zod.literal("doc"),content:zod.array(T)}),text:zod.string()}),A=zod.object({id:zod.uuid(),quest_id:zod.uuid(),description:d,status:l.default("pending"),auto_skipped:zod.optional(zod.nullable(zod.string().or(zod.any()))),status_before_auto_skip:zod.optional(zod.nullable(l)),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(chunkYFEGRZXL_cjs.a)),reward_xp:zod.number().int().nonnegative().default(0),reward_currency:I.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_categories_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())),leaderboard_enabled:zod.optional(zod.boolean()).default(false),leaderboard_order:zod.optional(C).default("desc"),submission_assets:zod.optional(zod.nullable(zod.record(zod.string(),chunkU6XOT6XH_cjs.d))),eval_static_inputs:zod.optional(zod.nullable(chunkU6XOT6XH_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()}),R=A,x=zod.object({description:zod.union([zod.string().min(1,{message:"Item description cannot be empty"}),d]),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(chunkYFEGRZXL_cjs.a)),reward_xp:zod.optional(zod.number().int().nonnegative()).default(0),reward_currency:zod.optional(I).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_categories_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())),leaderboard_enabled:zod.optional(zod.boolean()).default(false),leaderboard_order:zod.optional(C).default("desc"),submission_assets:zod.optional(zod.nullable(zod.record(zod.string(),chunkU6XOT6XH_cjs.d))),eval_static_inputs:zod.optional(zod.nullable(chunkU6XOT6XH_cjs.a)),notes:zod.optional(zod.nullable(zod.string()))}),U=zod.union([zod.string().min(1,{message:"Item description cannot be empty"}).transform(u=>x.parse({description:u})),x]),j=zod.object({type:w.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()))}),O=chunkRMMMRN4X_cjs.f.extend({asset_type:zod.literal("quest").default("quest"),metadata:zod.optional(zod.nullable(chunkRMMMRN4X_cjs.b.partial())),quest:zod.optional(j.partial()),items:zod.optional(zod.array(R.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:l,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=chunkRMMMRN4X_cjs.h.extend({asset_type:zod.literal("quest").default("quest"),name:zod.optional(zod.nullable(zod.string())).default(null),description:zod.optional(zod.nullable(d)),type:w.default("closable"),status:E.default("open"),max_xp_per_contributor:zod.optional(zod.nullable(zod.number().int().nonnegative())),items:zod.optional(zod.array(U)).default([])}).transform(u=>chunkRMMMRN4X_cjs.a(u)),F=O.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=>chunkRMMMRN4X_cjs.a(u)),M=x.partial().extend({status:zod.optional(l)}),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(chunkYFEGRZXL_cjs.a)),assets:zod.optional(zod.nullable(chunkU6XOT6XH_cjs.a)),description:zod.optional(zod.nullable(d)),review:zod.optional(zod.nullable(d)),status:k,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_category_scores:zod.optional(zod.nullable(zod.record(zod.string(),zod.number()))),eval_status:zod.optional(zod.nullable(q)),created_at:zod.string(),updated_at:zod.string()}),P=zod.object({item_id:zod.uuid(),assets:zod.optional(zod.nullable(chunkU6XOT6XH_cjs.c)),description:zod.optional(zod.nullable(zod.union([zod.string(),d])))}),G=zod.object({status:zod.enum(["accepted","rejected"]),review:zod.optional(zod.nullable(zod.union([zod.string(),d])))});exports.a=w;exports.b=E;exports.c=l;exports.d=I;exports.e=q;exports.f=k;exports.g=C;exports.h=A;exports.i=R;exports.j=x;exports.k=U;exports.l=O;exports.m=Z;exports.n=F;exports.o=M;exports.p=N;exports.q=P;exports.r=G;//# sourceMappingURL=chunk-T6UO42TO.cjs.map
2
- //# sourceMappingURL=chunk-T6UO42TO.cjs.map
1
+ 'use strict';var chunkADLJ3UUW_cjs=require('./chunk-ADLJ3UUW.cjs'),chunkRMMMRN4X_cjs=require('./chunk-RMMMRN4X.cjs'),chunkYFEGRZXL_cjs=require('./chunk-YFEGRZXL.cjs'),zod=require('zod');var w=zod.enum(["closable","continuous"]),E=zod.enum(["draft","open","closed","cancelled"]),l=zod.enum(["pending","in_progress","done","skipped"]),I=zod.enum(["btc","usd"]),q=zod.enum(["skipped","running","passed","failed","errored"]),k=zod.enum(["submitted","accepted","rejected"]),C=zod.enum(["desc","asc"]),T=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())}),d=zod.object({json:zod.object({type:zod.literal("doc"),content:zod.array(T)}),text:zod.string()}),A=zod.object({id:zod.uuid(),quest_id:zod.uuid(),description:d,status:l.default("pending"),auto_skipped:zod.optional(zod.nullable(zod.string().or(zod.any()))),status_before_auto_skip:zod.optional(zod.nullable(l)),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(chunkYFEGRZXL_cjs.a)),reward_xp:zod.number().int().nonnegative().default(0),reward_currency:I.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_categories_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())),leaderboard_enabled:zod.optional(zod.boolean()).default(false),leaderboard_order:zod.optional(C).default("desc"),submission_assets:zod.optional(zod.nullable(zod.record(zod.string(),chunkADLJ3UUW_cjs.d))),eval_static_inputs:zod.optional(zod.nullable(chunkADLJ3UUW_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()}),R=A,x=zod.object({description:zod.union([zod.string().min(1,{message:"Item description cannot be empty"}),d]),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(chunkYFEGRZXL_cjs.a)),reward_xp:zod.optional(zod.number().int().nonnegative()).default(0),reward_currency:zod.optional(I).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_categories_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())),leaderboard_enabled:zod.optional(zod.boolean()).default(false),leaderboard_order:zod.optional(C).default("desc"),submission_assets:zod.optional(zod.nullable(zod.record(zod.string(),chunkADLJ3UUW_cjs.d))),eval_static_inputs:zod.optional(zod.nullable(chunkADLJ3UUW_cjs.a)),notes:zod.optional(zod.nullable(zod.string()))}),U=zod.union([zod.string().min(1,{message:"Item description cannot be empty"}).transform(u=>x.parse({description:u})),x]),j=zod.object({type:w.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()))}),O=chunkRMMMRN4X_cjs.f.extend({asset_type:zod.literal("quest").default("quest"),metadata:zod.optional(zod.nullable(chunkRMMMRN4X_cjs.b.partial())),quest:zod.optional(j.partial()),items:zod.optional(zod.array(R.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:l,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=chunkRMMMRN4X_cjs.h.extend({asset_type:zod.literal("quest").default("quest"),name:zod.optional(zod.nullable(zod.string())).default(null),description:zod.optional(zod.nullable(d)),type:w.default("closable"),status:E.default("open"),max_xp_per_contributor:zod.optional(zod.nullable(zod.number().int().nonnegative())),items:zod.optional(zod.array(U)).default([])}).transform(u=>chunkRMMMRN4X_cjs.a(u)),F=O.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=>chunkRMMMRN4X_cjs.a(u)),M=x.partial().extend({status:zod.optional(l)}),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(chunkYFEGRZXL_cjs.a)),assets:zod.optional(zod.nullable(chunkADLJ3UUW_cjs.a)),description:zod.optional(zod.nullable(d)),review:zod.optional(zod.nullable(d)),status:k,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_category_scores:zod.optional(zod.nullable(zod.record(zod.string(),zod.number()))),eval_status:zod.optional(zod.nullable(q)),created_at:zod.string(),updated_at:zod.string()}),P=zod.object({item_id:zod.uuid(),assets:zod.optional(zod.nullable(chunkADLJ3UUW_cjs.c)),description:zod.optional(zod.nullable(zod.union([zod.string(),d])))}),G=zod.object({status:zod.enum(["accepted","rejected"]),review:zod.optional(zod.nullable(zod.union([zod.string(),d])))});exports.a=w;exports.b=E;exports.c=l;exports.d=I;exports.e=q;exports.f=k;exports.g=C;exports.h=A;exports.i=R;exports.j=x;exports.k=U;exports.l=O;exports.m=Z;exports.n=F;exports.o=M;exports.p=N;exports.q=P;exports.r=G;//# sourceMappingURL=chunk-CIEATF7M.cjs.map
2
+ //# sourceMappingURL=chunk-CIEATF7M.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schema/quests.ts"],"names":["QuestTypeSchema","zodEnum","QuestStatusSchema","QuestItemStatusSchema","RewardCurrencySchema","EntryEvalStatusSchema","EntryStatusSchema","LeaderboardOrderSchema","TipTapNode","object","string","optional","array","any","record","ContentSchema","literal","QuestItemBaseSchema","uuid","nullable","number","AssetTypeSchema","zodBoolean","QuestSubmissionAssetDeclarationSchema","KeyedAssetRefsSchema","QuestItemSchema","CreateQuestItemObjectSchema","union","CreateQuestItemSchema","description","QuestSpecificsSchema","QuestSchema","AssetSchema","AssetMetadataSchema","CreateQuestSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","UpdateQuestSchema","UpdateQuestItemSchema","EntrySchema","CreateEntrySchema","KeyedAssetInputSchema","ReviewEntrySchema"],"mappings":"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","file":"chunk-T6UO42TO.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/** desc = higher scores rank first; asc = lower scores rank first */\nconst LeaderboardOrderSchema = zodEnum([\"desc\", \"asc\"]);\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: ContentSchema,\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_categories_path: optional(nullable(string())),\n eval_pass_min: optional(nullable(number())),\n eval_pass_max: optional(nullable(number())),\n leaderboard_enabled: optional(zodBoolean()).default(false),\n leaderboard_order: optional(LeaderboardOrderSchema).default(\"desc\"),\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 or TipTap Content as a convenience —\n * a bare string is lifted into `{ description }` by the `union` below.\n * The backend normalizes either shape with `toContentFromMaybeMarkdown`.\n */\nconst CreateQuestItemObjectSchema = object({\n description: union([\n string().min(1, { message: \"Item description cannot be empty\" }),\n ContentSchema,\n ]),\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_categories_path: optional(nullable(string())),\n eval_pass_min: optional(nullable(number())),\n eval_pass_max: optional(nullable(number())),\n leaderboard_enabled: optional(zodBoolean()).default(false),\n leaderboard_order: optional(LeaderboardOrderSchema).default(\"desc\"),\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()\n .min(1, { message: \"Item description cannot be empty\" })\n .transform((description) =>\n CreateQuestItemObjectSchema.parse({ description })\n ),\n CreateQuestItemObjectSchema,\n]);\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, TipTap Content objects, or\n * full item objects — the backend `createQuestItems`/`createQuest` paths\n * already handle both shapes, and `CreateQuestItemSchema` normalizes strings\n * into `{ 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_category_scores: optional(nullable(record(string(), 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 LeaderboardOrderSchema,\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 LeaderboardOrder = z.infer<typeof LeaderboardOrderSchema>;\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","LeaderboardOrderSchema","TipTapNode","object","string","optional","array","any","record","ContentSchema","literal","QuestItemBaseSchema","uuid","nullable","number","AssetTypeSchema","zodBoolean","QuestSubmissionAssetDeclarationSchema","KeyedAssetRefsSchema","QuestItemSchema","CreateQuestItemObjectSchema","union","CreateQuestItemSchema","description","QuestSpecificsSchema","QuestSchema","AssetSchema","AssetMetadataSchema","CreateQuestSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","UpdateQuestSchema","UpdateQuestItemSchema","EntrySchema","CreateEntrySchema","KeyedAssetInputSchema","ReviewEntrySchema"],"mappings":"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","file":"chunk-CIEATF7M.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/** desc = higher scores rank first; asc = lower scores rank first */\nconst LeaderboardOrderSchema = zodEnum([\"desc\", \"asc\"]);\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: ContentSchema,\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_categories_path: optional(nullable(string())),\n eval_pass_min: optional(nullable(number())),\n eval_pass_max: optional(nullable(number())),\n leaderboard_enabled: optional(zodBoolean()).default(false),\n leaderboard_order: optional(LeaderboardOrderSchema).default(\"desc\"),\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 or TipTap Content as a convenience —\n * a bare string is lifted into `{ description }` by the `union` below.\n * The backend normalizes either shape with `toContentFromMaybeMarkdown`.\n */\nconst CreateQuestItemObjectSchema = object({\n description: union([\n string().min(1, { message: \"Item description cannot be empty\" }),\n ContentSchema,\n ]),\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_categories_path: optional(nullable(string())),\n eval_pass_min: optional(nullable(number())),\n eval_pass_max: optional(nullable(number())),\n leaderboard_enabled: optional(zodBoolean()).default(false),\n leaderboard_order: optional(LeaderboardOrderSchema).default(\"desc\"),\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()\n .min(1, { message: \"Item description cannot be empty\" })\n .transform((description) =>\n CreateQuestItemObjectSchema.parse({ description })\n ),\n CreateQuestItemObjectSchema,\n]);\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, TipTap Content objects, or\n * full item objects — the backend `createQuestItems`/`createQuest` paths\n * already handle both shapes, and `CreateQuestItemSchema` normalizes strings\n * into `{ 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_category_scores: optional(nullable(record(string(), 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 LeaderboardOrderSchema,\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 LeaderboardOrder = z.infer<typeof LeaderboardOrderSchema>;\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
+ 'use strict';var chunkYFEGRZXL_cjs=require('./chunk-YFEGRZXL.cjs'),zod=require('zod');var m=zod.enum(["public","private","organization","monetized"]),d=zod.enum(["image","video","audio"]),u=zod.object({user:zod.optional(zod.uuid()),team:zod.optional(zod.uuid()),visibility:zod.optional(m),top_level_only:zod.optional(zod.boolean()),asset_type:zod.optional(zod.enum(["file","dataset"])),file_type:zod.optional(d),extension:zod.optional(zod.string()),license:zod.optional(zod.string()),method:zod.optional(chunkYFEGRZXL_cjs.l),status:zod.optional(chunkYFEGRZXL_cjs.j),source:zod.optional(chunkYFEGRZXL_cjs.k),has_reactions:zod.optional(zod.boolean()),has_comments:zod.optional(zod.boolean())}),S=zod.object({asset_type:zod.optional(zod.union([chunkYFEGRZXL_cjs.a,zod.array(chunkYFEGRZXL_cjs.a)])),user_id:zod.optional(zod.uuid()),org_id:zod.optional(zod.uuid()),team_id:zod.optional(zod.uuid()),visibility:zod.optional(zod.union([m,zod.array(m)])),license_id:zod.optional(zod.string()),source:zod.optional(chunkYFEGRZXL_cjs.k),top_level_only:zod.optional(zod.boolean()),method:zod.optional(chunkYFEGRZXL_cjs.l),status:zod.optional(chunkYFEGRZXL_cjs.j),exclude_user_id:zod.optional(zod.uuid()),exclude_org_ids:zod.optional(zod.array(zod.uuid())),exclude_team_id:zod.optional(zod.uuid()),exclude_team_ids:zod.optional(zod.array(zod.uuid()))}),F=zod.object({file_type:zod.optional(zod.string()),extension:zod.optional(zod.union([zod.string(),zod.array(zod.string())]))}).catchall(zod.optional(zod.union([zod.string(),zod.array(zod.string()),zod.boolean()])));exports.a=m;exports.b=d;exports.c=u;exports.d=S;exports.e=F;//# sourceMappingURL=chunk-GUEHIQ6T.cjs.map
2
+ //# sourceMappingURL=chunk-GUEHIQ6T.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schema/asset-filters.ts"],"names":["AssetFilterVisibilitySchema","zodEnum","AssetFilterFileTypeSchema","AssetFiltersSchema","object","optional","uuid","boolean","string","HttpMethodSchema","StatusSchema","SourceSchema","AssetSearchFiltersSchema","union","AssetTypeSchema","array","AssetMetadataFiltersSchema"],"mappings":"sFAoBMA,IAAAA,CAAAA,CAA8BC,QAAQ,CAAA,CAC1C,QACA,CAAA,SAAA,CACA,cACA,CAAA,WACF,CAAC,CAAA,CAGKC,EAA4BD,QAAQ,CAAA,CAAC,OAAS,CAAA,OAAA,CAAS,OAAO,CAAC,EAO/DE,CAAqBC,CAAAA,UAAAA,CAAO,CAChC,IAAA,CAAMC,YAASC,CAAAA,QAAAA,EAAM,CACrB,CAAA,IAAA,CAAMD,YAASC,CAAAA,QAAAA,EAAM,CAAA,CACrB,UAAYD,CAAAA,YAAAA,CAASL,CAA2B,CAAA,CAChD,cAAgBK,CAAAA,YAAAA,CAASE,WAAQ,EAAC,EAElC,UAAYF,CAAAA,YAAAA,CAASJ,QAAQ,CAAA,CAAC,MAAQ,CAAA,SAAS,CAAC,CAAC,CAAA,CACjD,SAAWI,CAAAA,YAAAA,CAASH,CAAyB,CAAA,CAC7C,UAAWG,YAASG,CAAAA,UAAAA,EAAQ,CAAA,CAC5B,OAASH,CAAAA,YAAAA,CAASG,UAAO,EAAC,CAC1B,CAAA,MAAA,CAAQH,YAASI,CAAAA,mBAAgB,CACjC,CAAA,MAAA,CAAQJ,aAASK,mBAAY,CAAA,CAC7B,MAAQL,CAAAA,YAAAA,CAASM,mBAAY,CAAA,CAC7B,cAAeN,YAASE,CAAAA,WAAAA,EAAS,CAAA,CACjC,YAAcF,CAAAA,YAAAA,CAASE,aAAS,CAClC,CAAC,CAAA,CAMKK,CAA2BR,CAAAA,UAAAA,CAAO,CACtC,UAAA,CAAYC,YAASQ,CAAAA,SAAAA,CAAM,CAACC,mBAAAA,CAAiBC,SAAMD,CAAAA,mBAAe,CAAC,CAAC,CAAC,CACrE,CAAA,OAAA,CAAST,YAASC,CAAAA,QAAAA,EAAM,CACxB,CAAA,MAAA,CAAQD,YAASC,CAAAA,QAAAA,EAAM,CAAA,CACvB,QAASD,YAASC,CAAAA,QAAAA,EAAM,CAAA,CACxB,UAAYD,CAAAA,YAAAA,CACVQ,SAAM,CAAA,CAACb,CAA6Be,CAAAA,SAAAA,CAAMf,CAA2B,CAAC,CAAC,CACzE,EACA,UAAYK,CAAAA,YAAAA,CAASG,UAAO,EAAC,CAC7B,CAAA,MAAA,CAAQH,aAASM,mBAAY,CAAA,CAC7B,cAAgBN,CAAAA,YAAAA,CAASE,WAAQ,EAAC,EAClC,MAAQF,CAAAA,YAAAA,CAASI,mBAAgB,CAAA,CACjC,MAAQJ,CAAAA,YAAAA,CAASK,mBAAY,CAAA,CAE7B,eAAiBL,CAAAA,YAAAA,CAASC,QAAK,EAAC,CAChC,CAAA,eAAA,CAAiBD,aAASU,SAAMT,CAAAA,QAAAA,EAAM,CAAC,CAEvC,CAAA,eAAA,CAAiBD,aAASC,QAAK,EAAC,CAChC,CAAA,gBAAA,CAAkBD,YAASU,CAAAA,SAAAA,CAAMT,UAAM,CAAC,CAC1C,CAAC,CAMKU,CAAAA,CAAAA,CAA6BZ,UAAO,CAAA,CACxC,SAAWC,CAAAA,YAAAA,CAASG,UAAO,EAAC,CAC5B,CAAA,SAAA,CAAWH,aAASQ,SAAM,CAAA,CAACL,UAAO,EAAA,CAAGO,SAAMP,CAAAA,UAAAA,EAAQ,CAAC,CAAC,CAAC,CACxD,CAAC,CAAE,CAAA,QAAA,CAASH,aAASQ,SAAM,CAAA,CAACL,UAAO,EAAA,CAAGO,SAAMP,CAAAA,UAAAA,EAAQ,CAAA,CAAGD,WAAQ,EAAC,CAAC,CAAC,CAAC","file":"chunk-GUEHIQ6T.cjs","sourcesContent":["import {\n object,\n string,\n uuid,\n boolean,\n array,\n union,\n enum as zodEnum,\n optional,\n type z,\n} from \"zod\";\n\nimport {\n AssetTypeSchema,\n HttpMethodSchema,\n SourceSchema,\n StatusSchema,\n} from \"./common\";\n\n/** Filterable visibilities — excludes `inherit` (not a browse/search value). */\nconst AssetFilterVisibilitySchema = zodEnum([\n \"public\",\n \"private\",\n \"organization\",\n \"monetized\",\n]);\n\n/** UI file-category chips used in the assets filter bar. */\nconst AssetFilterFileTypeSchema = zodEnum([\"image\", \"video\", \"audio\"]);\n\n/**\n * Client/UI filter state for asset lists and the filter bar.\n * Short keys (`user`, `team`, `license`) map to API columns via\n * {@link toAssetSearchFilters}.\n */\nconst AssetFiltersSchema = object({\n user: optional(uuid()),\n team: optional(uuid()),\n visibility: optional(AssetFilterVisibilitySchema),\n top_level_only: optional(boolean()),\n /** Data-list subtype chip (file vs dataset). */\n asset_type: optional(zodEnum([\"file\", \"dataset\"])),\n file_type: optional(AssetFilterFileTypeSchema),\n extension: optional(string()),\n license: optional(string()),\n method: optional(HttpMethodSchema),\n status: optional(StatusSchema),\n source: optional(SourceSchema),\n has_reactions: optional(boolean()),\n has_comments: optional(boolean()),\n});\n\n/**\n * Wire-format `filters` object for `/search/assets` and related RPCs.\n * Uses DB/API column names (`user_id`, `team_id`, `license_id`).\n */\nconst AssetSearchFiltersSchema = object({\n asset_type: optional(union([AssetTypeSchema, array(AssetTypeSchema)])),\n user_id: optional(uuid()),\n org_id: optional(uuid()),\n team_id: optional(uuid()),\n visibility: optional(\n union([AssetFilterVisibilitySchema, array(AssetFilterVisibilitySchema)])\n ),\n license_id: optional(string()),\n source: optional(SourceSchema),\n top_level_only: optional(boolean()),\n method: optional(HttpMethodSchema),\n status: optional(StatusSchema),\n /** Server-side personal/global scoping helper. */\n exclude_user_id: optional(uuid()),\n exclude_org_ids: optional(array(uuid())),\n /** Hide a team (e.g. the global org's All team) from public/discover lists. */\n exclude_team_id: optional(uuid()),\n exclude_team_ids: optional(array(uuid())),\n});\n\n/**\n * Wire-format `metadata_filters` for file-oriented search\n * (`file_type`, `extension`, and arbitrary metadata keys).\n */\nconst AssetMetadataFiltersSchema = object({\n file_type: optional(string()),\n extension: optional(union([string(), array(string())])),\n}).catchall(optional(union([string(), array(string()), boolean()])));\n\nexport {\n AssetFilterVisibilitySchema,\n AssetFilterFileTypeSchema,\n AssetFiltersSchema,\n AssetSearchFiltersSchema,\n AssetMetadataFiltersSchema,\n};\n\nexport type AssetFilterVisibility = z.infer<typeof AssetFilterVisibilitySchema>;\nexport type AssetFilterFileType = z.infer<typeof AssetFilterFileTypeSchema>;\nexport type AssetFilters = z.infer<typeof AssetFiltersSchema>;\nexport type AssetSearchFilters = z.infer<typeof AssetSearchFiltersSchema>;\nexport type AssetMetadataFilters = z.infer<typeof AssetMetadataFiltersSchema>;\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkYTCAK2AH_cjs=require('./chunk-YTCAK2AH.cjs'),chunkYFEGRZXL_cjs=require('./chunk-YFEGRZXL.cjs'),zod=require('zod');var ne=zod.enum(["follow","like","comment","reply","mention","reference","invite","payment","event","share","badge","reaction","deposit","action-complete","action-failed","quest-entry","quest-entry-accepted","quest-entry-eval-failed","onboarding-complete","onboarding-action-required","route-earnings-milestone","route-payout","ownership-transfer","content-moved","content-deleted","other"]),w=zod.object({assetId:zod.string(),assetType:chunkYFEGRZXL_cjs.a}),r=zod.object({assetId:zod.optional(zod.string()),assetType:zod.optional(chunkYFEGRZXL_cjs.a),id:zod.optional(zod.string()),asset_type:zod.optional(chunkYFEGRZXL_cjs.a),name:zod.optional(zod.nullable(zod.string())),user_id:zod.optional(zod.string()),preview:zod.optional(zod.any()),description:zod.optional(zod.any()),slug:zod.optional(zod.nullable(zod.string())),name_url_slug:zod.optional(zod.nullable(zod.string())),org_id:zod.optional(zod.string()),parent_id:zod.optional(zod.nullable(zod.string())),parent:zod.optional(zod.any()),user:zod.optional(zod.any()),organization:zod.optional(zod.any()),team:zod.optional(zod.any())}),S=zod.object({assetId:zod.string(),assetType:chunkYFEGRZXL_cjs.a}),_=zod.object({slug:zod.string(),assetType:chunkYFEGRZXL_cjs.a}),z=zod.object({name:zod.string(),description:zod.optional(zod.nullable(zod.string())),slug:zod.optional(zod.nullable(zod.string()))}),u=zod.object({id:zod.string(),name:zod.optional(zod.nullable(zod.string()))}),y=zod.object({id:zod.string(),asset_id:zod.optional(zod.nullable(zod.string())),asset_type:zod.optional(zod.nullable(zod.string())),asset_name:zod.optional(zod.nullable(zod.string()))}),i={text:zod.optional(zod.string())},E=zod.object({...i,asset:zod.optional(r),parent:zod.optional(S),root:zod.optional(_)}),C=zod.object({...i,asset:zod.optional(r),parent:zod.optional(S),root:zod.optional(_)}),x=C,I=zod.object({...i,asset:zod.optional(r),referencedAssetIds:zod.optional(zod.array(zod.string())),referencedAssets:zod.optional(zod.array(w)),referenceCount:zod.optional(zod.number())}),O=zod.object({...i,asset:zod.optional(r),reaction_label:zod.optional(zod.string()),reaction_verb:zod.optional(zod.string()),aggregate_count:zod.optional(zod.number())}),g=zod.object({...i,asset:zod.optional(r)}),P=g,Q=zod.object({...i}),B=zod.object({...i,organization:zod.optional(zod.object({id:zod.string(),name:zod.string()}))}),k=zod.object({...i,asset:zod.optional(r),currency:zod.optional(chunkYFEGRZXL_cjs.e),value:zod.optional(zod.number())}),F=zod.object({...i,value:zod.optional(zod.number())}),M=zod.object({...i,badge:zod.optional(z)}),N=zod.object({...i,status:zod.optional(zod.enum(["success","error","timed-out"])),duration:zod.optional(zod.number()),route:zod.optional(zod.object({id:zod.string(),name:zod.optional(zod.nullable(zod.string()))}))}),D=N,j=zod.object({...i,quest:zod.optional(u),entry:zod.optional(y)}),L=zod.object({...i,quest:zod.optional(u),entry:zod.optional(y),source:zod.optional(zod.enum(["review","eval"])),reviewer:zod.optional(zod.nullable(zod.object({id:zod.string(),username:zod.optional(zod.nullable(zod.string()))})))}),U=zod.object({...i,quest:zod.optional(u),entry:zod.optional(y),eval_status:zod.optional(zod.enum(["failed","errored"])),eval_score:zod.optional(zod.nullable(zod.number()))}),V=zod.object({...i}),Z=zod.object({...i,requirements:zod.optional(zod.array(zod.string()))}),G=zod.object({...i,milestone_cents:zod.optional(zod.number()),total_earnings_cents:zod.optional(zod.number())}),H=zod.object({...i,payout_cents:zod.optional(zod.number()),gross_cents:zod.optional(zod.number()),platform_fee_cents:zod.optional(zod.number()),assets:zod.optional(zod.any()),asset_names:zod.optional(zod.array(zod.string())),invoice_id:zod.optional(zod.string())}),v=zod.object({...i,team_id:zod.optional(zod.string()),team_name:zod.optional(zod.nullable(zod.string())),asset_name:zod.optional(zod.nullable(zod.string())),asset_type:zod.optional(zod.nullable(zod.string())),action:zod.optional(zod.string()),reason:zod.optional(zod.nullable(zod.string())),moderator_scope:zod.optional(zod.enum(["platform","team"]))}),J=v,K=zod.object({...i,event:zod.optional(zod.object({type:zod.enum(["success","error"])}))}),W=zod.object({...i,asset:zod.optional(r)}),X=zod.object({...i}),Y=zod.object({id:zod.uuid(),source_user_id:zod.uuid(),destination_user_id:zod.uuid(),org_id:zod.optional(zod.nullable(zod.uuid())),asset_id:zod.optional(zod.nullable(zod.uuid())),reaction_id:zod.optional(zod.nullable(zod.uuid())),action_id:zod.optional(zod.nullable(zod.uuid())),parent_asset_id:zod.optional(zod.nullable(zod.uuid())),root_asset_id:zod.optional(zod.nullable(zod.uuid())),viewed:zod.boolean(),created_at:zod.string(),last_updated:zod.string(),source_user:zod.optional(chunkYTCAK2AH_cjs.b.partial()),asset:zod.optional(r)}),o=(T,b)=>Y.extend({type:zod.literal(T),content:b}),oe=zod.discriminatedUnion("type",[o("follow",Q),o("like",W),o("comment",C),o("reply",x),o("mention",E),o("reference",I),o("invite",B),o("payment",k),o("event",K),o("share",g),o("badge",M),o("reaction",O),o("deposit",F),o("action-complete",N),o("action-failed",D),o("quest-entry",j),o("quest-entry-accepted",L),o("quest-entry-eval-failed",U),o("onboarding-complete",V),o("onboarding-action-required",Z),o("route-earnings-milestone",G),o("route-payout",H),o("ownership-transfer",P),o("content-moved",v),o("content-deleted",J),o("other",X)]);exports.A=J;exports.B=K;exports.C=oe;exports.a=ne;exports.b=w;exports.c=r;exports.d=S;exports.e=_;exports.f=E;exports.g=C;exports.h=x;exports.i=I;exports.j=O;exports.k=g;exports.l=P;exports.m=Q;exports.n=B;exports.o=k;exports.p=F;exports.q=M;exports.r=N;exports.s=j;exports.t=L;exports.u=U;exports.v=V;exports.w=Z;exports.x=G;exports.y=H;exports.z=v;//# sourceMappingURL=chunk-LMRFVO4I.cjs.map
2
+ //# sourceMappingURL=chunk-LMRFVO4I.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schema/notifications.ts"],"names":["NotificationTypeSchema","zodEnum","NotificationAssetRefSchema","object","string","AssetTypeSchema","NotificationContentAssetSchema","optional","nullable","any","NotificationParentRefSchema","NotificationRootInfoSchema","NotificationBadgeContentSchema","NotificationQuestRefSchema","NotificationQuestEntryRefSchema","NotificationContentBase","MentionContentSchema","CommentContentSchema","ReplyContentSchema","ReferenceContentSchema","array","number","ReactionContentSchema","ShareContentSchema","OwnershipTransferContentSchema","FollowContentSchema","InviteContentSchema","PaymentContentSchema","PriceCurrencySchema","DepositContentSchema","BadgeContentSchema","ActionCompleteContentSchema","ActionFailedContentSchema","QuestEntryContentSchema","QuestEntryAcceptedContentSchema","QuestEntryEvalFailedContentSchema","OnboardingCompleteContentSchema","OnboardingActionRequiredContentSchema","RouteEarningsMilestoneContentSchema","RoutePayoutContentSchema","ContentMovedContentSchema","ContentDeletedContentSchema","EventContentSchema","LikeContentSchema","OtherContentSchema","NotificationRowBaseSchema","uuid","boolean","ProfileSchema","notificationVariant","type","content","literal","NotificationSchema","discriminatedUnion"],"mappings":"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","file":"chunk-LMRFVO4I.cjs","sourcesContent":["import {\n object,\n string,\n boolean,\n number,\n array,\n any,\n type z,\n enum as zodEnum,\n optional,\n nullable,\n uuid,\n literal,\n discriminatedUnion,\n} from \"zod\";\n\nimport { AssetTypeSchema, PriceCurrencySchema } from \"./common\";\nimport { ProfileSchema } from \"./users\";\n\nconst NotificationTypeSchema = zodEnum([\n \"follow\",\n \"like\",\n \"comment\",\n \"reply\",\n \"mention\",\n \"reference\",\n \"invite\",\n \"payment\",\n \"event\",\n \"share\",\n \"badge\",\n \"reaction\",\n \"deposit\",\n \"action-complete\",\n \"action-failed\",\n \"quest-entry\",\n \"quest-entry-accepted\",\n \"quest-entry-eval-failed\",\n \"onboarding-complete\",\n \"onboarding-action-required\",\n \"route-earnings-milestone\",\n \"route-payout\",\n \"ownership-transfer\",\n \"content-moved\",\n \"content-deleted\",\n \"other\",\n]);\n\n/** Stored pointer written when creating a notification. */\nconst NotificationAssetRefSchema = object({\n assetId: string(),\n assetType: AssetTypeSchema,\n});\n\n/**\n * `content.asset` is a ref at write time and a list-row asset after API\n * hydration (which replaces the ref and may attach `parent`).\n */\nconst NotificationContentAssetSchema = object({\n assetId: optional(string()),\n assetType: optional(AssetTypeSchema),\n id: optional(string()),\n asset_type: optional(AssetTypeSchema),\n name: optional(nullable(string())),\n user_id: optional(string()),\n preview: optional(any()),\n description: optional(any()),\n slug: optional(nullable(string())),\n name_url_slug: optional(nullable(string())),\n org_id: optional(string()),\n parent_id: optional(nullable(string())),\n parent: optional(any()),\n user: optional(any()),\n organization: optional(any()),\n team: optional(any()),\n});\n\nconst NotificationParentRefSchema = object({\n assetId: string(),\n assetType: AssetTypeSchema,\n});\n\nconst NotificationRootInfoSchema = object({\n slug: string(),\n assetType: AssetTypeSchema,\n});\n\nconst NotificationBadgeContentSchema = object({\n name: string(),\n description: optional(nullable(string())),\n slug: optional(nullable(string())),\n});\n\nconst NotificationQuestRefSchema = object({\n id: string(),\n name: optional(nullable(string())),\n});\n\nconst NotificationQuestEntryRefSchema = object({\n id: string(),\n asset_id: optional(nullable(string())),\n asset_type: optional(nullable(string())),\n asset_name: optional(nullable(string())),\n});\n\nconst NotificationContentBase = {\n text: optional(string()),\n};\n\nconst MentionContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n parent: optional(NotificationParentRefSchema),\n root: optional(NotificationRootInfoSchema),\n});\n\nconst CommentContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n parent: optional(NotificationParentRefSchema),\n root: optional(NotificationRootInfoSchema),\n});\n\nconst ReplyContentSchema = CommentContentSchema;\n\nconst ReferenceContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n referencedAssetIds: optional(array(string())),\n referencedAssets: optional(array(NotificationAssetRefSchema)),\n referenceCount: optional(number()),\n});\n\nconst ReactionContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n reaction_label: optional(string()),\n reaction_verb: optional(string()),\n aggregate_count: optional(number()),\n});\n\nconst ShareContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n});\n\nconst OwnershipTransferContentSchema = ShareContentSchema;\n\nconst FollowContentSchema = object({\n ...NotificationContentBase,\n});\n\nconst InviteContentSchema = object({\n ...NotificationContentBase,\n organization: optional(\n object({\n id: string(),\n name: string(),\n })\n ),\n});\n\nconst PaymentContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n currency: optional(PriceCurrencySchema),\n value: optional(number()),\n});\n\nconst DepositContentSchema = object({\n ...NotificationContentBase,\n value: optional(number()),\n});\n\nconst BadgeContentSchema = object({\n ...NotificationContentBase,\n badge: optional(NotificationBadgeContentSchema),\n});\n\nconst ActionCompleteContentSchema = object({\n ...NotificationContentBase,\n status: optional(zodEnum([\"success\", \"error\", \"timed-out\"])),\n duration: optional(number()),\n route: optional(\n object({\n id: string(),\n name: optional(nullable(string())),\n })\n ),\n});\n\nconst ActionFailedContentSchema = ActionCompleteContentSchema;\n\nconst QuestEntryContentSchema = object({\n ...NotificationContentBase,\n quest: optional(NotificationQuestRefSchema),\n entry: optional(NotificationQuestEntryRefSchema),\n});\n\nconst QuestEntryAcceptedContentSchema = object({\n ...NotificationContentBase,\n quest: optional(NotificationQuestRefSchema),\n entry: optional(NotificationQuestEntryRefSchema),\n source: optional(zodEnum([\"review\", \"eval\"])),\n reviewer: optional(\n nullable(\n object({\n id: string(),\n username: optional(nullable(string())),\n })\n )\n ),\n});\n\nconst QuestEntryEvalFailedContentSchema = object({\n ...NotificationContentBase,\n quest: optional(NotificationQuestRefSchema),\n entry: optional(NotificationQuestEntryRefSchema),\n eval_status: optional(zodEnum([\"failed\", \"errored\"])),\n eval_score: optional(nullable(number())),\n});\n\nconst OnboardingCompleteContentSchema = object({\n ...NotificationContentBase,\n});\n\nconst OnboardingActionRequiredContentSchema = object({\n ...NotificationContentBase,\n requirements: optional(array(string())),\n});\n\nconst RouteEarningsMilestoneContentSchema = object({\n ...NotificationContentBase,\n milestone_cents: optional(number()),\n total_earnings_cents: optional(number()),\n});\n\nconst RoutePayoutContentSchema = object({\n ...NotificationContentBase,\n payout_cents: optional(number()),\n gross_cents: optional(number()),\n platform_fee_cents: optional(number()),\n assets: optional(any()),\n asset_names: optional(array(string())),\n invoice_id: optional(string()),\n});\n\nconst ContentMovedContentSchema = object({\n ...NotificationContentBase,\n team_id: optional(string()),\n team_name: optional(nullable(string())),\n asset_name: optional(nullable(string())),\n asset_type: optional(nullable(string())),\n action: optional(string()),\n reason: optional(nullable(string())),\n moderator_scope: optional(zodEnum([\"platform\", \"team\"])),\n});\n\nconst ContentDeletedContentSchema = ContentMovedContentSchema;\n\nconst EventContentSchema = object({\n ...NotificationContentBase,\n event: optional(\n object({\n type: zodEnum([\"success\", \"error\"]),\n })\n ),\n});\n\nconst LikeContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n});\n\nconst OtherContentSchema = object({\n ...NotificationContentBase,\n});\n\nconst NotificationRowBaseSchema = object({\n id: uuid(),\n source_user_id: uuid(),\n destination_user_id: uuid(),\n org_id: optional(nullable(uuid())),\n asset_id: optional(nullable(uuid())),\n reaction_id: optional(nullable(uuid())),\n action_id: optional(nullable(uuid())),\n parent_asset_id: optional(nullable(uuid())),\n root_asset_id: optional(nullable(uuid())),\n viewed: boolean(),\n created_at: string(),\n last_updated: string(),\n /** Joined on list/read responses. */\n source_user: optional(ProfileSchema.partial()),\n /** Joined `assets` row for `asset_id` (not `content.asset`). */\n asset: optional(NotificationContentAssetSchema),\n});\n\nconst notificationVariant = <\n T extends z.infer<typeof NotificationTypeSchema>,\n C extends z.ZodType,\n>(\n type: T,\n content: C\n) =>\n NotificationRowBaseSchema.extend({\n type: literal(type),\n content,\n });\n\nconst NotificationSchema = discriminatedUnion(\"type\", [\n notificationVariant(\"follow\", FollowContentSchema),\n notificationVariant(\"like\", LikeContentSchema),\n notificationVariant(\"comment\", CommentContentSchema),\n notificationVariant(\"reply\", ReplyContentSchema),\n notificationVariant(\"mention\", MentionContentSchema),\n notificationVariant(\"reference\", ReferenceContentSchema),\n notificationVariant(\"invite\", InviteContentSchema),\n notificationVariant(\"payment\", PaymentContentSchema),\n notificationVariant(\"event\", EventContentSchema),\n notificationVariant(\"share\", ShareContentSchema),\n notificationVariant(\"badge\", BadgeContentSchema),\n notificationVariant(\"reaction\", ReactionContentSchema),\n notificationVariant(\"deposit\", DepositContentSchema),\n notificationVariant(\"action-complete\", ActionCompleteContentSchema),\n notificationVariant(\"action-failed\", ActionFailedContentSchema),\n notificationVariant(\"quest-entry\", QuestEntryContentSchema),\n notificationVariant(\"quest-entry-accepted\", QuestEntryAcceptedContentSchema),\n notificationVariant(\n \"quest-entry-eval-failed\",\n QuestEntryEvalFailedContentSchema\n ),\n notificationVariant(\"onboarding-complete\", OnboardingCompleteContentSchema),\n notificationVariant(\n \"onboarding-action-required\",\n OnboardingActionRequiredContentSchema\n ),\n notificationVariant(\n \"route-earnings-milestone\",\n RouteEarningsMilestoneContentSchema\n ),\n notificationVariant(\"route-payout\", RoutePayoutContentSchema),\n notificationVariant(\"ownership-transfer\", OwnershipTransferContentSchema),\n notificationVariant(\"content-moved\", ContentMovedContentSchema),\n notificationVariant(\"content-deleted\", ContentDeletedContentSchema),\n notificationVariant(\"other\", OtherContentSchema),\n]);\n\ntype Notification = z.infer<typeof NotificationSchema>;\ntype NotificationType = z.infer<typeof NotificationTypeSchema>;\ntype NotificationOfType<T extends NotificationType> = Extract<\n Notification,\n { type: T }\n>;\ntype NotificationContentAsset = z.infer<typeof NotificationContentAssetSchema>;\ntype NotificationAssetRef = z.infer<typeof NotificationAssetRefSchema>;\n\nexport {\n NotificationSchema,\n NotificationTypeSchema,\n NotificationAssetRefSchema,\n NotificationContentAssetSchema,\n NotificationParentRefSchema,\n NotificationRootInfoSchema,\n MentionContentSchema,\n CommentContentSchema,\n ReplyContentSchema,\n ReferenceContentSchema,\n ReactionContentSchema,\n ShareContentSchema,\n OwnershipTransferContentSchema,\n FollowContentSchema,\n InviteContentSchema,\n PaymentContentSchema,\n DepositContentSchema,\n BadgeContentSchema,\n ActionCompleteContentSchema,\n QuestEntryContentSchema,\n QuestEntryAcceptedContentSchema,\n QuestEntryEvalFailedContentSchema,\n OnboardingCompleteContentSchema,\n OnboardingActionRequiredContentSchema,\n RouteEarningsMilestoneContentSchema,\n RoutePayoutContentSchema,\n ContentMovedContentSchema,\n ContentDeletedContentSchema,\n EventContentSchema,\n};\nexport type {\n Notification,\n NotificationType,\n NotificationOfType,\n NotificationContentAsset,\n NotificationAssetRef,\n};\n"]}
@@ -0,0 +1,2 @@
1
+ import {k,j,l,a}from'./chunk-33C7IDRP.js';import {enum as _enum,object,optional,boolean,string,uuid,array,union}from'zod';var m=_enum(["public","private","organization","monetized"]),d=_enum(["image","video","audio"]),u=object({user:optional(uuid()),team:optional(uuid()),visibility:optional(m),top_level_only:optional(boolean()),asset_type:optional(_enum(["file","dataset"])),file_type:optional(d),extension:optional(string()),license:optional(string()),method:optional(l),status:optional(j),source:optional(k),has_reactions:optional(boolean()),has_comments:optional(boolean())}),S=object({asset_type:optional(union([a,array(a)])),user_id:optional(uuid()),org_id:optional(uuid()),team_id:optional(uuid()),visibility:optional(union([m,array(m)])),license_id:optional(string()),source:optional(k),top_level_only:optional(boolean()),method:optional(l),status:optional(j),exclude_user_id:optional(uuid()),exclude_org_ids:optional(array(uuid())),exclude_team_id:optional(uuid()),exclude_team_ids:optional(array(uuid()))}),F=object({file_type:optional(string()),extension:optional(union([string(),array(string())]))}).catchall(optional(union([string(),array(string()),boolean()])));export{m as a,d as b,u as c,S as d,F as e};//# sourceMappingURL=chunk-MRUJUIPN.js.map
2
+ //# sourceMappingURL=chunk-MRUJUIPN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schema/asset-filters.ts"],"names":["AssetFilterVisibilitySchema","zodEnum","AssetFilterFileTypeSchema","AssetFiltersSchema","object","optional","uuid","boolean","string","HttpMethodSchema","StatusSchema","SourceSchema","AssetSearchFiltersSchema","union","AssetTypeSchema","array","AssetMetadataFiltersSchema"],"mappings":"0HAoBMA,IAAAA,CAAAA,CAA8BC,KAAQ,CAAA,CAC1C,QACA,CAAA,SAAA,CACA,cACA,CAAA,WACF,CAAC,CAAA,CAGKC,EAA4BD,KAAQ,CAAA,CAAC,OAAS,CAAA,OAAA,CAAS,OAAO,CAAC,EAO/DE,CAAqBC,CAAAA,MAAAA,CAAO,CAChC,IAAA,CAAMC,QAASC,CAAAA,IAAAA,EAAM,CACrB,CAAA,IAAA,CAAMD,QAASC,CAAAA,IAAAA,EAAM,CAAA,CACrB,UAAYD,CAAAA,QAAAA,CAASL,CAA2B,CAAA,CAChD,cAAgBK,CAAAA,QAAAA,CAASE,OAAQ,EAAC,EAElC,UAAYF,CAAAA,QAAAA,CAASJ,KAAQ,CAAA,CAAC,MAAQ,CAAA,SAAS,CAAC,CAAC,CAAA,CACjD,SAAWI,CAAAA,QAAAA,CAASH,CAAyB,CAAA,CAC7C,UAAWG,QAASG,CAAAA,MAAAA,EAAQ,CAAA,CAC5B,OAASH,CAAAA,QAAAA,CAASG,MAAO,EAAC,CAC1B,CAAA,MAAA,CAAQH,QAASI,CAAAA,CAAgB,CACjC,CAAA,MAAA,CAAQJ,SAASK,CAAY,CAAA,CAC7B,MAAQL,CAAAA,QAAAA,CAASM,CAAY,CAAA,CAC7B,cAAeN,QAASE,CAAAA,OAAAA,EAAS,CAAA,CACjC,YAAcF,CAAAA,QAAAA,CAASE,SAAS,CAClC,CAAC,CAAA,CAMKK,CAA2BR,CAAAA,MAAAA,CAAO,CACtC,UAAA,CAAYC,QAASQ,CAAAA,KAAAA,CAAM,CAACC,CAAAA,CAAiBC,KAAMD,CAAAA,CAAe,CAAC,CAAC,CAAC,CACrE,CAAA,OAAA,CAAST,QAASC,CAAAA,IAAAA,EAAM,CACxB,CAAA,MAAA,CAAQD,QAASC,CAAAA,IAAAA,EAAM,CAAA,CACvB,QAASD,QAASC,CAAAA,IAAAA,EAAM,CAAA,CACxB,UAAYD,CAAAA,QAAAA,CACVQ,KAAM,CAAA,CAACb,CAA6Be,CAAAA,KAAAA,CAAMf,CAA2B,CAAC,CAAC,CACzE,EACA,UAAYK,CAAAA,QAAAA,CAASG,MAAO,EAAC,CAC7B,CAAA,MAAA,CAAQH,SAASM,CAAY,CAAA,CAC7B,cAAgBN,CAAAA,QAAAA,CAASE,OAAQ,EAAC,EAClC,MAAQF,CAAAA,QAAAA,CAASI,CAAgB,CAAA,CACjC,MAAQJ,CAAAA,QAAAA,CAASK,CAAY,CAAA,CAE7B,eAAiBL,CAAAA,QAAAA,CAASC,IAAK,EAAC,CAChC,CAAA,eAAA,CAAiBD,SAASU,KAAMT,CAAAA,IAAAA,EAAM,CAAC,CAEvC,CAAA,eAAA,CAAiBD,SAASC,IAAK,EAAC,CAChC,CAAA,gBAAA,CAAkBD,QAASU,CAAAA,KAAAA,CAAMT,MAAM,CAAC,CAC1C,CAAC,CAMKU,CAAAA,CAAAA,CAA6BZ,MAAO,CAAA,CACxC,SAAWC,CAAAA,QAAAA,CAASG,MAAO,EAAC,CAC5B,CAAA,SAAA,CAAWH,SAASQ,KAAM,CAAA,CAACL,MAAO,EAAA,CAAGO,KAAMP,CAAAA,MAAAA,EAAQ,CAAC,CAAC,CAAC,CACxD,CAAC,CAAE,CAAA,QAAA,CAASH,SAASQ,KAAM,CAAA,CAACL,MAAO,EAAA,CAAGO,KAAMP,CAAAA,MAAAA,EAAQ,CAAA,CAAGD,OAAQ,EAAC,CAAC,CAAC,CAAC","file":"chunk-MRUJUIPN.js","sourcesContent":["import {\n object,\n string,\n uuid,\n boolean,\n array,\n union,\n enum as zodEnum,\n optional,\n type z,\n} from \"zod\";\n\nimport {\n AssetTypeSchema,\n HttpMethodSchema,\n SourceSchema,\n StatusSchema,\n} from \"./common\";\n\n/** Filterable visibilities — excludes `inherit` (not a browse/search value). */\nconst AssetFilterVisibilitySchema = zodEnum([\n \"public\",\n \"private\",\n \"organization\",\n \"monetized\",\n]);\n\n/** UI file-category chips used in the assets filter bar. */\nconst AssetFilterFileTypeSchema = zodEnum([\"image\", \"video\", \"audio\"]);\n\n/**\n * Client/UI filter state for asset lists and the filter bar.\n * Short keys (`user`, `team`, `license`) map to API columns via\n * {@link toAssetSearchFilters}.\n */\nconst AssetFiltersSchema = object({\n user: optional(uuid()),\n team: optional(uuid()),\n visibility: optional(AssetFilterVisibilitySchema),\n top_level_only: optional(boolean()),\n /** Data-list subtype chip (file vs dataset). */\n asset_type: optional(zodEnum([\"file\", \"dataset\"])),\n file_type: optional(AssetFilterFileTypeSchema),\n extension: optional(string()),\n license: optional(string()),\n method: optional(HttpMethodSchema),\n status: optional(StatusSchema),\n source: optional(SourceSchema),\n has_reactions: optional(boolean()),\n has_comments: optional(boolean()),\n});\n\n/**\n * Wire-format `filters` object for `/search/assets` and related RPCs.\n * Uses DB/API column names (`user_id`, `team_id`, `license_id`).\n */\nconst AssetSearchFiltersSchema = object({\n asset_type: optional(union([AssetTypeSchema, array(AssetTypeSchema)])),\n user_id: optional(uuid()),\n org_id: optional(uuid()),\n team_id: optional(uuid()),\n visibility: optional(\n union([AssetFilterVisibilitySchema, array(AssetFilterVisibilitySchema)])\n ),\n license_id: optional(string()),\n source: optional(SourceSchema),\n top_level_only: optional(boolean()),\n method: optional(HttpMethodSchema),\n status: optional(StatusSchema),\n /** Server-side personal/global scoping helper. */\n exclude_user_id: optional(uuid()),\n exclude_org_ids: optional(array(uuid())),\n /** Hide a team (e.g. the global org's All team) from public/discover lists. */\n exclude_team_id: optional(uuid()),\n exclude_team_ids: optional(array(uuid())),\n});\n\n/**\n * Wire-format `metadata_filters` for file-oriented search\n * (`file_type`, `extension`, and arbitrary metadata keys).\n */\nconst AssetMetadataFiltersSchema = object({\n file_type: optional(string()),\n extension: optional(union([string(), array(string())])),\n}).catchall(optional(union([string(), array(string()), boolean()])));\n\nexport {\n AssetFilterVisibilitySchema,\n AssetFilterFileTypeSchema,\n AssetFiltersSchema,\n AssetSearchFiltersSchema,\n AssetMetadataFiltersSchema,\n};\n\nexport type AssetFilterVisibility = z.infer<typeof AssetFilterVisibilitySchema>;\nexport type AssetFilterFileType = z.infer<typeof AssetFilterFileTypeSchema>;\nexport type AssetFilters = z.infer<typeof AssetFiltersSchema>;\nexport type AssetSearchFilters = z.infer<typeof AssetSearchFiltersSchema>;\nexport type AssetMetadataFilters = z.infer<typeof AssetMetadataFiltersSchema>;\n"]}
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-CDJH4OT5.js';import {a,e}from'./chunk-33C7IDRP.js';import {enum as _enum,object,string,optional,any,nullable,number,array,boolean,uuid,discriminatedUnion,literal}from'zod';var ne=_enum(["follow","like","comment","reply","mention","reference","invite","payment","event","share","badge","reaction","deposit","action-complete","action-failed","quest-entry","quest-entry-accepted","quest-entry-eval-failed","onboarding-complete","onboarding-action-required","route-earnings-milestone","route-payout","ownership-transfer","content-moved","content-deleted","other"]),w=object({assetId:string(),assetType:a}),r=object({assetId:optional(string()),assetType:optional(a),id:optional(string()),asset_type:optional(a),name:optional(nullable(string())),user_id:optional(string()),preview:optional(any()),description:optional(any()),slug:optional(nullable(string())),name_url_slug:optional(nullable(string())),org_id:optional(string()),parent_id:optional(nullable(string())),parent:optional(any()),user:optional(any()),organization:optional(any()),team:optional(any())}),S=object({assetId:string(),assetType:a}),_=object({slug:string(),assetType:a}),z=object({name:string(),description:optional(nullable(string())),slug:optional(nullable(string()))}),u=object({id:string(),name:optional(nullable(string()))}),y=object({id:string(),asset_id:optional(nullable(string())),asset_type:optional(nullable(string())),asset_name:optional(nullable(string()))}),i={text:optional(string())},E=object({...i,asset:optional(r),parent:optional(S),root:optional(_)}),C=object({...i,asset:optional(r),parent:optional(S),root:optional(_)}),x=C,I=object({...i,asset:optional(r),referencedAssetIds:optional(array(string())),referencedAssets:optional(array(w)),referenceCount:optional(number())}),O=object({...i,asset:optional(r),reaction_label:optional(string()),reaction_verb:optional(string()),aggregate_count:optional(number())}),g=object({...i,asset:optional(r)}),P=g,Q=object({...i}),B=object({...i,organization:optional(object({id:string(),name:string()}))}),k=object({...i,asset:optional(r),currency:optional(e),value:optional(number())}),F=object({...i,value:optional(number())}),M=object({...i,badge:optional(z)}),N=object({...i,status:optional(_enum(["success","error","timed-out"])),duration:optional(number()),route:optional(object({id:string(),name:optional(nullable(string()))}))}),D=N,j=object({...i,quest:optional(u),entry:optional(y)}),L=object({...i,quest:optional(u),entry:optional(y),source:optional(_enum(["review","eval"])),reviewer:optional(nullable(object({id:string(),username:optional(nullable(string()))})))}),U=object({...i,quest:optional(u),entry:optional(y),eval_status:optional(_enum(["failed","errored"])),eval_score:optional(nullable(number()))}),V=object({...i}),Z=object({...i,requirements:optional(array(string()))}),G=object({...i,milestone_cents:optional(number()),total_earnings_cents:optional(number())}),H=object({...i,payout_cents:optional(number()),gross_cents:optional(number()),platform_fee_cents:optional(number()),assets:optional(any()),asset_names:optional(array(string())),invoice_id:optional(string())}),v=object({...i,team_id:optional(string()),team_name:optional(nullable(string())),asset_name:optional(nullable(string())),asset_type:optional(nullable(string())),action:optional(string()),reason:optional(nullable(string())),moderator_scope:optional(_enum(["platform","team"]))}),J=v,K=object({...i,event:optional(object({type:_enum(["success","error"])}))}),W=object({...i,asset:optional(r)}),X=object({...i}),Y=object({id:uuid(),source_user_id:uuid(),destination_user_id:uuid(),org_id:optional(nullable(uuid())),asset_id:optional(nullable(uuid())),reaction_id:optional(nullable(uuid())),action_id:optional(nullable(uuid())),parent_asset_id:optional(nullable(uuid())),root_asset_id:optional(nullable(uuid())),viewed:boolean(),created_at:string(),last_updated:string(),source_user:optional(b.partial()),asset:optional(r)}),o=(T,b)=>Y.extend({type:literal(T),content:b}),oe=discriminatedUnion("type",[o("follow",Q),o("like",W),o("comment",C),o("reply",x),o("mention",E),o("reference",I),o("invite",B),o("payment",k),o("event",K),o("share",g),o("badge",M),o("reaction",O),o("deposit",F),o("action-complete",N),o("action-failed",D),o("quest-entry",j),o("quest-entry-accepted",L),o("quest-entry-eval-failed",U),o("onboarding-complete",V),o("onboarding-action-required",Z),o("route-earnings-milestone",G),o("route-payout",H),o("ownership-transfer",P),o("content-moved",v),o("content-deleted",J),o("other",X)]);export{J as A,K as B,oe as C,ne as a,w as b,r as c,S as d,_ as e,E as f,C as g,x as h,I as i,O as j,g as k,P as l,Q as m,B as n,k as o,F as p,M as q,N as r,j as s,L as t,U as u,V as v,Z as w,G as x,H as y,v as z};//# sourceMappingURL=chunk-XXFKHRNE.js.map
2
+ //# sourceMappingURL=chunk-XXFKHRNE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schema/notifications.ts"],"names":["NotificationTypeSchema","zodEnum","NotificationAssetRefSchema","object","string","AssetTypeSchema","NotificationContentAssetSchema","optional","nullable","any","NotificationParentRefSchema","NotificationRootInfoSchema","NotificationBadgeContentSchema","NotificationQuestRefSchema","NotificationQuestEntryRefSchema","NotificationContentBase","MentionContentSchema","CommentContentSchema","ReplyContentSchema","ReferenceContentSchema","array","number","ReactionContentSchema","ShareContentSchema","OwnershipTransferContentSchema","FollowContentSchema","InviteContentSchema","PaymentContentSchema","PriceCurrencySchema","DepositContentSchema","BadgeContentSchema","ActionCompleteContentSchema","ActionFailedContentSchema","QuestEntryContentSchema","QuestEntryAcceptedContentSchema","QuestEntryEvalFailedContentSchema","OnboardingCompleteContentSchema","OnboardingActionRequiredContentSchema","RouteEarningsMilestoneContentSchema","RoutePayoutContentSchema","ContentMovedContentSchema","ContentDeletedContentSchema","EventContentSchema","LikeContentSchema","OtherContentSchema","NotificationRowBaseSchema","uuid","boolean","ProfileSchema","notificationVariant","type","content","literal","NotificationSchema","discriminatedUnion"],"mappings":"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","file":"chunk-XXFKHRNE.js","sourcesContent":["import {\n object,\n string,\n boolean,\n number,\n array,\n any,\n type z,\n enum as zodEnum,\n optional,\n nullable,\n uuid,\n literal,\n discriminatedUnion,\n} from \"zod\";\n\nimport { AssetTypeSchema, PriceCurrencySchema } from \"./common\";\nimport { ProfileSchema } from \"./users\";\n\nconst NotificationTypeSchema = zodEnum([\n \"follow\",\n \"like\",\n \"comment\",\n \"reply\",\n \"mention\",\n \"reference\",\n \"invite\",\n \"payment\",\n \"event\",\n \"share\",\n \"badge\",\n \"reaction\",\n \"deposit\",\n \"action-complete\",\n \"action-failed\",\n \"quest-entry\",\n \"quest-entry-accepted\",\n \"quest-entry-eval-failed\",\n \"onboarding-complete\",\n \"onboarding-action-required\",\n \"route-earnings-milestone\",\n \"route-payout\",\n \"ownership-transfer\",\n \"content-moved\",\n \"content-deleted\",\n \"other\",\n]);\n\n/** Stored pointer written when creating a notification. */\nconst NotificationAssetRefSchema = object({\n assetId: string(),\n assetType: AssetTypeSchema,\n});\n\n/**\n * `content.asset` is a ref at write time and a list-row asset after API\n * hydration (which replaces the ref and may attach `parent`).\n */\nconst NotificationContentAssetSchema = object({\n assetId: optional(string()),\n assetType: optional(AssetTypeSchema),\n id: optional(string()),\n asset_type: optional(AssetTypeSchema),\n name: optional(nullable(string())),\n user_id: optional(string()),\n preview: optional(any()),\n description: optional(any()),\n slug: optional(nullable(string())),\n name_url_slug: optional(nullable(string())),\n org_id: optional(string()),\n parent_id: optional(nullable(string())),\n parent: optional(any()),\n user: optional(any()),\n organization: optional(any()),\n team: optional(any()),\n});\n\nconst NotificationParentRefSchema = object({\n assetId: string(),\n assetType: AssetTypeSchema,\n});\n\nconst NotificationRootInfoSchema = object({\n slug: string(),\n assetType: AssetTypeSchema,\n});\n\nconst NotificationBadgeContentSchema = object({\n name: string(),\n description: optional(nullable(string())),\n slug: optional(nullable(string())),\n});\n\nconst NotificationQuestRefSchema = object({\n id: string(),\n name: optional(nullable(string())),\n});\n\nconst NotificationQuestEntryRefSchema = object({\n id: string(),\n asset_id: optional(nullable(string())),\n asset_type: optional(nullable(string())),\n asset_name: optional(nullable(string())),\n});\n\nconst NotificationContentBase = {\n text: optional(string()),\n};\n\nconst MentionContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n parent: optional(NotificationParentRefSchema),\n root: optional(NotificationRootInfoSchema),\n});\n\nconst CommentContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n parent: optional(NotificationParentRefSchema),\n root: optional(NotificationRootInfoSchema),\n});\n\nconst ReplyContentSchema = CommentContentSchema;\n\nconst ReferenceContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n referencedAssetIds: optional(array(string())),\n referencedAssets: optional(array(NotificationAssetRefSchema)),\n referenceCount: optional(number()),\n});\n\nconst ReactionContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n reaction_label: optional(string()),\n reaction_verb: optional(string()),\n aggregate_count: optional(number()),\n});\n\nconst ShareContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n});\n\nconst OwnershipTransferContentSchema = ShareContentSchema;\n\nconst FollowContentSchema = object({\n ...NotificationContentBase,\n});\n\nconst InviteContentSchema = object({\n ...NotificationContentBase,\n organization: optional(\n object({\n id: string(),\n name: string(),\n })\n ),\n});\n\nconst PaymentContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n currency: optional(PriceCurrencySchema),\n value: optional(number()),\n});\n\nconst DepositContentSchema = object({\n ...NotificationContentBase,\n value: optional(number()),\n});\n\nconst BadgeContentSchema = object({\n ...NotificationContentBase,\n badge: optional(NotificationBadgeContentSchema),\n});\n\nconst ActionCompleteContentSchema = object({\n ...NotificationContentBase,\n status: optional(zodEnum([\"success\", \"error\", \"timed-out\"])),\n duration: optional(number()),\n route: optional(\n object({\n id: string(),\n name: optional(nullable(string())),\n })\n ),\n});\n\nconst ActionFailedContentSchema = ActionCompleteContentSchema;\n\nconst QuestEntryContentSchema = object({\n ...NotificationContentBase,\n quest: optional(NotificationQuestRefSchema),\n entry: optional(NotificationQuestEntryRefSchema),\n});\n\nconst QuestEntryAcceptedContentSchema = object({\n ...NotificationContentBase,\n quest: optional(NotificationQuestRefSchema),\n entry: optional(NotificationQuestEntryRefSchema),\n source: optional(zodEnum([\"review\", \"eval\"])),\n reviewer: optional(\n nullable(\n object({\n id: string(),\n username: optional(nullable(string())),\n })\n )\n ),\n});\n\nconst QuestEntryEvalFailedContentSchema = object({\n ...NotificationContentBase,\n quest: optional(NotificationQuestRefSchema),\n entry: optional(NotificationQuestEntryRefSchema),\n eval_status: optional(zodEnum([\"failed\", \"errored\"])),\n eval_score: optional(nullable(number())),\n});\n\nconst OnboardingCompleteContentSchema = object({\n ...NotificationContentBase,\n});\n\nconst OnboardingActionRequiredContentSchema = object({\n ...NotificationContentBase,\n requirements: optional(array(string())),\n});\n\nconst RouteEarningsMilestoneContentSchema = object({\n ...NotificationContentBase,\n milestone_cents: optional(number()),\n total_earnings_cents: optional(number()),\n});\n\nconst RoutePayoutContentSchema = object({\n ...NotificationContentBase,\n payout_cents: optional(number()),\n gross_cents: optional(number()),\n platform_fee_cents: optional(number()),\n assets: optional(any()),\n asset_names: optional(array(string())),\n invoice_id: optional(string()),\n});\n\nconst ContentMovedContentSchema = object({\n ...NotificationContentBase,\n team_id: optional(string()),\n team_name: optional(nullable(string())),\n asset_name: optional(nullable(string())),\n asset_type: optional(nullable(string())),\n action: optional(string()),\n reason: optional(nullable(string())),\n moderator_scope: optional(zodEnum([\"platform\", \"team\"])),\n});\n\nconst ContentDeletedContentSchema = ContentMovedContentSchema;\n\nconst EventContentSchema = object({\n ...NotificationContentBase,\n event: optional(\n object({\n type: zodEnum([\"success\", \"error\"]),\n })\n ),\n});\n\nconst LikeContentSchema = object({\n ...NotificationContentBase,\n asset: optional(NotificationContentAssetSchema),\n});\n\nconst OtherContentSchema = object({\n ...NotificationContentBase,\n});\n\nconst NotificationRowBaseSchema = object({\n id: uuid(),\n source_user_id: uuid(),\n destination_user_id: uuid(),\n org_id: optional(nullable(uuid())),\n asset_id: optional(nullable(uuid())),\n reaction_id: optional(nullable(uuid())),\n action_id: optional(nullable(uuid())),\n parent_asset_id: optional(nullable(uuid())),\n root_asset_id: optional(nullable(uuid())),\n viewed: boolean(),\n created_at: string(),\n last_updated: string(),\n /** Joined on list/read responses. */\n source_user: optional(ProfileSchema.partial()),\n /** Joined `assets` row for `asset_id` (not `content.asset`). */\n asset: optional(NotificationContentAssetSchema),\n});\n\nconst notificationVariant = <\n T extends z.infer<typeof NotificationTypeSchema>,\n C extends z.ZodType,\n>(\n type: T,\n content: C\n) =>\n NotificationRowBaseSchema.extend({\n type: literal(type),\n content,\n });\n\nconst NotificationSchema = discriminatedUnion(\"type\", [\n notificationVariant(\"follow\", FollowContentSchema),\n notificationVariant(\"like\", LikeContentSchema),\n notificationVariant(\"comment\", CommentContentSchema),\n notificationVariant(\"reply\", ReplyContentSchema),\n notificationVariant(\"mention\", MentionContentSchema),\n notificationVariant(\"reference\", ReferenceContentSchema),\n notificationVariant(\"invite\", InviteContentSchema),\n notificationVariant(\"payment\", PaymentContentSchema),\n notificationVariant(\"event\", EventContentSchema),\n notificationVariant(\"share\", ShareContentSchema),\n notificationVariant(\"badge\", BadgeContentSchema),\n notificationVariant(\"reaction\", ReactionContentSchema),\n notificationVariant(\"deposit\", DepositContentSchema),\n notificationVariant(\"action-complete\", ActionCompleteContentSchema),\n notificationVariant(\"action-failed\", ActionFailedContentSchema),\n notificationVariant(\"quest-entry\", QuestEntryContentSchema),\n notificationVariant(\"quest-entry-accepted\", QuestEntryAcceptedContentSchema),\n notificationVariant(\n \"quest-entry-eval-failed\",\n QuestEntryEvalFailedContentSchema\n ),\n notificationVariant(\"onboarding-complete\", OnboardingCompleteContentSchema),\n notificationVariant(\n \"onboarding-action-required\",\n OnboardingActionRequiredContentSchema\n ),\n notificationVariant(\n \"route-earnings-milestone\",\n RouteEarningsMilestoneContentSchema\n ),\n notificationVariant(\"route-payout\", RoutePayoutContentSchema),\n notificationVariant(\"ownership-transfer\", OwnershipTransferContentSchema),\n notificationVariant(\"content-moved\", ContentMovedContentSchema),\n notificationVariant(\"content-deleted\", ContentDeletedContentSchema),\n notificationVariant(\"other\", OtherContentSchema),\n]);\n\ntype Notification = z.infer<typeof NotificationSchema>;\ntype NotificationType = z.infer<typeof NotificationTypeSchema>;\ntype NotificationOfType<T extends NotificationType> = Extract<\n Notification,\n { type: T }\n>;\ntype NotificationContentAsset = z.infer<typeof NotificationContentAssetSchema>;\ntype NotificationAssetRef = z.infer<typeof NotificationAssetRefSchema>;\n\nexport {\n NotificationSchema,\n NotificationTypeSchema,\n NotificationAssetRefSchema,\n NotificationContentAssetSchema,\n NotificationParentRefSchema,\n NotificationRootInfoSchema,\n MentionContentSchema,\n CommentContentSchema,\n ReplyContentSchema,\n ReferenceContentSchema,\n ReactionContentSchema,\n ShareContentSchema,\n OwnershipTransferContentSchema,\n FollowContentSchema,\n InviteContentSchema,\n PaymentContentSchema,\n DepositContentSchema,\n BadgeContentSchema,\n ActionCompleteContentSchema,\n QuestEntryContentSchema,\n QuestEntryAcceptedContentSchema,\n QuestEntryEvalFailedContentSchema,\n OnboardingCompleteContentSchema,\n OnboardingActionRequiredContentSchema,\n RouteEarningsMilestoneContentSchema,\n RoutePayoutContentSchema,\n ContentMovedContentSchema,\n ContentDeletedContentSchema,\n EventContentSchema,\n};\nexport type {\n Notification,\n NotificationType,\n NotificationOfType,\n NotificationContentAsset,\n NotificationAssetRef,\n};\n"]}
@@ -1,2 +1,2 @@
1
- import {a,d as d$1,c}from'./chunk-O4LSX56P.js';import {f,b,h,a as a$2}from'./chunk-PGCNGDPK.js';import {a as a$1}from'./chunk-33C7IDRP.js';import {enum as _enum,object,optional,string,array,any,record,literal,number,uuid,nullable,boolean,union}from'zod';var w=_enum(["closable","continuous"]),E=_enum(["draft","open","closed","cancelled"]),l=_enum(["pending","in_progress","done","skipped"]),I=_enum(["btc","usd"]),q=_enum(["skipped","running","passed","failed","errored"]),k=_enum(["submitted","accepted","rejected"]),C=_enum(["desc","asc"]),T=object({type:string(),content:optional(array(any())),attrs:optional(record(string(),any())),marks:optional(array(any())),text:optional(string())}),d=object({json:object({type:literal("doc"),content:array(T)}),text:string()}),A=object({id:uuid(),quest_id:uuid(),description:d,status:l.default("pending"),auto_skipped:optional(nullable(string().or(any()))),status_before_auto_skip:optional(nullable(l)),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:I.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_categories_path:optional(nullable(string())),eval_pass_min:optional(nullable(number())),eval_pass_max:optional(nullable(number())),leaderboard_enabled:optional(boolean()).default(false),leaderboard_order:optional(C).default("desc"),submission_assets:optional(nullable(record(string(),d$1))),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()}),R=A,x=object({description:union([string().min(1,{message:"Item description cannot be empty"}),d]),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(I).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_categories_path:optional(nullable(string())),eval_pass_min:optional(nullable(number())),eval_pass_max:optional(nullable(number())),leaderboard_enabled:optional(boolean()).default(false),leaderboard_order:optional(C).default("desc"),submission_assets:optional(nullable(record(string(),d$1))),eval_static_inputs:optional(nullable(a)),notes:optional(nullable(string()))}),U=union([string().min(1,{message:"Item description cannot be empty"}).transform(u=>x.parse({description:u})),x]),j=object({type:w.default("closable"),status:E.default("open"),max_xp_per_contributor:optional(nullable(number().int().nonnegative())),closed_at:optional(nullable(string()))}),O=f.extend({asset_type:literal("quest").default("quest"),metadata:optional(nullable(b.partial())),quest:optional(j.partial()),items:optional(array(R.partial())),progress:optional(object({total:number(),resolved:number(),remaining:number(),items:optional(array(object({id:string(),status:l,waiting_on:optional(nullable(string())),waiting_until:optional(nullable(string())),waiting_check_every:optional(nullable(string()))}).partial()))}))}),Z=h.extend({asset_type:literal("quest").default("quest"),name:optional(nullable(string())).default(null),description:optional(nullable(d)),type:w.default("closable"),status:E.default("open"),max_xp_per_contributor:optional(nullable(number().int().nonnegative())),items:optional(array(U)).default([])}).transform(u=>a$2(u)),F=O.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=x.partial().extend({status:optional(l)}),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(d)),review:optional(nullable(d)),status:k,reviewer_id:optional(nullable(uuid())),reviewed_at:optional(nullable(string())),eval_action_id:optional(nullable(uuid())),eval_score:optional(nullable(number())),eval_category_scores:optional(nullable(record(string(),number()))),eval_status:optional(nullable(q)),created_at:string(),updated_at:string()}),P=object({item_id:uuid(),assets:optional(nullable(c)),description:optional(nullable(union([string(),d])))}),G=object({status:_enum(["accepted","rejected"]),review:optional(nullable(union([string(),d])))});export{w as a,E as b,l as c,I as d,q as e,k as f,C as g,A as h,R as i,x as j,U as k,O as l,Z as m,F as n,M as o,N as p,P as q,G as r};//# sourceMappingURL=chunk-5CPECQKN.js.map
2
- //# sourceMappingURL=chunk-5CPECQKN.js.map
1
+ import {a,d as d$1,c}from'./chunk-64ZUBBP7.js';import {f,b,h,a as a$2}from'./chunk-PGCNGDPK.js';import {a as a$1}from'./chunk-33C7IDRP.js';import {enum as _enum,object,optional,string,array,any,record,literal,number,uuid,nullable,boolean,union}from'zod';var w=_enum(["closable","continuous"]),E=_enum(["draft","open","closed","cancelled"]),l=_enum(["pending","in_progress","done","skipped"]),I=_enum(["btc","usd"]),q=_enum(["skipped","running","passed","failed","errored"]),k=_enum(["submitted","accepted","rejected"]),C=_enum(["desc","asc"]),T=object({type:string(),content:optional(array(any())),attrs:optional(record(string(),any())),marks:optional(array(any())),text:optional(string())}),d=object({json:object({type:literal("doc"),content:array(T)}),text:string()}),A=object({id:uuid(),quest_id:uuid(),description:d,status:l.default("pending"),auto_skipped:optional(nullable(string().or(any()))),status_before_auto_skip:optional(nullable(l)),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:I.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_categories_path:optional(nullable(string())),eval_pass_min:optional(nullable(number())),eval_pass_max:optional(nullable(number())),leaderboard_enabled:optional(boolean()).default(false),leaderboard_order:optional(C).default("desc"),submission_assets:optional(nullable(record(string(),d$1))),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()}),R=A,x=object({description:union([string().min(1,{message:"Item description cannot be empty"}),d]),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(I).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_categories_path:optional(nullable(string())),eval_pass_min:optional(nullable(number())),eval_pass_max:optional(nullable(number())),leaderboard_enabled:optional(boolean()).default(false),leaderboard_order:optional(C).default("desc"),submission_assets:optional(nullable(record(string(),d$1))),eval_static_inputs:optional(nullable(a)),notes:optional(nullable(string()))}),U=union([string().min(1,{message:"Item description cannot be empty"}).transform(u=>x.parse({description:u})),x]),j=object({type:w.default("closable"),status:E.default("open"),max_xp_per_contributor:optional(nullable(number().int().nonnegative())),closed_at:optional(nullable(string()))}),O=f.extend({asset_type:literal("quest").default("quest"),metadata:optional(nullable(b.partial())),quest:optional(j.partial()),items:optional(array(R.partial())),progress:optional(object({total:number(),resolved:number(),remaining:number(),items:optional(array(object({id:string(),status:l,waiting_on:optional(nullable(string())),waiting_until:optional(nullable(string())),waiting_check_every:optional(nullable(string()))}).partial()))}))}),Z=h.extend({asset_type:literal("quest").default("quest"),name:optional(nullable(string())).default(null),description:optional(nullable(d)),type:w.default("closable"),status:E.default("open"),max_xp_per_contributor:optional(nullable(number().int().nonnegative())),items:optional(array(U)).default([])}).transform(u=>a$2(u)),F=O.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=x.partial().extend({status:optional(l)}),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(d)),review:optional(nullable(d)),status:k,reviewer_id:optional(nullable(uuid())),reviewed_at:optional(nullable(string())),eval_action_id:optional(nullable(uuid())),eval_score:optional(nullable(number())),eval_category_scores:optional(nullable(record(string(),number()))),eval_status:optional(nullable(q)),created_at:string(),updated_at:string()}),P=object({item_id:uuid(),assets:optional(nullable(c)),description:optional(nullable(union([string(),d])))}),G=object({status:_enum(["accepted","rejected"]),review:optional(nullable(union([string(),d])))});export{w as a,E as b,l as c,I as d,q as e,k as f,C as g,A as h,R as i,x as j,U as k,O as l,Z as m,F as n,M as o,N as p,P as q,G as r};//# sourceMappingURL=chunk-ZFARY5F4.js.map
2
+ //# sourceMappingURL=chunk-ZFARY5F4.js.map