@ourofoundation/ouro-js 3.8.4 → 3.8.5
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/.github/workflows/publish.yml +63 -0
- package/dist/{chunk-NK4K542Q.js → chunk-33ELNWOX.js} +2 -2
- package/dist/{chunk-NK4K542Q.js.map → chunk-33ELNWOX.js.map} +1 -1
- package/dist/chunk-3PRQXWQP.js +2 -0
- package/dist/chunk-3PRQXWQP.js.map +1 -0
- package/dist/{chunk-SB4X4GDQ.js → chunk-4276I2OP.js} +2 -2
- package/dist/{chunk-SB4X4GDQ.js.map → chunk-4276I2OP.js.map} +1 -1
- package/dist/{chunk-D2VAJ55Q.cjs → chunk-6DNS4QKU.cjs} +2 -2
- package/dist/{chunk-D2VAJ55Q.cjs.map → chunk-6DNS4QKU.cjs.map} +1 -1
- package/dist/{chunk-6KQTA6I7.cjs → chunk-BR3QVFVE.cjs} +2 -2
- package/dist/{chunk-6KQTA6I7.cjs.map → chunk-BR3QVFVE.cjs.map} +1 -1
- package/dist/{chunk-MV4VXP6M.js → chunk-BYYDLMAE.js} +2 -2
- package/dist/{chunk-MV4VXP6M.js.map → chunk-BYYDLMAE.js.map} +1 -1
- package/dist/chunk-CZMKRHO4.cjs +2 -0
- package/dist/chunk-CZMKRHO4.cjs.map +1 -0
- package/dist/{chunk-XTINLMDO.js → chunk-DA7VOYUY.js} +2 -2
- package/dist/{chunk-XTINLMDO.js.map → chunk-DA7VOYUY.js.map} +1 -1
- package/dist/{chunk-KV6R6XC2.cjs → chunk-F7URSDHU.cjs} +2 -2
- package/dist/{chunk-KV6R6XC2.cjs.map → chunk-F7URSDHU.cjs.map} +1 -1
- package/dist/chunk-HJW6XNOY.js +2 -0
- package/dist/chunk-HJW6XNOY.js.map +1 -0
- package/dist/chunk-J4GKOJZZ.cjs +2 -0
- package/dist/chunk-J4GKOJZZ.cjs.map +1 -0
- package/dist/{chunk-G3IGIXKD.cjs → chunk-KE53HYHH.cjs} +2 -2
- package/dist/{chunk-G3IGIXKD.cjs.map → chunk-KE53HYHH.cjs.map} +1 -1
- package/dist/{chunk-HKU6LRRS.js → chunk-O2BXIKRA.js} +2 -2
- package/dist/{chunk-HKU6LRRS.js.map → chunk-O2BXIKRA.js.map} +1 -1
- package/dist/{chunk-KTJTOSL2.cjs → chunk-OMO4474C.cjs} +2 -2
- package/dist/{chunk-KTJTOSL2.cjs.map → chunk-OMO4474C.cjs.map} +1 -1
- package/dist/{chunk-ZBNLKRMB.js → chunk-PMOXYEAS.js} +2 -2
- package/dist/{chunk-ZBNLKRMB.js.map → chunk-PMOXYEAS.js.map} +1 -1
- package/dist/{chunk-4GP5MIEM.cjs → chunk-R52RJPI3.cjs} +2 -2
- package/dist/{chunk-4GP5MIEM.cjs.map → chunk-R52RJPI3.cjs.map} +1 -1
- package/dist/{chunk-NGPSTYQD.js → chunk-RO6NRIGU.js} +2 -2
- package/dist/{chunk-NGPSTYQD.js.map → chunk-RO6NRIGU.js.map} +1 -1
- package/dist/chunk-SUVNXKE6.js +2 -0
- package/dist/chunk-SUVNXKE6.js.map +1 -0
- package/dist/{chunk-GS5VFJ22.cjs → chunk-SZW4GHCP.cjs} +2 -2
- package/dist/{chunk-GS5VFJ22.cjs.map → chunk-SZW4GHCP.cjs.map} +1 -1
- package/dist/chunk-UBSYUTZO.cjs +2 -0
- package/dist/chunk-UBSYUTZO.cjs.map +1 -0
- package/dist/{chunk-2GABFYUS.cjs → chunk-V352KM56.cjs} +2 -2
- package/dist/{chunk-2GABFYUS.cjs.map → chunk-V352KM56.cjs.map} +1 -1
- package/dist/{chunk-4UNQYG7I.cjs → chunk-V5W6FOUA.cjs} +2 -2
- package/dist/{chunk-4UNQYG7I.cjs.map → chunk-V5W6FOUA.cjs.map} +1 -1
- package/dist/{chunk-RCUD47O3.cjs → chunk-X5KE2IW6.cjs} +2 -2
- package/dist/{chunk-RCUD47O3.cjs.map → chunk-X5KE2IW6.cjs.map} +1 -1
- package/dist/{chunk-B4OJDZY5.js → chunk-XSZPAZEE.js} +2 -2
- package/dist/{chunk-B4OJDZY5.js.map → chunk-XSZPAZEE.js.map} +1 -1
- package/dist/{chunk-XQTA6BNA.js → chunk-Y37HRTGF.js} +2 -2
- package/dist/{chunk-XQTA6BNA.js.map → chunk-Y37HRTGF.js.map} +1 -1
- package/dist/{chunk-67Q4RMP6.js → chunk-ZM7J5MCU.js} +2 -2
- package/dist/{chunk-67Q4RMP6.js.map → chunk-ZM7J5MCU.js.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/schema/assets.cjs +1 -1
- package/dist/schema/assets.d.cts +4 -4
- package/dist/schema/assets.d.ts +4 -4
- package/dist/schema/assets.js +1 -1
- package/dist/schema/comments.cjs +1 -1
- package/dist/schema/comments.d.cts +8 -8
- package/dist/schema/comments.d.ts +8 -8
- package/dist/schema/comments.js +1 -1
- package/dist/schema/conversations.cjs +1 -1
- package/dist/schema/conversations.d.cts +6 -6
- package/dist/schema/conversations.d.ts +6 -6
- package/dist/schema/conversations.js +1 -1
- package/dist/schema/datasets.cjs +1 -1
- package/dist/schema/datasets.d.cts +11 -11
- package/dist/schema/datasets.d.ts +11 -11
- package/dist/schema/datasets.js +1 -1
- package/dist/schema/files.cjs +1 -1
- package/dist/schema/files.d.cts +10 -10
- package/dist/schema/files.d.ts +10 -10
- package/dist/schema/files.js +1 -1
- package/dist/schema/notifications.d.cts +1 -1
- package/dist/schema/notifications.d.ts +1 -1
- package/dist/schema/posts.cjs +1 -1
- package/dist/schema/posts.d.cts +6 -6
- package/dist/schema/posts.d.ts +6 -6
- package/dist/schema/posts.js +1 -1
- package/dist/schema/quests.cjs +1 -1
- package/dist/schema/quests.d.cts +6 -6
- package/dist/schema/quests.d.ts +6 -6
- package/dist/schema/quests.js +1 -1
- package/dist/schema/renditions.cjs +1 -1
- package/dist/schema/renditions.d.cts +1 -1
- package/dist/schema/renditions.d.ts +1 -1
- package/dist/schema/renditions.js +1 -1
- package/dist/schema/services.cjs +1 -1
- package/dist/schema/services.d.cts +14 -14
- package/dist/schema/services.d.ts +14 -14
- package/dist/schema/services.js +1 -1
- package/dist/schema/teams.cjs +1 -1
- package/dist/schema/teams.d.cts +2 -2
- package/dist/schema/teams.d.ts +2 -2
- package/dist/schema/teams.js +1 -1
- package/dist/utils/navigate.cjs +1 -1
- package/dist/utils/navigate.js +1 -1
- package/dist/utils/quest-submission-helpers.cjs +2 -0
- package/dist/utils/quest-submission-helpers.cjs.map +1 -0
- package/dist/utils/quest-submission-helpers.d.cts +2 -0
- package/dist/utils/quest-submission-helpers.d.ts +2 -0
- package/dist/utils/quest-submission-helpers.js +2 -0
- package/dist/utils/quest-submission-helpers.js.map +1 -0
- package/dist/utils/quest-submission.cjs +1 -1
- package/dist/utils/quest-submission.d.cts +60 -59
- package/dist/utils/quest-submission.d.ts +60 -59
- package/dist/utils/quest-submission.js +1 -1
- package/package.json +1 -1
- package/tests/navigate.test.mjs +53 -0
- package/dist/chunk-EY4OFSDP.js +0 -2
- package/dist/chunk-EY4OFSDP.js.map +0 -1
- package/dist/chunk-IUO6O47I.cjs +0 -2
- package/dist/chunk-IUO6O47I.cjs.map +0 -1
- package/dist/chunk-MOEVC3KD.cjs +0 -2
- package/dist/chunk-MOEVC3KD.cjs.map +0 -1
- package/dist/chunk-OZBQNIKJ.js +0 -2
- package/dist/chunk-OZBQNIKJ.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schema/quests.ts"],"names":["QuestTypeSchema","zodEnum","QuestStatusSchema","QuestItemStatusSchema","RewardCurrencySchema","EntryEvalStatusSchema","EntryStatusSchema","LeaderboardOrderSchema","TipTapNode","object","string","optional","array","any","record","ContentSchema","literal","QuestItemBaseSchema","uuid","nullable","number","AssetTypeSchema","zodBoolean","QuestSubmissionAssetDeclarationSchema","KeyedAssetRefsSchema","QuestItemSchema","CreateQuestItemObjectSchema","union","CreateQuestItemSchema","description","QuestSpecificsSchema","QuestSchema","AssetSchema","AssetMetadataSchema","CreateQuestSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","UpdateQuestSchema","UpdateQuestItemSchema","EntrySchema","CreateEntrySchema","KeyedAssetInputSchema","ReviewEntrySchema"],"mappings":"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","file":"chunk-KV6R6XC2.cjs","sourcesContent":["import {\n object,\n string,\n number,\n array,\n literal,\n record,\n type z,\n any,\n optional,\n nullable,\n union,\n uuid,\n boolean as zodBoolean,\n enum as zodEnum,\n type ZodType,\n} from \"zod\";\n\nimport {\n AssetSchema,\n AssetMetadataSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { AssetTypeSchema } from \"./common\";\nimport {\n KeyedAssetRefsSchema,\n KeyedAssetInputSchema,\n QuestSubmissionAssetDeclarationSchema,\n} from \"../utils/quest-submission\";\n\n// ── Enums ──────────────────────────────────────────────────────────────\n\n/** closable: one active entry per item per user; continuous: unlimited per item */\nconst QuestTypeSchema = zodEnum([\"closable\", \"continuous\"]);\nconst QuestStatusSchema = zodEnum([\"draft\", \"open\", \"closed\", \"cancelled\"]);\n\nconst QuestItemStatusSchema = zodEnum([\n \"pending\",\n \"in_progress\",\n \"done\",\n \"skipped\",\n]);\n\nconst RewardCurrencySchema = zodEnum([\"btc\", \"usd\"]);\n\nconst EntryEvalStatusSchema = zodEnum([\n \"skipped\",\n \"running\",\n \"passed\",\n \"failed\",\n \"errored\",\n]);\n\nconst EntryStatusSchema = zodEnum([\"submitted\", \"accepted\", \"rejected\"]);\n\n/** desc = higher scores rank first; asc = lower scores rank first */\nconst LeaderboardOrderSchema = zodEnum([\"desc\", \"asc\"]);\n\n// ── Content (TipTap) ───────────────────────────────────────────────────\n// Posts/quests share the same rich description shape: { json, text }.\n// We mirror it locally here so the quest schema doesn't depend on posts.\n\nconst TipTapNode: ZodType<any> = object({\n type: string(),\n content: optional(array(any())),\n attrs: optional(record(string(), any())),\n marks: optional(array(any())),\n text: optional(string()),\n});\n\nconst ContentSchema = object({\n json: object({\n type: literal(\"doc\"),\n content: array(TipTapNode),\n }),\n text: string(),\n});\n\n// ── Quest items ────────────────────────────────────────────────────────\n\nconst QuestItemBaseSchema = object({\n id: uuid(),\n quest_id: uuid(),\n description: ContentSchema,\n status: QuestItemStatusSchema.default(\"pending\"),\n auto_skipped: optional(nullable(string().or(any()))),\n status_before_auto_skip: optional(nullable(QuestItemStatusSchema)),\n sort_order: number().default(0),\n type: string().default(\"task\"),\n created_by: uuid(),\n assignee_id: optional(nullable(uuid())),\n expected_asset_type: optional(nullable(AssetTypeSchema)),\n reward_xp: number().int().nonnegative().default(0),\n reward_currency: RewardCurrencySchema.default(\"btc\"),\n reward_amount: number().int().nonnegative().default(0),\n child_quest_id: optional(nullable(uuid())),\n eval_route_id: optional(nullable(uuid())),\n eval_score_path: optional(nullable(string())),\n eval_categories_path: optional(nullable(string())),\n eval_pass_min: optional(nullable(number())),\n eval_pass_max: optional(nullable(number())),\n leaderboard_enabled: optional(zodBoolean()).default(false),\n leaderboard_order: optional(LeaderboardOrderSchema).default(\"desc\"),\n submission_assets: optional(\n nullable(record(string(), QuestSubmissionAssetDeclarationSchema)),\n ),\n eval_static_inputs: optional(nullable(KeyedAssetRefsSchema)),\n notes: optional(nullable(string())),\n contributor_keys: optional(\n nullable(\n array(\n object({\n key: string(),\n label: optional(nullable(string())),\n required: zodBoolean().default(true),\n filters: object({\n assetType: optional(string()),\n fileType: optional(string()),\n extensions: optional(array(string())),\n hasConstraints: zodBoolean().default(false),\n }),\n }),\n ),\n ),\n ),\n created_at: string(),\n updated_at: string(),\n});\n\nconst QuestItemSchema = QuestItemBaseSchema;\n\n/**\n * Shape used by `POST /quests/create` (inline items) and\n * `POST /quests/:id/items` (batch add). The controller fills in\n * `quest_id`, `created_by`, and lifecycle-derived fields\n * (`auto_skipped`, `status_before_auto_skip`).\n *\n * Accepts a plain description string or TipTap Content as a convenience —\n * a bare string is lifted into `{ description }` by the `union` below.\n * The backend normalizes either shape with `toContentFromMaybeMarkdown`.\n */\nconst CreateQuestItemObjectSchema = object({\n description: union([\n string().min(1, { message: \"Item description cannot be empty\" }),\n ContentSchema,\n ]),\n type: optional(string()).default(\"task\"),\n sort_order: optional(number().int()),\n assignee_id: optional(nullable(uuid())),\n expected_asset_type: optional(nullable(AssetTypeSchema)),\n reward_xp: optional(number().int().nonnegative()).default(0),\n reward_currency: optional(RewardCurrencySchema).default(\"btc\"),\n // Amount is in minor units of `reward_currency`: sats for BTC, cents\n // for USD. Both fit in JS numbers comfortably for our reward sizes;\n // the underlying column is `bigint`.\n reward_amount: optional(number().int().nonnegative()).default(0),\n child_quest_id: optional(nullable(uuid())),\n eval_route_id: optional(nullable(uuid())),\n eval_score_path: optional(nullable(string())),\n eval_categories_path: optional(nullable(string())),\n eval_pass_min: optional(nullable(number())),\n eval_pass_max: optional(nullable(number())),\n leaderboard_enabled: optional(zodBoolean()).default(false),\n leaderboard_order: optional(LeaderboardOrderSchema).default(\"desc\"),\n submission_assets: optional(\n nullable(record(string(), QuestSubmissionAssetDeclarationSchema)),\n ),\n eval_static_inputs: optional(nullable(KeyedAssetRefsSchema)),\n notes: optional(nullable(string())),\n});\n\nconst CreateQuestItemSchema = union([\n string()\n .min(1, { message: \"Item description cannot be empty\" })\n .transform((description) =>\n CreateQuestItemObjectSchema.parse({ description })\n ),\n CreateQuestItemObjectSchema,\n]);\n\n// ── Quest ──────────────────────────────────────────────────────────────\n\nconst QuestSpecificsSchema = object({\n type: QuestTypeSchema.default(\"closable\"),\n status: QuestStatusSchema.default(\"open\"),\n max_xp_per_contributor: optional(nullable(number().int().nonnegative())),\n closed_at: optional(nullable(string())),\n});\n\nconst QuestSchema = AssetSchema.extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n metadata: optional(nullable(AssetMetadataSchema.partial())),\n // List and detail both nest specifics under `quest`. Detail also hoists\n // full items to the top level. Progress (counts + bar segments) is always\n // top-level `progress` on list and detail responses.\n quest: optional(QuestSpecificsSchema.partial()),\n items: optional(array(QuestItemSchema.partial())),\n progress: optional(\n object({\n total: number(),\n resolved: number(),\n remaining: number(),\n // Lightweight per-item segments for progress bars (list + detail).\n items: optional(\n array(\n object({\n id: string(),\n status: QuestItemStatusSchema,\n waiting_on: optional(nullable(string())),\n waiting_until: optional(nullable(string())),\n waiting_check_every: optional(nullable(string())),\n }).partial()\n )\n ),\n })\n ),\n});\n\n/**\n * Schema used by the backend controller and SDK clients to validate /\n * default the body of `POST /quests/create`. Mirrors how\n * `CreatePostSchema` defaults `org_id`/`team_id` so non-frontend callers\n * don't have to know about `GLOBAL_ORG_ID`.\n *\n * The `items` field accepts either plain strings, TipTap Content objects, or\n * full item objects — the backend `createQuestItems`/`createQuest` paths\n * already handle both shapes, and `CreateQuestItemSchema` normalizes strings\n * into `{ description }`.\n */\nconst CreateQuestSchema = CreateAssetSchema.extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n name: optional(nullable(string())).default(null),\n description: optional(nullable(ContentSchema)),\n type: QuestTypeSchema.default(\"closable\"),\n status: QuestStatusSchema.default(\"open\"),\n max_xp_per_contributor: optional(nullable(number().int().nonnegative())),\n items: optional(array(CreateQuestItemSchema)).default([]),\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst UpdateQuestSchema = QuestSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n items: true,\n progress: true,\n is_pinned_in_team: true,\n })\n .extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nconst UpdateQuestItemSchema = CreateQuestItemObjectSchema.partial().extend({\n status: optional(QuestItemStatusSchema),\n});\n\n// ── Entries ────────────────────────────────────────────────────────────\n\nconst EntrySchema = object({\n id: uuid(),\n quest_id: uuid(),\n user_id: uuid(),\n item_id: optional(nullable(uuid())),\n asset_id: optional(nullable(uuid())),\n asset_type: optional(nullable(AssetTypeSchema)),\n assets: optional(nullable(KeyedAssetRefsSchema)),\n description: optional(nullable(ContentSchema)),\n review: optional(nullable(ContentSchema)),\n status: EntryStatusSchema,\n reviewer_id: optional(nullable(uuid())),\n reviewed_at: optional(nullable(string())),\n eval_action_id: optional(nullable(uuid())),\n eval_score: optional(nullable(number())),\n eval_category_scores: optional(nullable(record(string(), number()))),\n eval_status: optional(nullable(EntryEvalStatusSchema)),\n created_at: string(),\n updated_at: string(),\n});\n\nconst CreateEntrySchema = object({\n item_id: uuid(),\n assets: optional(nullable(KeyedAssetInputSchema)),\n description: optional(nullable(union([string(), ContentSchema]))),\n});\n\nconst ReviewEntrySchema = object({\n status: zodEnum([\"accepted\", \"rejected\"]),\n review: optional(nullable(union([string(), ContentSchema]))),\n});\n\n// ── Exports ────────────────────────────────────────────────────────────\n\nexport {\n KeyedAssetRefsSchema,\n KeyedAssetInputSchema,\n QuestSubmissionAssetDeclarationSchema,\n QuestTypeSchema,\n QuestStatusSchema,\n QuestItemStatusSchema,\n RewardCurrencySchema,\n EntryEvalStatusSchema,\n EntryStatusSchema,\n LeaderboardOrderSchema,\n QuestSchema,\n QuestItemSchema,\n QuestItemBaseSchema,\n CreateQuestSchema,\n CreateQuestItemSchema,\n CreateQuestItemObjectSchema,\n UpdateQuestSchema,\n UpdateQuestItemSchema,\n EntrySchema,\n CreateEntrySchema,\n ReviewEntrySchema,\n};\n\nexport type QuestType = z.infer<typeof QuestTypeSchema>;\nexport type QuestStatus = z.infer<typeof QuestStatusSchema>;\nexport type QuestItemStatus = z.infer<typeof QuestItemStatusSchema>;\nexport type RewardCurrency = z.infer<typeof RewardCurrencySchema>;\nexport type EntryEvalStatus = z.infer<typeof EntryEvalStatusSchema>;\nexport type EntryStatus = z.infer<typeof EntryStatusSchema>;\nexport type LeaderboardOrder = z.infer<typeof LeaderboardOrderSchema>;\nexport type Quest = z.infer<typeof QuestSchema>;\nexport type QuestItem = z.infer<typeof QuestItemSchema>;\nexport type CreateQuest = z.infer<typeof CreateQuestSchema>;\nexport type CreateQuestItem = z.infer<typeof CreateQuestItemSchema>;\nexport type UpdateQuest = z.infer<typeof UpdateQuestSchema>;\nexport type UpdateQuestItem = z.infer<typeof UpdateQuestItemSchema>;\nexport type Entry = z.infer<typeof EntrySchema>;\nexport type CreateEntry = z.infer<typeof CreateEntrySchema>;\nexport type ReviewEntry = z.infer<typeof ReviewEntrySchema>;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/schema/quests.ts"],"names":["QuestTypeSchema","zodEnum","QuestStatusSchema","QuestItemStatusSchema","RewardCurrencySchema","EntryEvalStatusSchema","EntryStatusSchema","LeaderboardOrderSchema","TipTapNode","object","string","optional","array","any","record","ContentSchema","literal","QuestItemBaseSchema","uuid","nullable","number","AssetTypeSchema","zodBoolean","QuestSubmissionAssetDeclarationSchema","KeyedAssetRefsSchema","QuestItemSchema","CreateQuestItemObjectSchema","union","CreateQuestItemSchema","description","QuestSpecificsSchema","QuestSchema","AssetSchema","AssetMetadataSchema","CreateQuestSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","UpdateQuestSchema","UpdateQuestItemSchema","EntrySchema","CreateEntrySchema","KeyedAssetInputSchema","ReviewEntrySchema"],"mappings":"0LAkCA,IAAMA,EAAkBC,QAAQ,CAAA,CAAC,UAAY,CAAA,YAAY,CAAC,CAAA,CACpDC,CAAoBD,CAAAA,QAAAA,CAAQ,CAAC,OAAA,CAAS,MAAQ,CAAA,QAAA,CAAU,WAAW,CAAC,EAEpEE,CAAwBF,CAAAA,QAAAA,CAAQ,CACpC,SAAA,CACA,aACA,CAAA,MAAA,CACA,SACF,CAAC,CAEKG,CAAAA,CAAAA,CAAuBH,QAAQ,CAAA,CAAC,KAAO,CAAA,KAAK,CAAC,CAE7CI,CAAAA,CAAAA,CAAwBJ,QAAQ,CAAA,CACpC,SACA,CAAA,SAAA,CACA,QACA,CAAA,QAAA,CACA,SACF,CAAC,CAEKK,CAAAA,CAAAA,CAAoBL,QAAQ,CAAA,CAAC,YAAa,UAAY,CAAA,UAAU,CAAC,CAAA,CAGjEM,CAAyBN,CAAAA,QAAAA,CAAQ,CAAC,MAAA,CAAQ,KAAK,CAAC,CAMhDO,CAAAA,CAAAA,CAA2BC,UAAO,CAAA,CACtC,KAAMC,UAAO,EAAA,CACb,OAASC,CAAAA,YAAAA,CAASC,SAAMC,CAAAA,OAAAA,EAAK,CAAC,CAC9B,CAAA,KAAA,CAAOF,YAASG,CAAAA,UAAAA,CAAOJ,UAAO,EAAA,CAAGG,OAAI,EAAC,CAAC,CAAA,CACvC,KAAOF,CAAAA,YAAAA,CAASC,SAAMC,CAAAA,OAAAA,EAAK,CAAC,CAC5B,CAAA,IAAA,CAAMF,YAASD,CAAAA,UAAAA,EAAQ,CACzB,CAAC,CAEKK,CAAAA,CAAAA,CAAgBN,UAAO,CAAA,CAC3B,IAAMA,CAAAA,UAAAA,CAAO,CACX,IAAA,CAAMO,WAAQ,CAAA,KAAK,CACnB,CAAA,OAAA,CAASJ,SAAMJ,CAAAA,CAAU,CAC3B,CAAC,CAAA,CACD,IAAME,CAAAA,UAAAA,EACR,CAAC,CAIKO,CAAAA,CAAAA,CAAsBR,UAAO,CAAA,CACjC,EAAIS,CAAAA,QAAAA,EACJ,CAAA,QAAA,CAAUA,UACV,CAAA,WAAA,CAAaH,CACb,CAAA,MAAA,CAAQZ,CAAsB,CAAA,OAAA,CAAQ,SAAS,CAAA,CAC/C,YAAcQ,CAAAA,YAAAA,CAASQ,YAAST,CAAAA,UAAAA,EAAS,CAAA,EAAA,CAAGG,SAAK,CAAC,CAAC,CAAA,CACnD,uBAAyBF,CAAAA,YAAAA,CAASQ,YAAShB,CAAAA,CAAqB,CAAC,CAAA,CACjE,UAAYiB,CAAAA,UAAAA,EAAS,CAAA,OAAA,CAAQ,CAAC,CAC9B,CAAA,IAAA,CAAMV,UAAO,EAAA,CAAE,OAAQ,CAAA,MAAM,CAC7B,CAAA,UAAA,CAAYQ,QAAK,EAAA,CACjB,WAAaP,CAAAA,YAAAA,CAASQ,YAASD,CAAAA,QAAAA,EAAM,CAAC,CAAA,CACtC,mBAAqBP,CAAAA,YAAAA,CAASQ,YAASE,CAAAA,mBAAe,CAAC,CAAA,CACvD,SAAWD,CAAAA,UAAAA,EAAS,CAAA,GAAA,EAAM,CAAA,WAAA,GAAc,OAAQ,CAAA,CAAC,CACjD,CAAA,eAAA,CAAiBhB,CAAqB,CAAA,OAAA,CAAQ,KAAK,CAAA,CACnD,aAAegB,CAAAA,UAAAA,EAAS,CAAA,GAAA,EAAM,CAAA,WAAA,EAAc,CAAA,OAAA,CAAQ,CAAC,CAAA,CACrD,cAAgBT,CAAAA,YAAAA,CAASQ,YAASD,CAAAA,QAAAA,EAAM,CAAC,CACzC,CAAA,aAAA,CAAeP,YAASQ,CAAAA,YAAAA,CAASD,QAAK,EAAC,CAAC,CACxC,CAAA,eAAA,CAAiBP,YAASQ,CAAAA,YAAAA,CAAST,UAAO,EAAC,CAAC,CAAA,CAC5C,oBAAsBC,CAAAA,YAAAA,CAASQ,YAAST,CAAAA,UAAAA,EAAQ,CAAC,EACjD,aAAeC,CAAAA,YAAAA,CAASQ,YAASC,CAAAA,UAAAA,EAAQ,CAAC,CAC1C,CAAA,aAAA,CAAeT,YAASQ,CAAAA,YAAAA,CAASC,UAAO,EAAC,CAAC,CAAA,CAC1C,oBAAqBT,YAASW,CAAAA,WAAAA,EAAY,CAAA,CAAE,OAAQ,CAAA,KAAK,CACzD,CAAA,iBAAA,CAAmBX,YAASJ,CAAAA,CAAsB,CAAE,CAAA,OAAA,CAAQ,MAAM,CAAA,CAClE,kBAAmBI,YACjBQ,CAAAA,YAAAA,CAASL,UAAOJ,CAAAA,UAAAA,EAAUa,CAAAA,mBAAqC,CAAC,CAClE,CACA,CAAA,kBAAA,CAAoBZ,YAASQ,CAAAA,YAAAA,CAASK,mBAAoB,CAAC,EAC3D,KAAOb,CAAAA,YAAAA,CAASQ,YAAST,CAAAA,UAAAA,EAAQ,CAAC,CAClC,CAAA,gBAAA,CAAkBC,YAChBQ,CAAAA,YAAAA,CACEP,SACEH,CAAAA,UAAAA,CAAO,CACL,GAAA,CAAKC,YACL,CAAA,KAAA,CAAOC,YAASQ,CAAAA,YAAAA,CAAST,UAAO,EAAC,CAAC,CAAA,CAClC,QAAUY,CAAAA,WAAAA,EAAa,CAAA,OAAA,CAAQ,IAAI,CAAA,CACnC,QAASb,UAAO,CAAA,CACd,SAAWE,CAAAA,YAAAA,CAASD,UAAO,EAAC,CAC5B,CAAA,QAAA,CAAUC,YAASD,CAAAA,UAAAA,EAAQ,CAAA,CAC3B,UAAYC,CAAAA,YAAAA,CAASC,SAAMF,CAAAA,UAAAA,EAAQ,CAAC,CACpC,CAAA,cAAA,CAAgBY,WAAW,EAAA,CAAE,OAAQ,CAAA,KAAK,CAC5C,CAAC,CACH,CAAC,CACH,CACF,CACF,CACA,CAAA,UAAA,CAAYZ,UAAO,EAAA,CACnB,UAAYA,CAAAA,UAAAA,EACd,CAAC,CAEKe,CAAAA,CAAAA,CAAkBR,CAYlBS,CAAAA,CAAAA,CAA8BjB,UAAO,CAAA,CACzC,YAAakB,SAAM,CAAA,CACjBjB,UAAO,EAAA,CAAE,GAAI,CAAA,CAAA,CAAG,CAAE,OAAA,CAAS,kCAAmC,CAAC,CAC/DK,CAAAA,CACF,CAAC,CAAA,CACD,KAAMJ,YAASD,CAAAA,UAAAA,EAAQ,CAAA,CAAE,OAAQ,CAAA,MAAM,CACvC,CAAA,UAAA,CAAYC,YAASS,CAAAA,UAAAA,EAAS,CAAA,GAAA,EAAK,CAAA,CACnC,WAAaT,CAAAA,YAAAA,CAASQ,YAASD,CAAAA,QAAAA,EAAM,CAAC,CACtC,CAAA,mBAAA,CAAqBP,YAASQ,CAAAA,YAAAA,CAASE,mBAAe,CAAC,CACvD,CAAA,SAAA,CAAWV,YAASS,CAAAA,UAAAA,GAAS,GAAI,EAAA,CAAE,WAAY,EAAC,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAA,CAC3D,eAAiBT,CAAAA,YAAAA,CAASP,CAAoB,CAAA,CAAE,OAAQ,CAAA,KAAK,EAI7D,aAAeO,CAAAA,YAAAA,CAASS,UAAO,EAAA,CAAE,GAAI,EAAA,CAAE,WAAY,EAAC,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAA,CAC/D,cAAgBT,CAAAA,YAAAA,CAASQ,aAASD,QAAK,EAAC,CAAC,CAAA,CACzC,aAAeP,CAAAA,YAAAA,CAASQ,YAASD,CAAAA,QAAAA,EAAM,CAAC,CACxC,CAAA,eAAA,CAAiBP,YAASQ,CAAAA,YAAAA,CAAST,UAAO,EAAC,CAAC,CAAA,CAC5C,oBAAsBC,CAAAA,YAAAA,CAASQ,YAAST,CAAAA,UAAAA,EAAQ,CAAC,CACjD,CAAA,aAAA,CAAeC,YAASQ,CAAAA,YAAAA,CAASC,UAAO,EAAC,CAAC,CAC1C,CAAA,aAAA,CAAeT,YAASQ,CAAAA,YAAAA,CAASC,UAAO,EAAC,CAAC,CAAA,CAC1C,mBAAqBT,CAAAA,YAAAA,CAASW,WAAW,EAAC,CAAE,CAAA,OAAA,CAAQ,KAAK,CACzD,CAAA,iBAAA,CAAmBX,YAASJ,CAAAA,CAAsB,CAAE,CAAA,OAAA,CAAQ,MAAM,CAAA,CAClE,iBAAmBI,CAAAA,YAAAA,CACjBQ,YAASL,CAAAA,UAAAA,CAAOJ,UAAO,EAAA,CAAGa,mBAAqC,CAAC,CAClE,CACA,CAAA,kBAAA,CAAoBZ,YAASQ,CAAAA,YAAAA,CAASK,mBAAoB,CAAC,CAC3D,CAAA,KAAA,CAAOb,YAASQ,CAAAA,YAAAA,CAAST,UAAO,EAAC,CAAC,CACpC,CAAC,CAEKkB,CAAAA,CAAAA,CAAwBD,SAAM,CAAA,CAClCjB,UAAO,EAAA,CACJ,GAAI,CAAA,CAAA,CAAG,CAAE,OAAA,CAAS,kCAAmC,CAAC,EACtD,SAAWmB,CAAAA,CAAAA,EACVH,CAA4B,CAAA,KAAA,CAAM,CAAE,WAAA,CAAAG,CAAY,CAAC,CACnD,CAAA,CACFH,CACF,CAAC,CAIKI,CAAAA,CAAAA,CAAuBrB,WAAO,CAClC,IAAA,CAAMT,CAAgB,CAAA,OAAA,CAAQ,UAAU,CAAA,CACxC,MAAQE,CAAAA,CAAAA,CAAkB,OAAQ,CAAA,MAAM,CACxC,CAAA,sBAAA,CAAwBS,YAASQ,CAAAA,YAAAA,CAASC,YAAS,CAAA,GAAA,EAAM,CAAA,WAAA,EAAa,CAAC,CACvE,CAAA,SAAA,CAAWT,YAASQ,CAAAA,YAAAA,CAAST,UAAO,EAAC,CAAC,CACxC,CAAC,CAAA,CAEKqB,CAAcC,CAAAA,mBAAAA,CAAY,MAAO,CAAA,CACrC,UAAYhB,CAAAA,WAAAA,CAAQ,OAAO,CAAA,CAAE,OAAQ,CAAA,OAAO,CAC5C,CAAA,QAAA,CAAUL,YAASQ,CAAAA,YAAAA,CAASc,oBAAoB,OAAQ,EAAC,CAAC,CAAA,CAI1D,KAAOtB,CAAAA,YAAAA,CAASmB,CAAqB,CAAA,OAAA,EAAS,CAAA,CAC9C,KAAOnB,CAAAA,YAAAA,CAASC,SAAMa,CAAAA,CAAAA,CAAgB,SAAS,CAAC,CAChD,CAAA,QAAA,CAAUd,YACRF,CAAAA,UAAAA,CAAO,CACL,KAAA,CAAOW,UAAO,EAAA,CACd,QAAUA,CAAAA,UAAAA,EACV,CAAA,SAAA,CAAWA,YAEX,CAAA,KAAA,CAAOT,YACLC,CAAAA,SAAAA,CACEH,UAAO,CAAA,CACL,EAAIC,CAAAA,UAAAA,EACJ,CAAA,MAAA,CAAQP,CACR,CAAA,UAAA,CAAYQ,YAASQ,CAAAA,YAAAA,CAAST,UAAO,EAAC,CAAC,CAAA,CACvC,aAAeC,CAAAA,YAAAA,CAASQ,YAAST,CAAAA,UAAAA,EAAQ,CAAC,CAC1C,CAAA,mBAAA,CAAqBC,YAASQ,CAAAA,YAAAA,CAAST,UAAO,EAAC,CAAC,CAClD,CAAC,CAAE,CAAA,OAAA,EACL,CACF,CACF,CAAC,CACH,CACF,CAAC,CAAA,CAaKwB,CAAoBC,CAAAA,mBAAAA,CAAkB,OAAO,CACjD,UAAA,CAAYnB,WAAQ,CAAA,OAAO,CAAE,CAAA,OAAA,CAAQ,OAAO,CAAA,CAC5C,IAAML,CAAAA,YAAAA,CAASQ,YAAST,CAAAA,UAAAA,EAAQ,CAAC,EAAE,OAAQ,CAAA,IAAI,CAC/C,CAAA,WAAA,CAAaC,YAASQ,CAAAA,YAAAA,CAASJ,CAAa,CAAC,CAC7C,CAAA,IAAA,CAAMf,CAAgB,CAAA,OAAA,CAAQ,UAAU,CAAA,CACxC,MAAQE,CAAAA,CAAAA,CAAkB,OAAQ,CAAA,MAAM,CACxC,CAAA,sBAAA,CAAwBS,YAASQ,CAAAA,YAAAA,CAASC,UAAO,EAAA,CAAE,GAAI,EAAA,CAAE,WAAY,EAAC,CAAC,CAAA,CACvE,MAAOT,YAASC,CAAAA,SAAAA,CAAMgB,CAAqB,CAAC,CAAE,CAAA,OAAA,CAAQ,EAAE,CAC1D,CAAC,CAAE,CAAA,SAAA,CAAWQ,CAAUC,EAAAA,mBAAAA,CAA+BD,CAAK,CAAC,CAAA,CAEvDE,CAAoBP,CAAAA,CAAAA,CAAY,OAAQ,EAAA,CAC3C,IAAK,CAAA,CACJ,OAAS,CAAA,IAAA,CACT,EAAI,CAAA,IAAA,CACJ,UAAY,CAAA,IAAA,CACZ,aAAc,IACd,CAAA,YAAA,CAAc,IACd,CAAA,IAAA,CAAM,IACN,CAAA,IAAA,CAAM,IACN,CAAA,IAAA,CAAM,IACN,CAAA,KAAA,CAAO,IACP,CAAA,QAAA,CAAU,IACV,CAAA,iBAAA,CAAmB,IACrB,CAAC,CAAA,CACA,MAAO,CAAA,CACN,UAAYf,CAAAA,WAAAA,CAAQ,OAAO,CAAA,CAAE,OAAQ,CAAA,OAAO,CAC5C,CAAA,YAAA,CAAcN,UAAO,EAAA,CAAE,QAAQ,IAAM,IAAI,IAAK,EAAA,CAAE,WAAY,EAAC,CAC/D,CAAC,CACA,CAAA,SAAA,CAAW0B,CAAUC,EAAAA,mBAAAA,CAA+BD,CAAK,CAAC,EAEvDG,CAAwBb,CAAAA,CAAAA,CAA4B,OAAQ,EAAA,CAAE,MAAO,CAAA,CACzE,MAAQf,CAAAA,YAAAA,CAASR,CAAqB,CACxC,CAAC,CAAA,CAIKqC,CAAc/B,CAAAA,UAAAA,CAAO,CACzB,EAAIS,CAAAA,QAAAA,EACJ,CAAA,QAAA,CAAUA,QAAK,EAAA,CACf,OAASA,CAAAA,QAAAA,EACT,CAAA,OAAA,CAASP,YAASQ,CAAAA,YAAAA,CAASD,QAAK,EAAC,CAAC,CAAA,CAClC,QAAUP,CAAAA,YAAAA,CAASQ,YAASD,CAAAA,QAAAA,EAAM,CAAC,CACnC,CAAA,UAAA,CAAYP,YAASQ,CAAAA,YAAAA,CAASE,mBAAe,CAAC,CAC9C,CAAA,MAAA,CAAQV,aAASQ,YAASK,CAAAA,mBAAoB,CAAC,CAAA,CAC/C,WAAab,CAAAA,YAAAA,CAASQ,YAASJ,CAAAA,CAAa,CAAC,CAAA,CAC7C,MAAQJ,CAAAA,YAAAA,CAASQ,YAASJ,CAAAA,CAAa,CAAC,CACxC,CAAA,MAAA,CAAQT,CACR,CAAA,WAAA,CAAaK,YAASQ,CAAAA,YAAAA,CAASD,QAAK,EAAC,CAAC,CAAA,CACtC,WAAaP,CAAAA,YAAAA,CAASQ,YAAST,CAAAA,UAAAA,EAAQ,CAAC,CAAA,CACxC,cAAgBC,CAAAA,YAAAA,CAASQ,YAASD,CAAAA,QAAAA,EAAM,CAAC,CACzC,CAAA,UAAA,CAAYP,YAASQ,CAAAA,YAAAA,CAASC,UAAO,EAAC,CAAC,CAAA,CACvC,oBAAsBT,CAAAA,YAAAA,CAASQ,YAASL,CAAAA,UAAAA,CAAOJ,UAAO,EAAA,CAAGU,UAAO,EAAC,CAAC,CAAC,CACnE,CAAA,WAAA,CAAaT,YAASQ,CAAAA,YAAAA,CAASd,CAAqB,CAAC,CAAA,CACrD,UAAYK,CAAAA,UAAAA,EACZ,CAAA,UAAA,CAAYA,UAAO,EACrB,CAAC,CAAA,CAEK+B,CAAoBhC,CAAAA,UAAAA,CAAO,CAC/B,OAAA,CAASS,UACT,CAAA,MAAA,CAAQP,YAASQ,CAAAA,YAAAA,CAASuB,mBAAqB,CAAC,CAChD,CAAA,WAAA,CAAa/B,YAASQ,CAAAA,YAAAA,CAASQ,SAAM,CAAA,CAACjB,UAAO,EAAA,CAAGK,CAAa,CAAC,CAAC,CAAC,CAClE,CAAC,CAAA,CAEK4B,CAAoBlC,CAAAA,UAAAA,CAAO,CAC/B,MAAA,CAAQR,QAAQ,CAAA,CAAC,UAAY,CAAA,UAAU,CAAC,CAAA,CACxC,MAAQU,CAAAA,YAAAA,CAASQ,YAASQ,CAAAA,SAAAA,CAAM,CAACjB,UAAAA,EAAUK,CAAAA,CAAa,CAAC,CAAC,CAAC,CAC7D,CAAC","file":"chunk-F7URSDHU.cjs","sourcesContent":["import {\n object,\n string,\n number,\n array,\n literal,\n record,\n type z,\n any,\n optional,\n nullable,\n union,\n uuid,\n boolean as zodBoolean,\n enum as zodEnum,\n type ZodType,\n} from \"zod\";\n\nimport {\n AssetSchema,\n AssetMetadataSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { AssetTypeSchema } from \"./common\";\nimport {\n KeyedAssetRefsSchema,\n KeyedAssetInputSchema,\n QuestSubmissionAssetDeclarationSchema,\n} from \"../utils/quest-submission\";\n\n// ── Enums ──────────────────────────────────────────────────────────────\n\n/** closable: one active entry per item per user; continuous: unlimited per item */\nconst QuestTypeSchema = zodEnum([\"closable\", \"continuous\"]);\nconst QuestStatusSchema = zodEnum([\"draft\", \"open\", \"closed\", \"cancelled\"]);\n\nconst QuestItemStatusSchema = zodEnum([\n \"pending\",\n \"in_progress\",\n \"done\",\n \"skipped\",\n]);\n\nconst RewardCurrencySchema = zodEnum([\"btc\", \"usd\"]);\n\nconst EntryEvalStatusSchema = zodEnum([\n \"skipped\",\n \"running\",\n \"passed\",\n \"failed\",\n \"errored\",\n]);\n\nconst EntryStatusSchema = zodEnum([\"submitted\", \"accepted\", \"rejected\"]);\n\n/** desc = higher scores rank first; asc = lower scores rank first */\nconst LeaderboardOrderSchema = zodEnum([\"desc\", \"asc\"]);\n\n// ── Content (TipTap) ───────────────────────────────────────────────────\n// Posts/quests share the same rich description shape: { json, text }.\n// We mirror it locally here so the quest schema doesn't depend on posts.\n\nconst TipTapNode: ZodType<any> = object({\n type: string(),\n content: optional(array(any())),\n attrs: optional(record(string(), any())),\n marks: optional(array(any())),\n text: optional(string()),\n});\n\nconst ContentSchema = object({\n json: object({\n type: literal(\"doc\"),\n content: array(TipTapNode),\n }),\n text: string(),\n});\n\n// ── Quest items ────────────────────────────────────────────────────────\n\nconst QuestItemBaseSchema = object({\n id: uuid(),\n quest_id: uuid(),\n description: ContentSchema,\n status: QuestItemStatusSchema.default(\"pending\"),\n auto_skipped: optional(nullable(string().or(any()))),\n status_before_auto_skip: optional(nullable(QuestItemStatusSchema)),\n sort_order: number().default(0),\n type: string().default(\"task\"),\n created_by: uuid(),\n assignee_id: optional(nullable(uuid())),\n expected_asset_type: optional(nullable(AssetTypeSchema)),\n reward_xp: number().int().nonnegative().default(0),\n reward_currency: RewardCurrencySchema.default(\"btc\"),\n reward_amount: number().int().nonnegative().default(0),\n child_quest_id: optional(nullable(uuid())),\n eval_route_id: optional(nullable(uuid())),\n eval_score_path: optional(nullable(string())),\n eval_categories_path: optional(nullable(string())),\n eval_pass_min: optional(nullable(number())),\n eval_pass_max: optional(nullable(number())),\n leaderboard_enabled: optional(zodBoolean()).default(false),\n leaderboard_order: optional(LeaderboardOrderSchema).default(\"desc\"),\n submission_assets: optional(\n nullable(record(string(), QuestSubmissionAssetDeclarationSchema)),\n ),\n eval_static_inputs: optional(nullable(KeyedAssetRefsSchema)),\n notes: optional(nullable(string())),\n contributor_keys: optional(\n nullable(\n array(\n object({\n key: string(),\n label: optional(nullable(string())),\n required: zodBoolean().default(true),\n filters: object({\n assetType: optional(string()),\n fileType: optional(string()),\n extensions: optional(array(string())),\n hasConstraints: zodBoolean().default(false),\n }),\n }),\n ),\n ),\n ),\n created_at: string(),\n updated_at: string(),\n});\n\nconst QuestItemSchema = QuestItemBaseSchema;\n\n/**\n * Shape used by `POST /quests/create` (inline items) and\n * `POST /quests/:id/items` (batch add). The controller fills in\n * `quest_id`, `created_by`, and lifecycle-derived fields\n * (`auto_skipped`, `status_before_auto_skip`).\n *\n * Accepts a plain description string or TipTap Content as a convenience —\n * a bare string is lifted into `{ description }` by the `union` below.\n * The backend normalizes either shape with `toContentFromMaybeMarkdown`.\n */\nconst CreateQuestItemObjectSchema = object({\n description: union([\n string().min(1, { message: \"Item description cannot be empty\" }),\n ContentSchema,\n ]),\n type: optional(string()).default(\"task\"),\n sort_order: optional(number().int()),\n assignee_id: optional(nullable(uuid())),\n expected_asset_type: optional(nullable(AssetTypeSchema)),\n reward_xp: optional(number().int().nonnegative()).default(0),\n reward_currency: optional(RewardCurrencySchema).default(\"btc\"),\n // Amount is in minor units of `reward_currency`: sats for BTC, cents\n // for USD. Both fit in JS numbers comfortably for our reward sizes;\n // the underlying column is `bigint`.\n reward_amount: optional(number().int().nonnegative()).default(0),\n child_quest_id: optional(nullable(uuid())),\n eval_route_id: optional(nullable(uuid())),\n eval_score_path: optional(nullable(string())),\n eval_categories_path: optional(nullable(string())),\n eval_pass_min: optional(nullable(number())),\n eval_pass_max: optional(nullable(number())),\n leaderboard_enabled: optional(zodBoolean()).default(false),\n leaderboard_order: optional(LeaderboardOrderSchema).default(\"desc\"),\n submission_assets: optional(\n nullable(record(string(), QuestSubmissionAssetDeclarationSchema)),\n ),\n eval_static_inputs: optional(nullable(KeyedAssetRefsSchema)),\n notes: optional(nullable(string())),\n});\n\nconst CreateQuestItemSchema = union([\n string()\n .min(1, { message: \"Item description cannot be empty\" })\n .transform((description) =>\n CreateQuestItemObjectSchema.parse({ description })\n ),\n CreateQuestItemObjectSchema,\n]);\n\n// ── Quest ──────────────────────────────────────────────────────────────\n\nconst QuestSpecificsSchema = object({\n type: QuestTypeSchema.default(\"closable\"),\n status: QuestStatusSchema.default(\"open\"),\n max_xp_per_contributor: optional(nullable(number().int().nonnegative())),\n closed_at: optional(nullable(string())),\n});\n\nconst QuestSchema = AssetSchema.extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n metadata: optional(nullable(AssetMetadataSchema.partial())),\n // List and detail both nest specifics under `quest`. Detail also hoists\n // full items to the top level. Progress (counts + bar segments) is always\n // top-level `progress` on list and detail responses.\n quest: optional(QuestSpecificsSchema.partial()),\n items: optional(array(QuestItemSchema.partial())),\n progress: optional(\n object({\n total: number(),\n resolved: number(),\n remaining: number(),\n // Lightweight per-item segments for progress bars (list + detail).\n items: optional(\n array(\n object({\n id: string(),\n status: QuestItemStatusSchema,\n waiting_on: optional(nullable(string())),\n waiting_until: optional(nullable(string())),\n waiting_check_every: optional(nullable(string())),\n }).partial()\n )\n ),\n })\n ),\n});\n\n/**\n * Schema used by the backend controller and SDK clients to validate /\n * default the body of `POST /quests/create`. Mirrors how\n * `CreatePostSchema` defaults `org_id`/`team_id` so non-frontend callers\n * don't have to know about `GLOBAL_ORG_ID`.\n *\n * The `items` field accepts either plain strings, TipTap Content objects, or\n * full item objects — the backend `createQuestItems`/`createQuest` paths\n * already handle both shapes, and `CreateQuestItemSchema` normalizes strings\n * into `{ description }`.\n */\nconst CreateQuestSchema = CreateAssetSchema.extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n name: optional(nullable(string())).default(null),\n description: optional(nullable(ContentSchema)),\n type: QuestTypeSchema.default(\"closable\"),\n status: QuestStatusSchema.default(\"open\"),\n max_xp_per_contributor: optional(nullable(number().int().nonnegative())),\n items: optional(array(CreateQuestItemSchema)).default([]),\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst UpdateQuestSchema = QuestSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n items: true,\n progress: true,\n is_pinned_in_team: true,\n })\n .extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nconst UpdateQuestItemSchema = CreateQuestItemObjectSchema.partial().extend({\n status: optional(QuestItemStatusSchema),\n});\n\n// ── Entries ────────────────────────────────────────────────────────────\n\nconst EntrySchema = object({\n id: uuid(),\n quest_id: uuid(),\n user_id: uuid(),\n item_id: optional(nullable(uuid())),\n asset_id: optional(nullable(uuid())),\n asset_type: optional(nullable(AssetTypeSchema)),\n assets: optional(nullable(KeyedAssetRefsSchema)),\n description: optional(nullable(ContentSchema)),\n review: optional(nullable(ContentSchema)),\n status: EntryStatusSchema,\n reviewer_id: optional(nullable(uuid())),\n reviewed_at: optional(nullable(string())),\n eval_action_id: optional(nullable(uuid())),\n eval_score: optional(nullable(number())),\n eval_category_scores: optional(nullable(record(string(), number()))),\n eval_status: optional(nullable(EntryEvalStatusSchema)),\n created_at: string(),\n updated_at: string(),\n});\n\nconst CreateEntrySchema = object({\n item_id: uuid(),\n assets: optional(nullable(KeyedAssetInputSchema)),\n description: optional(nullable(union([string(), ContentSchema]))),\n});\n\nconst ReviewEntrySchema = object({\n status: zodEnum([\"accepted\", \"rejected\"]),\n review: optional(nullable(union([string(), ContentSchema]))),\n});\n\n// ── Exports ────────────────────────────────────────────────────────────\n\nexport {\n KeyedAssetRefsSchema,\n KeyedAssetInputSchema,\n QuestSubmissionAssetDeclarationSchema,\n QuestTypeSchema,\n QuestStatusSchema,\n QuestItemStatusSchema,\n RewardCurrencySchema,\n EntryEvalStatusSchema,\n EntryStatusSchema,\n LeaderboardOrderSchema,\n QuestSchema,\n QuestItemSchema,\n QuestItemBaseSchema,\n CreateQuestSchema,\n CreateQuestItemSchema,\n CreateQuestItemObjectSchema,\n UpdateQuestSchema,\n UpdateQuestItemSchema,\n EntrySchema,\n CreateEntrySchema,\n ReviewEntrySchema,\n};\n\nexport type QuestType = z.infer<typeof QuestTypeSchema>;\nexport type QuestStatus = z.infer<typeof QuestStatusSchema>;\nexport type QuestItemStatus = z.infer<typeof QuestItemStatusSchema>;\nexport type RewardCurrency = z.infer<typeof RewardCurrencySchema>;\nexport type EntryEvalStatus = z.infer<typeof EntryEvalStatusSchema>;\nexport type EntryStatus = z.infer<typeof EntryStatusSchema>;\nexport type LeaderboardOrder = z.infer<typeof LeaderboardOrderSchema>;\nexport type Quest = z.infer<typeof QuestSchema>;\nexport type QuestItem = z.infer<typeof QuestItemSchema>;\nexport type CreateQuest = z.infer<typeof CreateQuestSchema>;\nexport type CreateQuestItem = z.infer<typeof CreateQuestItemSchema>;\nexport type UpdateQuest = z.infer<typeof UpdateQuestSchema>;\nexport type UpdateQuestItem = z.infer<typeof UpdateQuestItemSchema>;\nexport type Entry = z.infer<typeof EntrySchema>;\nexport type CreateEntry = z.infer<typeof CreateEntrySchema>;\nexport type ReviewEntry = z.infer<typeof ReviewEntrySchema>;\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function y(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}function _(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 m(e){let n=Array.isArray(e)?e:typeof e=="string"?e.split(/[\s,]+/):[];return Array.from(new Set(n.map(t=>_(t)).filter(t=>!!t)))}function d(e){return m([...Array.isArray(e.file_extensions)?e.file_extensions:[],...Array.isArray(e.input_file_extensions)?e.input_file_extensions:[]].join(","))}function g(e){return e.input_filter||e.filter||void 0}function b(e){var s;let n=e==null?void 0:e.route;if(!n)return {};let t=n.input_assets;if(y(t)){let i=Object.entries(t).filter(([,r])=>y(r));if(i.length>0)return Object.fromEntries(i)}return n.input_type?{[n.input_type]:{asset_type:n.input_type,primary:true,input_filter:n.input_filter,input_file_extensions:(s=n.input_file_extensions)!=null?s:null}}:{}}function x(e){if(typeof e.label!="string")return;let n=e.label.trim();return n.length>0?n:void 0}function R(e){let n=d(e),t=g(e),s=x(e);return {asset_type:e.asset_type,primary:e.primary,input_filter:t!=null?t:null,file_extensions:n.length>0?n:null,required:true,...s?{label:s}:{}}}function A(e,n){let t=new Set(n),s={};for(let[i,r]of Object.entries(e))t.has(i)||(s[i]=R(r));return s}function D(e){let n=Object.entries(e);if(!n.length)return null;let t=n.find(([,s])=>s.primary===true);return t?t[0]:(n.length===1,n[0][0])}function k(e,n){var i,r;let t=(i=e.eval_static_inputs)!=null?i:{};if(e.eval_route_id&&n){let l=b(n),a=Object.keys(t),u=A(l,a);return {contributorKeys:Object.keys(u),declarations:u,pinned:t}}let s=(r=e.submission_assets)!=null?r:{};return {contributorKeys:Object.keys(s),declarations:s,pinned:t}}function S(e){if(!e)return null;let n=e.asset_type||void 0;if(!n)return null;let t={assetType:n,hasConstraints:false};if(n==="file"){let s=d(e);s.length>0&&(t.extensions=s,t.hasConstraints=true);let i=g(e);i&&(t.fileType=i,t.hasConstraints=true);}return t}function I(e,n){var i,r,l,a,u,f;if(!n||!e)return true;let t=S(n);if(!t)return true;let s=(i=e.assetType)!=null?i:e.asset_type;if(t.assetType&&s!==t.assetType)return false;if(t.assetType==="file"){let p=(l=(r=e.asset)==null?void 0:r.metadata)!=null?l:{};if(t.extensions&&t.extensions.length>0){let o=String((a=p.extension)!=null?a:"").toLowerCase();if(!o||!t.extensions.includes(o))return false}if(t.fileType){let o=String((f=(u=p.file_type)!=null?u:p.type)!=null?f:"").toLowerCase().split("/")[0],c=t.fileType.toLowerCase();if(o&&c&&!o.includes(c)&&o!==c)return false}}return true}function h(e,n){if(!e||!Object.keys(e).length)return null;let t=n&&D(n)||Object.keys(e)[0],s=e[t];return s?{key:t,asset_id:s.asset_id,asset_type:s.asset_type}:null}function T(e){return e?Object.fromEntries(Object.entries(e).map(([n,t])=>[n,{assetId:t.asset_id,assetType:t.asset_type}])):{}}export{b as a,R as b,A as c,D as d,k as e,S as f,I as g,h,T as i};//# sourceMappingURL=chunk-HJW6XNOY.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-HJW6XNOY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/quest-submission-helpers.ts"],"names":["isPlainObject","value","normalizeFileExtension","safe","normalizeFileExtensions","rawValues","entry","readDeclarationExtensions","declaration","readDeclarationFilter","getRouteInputDeclarationsFromRoute","route","_a","detail","inputs","entries","readDeclarationLabel","label","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-HJW6XNOY.js","sourcesContent":["// Pure quest-submission helpers. Kept apart from the zod schemas in\n// `quest-submission.ts` so importing a helper doesn't pull zod into a bundle.\nimport type {\n KeyedAssetRefs,\n QuestSubmissionAssetDeclaration,\n} from \"./quest-submission\";\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\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 label?: 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\nfunction readDeclarationLabel(\n declaration: RouteInputDeclarationLike\n): string | undefined {\n if (typeof declaration.label !== \"string\") return undefined;\n const label = declaration.label.trim();\n return label.length > 0 ? label : undefined;\n}\n\nexport function declarationToSubmissionDeclaration(\n declaration: RouteInputDeclarationLike\n): QuestSubmissionAssetDeclaration {\n const extensions = readDeclarationExtensions(declaration);\n const filter = readDeclarationFilter(declaration);\n const label = readDeclarationLabel(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 ...(label ? { label } : {}),\n };\n}\n\n/** Materialize contributor declarations from route inputs minus pinned keys. */\nexport function materializeContributorSubmissionAssets(\n routeInputs: Record<string, RouteInputDeclarationLike>,\n pinnedKeys: string[]\n): Record<string, QuestSubmissionAssetDeclaration> {\n const pinned = new Set(pinnedKeys);\n const out: Record<string, QuestSubmissionAssetDeclaration> = {};\n for (const [key, declaration] of Object.entries(routeInputs)) {\n if (pinned.has(key)) continue;\n out[key] = declarationToSubmissionDeclaration(declaration);\n }\n return out;\n}\n\nexport function getPrimaryDeclarationKey(\n declarations: Record<string, QuestSubmissionAssetDeclaration>\n): string | null {\n const entries = Object.entries(declarations);\n if (!entries.length) return null;\n const primary = entries.find(([, d]) => d.primary === true);\n if (primary) return primary[0];\n if (entries.length === 1) return entries[0][0];\n return entries[0][0];\n}\n\nexport function getSubmissionAssetShape(\n item: QuestSubmissionItemInput,\n route?: RouteForSubmissionShape | null\n): {\n contributorKeys: string[];\n declarations: Record<string, QuestSubmissionAssetDeclaration>;\n pinned: KeyedAssetRefs;\n} {\n const pinned: KeyedAssetRefs = item.eval_static_inputs ?? {};\n\n if (item.eval_route_id && route) {\n const routeInputs = getRouteInputDeclarationsFromRoute(route);\n const pinnedKeys = Object.keys(pinned);\n const materialized = materializeContributorSubmissionAssets(\n routeInputs,\n pinnedKeys\n );\n return {\n contributorKeys: Object.keys(materialized),\n declarations: materialized,\n pinned,\n };\n }\n\n const declarations = item.submission_assets ?? {};\n return {\n contributorKeys: Object.keys(declarations),\n declarations,\n pinned,\n };\n}\n\nexport function declarationToPickerFilters(\n declaration: RouteInputDeclarationLike | QuestSubmissionAssetDeclaration | null | undefined\n): AssetDeclarationPickerFilters | null {\n if (!declaration) return null;\n const assetType = declaration.asset_type || undefined;\n if (!assetType) return null;\n\n const filters: AssetDeclarationPickerFilters = {\n assetType,\n hasConstraints: false,\n };\n\n if (assetType === \"file\") {\n const extensions = readDeclarationExtensions(declaration);\n if (extensions.length > 0) {\n filters.extensions = extensions;\n filters.hasConstraints = true;\n }\n const fileType = readDeclarationFilter(declaration);\n if (fileType) {\n filters.fileType = fileType;\n filters.hasConstraints = true;\n }\n }\n\n return filters;\n}\n\nexport function assetMatchesDeclaration(\n asset:\n | {\n assetType?: string | null;\n asset_type?: string | null;\n asset?: { metadata?: Record<string, unknown> } | null;\n }\n | null\n | undefined,\n declaration: RouteInputDeclarationLike | QuestSubmissionAssetDeclaration | null | undefined\n): boolean {\n if (!declaration || !asset) return true;\n const filters = declarationToPickerFilters(declaration);\n if (!filters) return true;\n\n const assetType = asset.assetType ?? asset.asset_type;\n if (filters.assetType && assetType !== filters.assetType) return false;\n\n if (filters.assetType === \"file\") {\n const metadata = asset.asset?.metadata ?? {};\n if (filters.extensions && filters.extensions.length > 0) {\n const ext = String(metadata.extension ?? \"\").toLowerCase();\n if (!ext || !filters.extensions.includes(ext)) return false;\n }\n if (filters.fileType) {\n const type = String(metadata.file_type ?? metadata.type ?? \"\")\n .toLowerCase()\n .split(\"/\")[0];\n const expected = filters.fileType.toLowerCase();\n if (type && expected && !type.includes(expected) && type !== expected) {\n return false;\n }\n }\n }\n\n return true;\n}\n\nexport function getPrimaryAssetRef(\n refs: KeyedAssetRefs | null | undefined,\n declarations?: Record<string, QuestSubmissionAssetDeclaration> | null\n): { key: string; asset_id: string; asset_type: string } | null {\n if (!refs || !Object.keys(refs).length) return null;\n const key =\n (declarations && getPrimaryDeclarationKey(declarations)) ||\n Object.keys(refs)[0];\n const ref = refs[key];\n if (!ref) return null;\n return { key, asset_id: ref.asset_id, asset_type: ref.asset_type };\n}\n\nexport function toRouteInputAssets(\n refs: KeyedAssetRefs | null | undefined\n): Record<string, { assetId: string; assetType: string }> {\n if (!refs) return {};\n return Object.fromEntries(\n Object.entries(refs).map(([key, ref]) => [\n key,\n { assetId: ref.asset_id, assetType: ref.asset_type },\n ])\n );\n}\n\n/** @deprecated Use declarationToPickerFilters */\nexport type EvalSubmissionFilters = AssetDeclarationPickerFilters;\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';function y(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}function _(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 m(e){let n=Array.isArray(e)?e:typeof e=="string"?e.split(/[\s,]+/):[];return Array.from(new Set(n.map(t=>_(t)).filter(t=>!!t)))}function d(e){return m([...Array.isArray(e.file_extensions)?e.file_extensions:[],...Array.isArray(e.input_file_extensions)?e.input_file_extensions:[]].join(","))}function g(e){return e.input_filter||e.filter||void 0}function b(e){var s;let n=e==null?void 0:e.route;if(!n)return {};let t=n.input_assets;if(y(t)){let i=Object.entries(t).filter(([,r])=>y(r));if(i.length>0)return Object.fromEntries(i)}return n.input_type?{[n.input_type]:{asset_type:n.input_type,primary:true,input_filter:n.input_filter,input_file_extensions:(s=n.input_file_extensions)!=null?s:null}}:{}}function x(e){if(typeof e.label!="string")return;let n=e.label.trim();return n.length>0?n:void 0}function R(e){let n=d(e),t=g(e),s=x(e);return {asset_type:e.asset_type,primary:e.primary,input_filter:t!=null?t:null,file_extensions:n.length>0?n:null,required:true,...s?{label:s}:{}}}function A(e,n){let t=new Set(n),s={};for(let[i,r]of Object.entries(e))t.has(i)||(s[i]=R(r));return s}function D(e){let n=Object.entries(e);if(!n.length)return null;let t=n.find(([,s])=>s.primary===true);return t?t[0]:(n.length===1,n[0][0])}function k(e,n){var i,r;let t=(i=e.eval_static_inputs)!=null?i:{};if(e.eval_route_id&&n){let l=b(n),a=Object.keys(t),u=A(l,a);return {contributorKeys:Object.keys(u),declarations:u,pinned:t}}let s=(r=e.submission_assets)!=null?r:{};return {contributorKeys:Object.keys(s),declarations:s,pinned:t}}function S(e){if(!e)return null;let n=e.asset_type||void 0;if(!n)return null;let t={assetType:n,hasConstraints:false};if(n==="file"){let s=d(e);s.length>0&&(t.extensions=s,t.hasConstraints=true);let i=g(e);i&&(t.fileType=i,t.hasConstraints=true);}return t}function I(e,n){var i,r,l,a,u,f;if(!n||!e)return true;let t=S(n);if(!t)return true;let s=(i=e.assetType)!=null?i:e.asset_type;if(t.assetType&&s!==t.assetType)return false;if(t.assetType==="file"){let p=(l=(r=e.asset)==null?void 0:r.metadata)!=null?l:{};if(t.extensions&&t.extensions.length>0){let o=String((a=p.extension)!=null?a:"").toLowerCase();if(!o||!t.extensions.includes(o))return false}if(t.fileType){let o=String((f=(u=p.file_type)!=null?u:p.type)!=null?f:"").toLowerCase().split("/")[0],c=t.fileType.toLowerCase();if(o&&c&&!o.includes(c)&&o!==c)return false}}return true}function h(e,n){if(!e||!Object.keys(e).length)return null;let t=n&&D(n)||Object.keys(e)[0],s=e[t];return s?{key:t,asset_id:s.asset_id,asset_type:s.asset_type}:null}function T(e){return e?Object.fromEntries(Object.entries(e).map(([n,t])=>[n,{assetId:t.asset_id,assetType:t.asset_type}])):{}}exports.a=b;exports.b=R;exports.c=A;exports.d=D;exports.e=k;exports.f=S;exports.g=I;exports.h=h;exports.i=T;//# sourceMappingURL=chunk-J4GKOJZZ.cjs.map
|
|
2
|
+
//# sourceMappingURL=chunk-J4GKOJZZ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/quest-submission-helpers.ts"],"names":["isPlainObject","value","normalizeFileExtension","safe","normalizeFileExtensions","rawValues","entry","readDeclarationExtensions","declaration","readDeclarationFilter","getRouteInputDeclarationsFromRoute","route","_a","detail","inputs","entries","readDeclarationLabel","label","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-J4GKOJZZ.cjs","sourcesContent":["// Pure quest-submission helpers. Kept apart from the zod schemas in\n// `quest-submission.ts` so importing a helper doesn't pull zod into a bundle.\nimport type {\n KeyedAssetRefs,\n QuestSubmissionAssetDeclaration,\n} from \"./quest-submission\";\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\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 label?: 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\nfunction readDeclarationLabel(\n declaration: RouteInputDeclarationLike\n): string | undefined {\n if (typeof declaration.label !== \"string\") return undefined;\n const label = declaration.label.trim();\n return label.length > 0 ? label : undefined;\n}\n\nexport function declarationToSubmissionDeclaration(\n declaration: RouteInputDeclarationLike\n): QuestSubmissionAssetDeclaration {\n const extensions = readDeclarationExtensions(declaration);\n const filter = readDeclarationFilter(declaration);\n const label = readDeclarationLabel(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 ...(label ? { label } : {}),\n };\n}\n\n/** Materialize contributor declarations from route inputs minus pinned keys. */\nexport function materializeContributorSubmissionAssets(\n routeInputs: Record<string, RouteInputDeclarationLike>,\n pinnedKeys: string[]\n): Record<string, QuestSubmissionAssetDeclaration> {\n const pinned = new Set(pinnedKeys);\n const out: Record<string, QuestSubmissionAssetDeclaration> = {};\n for (const [key, declaration] of Object.entries(routeInputs)) {\n if (pinned.has(key)) continue;\n out[key] = declarationToSubmissionDeclaration(declaration);\n }\n return out;\n}\n\nexport function getPrimaryDeclarationKey(\n declarations: Record<string, QuestSubmissionAssetDeclaration>\n): string | null {\n const entries = Object.entries(declarations);\n if (!entries.length) return null;\n const primary = entries.find(([, d]) => d.primary === true);\n if (primary) return primary[0];\n if (entries.length === 1) return entries[0][0];\n return entries[0][0];\n}\n\nexport function getSubmissionAssetShape(\n item: QuestSubmissionItemInput,\n route?: RouteForSubmissionShape | null\n): {\n contributorKeys: string[];\n declarations: Record<string, QuestSubmissionAssetDeclaration>;\n pinned: KeyedAssetRefs;\n} {\n const pinned: KeyedAssetRefs = item.eval_static_inputs ?? {};\n\n if (item.eval_route_id && route) {\n const routeInputs = getRouteInputDeclarationsFromRoute(route);\n const pinnedKeys = Object.keys(pinned);\n const materialized = materializeContributorSubmissionAssets(\n routeInputs,\n pinnedKeys\n );\n return {\n contributorKeys: Object.keys(materialized),\n declarations: materialized,\n pinned,\n };\n }\n\n const declarations = item.submission_assets ?? {};\n return {\n contributorKeys: Object.keys(declarations),\n declarations,\n pinned,\n };\n}\n\nexport function declarationToPickerFilters(\n declaration: RouteInputDeclarationLike | QuestSubmissionAssetDeclaration | null | undefined\n): AssetDeclarationPickerFilters | null {\n if (!declaration) return null;\n const assetType = declaration.asset_type || undefined;\n if (!assetType) return null;\n\n const filters: AssetDeclarationPickerFilters = {\n assetType,\n hasConstraints: false,\n };\n\n if (assetType === \"file\") {\n const extensions = readDeclarationExtensions(declaration);\n if (extensions.length > 0) {\n filters.extensions = extensions;\n filters.hasConstraints = true;\n }\n const fileType = readDeclarationFilter(declaration);\n if (fileType) {\n filters.fileType = fileType;\n filters.hasConstraints = true;\n }\n }\n\n return filters;\n}\n\nexport function assetMatchesDeclaration(\n asset:\n | {\n assetType?: string | null;\n asset_type?: string | null;\n asset?: { metadata?: Record<string, unknown> } | null;\n }\n | null\n | undefined,\n declaration: RouteInputDeclarationLike | QuestSubmissionAssetDeclaration | null | undefined\n): boolean {\n if (!declaration || !asset) return true;\n const filters = declarationToPickerFilters(declaration);\n if (!filters) return true;\n\n const assetType = asset.assetType ?? asset.asset_type;\n if (filters.assetType && assetType !== filters.assetType) return false;\n\n if (filters.assetType === \"file\") {\n const metadata = asset.asset?.metadata ?? {};\n if (filters.extensions && filters.extensions.length > 0) {\n const ext = String(metadata.extension ?? \"\").toLowerCase();\n if (!ext || !filters.extensions.includes(ext)) return false;\n }\n if (filters.fileType) {\n const type = String(metadata.file_type ?? metadata.type ?? \"\")\n .toLowerCase()\n .split(\"/\")[0];\n const expected = filters.fileType.toLowerCase();\n if (type && expected && !type.includes(expected) && type !== expected) {\n return false;\n }\n }\n }\n\n return true;\n}\n\nexport function getPrimaryAssetRef(\n refs: KeyedAssetRefs | null | undefined,\n declarations?: Record<string, QuestSubmissionAssetDeclaration> | null\n): { key: string; asset_id: string; asset_type: string } | null {\n if (!refs || !Object.keys(refs).length) return null;\n const key =\n (declarations && getPrimaryDeclarationKey(declarations)) ||\n Object.keys(refs)[0];\n const ref = refs[key];\n if (!ref) return null;\n return { key, asset_id: ref.asset_id, asset_type: ref.asset_type };\n}\n\nexport function toRouteInputAssets(\n refs: KeyedAssetRefs | null | undefined\n): Record<string, { assetId: string; assetType: string }> {\n if (!refs) return {};\n return Object.fromEntries(\n Object.entries(refs).map(([key, ref]) => [\n key,\n { assetId: ref.asset_id, assetType: ref.asset_type },\n ])\n );\n}\n\n/** @deprecated Use declarationToPickerFilters */\nexport type EvalSubmissionFilters = AssetDeclarationPickerFilters;\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
'use strict';var chunk6DNS4QKU_cjs=require('./chunk-6DNS4QKU.cjs'),zod=require('zod');var S=zod.object({entry_count:zod.number(),file_count:zod.number(),directory_count:zod.number(),total_uncompressed_size:zod.number(),total_compressed_size:zod.number(),preview_truncated:zod.boolean()}),y=zod.object({formula:zod.string(),elements:zod.string().array(),num_atoms:zod.number(),space_group:zod.object({symbol:zod.string(),number:zod.number()}),crystal_system:zod.string(),lattice:zod.object({a:zod.number(),b:zod.number(),c:zod.number(),alpha:zod.number(),beta:zod.number(),gamma:zod.number()}),volume:zod.number(),density:zod.number()}),_=zod.object({id:zod.uuid(),path:zod.string(),bucket:zod.enum(["public-files","files"]),name:zod.string(),type:zod.string(),extension:zod.string(),size:zod.number(),width:zod.optional(zod.number()),height:zod.optional(zod.number()),archive:zod.optional(S),structure:zod.optional(zod.nullable(y))}),F=zod.object({type:zod.string()}),m=_.extend(chunk6DNS4QKU_cjs.b.partial().shape),x=F.extend(chunk6DNS4QKU_cjs.b.partial().shape),b=chunk6DNS4QKU_cjs.f.extend({asset_type:zod.literal("file").default("file"),metadata:m}),M=zod.discriminatedUnion("state",[chunk6DNS4QKU_cjs.h.extend({asset_type:zod.literal("file").default("file"),state:zod.literal("success").default("success"),metadata:m}),chunk6DNS4QKU_cjs.h.extend({asset_type:zod.literal("file").default("file"),state:zod.literal("in-progress"),metadata:x})]).transform(s=>chunk6DNS4QKU_cjs.a(s)),A=b.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,organization:true,user:true,team:true,slug:true,is_pinned_in_team:true}).extend({last_updated:zod.string().default(()=>new Date().toISOString())}).transform(s=>chunk6DNS4QKU_cjs.a(s));exports.a=S;exports.b=y;exports.c=b;exports.d=M;exports.e=A;//# sourceMappingURL=chunk-KE53HYHH.cjs.map
|
|
2
|
+
//# sourceMappingURL=chunk-KE53HYHH.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schema/files.ts"],"names":["ZipArchiveMetadataSchema","object","number","boolean","StructureSummarySchema","string","BaseFileMetadataSchema","uuid","zodEnum","optional","nullable","BaseStubFileMetadataSchema","FileMetadataSchema","AssetMetadataSchema","StubFileMetadataSchema","FileSchema","AssetSchema","literal","CreateFileSchema","discriminatedUnion","CreateAssetSchema","value","normalizeAssetConfigForParsing","updateFileSchema"],"mappings":"sFAqBA,IAAMA,EAA2BC,UAAO,CAAA,CACtC,WAAaC,CAAAA,UAAAA,EACb,CAAA,UAAA,CAAYA,UAAO,EAAA,CACnB,gBAAiBA,UAAO,EAAA,CACxB,uBAAyBA,CAAAA,UAAAA,EACzB,CAAA,qBAAA,CAAuBA,UAAO,EAAA,CAC9B,kBAAmBC,WAAQ,EAC7B,CAAC,CAAA,CAIKC,CAAyBH,CAAAA,UAAAA,CAAO,CACpC,OAAA,CAASI,YACT,CAAA,QAAA,CAAUA,UAAO,EAAA,CAAE,KAAM,EAAA,CACzB,SAAWH,CAAAA,UAAAA,GACX,WAAaD,CAAAA,UAAAA,CAAO,CAAE,MAAA,CAAQI,YAAU,CAAA,MAAA,CAAQH,UAAO,EAAE,CAAC,CAC1D,CAAA,cAAA,CAAgBG,UAAO,EAAA,CACvB,OAASJ,CAAAA,UAAAA,CAAO,CACd,CAAA,CAAGC,YACH,CAAA,CAAA,CAAGA,UAAO,EAAA,CACV,CAAGA,CAAAA,UAAAA,EACH,CAAA,KAAA,CAAOA,YACP,CAAA,IAAA,CAAMA,UAAO,EAAA,CACb,KAAOA,CAAAA,UAAAA,EACT,CAAC,EACD,MAAQA,CAAAA,UAAAA,EACR,CAAA,OAAA,CAASA,UAAO,EAClB,CAAC,CAAA,CAEKI,EAAyBL,UAAO,CAAA,CACpC,EAAIM,CAAAA,QAAAA,EACJ,CAAA,IAAA,CAAMF,UAAO,EAAA,CACb,OAAQG,QAAQ,CAAA,CAAC,cAAgB,CAAA,OAAO,CAAC,CAAA,CACzC,IAAMH,CAAAA,UAAAA,GACN,IAAMA,CAAAA,UAAAA,EACN,CAAA,SAAA,CAAWA,UAAO,EAAA,CAClB,IAAMH,CAAAA,UAAAA,GAEN,KAAOO,CAAAA,YAAAA,CAASP,UAAO,EAAC,EACxB,MAAQO,CAAAA,YAAAA,CAASP,UAAO,EAAC,EACzB,OAASO,CAAAA,YAAAA,CAAST,CAAwB,CAAA,CAC1C,SAAWS,CAAAA,YAAAA,CAASC,YAASN,CAAAA,CAAsB,CAAC,CACtD,CAAC,CAEKO,CAAAA,CAAAA,CAA6BV,UAAO,CAAA,CACxC,IAAMI,CAAAA,UAAAA,EACR,CAAC,CAAA,CAEKO,CAAqBN,CAAAA,CAAAA,CAAuB,MAChDO,CAAAA,mBAAAA,CAAoB,OAAQ,EAAA,CAAE,KAChC,CAEMC,CAAAA,CAAAA,CAAyBH,CAA2B,CAAA,MAAA,CACxDE,mBAAoB,CAAA,OAAA,EAAU,CAAA,KAChC,EAEME,CAAaC,CAAAA,mBAAAA,CAAY,MAAO,CAAA,CACpC,UAAYC,CAAAA,WAAAA,CAAQ,MAAM,CAAA,CAAE,QAAQ,MAAM,CAAA,CAC1C,QAAUL,CAAAA,CACZ,CAAC,CAAA,CAEKM,CAAmBC,CAAAA,sBAAAA,CAAmB,QAAS,CAKnDC,mBAAAA,CAAkB,MAAO,CAAA,CACvB,UAAYH,CAAAA,WAAAA,CAAQ,MAAM,CAAA,CAAE,QAAQ,MAAM,CAAA,CAC1C,KAAOA,CAAAA,WAAAA,CAAQ,SAAS,CAAE,CAAA,OAAA,CAAQ,SAAS,CAAA,CAC3C,SAAUL,CACZ,CAAC,CAEDQ,CAAAA,mBAAAA,CAAkB,MAAO,CAAA,CACvB,UAAYH,CAAAA,WAAAA,CAAQ,MAAM,CAAE,CAAA,OAAA,CAAQ,MAAM,CAAA,CAC1C,KAAOA,CAAAA,WAAAA,CAAQ,aAAa,CAAA,CAC5B,SAAUH,CACZ,CAAC,CACH,CAAC,CAAE,CAAA,SAAA,CAAWO,CAAUC,EAAAA,mBAAAA,CAA+BD,CAAK,CAAC,CAAA,CAEvDE,CAAmBR,CAAAA,CAAAA,CAAW,SACjC,CAAA,IAAA,CAAK,CACJ,OAAA,CAAS,KACT,EAAI,CAAA,IAAA,CACJ,UAAY,CAAA,IAAA,CACZ,YAAc,CAAA,IAAA,CACd,YAAc,CAAA,IAAA,CACd,KAAM,IACN,CAAA,IAAA,CAAM,IACN,CAAA,IAAA,CAAM,IACN,CAAA,iBAAA,CAAmB,IACrB,CAAC,EACA,MAAO,CAAA,CACN,YAAcV,CAAAA,UAAAA,EAAS,CAAA,OAAA,CAAQ,IAAM,IAAI,MAAO,CAAA,WAAA,EAAa,CAC/D,CAAC,CACA,CAAA,SAAA,CAAWgB,CAAUC,EAAAA,mBAAAA,CAA+BD,CAAK,CAAC","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/schema/files.ts"],"names":["ZipArchiveMetadataSchema","object","number","boolean","StructureSummarySchema","string","BaseFileMetadataSchema","uuid","zodEnum","optional","nullable","BaseStubFileMetadataSchema","FileMetadataSchema","AssetMetadataSchema","StubFileMetadataSchema","FileSchema","AssetSchema","literal","CreateFileSchema","discriminatedUnion","CreateAssetSchema","value","normalizeAssetConfigForParsing","updateFileSchema"],"mappings":"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","file":"chunk-KE53HYHH.cjs","sourcesContent":["import {\n object,\n string,\n uuid,\n number,\n enum as zodEnum,\n type z,\n optional,\n literal,\n discriminatedUnion,\n nullable,\n boolean\n} from \"zod\";\n\nimport {\n AssetSchema,\n CreateAssetSchema,\n AssetMetadataSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\n\nconst ZipArchiveMetadataSchema = object({\n entry_count: number(),\n file_count: number(),\n directory_count: number(),\n total_uncompressed_size: number(),\n total_compressed_size: number(),\n preview_truncated: boolean(),\n});\n\n// Crystal structure summary computed from a CIF's content. `null` means the\n// CIF was analyzed and could not be parsed.\nconst StructureSummarySchema = object({\n formula: string(),\n elements: string().array(),\n num_atoms: number(),\n space_group: object({ symbol: string(), number: number() }),\n crystal_system: string(),\n lattice: object({\n a: number(),\n b: number(),\n c: number(),\n alpha: number(),\n beta: number(),\n gamma: number(),\n }),\n volume: number(), // ų\n density: number(), // g/cm³\n});\n\nconst BaseFileMetadataSchema = object({\n id: uuid(), // The id of the file object\n path: string(), // The path of the file in storage\n bucket: zodEnum([\"public-files\", \"files\"]),\n name: string(),\n type: string(),\n extension: string(),\n size: number(),\n // If the file is an image, we store width and height\n width: optional(number()),\n height: optional(number()),\n archive: optional(ZipArchiveMetadataSchema),\n structure: optional(nullable(StructureSummarySchema)),\n});\n\nconst BaseStubFileMetadataSchema = object({\n type: string(),\n});\n\nconst FileMetadataSchema = BaseFileMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst StubFileMetadataSchema = BaseStubFileMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst FileSchema = AssetSchema.extend({\n asset_type: literal(\"file\").default(\"file\"),\n metadata: FileMetadataSchema,\n});\n\nconst CreateFileSchema = discriminatedUnion(\"state\", [\n // Success state, file is ready. Keep `.default()` on this branch only so\n // omitted `state` still creates a ready file. Zod 4.5 treats a defaulted\n // discriminator as claiming `undefined`; two such branches throw\n // `Duplicate discriminator value \"undefined\"` on first parse.\n CreateAssetSchema.extend({\n asset_type: literal(\"file\").default(\"file\"),\n state: literal(\"success\").default(\"success\"),\n metadata: FileMetadataSchema,\n }),\n // In-progress state, file is being processed\n CreateAssetSchema.extend({\n asset_type: literal(\"file\").default(\"file\"),\n state: literal(\"in-progress\"),\n metadata: StubFileMetadataSchema,\n }),\n]).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst updateFileSchema = FileSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n })\n .extend({\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nexport {\n FileSchema,\n CreateFileSchema,\n updateFileSchema,\n ZipArchiveMetadataSchema,\n StructureSummarySchema,\n};\nexport type File = z.infer<typeof FileSchema>;\nexport type CreateFile = z.infer<typeof CreateFileSchema>;\nexport type UpdateFile = z.infer<typeof updateFileSchema>;\nexport type ZipArchiveMetadata = z.infer<typeof ZipArchiveMetadataSchema>;\nexport type StructureSummary = z.infer<typeof StructureSummarySchema>;\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {b as b$1,f,h,a}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {b as b$1,f,h,a}from'./chunk-XSZPAZEE.js';import {object,boolean,number,string,optional,enum as _enum,uuid,nullable,literal,discriminatedUnion}from'zod';var S=object({entry_count:number(),file_count:number(),directory_count:number(),total_uncompressed_size:number(),total_compressed_size:number(),preview_truncated:boolean()}),y=object({formula:string(),elements:string().array(),num_atoms:number(),space_group:object({symbol:string(),number:number()}),crystal_system:string(),lattice:object({a:number(),b:number(),c:number(),alpha:number(),beta:number(),gamma:number()}),volume:number(),density:number()}),_=object({id:uuid(),path:string(),bucket:_enum(["public-files","files"]),name:string(),type:string(),extension:string(),size:number(),width:optional(number()),height:optional(number()),archive:optional(S),structure:optional(nullable(y))}),F=object({type:string()}),m=_.extend(b$1.partial().shape),x=F.extend(b$1.partial().shape),b=f.extend({asset_type:literal("file").default("file"),metadata:m}),M=discriminatedUnion("state",[h.extend({asset_type:literal("file").default("file"),state:literal("success").default("success"),metadata:m}),h.extend({asset_type:literal("file").default("file"),state:literal("in-progress"),metadata:x})]).transform(s=>a(s)),A=b.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(s=>a(s));export{S as a,y as b,b as c,M as d,A as e};//# sourceMappingURL=chunk-O2BXIKRA.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-O2BXIKRA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schema/files.ts"],"names":["ZipArchiveMetadataSchema","object","number","boolean","StructureSummarySchema","string","BaseFileMetadataSchema","uuid","zodEnum","optional","nullable","BaseStubFileMetadataSchema","FileMetadataSchema","AssetMetadataSchema","StubFileMetadataSchema","FileSchema","AssetSchema","literal","CreateFileSchema","discriminatedUnion","CreateAssetSchema","value","normalizeAssetConfigForParsing","updateFileSchema"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/schema/files.ts"],"names":["ZipArchiveMetadataSchema","object","number","boolean","StructureSummarySchema","string","BaseFileMetadataSchema","uuid","zodEnum","optional","nullable","BaseStubFileMetadataSchema","FileMetadataSchema","AssetMetadataSchema","StubFileMetadataSchema","FileSchema","AssetSchema","literal","CreateFileSchema","discriminatedUnion","CreateAssetSchema","value","normalizeAssetConfigForParsing","updateFileSchema"],"mappings":"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","file":"chunk-O2BXIKRA.js","sourcesContent":["import {\n object,\n string,\n uuid,\n number,\n enum as zodEnum,\n type z,\n optional,\n literal,\n discriminatedUnion,\n nullable,\n boolean\n} from \"zod\";\n\nimport {\n AssetSchema,\n CreateAssetSchema,\n AssetMetadataSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\n\nconst ZipArchiveMetadataSchema = object({\n entry_count: number(),\n file_count: number(),\n directory_count: number(),\n total_uncompressed_size: number(),\n total_compressed_size: number(),\n preview_truncated: boolean(),\n});\n\n// Crystal structure summary computed from a CIF's content. `null` means the\n// CIF was analyzed and could not be parsed.\nconst StructureSummarySchema = object({\n formula: string(),\n elements: string().array(),\n num_atoms: number(),\n space_group: object({ symbol: string(), number: number() }),\n crystal_system: string(),\n lattice: object({\n a: number(),\n b: number(),\n c: number(),\n alpha: number(),\n beta: number(),\n gamma: number(),\n }),\n volume: number(), // ų\n density: number(), // g/cm³\n});\n\nconst BaseFileMetadataSchema = object({\n id: uuid(), // The id of the file object\n path: string(), // The path of the file in storage\n bucket: zodEnum([\"public-files\", \"files\"]),\n name: string(),\n type: string(),\n extension: string(),\n size: number(),\n // If the file is an image, we store width and height\n width: optional(number()),\n height: optional(number()),\n archive: optional(ZipArchiveMetadataSchema),\n structure: optional(nullable(StructureSummarySchema)),\n});\n\nconst BaseStubFileMetadataSchema = object({\n type: string(),\n});\n\nconst FileMetadataSchema = BaseFileMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst StubFileMetadataSchema = BaseStubFileMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst FileSchema = AssetSchema.extend({\n asset_type: literal(\"file\").default(\"file\"),\n metadata: FileMetadataSchema,\n});\n\nconst CreateFileSchema = discriminatedUnion(\"state\", [\n // Success state, file is ready. Keep `.default()` on this branch only so\n // omitted `state` still creates a ready file. Zod 4.5 treats a defaulted\n // discriminator as claiming `undefined`; two such branches throw\n // `Duplicate discriminator value \"undefined\"` on first parse.\n CreateAssetSchema.extend({\n asset_type: literal(\"file\").default(\"file\"),\n state: literal(\"success\").default(\"success\"),\n metadata: FileMetadataSchema,\n }),\n // In-progress state, file is being processed\n CreateAssetSchema.extend({\n asset_type: literal(\"file\").default(\"file\"),\n state: literal(\"in-progress\"),\n metadata: StubFileMetadataSchema,\n }),\n]).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst updateFileSchema = FileSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n })\n .extend({\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nexport {\n FileSchema,\n CreateFileSchema,\n updateFileSchema,\n ZipArchiveMetadataSchema,\n StructureSummarySchema,\n};\nexport type File = z.infer<typeof FileSchema>;\nexport type CreateFile = z.infer<typeof CreateFileSchema>;\nexport type UpdateFile = z.infer<typeof updateFileSchema>;\nexport type ZipArchiveMetadata = z.infer<typeof ZipArchiveMetadataSchema>;\nexport type StructureSummary = z.infer<typeof StructureSummarySchema>;\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
'use strict';var chunk6DNS4QKU_cjs=require('./chunk-6DNS4QKU.cjs'),chunkYFEGRZXL_cjs=require('./chunk-YFEGRZXL.cjs'),zod=require('zod');var _=zod.object({type:zod.string(),size:zod.number(),path:zod.string(),extension:zod.string(),name:zod.string(),id:zod.uuid(),bucket:zod.enum(["public-files","files"])}),y=zod.enum(["asset","action"]),z=zod.record(zod.string(),zod.object({kind:y,asset_type:zod.optional(chunkYFEGRZXL_cjs.a)})),F=zod.record(zod.string(),zod.object({values:zod.array(zod.string())})),v=zod.object({table_name:zod.string(),schema:zod.literal("datasets").default("datasets"),columns:zod.array(zod.string()),refs:zod.optional(zod.nullable(z)),enum_columns:zod.optional(zod.nullable(F))}),M=zod.object({column_name:zod.string(),data_type:zod.string(),is_nullable:zod.optional(zod.boolean()),fk_constraint_name:zod.optional(zod.nullable(zod.string())),foreign_table_schema:zod.optional(zod.nullable(zod.string())),foreign_table_name:zod.optional(zod.nullable(zod.string())),foreign_column_name:zod.optional(zod.nullable(zod.string())),semantic_type:zod.optional(zod.nullable(zod.enum(["reference","enum"]))),ref_kind:zod.optional(zod.nullable(y)),asset_type:zod.optional(zod.nullable(chunkYFEGRZXL_cjs.a)),enum_values:zod.optional(zod.nullable(zod.array(zod.string())))}),b=zod.object({kind:zod.literal("asset"),id:zod.uuid(),asset_type:chunkYFEGRZXL_cjs.a,name:zod.nullable(zod.string()),web_url:zod.nullable(zod.string())}),C=zod.object({kind:zod.literal("action"),id:zod.uuid(),status:zod.nullable(zod.string()),route_id:zod.nullable(zod.uuid()),route_name:zod.nullable(zod.string()),name:zod.nullable(zod.string()),web_url:zod.nullable(zod.string()),created_at:zod.nullable(zod.string())}),g=zod.discriminatedUnion("kind",[b,C]),K=zod.record(zod.string(),zod.record(zod.string(),g)),u=v.extend(chunk6DNS4QKU_cjs.b.partial().shape),k=chunk6DNS4QKU_cjs.f.extend({asset_type:zod.literal("dataset").default("dataset"),metadata:u.extend({..._.partial().shape}),preview:zod.array(zod.record(zod.string(),zod.any()))}),U=chunk6DNS4QKU_cjs.h.extend({asset_type:zod.literal("dataset").default("dataset"),metadata:u.extend({..._.shape}),preview:zod.array(zod.record(zod.string(),zod.any()))}).transform(m=>chunk6DNS4QKU_cjs.a(m)),j=chunk6DNS4QKU_cjs.h.extend({asset_type:zod.literal("dataset").default("dataset"),metadata:u,preview:zod.array(zod.record(zod.string(),zod.any()))}).transform(m=>chunk6DNS4QKU_cjs.a(m)),B=k.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,organization:true,user:true,team:true,slug:true,is_pinned_in_team:true}).extend({asset_type:zod.literal("dataset").default("dataset"),last_updated:zod.string().default(()=>new Date().toISOString())}).transform(m=>chunk6DNS4QKU_cjs.a(m));exports.a=y;exports.b=z;exports.c=F;exports.d=M;exports.e=g;exports.f=K;exports.g=k;exports.h=U;exports.i=j;exports.j=B;//# sourceMappingURL=chunk-OMO4474C.cjs.map
|
|
2
|
+
//# sourceMappingURL=chunk-OMO4474C.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schema/datasets.ts"],"names":["DatasetFromFileMetadataSchema","object","string","number","uuid","zodEnum","RefKindSchema","DatasetRefsSchema","record","optional","AssetTypeSchema","DatasetEnumColumnsSchema","array","BaseDatasetMetadataSchema","literal","nullable","EnrichedDatasetSchemaFieldSchema","boolean","ResolvedAssetRefSchema","ResolvedActionRefSchema","ResolvedRefSchema","discriminatedUnion","ResolvedRefsSchema","DatasetMetadataSchema","AssetMetadataSchema","DatasetSchema","AssetSchema","any","CreateDatasetFromFileSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","CreateDatasetFromSchemaSchema","updateDatasetSchema"],"mappings":"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","file":"chunk-KTJTOSL2.cjs","sourcesContent":["import {\n object,\n string,\n uuid,\n number,\n boolean,\n array,\n literal,\n record,\n optional,\n nullable,\n discriminatedUnion,\n type z,\n any,\n enum as zodEnum\n} from \"zod\";\n\nimport {\n AssetSchema,\n CreateAssetSchema,\n AssetMetadataSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { AssetTypeSchema } from \"./common\";\n\nconst DatasetFromFileMetadataSchema = object({\n type: string(),\n size: number(),\n path: string(),\n extension: string(),\n name: string(),\n id: uuid(), // storage file object id,\n bucket: zodEnum([\"public-files\", \"files\"]),\n});\n\n/**\n * The kind of object a dataset reference column points at. The FK target table\n * is the source of truth: public.assets -> \"asset\", public.actions -> \"action\".\n */\nconst RefKindSchema = zodEnum([\"asset\", \"action\"]);\n\n/**\n * Per-column reference declarations.\n *\n * A column becomes a reference when the backend adds a real Postgres FK to a\n * referenceable table. `kind` selects the target table; `asset_type` is an\n * optional target-type hint that only applies when `kind` is \"asset\".\n */\nconst DatasetRefsSchema = record(\n string(),\n object({\n kind: RefKindSchema,\n asset_type: optional(AssetTypeSchema),\n })\n);\n\n/**\n * Per-column enum declarations.\n *\n * Enum columns are stored as ordinary dataset columns plus a Postgres CHECK\n * constraint. The values are surfaced in schema reads so agents can query with\n * known categorical values.\n */\nconst DatasetEnumColumnsSchema = record(\n string(),\n object({\n values: array(string()),\n })\n);\n\nconst BaseDatasetMetadataSchema = object({\n table_name: string(),\n schema: literal(\"datasets\").default(\"datasets\"),\n columns: array(string()),\n refs: optional(nullable(DatasetRefsSchema)),\n enum_columns: optional(nullable(DatasetEnumColumnsSchema)),\n});\n\n/**\n * A single column from GET /datasets/:id/schema, enriched server-side.\n *\n * The FK fields come straight from get_table_schema. `is_nullable` is the\n * Postgres nullability of the column. `semantic_type` is pure inference:\n * \"reference\" when the column has an FK to a referenceable table, with\n * `ref_kind` naming which one (\"asset\" | \"action\"). The optional `asset_type`\n * is the declared target-type hint from metadata.refs (display + soft\n * validation only, asset kind only). `semantic_type: \"enum\"` comes from\n * metadata.enum_columns and exposes its known values.\n */\nconst EnrichedDatasetSchemaFieldSchema = object({\n column_name: string(),\n data_type: string(),\n is_nullable: optional(boolean()),\n fk_constraint_name: optional(nullable(string())),\n foreign_table_schema: optional(nullable(string())),\n foreign_table_name: optional(nullable(string())),\n foreign_column_name: optional(nullable(string())),\n semantic_type: optional(nullable(zodEnum([\"reference\", \"enum\"]))),\n ref_kind: optional(nullable(RefKindSchema)),\n asset_type: optional(nullable(AssetTypeSchema)),\n enum_values: optional(nullable(array(string()))),\n});\n\n/**\n * A resolved reference returned in the `resolved_refs` sidecar of\n * GET /datasets/:id/data?resolve_refs=true. Discriminated on `kind` so asset\n * and action references share one vocabulary while carrying kind-specific\n * fields.\n */\nconst ResolvedAssetRefSchema = object({\n kind: literal(\"asset\"),\n id: uuid(),\n asset_type: AssetTypeSchema,\n name: nullable(string()),\n web_url: nullable(string()),\n});\n\nconst ResolvedActionRefSchema = object({\n kind: literal(\"action\"),\n id: uuid(),\n status: nullable(string()),\n route_id: nullable(uuid()),\n route_name: nullable(string()),\n name: nullable(string()),\n web_url: nullable(string()),\n created_at: nullable(string()),\n});\n\nconst ResolvedRefSchema = discriminatedUnion(\"kind\", [\n ResolvedAssetRefSchema,\n ResolvedActionRefSchema,\n]);\n\n/** column -> (referenced uuid -> resolved reference). */\nconst ResolvedRefsSchema = record(\n string(),\n record(string(), ResolvedRefSchema)\n);\n\nconst DatasetMetadataSchema = BaseDatasetMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst DatasetSchema = AssetSchema.extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n metadata: DatasetMetadataSchema.extend({\n ...DatasetFromFileMetadataSchema.partial().shape,\n }),\n preview: array(record(string(), any())),\n});\n\nconst CreateDatasetFromFileSchema = CreateAssetSchema.extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n metadata: DatasetMetadataSchema.extend({\n ...DatasetFromFileMetadataSchema.shape,\n }),\n preview: array(record(string(), any())),\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst CreateDatasetFromSchemaSchema = CreateAssetSchema.extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n metadata: DatasetMetadataSchema,\n preview: array(record(string(), any())),\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst updateDatasetSchema = DatasetSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n })\n .extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nexport {\n DatasetSchema,\n CreateDatasetFromFileSchema,\n CreateDatasetFromSchemaSchema,\n updateDatasetSchema,\n RefKindSchema,\n DatasetRefsSchema,\n DatasetEnumColumnsSchema,\n EnrichedDatasetSchemaFieldSchema,\n ResolvedRefSchema,\n ResolvedRefsSchema,\n};\nexport type Dataset = z.infer<typeof DatasetSchema>;\nexport type CreateFromFileDataset = z.infer<typeof CreateDatasetFromFileSchema>;\nexport type CreateFromSchemaDataset = z.infer<typeof CreateDatasetFromSchemaSchema>;\nexport type UpdateDataset = z.infer<typeof updateDatasetSchema>;\nexport type RefKind = z.infer<typeof RefKindSchema>;\nexport type DatasetRefs = z.infer<typeof DatasetRefsSchema>;\nexport type DatasetEnumColumns = z.infer<typeof DatasetEnumColumnsSchema>;\nexport type EnrichedDatasetSchemaField = z.infer<\n typeof EnrichedDatasetSchemaFieldSchema\n>;\nexport type ResolvedRef = z.infer<typeof ResolvedRefSchema>;\nexport type ResolvedRefs = z.infer<typeof ResolvedRefsSchema>;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/schema/datasets.ts"],"names":["DatasetFromFileMetadataSchema","object","string","number","uuid","zodEnum","RefKindSchema","DatasetRefsSchema","record","optional","AssetTypeSchema","DatasetEnumColumnsSchema","array","BaseDatasetMetadataSchema","literal","nullable","EnrichedDatasetSchemaFieldSchema","boolean","ResolvedAssetRefSchema","ResolvedActionRefSchema","ResolvedRefSchema","discriminatedUnion","ResolvedRefsSchema","DatasetMetadataSchema","AssetMetadataSchema","DatasetSchema","AssetSchema","any","CreateDatasetFromFileSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","CreateDatasetFromSchemaSchema","updateDatasetSchema"],"mappings":"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","file":"chunk-OMO4474C.cjs","sourcesContent":["import {\n object,\n string,\n uuid,\n number,\n boolean,\n array,\n literal,\n record,\n optional,\n nullable,\n discriminatedUnion,\n type z,\n any,\n enum as zodEnum\n} from \"zod\";\n\nimport {\n AssetSchema,\n CreateAssetSchema,\n AssetMetadataSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { AssetTypeSchema } from \"./common\";\n\nconst DatasetFromFileMetadataSchema = object({\n type: string(),\n size: number(),\n path: string(),\n extension: string(),\n name: string(),\n id: uuid(), // storage file object id,\n bucket: zodEnum([\"public-files\", \"files\"]),\n});\n\n/**\n * The kind of object a dataset reference column points at. The FK target table\n * is the source of truth: public.assets -> \"asset\", public.actions -> \"action\".\n */\nconst RefKindSchema = zodEnum([\"asset\", \"action\"]);\n\n/**\n * Per-column reference declarations.\n *\n * A column becomes a reference when the backend adds a real Postgres FK to a\n * referenceable table. `kind` selects the target table; `asset_type` is an\n * optional target-type hint that only applies when `kind` is \"asset\".\n */\nconst DatasetRefsSchema = record(\n string(),\n object({\n kind: RefKindSchema,\n asset_type: optional(AssetTypeSchema),\n })\n);\n\n/**\n * Per-column enum declarations.\n *\n * Enum columns are stored as ordinary dataset columns plus a Postgres CHECK\n * constraint. The values are surfaced in schema reads so agents can query with\n * known categorical values.\n */\nconst DatasetEnumColumnsSchema = record(\n string(),\n object({\n values: array(string()),\n })\n);\n\nconst BaseDatasetMetadataSchema = object({\n table_name: string(),\n schema: literal(\"datasets\").default(\"datasets\"),\n columns: array(string()),\n refs: optional(nullable(DatasetRefsSchema)),\n enum_columns: optional(nullable(DatasetEnumColumnsSchema)),\n});\n\n/**\n * A single column from GET /datasets/:id/schema, enriched server-side.\n *\n * The FK fields come straight from get_table_schema. `is_nullable` is the\n * Postgres nullability of the column. `semantic_type` is pure inference:\n * \"reference\" when the column has an FK to a referenceable table, with\n * `ref_kind` naming which one (\"asset\" | \"action\"). The optional `asset_type`\n * is the declared target-type hint from metadata.refs (display + soft\n * validation only, asset kind only). `semantic_type: \"enum\"` comes from\n * metadata.enum_columns and exposes its known values.\n */\nconst EnrichedDatasetSchemaFieldSchema = object({\n column_name: string(),\n data_type: string(),\n is_nullable: optional(boolean()),\n fk_constraint_name: optional(nullable(string())),\n foreign_table_schema: optional(nullable(string())),\n foreign_table_name: optional(nullable(string())),\n foreign_column_name: optional(nullable(string())),\n semantic_type: optional(nullable(zodEnum([\"reference\", \"enum\"]))),\n ref_kind: optional(nullable(RefKindSchema)),\n asset_type: optional(nullable(AssetTypeSchema)),\n enum_values: optional(nullable(array(string()))),\n});\n\n/**\n * A resolved reference returned in the `resolved_refs` sidecar of\n * GET /datasets/:id/data?resolve_refs=true. Discriminated on `kind` so asset\n * and action references share one vocabulary while carrying kind-specific\n * fields.\n */\nconst ResolvedAssetRefSchema = object({\n kind: literal(\"asset\"),\n id: uuid(),\n asset_type: AssetTypeSchema,\n name: nullable(string()),\n web_url: nullable(string()),\n});\n\nconst ResolvedActionRefSchema = object({\n kind: literal(\"action\"),\n id: uuid(),\n status: nullable(string()),\n route_id: nullable(uuid()),\n route_name: nullable(string()),\n name: nullable(string()),\n web_url: nullable(string()),\n created_at: nullable(string()),\n});\n\nconst ResolvedRefSchema = discriminatedUnion(\"kind\", [\n ResolvedAssetRefSchema,\n ResolvedActionRefSchema,\n]);\n\n/** column -> (referenced uuid -> resolved reference). */\nconst ResolvedRefsSchema = record(\n string(),\n record(string(), ResolvedRefSchema)\n);\n\nconst DatasetMetadataSchema = BaseDatasetMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst DatasetSchema = AssetSchema.extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n metadata: DatasetMetadataSchema.extend({\n ...DatasetFromFileMetadataSchema.partial().shape,\n }),\n preview: array(record(string(), any())),\n});\n\nconst CreateDatasetFromFileSchema = CreateAssetSchema.extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n metadata: DatasetMetadataSchema.extend({\n ...DatasetFromFileMetadataSchema.shape,\n }),\n preview: array(record(string(), any())),\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst CreateDatasetFromSchemaSchema = CreateAssetSchema.extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n metadata: DatasetMetadataSchema,\n preview: array(record(string(), any())),\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst updateDatasetSchema = DatasetSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n is_pinned_in_team: true,\n })\n .extend({\n asset_type: literal(\"dataset\").default(\"dataset\"),\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nexport {\n DatasetSchema,\n CreateDatasetFromFileSchema,\n CreateDatasetFromSchemaSchema,\n updateDatasetSchema,\n RefKindSchema,\n DatasetRefsSchema,\n DatasetEnumColumnsSchema,\n EnrichedDatasetSchemaFieldSchema,\n ResolvedRefSchema,\n ResolvedRefsSchema,\n};\nexport type Dataset = z.infer<typeof DatasetSchema>;\nexport type CreateFromFileDataset = z.infer<typeof CreateDatasetFromFileSchema>;\nexport type CreateFromSchemaDataset = z.infer<typeof CreateDatasetFromSchemaSchema>;\nexport type UpdateDataset = z.infer<typeof updateDatasetSchema>;\nexport type RefKind = z.infer<typeof RefKindSchema>;\nexport type DatasetRefs = z.infer<typeof DatasetRefsSchema>;\nexport type DatasetEnumColumns = z.infer<typeof DatasetEnumColumnsSchema>;\nexport type EnrichedDatasetSchemaField = z.infer<\n typeof EnrichedDatasetSchemaFieldSchema\n>;\nexport type ResolvedRef = z.infer<typeof ResolvedRefSchema>;\nexport type ResolvedRefs = z.infer<typeof ResolvedRefsSchema>;\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a as a$1}from'./chunk-WE6CXCEQ.js';import {b}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a as a$1}from'./chunk-WE6CXCEQ.js';import {b}from'./chunk-BYYDLMAE.js';import {f,e,g,a}from'./chunk-XSZPAZEE.js';import {d}from'./chunk-NLU672VS.js';import {a as a$2}from'./chunk-42ADEGDM.js';import {uuidv7}from'uuidv7';import {optional,literal,nullable,object,array,string,record,any,number}from'zod';var u=f.extend({asset_type:literal("comment").default("comment"),preview:optional(nullable(object({type:string().refine(o=>o==="doc"),content:array(record(string(),any()))}).default({type:"doc",content:[]})))}),w=u.partial().omit({id:true,user_id:true}).extend({asset_type:literal("comment").default("comment"),id:string().default(()=>uuidv7()),name:string().default(""),attribution:optional(nullable(e)).transform(o=>e.parse(o!=null?o:g)),created_at:string().default(()=>new Date().toISOString()),last_updated:string().default(()=>new Date().toISOString())}).transform(o=>a(o)),A=array(object({count:number()})),D=u.extend({content:optional(nullable(b)),assets:optional(nullable(array(f.partial()))),users:optional(nullable(array(d.partial()))),actions:optional(nullable(array(a$2))),reactions:optional(nullable(array(a$1))),replies:optional(nullable(A)),repliesCount:optional(number())});export{u as a,w as b,A as c,D as d};//# sourceMappingURL=chunk-PMOXYEAS.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-PMOXYEAS.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schema/comments.ts"],"names":["CommentSchema","AssetSchema","literal","optional","nullable","object","string","x","array","record","any","CreateCommentSchema","uuidv7","AttributionSchema","value","DEFAULT_ATTRIBUTION","normalizeAssetConfigForParsing","CommentRepliesAggregateSchema","number","ReadCommentSchema","ContentSchema","ProfileSchema","ContentActionRefSchema","reactionSchema"],"mappings":"sTAyBA,IAAMA,CAAgBC,CAAAA,CAAAA,CAAY,OAAO,CACvC,UAAA,CAAYC,OAAQ,CAAA,SAAS,CAAE,CAAA,OAAA,CAAQ,SAAS,CAChD,CAAA,OAAA,CAASC,QACPC,CAAAA,QAAAA,CACEC,MAAO,CAAA,CACL,KAAMC,MAAO,EAAA,CAAE,MAAQC,CAAAA,CAAAA,EAAMA,CAAM,GAAA,KAAK,EACxC,OAASC,CAAAA,KAAAA,CAAMC,MAAOH,CAAAA,MAAAA,EAAUI,CAAAA,GAAAA,EAAK,CAAC,CACxC,CAAC,CAAA,CAAE,OAAQ,CAAA,CAAE,KAAM,KAAO,CAAA,OAAA,CAAS,EAAG,CAAC,CACzC,CACF,CACF,CAAC,CAEKC,CAAAA,CAAAA,CAAsBX,CAAc,CAAA,OAAA,GACvC,IAAK,CAAA,CACJ,EAAI,CAAA,IAAA,CACJ,OAAS,CAAA,IACX,CAAC,CACA,CAAA,MAAA,CAAO,CACN,UAAA,CAAYE,OAAQ,CAAA,SAAS,EAAE,OAAQ,CAAA,SAAS,CAChD,CAAA,EAAA,CAAII,MAAO,EAAA,CAAE,QAAQ,IAAMM,MAAAA,EAAQ,CAAA,CACnC,IAAMN,CAAAA,MAAAA,GAAS,OAAQ,CAAA,EAAE,CACzB,CAAA,WAAA,CAAaH,QAASC,CAAAA,QAAAA,CAASS,CAAiB,CAAC,CAAA,CAAE,SAAWC,CAAAA,CAAAA,EAC5DD,CAAkB,CAAA,KAAA,CAAMC,GAAA,IAAAA,CAAAA,CAAAA,CAASC,CAAmB,CACtD,CACA,CAAA,UAAA,CAAYT,QAAS,CAAA,OAAA,CAAQ,IAAM,IAAI,IAAK,EAAA,CAAE,aAAa,CAAA,CAC3D,YAAcA,CAAAA,MAAAA,EAAS,CAAA,OAAA,CAAQ,IAAM,IAAI,IAAA,EAAO,CAAA,WAAA,EAAa,CAC/D,CAAC,CACA,CAAA,SAAA,CAAWQ,CAAUE,EAAAA,CAAAA,CAA+BF,CAAK,CAAC,EAMvDG,CAAgCT,CAAAA,KAAAA,CACpCH,MAAO,CAAA,CACL,KAAOa,CAAAA,MAAAA,EACT,CAAC,CACH,CAGMC,CAAAA,CAAAA,CAAoBnB,CAAc,CAAA,MAAA,CAAO,CAC7C,OAASG,CAAAA,QAAAA,CAASC,QAASgB,CAAAA,CAAa,CAAC,CAAA,CACzC,OAAQjB,QAASC,CAAAA,QAAAA,CAASI,KAAMP,CAAAA,CAAAA,CAAY,OAAQ,EAAC,CAAC,CAAC,CAAA,CACvD,KAAOE,CAAAA,QAAAA,CAASC,QAASI,CAAAA,KAAAA,CAAMa,EAAc,OAAQ,EAAC,CAAC,CAAC,CACxD,CAAA,OAAA,CAASlB,SAASC,QAASI,CAAAA,KAAAA,CAAMc,GAAsB,CAAC,CAAC,CAAA,CACzD,UAAWnB,QAASC,CAAAA,QAAAA,CAASI,KAAMe,CAAAA,GAAc,CAAC,CAAC,EACnD,OAASpB,CAAAA,QAAAA,CAASC,QAASa,CAAAA,CAA6B,CAAC,CAAA,CAEzD,aAAcd,QAASe,CAAAA,MAAAA,EAAQ,CACjC,CAAC","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/schema/comments.ts"],"names":["CommentSchema","AssetSchema","literal","optional","nullable","object","string","x","array","record","any","CreateCommentSchema","uuidv7","AttributionSchema","value","DEFAULT_ATTRIBUTION","normalizeAssetConfigForParsing","CommentRepliesAggregateSchema","number","ReadCommentSchema","ContentSchema","ProfileSchema","ContentActionRefSchema","reactionSchema"],"mappings":"sTAyBA,IAAMA,CAAgBC,CAAAA,CAAAA,CAAY,OAAO,CACvC,UAAA,CAAYC,OAAQ,CAAA,SAAS,CAAE,CAAA,OAAA,CAAQ,SAAS,CAChD,CAAA,OAAA,CAASC,QACPC,CAAAA,QAAAA,CACEC,MAAO,CAAA,CACL,KAAMC,MAAO,EAAA,CAAE,MAAQC,CAAAA,CAAAA,EAAMA,CAAM,GAAA,KAAK,EACxC,OAASC,CAAAA,KAAAA,CAAMC,MAAOH,CAAAA,MAAAA,EAAUI,CAAAA,GAAAA,EAAK,CAAC,CACxC,CAAC,CAAA,CAAE,OAAQ,CAAA,CAAE,KAAM,KAAO,CAAA,OAAA,CAAS,EAAG,CAAC,CACzC,CACF,CACF,CAAC,CAEKC,CAAAA,CAAAA,CAAsBX,CAAc,CAAA,OAAA,GACvC,IAAK,CAAA,CACJ,EAAI,CAAA,IAAA,CACJ,OAAS,CAAA,IACX,CAAC,CACA,CAAA,MAAA,CAAO,CACN,UAAA,CAAYE,OAAQ,CAAA,SAAS,EAAE,OAAQ,CAAA,SAAS,CAChD,CAAA,EAAA,CAAII,MAAO,EAAA,CAAE,QAAQ,IAAMM,MAAAA,EAAQ,CAAA,CACnC,IAAMN,CAAAA,MAAAA,GAAS,OAAQ,CAAA,EAAE,CACzB,CAAA,WAAA,CAAaH,QAASC,CAAAA,QAAAA,CAASS,CAAiB,CAAC,CAAA,CAAE,SAAWC,CAAAA,CAAAA,EAC5DD,CAAkB,CAAA,KAAA,CAAMC,GAAA,IAAAA,CAAAA,CAAAA,CAASC,CAAmB,CACtD,CACA,CAAA,UAAA,CAAYT,QAAS,CAAA,OAAA,CAAQ,IAAM,IAAI,IAAK,EAAA,CAAE,aAAa,CAAA,CAC3D,YAAcA,CAAAA,MAAAA,EAAS,CAAA,OAAA,CAAQ,IAAM,IAAI,IAAA,EAAO,CAAA,WAAA,EAAa,CAC/D,CAAC,CACA,CAAA,SAAA,CAAWQ,CAAUE,EAAAA,CAAAA,CAA+BF,CAAK,CAAC,EAMvDG,CAAgCT,CAAAA,KAAAA,CACpCH,MAAO,CAAA,CACL,KAAOa,CAAAA,MAAAA,EACT,CAAC,CACH,CAGMC,CAAAA,CAAAA,CAAoBnB,CAAc,CAAA,MAAA,CAAO,CAC7C,OAASG,CAAAA,QAAAA,CAASC,QAASgB,CAAAA,CAAa,CAAC,CAAA,CACzC,OAAQjB,QAASC,CAAAA,QAAAA,CAASI,KAAMP,CAAAA,CAAAA,CAAY,OAAQ,EAAC,CAAC,CAAC,CAAA,CACvD,KAAOE,CAAAA,QAAAA,CAASC,QAASI,CAAAA,KAAAA,CAAMa,EAAc,OAAQ,EAAC,CAAC,CAAC,CACxD,CAAA,OAAA,CAASlB,SAASC,QAASI,CAAAA,KAAAA,CAAMc,GAAsB,CAAC,CAAC,CAAA,CACzD,UAAWnB,QAASC,CAAAA,QAAAA,CAASI,KAAMe,CAAAA,GAAc,CAAC,CAAC,EACnD,OAASpB,CAAAA,QAAAA,CAASC,QAASa,CAAAA,CAA6B,CAAC,CAAA,CAEzD,aAAcd,QAASe,CAAAA,MAAAA,EAAQ,CACjC,CAAC","file":"chunk-PMOXYEAS.js","sourcesContent":["import { uuidv7 } from \"uuidv7\";\nimport {\n object,\n string,\n number,\n array,\n type z,\n record,\n any,\n literal,\n optional,\n nullable\n} from \"zod\";\n\nimport {\n AssetSchema,\n AttributionSchema,\n DEFAULT_ATTRIBUTION,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { ContentActionRefSchema } from \"./content-refs\";\nimport { ContentSchema } from \"./posts\";\nimport { reactionSchema } from \"./reactions\";\nimport { ProfileSchema } from \"./users\";\n\nconst CommentSchema = AssetSchema.extend({\n asset_type: literal(\"comment\").default(\"comment\"),\n preview: optional(\n nullable(\n object({\n type: string().refine((x) => x === \"doc\"),\n content: array(record(string(), any())),\n }).default({ type: \"doc\", content: [] })\n )\n ),\n});\n\nconst CreateCommentSchema = CommentSchema.partial()\n .omit({\n id: true,\n user_id: true,\n })\n .extend({\n asset_type: literal(\"comment\").default(\"comment\"),\n id: string().default(() => uuidv7()),\n name: string().default(\"\"),\n attribution: optional(nullable(AttributionSchema)).transform((value) =>\n AttributionSchema.parse(value ?? DEFAULT_ATTRIBUTION)\n ),\n created_at: string().default(() => new Date().toISOString()),\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\n/**\n * Supabase aggregate from `replies:connections!target_id(count)`.\n * List endpoints leave this as `[{ count }]`; prefer reading `replies[0]?.count`.\n */\nconst CommentRepliesAggregateSchema = array(\n object({\n count: number(),\n })\n);\n\n/** Comment as returned from read/list APIs, with content and resolved embeds. */\nconst ReadCommentSchema = CommentSchema.extend({\n content: optional(nullable(ContentSchema)),\n assets: optional(nullable(array(AssetSchema.partial()))),\n users: optional(nullable(array(ProfileSchema.partial()))),\n actions: optional(nullable(array(ContentActionRefSchema))),\n reactions: optional(nullable(array(reactionSchema))),\n replies: optional(nullable(CommentRepliesAggregateSchema)),\n /** Flattened count set by single-comment read; prefer `replies[0]?.count` on lists. */\n repliesCount: optional(number()),\n});\n\nexport {\n CommentSchema,\n CreateCommentSchema,\n CommentRepliesAggregateSchema,\n ReadCommentSchema,\n};\nexport type Comment = z.infer<typeof CommentSchema>;\nexport type CreateComment = z.infer<typeof CreateCommentSchema>;\nexport type CommentRepliesAggregate = z.infer<\n typeof CommentRepliesAggregateSchema\n>;\nexport type ReadComment = z.infer<typeof ReadCommentSchema>;\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var chunk5PWVQ2XA_cjs=require('./chunk-5PWVQ2XA.cjs'),chunkWMCUQQ2Q_cjs=require('./chunk-WMCUQQ2Q.cjs'),
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
'use strict';var chunk5PWVQ2XA_cjs=require('./chunk-5PWVQ2XA.cjs'),chunkWMCUQQ2Q_cjs=require('./chunk-WMCUQQ2Q.cjs'),chunkYFEGRZXL_cjs=require('./chunk-YFEGRZXL.cjs'),chunkJRBBNFFI_cjs=require('./chunk-JRBBNFFI.cjs'),uuidv7=require('uuidv7'),zod=require('zod');var u=zod.object({id:zod.uuid(),org_id:zod.uuid(),organization:chunk5PWVQ2XA_cjs.d,name:zod.string(),description:zod.optional(zod.nullable(zod.object({text:zod.string(),json:zod.record(zod.string(),zod.any())}))),default_role:chunkYFEGRZXL_cjs.c,visibility:chunkYFEGRZXL_cjs.b,actor_type_policy:zod.optional(zod.nullable(chunk5PWVQ2XA_cjs.b)),source_policy:zod.optional(zod.nullable(chunk5PWVQ2XA_cjs.c)),join_policy:zod.optional(chunk5PWVQ2XA_cjs.a).default("open"),userMembership:zod.optional(zod.nullable(zod.object({user_id:zod.uuid(),role:chunkYFEGRZXL_cjs.c}))),userJoinRequest:zod.optional(zod.nullable(zod.object({id:zod.uuid(),status:zod.string(),created_at:zod.string()}))),memberCount:zod.optional(zod.nullable(zod.number())),members:zod.array(zod.object({user_id:zod.uuid(),role:chunkYFEGRZXL_cjs.c,added_at:zod.string(),user:zod.optional(zod.nullable(chunkWMCUQQ2Q_cjs.d.partial()))})),created_at:zod.string()}),J=u.extend({id:zod.string().default(()=>uuidv7.uuidv7()),default_role:chunkYFEGRZXL_cjs.c.default("write").refine(n=>n==="read"||n==="write"),visibility:chunkYFEGRZXL_cjs.b.default("public").refine(n=>n==="public"||n==="organization"),created_at:zod.string().default(()=>new Date().toISOString())}).omit({organization:true,userMembership:true,userJoinRequest:true,memberCount:true,members:true,created_at:true}),z=u.extend({userMembership:zod.optional(zod.nullable(zod.object({user_id:zod.uuid(),role:chunkYFEGRZXL_cjs.c}))),memberCount:zod.number(),members:zod.array(zod.object({user_id:zod.uuid(),role:chunkYFEGRZXL_cjs.c,added_at:zod.string(),user:zod.optional(zod.nullable(chunkWMCUQQ2Q_cjs.d.partial()))})),organization:zod.optional(zod.nullable(chunk5PWVQ2XA_cjs.d.partial())),assets:zod.optional(zod.nullable(zod.array(zod.record(zod.string(),zod.any())))),users:zod.optional(zod.nullable(zod.array(chunkWMCUQQ2Q_cjs.d.partial()))),actions:zod.optional(zod.nullable(zod.array(chunkJRBBNFFI_cjs.a)))}),M=zod.array(z.extend({label:zod.string(),value:zod.string()})),U=u.partial().omit({org_id:true,organization:true,created_at:true}).extend({id:zod.uuid()});exports.a=u;exports.b=J;exports.c=z;exports.d=M;exports.e=U;//# sourceMappingURL=chunk-R52RJPI3.cjs.map
|
|
2
|
+
//# sourceMappingURL=chunk-R52RJPI3.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schema/teams.ts"],"names":["TeamSchema","object","uuid","OrganizationsSchema","string","optional","nullable","record","any","RoleSchema","VisibilitySchema","ActorTypePolicySchema","SourcePolicySchema","JoinPolicySchema","number","array","ProfileSchema","CreateTeamSchema","uuidv7","v","ReadTeamSchema","zodRecord","ContentActionRefSchema","ReadTeamsSchema","UpdateTeamSchema"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/schema/teams.ts"],"names":["TeamSchema","object","uuid","OrganizationsSchema","string","optional","nullable","record","any","RoleSchema","VisibilitySchema","ActorTypePolicySchema","SourcePolicySchema","JoinPolicySchema","number","array","ProfileSchema","CreateTeamSchema","uuidv7","v","ReadTeamSchema","zodRecord","ContentActionRefSchema","ReadTeamsSchema","UpdateTeamSchema"],"mappings":"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","file":"chunk-R52RJPI3.cjs","sourcesContent":["import { uuidv7 } from \"uuidv7\";\nimport {\n object,\n string,\n uuid,\n number,\n array,\n type z,\n optional,\n nullable,\n any,\n record\n} from \"zod\";\n\nimport { RoleSchema, VisibilitySchema } from \"./common\";\nimport { ContentActionRefSchema } from \"./content-refs\";\nimport {\n OrganizationsSchema,\n ActorTypePolicySchema,\n SourcePolicySchema,\n JoinPolicySchema,\n} from \"./organizations\";\nimport { ProfileSchema } from \"./users\";\nimport { record as zodRecord } from \"zod\";\n\nconst TeamSchema = object({\n id: uuid(),\n org_id: uuid(),\n organization: OrganizationsSchema,\n name: string(),\n description: optional(\n nullable(\n object({\n text: string(),\n json: record(string(), any()),\n })\n )\n ),\n default_role: RoleSchema,\n visibility: VisibilitySchema,\n actor_type_policy: optional(nullable(ActorTypePolicySchema)),\n source_policy: optional(nullable(SourcePolicySchema)),\n join_policy: optional(JoinPolicySchema).default(\"open\"),\n userMembership: optional(\n nullable(\n object({\n user_id: uuid(),\n role: RoleSchema,\n })\n )\n ),\n userJoinRequest: optional(\n nullable(\n object({\n id: uuid(),\n status: string(),\n created_at: string(),\n })\n )\n ),\n memberCount: optional(nullable(number())),\n members: array(\n object({\n user_id: uuid(),\n role: RoleSchema,\n added_at: string(),\n user: optional(nullable(ProfileSchema.partial())),\n })\n ),\n created_at: string(),\n});\n\nconst CreateTeamSchema = TeamSchema.extend({\n id: string().default(() => uuidv7()),\n default_role: RoleSchema.default(\"write\").refine(\n (v) => v === \"read\" || v === \"write\"\n ),\n visibility: VisibilitySchema.default(\"public\").refine(\n (v) => v === \"public\" || v === \"organization\"\n ),\n created_at: string().default(() => new Date().toISOString()),\n}).omit({\n organization: true,\n userMembership: true,\n userJoinRequest: true,\n memberCount: true,\n members: true,\n created_at: true,\n});\n\nconst ReadTeamSchema = TeamSchema.extend({\n userMembership: optional(\n nullable(\n object({\n user_id: uuid(),\n role: RoleSchema,\n })\n )\n ),\n memberCount: number(),\n members: array(\n object({\n user_id: uuid(),\n role: RoleSchema,\n added_at: string(),\n user: optional(nullable(ProfileSchema.partial())),\n })\n ),\n organization: optional(nullable(OrganizationsSchema.partial())),\n // Enriched fields used for rendering embedded references in description.\n // assets stay loose here — AssetSchema imports TeamSchema (cycle).\n assets: optional(\n nullable(array(zodRecord(string(), any())))\n ),\n users: optional(\n nullable(array(ProfileSchema.partial()))\n ),\n actions: optional(nullable(array(ContentActionRefSchema))),\n});\n\nconst ReadTeamsSchema = array(\n ReadTeamSchema.extend({\n label: string(),\n value: string(),\n })\n);\n\nconst UpdateTeamSchema = TeamSchema.partial()\n .omit({\n org_id: true,\n organization: true,\n created_at: true,\n })\n .extend({\n id: uuid(),\n });\n\nexport {\n TeamSchema,\n CreateTeamSchema,\n ReadTeamSchema,\n ReadTeamsSchema,\n UpdateTeamSchema,\n};\nexport type Team = z.infer<typeof TeamSchema>;\nexport type CreateTeam = z.infer<typeof CreateTeamSchema>;\nexport type ReadTeam = z.infer<typeof ReadTeamSchema>;\nexport type ReadTeams = z.infer<typeof ReadTeamsSchema>;\nexport type UpdateTeam = z.infer<typeof UpdateTeamSchema>;\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a,d as d$1,c}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a,d as d$1,c}from'./chunk-SUVNXKE6.js';import {f,b,h,a as a$2}from'./chunk-XSZPAZEE.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"]),_=_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:_.default("pending"),auto_skipped:optional(nullable(string().or(any()))),status_before_auto_skip:optional(nullable(_)),sort_order:number().default(0),type:string().default("task"),created_by:uuid(),assignee_id:optional(nullable(uuid())),expected_asset_type:optional(nullable(a$1)),reward_xp:number().int().nonnegative().default(0),reward_currency: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(),label:optional(nullable(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:_,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(_)}),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,_ 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-RO6NRIGU.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-RO6NRIGU.js.map
|