@ourofoundation/ouro-js 3.7.9 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-4CXHZFX4.cjs → chunk-23FTPTDP.cjs} +2 -2
- package/dist/{chunk-4CXHZFX4.cjs.map → chunk-23FTPTDP.cjs.map} +1 -1
- package/dist/chunk-33C7IDRP.js +2 -0
- package/dist/chunk-33C7IDRP.js.map +1 -0
- package/dist/{chunk-SIZVKGUT.js → chunk-3UE4H5TR.js} +2 -2
- package/dist/{chunk-SIZVKGUT.js.map → chunk-3UE4H5TR.js.map} +1 -1
- package/dist/{chunk-HZDBAPRY.js → chunk-5CKFMTWZ.js} +2 -2
- package/dist/{chunk-HZDBAPRY.js.map → chunk-5CKFMTWZ.js.map} +1 -1
- package/dist/{chunk-Z66O3S3W.cjs → chunk-5SC4M4E3.cjs} +2 -2
- package/dist/{chunk-Z66O3S3W.cjs.map → chunk-5SC4M4E3.cjs.map} +1 -1
- package/dist/{chunk-BUO2Y3O3.js → chunk-6OO4SOWL.js} +2 -2
- package/dist/{chunk-BUO2Y3O3.js.map → chunk-6OO4SOWL.js.map} +1 -1
- package/dist/{chunk-TB7MTWMO.cjs → chunk-7R5EIIIR.cjs} +2 -2
- package/dist/{chunk-TB7MTWMO.cjs.map → chunk-7R5EIIIR.cjs.map} +1 -1
- package/dist/{chunk-V3QRQO6H.js → chunk-APZA6MIM.js} +2 -2
- package/dist/{chunk-V3QRQO6H.js.map → chunk-APZA6MIM.js.map} +1 -1
- package/dist/chunk-AUDVUOLX.js +2 -0
- package/dist/chunk-AUDVUOLX.js.map +1 -0
- package/dist/{chunk-ZRJUBEIK.cjs → chunk-BELCP7OL.cjs} +2 -2
- package/dist/{chunk-ZRJUBEIK.cjs.map → chunk-BELCP7OL.cjs.map} +1 -1
- package/dist/{chunk-CW4TV3DY.js → chunk-CXMEZGVG.js} +2 -2
- package/dist/{chunk-CW4TV3DY.js.map → chunk-CXMEZGVG.js.map} +1 -1
- package/dist/{chunk-42WKTHH5.js → chunk-EIB2YGN3.js} +2 -2
- package/dist/{chunk-42WKTHH5.js.map → chunk-EIB2YGN3.js.map} +1 -1
- package/dist/{chunk-JAVIKBEC.js → chunk-GT7CSIDN.js} +2 -2
- package/dist/{chunk-JAVIKBEC.js.map → chunk-GT7CSIDN.js.map} +1 -1
- package/dist/{chunk-FDCVNMMO.js → chunk-GX6RCMZR.js} +2 -2
- package/dist/{chunk-FDCVNMMO.js.map → chunk-GX6RCMZR.js.map} +1 -1
- package/dist/{chunk-W3N744QV.js → chunk-KMENBGAB.js} +2 -2
- package/dist/{chunk-W3N744QV.js.map → chunk-KMENBGAB.js.map} +1 -1
- package/dist/{chunk-QJ3DLN2Y.cjs → chunk-M2ZH6MMH.cjs} +2 -2
- package/dist/{chunk-QJ3DLN2Y.cjs.map → chunk-M2ZH6MMH.cjs.map} +1 -1
- package/dist/{chunk-VC4DZZ3C.js → chunk-M5ZLLARC.js} +2 -2
- package/dist/{chunk-VC4DZZ3C.js.map → chunk-M5ZLLARC.js.map} +1 -1
- package/dist/{chunk-SZ5PIWEE.cjs → chunk-N3HC2ASR.cjs} +2 -2
- package/dist/{chunk-SZ5PIWEE.cjs.map → chunk-N3HC2ASR.cjs.map} +1 -1
- package/dist/{chunk-5CSPQ2RL.cjs → chunk-NVKZLT3M.cjs} +2 -2
- package/dist/{chunk-5CSPQ2RL.cjs.map → chunk-NVKZLT3M.cjs.map} +1 -1
- package/dist/{chunk-2KQZYT5W.cjs → chunk-O6RFWCC4.cjs} +2 -2
- package/dist/{chunk-2KQZYT5W.cjs.map → chunk-O6RFWCC4.cjs.map} +1 -1
- package/dist/{chunk-F6PWGWDJ.js → chunk-QUBJLDJY.js} +2 -2
- package/dist/{chunk-F6PWGWDJ.js.map → chunk-QUBJLDJY.js.map} +1 -1
- package/dist/chunk-RNBIB6S7.cjs +2 -0
- package/dist/chunk-RNBIB6S7.cjs.map +1 -0
- package/dist/{chunk-FJTFM3ML.cjs → chunk-RQUVICCB.cjs} +2 -2
- package/dist/{chunk-FJTFM3ML.cjs.map → chunk-RQUVICCB.cjs.map} +1 -1
- package/dist/chunk-RRDGLT3N.cjs +2 -0
- package/dist/{chunk-ICEXKHCC.cjs.map → chunk-RRDGLT3N.cjs.map} +1 -1
- package/dist/chunk-SZWAE35B.cjs +2 -0
- package/dist/chunk-SZWAE35B.cjs.map +1 -0
- package/dist/chunk-U5JVCESS.js +2 -0
- package/dist/chunk-U5JVCESS.js.map +1 -0
- package/dist/{chunk-EP5DBAZQ.cjs → chunk-W4V643O5.cjs} +2 -2
- package/dist/{chunk-EP5DBAZQ.cjs.map → chunk-W4V643O5.cjs.map} +1 -1
- package/dist/chunk-YFEGRZXL.cjs +2 -0
- package/dist/chunk-YFEGRZXL.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/schema/asset-filters.cjs +1 -1
- package/dist/schema/asset-filters.js +1 -1
- package/dist/schema/assets.cjs +1 -1
- package/dist/schema/assets.js +1 -1
- package/dist/schema/comments.cjs +1 -1
- package/dist/schema/comments.js +1 -1
- package/dist/schema/common.cjs +1 -1
- package/dist/schema/common.d.cts +1 -0
- package/dist/schema/common.d.ts +1 -0
- package/dist/schema/common.js +1 -1
- package/dist/schema/conversations.cjs +1 -1
- package/dist/schema/conversations.d.cts +20 -1
- package/dist/schema/conversations.d.ts +20 -1
- package/dist/schema/conversations.js +1 -1
- package/dist/schema/datasets.cjs +1 -1
- package/dist/schema/datasets.js +1 -1
- package/dist/schema/files.cjs +1 -1
- package/dist/schema/files.d.cts +66 -1
- package/dist/schema/files.d.ts +66 -1
- package/dist/schema/files.js +1 -1
- package/dist/schema/notifications.cjs +1 -1
- package/dist/schema/notifications.js +1 -1
- package/dist/schema/organizations.cjs +1 -1
- package/dist/schema/organizations.js +1 -1
- package/dist/schema/posts.cjs +1 -1
- package/dist/schema/posts.js +1 -1
- package/dist/schema/quests.cjs +1 -1
- package/dist/schema/quests.js +1 -1
- package/dist/schema/services.cjs +1 -1
- package/dist/schema/services.js +1 -1
- package/dist/schema/teams.cjs +1 -1
- package/dist/schema/teams.js +1 -1
- package/dist/utils/quest-submission.cjs +1 -1
- package/dist/utils/quest-submission.js +1 -1
- package/package.json +2 -2
- package/tests/files.test.mjs +42 -0
- package/dist/chunk-3BZRQYRC.js +0 -2
- package/dist/chunk-3BZRQYRC.js.map +0 -1
- package/dist/chunk-4TQRYYVQ.js +0 -2
- package/dist/chunk-4TQRYYVQ.js.map +0 -1
- package/dist/chunk-6DS2XXIF.cjs +0 -2
- package/dist/chunk-6DS2XXIF.cjs.map +0 -1
- package/dist/chunk-732QBVGP.js +0 -2
- package/dist/chunk-732QBVGP.js.map +0 -1
- package/dist/chunk-ICEXKHCC.cjs +0 -2
- package/dist/chunk-MNECKGIP.cjs +0 -2
- package/dist/chunk-MNECKGIP.cjs.map +0 -1
- package/dist/chunk-PXT4NFAJ.cjs +0 -2
- package/dist/chunk-PXT4NFAJ.cjs.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
'use strict';var chunk7R5EIIIR_cjs=require('./chunk-7R5EIIIR.cjs'),chunkL6SVUDFH_cjs=require('./chunk-L6SVUDFH.cjs'),chunkYFEGRZXL_cjs=require('./chunk-YFEGRZXL.cjs'),chunkJRBBNFFI_cjs=require('./chunk-JRBBNFFI.cjs'),zod=require('zod');var x=zod.lazy(()=>zod.object({type:zod.string(),content:zod.optional(zod.array(x)),attrs:zod.optional(zod.record(zod.string(),zod.any())),marks:zod.optional(zod.array(zod.object({type:zod.string(),attrs:zod.optional(zod.record(zod.string(),zod.any()))}))),text:zod.optional(zod.string())})),i=zod.object({type:zod.literal("doc"),content:zod.array(x)}),z=zod.object({json:i,text:zod.string()}).default({json:{type:"doc",content:[]},text:""}),C=zod.object({}),_=C.extend(chunk7R5EIIIR_cjs.b.partial().shape),d=chunk7R5EIIIR_cjs.f.extend({name:zod.nullable(zod.string()),asset_type:chunkYFEGRZXL_cjs.a.refine(t=>["post","comment"].includes(t)),metadata:_,preview:i.default({type:"doc",content:[]}),content:z}),L=chunk7R5EIIIR_cjs.h.extend({asset_type:zod.literal("post").default("post"),name:zod.string().optional().nullable().default("").transform(t=>t==null?void 0:t.trim()).transform(t=>t||null),preview:i}).transform(t=>chunk7R5EIIIR_cjs.a(t)),R=d.extend({content:zod.optional(zod.nullable(z.default({json:{type:"doc",content:[]},text:""}))),reactions:zod.array(zod.record(zod.string(),zod.any())).default([]),views:zod.number().default(0),commentCount:zod.number().default(0),assets:zod.optional(zod.nullable(zod.array(chunk7R5EIIIR_cjs.f.partial()))),users:zod.optional(zod.nullable(zod.array(chunkL6SVUDFH_cjs.b.partial()))),actions:zod.optional(zod.nullable(zod.array(chunkJRBBNFFI_cjs.a)))}),M=zod.array(R),U=zod.array(d),Z=d.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,content:true,organization:true,user:true,team:true,slug:true,is_pinned_in_team:true}).extend({last_updated:zod.string().default(()=>new Date().toISOString())}).transform(t=>chunk7R5EIIIR_cjs.a(t));exports.a=i;exports.b=z;exports.c=d;exports.d=L;exports.e=R;exports.f=M;exports.g=U;exports.h=Z;//# sourceMappingURL=chunk-23FTPTDP.cjs.map
|
|
2
|
+
//# sourceMappingURL=chunk-23FTPTDP.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schema/posts.ts"],"names":["TipTapNode","lazy","object","string","optional","array","record","any","TipTapSchema","literal","ContentSchema","BasePostMetadataSchema","PostMetadataSchema","AssetMetadataSchema","PostSchema","AssetSchema","nullable","AssetTypeSchema","x","CreatePostSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","ReadPostSchema","number","ProfileSchema","ContentActionRefSchema","ReadPostsSchema","ListPostsSchema","UpdatePostSchema"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/schema/posts.ts"],"names":["TipTapNode","lazy","object","string","optional","array","record","any","TipTapSchema","literal","ContentSchema","BasePostMetadataSchema","PostMetadataSchema","AssetMetadataSchema","PostSchema","AssetSchema","nullable","AssetTypeSchema","x","CreatePostSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","ReadPostSchema","number","ProfileSchema","ContentActionRefSchema","ReadPostsSchema","ListPostsSchema","UpdatePostSchema"],"mappings":"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","file":"chunk-23FTPTDP.cjs","sourcesContent":["import {\n object,\n string,\n number,\n array,\n lazy,\n literal,\n record,\n type z,\n any,\n optional,\n nullable,\n boolean,\n type ZodType\n} from \"zod\";\n\nimport {\n AssetMetadataSchema,\n AssetSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { AssetTypeSchema } from \"./common\";\nimport { ContentActionRefSchema } from \"./content-refs\";\nimport { ProfileSchema } from \"./users\";\n\nconst TipTapNode: ZodType<any> = lazy(() =>\n object({\n type: string(),\n content: optional(array(TipTapNode)),\n attrs: optional(record(string(), any())),\n marks: optional(\n array(\n object({\n type: string(),\n attrs: optional(record(string(), any())),\n })\n )\n ),\n text: optional(string()), // For text nodes\n })\n);\n\nconst TipTapSchema = object({\n type: literal(\"doc\"),\n content: array(TipTapNode),\n});\n\nconst ContentSchema = object({\n json: TipTapSchema,\n text: string(),\n}).default({ json: { type: \"doc\", content: [] }, text: \"\" });\n\nconst BasePostMetadataSchema = object({})\n\nconst PostMetadataSchema = BasePostMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst PostSchema = AssetSchema.extend({\n name: nullable(string()),\n asset_type: AssetTypeSchema.refine((x) => [\"post\", \"comment\"].includes(x)),\n metadata: PostMetadataSchema,\n // TODO: make this ContentSchema\n preview: TipTapSchema.default({ type: \"doc\", content: [] }),\n content: ContentSchema,\n\n});\n\nconst CreatePostSchema = CreateAssetSchema.extend({\n asset_type: literal(\"post\").default(\"post\"),\n name: string()\n .optional()\n .nullable()\n .default(\"\")\n .transform((x) => x?.trim())\n .transform((x) => x || null),\n preview: TipTapSchema,\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst ReadPostSchema = PostSchema.extend({\n content: optional(\n nullable(\n ContentSchema.default({\n json: { type: \"doc\", content: [] },\n text: \"\",\n })\n )\n ),\n reactions: array(record(string(), any())).default([]),\n views: number().default(0),\n commentCount: number().default(0),\n // Resolved from content embeds / links at read time\n assets: optional(nullable(array(AssetSchema.partial()))),\n users: optional(nullable(array(ProfileSchema.partial()))),\n actions: optional(nullable(array(ContentActionRefSchema))),\n // We have this on asset now\n // parent: ConnectionSchema.optional().nullable(),\n});\n\nconst ReadPostsSchema = array(ReadPostSchema);\n\nconst ListPostsSchema = array(PostSchema);\n\nconst UpdatePostSchema = PostSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n content: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n })\n .extend({\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nexport {\n TipTapSchema,\n ContentSchema,\n PostSchema,\n CreatePostSchema,\n ListPostsSchema,\n ReadPostSchema,\n ReadPostsSchema,\n UpdatePostSchema,\n};\nexport type Post = z.infer<typeof PostSchema>;\nexport type CreatePost = z.infer<typeof CreatePostSchema>;\nexport type ListPosts = z.infer<typeof ListPostsSchema>;\nexport type ReadPost = z.infer<typeof ReadPostSchema>;\nexport type ReadPosts = z.infer<typeof ReadPostsSchema>;\nexport type UpdatePost = z.infer<typeof UpdatePostSchema>;\nexport type Content = z.infer<typeof ContentSchema>;\nexport type TipTap = z.infer<typeof TipTapSchema>;\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {enum as _enum,object,string,optional,array,nullable,record,any,number,uuid}from'zod';var a=_enum(["user","organization","team","dataset","file","service","route","post","quest","comment","conversation"]),h=_enum(["public","private","organization","monetized","inherit"]),d=_enum(["admin","read","write","none"]),S=_enum(["none","pay-to-unlock","pay-per-use"]),f=_enum(["usd","btc"]),_=object({id:string(),user_id:string(),org_id:optional(nullable(string())),embedding:array(number()),content:string(),asset_type:a,asset_id:string(),metadata:optional(nullable(record(string(),any()))),created_at:string(),last_updated:string()}),y=_enum(["comment","reference","mention","action","component","link","completion","evaluation"]),l=object({id:uuid(),user_id:uuid(),type:y,action_id:optional(nullable(uuid())),source_id:uuid(),target_id:uuid(),source_asset_type:a,target_asset_type:a,created_at:string(),last_updated:string()}),z=object({assetId:uuid(),method:_enum(["checkout","api"]),assetType:a}),b=object({id:uuid(),role:d,user:object({user_id:uuid()}),user_id:nullable(uuid()),org_id:nullable(uuid()),asset_type:a,asset_id:uuid(),created_at:string(),last_updated:string()}),x=_enum(["queued","in-progress","timed-out","success","error"]),g=_enum(["web","api"]),P=_enum(["GET","POST","PUT","PATCH","DELETE"]);export{a,h as b,d as c,S as d,f as e,_ as f,l as g,z as h,b as i,x as j,g as k,P as l};//# sourceMappingURL=chunk-33C7IDRP.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-33C7IDRP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/schema/common.ts"],"names":["AssetTypeSchema","zodEnum","VisibilitySchema","RoleSchema","MonetizationSchema","PriceCurrencySchema","EmbeddingSchema","object","string","optional","nullable","array","number","record","any","ConnectionTypeSchema","ConnectionSchema","uuid","PurchaseAssetSchema","PermissionSchema","StatusSchema","SourceSchema","HttpMethodSchema"],"mappings":"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","file":"chunk-33C7IDRP.js","sourcesContent":["import {\n object,\n string,\n uuid,\n number,\n array,\n enum as zodEnum,\n type z,\n any,\n nullable,\n optional,\n record\n} from \"zod\";\n\nconst AssetTypeSchema = zodEnum([\n \"user\",\n \"organization\",\n \"team\",\n \"dataset\",\n \"file\",\n \"service\",\n \"route\",\n \"post\",\n \"quest\",\n \"comment\",\n \"conversation\",\n]);\n\nconst VisibilitySchema = zodEnum([\n \"public\",\n \"private\",\n \"organization\",\n \"monetized\",\n \"inherit\",\n]);\n\nconst RoleSchema = zodEnum([\"admin\", \"read\", \"write\", \"none\"]);\n\nconst MonetizationSchema = zodEnum([\"none\", \"pay-to-unlock\", \"pay-per-use\"]);\n\nconst PriceCurrencySchema = zodEnum([\"usd\", \"btc\"]);\n\nconst EmbeddingSchema = object({\n id: string(),\n user_id: string(),\n org_id: optional(nullable(string())),\n embedding: array(number()),\n content: string(),\n asset_type: AssetTypeSchema,\n asset_id: string(),\n metadata: optional(nullable(record(string(), any()))),\n created_at: string(),\n last_updated: string(),\n});\n\nconst ConnectionTypeSchema = zodEnum([\n \"comment\",\n \"reference\",\n \"mention\",\n \"action\",\n \"component\",\n \"link\",\n \"completion\",\n \"evaluation\",\n]);\n\nconst ConnectionSchema = object({\n id: uuid(),\n user_id: uuid(),\n type: ConnectionTypeSchema,\n action_id: optional(nullable(uuid())),\n source_id: uuid(),\n target_id: uuid(),\n source_asset_type: AssetTypeSchema,\n target_asset_type: AssetTypeSchema,\n created_at: string(),\n last_updated: string(),\n});\n\nconst PurchaseAssetSchema = object({\n assetId: uuid(),\n method: zodEnum([\"checkout\", \"api\"]),\n assetType: AssetTypeSchema,\n});\n\nconst PermissionSchema = object({\n id: uuid(),\n role: RoleSchema,\n user: object({\n user_id: uuid(),\n }),\n user_id: nullable(uuid()),\n org_id: nullable(uuid()),\n asset_type: AssetTypeSchema,\n asset_id: uuid(),\n created_at: string(),\n last_updated: string(),\n});\n\nconst StatusSchema = zodEnum([\n \"queued\",\n \"in-progress\",\n \"timed-out\",\n \"success\",\n \"error\",\n]);\n\nconst SourceSchema = zodEnum([\"web\", \"api\"]);\n\nconst HttpMethodSchema = zodEnum([\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\"]);\n\nexport {\n RoleSchema,\n VisibilitySchema,\n MonetizationSchema,\n PriceCurrencySchema,\n ConnectionSchema,\n EmbeddingSchema,\n AssetTypeSchema,\n PurchaseAssetSchema,\n PermissionSchema,\n StatusSchema,\n SourceSchema,\n HttpMethodSchema,\n};\n\nexport type Role = z.infer<typeof RoleSchema>;\nexport type Connection = z.infer<typeof ConnectionSchema>;\nexport type Embedding = z.infer<typeof EmbeddingSchema>;\nexport type Visibility = z.infer<typeof VisibilitySchema>;\nexport type Monetization = z.infer<typeof MonetizationSchema>;\nexport type PriceCurrency = z.infer<typeof PriceCurrencySchema>;\nexport type AssetTypes = z.infer<typeof AssetTypeSchema>;\nexport type PurchaseAsset = z.infer<typeof PurchaseAssetSchema>;\nexport type Permission = z.infer<typeof PermissionSchema>;\nexport type Status = z.infer<typeof StatusSchema>;\nexport type Source = z.infer<typeof SourceSchema>;\nexport type HttpMethod = z.infer<typeof HttpMethodSchema>;\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a as a$2}from'./chunk-OU4JKY4M.js';import {b as b$1,f,h,a as a$1}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a as a$2}from'./chunk-OU4JKY4M.js';import {b as b$1,f,h,a as a$1}from'./chunk-GX6RCMZR.js';import {b as b$2}from'./chunk-G6GCUGMM.js';import {a,l,j}from'./chunk-33C7IDRP.js';import {enum as _enum,object,optional,string,nullable,array,boolean,any,record,number,uuid}from'zod';var D=_enum(["Personal Access Token","Ouro","None","OAuth 2.0"]),I=object({authentication:D,base_url:string(),version:optional(nullable(string())),spec_path:optional(nullable(string())),spec_url:optional(nullable(string())),auth_url:optional(nullable(string()))}),g=I.extend(b$1.partial().shape),M=f.extend({asset_type:a.refine(u=>u==="service"),metadata:g}),G=h.extend({asset_type:a.refine(u=>u==="service"),metadata:g}).transform(u=>a$1(u)),J=M.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,organization:true,user:true,team:true,slug:true,is_pinned_in_team:true}).extend({last_updated:string().default(()=>new Date().toISOString())}).transform(u=>a$1(u)),z=_enum(["sync","async"]),m=_enum(["file","dataset","post"]),b=_enum(a$2),O=object({asset_type:m,primary:optional(boolean()),input_filter:optional(nullable(b)),file_extensions:optional(nullable(array(string()))),contains_file_extensions:optional(nullable(array(string())))}).catchall(any()),k=object({asset_type:m,primary:optional(boolean()),file_extensions:optional(nullable(array(string()))),contains_file_extensions:optional(nullable(array(string())))}).catchall(any()),T=record(string(),O),E=record(string(),k),C=object({id:string(),user_id:string(),service_id:string(),path:string(),method:l,summary:optional(nullable(string())),parameters:optional(nullable(array(record(string(),any())))),request_body:optional(nullable(record(string(),any()))),responses:optional(nullable(array(record(string(),any())))),input_assets:optional(nullable(T)),input_type:optional(nullable(m)),input_filter:optional(nullable(b)),input_file_extension:optional(nullable(string())),input_file_extensions:optional(nullable(array(string()))),output_assets:optional(nullable(E)),output_type:optional(nullable(m)),output_file_extension:optional(nullable(string())),security:optional(nullable(record(string(),any()))),rate_limit:optional(nullable(number())),execution_mode:optional(z).default("sync"),observed_execution_mode:optional(nullable(z)),last_updated:string()}),F=object({avg_ack_ms:optional(nullable(number())),p95_ack_ms:optional(nullable(number())),avg_completion_ms:optional(nullable(number())),p95_completion_ms:optional(nullable(number())),latency_sample_count:optional(nullable(number()))}),K=f.extend({asset_type:a.refine(u=>u==="route"),route:C,metrics:optional(nullable(F))}),w=object({id:uuid(),user_id:uuid(),route_id:uuid(),metadata:optional(nullable(record(string(),any()))),response:optional(nullable(record(string(),any()))),side_effects:boolean().default(true),input_asset_id:optional(nullable(uuid())),output_asset_id:optional(nullable(uuid())),input_asset:optional(nullable(f)),input_assets:optional(nullable(array(record(string(),any())))),output_asset:optional(nullable(f)),output_assets:optional(nullable(array(record(string(),any())))),webhook_url:optional(nullable(string())),webhook_token:optional(nullable(string())),status:j,created_at:string(),last_updated:string(),started_at:optional(nullable(string())),ack_at:optional(nullable(string())),upstream_status_code:optional(nullable(number())),finished_at:optional(nullable(string()))}),v=object({name:string(),asset_id:optional(nullable(uuid())),asset_type:optional(a),is_primary:optional(boolean()),asset:optional(nullable(f.partial()))}),P=f.partial().extend({route:optional(nullable(object({output_type:optional(nullable(a)),output_assets:optional(nullable(any())),output_file_extension:optional(nullable(string())),input_assets:optional(nullable(any()))})))}),q=object({id:uuid(),total_cents:optional(nullable(number())),unit_cost_cents:optional(nullable(number())),quantity:optional(nullable(number())),cost_unit:optional(nullable(string())),status:optional(nullable(string())),stripe_invoice_id:optional(nullable(string())),created_at:optional(string())}),B=object({id:uuid(),type:optional(nullable(string())),value:optional(nullable(number())),status:optional(nullable(string())),metadata:optional(nullable(record(string(),any()))),created_at:optional(string())}),Q=w.extend({user:optional(nullable(b$2.partial())),route:optional(nullable(P)),input_assets:optional(nullable(array(v))),output_assets:optional(nullable(array(v))),usage_record:optional(nullable(q)),btc_charges:optional(nullable(array(B)))});export{M as a,G as b,J as c,z as d,O as e,k as f,T as g,E as h,F as i,K as j,w as k,v as l,P as m,Q as n};//# sourceMappingURL=chunk-3UE4H5TR.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-3UE4H5TR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schema/services.ts"],"names":["AuthType","zodEnum","BaseServiceMetadataSchema","object","string","optional","nullable","ServiceMetadataSchema","AssetMetadataSchema","ServiceSchema","AssetSchema","AssetTypeSchema","x","CreateServiceSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","UpdateServiceSchema","ExecutionModeSchema","RouteAssetType","RouteInputFilter","FILE_FILTERS","RouteInputAssetDeclarationSchema","boolean","array","any","RouteOutputAssetDeclarationSchema","RouteInputAssetsSchema","record","RouteOutputAssetsSchema","RouteDetailSchema","HttpMethodSchema","number","RouteMetricsSchema","RouteSchema","ActionSchema","uuid","StatusSchema","ActionAssetRefSchema","ReadActionRouteSchema","ActionUsageRecordSchema","ActionBtcChargeSchema","ReadActionSchema","ProfileSchema"],"mappings":"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","file":"chunk-SIZVKGUT.js","sourcesContent":["import {\n object,\n string,\n uuid,\n number,\n array,\n type z,\n record,\n any,\n enum as zodEnum,\n optional,\n nullable,\n boolean\n} from \"zod\";\n\nimport { AssetTypeSchema, HttpMethodSchema, StatusSchema } from \"./common\";\nimport {\n AssetMetadataSchema,\n AssetSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { ProfileSchema } from \"./users\";\nimport { FILE_FILTERS } from \"../utils/files\";\n\nconst AuthType = zodEnum([\"Personal Access Token\", \"Ouro\", \"None\", \"OAuth 2.0\"]);\n\nconst BaseServiceMetadataSchema = object({\n authentication: AuthType,\n base_url: string(),\n version: optional(nullable(string())),\n spec_path: optional(nullable(string())),\n spec_url: optional(nullable(string())),\n auth_url: optional(nullable(string())),\n});\n\nconst ServiceMetadataSchema = BaseServiceMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst ServiceSchema = AssetSchema.extend({\n asset_type: AssetTypeSchema.refine((x) => \"service\" === x),\n metadata: ServiceMetadataSchema,\n});\n\nconst CreateServiceSchema = CreateAssetSchema.extend({\n asset_type: AssetTypeSchema.refine((x) => \"service\" === x),\n metadata: ServiceMetadataSchema,\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst UpdateServiceSchema = ServiceSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n })\n .extend({\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nconst ExecutionModeSchema = zodEnum([\"sync\", \"async\"]);\n\n// Asset type accepted in keyed `input_assets` / `output_assets` declarations.\nconst RouteAssetType = zodEnum([\"file\", \"dataset\", \"post\"]);\n\n// File-type filter accepted on file-input declarations.\nconst RouteInputFilter = zodEnum(FILE_FILTERS);\n\n// Shape of a single keyed declaration in `routes.input_assets`. Plural\n// declarations are canonical; the legacy `input_type` and `input_file_*`\n// columns on the route row stay in sync as primary projections.\nconst RouteInputAssetDeclarationSchema = object({\n asset_type: RouteAssetType,\n primary: optional(boolean()),\n input_filter: optional(nullable(RouteInputFilter)),\n file_extensions: optional(nullable(array(string()))),\n contains_file_extensions: optional(nullable(array(string()))),\n}).catchall(any());\n\n// Shape of a single keyed declaration in `routes.output_assets`.\nconst RouteOutputAssetDeclarationSchema = object({\n asset_type: RouteAssetType,\n primary: optional(boolean()),\n file_extensions: optional(nullable(array(string()))),\n contains_file_extensions: optional(nullable(array(string()))),\n}).catchall(any());\n\nconst RouteInputAssetsSchema = record(\n string(),\n RouteInputAssetDeclarationSchema\n);\n\nconst RouteOutputAssetsSchema = record(\n string(),\n RouteOutputAssetDeclarationSchema\n);\n\nconst RouteDetailSchema = object({\n id: string(),\n user_id: string(),\n service_id: string(),\n path: string(),\n method: HttpMethodSchema,\n summary: optional(nullable(string())),\n parameters: optional(nullable(array(record(string(), any())))),\n request_body: optional(nullable(record(string(), any()))),\n responses: optional(nullable(array(record(string(), any())))),\n // Canonical plural input declarations keyed by request body field name.\n input_assets: optional(nullable(RouteInputAssetsSchema)),\n // Legacy primary projection — kept synchronized with `input_assets` for\n // older clients, indexing, and quick asset-type lookups.\n input_type: optional(nullable(RouteAssetType)),\n input_filter: optional(nullable(RouteInputFilter)),\n input_file_extension: optional(nullable(string())),\n input_file_extensions: optional(nullable(array(string()))),\n // Canonical plural output declarations keyed by response body field name.\n output_assets: optional(nullable(RouteOutputAssetsSchema)),\n // Legacy primary projection — kept synchronized with `output_assets`.\n output_type: optional(nullable(RouteAssetType)),\n output_file_extension: optional(nullable(string())),\n security: optional(nullable(record(string(), any()))),\n rate_limit: optional(nullable(number())),\n // Author-declared execution model: 'sync' = upstream returns the result\n // inline; 'async' = upstream returns 202 quickly and webhooks completion.\n execution_mode: optional(ExecutionModeSchema).default(\"sync\"),\n // Empirical mode derived by the platform from recent action history; null\n // until enough samples have been observed. When this differs from\n // execution_mode the route is misconfigured.\n observed_execution_mode: optional(nullable(ExecutionModeSchema)),\n last_updated: string(),\n});\n\n// Per-route latency aggregates surfaced from asset_metrics. All fields are\n// nullable because they don't exist until the platform has observed at least\n// one completed action for the route.\nconst RouteMetricsSchema = object({\n // Average HTTP-hop latency in milliseconds: time from request start until\n // upstream returned 200 or 202.\n avg_ack_ms: optional(nullable(number())),\n p95_ack_ms: optional(nullable(number())),\n // Average end-to-end latency in milliseconds: started_at to finished_at,\n // includes webhook completion for async routes. This is the value an\n // agent should consider when deciding whether to wait or poll.\n avg_completion_ms: optional(nullable(number())),\n p95_completion_ms: optional(nullable(number())),\n latency_sample_count: optional(nullable(number())),\n});\n\nconst RouteSchema = AssetSchema.extend({\n asset_type: AssetTypeSchema.refine((x) => \"route\" === x),\n route: RouteDetailSchema,\n // Latency aggregates joined from asset_metrics; null when no samples yet.\n metrics: optional(nullable(RouteMetricsSchema)),\n});\n\nconst ActionSchema = object({\n id: uuid(),\n user_id: uuid(),\n route_id: uuid(),\n metadata: optional(nullable(record(string(), any()))),\n response: optional(nullable(record(string(), any()))),\n side_effects: boolean().default(true),\n input_asset_id: optional(nullable(uuid())),\n output_asset_id: optional(nullable(uuid())),\n input_asset: optional(nullable(AssetSchema)),\n input_assets: optional(nullable(array(record(string(), any())))),\n output_asset: optional(nullable(AssetSchema)),\n output_assets: optional(nullable(array(record(string(), any())))),\n webhook_url: optional(nullable(string())),\n webhook_token: optional(nullable(string())),\n status: StatusSchema,\n created_at: string(),\n last_updated: string(),\n started_at: optional(nullable(string())),\n // When the upstream service first responded (200 or 202). For sync routes\n // this is approximately equal to finished_at; for async routes the gap\n // between ack_at and finished_at is the out-of-band wait time.\n ack_at: optional(nullable(string())),\n // HTTP status code returned by the upstream service at ack time.\n upstream_status_code: optional(nullable(number())),\n finished_at: optional(nullable(string())),\n});\n\n/**\n * Row from `action_assets` after `prepareActionResponse` splits by direction.\n * Nested `asset` may briefly be null under RLS / replication lag.\n */\nconst ActionAssetRefSchema = object({\n name: string(),\n asset_id: optional(nullable(uuid())),\n asset_type: optional(AssetTypeSchema),\n is_primary: optional(boolean()),\n asset: optional(nullable(AssetSchema.partial())),\n});\n\n/** Joined route asset on action reads (not a full Route). */\nconst ReadActionRouteSchema = AssetSchema.partial().extend({\n route: optional(\n nullable(\n object({\n output_type: optional(nullable(AssetTypeSchema)),\n output_assets: optional(nullable(any())),\n output_file_extension: optional(nullable(string())),\n input_assets: optional(nullable(any())),\n })\n )\n ),\n});\n\nconst ActionUsageRecordSchema = object({\n id: uuid(),\n total_cents: optional(nullable(number())),\n unit_cost_cents: optional(nullable(number())),\n quantity: optional(nullable(number())),\n cost_unit: optional(nullable(string())),\n status: optional(nullable(string())),\n stripe_invoice_id: optional(nullable(string())),\n created_at: optional(string()),\n});\n\nconst ActionBtcChargeSchema = object({\n id: uuid(),\n type: optional(nullable(string())),\n value: optional(nullable(number())),\n status: optional(nullable(string())),\n metadata: optional(nullable(record(string(), any()))),\n created_at: optional(string()),\n});\n\n/** Action as returned from read APIs, with joins and split action_assets. */\nconst ReadActionSchema = ActionSchema.extend({\n user: optional(nullable(ProfileSchema.partial())),\n route: optional(nullable(ReadActionRouteSchema)),\n input_assets: optional(nullable(array(ActionAssetRefSchema))),\n output_assets: optional(nullable(array(ActionAssetRefSchema))),\n usage_record: optional(nullable(ActionUsageRecordSchema)),\n btc_charges: optional(nullable(array(ActionBtcChargeSchema))),\n});\n\nexport {\n RouteSchema,\n RouteInputAssetDeclarationSchema,\n RouteOutputAssetDeclarationSchema,\n RouteInputAssetsSchema,\n RouteOutputAssetsSchema,\n ServiceSchema,\n CreateServiceSchema,\n UpdateServiceSchema,\n ActionSchema,\n ActionAssetRefSchema,\n ReadActionRouteSchema,\n ReadActionSchema,\n RouteMetricsSchema,\n ExecutionModeSchema,\n};\nexport type Service = z.infer<typeof ServiceSchema>;\nexport type Route = z.infer<typeof RouteSchema>;\nexport type RouteDetail = z.infer<typeof RouteDetailSchema>;\nexport type RouteMetrics = z.infer<typeof RouteMetricsSchema>;\nexport type RouteInputAssetDeclaration = z.infer<typeof RouteInputAssetDeclarationSchema>;\nexport type RouteOutputAssetDeclaration = z.infer<typeof RouteOutputAssetDeclarationSchema>;\nexport type RouteInputAssets = z.infer<typeof RouteInputAssetsSchema>;\nexport type RouteOutputAssets = z.infer<typeof RouteOutputAssetsSchema>;\nexport type ExecutionMode = z.infer<typeof ExecutionModeSchema>;\nexport type AuthType = z.infer<typeof AuthType>;\nexport type Action = z.infer<typeof ActionSchema>;\nexport type ActionAssetRef = z.infer<typeof ActionAssetRefSchema>;\nexport type ReadActionRoute = z.infer<typeof ReadActionRouteSchema>;\nexport type ReadAction = z.infer<typeof ReadActionSchema>;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/schema/services.ts"],"names":["AuthType","zodEnum","BaseServiceMetadataSchema","object","string","optional","nullable","ServiceMetadataSchema","AssetMetadataSchema","ServiceSchema","AssetSchema","AssetTypeSchema","x","CreateServiceSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","UpdateServiceSchema","ExecutionModeSchema","RouteAssetType","RouteInputFilter","FILE_FILTERS","RouteInputAssetDeclarationSchema","boolean","array","any","RouteOutputAssetDeclarationSchema","RouteInputAssetsSchema","record","RouteOutputAssetsSchema","RouteDetailSchema","HttpMethodSchema","number","RouteMetricsSchema","RouteSchema","ActionSchema","uuid","StatusSchema","ActionAssetRefSchema","ReadActionRouteSchema","ActionUsageRecordSchema","ActionBtcChargeSchema","ReadActionSchema","ProfileSchema"],"mappings":"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","file":"chunk-3UE4H5TR.js","sourcesContent":["import {\n object,\n string,\n uuid,\n number,\n array,\n type z,\n record,\n any,\n enum as zodEnum,\n optional,\n nullable,\n boolean\n} from \"zod\";\n\nimport { AssetTypeSchema, HttpMethodSchema, StatusSchema } from \"./common\";\nimport {\n AssetMetadataSchema,\n AssetSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { ProfileSchema } from \"./users\";\nimport { FILE_FILTERS } from \"../utils/files\";\n\nconst AuthType = zodEnum([\"Personal Access Token\", \"Ouro\", \"None\", \"OAuth 2.0\"]);\n\nconst BaseServiceMetadataSchema = object({\n authentication: AuthType,\n base_url: string(),\n version: optional(nullable(string())),\n spec_path: optional(nullable(string())),\n spec_url: optional(nullable(string())),\n auth_url: optional(nullable(string())),\n});\n\nconst ServiceMetadataSchema = BaseServiceMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst ServiceSchema = AssetSchema.extend({\n asset_type: AssetTypeSchema.refine((x) => \"service\" === x),\n metadata: ServiceMetadataSchema,\n});\n\nconst CreateServiceSchema = CreateAssetSchema.extend({\n asset_type: AssetTypeSchema.refine((x) => \"service\" === x),\n metadata: ServiceMetadataSchema,\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst UpdateServiceSchema = ServiceSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n })\n .extend({\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nconst ExecutionModeSchema = zodEnum([\"sync\", \"async\"]);\n\n// Asset type accepted in keyed `input_assets` / `output_assets` declarations.\nconst RouteAssetType = zodEnum([\"file\", \"dataset\", \"post\"]);\n\n// File-type filter accepted on file-input declarations.\nconst RouteInputFilter = zodEnum(FILE_FILTERS);\n\n// Shape of a single keyed declaration in `routes.input_assets`. Plural\n// declarations are canonical; the legacy `input_type` and `input_file_*`\n// columns on the route row stay in sync as primary projections.\nconst RouteInputAssetDeclarationSchema = object({\n asset_type: RouteAssetType,\n primary: optional(boolean()),\n input_filter: optional(nullable(RouteInputFilter)),\n file_extensions: optional(nullable(array(string()))),\n contains_file_extensions: optional(nullable(array(string()))),\n}).catchall(any());\n\n// Shape of a single keyed declaration in `routes.output_assets`.\nconst RouteOutputAssetDeclarationSchema = object({\n asset_type: RouteAssetType,\n primary: optional(boolean()),\n file_extensions: optional(nullable(array(string()))),\n contains_file_extensions: optional(nullable(array(string()))),\n}).catchall(any());\n\nconst RouteInputAssetsSchema = record(\n string(),\n RouteInputAssetDeclarationSchema\n);\n\nconst RouteOutputAssetsSchema = record(\n string(),\n RouteOutputAssetDeclarationSchema\n);\n\nconst RouteDetailSchema = object({\n id: string(),\n user_id: string(),\n service_id: string(),\n path: string(),\n method: HttpMethodSchema,\n summary: optional(nullable(string())),\n parameters: optional(nullable(array(record(string(), any())))),\n request_body: optional(nullable(record(string(), any()))),\n responses: optional(nullable(array(record(string(), any())))),\n // Canonical plural input declarations keyed by request body field name.\n input_assets: optional(nullable(RouteInputAssetsSchema)),\n // Legacy primary projection — kept synchronized with `input_assets` for\n // older clients, indexing, and quick asset-type lookups.\n input_type: optional(nullable(RouteAssetType)),\n input_filter: optional(nullable(RouteInputFilter)),\n input_file_extension: optional(nullable(string())),\n input_file_extensions: optional(nullable(array(string()))),\n // Canonical plural output declarations keyed by response body field name.\n output_assets: optional(nullable(RouteOutputAssetsSchema)),\n // Legacy primary projection — kept synchronized with `output_assets`.\n output_type: optional(nullable(RouteAssetType)),\n output_file_extension: optional(nullable(string())),\n security: optional(nullable(record(string(), any()))),\n rate_limit: optional(nullable(number())),\n // Author-declared execution model: 'sync' = upstream returns the result\n // inline; 'async' = upstream returns 202 quickly and webhooks completion.\n execution_mode: optional(ExecutionModeSchema).default(\"sync\"),\n // Empirical mode derived by the platform from recent action history; null\n // until enough samples have been observed. When this differs from\n // execution_mode the route is misconfigured.\n observed_execution_mode: optional(nullable(ExecutionModeSchema)),\n last_updated: string(),\n});\n\n// Per-route latency aggregates surfaced from asset_metrics. All fields are\n// nullable because they don't exist until the platform has observed at least\n// one completed action for the route.\nconst RouteMetricsSchema = object({\n // Average HTTP-hop latency in milliseconds: time from request start until\n // upstream returned 200 or 202.\n avg_ack_ms: optional(nullable(number())),\n p95_ack_ms: optional(nullable(number())),\n // Average end-to-end latency in milliseconds: started_at to finished_at,\n // includes webhook completion for async routes. This is the value an\n // agent should consider when deciding whether to wait or poll.\n avg_completion_ms: optional(nullable(number())),\n p95_completion_ms: optional(nullable(number())),\n latency_sample_count: optional(nullable(number())),\n});\n\nconst RouteSchema = AssetSchema.extend({\n asset_type: AssetTypeSchema.refine((x) => \"route\" === x),\n route: RouteDetailSchema,\n // Latency aggregates joined from asset_metrics; null when no samples yet.\n metrics: optional(nullable(RouteMetricsSchema)),\n});\n\nconst ActionSchema = object({\n id: uuid(),\n user_id: uuid(),\n route_id: uuid(),\n metadata: optional(nullable(record(string(), any()))),\n response: optional(nullable(record(string(), any()))),\n side_effects: boolean().default(true),\n input_asset_id: optional(nullable(uuid())),\n output_asset_id: optional(nullable(uuid())),\n input_asset: optional(nullable(AssetSchema)),\n input_assets: optional(nullable(array(record(string(), any())))),\n output_asset: optional(nullable(AssetSchema)),\n output_assets: optional(nullable(array(record(string(), any())))),\n webhook_url: optional(nullable(string())),\n webhook_token: optional(nullable(string())),\n status: StatusSchema,\n created_at: string(),\n last_updated: string(),\n started_at: optional(nullable(string())),\n // When the upstream service first responded (200 or 202). For sync routes\n // this is approximately equal to finished_at; for async routes the gap\n // between ack_at and finished_at is the out-of-band wait time.\n ack_at: optional(nullable(string())),\n // HTTP status code returned by the upstream service at ack time.\n upstream_status_code: optional(nullable(number())),\n finished_at: optional(nullable(string())),\n});\n\n/**\n * Row from `action_assets` after `prepareActionResponse` splits by direction.\n * Nested `asset` may briefly be null under RLS / replication lag.\n */\nconst ActionAssetRefSchema = object({\n name: string(),\n asset_id: optional(nullable(uuid())),\n asset_type: optional(AssetTypeSchema),\n is_primary: optional(boolean()),\n asset: optional(nullable(AssetSchema.partial())),\n});\n\n/** Joined route asset on action reads (not a full Route). */\nconst ReadActionRouteSchema = AssetSchema.partial().extend({\n route: optional(\n nullable(\n object({\n output_type: optional(nullable(AssetTypeSchema)),\n output_assets: optional(nullable(any())),\n output_file_extension: optional(nullable(string())),\n input_assets: optional(nullable(any())),\n })\n )\n ),\n});\n\nconst ActionUsageRecordSchema = object({\n id: uuid(),\n total_cents: optional(nullable(number())),\n unit_cost_cents: optional(nullable(number())),\n quantity: optional(nullable(number())),\n cost_unit: optional(nullable(string())),\n status: optional(nullable(string())),\n stripe_invoice_id: optional(nullable(string())),\n created_at: optional(string()),\n});\n\nconst ActionBtcChargeSchema = object({\n id: uuid(),\n type: optional(nullable(string())),\n value: optional(nullable(number())),\n status: optional(nullable(string())),\n metadata: optional(nullable(record(string(), any()))),\n created_at: optional(string()),\n});\n\n/** Action as returned from read APIs, with joins and split action_assets. */\nconst ReadActionSchema = ActionSchema.extend({\n user: optional(nullable(ProfileSchema.partial())),\n route: optional(nullable(ReadActionRouteSchema)),\n input_assets: optional(nullable(array(ActionAssetRefSchema))),\n output_assets: optional(nullable(array(ActionAssetRefSchema))),\n usage_record: optional(nullable(ActionUsageRecordSchema)),\n btc_charges: optional(nullable(array(ActionBtcChargeSchema))),\n});\n\nexport {\n RouteSchema,\n RouteInputAssetDeclarationSchema,\n RouteOutputAssetDeclarationSchema,\n RouteInputAssetsSchema,\n RouteOutputAssetsSchema,\n ServiceSchema,\n CreateServiceSchema,\n UpdateServiceSchema,\n ActionSchema,\n ActionAssetRefSchema,\n ReadActionRouteSchema,\n ReadActionSchema,\n RouteMetricsSchema,\n ExecutionModeSchema,\n};\nexport type Service = z.infer<typeof ServiceSchema>;\nexport type Route = z.infer<typeof RouteSchema>;\nexport type RouteDetail = z.infer<typeof RouteDetailSchema>;\nexport type RouteMetrics = z.infer<typeof RouteMetricsSchema>;\nexport type RouteInputAssetDeclaration = z.infer<typeof RouteInputAssetDeclarationSchema>;\nexport type RouteOutputAssetDeclaration = z.infer<typeof RouteOutputAssetDeclarationSchema>;\nexport type RouteInputAssets = z.infer<typeof RouteInputAssetsSchema>;\nexport type RouteOutputAssets = z.infer<typeof RouteOutputAssetsSchema>;\nexport type ExecutionMode = z.infer<typeof ExecutionModeSchema>;\nexport type AuthType = z.infer<typeof AuthType>;\nexport type Action = z.infer<typeof ActionSchema>;\nexport type ActionAssetRef = z.infer<typeof ActionAssetRefSchema>;\nexport type ReadActionRoute = z.infer<typeof ReadActionRouteSchema>;\nexport type ReadAction = z.infer<typeof ReadActionSchema>;\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {e}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {e}from'./chunk-3UE4H5TR.js';import {a}from'./chunk-33C7IDRP.js';import {record,string,object,uuid,union,optional,boolean}from'zod';function m(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}function k(e){if(!e)return null;let t=e.replace(/^\.+/,"").trim().toLowerCase().replace(/[^a-z0-9]/g,"");return !t||/^\d+$/.test(t)||t.length>12?null:t}function I(e){let s=Array.isArray(e)?e:typeof e=="string"?e.split(/[\s,]+/):[];return Array.from(new Set(s.map(t=>k(t)).filter(t=>!!t)))}var P=record(string(),object({asset_id:uuid(),asset_type:a})),K=union([uuid(),object({asset_id:uuid(),asset_type:optional(a)})]),E=record(string(),K),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 T(e){var n;let s=e==null?void 0:e.route;if(!s)return {};let t=s.input_assets;if(m(t)){let i=Object.entries(t).filter(([,r])=>m(r));if(i.length>0)return Object.fromEntries(i)}return s.input_type?{[s.input_type]:{asset_type:s.input_type,primary:true,input_filter:s.input_filter,input_file_extensions:(n=s.input_file_extensions)!=null?n:null}}:{}}function j(e){let s=S(e),t=R(e);return {asset_type:e.asset_type,primary:e.primary,input_filter:t!=null?t:null,file_extensions:s.length>0?s:null,required:true}}function Q(e,s){let t=new Set(s),n={};for(let[i,r]of Object.entries(e))t.has(i)||(n[i]=j(r));return n}function L(e){let s=Object.entries(e);if(!s.length)return null;let t=s.find(([,n])=>n.primary===true);return t?t[0]:(s.length===1,s[0][0])}function B(e,s){var i,r;let t=(i=e.eval_static_inputs)!=null?i:{};if(e.eval_route_id&&s){let a=T(s),l=Object.keys(t),u=e.submission_assets&&Object.keys(e.submission_assets).length>0?e.submission_assets:Q(a,l);return {contributorKeys:Object.keys(u),declarations:u,pinned:t}}let n=(r=e.submission_assets)!=null?r:{};return {contributorKeys:Object.keys(n),declarations:n,pinned:t}}function F(e){if(!e)return null;let s=e.asset_type||void 0;if(!s)return null;let t={assetType:s,hasConstraints:false};if(s==="file"){let n=S(e);n.length>0&&(t.extensions=n,t.hasConstraints=true);let i=R(e);i&&(t.fileType=i,t.hasConstraints=true);}return t}function V(e,s){var i,r,a,l,u,p;if(!s||!e)return true;let t=F(s);if(!t)return true;let n=(i=e.assetType)!=null?i:e.asset_type;if(t.assetType&&n!==t.assetType)return false;if(t.assetType==="file"){let c=(a=(r=e.asset)==null?void 0:r.metadata)!=null?a:{};if(t.extensions&&t.extensions.length>0){let o=String((l=c.extension)!=null?l:"").toLowerCase();if(!o||!t.extensions.includes(o))return false}if(t.fileType){let o=String((p=(u=c.file_type)!=null?u:c.type)!=null?p:"").toLowerCase().split("/")[0],f=t.fileType.toLowerCase();if(o&&f&&!o.includes(f)&&o!==f)return false}}return true}function M(e,s){if(!e||!Object.keys(e).length)return null;let t=s&&L(s)||Object.keys(e)[0],n=e[t];return n?{key:t,asset_id:n.asset_id,asset_type:n.asset_type}:null}function $(e){return e?Object.fromEntries(Object.entries(e).map(([s,t])=>[s,{assetId:t.asset_id,assetType:t.asset_type}])):{}}export{P as a,K as b,E as c,q as d,T as e,j as f,Q as g,L as h,B as i,F as j,V as k,M as l,$ as m};//# sourceMappingURL=chunk-5CKFMTWZ.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-5CKFMTWZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/quest-submission.ts"],"names":["isPlainObject","value","normalizeFileExtension","safe","normalizeFileExtensions","rawValues","entry","KeyedAssetRefsSchema","record","string","object","uuid","AssetTypeSchema","KeyedAssetInputValueSchema","union","optional","KeyedAssetInputSchema","QuestSubmissionAssetDeclarationSchema","RouteInputAssetDeclarationSchema","boolean","readDeclarationExtensions","declaration","readDeclarationFilter","getRouteInputDeclarationsFromRoute","route","_a","detail","inputs","entries","declarationToSubmissionDeclaration","extensions","filter","materializeContributorSubmissionAssets","routeInputs","pinnedKeys","pinned","out","key","getPrimaryDeclarationKey","declarations","primary","d","getSubmissionAssetShape","item","_b","materialized","declarationToPickerFilters","assetType","filters","fileType","assetMatchesDeclaration","asset","_c","_d","_e","_f","metadata","ext","type","expected","getPrimaryAssetRef","refs","ref","toRouteInputAssets"],"mappings":"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","file":"chunk-HZDBAPRY.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 =\n item.submission_assets &&\n Object.keys(item.submission_assets).length > 0\n ? item.submission_assets\n : materializeContributorSubmissionAssets(routeInputs, pinnedKeys);\n const contributorKeys = Object.keys(materialized);\n return {\n contributorKeys,\n declarations: materialized,\n pinned,\n };\n }\n\n const declarations = item.submission_assets ?? {};\n return {\n contributorKeys: Object.keys(declarations),\n declarations,\n pinned,\n };\n}\n\nexport function declarationToPickerFilters(\n declaration: RouteInputDeclarationLike | QuestSubmissionAssetDeclaration | null | undefined\n): AssetDeclarationPickerFilters | null {\n if (!declaration) return null;\n const assetType = declaration.asset_type || undefined;\n if (!assetType) return null;\n\n const filters: AssetDeclarationPickerFilters = {\n assetType,\n hasConstraints: false,\n };\n\n if (assetType === \"file\") {\n const extensions = readDeclarationExtensions(declaration);\n if (extensions.length > 0) {\n filters.extensions = extensions;\n filters.hasConstraints = true;\n }\n const fileType = readDeclarationFilter(declaration);\n if (fileType) {\n filters.fileType = fileType;\n filters.hasConstraints = true;\n }\n }\n\n return filters;\n}\n\nexport function assetMatchesDeclaration(\n asset:\n | {\n assetType?: string | null;\n asset_type?: string | null;\n asset?: { metadata?: Record<string, unknown> } | null;\n }\n | null\n | undefined,\n declaration: RouteInputDeclarationLike | QuestSubmissionAssetDeclaration | null | undefined\n): boolean {\n if (!declaration || !asset) return true;\n const filters = declarationToPickerFilters(declaration);\n if (!filters) return true;\n\n const assetType = asset.assetType ?? asset.asset_type;\n if (filters.assetType && assetType !== filters.assetType) return false;\n\n if (filters.assetType === \"file\") {\n const metadata = asset.asset?.metadata ?? {};\n if (filters.extensions && filters.extensions.length > 0) {\n const ext = String(metadata.extension ?? \"\").toLowerCase();\n if (!ext || !filters.extensions.includes(ext)) return false;\n }\n if (filters.fileType) {\n const type = String(metadata.file_type ?? metadata.type ?? \"\")\n .toLowerCase()\n .split(\"/\")[0];\n const expected = filters.fileType.toLowerCase();\n if (type && expected && !type.includes(expected) && type !== expected) {\n return false;\n }\n }\n }\n\n return true;\n}\n\nexport function getPrimaryAssetRef(\n refs: KeyedAssetRefs | null | undefined,\n declarations?: Record<string, QuestSubmissionAssetDeclaration> | null\n): { key: string; asset_id: string; asset_type: string } | null {\n if (!refs || !Object.keys(refs).length) return null;\n const key =\n (declarations && getPrimaryDeclarationKey(declarations)) ||\n Object.keys(refs)[0];\n const ref = refs[key];\n if (!ref) return null;\n return { key, asset_id: ref.asset_id, asset_type: ref.asset_type };\n}\n\nexport function toRouteInputAssets(\n refs: KeyedAssetRefs | null | undefined\n): Record<string, { assetId: string; assetType: string }> {\n if (!refs) return {};\n return Object.fromEntries(\n Object.entries(refs).map(([key, ref]) => [\n key,\n { assetId: ref.asset_id, assetType: ref.asset_type },\n ])\n );\n}\n\n/** @deprecated Use declarationToPickerFilters */\nexport type EvalSubmissionFilters = AssetDeclarationPickerFilters;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils/quest-submission.ts"],"names":["isPlainObject","value","normalizeFileExtension","safe","normalizeFileExtensions","rawValues","entry","KeyedAssetRefsSchema","record","string","object","uuid","AssetTypeSchema","KeyedAssetInputValueSchema","union","optional","KeyedAssetInputSchema","QuestSubmissionAssetDeclarationSchema","RouteInputAssetDeclarationSchema","boolean","readDeclarationExtensions","declaration","readDeclarationFilter","getRouteInputDeclarationsFromRoute","route","_a","detail","inputs","entries","declarationToSubmissionDeclaration","extensions","filter","materializeContributorSubmissionAssets","routeInputs","pinnedKeys","pinned","out","key","getPrimaryDeclarationKey","declarations","primary","d","getSubmissionAssetShape","item","_b","materialized","declarationToPickerFilters","assetType","filters","fileType","assetMatchesDeclaration","asset","_c","_d","_e","_f","metadata","ext","type","expected","getPrimaryAssetRef","refs","ref","toRouteInputAssets"],"mappings":"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","file":"chunk-5CKFMTWZ.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 =\n item.submission_assets &&\n Object.keys(item.submission_assets).length > 0\n ? item.submission_assets\n : materializeContributorSubmissionAssets(routeInputs, pinnedKeys);\n const contributorKeys = Object.keys(materialized);\n return {\n contributorKeys,\n declarations: materialized,\n pinned,\n };\n }\n\n const declarations = item.submission_assets ?? {};\n return {\n contributorKeys: Object.keys(declarations),\n declarations,\n pinned,\n };\n}\n\nexport function declarationToPickerFilters(\n declaration: RouteInputDeclarationLike | QuestSubmissionAssetDeclaration | null | undefined\n): AssetDeclarationPickerFilters | null {\n if (!declaration) return null;\n const assetType = declaration.asset_type || undefined;\n if (!assetType) return null;\n\n const filters: AssetDeclarationPickerFilters = {\n assetType,\n hasConstraints: false,\n };\n\n if (assetType === \"file\") {\n const extensions = readDeclarationExtensions(declaration);\n if (extensions.length > 0) {\n filters.extensions = extensions;\n filters.hasConstraints = true;\n }\n const fileType = readDeclarationFilter(declaration);\n if (fileType) {\n filters.fileType = fileType;\n filters.hasConstraints = true;\n }\n }\n\n return filters;\n}\n\nexport function assetMatchesDeclaration(\n asset:\n | {\n assetType?: string | null;\n asset_type?: string | null;\n asset?: { metadata?: Record<string, unknown> } | null;\n }\n | null\n | undefined,\n declaration: RouteInputDeclarationLike | QuestSubmissionAssetDeclaration | null | undefined\n): boolean {\n if (!declaration || !asset) return true;\n const filters = declarationToPickerFilters(declaration);\n if (!filters) return true;\n\n const assetType = asset.assetType ?? asset.asset_type;\n if (filters.assetType && assetType !== filters.assetType) return false;\n\n if (filters.assetType === \"file\") {\n const metadata = asset.asset?.metadata ?? {};\n if (filters.extensions && filters.extensions.length > 0) {\n const ext = String(metadata.extension ?? \"\").toLowerCase();\n if (!ext || !filters.extensions.includes(ext)) return false;\n }\n if (filters.fileType) {\n const type = String(metadata.file_type ?? metadata.type ?? \"\")\n .toLowerCase()\n .split(\"/\")[0];\n const expected = filters.fileType.toLowerCase();\n if (type && expected && !type.includes(expected) && type !== expected) {\n return false;\n }\n }\n }\n\n return true;\n}\n\nexport function getPrimaryAssetRef(\n refs: KeyedAssetRefs | null | undefined,\n declarations?: Record<string, QuestSubmissionAssetDeclaration> | null\n): { key: string; asset_id: string; asset_type: string } | null {\n if (!refs || !Object.keys(refs).length) return null;\n const key =\n (declarations && getPrimaryDeclarationKey(declarations)) ||\n Object.keys(refs)[0];\n const ref = refs[key];\n if (!ref) return null;\n return { key, asset_id: ref.asset_id, asset_type: ref.asset_type };\n}\n\nexport function toRouteInputAssets(\n refs: KeyedAssetRefs | null | undefined\n): Record<string, { assetId: string; assetType: string }> {\n if (!refs) return {};\n return Object.fromEntries(\n Object.entries(refs).map(([key, ref]) => [\n key,\n { assetId: ref.asset_id, assetType: ref.asset_type },\n ])\n );\n}\n\n/** @deprecated Use declarationToPickerFilters */\nexport type EvalSubmissionFilters = AssetDeclarationPickerFilters;\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
'use strict';var chunkYFEGRZXL_cjs=require('./chunk-YFEGRZXL.cjs'),zod=require('zod');var n=zod.enum(["public","private","organization","monetized"]),h=zod.enum(["image","video","audio"]),u=zod.object({user:zod.optional(zod.uuid()),team:zod.optional(zod.uuid()),visibility:zod.optional(n),top_level_only:zod.optional(zod.boolean()),asset_type:zod.optional(zod.enum(["file","dataset"])),file_type:zod.optional(h),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())}),F=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([n,zod.array(n)])),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()))}),_=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=n;exports.b=h;exports.c=u;exports.d=F;exports.e=_;//# sourceMappingURL=chunk-5SC4M4E3.cjs.map
|
|
2
|
+
//# sourceMappingURL=chunk-5SC4M4E3.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schema/asset-filters.ts"],"names":["AssetFilterVisibilitySchema","zodEnum","AssetFilterFileTypeSchema","AssetFiltersSchema","object","optional","uuid","boolean","string","HttpMethodSchema","StatusSchema","SourceSchema","AssetSearchFiltersSchema","union","AssetTypeSchema","array","AssetMetadataFiltersSchema"],"mappings":"sFAoBA,IAAMA,EAA8BC,QAAQ,CAAA,CAC1C,QACA,CAAA,SAAA,CACA,cACA,CAAA,WACF,CAAC,CAGKC,CAAAA,CAAAA,CAA4BD,QAAQ,CAAA,CAAC,OAAS,CAAA,OAAA,CAAS,OAAO,CAAC,CAAA,CAO/DE,CAAqBC,CAAAA,UAAAA,CAAO,CAChC,IAAA,CAAMC,aAASC,QAAK,EAAC,CACrB,CAAA,IAAA,CAAMD,YAASC,CAAAA,QAAAA,EAAM,CACrB,CAAA,UAAA,CAAYD,YAASL,CAAAA,CAA2B,CAChD,CAAA,cAAA,CAAgBK,aAASE,WAAQ,EAAC,EAElC,UAAYF,CAAAA,YAAAA,CAASJ,SAAQ,CAAC,MAAA,CAAQ,SAAS,CAAC,CAAC,CAAA,CACjD,UAAWI,YAASH,CAAAA,CAAyB,CAC7C,CAAA,SAAA,CAAWG,YAASG,CAAAA,UAAAA,EAAQ,CAC5B,CAAA,OAAA,CAASH,YAASG,CAAAA,UAAAA,EAAQ,CAAA,CAC1B,OAAQH,YAASI,CAAAA,mBAAgB,CACjC,CAAA,MAAA,CAAQJ,YAASK,CAAAA,mBAAY,EAC7B,MAAQL,CAAAA,YAAAA,CAASM,mBAAY,CAAA,CAC7B,aAAeN,CAAAA,YAAAA,CAASE,aAAS,CAAA,CACjC,YAAcF,CAAAA,YAAAA,CAASE,WAAQ,EAAC,CAClC,CAAC,CAAA,CAMKK,CAA2BR,CAAAA,UAAAA,CAAO,CACtC,UAAA,CAAYC,aAASQ,SAAM,CAAA,CAACC,oBAAiBC,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,UAAM,CAACb,CAAAA,CAA6Be,SAAMf,CAAAA,CAA2B,CAAC,CAAC,CACzE,CACA,CAAA,UAAA,CAAYK,YAASG,CAAAA,UAAAA,EAAQ,CAAA,CAC7B,OAAQH,YAASM,CAAAA,mBAAY,CAC7B,CAAA,cAAA,CAAgBN,YAASE,CAAAA,WAAAA,EAAS,CAClC,CAAA,MAAA,CAAQF,YAASI,CAAAA,mBAAgB,CACjC,CAAA,MAAA,CAAQJ,aAASK,mBAAY,CAAA,CAE7B,eAAiBL,CAAAA,YAAAA,CAASC,QAAK,EAAC,EAChC,eAAiBD,CAAAA,YAAAA,CAASU,SAAMT,CAAAA,QAAAA,EAAM,CAAC,CACzC,CAAC,CAAA,CAMKU,CAA6BZ,CAAAA,UAAAA,CAAO,CACxC,SAAA,CAAWC,aAASG,UAAO,EAAC,CAC5B,CAAA,SAAA,CAAWH,YAASQ,CAAAA,SAAAA,CAAM,CAACL,UAAO,EAAA,CAAGO,SAAMP,CAAAA,UAAAA,EAAQ,CAAC,CAAC,CAAC,CACxD,CAAC,CAAA,CAAE,QAASH,CAAAA,YAAAA,CAASQ,UAAM,CAACL,UAAAA,EAAUO,CAAAA,SAAAA,CAAMP,UAAO,EAAC,EAAGD,WAAQ,EAAC,CAAC,CAAC,CAAC","file":"chunk-
|
|
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":"sFAoBA,IAAMA,EAA8BC,QAAQ,CAAA,CAC1C,QACA,CAAA,SAAA,CACA,cACA,CAAA,WACF,CAAC,CAGKC,CAAAA,CAAAA,CAA4BD,QAAQ,CAAA,CAAC,OAAS,CAAA,OAAA,CAAS,OAAO,CAAC,CAAA,CAO/DE,CAAqBC,CAAAA,UAAAA,CAAO,CAChC,IAAA,CAAMC,aAASC,QAAK,EAAC,CACrB,CAAA,IAAA,CAAMD,YAASC,CAAAA,QAAAA,EAAM,CACrB,CAAA,UAAA,CAAYD,YAASL,CAAAA,CAA2B,CAChD,CAAA,cAAA,CAAgBK,aAASE,WAAQ,EAAC,EAElC,UAAYF,CAAAA,YAAAA,CAASJ,SAAQ,CAAC,MAAA,CAAQ,SAAS,CAAC,CAAC,CAAA,CACjD,UAAWI,YAASH,CAAAA,CAAyB,CAC7C,CAAA,SAAA,CAAWG,YAASG,CAAAA,UAAAA,EAAQ,CAC5B,CAAA,OAAA,CAASH,YAASG,CAAAA,UAAAA,EAAQ,CAAA,CAC1B,OAAQH,YAASI,CAAAA,mBAAgB,CACjC,CAAA,MAAA,CAAQJ,YAASK,CAAAA,mBAAY,EAC7B,MAAQL,CAAAA,YAAAA,CAASM,mBAAY,CAAA,CAC7B,aAAeN,CAAAA,YAAAA,CAASE,aAAS,CAAA,CACjC,YAAcF,CAAAA,YAAAA,CAASE,WAAQ,EAAC,CAClC,CAAC,CAAA,CAMKK,CAA2BR,CAAAA,UAAAA,CAAO,CACtC,UAAA,CAAYC,aAASQ,SAAM,CAAA,CAACC,oBAAiBC,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,UAAM,CAACb,CAAAA,CAA6Be,SAAMf,CAAAA,CAA2B,CAAC,CAAC,CACzE,CACA,CAAA,UAAA,CAAYK,YAASG,CAAAA,UAAAA,EAAQ,CAAA,CAC7B,OAAQH,YAASM,CAAAA,mBAAY,CAC7B,CAAA,cAAA,CAAgBN,YAASE,CAAAA,WAAAA,EAAS,CAClC,CAAA,MAAA,CAAQF,YAASI,CAAAA,mBAAgB,CACjC,CAAA,MAAA,CAAQJ,aAASK,mBAAY,CAAA,CAE7B,eAAiBL,CAAAA,YAAAA,CAASC,QAAK,EAAC,EAChC,eAAiBD,CAAAA,YAAAA,CAASU,SAAMT,CAAAA,QAAAA,EAAM,CAAC,CACzC,CAAC,CAAA,CAMKU,CAA6BZ,CAAAA,UAAAA,CAAO,CACxC,SAAA,CAAWC,aAASG,UAAO,EAAC,CAC5B,CAAA,SAAA,CAAWH,YAASQ,CAAAA,SAAAA,CAAM,CAACL,UAAO,EAAA,CAAGO,SAAMP,CAAAA,UAAAA,EAAQ,CAAC,CAAC,CAAC,CACxD,CAAC,CAAA,CAAE,QAASH,CAAAA,YAAAA,CAASQ,UAAM,CAACL,UAAAA,EAAUO,CAAAA,SAAAA,CAAMP,UAAO,EAAC,EAAGD,WAAQ,EAAC,CAAC,CAAC,CAAC","file":"chunk-5SC4M4E3.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});\n\n/**\n * Wire-format `metadata_filters` for file-oriented search\n * (`file_type`, `extension`, and arbitrary metadata keys).\n */\nconst AssetMetadataFiltersSchema = object({\n file_type: optional(string()),\n extension: optional(union([string(), array(string())])),\n}).catchall(optional(union([string(), array(string()), boolean()])));\n\nexport {\n AssetFilterVisibilitySchema,\n AssetFilterFileTypeSchema,\n AssetFiltersSchema,\n AssetSearchFiltersSchema,\n AssetMetadataFiltersSchema,\n};\n\nexport type AssetFilterVisibility = z.infer<typeof AssetFilterVisibilitySchema>;\nexport type AssetFilterFileType = z.infer<typeof AssetFilterFileTypeSchema>;\nexport type AssetFilters = z.infer<typeof AssetFiltersSchema>;\nexport type AssetSearchFilters = z.infer<typeof AssetSearchFiltersSchema>;\nexport type AssetMetadataFilters = z.infer<typeof AssetMetadataFiltersSchema>;\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {b,f,h,a as a$1}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {b,f,h,a as a$1}from'./chunk-GX6RCMZR.js';import {b as b$1}from'./chunk-G6GCUGMM.js';import {a}from'./chunk-33C7IDRP.js';import {a as a$2}from'./chunk-42ADEGDM.js';import {lazy,object,optional,string,array,record,any,literal,nullable,number}from'zod';var x=lazy(()=>object({type:string(),content:optional(array(x)),attrs:optional(record(string(),any())),marks:optional(array(object({type:string(),attrs:optional(record(string(),any()))}))),text:optional(string())})),i=object({type:literal("doc"),content:array(x)}),z=object({json:i,text:string()}).default({json:{type:"doc",content:[]},text:""}),C=object({}),_=C.extend(b.partial().shape),d=f.extend({name:nullable(string()),asset_type:a.refine(t=>["post","comment"].includes(t)),metadata:_,preview:i.default({type:"doc",content:[]}),content:z}),L=h.extend({asset_type:literal("post").default("post"),name:string().optional().nullable().default("").transform(t=>t==null?void 0:t.trim()).transform(t=>t||null),preview:i}).transform(t=>a$1(t)),R=d.extend({content:optional(nullable(z.default({json:{type:"doc",content:[]},text:""}))),reactions:array(record(string(),any())).default([]),views:number().default(0),commentCount:number().default(0),assets:optional(nullable(array(f.partial()))),users:optional(nullable(array(b$1.partial()))),actions:optional(nullable(array(a$2)))}),M=array(R),U=array(d),Z=d.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,content:true,organization:true,user:true,team:true,slug:true,is_pinned_in_team:true}).extend({last_updated:string().default(()=>new Date().toISOString())}).transform(t=>a$1(t));export{i as a,z as b,d as c,L as d,R as e,M as f,U as g,Z as h};//# sourceMappingURL=chunk-6OO4SOWL.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-6OO4SOWL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schema/posts.ts"],"names":["TipTapNode","lazy","object","string","optional","array","record","any","TipTapSchema","literal","ContentSchema","BasePostMetadataSchema","PostMetadataSchema","AssetMetadataSchema","PostSchema","AssetSchema","nullable","AssetTypeSchema","x","CreatePostSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","ReadPostSchema","number","ProfileSchema","ContentActionRefSchema","ReadPostsSchema","ListPostsSchema","UpdatePostSchema"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/schema/posts.ts"],"names":["TipTapNode","lazy","object","string","optional","array","record","any","TipTapSchema","literal","ContentSchema","BasePostMetadataSchema","PostMetadataSchema","AssetMetadataSchema","PostSchema","AssetSchema","nullable","AssetTypeSchema","x","CreatePostSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","ReadPostSchema","number","ProfileSchema","ContentActionRefSchema","ReadPostsSchema","ListPostsSchema","UpdatePostSchema"],"mappings":"sQA0BMA,CAA2BC,CAAAA,IAAAA,CAAK,IACpCC,MAAAA,CAAO,CACL,IAAMC,CAAAA,MAAAA,EACN,CAAA,OAAA,CAASC,SAASC,KAAML,CAAAA,CAAU,CAAC,CACnC,CAAA,KAAA,CAAOI,SAASE,MAAOH,CAAAA,MAAAA,EAAUI,CAAAA,GAAAA,EAAK,CAAC,CAAA,CACvC,KAAOH,CAAAA,QAAAA,CACLC,MACEH,MAAO,CAAA,CACL,IAAMC,CAAAA,MAAAA,GACN,KAAOC,CAAAA,QAAAA,CAASE,OAAOH,MAAO,EAAA,CAAGI,KAAK,CAAC,CACzC,CAAC,CACH,CACF,CAAA,CACA,KAAMH,QAASD,CAAAA,MAAAA,EAAQ,CACzB,CAAC,CACH,CAAA,CAEMK,EAAeN,MAAO,CAAA,CAC1B,KAAMO,OAAQ,CAAA,KAAK,EACnB,OAASJ,CAAAA,KAAAA,CAAML,CAAU,CAC3B,CAAC,CAEKU,CAAAA,CAAAA,CAAgBR,MAAO,CAAA,CAC3B,KAAMM,CACN,CAAA,IAAA,CAAML,MAAO,EACf,CAAC,CAAE,CAAA,OAAA,CAAQ,CAAE,IAAM,CAAA,CAAE,KAAM,KAAO,CAAA,OAAA,CAAS,EAAG,EAAG,IAAM,CAAA,EAAG,CAAC,CAErDQ,CAAAA,CAAAA,CAAyBT,OAAO,EAAE,CAElCU,CAAAA,CAAAA,CAAqBD,EAAuB,MAChDE,CAAAA,CAAAA,CAAoB,SAAU,CAAA,KAChC,EAEMC,CAAaC,CAAAA,CAAAA,CAAY,MAAO,CAAA,CACpC,KAAMC,QAASb,CAAAA,MAAAA,EAAQ,CAAA,CACvB,WAAYc,CAAgB,CAAA,MAAA,CAAQC,CAAM,EAAA,CAAC,OAAQ,SAAS,CAAA,CAAE,SAASA,CAAC,CAAC,EACzE,QAAUN,CAAAA,CAAAA,CAEV,OAASJ,CAAAA,CAAAA,CAAa,QAAQ,CAAE,IAAA,CAAM,MAAO,OAAS,CAAA,EAAG,CAAC,CAAA,CAC1D,OAASE,CAAAA,CAEX,CAAC,CAEKS,CAAAA,CAAAA,CAAmBC,EAAkB,MAAO,CAAA,CAChD,WAAYX,OAAQ,CAAA,MAAM,CAAE,CAAA,OAAA,CAAQ,MAAM,CAC1C,CAAA,IAAA,CAAMN,MAAO,EAAA,CACV,UACA,CAAA,QAAA,EACA,CAAA,OAAA,CAAQ,EAAE,CACV,CAAA,SAAA,CAAWe,GAAMA,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAG,IAAM,EAAA,CAAA,CAC1B,SAAWA,CAAAA,CAAAA,EAAMA,GAAK,IAAI,CAAA,CAC7B,QAASV,CACX,CAAC,EAAE,SAAWa,CAAAA,CAAAA,EAAUC,GAA+BD,CAAAA,CAAK,CAAC,CAEvDE,CAAAA,CAAAA,CAAiBT,EAAW,MAAO,CAAA,CACvC,QAASV,QACPY,CAAAA,QAAAA,CACEN,CAAc,CAAA,OAAA,CAAQ,CACpB,IAAM,CAAA,CAAE,IAAM,CAAA,KAAA,CAAO,QAAS,EAAG,CACjC,CAAA,IAAA,CAAM,EACR,CAAC,CACH,CACF,CACA,CAAA,SAAA,CAAWL,MAAMC,MAAOH,CAAAA,MAAAA,EAAUI,CAAAA,GAAAA,EAAK,CAAC,CAAA,CAAE,QAAQ,EAAE,EACpD,KAAOiB,CAAAA,MAAAA,EAAS,CAAA,OAAA,CAAQ,CAAC,CACzB,CAAA,YAAA,CAAcA,QAAS,CAAA,OAAA,CAAQ,CAAC,CAEhC,CAAA,MAAA,CAAQpB,QAASY,CAAAA,QAAAA,CAASX,MAAMU,CAAY,CAAA,OAAA,EAAS,CAAC,CAAC,CACvD,CAAA,KAAA,CAAOX,QAASY,CAAAA,QAAAA,CAASX,MAAMoB,GAAc,CAAA,OAAA,EAAS,CAAC,CAAC,EACxD,OAASrB,CAAAA,QAAAA,CAASY,QAASX,CAAAA,KAAAA,CAAMqB,GAAsB,CAAC,CAAC,CAG3D,CAAC,CAAA,CAEKC,EAAkBtB,KAAMkB,CAAAA,CAAc,CAEtCK,CAAAA,CAAAA,CAAkBvB,MAAMS,CAAU,CAAA,CAElCe,EAAmBf,CAAW,CAAA,OAAA,GACjC,IAAK,CAAA,CACJ,OAAS,CAAA,IAAA,CACT,GAAI,IACJ,CAAA,UAAA,CAAY,IACZ,CAAA,YAAA,CAAc,KACd,OAAS,CAAA,IAAA,CACT,YAAc,CAAA,IAAA,CACd,KAAM,IACN,CAAA,IAAA,CAAM,KACN,IAAM,CAAA,IAAA,CACN,kBAAmB,IACrB,CAAC,CACA,CAAA,MAAA,CAAO,CACN,YAAcX,CAAAA,MAAAA,GAAS,OAAQ,CAAA,IAAM,IAAI,IAAK,EAAA,CAAE,WAAY,EAAC,CAC/D,CAAC,CAAA,CACA,UAAWkB,CAAUC,EAAAA,GAAAA,CAA+BD,CAAK,CAAC","file":"chunk-6OO4SOWL.js","sourcesContent":["import {\n object,\n string,\n number,\n array,\n lazy,\n literal,\n record,\n type z,\n any,\n optional,\n nullable,\n boolean,\n type ZodType\n} from \"zod\";\n\nimport {\n AssetMetadataSchema,\n AssetSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { AssetTypeSchema } from \"./common\";\nimport { ContentActionRefSchema } from \"./content-refs\";\nimport { ProfileSchema } from \"./users\";\n\nconst TipTapNode: ZodType<any> = lazy(() =>\n object({\n type: string(),\n content: optional(array(TipTapNode)),\n attrs: optional(record(string(), any())),\n marks: optional(\n array(\n object({\n type: string(),\n attrs: optional(record(string(), any())),\n })\n )\n ),\n text: optional(string()), // For text nodes\n })\n);\n\nconst TipTapSchema = object({\n type: literal(\"doc\"),\n content: array(TipTapNode),\n});\n\nconst ContentSchema = object({\n json: TipTapSchema,\n text: string(),\n}).default({ json: { type: \"doc\", content: [] }, text: \"\" });\n\nconst BasePostMetadataSchema = object({})\n\nconst PostMetadataSchema = BasePostMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst PostSchema = AssetSchema.extend({\n name: nullable(string()),\n asset_type: AssetTypeSchema.refine((x) => [\"post\", \"comment\"].includes(x)),\n metadata: PostMetadataSchema,\n // TODO: make this ContentSchema\n preview: TipTapSchema.default({ type: \"doc\", content: [] }),\n content: ContentSchema,\n\n});\n\nconst CreatePostSchema = CreateAssetSchema.extend({\n asset_type: literal(\"post\").default(\"post\"),\n name: string()\n .optional()\n .nullable()\n .default(\"\")\n .transform((x) => x?.trim())\n .transform((x) => x || null),\n preview: TipTapSchema,\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst ReadPostSchema = PostSchema.extend({\n content: optional(\n nullable(\n ContentSchema.default({\n json: { type: \"doc\", content: [] },\n text: \"\",\n })\n )\n ),\n reactions: array(record(string(), any())).default([]),\n views: number().default(0),\n commentCount: number().default(0),\n // Resolved from content embeds / links at read time\n assets: optional(nullable(array(AssetSchema.partial()))),\n users: optional(nullable(array(ProfileSchema.partial()))),\n actions: optional(nullable(array(ContentActionRefSchema))),\n // We have this on asset now\n // parent: ConnectionSchema.optional().nullable(),\n});\n\nconst ReadPostsSchema = array(ReadPostSchema);\n\nconst ListPostsSchema = array(PostSchema);\n\nconst UpdatePostSchema = PostSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n content: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n })\n .extend({\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nexport {\n TipTapSchema,\n ContentSchema,\n PostSchema,\n CreatePostSchema,\n ListPostsSchema,\n ReadPostSchema,\n ReadPostsSchema,\n UpdatePostSchema,\n};\nexport type Post = z.infer<typeof PostSchema>;\nexport type CreatePost = z.infer<typeof CreatePostSchema>;\nexport type ListPosts = z.infer<typeof ListPostsSchema>;\nexport type ReadPost = z.infer<typeof ReadPostSchema>;\nexport type ReadPosts = z.infer<typeof ReadPostsSchema>;\nexport type UpdatePost = z.infer<typeof UpdatePostSchema>;\nexport type Content = z.infer<typeof ContentSchema>;\nexport type TipTap = z.infer<typeof TipTapSchema>;\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
'use strict';var chunkRRDGLT3N_cjs=require('./chunk-RRDGLT3N.cjs'),chunkBELCP7OL_cjs=require('./chunk-BELCP7OL.cjs'),chunkL6SVUDFH_cjs=require('./chunk-L6SVUDFH.cjs'),chunkYFEGRZXL_cjs=require('./chunk-YFEGRZXL.cjs'),chunk7HF5VHUN_cjs=require('./chunk-7HF5VHUN.cjs'),zod=require('zod'),uuidv7=require('uuidv7');var C=a=>a.org_id===chunk7HF5VHUN_cjs.b&&a.visibility==="organization"?{...a,visibility:"public"}:a,v=zod.object({source:zod.optional(zod.nullable(zod.string())),reply_to_comment_id:zod.optional(zod.nullable(zod.string()))}),O=zod.enum(["IsSupplementTo","IsDerivedFrom","References","IsVariantFormOf","IsIdenticalTo"]),D=zod.object({doi:zod.optional(zod.nullable(zod.string())),title:zod.optional(zod.nullable(zod.string())),authors:zod.optional(zod.nullable(zod.array(zod.string()))),year:zod.optional(zod.nullable(zod.number())),venue:zod.optional(zod.nullable(zod.string())),url:zod.optional(zod.nullable(zod.string())),bibtex:zod.optional(zod.nullable(zod.string())),source:zod.optional(zod.nullable(zod.string()))}),d=zod.object({originality:zod.optional(zod.enum(["original","derivative","third-party"])).default("original"),external_url:zod.optional(zod.nullable(zod.string())),github_url:zod.optional(zod.nullable(zod.string())),paper_url:zod.optional(zod.nullable(zod.string())),doi_url:zod.optional(zod.nullable(zod.string())),citation:zod.optional(zod.nullable(D)),relation_type:zod.optional(zod.nullable(O)),doi:zod.optional(zod.nullable(zod.string()))}),T=zod.object({id:zod.uuid(),user_id:zod.uuid(),user:zod.optional(chunkL6SVUDFH_cjs.b.partial()),org_id:zod.uuid(),organization:zod.optional(chunkBELCP7OL_cjs.c.partial()),team_id:zod.uuid(),team:zod.optional(chunkRRDGLT3N_cjs.a.partial()),parent_id:zod.optional(zod.nullable(zod.uuid())),parent:zod.optional(zod.record(zod.string(),zod.any())),license_id:zod.string(),license:zod.optional(zod.record(zod.string(),zod.any())),asset_type:chunkYFEGRZXL_cjs.a,name:zod.string(),name_url_slug:zod.optional(zod.nullable(zod.string())),slug:zod.optional(zod.nullable(zod.string())),description:zod.optional(zod.nullable(zod.object({json:zod.record(zod.string(),zod.any()),text:zod.string()}))),visibility:chunkYFEGRZXL_cjs.b,monetization:chunkYFEGRZXL_cjs.d,price:zod.optional(zod.nullable(zod.number())),unit_cost:zod.optional(zod.nullable(zod.number())),cost_accounting:zod.optional(zod.nullable(zod.enum(["fixed","variable"]))),cost_unit:zod.optional(zod.nullable(zod.string())),price_currency:zod.optional(chunkYFEGRZXL_cjs.e),stripe_product_id:zod.optional(zod.nullable(zod.string())),stripe_price_id:zod.optional(zod.nullable(zod.string())),stripe_meter_id:zod.optional(zod.nullable(zod.string())),metadata:zod.optional(zod.nullable(v)),attribution:d,preview:zod.optional(zod.nullable(zod.array(zod.record(zod.string(),zod.any())))),state:chunkYFEGRZXL_cjs.j,source:chunkYFEGRZXL_cjs.k,is_pinned_in_team:zod.optional(zod.boolean().default(false)),created_at:zod.string(),last_updated:zod.string()}),R={originality:"original"},G=T.partial().omit({user_id:true,user:true,organization:true,license:true,team:true,slug:true,is_pinned_in_team:true}).extend({id:zod.uuid().default(()=>uuidv7.uuidv7()),team_id:zod.nullable(zod.uuid()).default(chunk7HF5VHUN_cjs.c),org_id:zod.nullable(zod.uuid()).default(chunk7HF5VHUN_cjs.b),name:zod.string().min(1,{message:"Name cannot be empty"}).max(255,{message:"Name must be less than 255 characters"}),name_url_slug:zod.optional(zod.nullable(zod.string())),state:chunkYFEGRZXL_cjs.j.optional().default("success"),source:chunkYFEGRZXL_cjs.k.default("web"),visibility:chunkYFEGRZXL_cjs.b.optional().default("public"),attribution:zod.optional(zod.nullable(d)).transform(a=>d.parse(a!=null?a:R)),created_at:zod.string().default(()=>new Date().toISOString()),last_updated:zod.string().default(()=>new Date().toISOString())}),N=T.partial().omit({id:true,user_id:true,created_at:true,user:true,organization:true,team:true,slug:true,is_pinned_in_team:true}).transform(a=>C(a));exports.a=C;exports.b=v;exports.c=O;exports.d=D;exports.e=d;exports.f=T;exports.g=R;exports.h=G;exports.i=N;//# sourceMappingURL=chunk-7R5EIIIR.cjs.map
|
|
2
|
+
//# sourceMappingURL=chunk-7R5EIIIR.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schema/assets.ts"],"names":["normalizeAssetConfigForParsing","input","GLOBAL_ORG_ID","AssetMetadataSchema","object","optional","nullable","string","RelationTypeSchema","zodEnum","CitationSchema","array","number","AttributionSchema","AssetSchema","uuid","ProfileSchema","OrganizationsSchema","TeamSchema","record","any","AssetTypeSchema","VisibilitySchema","MonetizationSchema","PriceCurrencySchema","StatusSchema","SourceSchema","boolean","DEFAULT_ATTRIBUTION","CreateAssetSchema","uuidv7","GLOBAL_TEAM_ID","value","UpdateAssetSchema"],"mappings":"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","file":"chunk-TB7MTWMO.cjs","sourcesContent":["import {\n object,\n string,\n uuid,\n number,\n array,\n enum as zodEnum,\n nullable,\n optional,\n boolean,\n record,\n type z,\n any\n} from \"zod\";\n\nimport {\n AssetTypeSchema,\n MonetizationSchema,\n PriceCurrencySchema,\n StatusSchema,\n SourceSchema,\n VisibilitySchema,\n} from \"./common\";\nimport { OrganizationsSchema } from \"./organizations\";\nimport { TeamSchema } from \"./teams\";\nimport { ProfileSchema } from \"./users\";\nimport { uuidv7 } from \"uuidv7\";\nimport { GLOBAL_ORG_ID, GLOBAL_TEAM_ID } from \"./constants\";\n\ntype AssetConfigInput = {\n org_id?: string | null;\n visibility?: z.infer<typeof VisibilitySchema> | null;\n};\n\nconst normalizeAssetConfigForParsing = <T extends AssetConfigInput>(\n input: T\n): T => {\n if (input.org_id === GLOBAL_ORG_ID && input.visibility === \"organization\") {\n return { ...input, visibility: \"public\" as T[\"visibility\"] };\n }\n return input;\n};\n\n/** Type-specific / incidental metadata only (not attribution). */\nconst AssetMetadataSchema = object({\n source: optional(nullable(string())),\n /** When present on a comment, the id of the comment the user directly replied to (for reply-to-reply; parent_id is the top-level comment). */\n reply_to_comment_id: optional(nullable(string())),\n})\n\nconst RelationTypeSchema = zodEnum([\n \"IsSupplementTo\",\n \"IsDerivedFrom\",\n \"References\",\n \"IsVariantFormOf\",\n \"IsIdenticalTo\",\n])\n\nconst CitationSchema = object({\n doi: optional(nullable(string())),\n title: optional(nullable(string())),\n authors: optional(nullable(array(string()))),\n year: optional(nullable(number())),\n venue: optional(nullable(string())),\n url: optional(nullable(string())),\n bibtex: optional(nullable(string())),\n source: optional(nullable(string())),\n})\n\n/** Provenance, related-work citation, and (later) this asset's minted DOI. */\nconst AttributionSchema = object({\n originality: optional(\n zodEnum([\"original\", \"derivative\", \"third-party\"])\n ).default(\"original\"),\n external_url: optional(nullable(string())),\n github_url: optional(nullable(string())),\n paper_url: optional(nullable(string())),\n doi_url: optional(nullable(string())),\n citation: optional(nullable(CitationSchema)),\n relation_type: optional(nullable(RelationTypeSchema)),\n /** This asset's DOI — reserved for minting; never the related paper's DOI. */\n doi: optional(nullable(string())),\n})\n\nconst AssetSchema = object({\n id: uuid(),\n user_id: uuid(),\n user: optional(ProfileSchema.partial()),\n org_id: uuid(),\n organization: optional(OrganizationsSchema.partial()),\n team_id: uuid(),\n team: optional(TeamSchema.partial()),\n parent_id: optional(nullable(uuid())),\n parent: optional(record(string(), any())),\n license_id: string(),\n license: optional(record(string(), any())),\n asset_type: AssetTypeSchema,\n name: string(),\n name_url_slug: optional(nullable(string())),\n slug: optional(nullable(string())),\n // Rich description: store both editor json and plain text\n description: optional(\n nullable(\n object({\n json: record(string(), any()),\n text: string(),\n })\n )\n ),\n visibility: VisibilitySchema,\n monetization: MonetizationSchema,\n price: optional(nullable(number())),\n unit_cost: optional(nullable(number())),\n cost_accounting: optional(nullable(zodEnum([\"fixed\", \"variable\"]))),\n cost_unit: optional(nullable(string())),\n price_currency: optional(PriceCurrencySchema),\n stripe_product_id: optional(nullable(string())),\n stripe_price_id: optional(nullable(string())),\n stripe_meter_id: optional(nullable(string())),\n metadata: optional(nullable(AssetMetadataSchema)),\n // NOT NULL in DB; always present after 20260720_assets_attribution.\n attribution: AttributionSchema,\n preview: optional(nullable(array(record(string(), any())))),\n state: StatusSchema,\n source: SourceSchema,\n is_pinned_in_team: optional(boolean().default(false)),\n created_at: string(),\n last_updated: string(),\n});\n\nconst DEFAULT_ATTRIBUTION = { originality: \"original\" as const };\n\nconst CreateAssetSchema = AssetSchema.partial()\n .omit({\n user_id: true,\n user: true,\n organization: true,\n license: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n })\n .extend({\n id: uuid().default(() => uuidv7()),\n team_id: nullable(uuid())\n .default(GLOBAL_TEAM_ID),\n org_id: nullable(uuid())\n .default(GLOBAL_ORG_ID),\n name: string()\n .min(1, { message: \"Name cannot be empty\" })\n .max(255, { message: \"Name must be less than 255 characters\" }),\n name_url_slug: optional(nullable(string())),\n state: StatusSchema.optional().default(\"success\"),\n source: SourceSchema.default(\"web\"),\n visibility: VisibilitySchema.optional().default(\"public\"),\n // Column is NOT NULL; coerce omitted/null so create_asset_with_content\n // never inserts an explicit null (which bypasses the DB default).\n attribution: optional(nullable(AttributionSchema)).transform((value) =>\n AttributionSchema.parse(value ?? DEFAULT_ATTRIBUTION)\n ),\n created_at: string().default(() => new Date().toISOString()),\n last_updated: string().default(() => new Date().toISOString()),\n });\n\nconst UpdateAssetSchema = AssetSchema.partial().omit({\n id: true,\n user_id: true,\n created_at: true,\n user: true,\n organization: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nexport {\n AssetMetadataSchema,\n AttributionSchema,\n CitationSchema,\n RelationTypeSchema,\n AssetSchema,\n CreateAssetSchema,\n UpdateAssetSchema,\n DEFAULT_ATTRIBUTION,\n normalizeAssetConfigForParsing,\n};\nexport type AssetMetadata = z.infer<typeof AssetMetadataSchema>;\nexport type Attribution = z.infer<typeof AttributionSchema>;\nexport type Citation = z.infer<typeof CitationSchema>;\nexport type RelationType = z.infer<typeof RelationTypeSchema>;\nexport type Asset = z.infer<typeof AssetSchema>;\nexport type CreateAsset = z.infer<typeof CreateAssetSchema>;\nexport type UpdateAsset = z.infer<typeof UpdateAssetSchema>;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/schema/assets.ts"],"names":["normalizeAssetConfigForParsing","input","GLOBAL_ORG_ID","AssetMetadataSchema","object","optional","nullable","string","RelationTypeSchema","zodEnum","CitationSchema","array","number","AttributionSchema","AssetSchema","uuid","ProfileSchema","OrganizationsSchema","TeamSchema","record","any","AssetTypeSchema","VisibilitySchema","MonetizationSchema","PriceCurrencySchema","StatusSchema","SourceSchema","boolean","DEFAULT_ATTRIBUTION","CreateAssetSchema","uuidv7","GLOBAL_TEAM_ID","value","UpdateAssetSchema"],"mappings":"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","file":"chunk-7R5EIIIR.cjs","sourcesContent":["import {\n object,\n string,\n uuid,\n number,\n array,\n enum as zodEnum,\n nullable,\n optional,\n boolean,\n record,\n type z,\n any\n} from \"zod\";\n\nimport {\n AssetTypeSchema,\n MonetizationSchema,\n PriceCurrencySchema,\n StatusSchema,\n SourceSchema,\n VisibilitySchema,\n} from \"./common\";\nimport { OrganizationsSchema } from \"./organizations\";\nimport { TeamSchema } from \"./teams\";\nimport { ProfileSchema } from \"./users\";\nimport { uuidv7 } from \"uuidv7\";\nimport { GLOBAL_ORG_ID, GLOBAL_TEAM_ID } from \"./constants\";\n\ntype AssetConfigInput = {\n org_id?: string | null;\n visibility?: z.infer<typeof VisibilitySchema> | null;\n};\n\nconst normalizeAssetConfigForParsing = <T extends AssetConfigInput>(\n input: T\n): T => {\n if (input.org_id === GLOBAL_ORG_ID && input.visibility === \"organization\") {\n return { ...input, visibility: \"public\" as T[\"visibility\"] };\n }\n return input;\n};\n\n/** Type-specific / incidental metadata only (not attribution). */\nconst AssetMetadataSchema = object({\n source: optional(nullable(string())),\n /** When present on a comment, the id of the comment the user directly replied to (for reply-to-reply; parent_id is the top-level comment). */\n reply_to_comment_id: optional(nullable(string())),\n})\n\nconst RelationTypeSchema = zodEnum([\n \"IsSupplementTo\",\n \"IsDerivedFrom\",\n \"References\",\n \"IsVariantFormOf\",\n \"IsIdenticalTo\",\n])\n\nconst CitationSchema = object({\n doi: optional(nullable(string())),\n title: optional(nullable(string())),\n authors: optional(nullable(array(string()))),\n year: optional(nullable(number())),\n venue: optional(nullable(string())),\n url: optional(nullable(string())),\n bibtex: optional(nullable(string())),\n source: optional(nullable(string())),\n})\n\n/** Provenance, related-work citation, and (later) this asset's minted DOI. */\nconst AttributionSchema = object({\n originality: optional(\n zodEnum([\"original\", \"derivative\", \"third-party\"])\n ).default(\"original\"),\n external_url: optional(nullable(string())),\n github_url: optional(nullable(string())),\n paper_url: optional(nullable(string())),\n doi_url: optional(nullable(string())),\n citation: optional(nullable(CitationSchema)),\n relation_type: optional(nullable(RelationTypeSchema)),\n /** This asset's DOI — reserved for minting; never the related paper's DOI. */\n doi: optional(nullable(string())),\n})\n\nconst AssetSchema = object({\n id: uuid(),\n user_id: uuid(),\n user: optional(ProfileSchema.partial()),\n org_id: uuid(),\n organization: optional(OrganizationsSchema.partial()),\n team_id: uuid(),\n team: optional(TeamSchema.partial()),\n parent_id: optional(nullable(uuid())),\n parent: optional(record(string(), any())),\n license_id: string(),\n license: optional(record(string(), any())),\n asset_type: AssetTypeSchema,\n name: string(),\n name_url_slug: optional(nullable(string())),\n slug: optional(nullable(string())),\n // Rich description: store both editor json and plain text\n description: optional(\n nullable(\n object({\n json: record(string(), any()),\n text: string(),\n })\n )\n ),\n visibility: VisibilitySchema,\n monetization: MonetizationSchema,\n price: optional(nullable(number())),\n unit_cost: optional(nullable(number())),\n cost_accounting: optional(nullable(zodEnum([\"fixed\", \"variable\"]))),\n cost_unit: optional(nullable(string())),\n price_currency: optional(PriceCurrencySchema),\n stripe_product_id: optional(nullable(string())),\n stripe_price_id: optional(nullable(string())),\n stripe_meter_id: optional(nullable(string())),\n metadata: optional(nullable(AssetMetadataSchema)),\n // NOT NULL in DB; always present after 20260720_assets_attribution.\n attribution: AttributionSchema,\n preview: optional(nullable(array(record(string(), any())))),\n state: StatusSchema,\n source: SourceSchema,\n is_pinned_in_team: optional(boolean().default(false)),\n created_at: string(),\n last_updated: string(),\n});\n\nconst DEFAULT_ATTRIBUTION = { originality: \"original\" as const };\n\nconst CreateAssetSchema = AssetSchema.partial()\n .omit({\n user_id: true,\n user: true,\n organization: true,\n license: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n })\n .extend({\n id: uuid().default(() => uuidv7()),\n team_id: nullable(uuid())\n .default(GLOBAL_TEAM_ID),\n org_id: nullable(uuid())\n .default(GLOBAL_ORG_ID),\n name: string()\n .min(1, { message: \"Name cannot be empty\" })\n .max(255, { message: \"Name must be less than 255 characters\" }),\n name_url_slug: optional(nullable(string())),\n state: StatusSchema.optional().default(\"success\"),\n source: SourceSchema.default(\"web\"),\n visibility: VisibilitySchema.optional().default(\"public\"),\n // Column is NOT NULL; coerce omitted/null so create_asset_with_content\n // never inserts an explicit null (which bypasses the DB default).\n attribution: optional(nullable(AttributionSchema)).transform((value) =>\n AttributionSchema.parse(value ?? DEFAULT_ATTRIBUTION)\n ),\n created_at: string().default(() => new Date().toISOString()),\n last_updated: string().default(() => new Date().toISOString()),\n });\n\nconst UpdateAssetSchema = AssetSchema.partial().omit({\n id: true,\n user_id: true,\n created_at: true,\n user: true,\n organization: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nexport {\n AssetMetadataSchema,\n AttributionSchema,\n CitationSchema,\n RelationTypeSchema,\n AssetSchema,\n CreateAssetSchema,\n UpdateAssetSchema,\n DEFAULT_ATTRIBUTION,\n normalizeAssetConfigForParsing,\n};\nexport type AssetMetadata = z.infer<typeof AssetMetadataSchema>;\nexport type Attribution = z.infer<typeof AttributionSchema>;\nexport type Citation = z.infer<typeof CitationSchema>;\nexport type RelationType = z.infer<typeof RelationTypeSchema>;\nexport type Asset = z.infer<typeof AssetSchema>;\nexport type CreateAsset = z.infer<typeof CreateAssetSchema>;\nexport type UpdateAsset = z.infer<typeof UpdateAssetSchema>;\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a,d as d$1,c}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a,d as d$1,c}from'./chunk-5CKFMTWZ.js';import {f,b,h,a as a$2}from'./chunk-GX6RCMZR.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-APZA6MIM.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-APZA6MIM.js.map
|