@ourofoundation/ouro-js 3.2.1 → 3.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-DE2Z5AOM.js +8 -0
- package/dist/chunk-DE2Z5AOM.js.map +1 -0
- package/dist/{chunk-Y7MYLO3W.js → chunk-GY5TIDDB.js} +2 -2
- package/dist/chunk-GY5TIDDB.js.map +1 -0
- package/dist/chunk-N6AJDETI.cjs +8 -0
- package/dist/chunk-N6AJDETI.cjs.map +1 -0
- package/dist/chunk-RGQDQ72R.cjs +2 -0
- package/dist/chunk-RGQDQ72R.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/schema/conversations.cjs +1 -1
- package/dist/schema/conversations.d.cts +1 -0
- package/dist/schema/conversations.d.ts +1 -0
- package/dist/schema/conversations.js +1 -1
- package/dist/utils/air/markdown-parser.cjs +1 -1
- package/dist/utils/air/markdown-parser.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-BSSU5PNI.js +0 -8
- package/dist/chunk-BSSU5PNI.js.map +0 -1
- package/dist/chunk-Y7MYLO3W.js.map +0 -1
- package/dist/chunk-YB33F7QJ.cjs +0 -8
- package/dist/chunk-YB33F7QJ.cjs.map +0 -1
- package/dist/chunk-Z37VUR4P.cjs +0 -2
- package/dist/chunk-Z37VUR4P.cjs.map +0 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import {marked}from'marked';function c(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<")}function i(e,t){return `<span data-latex="${c(e)}" data-display-mode="${t}"></span>`}function m(e){return /^\d/.test(e)?/^[\d,]+(\.\d+)?$/.test(e)||/^[\d,]+(\.\d+)?[KkMmBbTt]$/.test(e)?true:/\\[a-zA-Z]/.test(e)?false:!/[a-zA-Z\\{}]/.test(e)||!/(?:^|[^a-zA-Z])[a-zA-Z](?:[^a-zA-Z]|$)/.test(e):false}function p(e){if(!e.startsWith("$")||e.startsWith("$$"))return false;let t=e.slice(1),r=t[0];if(!r||r===" "||r===" "||r==="$")return false;if(!/\d/.test(r))return true;let n=t.indexOf("$");if(n<0)return false;let a=t.slice(0,n);return /[a-zA-Z\\{]/.test(a)}function f(e){let t=1;for(;t<e.length;){let r=e[t];if(r===`
|
|
2
|
+
`)return -1;if(r==="\\"){t+=2;continue}if(r==="$"){if(e[t+1]==="$"){t+=2;continue}return t}t++;}return -1}var k={name:"katexDollarBlock",level:"block",start(e){let t=e.match(/\$\$/);return t?t.index:void 0},end(e){var r;let t=e.match(/\$\$/);return t?((r=t.index)!=null?r:0)+2:void 0},tokenizer(e,t){let n=/^\$\$([\s\S]*?)\$\$/.exec(e);if(n)return {type:"katexDollarBlock",raw:n[0],latex:n[1].trim(),displayMode:true}},renderer(e){return i(e.latex,true)}},x={name:"katexDollarInline",level:"inline",start(e){let t=e.match(/\$(?!\$)/);return t?t.index:void 0},end(e){var r;let t=e.match(/\$(?!\$)/);return t?((r=t.index)!=null?r:0)+1:void 0},tokenizer(e,t){if(!p(e))return;let r=f(e);if(r<0)return;let n=e.slice(1,r).trim();if(!(n.length===0||m(n)))return {type:"katexDollarInline",raw:e.slice(0,r+1),latex:n,displayMode:false}},renderer(e){return i(e.latex,false)}},h={name:"katexBlock",level:"block",start(e){let t=e.match(/\\\[/);return t?t.index:void 0},end(e){var r,n,a;let t=e.match(/\s\\\]/);return t?((r=t.index)!=null?r:0)+((a=(n=t[0])==null?void 0:n.length)!=null?a:0):void 0},tokenizer(e,t){let n=/^\\\[([\s\S]*?)\\\]/.exec(e);if(n)return {type:"katexBlock",raw:n[0],latex:n[1].trim(),displayMode:true}},renderer(e){return i(e.latex,e.displayMode)}},y={name:"katexInline",level:"inline",start(e){let t=e.match(/\\\(/);return t?t.index:void 0},end(e){var r,n,a;let t=e.match(/\s\\\)/);return t?((r=t.index)!=null?r:0)+((a=(n=t[0])==null?void 0:n.length)!=null?a:0):void 0},tokenizer(e,t){let n=/^\\\(([\s\S]*?)\\\)/.exec(e);if(n)return {type:"katexInline",raw:n[0],latex:n[1].trim(),displayMode:false}},renderer(e){return i(e.latex,e.displayMode)}},g={name:"assetComponent",level:"block",start(e){var t;return (t=e.match(/^```assetComponent/))==null?void 0:t.index},end(e){var t;return (t=e.match(/^```/))==null?void 0:t.index},tokenizer(e,t){let n=/^```assetComponent\s+(\{[\s\S]*?\})\n```/.exec(e);if(n)return {type:"assetComponent",raw:n[0],properties:n[1],tokens:[]}},renderer(e){let t;try{t=JSON.parse(e.properties);}catch(n){console.error("Invalid JSON in assetComponent properties:",n),t={};}return `
|
|
3
|
+
<asset-component ${Object.entries(t).map(([n,a])=>{let o=(typeof a=="object"&&a!==null?JSON.stringify(a):String(a)).replace(/"/g,""");return `${n}="${o}"`}).join(" ")}></asset-component>`}},$={name:"userMention",level:"inline",start(e){let t=e.match(/`\{@|(?<![`])\{@/);return t?t.index:void 0},end(e){var t,r,n;return (n=(t=e.match(/\}`/))==null?void 0:t.index)!=null?n:(r=e.match(/(?<![`])\{@[^}]*\}/))==null?void 0:r.index},tokenizer(e,t){let r=/^`\{@([a-zA-Z0-9_]+)\}`/.exec(e);if(r)return {type:"userMention",raw:r[0],username:r[1]};let n=/^\{@([a-zA-Z0-9_]+)\}/.exec(e);if(n)return {type:"userMention",raw:n[0],username:n[1]}},renderer(e){let t=c(e.username);return `<user-mention username="${t}" data-label="${t}"></user-mention>`}};marked.use({gfm:true,extensions:[g,$,k,h,x,y],renderer:{list(e){var t;return !e.ordered&&((t=e.items)==null?void 0:t.length)>0&&e.items.every(r=>r.task)?`<ul data-type="taskList">
|
|
4
|
+
${e.items.map(n=>{let a=n.tokens.filter(d=>d.type!=="checkbox"),s=this.parser.parse(a,!!n.loose);n.loose||(s=`<p>${s}</p>`);let o=n.checked?"true":"false",u=n.checked?' checked="checked"':"";return `<li data-type="taskItem" data-checked="${o}"><label contenteditable="false"><input type="checkbox"${u}></label><div>${s}</div></li>`}).join(`
|
|
5
|
+
`)}
|
|
6
|
+
</ul>
|
|
7
|
+
`:false}}});function z(e){return marked.parse(e)}export{z as a};//# sourceMappingURL=chunk-DE2Z5AOM.js.map
|
|
8
|
+
//# sourceMappingURL=chunk-DE2Z5AOM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/air/markdown-parser.ts"],"names":["escapeHtmlAttr","s","mathSpanHtml","latex","displayMode","isLikelyCurrency","dollarInlineOpenOk","src","rest","c","nextDollar","segment","endIndexOfDollarInline","i","ch","katexDollarBlock","match","_a","tokens","token","katexDollarInline","close","katexBlockParser","_b","_c","katexInlineParser","assetComponentExtension","properties","e","key","value","escapedValue","userMentionExtension","m","codeWrapped","bracesOnly","u","marked","item","inner","t","text","checked","ckAttr","parseMarkdown","markdown"],"mappings":"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","file":"chunk-DE2Z5AOM.js","sourcesContent":["import { marked } from \"marked\";\n\n/** Safe for double-quoted HTML attributes (e.g. data-latex). */\nfunction escapeHtmlAttr(s: string): string {\n return s\n .replace(/&/g, \"&\")\n .replace(/\"/g, \""\")\n .replace(/</g, \"<\");\n}\n\nfunction mathSpanHtml(latex: string, displayMode: boolean): string {\n return `<span data-latex=\"${escapeHtmlAttr(latex)}\" data-display-mode=\"${displayMode}\"></span>`;\n}\n\n/**\n * Detect whether the text between `$…$` is a currency amount rather than math.\n *\n * Covers bare numbers ($50, $3.50, $1,000), numbers with magnitude suffixes\n * ($50K, $1.5M), and numeric-only fragments produced when a price range like\n * \"$50-$100\" is split at the inner `$` (content = \"50-\").\n *\n * If the content starts with a digit but also contains single-letter tokens\n * (likely math variables such as x, n, k) or LaTeX commands, it is NOT\n * treated as currency so real math like `$2x + 3$` still renders.\n */\nfunction isLikelyCurrency(s: string): boolean {\n if (!/^\\d/.test(s)) return false;\n\n if (/^[\\d,]+(\\.\\d+)?$/.test(s)) return true;\n if (/^[\\d,]+(\\.\\d+)?[KkMmBbTt]$/.test(s)) return true;\n\n if (/\\\\[a-zA-Z]/.test(s)) return false;\n\n if (!/[a-zA-Z\\\\{}]/.test(s)) return true;\n\n const hasSingleLetterToken = /(?:^|[^a-zA-Z])[a-zA-Z](?:[^a-zA-Z]|$)/.test(s);\n if (!hasSingleLetterToken) return true;\n\n return false;\n}\n\n/**\n * The opening `$` in `src` may start inline math only when:\n * - it is a single `$` (not `$$`),\n * - the next character is non-whitespace and not another `$`, and\n * - when the next character is a digit, the captured segment (up to the\n * closing `$`) contains evidence of math (a letter, backslash, or brace)\n * rather than just a currency amount.\n */\nfunction dollarInlineOpenOk(src: string): boolean {\n if (!src.startsWith(\"$\") || src.startsWith(\"$$\")) return false;\n const rest = src.slice(1);\n const c = rest[0];\n if (!c || c === \" \" || c === \"\\t\" || c === \"$\") return false;\n if (!/\\d/.test(c)) return true;\n\n const nextDollar = rest.indexOf(\"$\");\n if (nextDollar < 0) return false;\n const segment = rest.slice(0, nextDollar);\n return /[a-zA-Z\\\\{]/.test(segment);\n}\n\n/** Closing `$` for inline math at start of `src` (which must begin with a single `$`). */\nfunction endIndexOfDollarInline(src: string): number {\n let i = 1;\n while (i < src.length) {\n const ch = src[i];\n if (ch === \"\\n\") return -1;\n if (ch === \"\\\\\") {\n i += 2;\n continue;\n }\n if (ch === \"$\") {\n if (src[i + 1] === \"$\") {\n i += 2;\n continue;\n }\n return i;\n }\n i++;\n }\n return -1;\n}\n\nconst katexDollarBlock = {\n name: \"katexDollarBlock\",\n level: \"block\",\n start(src: string) {\n const match = src.match(/\\$\\$/);\n return match ? match.index : undefined;\n },\n end(src: string) {\n const match = src.match(/\\$\\$/);\n return match ? (match.index ?? 0) + 2 : undefined;\n },\n tokenizer(src: string, tokens: any) {\n const rule = /^\\$\\$([\\s\\S]*?)\\$\\$/;\n const match = rule.exec(src);\n if (match) {\n return {\n type: \"katexDollarBlock\",\n raw: match[0],\n latex: match[1].trim(),\n displayMode: true,\n };\n }\n },\n renderer(token: any) {\n return mathSpanHtml(token.latex, true);\n },\n};\n\nconst katexDollarInline = {\n name: \"katexDollarInline\",\n level: \"inline\",\n start(src: string) {\n const match = src.match(/\\$(?!\\$)/);\n return match ? match.index : undefined;\n },\n end(src: string) {\n const match = src.match(/\\$(?!\\$)/);\n return match ? (match.index ?? 0) + 1 : undefined;\n },\n tokenizer(src: string, tokens: any) {\n if (!dollarInlineOpenOk(src)) return;\n const close = endIndexOfDollarInline(src);\n if (close < 0) return;\n const latex = src.slice(1, close).trim();\n if (latex.length === 0 || isLikelyCurrency(latex)) return;\n return {\n type: \"katexDollarInline\",\n raw: src.slice(0, close + 1),\n latex,\n displayMode: false,\n };\n },\n renderer(token: any) {\n return mathSpanHtml(token.latex, false);\n },\n};\n\nconst katexBlockParser = {\n name: \"katexBlock\",\n level: \"block\",\n start(src: string) {\n const match = src.match(/\\\\\\[/);\n return match ? match.index : undefined;\n },\n end(src: string) {\n const match = src.match(/\\s\\\\\\]/);\n return match ? (match.index ?? 0) + (match[0]?.length ?? 0) : undefined;\n },\n tokenizer(src: string, tokens: any) {\n const displayRule = /^\\\\\\[([\\s\\S]*?)\\\\\\]/;\n const match = displayRule.exec(src);\n if (match) {\n return {\n type: \"katexBlock\",\n raw: match[0],\n latex: match[1].trim(),\n displayMode: true,\n };\n }\n },\n renderer(token: any) {\n // Non-self-closing span is important for client-side inline flow around the node.\n return mathSpanHtml(token.latex, token.displayMode);\n },\n};\n\nconst katexInlineParser = {\n name: \"katexInline\",\n level: \"inline\",\n start(src: string) {\n const match = src.match(/\\\\\\(/);\n return match ? match.index : undefined;\n },\n end(src: string) {\n const match = src.match(/\\s\\\\\\)/);\n return match ? (match.index ?? 0) + (match[0]?.length ?? 0) : undefined;\n },\n tokenizer(src: string, tokens: any) {\n const inlineRule = /^\\\\\\(([\\s\\S]*?)\\\\\\)/;\n const match = inlineRule.exec(src);\n if (match) {\n return {\n type: \"katexInline\",\n raw: match[0],\n latex: match[1].trim(),\n displayMode: false,\n };\n }\n },\n renderer(token: any) {\n // STRANGE: The non-self-closing tag is important for client side to render as inline and render text after it\n return mathSpanHtml(token.latex, token.displayMode);\n },\n};\n\nconst assetComponentExtension = {\n name: \"assetComponent\",\n level: \"block\",\n start(src: string) {\n return src.match(/^```assetComponent/)?.index;\n },\n end(src: string) {\n return src.match(/^```/)?.index;\n },\n tokenizer(src: string, tokens: any) {\n const rule = /^```assetComponent\\s+(\\{[\\s\\S]*?\\})\\n```/;\n const match = rule.exec(src);\n if (match) {\n const token = {\n type: \"assetComponent\",\n raw: match[0],\n properties: match[1],\n tokens: [],\n };\n return token;\n }\n },\n renderer(token: any) {\n let properties;\n try {\n properties = JSON.parse(token.properties);\n } catch (e) {\n console.error(\"Invalid JSON in assetComponent properties:\", e);\n properties = {};\n }\n const componentHtml = `\n <asset-component ${Object.entries(properties)\n .map(([key, value]) => {\n // Stringify arrays and objects, keep primitives as-is\n const stringValue = typeof value === 'object' && value !== null\n ? JSON.stringify(value)\n : String(value);\n // Escape quotes for HTML attributes\n const escapedValue = stringValue.replace(/\"/g, '"');\n return `${key}=\"${escapedValue}\"`;\n })\n .join(\" \")}></asset-component>`;\n\n return componentHtml;\n },\n};\n\nconst userMentionExtension = {\n name: \"userMention\",\n level: \"inline\",\n start(src: string) {\n const m = src.match(/`\\{@|(?<![`])\\{@/);\n return m ? m.index : undefined;\n },\n end(src: string) {\n return src.match(/\\}`/)?.index ?? src.match(/(?<![`])\\{@[^}]*\\}/)?.index;\n },\n tokenizer(src: string, tokens: any) {\n const codeWrapped = /^`\\{@([a-zA-Z0-9_]+)\\}`/.exec(src);\n if (codeWrapped) {\n return {\n type: \"userMention\",\n raw: codeWrapped[0],\n username: codeWrapped[1],\n };\n }\n const bracesOnly = /^\\{@([a-zA-Z0-9_]+)\\}/.exec(src);\n if (bracesOnly) {\n return {\n type: \"userMention\",\n raw: bracesOnly[0],\n username: bracesOnly[1],\n };\n }\n },\n renderer(token: any) {\n const u = escapeHtmlAttr(token.username);\n return `<user-mention username=\"${u}\" data-label=\"${u}\"></user-mention>`;\n },\n};\n\nmarked.use({\n gfm: true,\n extensions: [\n assetComponentExtension,\n userMentionExtension,\n katexDollarBlock,\n katexBlockParser,\n katexDollarInline,\n katexInlineParser,\n ],\n renderer: {\n list(token: any) {\n if (\n !token.ordered &&\n token.items?.length > 0 &&\n token.items.every((item: any) => item.task)\n ) {\n const body = token.items\n .map((item: any) => {\n const inner = item.tokens.filter(\n (t: any) => t.type !== \"checkbox\"\n );\n let text = (this as any).parser.parse(inner, !!item.loose);\n if (!item.loose) text = `<p>${text}</p>`;\n const checked = item.checked ? \"true\" : \"false\";\n const ckAttr = item.checked ? ' checked=\"checked\"' : \"\";\n return `<li data-type=\"taskItem\" data-checked=\"${checked}\"><label contenteditable=\"false\"><input type=\"checkbox\"${ckAttr}></label><div>${text}</div></li>`;\n })\n .join(\"\\n\");\n return `<ul data-type=\"taskList\">\\n${body}\\n</ul>\\n`;\n }\n return false as any;\n },\n },\n});\n\nexport function parseMarkdown(markdown: string) {\n return marked.parse(markdown);\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a as a$2}from'./chunk-QMVYPQP3.js';import {b,c,d,a as a$1}from'./chunk-XIDYDUVH.js';import {b as b$1}from'./chunk-3N56ERWF.js';import {a,b as b$2,d as d$1}from'./chunk-3EK6Q2YF.js';import {object,array,string,optional,nullable,literal,uuid,record,any}from'zod';var
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a as a$2}from'./chunk-QMVYPQP3.js';import {b,c,d,a as a$1}from'./chunk-XIDYDUVH.js';import {b as b$1}from'./chunk-3N56ERWF.js';import {a,b as b$2,d as d$1}from'./chunk-3EK6Q2YF.js';import {object,array,string,optional,nullable,literal,uuid,record,any}from'zod';var g=object({members:array(string())}),l=g.extend(b.partial().shape),T=c.extend({asset_type:a.default("conversation"),metadata:l,users:optional(nullable(array(b$1)))}),C=d.extend({asset_type:literal("conversation").default("conversation"),monetization:d$1.default("none"),visibility:b$2.default("private"),metadata:l}),U=C.transform(a=>a$1(a)),j=C.omit({id:true,org_id:true,team_id:true}).partial().transform(a=>a$1(a)),B=object({id:uuid(),conversation_id:uuid(),user_id:uuid(),user:optional(nullable(b$1)),type:string().default("message"),created_at:string(),last_updated:string(),viewers:array(uuid()),json:a$2,text:string(),metadata:optional(nullable(record(string(),any())))});export{T as a,U as b,j as c,B as d};//# sourceMappingURL=chunk-GY5TIDDB.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-GY5TIDDB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/schema/conversations.ts"],"names":["BaseConversationMetadataSchema","object","array","string","ConversationMetadataSchema","AssetMetadataSchema","ConversationSchema","AssetSchema","AssetTypeSchema","optional","nullable","ProfileSchema","BaseCreateConversationSchema","CreateAssetSchema","literal","MonetizationSchema","VisibilitySchema","CreateConversationSchema","value","normalizeAssetConfigForParsing","UpdateConversationSchema","MessageSchema","uuid","TipTapSchema","record","any"],"mappings":"6QA2BA,IAAMA,EAAiCC,MAAO,CAAA,CAC5C,OAASC,CAAAA,KAAAA,CAAMC,QAAQ,CACzB,CAAC,CAAA,CAEKC,EAA6BJ,CAA+B,CAAA,MAAA,CAChEK,EAAoB,OAAQ,EAAA,CAAE,KAChC,CAEMC,CAAAA,CAAAA,CAAqBC,CAAY,CAAA,MAAA,CAAO,CAC5C,UAAYC,CAAAA,CAAAA,CAAgB,OAAQ,CAAA,cAAc,EAClD,QAAUJ,CAAAA,CAAAA,CACV,KAAOK,CAAAA,QAAAA,CAASC,SAASR,KAAMS,CAAAA,GAAa,CAAC,CAAC,CAChD,CAAC,CAEKC,CAAAA,CAAAA,CAA+BC,CAAkB,CAAA,MAAA,CAAO,CAC5D,UAAYC,CAAAA,OAAAA,CAAQ,cAAc,CAAA,CAAE,QAAQ,cAAc,CAAA,CAC1D,YAAcC,CAAAA,GAAAA,CAAmB,QAAQ,MAAM,CAAA,CAC/C,WAAYC,GAAiB,CAAA,OAAA,CAAQ,SAAS,CAC9C,CAAA,QAAA,CAAUZ,CACZ,CAAC,EAEKa,CAA2BL,CAAAA,CAAAA,CAC9B,SAAWM,CAAAA,CAAAA,EAAUC,IAA+BD,CAAK,CAAC,CAGvDE,CAAAA,CAAAA,CAA2BR,EAA6B,IAAK,CAAA,CACjE,GAAI,IACJ,CAAA,MAAA,CAAQ,KACR,OAAS,CAAA,IAKX,CAAC,CAAA,CAAE,SAAU,CAAA,SAAA,CAAWM,CAAUC,EAAAA,GAAAA,CAA+BD,CAAK,CAAC,CAAA,CAEjEG,CAAgBpB,CAAAA,MAAAA,CAAO,CAC3B,EAAIqB,CAAAA,IAAAA,GACJ,eAAiBA,CAAAA,IAAAA,GACjB,OAASA,CAAAA,IAAAA,EACT,CAAA,IAAA,CAAMb,SAASC,QAASC,CAAAA,GAAa,CAAC,CAAA,CACtC,KAAMR,MAAO,EAAA,CAAE,OAAQ,CAAA,SAAS,EAChC,UAAYA,CAAAA,MAAAA,GACZ,YAAcA,CAAAA,MAAAA,GACd,OAASD,CAAAA,KAAAA,CAAMoB,IAAK,EAAC,EACrB,IAAMC,CAAAA,GAAAA,CACN,IAAMpB,CAAAA,MAAAA,GACN,QAAUM,CAAAA,QAAAA,CAASC,QAASc,CAAAA,MAAAA,CAAOrB,QAAUsB,CAAAA,GAAAA,EAAK,CAAC,CAAC,CACtD,CAAC","file":"chunk-GY5TIDDB.js","sourcesContent":["import {\n object,\n string,\n uuid,\n array,\n type z,\n record,\n any,\n optional,\n nullable,\n literal\n} from \"zod\";\n\nimport {\n AssetTypeSchema,\n MonetizationSchema,\n VisibilitySchema,\n} from \"./common\";\nimport {\n AssetMetadataSchema,\n AssetSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { TipTapSchema } from \"./posts\";\nimport { ProfileSchema } from \"./users\";\n\nconst BaseConversationMetadataSchema = object({\n members: array(string()),\n});\n\nconst ConversationMetadataSchema = BaseConversationMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst ConversationSchema = AssetSchema.extend({\n asset_type: AssetTypeSchema.default(\"conversation\"),\n metadata: ConversationMetadataSchema,\n users: optional(nullable(array(ProfileSchema))),\n});\n\nconst BaseCreateConversationSchema = CreateAssetSchema.extend({\n asset_type: literal(\"conversation\").default(\"conversation\"),\n monetization: MonetizationSchema.default(\"none\"),\n visibility: VisibilitySchema.default(\"private\"),\n metadata: ConversationMetadataSchema,\n});\n\nconst CreateConversationSchema = BaseCreateConversationSchema\n .transform((value) => normalizeAssetConfigForParsing(value));\n\n// Partial because we can make updates to conversations without providing all fields\nconst UpdateConversationSchema = BaseCreateConversationSchema.omit({\n id: true,\n org_id: true,\n team_id: true,\n // team: true,\n // user: true,\n // organization: true,\n // slug: true,\n}).partial().transform((value) => normalizeAssetConfigForParsing(value));\n\nconst MessageSchema = object({\n id: uuid(),\n conversation_id: uuid(),\n user_id: uuid(),\n user: optional(nullable(ProfileSchema)),\n type: string().default(\"message\"),\n created_at: string(),\n last_updated: string(),\n viewers: array(uuid()),\n json: TipTapSchema,\n text: string(),\n metadata: optional(nullable(record(string(), any()))),\n});\n\nexport {\n MessageSchema,\n UpdateConversationSchema,\n CreateConversationSchema,\n ConversationSchema,\n};\nexport type Conversation = z.infer<typeof ConversationSchema>;\nexport type CreateConversation = z.infer<typeof CreateConversationSchema>;\nexport type UpdateConversation = z.infer<typeof UpdateConversationSchema>;\nexport type Message = z.infer<typeof MessageSchema>;\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
'use strict';var marked=require('marked');function c(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<")}function i(e,t){return `<span data-latex="${c(e)}" data-display-mode="${t}"></span>`}function m(e){return /^\d/.test(e)?/^[\d,]+(\.\d+)?$/.test(e)||/^[\d,]+(\.\d+)?[KkMmBbTt]$/.test(e)?true:/\\[a-zA-Z]/.test(e)?false:!/[a-zA-Z\\{}]/.test(e)||!/(?:^|[^a-zA-Z])[a-zA-Z](?:[^a-zA-Z]|$)/.test(e):false}function p(e){if(!e.startsWith("$")||e.startsWith("$$"))return false;let t=e.slice(1),r=t[0];if(!r||r===" "||r===" "||r==="$")return false;if(!/\d/.test(r))return true;let n=t.indexOf("$");if(n<0)return false;let a=t.slice(0,n);return /[a-zA-Z\\{]/.test(a)}function f(e){let t=1;for(;t<e.length;){let r=e[t];if(r===`
|
|
2
|
+
`)return -1;if(r==="\\"){t+=2;continue}if(r==="$"){if(e[t+1]==="$"){t+=2;continue}return t}t++;}return -1}var k={name:"katexDollarBlock",level:"block",start(e){let t=e.match(/\$\$/);return t?t.index:void 0},end(e){var r;let t=e.match(/\$\$/);return t?((r=t.index)!=null?r:0)+2:void 0},tokenizer(e,t){let n=/^\$\$([\s\S]*?)\$\$/.exec(e);if(n)return {type:"katexDollarBlock",raw:n[0],latex:n[1].trim(),displayMode:true}},renderer(e){return i(e.latex,true)}},x={name:"katexDollarInline",level:"inline",start(e){let t=e.match(/\$(?!\$)/);return t?t.index:void 0},end(e){var r;let t=e.match(/\$(?!\$)/);return t?((r=t.index)!=null?r:0)+1:void 0},tokenizer(e,t){if(!p(e))return;let r=f(e);if(r<0)return;let n=e.slice(1,r).trim();if(!(n.length===0||m(n)))return {type:"katexDollarInline",raw:e.slice(0,r+1),latex:n,displayMode:false}},renderer(e){return i(e.latex,false)}},h={name:"katexBlock",level:"block",start(e){let t=e.match(/\\\[/);return t?t.index:void 0},end(e){var r,n,a;let t=e.match(/\s\\\]/);return t?((r=t.index)!=null?r:0)+((a=(n=t[0])==null?void 0:n.length)!=null?a:0):void 0},tokenizer(e,t){let n=/^\\\[([\s\S]*?)\\\]/.exec(e);if(n)return {type:"katexBlock",raw:n[0],latex:n[1].trim(),displayMode:true}},renderer(e){return i(e.latex,e.displayMode)}},y={name:"katexInline",level:"inline",start(e){let t=e.match(/\\\(/);return t?t.index:void 0},end(e){var r,n,a;let t=e.match(/\s\\\)/);return t?((r=t.index)!=null?r:0)+((a=(n=t[0])==null?void 0:n.length)!=null?a:0):void 0},tokenizer(e,t){let n=/^\\\(([\s\S]*?)\\\)/.exec(e);if(n)return {type:"katexInline",raw:n[0],latex:n[1].trim(),displayMode:false}},renderer(e){return i(e.latex,e.displayMode)}},g={name:"assetComponent",level:"block",start(e){var t;return (t=e.match(/^```assetComponent/))==null?void 0:t.index},end(e){var t;return (t=e.match(/^```/))==null?void 0:t.index},tokenizer(e,t){let n=/^```assetComponent\s+(\{[\s\S]*?\})\n```/.exec(e);if(n)return {type:"assetComponent",raw:n[0],properties:n[1],tokens:[]}},renderer(e){let t;try{t=JSON.parse(e.properties);}catch(n){console.error("Invalid JSON in assetComponent properties:",n),t={};}return `
|
|
3
|
+
<asset-component ${Object.entries(t).map(([n,a])=>{let o=(typeof a=="object"&&a!==null?JSON.stringify(a):String(a)).replace(/"/g,""");return `${n}="${o}"`}).join(" ")}></asset-component>`}},$={name:"userMention",level:"inline",start(e){let t=e.match(/`\{@|(?<![`])\{@/);return t?t.index:void 0},end(e){var t,r,n;return (n=(t=e.match(/\}`/))==null?void 0:t.index)!=null?n:(r=e.match(/(?<![`])\{@[^}]*\}/))==null?void 0:r.index},tokenizer(e,t){let r=/^`\{@([a-zA-Z0-9_]+)\}`/.exec(e);if(r)return {type:"userMention",raw:r[0],username:r[1]};let n=/^\{@([a-zA-Z0-9_]+)\}/.exec(e);if(n)return {type:"userMention",raw:n[0],username:n[1]}},renderer(e){let t=c(e.username);return `<user-mention username="${t}" data-label="${t}"></user-mention>`}};marked.marked.use({gfm:true,extensions:[g,$,k,h,x,y],renderer:{list(e){var t;return !e.ordered&&((t=e.items)==null?void 0:t.length)>0&&e.items.every(r=>r.task)?`<ul data-type="taskList">
|
|
4
|
+
${e.items.map(n=>{let a=n.tokens.filter(d=>d.type!=="checkbox"),s=this.parser.parse(a,!!n.loose);n.loose||(s=`<p>${s}</p>`);let o=n.checked?"true":"false",u=n.checked?' checked="checked"':"";return `<li data-type="taskItem" data-checked="${o}"><label contenteditable="false"><input type="checkbox"${u}></label><div>${s}</div></li>`}).join(`
|
|
5
|
+
`)}
|
|
6
|
+
</ul>
|
|
7
|
+
`:false}}});function z(e){return marked.marked.parse(e)}exports.a=z;//# sourceMappingURL=chunk-N6AJDETI.cjs.map
|
|
8
|
+
//# sourceMappingURL=chunk-N6AJDETI.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/air/markdown-parser.ts"],"names":["escapeHtmlAttr","s","mathSpanHtml","latex","displayMode","isLikelyCurrency","dollarInlineOpenOk","src","rest","c","nextDollar","segment","endIndexOfDollarInline","i","ch","katexDollarBlock","match","_a","tokens","token","katexDollarInline","close","katexBlockParser","_b","_c","katexInlineParser","assetComponentExtension","properties","e","key","value","escapedValue","userMentionExtension","m","codeWrapped","bracesOnly","u","marked","item","inner","t","text","checked","ckAttr","parseMarkdown","markdown"],"mappings":"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","file":"chunk-N6AJDETI.cjs","sourcesContent":["import { marked } from \"marked\";\n\n/** Safe for double-quoted HTML attributes (e.g. data-latex). */\nfunction escapeHtmlAttr(s: string): string {\n return s\n .replace(/&/g, \"&\")\n .replace(/\"/g, \""\")\n .replace(/</g, \"<\");\n}\n\nfunction mathSpanHtml(latex: string, displayMode: boolean): string {\n return `<span data-latex=\"${escapeHtmlAttr(latex)}\" data-display-mode=\"${displayMode}\"></span>`;\n}\n\n/**\n * Detect whether the text between `$…$` is a currency amount rather than math.\n *\n * Covers bare numbers ($50, $3.50, $1,000), numbers with magnitude suffixes\n * ($50K, $1.5M), and numeric-only fragments produced when a price range like\n * \"$50-$100\" is split at the inner `$` (content = \"50-\").\n *\n * If the content starts with a digit but also contains single-letter tokens\n * (likely math variables such as x, n, k) or LaTeX commands, it is NOT\n * treated as currency so real math like `$2x + 3$` still renders.\n */\nfunction isLikelyCurrency(s: string): boolean {\n if (!/^\\d/.test(s)) return false;\n\n if (/^[\\d,]+(\\.\\d+)?$/.test(s)) return true;\n if (/^[\\d,]+(\\.\\d+)?[KkMmBbTt]$/.test(s)) return true;\n\n if (/\\\\[a-zA-Z]/.test(s)) return false;\n\n if (!/[a-zA-Z\\\\{}]/.test(s)) return true;\n\n const hasSingleLetterToken = /(?:^|[^a-zA-Z])[a-zA-Z](?:[^a-zA-Z]|$)/.test(s);\n if (!hasSingleLetterToken) return true;\n\n return false;\n}\n\n/**\n * The opening `$` in `src` may start inline math only when:\n * - it is a single `$` (not `$$`),\n * - the next character is non-whitespace and not another `$`, and\n * - when the next character is a digit, the captured segment (up to the\n * closing `$`) contains evidence of math (a letter, backslash, or brace)\n * rather than just a currency amount.\n */\nfunction dollarInlineOpenOk(src: string): boolean {\n if (!src.startsWith(\"$\") || src.startsWith(\"$$\")) return false;\n const rest = src.slice(1);\n const c = rest[0];\n if (!c || c === \" \" || c === \"\\t\" || c === \"$\") return false;\n if (!/\\d/.test(c)) return true;\n\n const nextDollar = rest.indexOf(\"$\");\n if (nextDollar < 0) return false;\n const segment = rest.slice(0, nextDollar);\n return /[a-zA-Z\\\\{]/.test(segment);\n}\n\n/** Closing `$` for inline math at start of `src` (which must begin with a single `$`). */\nfunction endIndexOfDollarInline(src: string): number {\n let i = 1;\n while (i < src.length) {\n const ch = src[i];\n if (ch === \"\\n\") return -1;\n if (ch === \"\\\\\") {\n i += 2;\n continue;\n }\n if (ch === \"$\") {\n if (src[i + 1] === \"$\") {\n i += 2;\n continue;\n }\n return i;\n }\n i++;\n }\n return -1;\n}\n\nconst katexDollarBlock = {\n name: \"katexDollarBlock\",\n level: \"block\",\n start(src: string) {\n const match = src.match(/\\$\\$/);\n return match ? match.index : undefined;\n },\n end(src: string) {\n const match = src.match(/\\$\\$/);\n return match ? (match.index ?? 0) + 2 : undefined;\n },\n tokenizer(src: string, tokens: any) {\n const rule = /^\\$\\$([\\s\\S]*?)\\$\\$/;\n const match = rule.exec(src);\n if (match) {\n return {\n type: \"katexDollarBlock\",\n raw: match[0],\n latex: match[1].trim(),\n displayMode: true,\n };\n }\n },\n renderer(token: any) {\n return mathSpanHtml(token.latex, true);\n },\n};\n\nconst katexDollarInline = {\n name: \"katexDollarInline\",\n level: \"inline\",\n start(src: string) {\n const match = src.match(/\\$(?!\\$)/);\n return match ? match.index : undefined;\n },\n end(src: string) {\n const match = src.match(/\\$(?!\\$)/);\n return match ? (match.index ?? 0) + 1 : undefined;\n },\n tokenizer(src: string, tokens: any) {\n if (!dollarInlineOpenOk(src)) return;\n const close = endIndexOfDollarInline(src);\n if (close < 0) return;\n const latex = src.slice(1, close).trim();\n if (latex.length === 0 || isLikelyCurrency(latex)) return;\n return {\n type: \"katexDollarInline\",\n raw: src.slice(0, close + 1),\n latex,\n displayMode: false,\n };\n },\n renderer(token: any) {\n return mathSpanHtml(token.latex, false);\n },\n};\n\nconst katexBlockParser = {\n name: \"katexBlock\",\n level: \"block\",\n start(src: string) {\n const match = src.match(/\\\\\\[/);\n return match ? match.index : undefined;\n },\n end(src: string) {\n const match = src.match(/\\s\\\\\\]/);\n return match ? (match.index ?? 0) + (match[0]?.length ?? 0) : undefined;\n },\n tokenizer(src: string, tokens: any) {\n const displayRule = /^\\\\\\[([\\s\\S]*?)\\\\\\]/;\n const match = displayRule.exec(src);\n if (match) {\n return {\n type: \"katexBlock\",\n raw: match[0],\n latex: match[1].trim(),\n displayMode: true,\n };\n }\n },\n renderer(token: any) {\n // Non-self-closing span is important for client-side inline flow around the node.\n return mathSpanHtml(token.latex, token.displayMode);\n },\n};\n\nconst katexInlineParser = {\n name: \"katexInline\",\n level: \"inline\",\n start(src: string) {\n const match = src.match(/\\\\\\(/);\n return match ? match.index : undefined;\n },\n end(src: string) {\n const match = src.match(/\\s\\\\\\)/);\n return match ? (match.index ?? 0) + (match[0]?.length ?? 0) : undefined;\n },\n tokenizer(src: string, tokens: any) {\n const inlineRule = /^\\\\\\(([\\s\\S]*?)\\\\\\)/;\n const match = inlineRule.exec(src);\n if (match) {\n return {\n type: \"katexInline\",\n raw: match[0],\n latex: match[1].trim(),\n displayMode: false,\n };\n }\n },\n renderer(token: any) {\n // STRANGE: The non-self-closing tag is important for client side to render as inline and render text after it\n return mathSpanHtml(token.latex, token.displayMode);\n },\n};\n\nconst assetComponentExtension = {\n name: \"assetComponent\",\n level: \"block\",\n start(src: string) {\n return src.match(/^```assetComponent/)?.index;\n },\n end(src: string) {\n return src.match(/^```/)?.index;\n },\n tokenizer(src: string, tokens: any) {\n const rule = /^```assetComponent\\s+(\\{[\\s\\S]*?\\})\\n```/;\n const match = rule.exec(src);\n if (match) {\n const token = {\n type: \"assetComponent\",\n raw: match[0],\n properties: match[1],\n tokens: [],\n };\n return token;\n }\n },\n renderer(token: any) {\n let properties;\n try {\n properties = JSON.parse(token.properties);\n } catch (e) {\n console.error(\"Invalid JSON in assetComponent properties:\", e);\n properties = {};\n }\n const componentHtml = `\n <asset-component ${Object.entries(properties)\n .map(([key, value]) => {\n // Stringify arrays and objects, keep primitives as-is\n const stringValue = typeof value === 'object' && value !== null\n ? JSON.stringify(value)\n : String(value);\n // Escape quotes for HTML attributes\n const escapedValue = stringValue.replace(/\"/g, '"');\n return `${key}=\"${escapedValue}\"`;\n })\n .join(\" \")}></asset-component>`;\n\n return componentHtml;\n },\n};\n\nconst userMentionExtension = {\n name: \"userMention\",\n level: \"inline\",\n start(src: string) {\n const m = src.match(/`\\{@|(?<![`])\\{@/);\n return m ? m.index : undefined;\n },\n end(src: string) {\n return src.match(/\\}`/)?.index ?? src.match(/(?<![`])\\{@[^}]*\\}/)?.index;\n },\n tokenizer(src: string, tokens: any) {\n const codeWrapped = /^`\\{@([a-zA-Z0-9_]+)\\}`/.exec(src);\n if (codeWrapped) {\n return {\n type: \"userMention\",\n raw: codeWrapped[0],\n username: codeWrapped[1],\n };\n }\n const bracesOnly = /^\\{@([a-zA-Z0-9_]+)\\}/.exec(src);\n if (bracesOnly) {\n return {\n type: \"userMention\",\n raw: bracesOnly[0],\n username: bracesOnly[1],\n };\n }\n },\n renderer(token: any) {\n const u = escapeHtmlAttr(token.username);\n return `<user-mention username=\"${u}\" data-label=\"${u}\"></user-mention>`;\n },\n};\n\nmarked.use({\n gfm: true,\n extensions: [\n assetComponentExtension,\n userMentionExtension,\n katexDollarBlock,\n katexBlockParser,\n katexDollarInline,\n katexInlineParser,\n ],\n renderer: {\n list(token: any) {\n if (\n !token.ordered &&\n token.items?.length > 0 &&\n token.items.every((item: any) => item.task)\n ) {\n const body = token.items\n .map((item: any) => {\n const inner = item.tokens.filter(\n (t: any) => t.type !== \"checkbox\"\n );\n let text = (this as any).parser.parse(inner, !!item.loose);\n if (!item.loose) text = `<p>${text}</p>`;\n const checked = item.checked ? \"true\" : \"false\";\n const ckAttr = item.checked ? ' checked=\"checked\"' : \"\";\n return `<li data-type=\"taskItem\" data-checked=\"${checked}\"><label contenteditable=\"false\"><input type=\"checkbox\"${ckAttr}></label><div>${text}</div></li>`;\n })\n .join(\"\\n\");\n return `<ul data-type=\"taskList\">\\n${body}\\n</ul>\\n`;\n }\n return false as any;\n },\n },\n});\n\nexport function parseMarkdown(markdown: string) {\n return marked.parse(markdown);\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';var chunkC5CSA2IE_cjs=require('./chunk-C5CSA2IE.cjs'),chunk4JJ6JLXK_cjs=require('./chunk-4JJ6JLXK.cjs'),chunkGY6SLMMJ_cjs=require('./chunk-GY6SLMMJ.cjs'),chunkMKMFDR3M_cjs=require('./chunk-MKMFDR3M.cjs'),zod=require('zod');var g=zod.object({members:zod.array(zod.string())}),l=g.extend(chunk4JJ6JLXK_cjs.b.partial().shape),T=chunk4JJ6JLXK_cjs.c.extend({asset_type:chunkMKMFDR3M_cjs.a.default("conversation"),metadata:l,users:zod.optional(zod.nullable(zod.array(chunkGY6SLMMJ_cjs.b)))}),C=chunk4JJ6JLXK_cjs.d.extend({asset_type:zod.literal("conversation").default("conversation"),monetization:chunkMKMFDR3M_cjs.d.default("none"),visibility:chunkMKMFDR3M_cjs.b.default("private"),metadata:l}),U=C.transform(a=>chunk4JJ6JLXK_cjs.a(a)),j=C.omit({id:true,org_id:true,team_id:true}).partial().transform(a=>chunk4JJ6JLXK_cjs.a(a)),B=zod.object({id:zod.uuid(),conversation_id:zod.uuid(),user_id:zod.uuid(),user:zod.optional(zod.nullable(chunkGY6SLMMJ_cjs.b)),type:zod.string().default("message"),created_at:zod.string(),last_updated:zod.string(),viewers:zod.array(zod.uuid()),json:chunkC5CSA2IE_cjs.a,text:zod.string(),metadata:zod.optional(zod.nullable(zod.record(zod.string(),zod.any())))});exports.a=T;exports.b=U;exports.c=j;exports.d=B;//# sourceMappingURL=chunk-RGQDQ72R.cjs.map
|
|
2
|
+
//# sourceMappingURL=chunk-RGQDQ72R.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/schema/conversations.ts"],"names":["BaseConversationMetadataSchema","object","array","string","ConversationMetadataSchema","AssetMetadataSchema","ConversationSchema","AssetSchema","AssetTypeSchema","optional","nullable","ProfileSchema","BaseCreateConversationSchema","CreateAssetSchema","literal","MonetizationSchema","VisibilitySchema","CreateConversationSchema","value","normalizeAssetConfigForParsing","UpdateConversationSchema","MessageSchema","uuid","TipTapSchema","record","any"],"mappings":"4OA2BA,IAAMA,EAAiCC,UAAO,CAAA,CAC5C,OAASC,CAAAA,SAAAA,CAAMC,YAAQ,CACzB,CAAC,CAAA,CAEKC,EAA6BJ,CAA+B,CAAA,MAAA,CAChEK,oBAAoB,OAAQ,EAAA,CAAE,KAChC,CAEMC,CAAAA,CAAAA,CAAqBC,mBAAY,CAAA,MAAA,CAAO,CAC5C,UAAYC,CAAAA,mBAAAA,CAAgB,OAAQ,CAAA,cAAc,EAClD,QAAUJ,CAAAA,CAAAA,CACV,KAAOK,CAAAA,YAAAA,CAASC,aAASR,SAAMS,CAAAA,mBAAa,CAAC,CAAC,CAChD,CAAC,CAEKC,CAAAA,CAAAA,CAA+BC,mBAAkB,CAAA,MAAA,CAAO,CAC5D,UAAYC,CAAAA,WAAAA,CAAQ,cAAc,CAAA,CAAE,QAAQ,cAAc,CAAA,CAC1D,YAAcC,CAAAA,mBAAAA,CAAmB,QAAQ,MAAM,CAAA,CAC/C,WAAYC,mBAAiB,CAAA,OAAA,CAAQ,SAAS,CAC9C,CAAA,QAAA,CAAUZ,CACZ,CAAC,EAEKa,CAA2BL,CAAAA,CAAAA,CAC9B,SAAWM,CAAAA,CAAAA,EAAUC,oBAA+BD,CAAK,CAAC,CAGvDE,CAAAA,CAAAA,CAA2BR,EAA6B,IAAK,CAAA,CACjE,GAAI,IACJ,CAAA,MAAA,CAAQ,KACR,OAAS,CAAA,IAKX,CAAC,CAAA,CAAE,SAAU,CAAA,SAAA,CAAWM,CAAUC,EAAAA,mBAAAA,CAA+BD,CAAK,CAAC,CAAA,CAEjEG,CAAgBpB,CAAAA,UAAAA,CAAO,CAC3B,EAAIqB,CAAAA,QAAAA,GACJ,eAAiBA,CAAAA,QAAAA,GACjB,OAASA,CAAAA,QAAAA,EACT,CAAA,IAAA,CAAMb,aAASC,YAASC,CAAAA,mBAAa,CAAC,CAAA,CACtC,KAAMR,UAAO,EAAA,CAAE,OAAQ,CAAA,SAAS,EAChC,UAAYA,CAAAA,UAAAA,GACZ,YAAcA,CAAAA,UAAAA,GACd,OAASD,CAAAA,SAAAA,CAAMoB,QAAK,EAAC,EACrB,IAAMC,CAAAA,mBAAAA,CACN,IAAMpB,CAAAA,UAAAA,GACN,QAAUM,CAAAA,YAAAA,CAASC,YAASc,CAAAA,UAAAA,CAAOrB,YAAUsB,CAAAA,OAAAA,EAAK,CAAC,CAAC,CACtD,CAAC","file":"chunk-RGQDQ72R.cjs","sourcesContent":["import {\n object,\n string,\n uuid,\n array,\n type z,\n record,\n any,\n optional,\n nullable,\n literal\n} from \"zod\";\n\nimport {\n AssetTypeSchema,\n MonetizationSchema,\n VisibilitySchema,\n} from \"./common\";\nimport {\n AssetMetadataSchema,\n AssetSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { TipTapSchema } from \"./posts\";\nimport { ProfileSchema } from \"./users\";\n\nconst BaseConversationMetadataSchema = object({\n members: array(string()),\n});\n\nconst ConversationMetadataSchema = BaseConversationMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst ConversationSchema = AssetSchema.extend({\n asset_type: AssetTypeSchema.default(\"conversation\"),\n metadata: ConversationMetadataSchema,\n users: optional(nullable(array(ProfileSchema))),\n});\n\nconst BaseCreateConversationSchema = CreateAssetSchema.extend({\n asset_type: literal(\"conversation\").default(\"conversation\"),\n monetization: MonetizationSchema.default(\"none\"),\n visibility: VisibilitySchema.default(\"private\"),\n metadata: ConversationMetadataSchema,\n});\n\nconst CreateConversationSchema = BaseCreateConversationSchema\n .transform((value) => normalizeAssetConfigForParsing(value));\n\n// Partial because we can make updates to conversations without providing all fields\nconst UpdateConversationSchema = BaseCreateConversationSchema.omit({\n id: true,\n org_id: true,\n team_id: true,\n // team: true,\n // user: true,\n // organization: true,\n // slug: true,\n}).partial().transform((value) => normalizeAssetConfigForParsing(value));\n\nconst MessageSchema = object({\n id: uuid(),\n conversation_id: uuid(),\n user_id: uuid(),\n user: optional(nullable(ProfileSchema)),\n type: string().default(\"message\"),\n created_at: string(),\n last_updated: string(),\n viewers: array(uuid()),\n json: TipTapSchema,\n text: string(),\n metadata: optional(nullable(record(string(), any()))),\n});\n\nexport {\n MessageSchema,\n UpdateConversationSchema,\n CreateConversationSchema,\n ConversationSchema,\n};\nexport type Conversation = z.infer<typeof ConversationSchema>;\nexport type CreateConversation = z.infer<typeof CreateConversationSchema>;\nexport type UpdateConversation = z.infer<typeof UpdateConversationSchema>;\nexport type Message = z.infer<typeof MessageSchema>;\n"]}
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var chunkDHQJ2FCF_cjs=require('./chunk-DHQJ2FCF.cjs'),chunkVGNECRJJ_cjs=require('./chunk-VGNECRJJ.cjs'),chunkW3XNHFD6_cjs=require('./chunk-W3XNHFD6.cjs'),
|
|
1
|
+
'use strict';var chunkDHQJ2FCF_cjs=require('./chunk-DHQJ2FCF.cjs'),chunkVGNECRJJ_cjs=require('./chunk-VGNECRJJ.cjs'),chunkW3XNHFD6_cjs=require('./chunk-W3XNHFD6.cjs'),chunkN6AJDETI_cjs=require('./chunk-N6AJDETI.cjs'),chunkOILLE36G_cjs=require('./chunk-OILLE36G.cjs'),chunk6VIPPUJT_cjs=require('./chunk-6VIPPUJT.cjs'),chunkT4BUMCXS_cjs=require('./chunk-T4BUMCXS.cjs'),chunkMFRUMVY6_cjs=require('./chunk-MFRUMVY6.cjs'),chunk6MSNL636_cjs=require('./chunk-6MSNL636.cjs'),chunkUORCDNEC_cjs=require('./chunk-UORCDNEC.cjs'),chunkSRHZ5S5N_cjs=require('./chunk-SRHZ5S5N.cjs'),chunkJ6IXOTYT_cjs=require('./chunk-J6IXOTYT.cjs'),chunkRGQDQ72R_cjs=require('./chunk-RGQDQ72R.cjs'),chunkC5CSA2IE_cjs=require('./chunk-C5CSA2IE.cjs'),chunkCZ53CZIQ_cjs=require('./chunk-CZ53CZIQ.cjs'),chunk4JJ6JLXK_cjs=require('./chunk-4JJ6JLXK.cjs'),chunkBDVKX5EB_cjs=require('./chunk-BDVKX5EB.cjs'),chunkLAMEJFKJ_cjs=require('./chunk-LAMEJFKJ.cjs'),chunkGY6SLMMJ_cjs=require('./chunk-GY6SLMMJ.cjs'),chunkMKMFDR3M_cjs=require('./chunk-MKMFDR3M.cjs');require('./chunk-7HF5VHUN.cjs');Object.defineProperty(exports,"createNameUrlSlug",{enumerable:true,get:function(){return chunkDHQJ2FCF_cjs.a}});Object.defineProperty(exports,"createUrlSlug",{enumerable:true,get:function(){return chunkDHQJ2FCF_cjs.b}});Object.defineProperty(exports,"getAssetUrl",{enumerable:true,get:function(){return chunkDHQJ2FCF_cjs.c}});Object.defineProperty(exports,"filterListToString",{enumerable:true,get:function(){return chunkVGNECRJJ_cjs.a}});Object.defineProperty(exports,"getReferencesInContent",{enumerable:true,get:function(){return chunkW3XNHFD6_cjs.c}});Object.defineProperty(exports,"parseAssetLinkShorthand",{enumerable:true,get:function(){return chunkW3XNHFD6_cjs.a}});Object.defineProperty(exports,"parseOuroAssetUrl",{enumerable:true,get:function(){return chunkW3XNHFD6_cjs.b}});Object.defineProperty(exports,"parseMarkdown",{enumerable:true,get:function(){return chunkN6AJDETI_cjs.a}});Object.defineProperty(exports,"CreateFileSchema",{enumerable:true,get:function(){return chunkOILLE36G_cjs.b}});Object.defineProperty(exports,"FileSchema",{enumerable:true,get:function(){return chunkOILLE36G_cjs.a}});Object.defineProperty(exports,"updateFileSchema",{enumerable:true,get:function(){return chunkOILLE36G_cjs.c}});Object.defineProperty(exports,"NotificationSchema",{enumerable:true,get:function(){return chunk6VIPPUJT_cjs.a}});Object.defineProperty(exports,"reactionSchema",{enumerable:true,get:function(){return chunkT4BUMCXS_cjs.a}});Object.defineProperty(exports,"CreateReplicationSchema",{enumerable:true,get:function(){return chunkMFRUMVY6_cjs.b}});Object.defineProperty(exports,"ReplicationSchema",{enumerable:true,get:function(){return chunkMFRUMVY6_cjs.a}});Object.defineProperty(exports,"UpdateReplicationSchema",{enumerable:true,get:function(){return chunkMFRUMVY6_cjs.c}});Object.defineProperty(exports,"ActionSchema",{enumerable:true,get:function(){return chunk6MSNL636_cjs.e}});Object.defineProperty(exports,"CreateServiceSchema",{enumerable:true,get:function(){return chunk6MSNL636_cjs.b}});Object.defineProperty(exports,"RouteSchema",{enumerable:true,get:function(){return chunk6MSNL636_cjs.d}});Object.defineProperty(exports,"ServiceSchema",{enumerable:true,get:function(){return chunk6MSNL636_cjs.a}});Object.defineProperty(exports,"UpdateServiceSchema",{enumerable:true,get:function(){return chunk6MSNL636_cjs.c}});Object.defineProperty(exports,"AssetTagSchema",{enumerable:true,get:function(){return chunkUORCDNEC_cjs.e}});Object.defineProperty(exports,"AssetTagWithTagSchema",{enumerable:true,get:function(){return chunkUORCDNEC_cjs.f}});Object.defineProperty(exports,"CreateAssetTagSchema",{enumerable:true,get:function(){return chunkUORCDNEC_cjs.g}});Object.defineProperty(exports,"TagSchema",{enumerable:true,get:function(){return chunkUORCDNEC_cjs.c}});Object.defineProperty(exports,"TagSourceSchema",{enumerable:true,get:function(){return chunkUORCDNEC_cjs.b}});Object.defineProperty(exports,"TagTypeSchema",{enumerable:true,get:function(){return chunkUORCDNEC_cjs.a}});Object.defineProperty(exports,"TagWithParentSchema",{enumerable:true,get:function(){return chunkUORCDNEC_cjs.d}});Object.defineProperty(exports,"TagsByTypeSchema",{enumerable:true,get:function(){return chunkUORCDNEC_cjs.h}});Object.defineProperty(exports,"BlueprintSchema",{enumerable:true,get:function(){return chunkSRHZ5S5N_cjs.a}});Object.defineProperty(exports,"CreateBlueprintSchema",{enumerable:true,get:function(){return chunkSRHZ5S5N_cjs.b}});Object.defineProperty(exports,"UpdateBlueprintSchema",{enumerable:true,get:function(){return chunkSRHZ5S5N_cjs.c}});Object.defineProperty(exports,"CommentSchema",{enumerable:true,get:function(){return chunkJ6IXOTYT_cjs.a}});Object.defineProperty(exports,"CreateCommentSchema",{enumerable:true,get:function(){return chunkJ6IXOTYT_cjs.b}});Object.defineProperty(exports,"ConversationSchema",{enumerable:true,get:function(){return chunkRGQDQ72R_cjs.a}});Object.defineProperty(exports,"CreateConversationSchema",{enumerable:true,get:function(){return chunkRGQDQ72R_cjs.b}});Object.defineProperty(exports,"MessageSchema",{enumerable:true,get:function(){return chunkRGQDQ72R_cjs.d}});Object.defineProperty(exports,"UpdateConversationSchema",{enumerable:true,get:function(){return chunkRGQDQ72R_cjs.c}});Object.defineProperty(exports,"ContentSchema",{enumerable:true,get:function(){return chunkC5CSA2IE_cjs.b}});Object.defineProperty(exports,"CreatePostSchema",{enumerable:true,get:function(){return chunkC5CSA2IE_cjs.d}});Object.defineProperty(exports,"ListPostsSchema",{enumerable:true,get:function(){return chunkC5CSA2IE_cjs.g}});Object.defineProperty(exports,"PostSchema",{enumerable:true,get:function(){return chunkC5CSA2IE_cjs.c}});Object.defineProperty(exports,"ReadPostSchema",{enumerable:true,get:function(){return chunkC5CSA2IE_cjs.e}});Object.defineProperty(exports,"ReadPostsSchema",{enumerable:true,get:function(){return chunkC5CSA2IE_cjs.f}});Object.defineProperty(exports,"TipTapSchema",{enumerable:true,get:function(){return chunkC5CSA2IE_cjs.a}});Object.defineProperty(exports,"UpdatePostSchema",{enumerable:true,get:function(){return chunkC5CSA2IE_cjs.h}});Object.defineProperty(exports,"CreateDatasetFromFileSchema",{enumerable:true,get:function(){return chunkCZ53CZIQ_cjs.b}});Object.defineProperty(exports,"CreateDatasetFromSchemaSchema",{enumerable:true,get:function(){return chunkCZ53CZIQ_cjs.c}});Object.defineProperty(exports,"DatasetSchema",{enumerable:true,get:function(){return chunkCZ53CZIQ_cjs.a}});Object.defineProperty(exports,"updateDatasetSchema",{enumerable:true,get:function(){return chunkCZ53CZIQ_cjs.d}});Object.defineProperty(exports,"AssetMetadataSchema",{enumerable:true,get:function(){return chunk4JJ6JLXK_cjs.b}});Object.defineProperty(exports,"AssetSchema",{enumerable:true,get:function(){return chunk4JJ6JLXK_cjs.c}});Object.defineProperty(exports,"CreateAssetSchema",{enumerable:true,get:function(){return chunk4JJ6JLXK_cjs.d}});Object.defineProperty(exports,"UpdateAssetSchema",{enumerable:true,get:function(){return chunk4JJ6JLXK_cjs.e}});Object.defineProperty(exports,"normalizeAssetConfigForParsing",{enumerable:true,get:function(){return chunk4JJ6JLXK_cjs.a}});Object.defineProperty(exports,"CreateTeamSchema",{enumerable:true,get:function(){return chunkBDVKX5EB_cjs.b}});Object.defineProperty(exports,"ReadTeamSchema",{enumerable:true,get:function(){return chunkBDVKX5EB_cjs.c}});Object.defineProperty(exports,"ReadTeamsSchema",{enumerable:true,get:function(){return chunkBDVKX5EB_cjs.d}});Object.defineProperty(exports,"TeamSchema",{enumerable:true,get:function(){return chunkBDVKX5EB_cjs.a}});Object.defineProperty(exports,"UpdateTeamSchema",{enumerable:true,get:function(){return chunkBDVKX5EB_cjs.e}});Object.defineProperty(exports,"ActorTypePolicySchema",{enumerable:true,get:function(){return chunkLAMEJFKJ_cjs.a}});Object.defineProperty(exports,"MembershipSchema",{enumerable:true,get:function(){return chunkLAMEJFKJ_cjs.d}});Object.defineProperty(exports,"OrganizationsSchema",{enumerable:true,get:function(){return chunkLAMEJFKJ_cjs.c}});Object.defineProperty(exports,"SourcePolicySchema",{enumerable:true,get:function(){return chunkLAMEJFKJ_cjs.b}});Object.defineProperty(exports,"ActorTypeSchema",{enumerable:true,get:function(){return chunkGY6SLMMJ_cjs.a}});Object.defineProperty(exports,"ProfileSchema",{enumerable:true,get:function(){return chunkGY6SLMMJ_cjs.b}});Object.defineProperty(exports,"ReadProfileSchema",{enumerable:true,get:function(){return chunkGY6SLMMJ_cjs.c}});Object.defineProperty(exports,"UpdateProfileSchema",{enumerable:true,get:function(){return chunkGY6SLMMJ_cjs.d}});Object.defineProperty(exports,"AssetTypeSchema",{enumerable:true,get:function(){return chunkMKMFDR3M_cjs.a}});Object.defineProperty(exports,"ConnectionSchema",{enumerable:true,get:function(){return chunkMKMFDR3M_cjs.g}});Object.defineProperty(exports,"EmbeddingSchema",{enumerable:true,get:function(){return chunkMKMFDR3M_cjs.f}});Object.defineProperty(exports,"MonetizationSchema",{enumerable:true,get:function(){return chunkMKMFDR3M_cjs.d}});Object.defineProperty(exports,"PermissionSchema",{enumerable:true,get:function(){return chunkMKMFDR3M_cjs.i}});Object.defineProperty(exports,"PriceCurrencySchema",{enumerable:true,get:function(){return chunkMKMFDR3M_cjs.e}});Object.defineProperty(exports,"PurchaseAssetSchema",{enumerable:true,get:function(){return chunkMKMFDR3M_cjs.h}});Object.defineProperty(exports,"RoleSchema",{enumerable:true,get:function(){return chunkMKMFDR3M_cjs.c}});Object.defineProperty(exports,"SourceSchema",{enumerable:true,get:function(){return chunkMKMFDR3M_cjs.k}});Object.defineProperty(exports,"StatusSchema",{enumerable:true,get:function(){return chunkMKMFDR3M_cjs.j}});Object.defineProperty(exports,"VisibilitySchema",{enumerable:true,get:function(){return chunkMKMFDR3M_cjs.b}});//# sourceMappingURL=index.cjs.map
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{a as createNameUrlSlug,b as createUrlSlug,c as getAssetUrl}from'./chunk-6RGIIOOP.js';export{a as filterListToString}from'./chunk-OJQM6MWS.js';export{c as getReferencesInContent,a as parseAssetLinkShorthand,b as parseOuroAssetUrl}from'./chunk-U5WHESJR.js';export{a as parseMarkdown}from'./chunk-
|
|
1
|
+
export{a as createNameUrlSlug,b as createUrlSlug,c as getAssetUrl}from'./chunk-6RGIIOOP.js';export{a as filterListToString}from'./chunk-OJQM6MWS.js';export{c as getReferencesInContent,a as parseAssetLinkShorthand,b as parseOuroAssetUrl}from'./chunk-U5WHESJR.js';export{a as parseMarkdown}from'./chunk-DE2Z5AOM.js';export{b as CreateFileSchema,a as FileSchema,c as updateFileSchema}from'./chunk-B75WL6RS.js';export{a as NotificationSchema}from'./chunk-S2CP6IGR.js';export{a as reactionSchema}from'./chunk-WE6CXCEQ.js';export{b as CreateReplicationSchema,a as ReplicationSchema,c as UpdateReplicationSchema}from'./chunk-5ZISONMU.js';export{e as ActionSchema,b as CreateServiceSchema,d as RouteSchema,a as ServiceSchema,c as UpdateServiceSchema}from'./chunk-2NJRZN2A.js';export{e as AssetTagSchema,f as AssetTagWithTagSchema,g as CreateAssetTagSchema,c as TagSchema,b as TagSourceSchema,a as TagTypeSchema,d as TagWithParentSchema,h as TagsByTypeSchema}from'./chunk-EEXD7LGK.js';export{a as BlueprintSchema,b as CreateBlueprintSchema,c as UpdateBlueprintSchema}from'./chunk-AL7O4IAB.js';export{a as CommentSchema,b as CreateCommentSchema}from'./chunk-6PR63E3C.js';export{a as ConversationSchema,b as CreateConversationSchema,d as MessageSchema,c as UpdateConversationSchema}from'./chunk-GY5TIDDB.js';export{b as ContentSchema,d as CreatePostSchema,g as ListPostsSchema,c as PostSchema,e as ReadPostSchema,f as ReadPostsSchema,a as TipTapSchema,h as UpdatePostSchema}from'./chunk-QMVYPQP3.js';export{b as CreateDatasetFromFileSchema,c as CreateDatasetFromSchemaSchema,a as DatasetSchema,d as updateDatasetSchema}from'./chunk-KOFLISSG.js';export{b as AssetMetadataSchema,c as AssetSchema,d as CreateAssetSchema,e as UpdateAssetSchema,a as normalizeAssetConfigForParsing}from'./chunk-XIDYDUVH.js';export{b as CreateTeamSchema,c as ReadTeamSchema,d as ReadTeamsSchema,a as TeamSchema,e as UpdateTeamSchema}from'./chunk-7GATZDKH.js';export{a as ActorTypePolicySchema,d as MembershipSchema,c as OrganizationsSchema,b as SourcePolicySchema}from'./chunk-7XHIK5BY.js';export{a as ActorTypeSchema,b as ProfileSchema,c as ReadProfileSchema,d as UpdateProfileSchema}from'./chunk-3N56ERWF.js';export{a as AssetTypeSchema,g as ConnectionSchema,f as EmbeddingSchema,d as MonetizationSchema,i as PermissionSchema,e as PriceCurrencySchema,h as PurchaseAssetSchema,c as RoleSchema,k as SourceSchema,j as StatusSchema,b as VisibilitySchema}from'./chunk-3EK6Q2YF.js';import'./chunk-DUBPWSCA.js';//# sourceMappingURL=index.js.map
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkRGQDQ72R_cjs=require('../chunk-RGQDQ72R.cjs');require('../chunk-C5CSA2IE.cjs'),require('../chunk-4JJ6JLXK.cjs'),require('../chunk-BDVKX5EB.cjs'),require('../chunk-LAMEJFKJ.cjs'),require('../chunk-GY6SLMMJ.cjs'),require('../chunk-MKMFDR3M.cjs'),require('../chunk-7HF5VHUN.cjs');Object.defineProperty(exports,"ConversationSchema",{enumerable:true,get:function(){return chunkRGQDQ72R_cjs.a}});Object.defineProperty(exports,"CreateConversationSchema",{enumerable:true,get:function(){return chunkRGQDQ72R_cjs.b}});Object.defineProperty(exports,"MessageSchema",{enumerable:true,get:function(){return chunkRGQDQ72R_cjs.d}});Object.defineProperty(exports,"UpdateConversationSchema",{enumerable:true,get:function(){return chunkRGQDQ72R_cjs.c}});//# sourceMappingURL=conversations.cjs.map
|
|
2
2
|
//# sourceMappingURL=conversations.cjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{a as ConversationSchema,b as CreateConversationSchema,d as MessageSchema,c as UpdateConversationSchema}from'../chunk-
|
|
1
|
+
export{a as ConversationSchema,b as CreateConversationSchema,d as MessageSchema,c as UpdateConversationSchema}from'../chunk-GY5TIDDB.js';import'../chunk-QMVYPQP3.js';import'../chunk-XIDYDUVH.js';import'../chunk-7GATZDKH.js';import'../chunk-7XHIK5BY.js';import'../chunk-3N56ERWF.js';import'../chunk-3EK6Q2YF.js';import'../chunk-DUBPWSCA.js';//# sourceMappingURL=conversations.js.map
|
|
2
2
|
//# sourceMappingURL=conversations.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkN6AJDETI_cjs=require('../../chunk-N6AJDETI.cjs');Object.defineProperty(exports,"parseMarkdown",{enumerable:true,get:function(){return chunkN6AJDETI_cjs.a}});//# sourceMappingURL=markdown-parser.cjs.map
|
|
2
2
|
//# sourceMappingURL=markdown-parser.cjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{a as parseMarkdown}from'../../chunk-
|
|
1
|
+
export{a as parseMarkdown}from'../../chunk-DE2Z5AOM.js';//# sourceMappingURL=markdown-parser.js.map
|
|
2
2
|
//# sourceMappingURL=markdown-parser.js.map
|
package/package.json
CHANGED
package/dist/chunk-BSSU5PNI.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import {marked}from'marked';function c(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<")}function i(e,n){return `<span data-latex="${c(e)}" data-display-mode="${n}"></span>`}function m(e){return /^\d+(\.\d+)?$/.test(e)}function p(e){if(!e.startsWith("$")||e.startsWith("$$"))return false;let n=e.slice(1),r=n[0];return !r||r===" "||r===" "||r==="$"?false:/\d/.test(r)?/[+\-*^_=\\{<>\/()[\]|]/.test(n.slice(1)):true}function k(e){let n=1;for(;n<e.length;){let r=e[n];if(r===`
|
|
2
|
-
`)return -1;if(r==="\\"){n+=2;continue}if(r==="$"){if(e[n+1]==="$"){n+=2;continue}return n}n++;}return -1}var x={name:"katexDollarBlock",level:"block",start(e){let n=e.match(/\$\$/);return n?n.index:void 0},end(e){var r;let n=e.match(/\$\$/);return n?((r=n.index)!=null?r:0)+2:void 0},tokenizer(e,n){let t=/^\$\$([\s\S]*?)\$\$/.exec(e);if(t)return {type:"katexDollarBlock",raw:t[0],latex:t[1].trim(),displayMode:true}},renderer(e){return i(e.latex,true)}},f={name:"katexDollarInline",level:"inline",start(e){let n=e.match(/\$(?!\$)/);return n?n.index:void 0},end(e){var r;let n=e.match(/\$(?!\$)/);return n?((r=n.index)!=null?r:0)+1:void 0},tokenizer(e,n){if(!p(e))return;let r=k(e);if(r<0)return;let t=e.slice(1,r).trim();if(!(t.length===0||m(t)))return {type:"katexDollarInline",raw:e.slice(0,r+1),latex:t,displayMode:false}},renderer(e){return i(e.latex,false)}},y={name:"katexBlock",level:"block",start(e){let n=e.match(/\\\[/);return n?n.index:void 0},end(e){var r,t,a;let n=e.match(/\s\\\]/);return n?((r=n.index)!=null?r:0)+((a=(t=n[0])==null?void 0:t.length)!=null?a:0):void 0},tokenizer(e,n){let t=/^\\\[([\s\S]*?)\\\]/.exec(e);if(t)return {type:"katexBlock",raw:t[0],latex:t[1].trim(),displayMode:true}},renderer(e){return i(e.latex,e.displayMode)}},h={name:"katexInline",level:"inline",start(e){let n=e.match(/\\\(/);return n?n.index:void 0},end(e){var r,t,a;let n=e.match(/\s\\\)/);return n?((r=n.index)!=null?r:0)+((a=(t=n[0])==null?void 0:t.length)!=null?a:0):void 0},tokenizer(e,n){let t=/^\\\(([\s\S]*?)\\\)/.exec(e);if(t)return {type:"katexInline",raw:t[0],latex:t[1].trim(),displayMode:false}},renderer(e){return i(e.latex,e.displayMode)}},g={name:"assetComponent",level:"block",start(e){var n;return (n=e.match(/^```assetComponent/))==null?void 0:n.index},end(e){var n;return (n=e.match(/^```/))==null?void 0:n.index},tokenizer(e,n){let t=/^```assetComponent\s+(\{[\s\S]*?\})\n```/.exec(e);if(t)return {type:"assetComponent",raw:t[0],properties:t[1],tokens:[]}},renderer(e){let n;try{n=JSON.parse(e.properties);}catch(t){console.error("Invalid JSON in assetComponent properties:",t),n={};}return `
|
|
3
|
-
<asset-component ${Object.entries(n).map(([t,a])=>{let o=(typeof a=="object"&&a!==null?JSON.stringify(a):String(a)).replace(/"/g,""");return `${t}="${o}"`}).join(" ")}></asset-component>`}},$={name:"userMention",level:"inline",start(e){let n=e.match(/`\{@|(?<![`])\{@/);return n?n.index:void 0},end(e){var n,r,t;return (t=(n=e.match(/\}`/))==null?void 0:n.index)!=null?t:(r=e.match(/(?<![`])\{@[^}]*\}/))==null?void 0:r.index},tokenizer(e,n){let r=/^`\{@([a-zA-Z0-9_]+)\}`/.exec(e);if(r)return {type:"userMention",raw:r[0],username:r[1]};let t=/^\{@([a-zA-Z0-9_]+)\}/.exec(e);if(t)return {type:"userMention",raw:t[0],username:t[1]}},renderer(e){let n=c(e.username);return `<user-mention username="${n}" data-label="${n}"></user-mention>`}};marked.use({gfm:true,extensions:[g,$,x,y,f,h],renderer:{list(e){var n;return !e.ordered&&((n=e.items)==null?void 0:n.length)>0&&e.items.every(r=>r.task)?`<ul data-type="taskList">
|
|
4
|
-
${e.items.map(t=>{let a=t.tokens.filter(d=>d.type!=="checkbox"),s=this.parser.parse(a,!!t.loose);t.loose||(s=`<p>${s}</p>`);let o=t.checked?"true":"false",u=t.checked?' checked="checked"':"";return `<li data-type="taskItem" data-checked="${o}"><label contenteditable="false"><input type="checkbox"${u}></label><div>${s}</div></li>`}).join(`
|
|
5
|
-
`)}
|
|
6
|
-
</ul>
|
|
7
|
-
`:false}}});function I(e){return marked.parse(e)}export{I as a};//# sourceMappingURL=chunk-BSSU5PNI.js.map
|
|
8
|
-
//# sourceMappingURL=chunk-BSSU5PNI.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/air/markdown-parser.ts"],"names":["escapeHtmlAttr","s","mathSpanHtml","latex","displayMode","isLikelyCurrencyAmount","dollarInlineOpenOk","src","rest","c","endIndexOfDollarInline","i","ch","katexDollarBlock","match","_a","tokens","token","katexDollarInline","close","katexBlockParser","_b","_c","katexInlineParser","assetComponentExtension","properties","e","key","value","escapedValue","userMentionExtension","m","codeWrapped","bracesOnly","u","marked","item","inner","t","text","checked","ckAttr","parseMarkdown","markdown"],"mappings":"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","file":"chunk-BSSU5PNI.js","sourcesContent":["import { marked } from \"marked\";\n\n/** Safe for double-quoted HTML attributes (e.g. data-latex). */\nfunction escapeHtmlAttr(s: string): string {\n return s\n .replace(/&/g, \"&\")\n .replace(/\"/g, \""\")\n .replace(/</g, \"<\");\n}\n\nfunction mathSpanHtml(latex: string, displayMode: boolean): string {\n return `<span data-latex=\"${escapeHtmlAttr(latex)}\" data-display-mode=\"${displayMode}\"></span>`;\n}\n\n/** Same-line `$...$` that looks like a plain price (e.g. $5, $3.50) — not math. */\nfunction isLikelyCurrencyAmount(s: string): boolean {\n return /^\\d+(\\.\\d+)?$/.test(s);\n}\n\n/**\n * First `$` in `src` opens inline math only if it is not `$$` and the segment is not a bare amount.\n * Digit after `$` is allowed when the rest of the (same-line) formula contains obvious math syntax.\n */\nfunction dollarInlineOpenOk(src: string): boolean {\n if (!src.startsWith(\"$\") || src.startsWith(\"$$\")) return false;\n const rest = src.slice(1);\n const c = rest[0];\n if (!c || c === \" \" || c === \"\\t\" || c === \"$\") return false;\n if (!/\\d/.test(c)) return true;\n return /[+\\-*^_=\\\\{<>\\/()[\\]|]/.test(rest.slice(1));\n}\n\n/** Closing `$` for inline math at start of `src` (which must begin with a single `$`). */\nfunction endIndexOfDollarInline(src: string): number {\n let i = 1;\n while (i < src.length) {\n const ch = src[i];\n if (ch === \"\\n\") return -1;\n if (ch === \"\\\\\") {\n i += 2;\n continue;\n }\n if (ch === \"$\") {\n if (src[i + 1] === \"$\") {\n i += 2;\n continue;\n }\n return i;\n }\n i++;\n }\n return -1;\n}\n\nconst katexDollarBlock = {\n name: \"katexDollarBlock\",\n level: \"block\",\n start(src: string) {\n const match = src.match(/\\$\\$/);\n return match ? match.index : undefined;\n },\n end(src: string) {\n const match = src.match(/\\$\\$/);\n return match ? (match.index ?? 0) + 2 : undefined;\n },\n tokenizer(src: string, tokens: any) {\n const rule = /^\\$\\$([\\s\\S]*?)\\$\\$/;\n const match = rule.exec(src);\n if (match) {\n return {\n type: \"katexDollarBlock\",\n raw: match[0],\n latex: match[1].trim(),\n displayMode: true,\n };\n }\n },\n renderer(token: any) {\n return mathSpanHtml(token.latex, true);\n },\n};\n\nconst katexDollarInline = {\n name: \"katexDollarInline\",\n level: \"inline\",\n start(src: string) {\n const match = src.match(/\\$(?!\\$)/);\n return match ? match.index : undefined;\n },\n end(src: string) {\n const match = src.match(/\\$(?!\\$)/);\n return match ? (match.index ?? 0) + 1 : undefined;\n },\n tokenizer(src: string, tokens: any) {\n if (!dollarInlineOpenOk(src)) return;\n const close = endIndexOfDollarInline(src);\n if (close < 0) return;\n const latex = src.slice(1, close).trim();\n if (latex.length === 0 || isLikelyCurrencyAmount(latex)) return;\n return {\n type: \"katexDollarInline\",\n raw: src.slice(0, close + 1),\n latex,\n displayMode: false,\n };\n },\n renderer(token: any) {\n return mathSpanHtml(token.latex, false);\n },\n};\n\nconst katexBlockParser = {\n name: \"katexBlock\",\n level: \"block\",\n start(src: string) {\n const match = src.match(/\\\\\\[/);\n return match ? match.index : undefined;\n },\n end(src: string) {\n const match = src.match(/\\s\\\\\\]/);\n return match ? (match.index ?? 0) + (match[0]?.length ?? 0) : undefined;\n },\n tokenizer(src: string, tokens: any) {\n const displayRule = /^\\\\\\[([\\s\\S]*?)\\\\\\]/;\n const match = displayRule.exec(src);\n if (match) {\n return {\n type: \"katexBlock\",\n raw: match[0],\n latex: match[1].trim(),\n displayMode: true,\n };\n }\n },\n renderer(token: any) {\n // Non-self-closing span is important for client-side inline flow around the node.\n return mathSpanHtml(token.latex, token.displayMode);\n },\n};\n\nconst katexInlineParser = {\n name: \"katexInline\",\n level: \"inline\",\n start(src: string) {\n const match = src.match(/\\\\\\(/);\n return match ? match.index : undefined;\n },\n end(src: string) {\n const match = src.match(/\\s\\\\\\)/);\n return match ? (match.index ?? 0) + (match[0]?.length ?? 0) : undefined;\n },\n tokenizer(src: string, tokens: any) {\n const inlineRule = /^\\\\\\(([\\s\\S]*?)\\\\\\)/;\n const match = inlineRule.exec(src);\n if (match) {\n return {\n type: \"katexInline\",\n raw: match[0],\n latex: match[1].trim(),\n displayMode: false,\n };\n }\n },\n renderer(token: any) {\n // STRANGE: The non-self-closing tag is important for client side to render as inline and render text after it\n return mathSpanHtml(token.latex, token.displayMode);\n },\n};\n\nconst assetComponentExtension = {\n name: \"assetComponent\",\n level: \"block\",\n start(src: string) {\n return src.match(/^```assetComponent/)?.index;\n },\n end(src: string) {\n return src.match(/^```/)?.index;\n },\n tokenizer(src: string, tokens: any) {\n const rule = /^```assetComponent\\s+(\\{[\\s\\S]*?\\})\\n```/;\n const match = rule.exec(src);\n if (match) {\n const token = {\n type: \"assetComponent\",\n raw: match[0],\n properties: match[1],\n tokens: [],\n };\n return token;\n }\n },\n renderer(token: any) {\n let properties;\n try {\n properties = JSON.parse(token.properties);\n } catch (e) {\n console.error(\"Invalid JSON in assetComponent properties:\", e);\n properties = {};\n }\n const componentHtml = `\n <asset-component ${Object.entries(properties)\n .map(([key, value]) => {\n // Stringify arrays and objects, keep primitives as-is\n const stringValue = typeof value === 'object' && value !== null\n ? JSON.stringify(value)\n : String(value);\n // Escape quotes for HTML attributes\n const escapedValue = stringValue.replace(/\"/g, '"');\n return `${key}=\"${escapedValue}\"`;\n })\n .join(\" \")}></asset-component>`;\n\n return componentHtml;\n },\n};\n\nconst userMentionExtension = {\n name: \"userMention\",\n level: \"inline\",\n start(src: string) {\n const m = src.match(/`\\{@|(?<![`])\\{@/);\n return m ? m.index : undefined;\n },\n end(src: string) {\n return src.match(/\\}`/)?.index ?? src.match(/(?<![`])\\{@[^}]*\\}/)?.index;\n },\n tokenizer(src: string, tokens: any) {\n const codeWrapped = /^`\\{@([a-zA-Z0-9_]+)\\}`/.exec(src);\n if (codeWrapped) {\n return {\n type: \"userMention\",\n raw: codeWrapped[0],\n username: codeWrapped[1],\n };\n }\n const bracesOnly = /^\\{@([a-zA-Z0-9_]+)\\}/.exec(src);\n if (bracesOnly) {\n return {\n type: \"userMention\",\n raw: bracesOnly[0],\n username: bracesOnly[1],\n };\n }\n },\n renderer(token: any) {\n const u = escapeHtmlAttr(token.username);\n return `<user-mention username=\"${u}\" data-label=\"${u}\"></user-mention>`;\n },\n};\n\nmarked.use({\n gfm: true,\n extensions: [\n assetComponentExtension,\n userMentionExtension,\n katexDollarBlock,\n katexBlockParser,\n katexDollarInline,\n katexInlineParser,\n ],\n renderer: {\n list(token: any) {\n if (\n !token.ordered &&\n token.items?.length > 0 &&\n token.items.every((item: any) => item.task)\n ) {\n const body = token.items\n .map((item: any) => {\n const inner = item.tokens.filter(\n (t: any) => t.type !== \"checkbox\"\n );\n let text = (this as any).parser.parse(inner, !!item.loose);\n if (!item.loose) text = `<p>${text}</p>`;\n const checked = item.checked ? \"true\" : \"false\";\n const ckAttr = item.checked ? ' checked=\"checked\"' : \"\";\n return `<li data-type=\"taskItem\" data-checked=\"${checked}\"><label contenteditable=\"false\"><input type=\"checkbox\"${ckAttr}></label><div>${text}</div></li>`;\n })\n .join(\"\\n\");\n return `<ul data-type=\"taskList\">\\n${body}\\n</ul>\\n`;\n }\n return false as any;\n },\n },\n});\n\nexport function parseMarkdown(markdown: string) {\n return marked.parse(markdown);\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schema/conversations.ts"],"names":["BaseConversationMetadataSchema","object","array","string","ConversationMetadataSchema","AssetMetadataSchema","ConversationSchema","AssetSchema","AssetTypeSchema","optional","nullable","ProfileSchema","BaseCreateConversationSchema","CreateAssetSchema","literal","MonetizationSchema","VisibilitySchema","CreateConversationSchema","value","normalizeAssetConfigForParsing","UpdateConversationSchema","MessageSchema","uuid","TipTapSchema","record","any"],"mappings":"6QA2BA,IAAMA,EAAiCC,MAAO,CAAA,CAC5C,OAASC,CAAAA,KAAAA,CAAMC,QAAQ,CACzB,CAAC,CAAA,CAEKC,EAA6BJ,CAA+B,CAAA,MAAA,CAChEK,CAAoB,CAAA,OAAA,GAAU,KAChC,CAAA,CAEMC,CAAqBC,CAAAA,CAAAA,CAAY,OAAO,CAC5C,UAAA,CAAYC,CAAgB,CAAA,OAAA,CAAQ,cAAc,CAClD,CAAA,QAAA,CAAUJ,CACV,CAAA,KAAA,CAAOK,SAASC,QAASR,CAAAA,KAAAA,CAAMS,GAAa,CAAC,CAAC,CAChD,CAAC,CAEKC,CAAAA,CAAAA,CAA+BC,EAAkB,MAAO,CAAA,CAC5D,UAAYC,CAAAA,OAAAA,CAAQ,cAAc,CAAE,CAAA,OAAA,CAAQ,cAAc,CAAA,CAC1D,aAAcC,GAAmB,CAAA,OAAA,CAAQ,MAAM,CAAA,CAC/C,WAAYC,GAAiB,CAAA,OAAA,CAAQ,SAAS,CAAA,CAC9C,SAAUZ,CACZ,CAAC,CAEKa,CAAAA,CAAAA,CAA2BL,EAC9B,SAAWM,CAAAA,CAAAA,EAAUC,GAA+BD,CAAAA,CAAK,CAAC,CAGvDE,CAAAA,CAAAA,CAA2BR,CAA6B,CAAA,IAAA,CAAK,CACjE,EAAI,CAAA,IAAA,CACJ,MAAQ,CAAA,IAAA,CACR,QAAS,IAKX,CAAC,CAAE,CAAA,OAAA,GAAU,SAAWM,CAAAA,CAAAA,EAAUC,GAA+BD,CAAAA,CAAK,CAAC,CAEjEG,CAAAA,CAAAA,CAAgBpB,MAAO,CAAA,CAC3B,GAAIqB,IAAK,EAAA,CACT,eAAiBA,CAAAA,IAAAA,GACjB,OAASA,CAAAA,IAAAA,EACT,CAAA,IAAA,CAAMb,SAASC,QAASC,CAAAA,GAAa,CAAC,CAAA,CACtC,WAAYR,MAAO,EAAA,CACnB,YAAcA,CAAAA,MAAAA,GACd,OAASD,CAAAA,KAAAA,CAAMoB,IAAK,EAAC,EACrB,IAAMC,CAAAA,GAAAA,CACN,IAAMpB,CAAAA,MAAAA,GACN,QAAUM,CAAAA,QAAAA,CAASC,QAASc,CAAAA,MAAAA,CAAOrB,QAAUsB,CAAAA,GAAAA,EAAK,CAAC,CAAC,CACtD,CAAC","file":"chunk-Y7MYLO3W.js","sourcesContent":["import {\n object,\n string,\n uuid,\n array,\n type z,\n record,\n any,\n optional,\n nullable,\n literal\n} from \"zod\";\n\nimport {\n AssetTypeSchema,\n MonetizationSchema,\n VisibilitySchema,\n} from \"./common\";\nimport {\n AssetMetadataSchema,\n AssetSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { TipTapSchema } from \"./posts\";\nimport { ProfileSchema } from \"./users\";\n\nconst BaseConversationMetadataSchema = object({\n members: array(string()),\n});\n\nconst ConversationMetadataSchema = BaseConversationMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst ConversationSchema = AssetSchema.extend({\n asset_type: AssetTypeSchema.default(\"conversation\"),\n metadata: ConversationMetadataSchema,\n users: optional(nullable(array(ProfileSchema))),\n});\n\nconst BaseCreateConversationSchema = CreateAssetSchema.extend({\n asset_type: literal(\"conversation\").default(\"conversation\"),\n monetization: MonetizationSchema.default(\"none\"),\n visibility: VisibilitySchema.default(\"private\"),\n metadata: ConversationMetadataSchema,\n});\n\nconst CreateConversationSchema = BaseCreateConversationSchema\n .transform((value) => normalizeAssetConfigForParsing(value));\n\n// Partial because we can make updates to conversations without providing all fields\nconst UpdateConversationSchema = BaseCreateConversationSchema.omit({\n id: true,\n org_id: true,\n team_id: true,\n // team: true,\n // user: true,\n // organization: true,\n // slug: true,\n}).partial().transform((value) => normalizeAssetConfigForParsing(value));\n\nconst MessageSchema = object({\n id: uuid(),\n conversation_id: uuid(),\n user_id: uuid(),\n user: optional(nullable(ProfileSchema)),\n created_at: string(),\n last_updated: string(),\n viewers: array(uuid()),\n json: TipTapSchema,\n text: string(),\n metadata: optional(nullable(record(string(), any()))),\n});\n\nexport {\n MessageSchema,\n UpdateConversationSchema,\n CreateConversationSchema,\n ConversationSchema,\n};\nexport type Conversation = z.infer<typeof ConversationSchema>;\nexport type CreateConversation = z.infer<typeof CreateConversationSchema>;\nexport type UpdateConversation = z.infer<typeof UpdateConversationSchema>;\nexport type Message = z.infer<typeof MessageSchema>;\n"]}
|
package/dist/chunk-YB33F7QJ.cjs
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
'use strict';var marked=require('marked');function c(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<")}function i(e,n){return `<span data-latex="${c(e)}" data-display-mode="${n}"></span>`}function m(e){return /^\d+(\.\d+)?$/.test(e)}function p(e){if(!e.startsWith("$")||e.startsWith("$$"))return false;let n=e.slice(1),r=n[0];return !r||r===" "||r===" "||r==="$"?false:/\d/.test(r)?/[+\-*^_=\\{<>\/()[\]|]/.test(n.slice(1)):true}function k(e){let n=1;for(;n<e.length;){let r=e[n];if(r===`
|
|
2
|
-
`)return -1;if(r==="\\"){n+=2;continue}if(r==="$"){if(e[n+1]==="$"){n+=2;continue}return n}n++;}return -1}var x={name:"katexDollarBlock",level:"block",start(e){let n=e.match(/\$\$/);return n?n.index:void 0},end(e){var r;let n=e.match(/\$\$/);return n?((r=n.index)!=null?r:0)+2:void 0},tokenizer(e,n){let t=/^\$\$([\s\S]*?)\$\$/.exec(e);if(t)return {type:"katexDollarBlock",raw:t[0],latex:t[1].trim(),displayMode:true}},renderer(e){return i(e.latex,true)}},f={name:"katexDollarInline",level:"inline",start(e){let n=e.match(/\$(?!\$)/);return n?n.index:void 0},end(e){var r;let n=e.match(/\$(?!\$)/);return n?((r=n.index)!=null?r:0)+1:void 0},tokenizer(e,n){if(!p(e))return;let r=k(e);if(r<0)return;let t=e.slice(1,r).trim();if(!(t.length===0||m(t)))return {type:"katexDollarInline",raw:e.slice(0,r+1),latex:t,displayMode:false}},renderer(e){return i(e.latex,false)}},y={name:"katexBlock",level:"block",start(e){let n=e.match(/\\\[/);return n?n.index:void 0},end(e){var r,t,a;let n=e.match(/\s\\\]/);return n?((r=n.index)!=null?r:0)+((a=(t=n[0])==null?void 0:t.length)!=null?a:0):void 0},tokenizer(e,n){let t=/^\\\[([\s\S]*?)\\\]/.exec(e);if(t)return {type:"katexBlock",raw:t[0],latex:t[1].trim(),displayMode:true}},renderer(e){return i(e.latex,e.displayMode)}},h={name:"katexInline",level:"inline",start(e){let n=e.match(/\\\(/);return n?n.index:void 0},end(e){var r,t,a;let n=e.match(/\s\\\)/);return n?((r=n.index)!=null?r:0)+((a=(t=n[0])==null?void 0:t.length)!=null?a:0):void 0},tokenizer(e,n){let t=/^\\\(([\s\S]*?)\\\)/.exec(e);if(t)return {type:"katexInline",raw:t[0],latex:t[1].trim(),displayMode:false}},renderer(e){return i(e.latex,e.displayMode)}},g={name:"assetComponent",level:"block",start(e){var n;return (n=e.match(/^```assetComponent/))==null?void 0:n.index},end(e){var n;return (n=e.match(/^```/))==null?void 0:n.index},tokenizer(e,n){let t=/^```assetComponent\s+(\{[\s\S]*?\})\n```/.exec(e);if(t)return {type:"assetComponent",raw:t[0],properties:t[1],tokens:[]}},renderer(e){let n;try{n=JSON.parse(e.properties);}catch(t){console.error("Invalid JSON in assetComponent properties:",t),n={};}return `
|
|
3
|
-
<asset-component ${Object.entries(n).map(([t,a])=>{let o=(typeof a=="object"&&a!==null?JSON.stringify(a):String(a)).replace(/"/g,""");return `${t}="${o}"`}).join(" ")}></asset-component>`}},$={name:"userMention",level:"inline",start(e){let n=e.match(/`\{@|(?<![`])\{@/);return n?n.index:void 0},end(e){var n,r,t;return (t=(n=e.match(/\}`/))==null?void 0:n.index)!=null?t:(r=e.match(/(?<![`])\{@[^}]*\}/))==null?void 0:r.index},tokenizer(e,n){let r=/^`\{@([a-zA-Z0-9_]+)\}`/.exec(e);if(r)return {type:"userMention",raw:r[0],username:r[1]};let t=/^\{@([a-zA-Z0-9_]+)\}/.exec(e);if(t)return {type:"userMention",raw:t[0],username:t[1]}},renderer(e){let n=c(e.username);return `<user-mention username="${n}" data-label="${n}"></user-mention>`}};marked.marked.use({gfm:true,extensions:[g,$,x,y,f,h],renderer:{list(e){var n;return !e.ordered&&((n=e.items)==null?void 0:n.length)>0&&e.items.every(r=>r.task)?`<ul data-type="taskList">
|
|
4
|
-
${e.items.map(t=>{let a=t.tokens.filter(d=>d.type!=="checkbox"),s=this.parser.parse(a,!!t.loose);t.loose||(s=`<p>${s}</p>`);let o=t.checked?"true":"false",u=t.checked?' checked="checked"':"";return `<li data-type="taskItem" data-checked="${o}"><label contenteditable="false"><input type="checkbox"${u}></label><div>${s}</div></li>`}).join(`
|
|
5
|
-
`)}
|
|
6
|
-
</ul>
|
|
7
|
-
`:false}}});function I(e){return marked.marked.parse(e)}exports.a=I;//# sourceMappingURL=chunk-YB33F7QJ.cjs.map
|
|
8
|
-
//# sourceMappingURL=chunk-YB33F7QJ.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/air/markdown-parser.ts"],"names":["escapeHtmlAttr","s","mathSpanHtml","latex","displayMode","isLikelyCurrencyAmount","dollarInlineOpenOk","src","rest","c","endIndexOfDollarInline","i","ch","katexDollarBlock","match","_a","tokens","token","katexDollarInline","close","katexBlockParser","_b","_c","katexInlineParser","assetComponentExtension","properties","e","key","value","escapedValue","userMentionExtension","m","codeWrapped","bracesOnly","u","marked","item","inner","t","text","checked","ckAttr","parseMarkdown","markdown"],"mappings":"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","file":"chunk-YB33F7QJ.cjs","sourcesContent":["import { marked } from \"marked\";\n\n/** Safe for double-quoted HTML attributes (e.g. data-latex). */\nfunction escapeHtmlAttr(s: string): string {\n return s\n .replace(/&/g, \"&\")\n .replace(/\"/g, \""\")\n .replace(/</g, \"<\");\n}\n\nfunction mathSpanHtml(latex: string, displayMode: boolean): string {\n return `<span data-latex=\"${escapeHtmlAttr(latex)}\" data-display-mode=\"${displayMode}\"></span>`;\n}\n\n/** Same-line `$...$` that looks like a plain price (e.g. $5, $3.50) — not math. */\nfunction isLikelyCurrencyAmount(s: string): boolean {\n return /^\\d+(\\.\\d+)?$/.test(s);\n}\n\n/**\n * First `$` in `src` opens inline math only if it is not `$$` and the segment is not a bare amount.\n * Digit after `$` is allowed when the rest of the (same-line) formula contains obvious math syntax.\n */\nfunction dollarInlineOpenOk(src: string): boolean {\n if (!src.startsWith(\"$\") || src.startsWith(\"$$\")) return false;\n const rest = src.slice(1);\n const c = rest[0];\n if (!c || c === \" \" || c === \"\\t\" || c === \"$\") return false;\n if (!/\\d/.test(c)) return true;\n return /[+\\-*^_=\\\\{<>\\/()[\\]|]/.test(rest.slice(1));\n}\n\n/** Closing `$` for inline math at start of `src` (which must begin with a single `$`). */\nfunction endIndexOfDollarInline(src: string): number {\n let i = 1;\n while (i < src.length) {\n const ch = src[i];\n if (ch === \"\\n\") return -1;\n if (ch === \"\\\\\") {\n i += 2;\n continue;\n }\n if (ch === \"$\") {\n if (src[i + 1] === \"$\") {\n i += 2;\n continue;\n }\n return i;\n }\n i++;\n }\n return -1;\n}\n\nconst katexDollarBlock = {\n name: \"katexDollarBlock\",\n level: \"block\",\n start(src: string) {\n const match = src.match(/\\$\\$/);\n return match ? match.index : undefined;\n },\n end(src: string) {\n const match = src.match(/\\$\\$/);\n return match ? (match.index ?? 0) + 2 : undefined;\n },\n tokenizer(src: string, tokens: any) {\n const rule = /^\\$\\$([\\s\\S]*?)\\$\\$/;\n const match = rule.exec(src);\n if (match) {\n return {\n type: \"katexDollarBlock\",\n raw: match[0],\n latex: match[1].trim(),\n displayMode: true,\n };\n }\n },\n renderer(token: any) {\n return mathSpanHtml(token.latex, true);\n },\n};\n\nconst katexDollarInline = {\n name: \"katexDollarInline\",\n level: \"inline\",\n start(src: string) {\n const match = src.match(/\\$(?!\\$)/);\n return match ? match.index : undefined;\n },\n end(src: string) {\n const match = src.match(/\\$(?!\\$)/);\n return match ? (match.index ?? 0) + 1 : undefined;\n },\n tokenizer(src: string, tokens: any) {\n if (!dollarInlineOpenOk(src)) return;\n const close = endIndexOfDollarInline(src);\n if (close < 0) return;\n const latex = src.slice(1, close).trim();\n if (latex.length === 0 || isLikelyCurrencyAmount(latex)) return;\n return {\n type: \"katexDollarInline\",\n raw: src.slice(0, close + 1),\n latex,\n displayMode: false,\n };\n },\n renderer(token: any) {\n return mathSpanHtml(token.latex, false);\n },\n};\n\nconst katexBlockParser = {\n name: \"katexBlock\",\n level: \"block\",\n start(src: string) {\n const match = src.match(/\\\\\\[/);\n return match ? match.index : undefined;\n },\n end(src: string) {\n const match = src.match(/\\s\\\\\\]/);\n return match ? (match.index ?? 0) + (match[0]?.length ?? 0) : undefined;\n },\n tokenizer(src: string, tokens: any) {\n const displayRule = /^\\\\\\[([\\s\\S]*?)\\\\\\]/;\n const match = displayRule.exec(src);\n if (match) {\n return {\n type: \"katexBlock\",\n raw: match[0],\n latex: match[1].trim(),\n displayMode: true,\n };\n }\n },\n renderer(token: any) {\n // Non-self-closing span is important for client-side inline flow around the node.\n return mathSpanHtml(token.latex, token.displayMode);\n },\n};\n\nconst katexInlineParser = {\n name: \"katexInline\",\n level: \"inline\",\n start(src: string) {\n const match = src.match(/\\\\\\(/);\n return match ? match.index : undefined;\n },\n end(src: string) {\n const match = src.match(/\\s\\\\\\)/);\n return match ? (match.index ?? 0) + (match[0]?.length ?? 0) : undefined;\n },\n tokenizer(src: string, tokens: any) {\n const inlineRule = /^\\\\\\(([\\s\\S]*?)\\\\\\)/;\n const match = inlineRule.exec(src);\n if (match) {\n return {\n type: \"katexInline\",\n raw: match[0],\n latex: match[1].trim(),\n displayMode: false,\n };\n }\n },\n renderer(token: any) {\n // STRANGE: The non-self-closing tag is important for client side to render as inline and render text after it\n return mathSpanHtml(token.latex, token.displayMode);\n },\n};\n\nconst assetComponentExtension = {\n name: \"assetComponent\",\n level: \"block\",\n start(src: string) {\n return src.match(/^```assetComponent/)?.index;\n },\n end(src: string) {\n return src.match(/^```/)?.index;\n },\n tokenizer(src: string, tokens: any) {\n const rule = /^```assetComponent\\s+(\\{[\\s\\S]*?\\})\\n```/;\n const match = rule.exec(src);\n if (match) {\n const token = {\n type: \"assetComponent\",\n raw: match[0],\n properties: match[1],\n tokens: [],\n };\n return token;\n }\n },\n renderer(token: any) {\n let properties;\n try {\n properties = JSON.parse(token.properties);\n } catch (e) {\n console.error(\"Invalid JSON in assetComponent properties:\", e);\n properties = {};\n }\n const componentHtml = `\n <asset-component ${Object.entries(properties)\n .map(([key, value]) => {\n // Stringify arrays and objects, keep primitives as-is\n const stringValue = typeof value === 'object' && value !== null\n ? JSON.stringify(value)\n : String(value);\n // Escape quotes for HTML attributes\n const escapedValue = stringValue.replace(/\"/g, '"');\n return `${key}=\"${escapedValue}\"`;\n })\n .join(\" \")}></asset-component>`;\n\n return componentHtml;\n },\n};\n\nconst userMentionExtension = {\n name: \"userMention\",\n level: \"inline\",\n start(src: string) {\n const m = src.match(/`\\{@|(?<![`])\\{@/);\n return m ? m.index : undefined;\n },\n end(src: string) {\n return src.match(/\\}`/)?.index ?? src.match(/(?<![`])\\{@[^}]*\\}/)?.index;\n },\n tokenizer(src: string, tokens: any) {\n const codeWrapped = /^`\\{@([a-zA-Z0-9_]+)\\}`/.exec(src);\n if (codeWrapped) {\n return {\n type: \"userMention\",\n raw: codeWrapped[0],\n username: codeWrapped[1],\n };\n }\n const bracesOnly = /^\\{@([a-zA-Z0-9_]+)\\}/.exec(src);\n if (bracesOnly) {\n return {\n type: \"userMention\",\n raw: bracesOnly[0],\n username: bracesOnly[1],\n };\n }\n },\n renderer(token: any) {\n const u = escapeHtmlAttr(token.username);\n return `<user-mention username=\"${u}\" data-label=\"${u}\"></user-mention>`;\n },\n};\n\nmarked.use({\n gfm: true,\n extensions: [\n assetComponentExtension,\n userMentionExtension,\n katexDollarBlock,\n katexBlockParser,\n katexDollarInline,\n katexInlineParser,\n ],\n renderer: {\n list(token: any) {\n if (\n !token.ordered &&\n token.items?.length > 0 &&\n token.items.every((item: any) => item.task)\n ) {\n const body = token.items\n .map((item: any) => {\n const inner = item.tokens.filter(\n (t: any) => t.type !== \"checkbox\"\n );\n let text = (this as any).parser.parse(inner, !!item.loose);\n if (!item.loose) text = `<p>${text}</p>`;\n const checked = item.checked ? \"true\" : \"false\";\n const ckAttr = item.checked ? ' checked=\"checked\"' : \"\";\n return `<li data-type=\"taskItem\" data-checked=\"${checked}\"><label contenteditable=\"false\"><input type=\"checkbox\"${ckAttr}></label><div>${text}</div></li>`;\n })\n .join(\"\\n\");\n return `<ul data-type=\"taskList\">\\n${body}\\n</ul>\\n`;\n }\n return false as any;\n },\n },\n});\n\nexport function parseMarkdown(markdown: string) {\n return marked.parse(markdown);\n}\n"]}
|
package/dist/chunk-Z37VUR4P.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
'use strict';var chunkC5CSA2IE_cjs=require('./chunk-C5CSA2IE.cjs'),chunk4JJ6JLXK_cjs=require('./chunk-4JJ6JLXK.cjs'),chunkGY6SLMMJ_cjs=require('./chunk-GY6SLMMJ.cjs'),chunkMKMFDR3M_cjs=require('./chunk-MKMFDR3M.cjs'),zod=require('zod');var z=zod.object({members:zod.array(zod.string())}),C=z.extend(chunk4JJ6JLXK_cjs.b.partial().shape),T=chunk4JJ6JLXK_cjs.c.extend({asset_type:chunkMKMFDR3M_cjs.a.default("conversation"),metadata:C,users:zod.optional(zod.nullable(zod.array(chunkGY6SLMMJ_cjs.b)))}),l=chunk4JJ6JLXK_cjs.d.extend({asset_type:zod.literal("conversation").default("conversation"),monetization:chunkMKMFDR3M_cjs.d.default("none"),visibility:chunkMKMFDR3M_cjs.b.default("private"),metadata:C}),U=l.transform(a=>chunk4JJ6JLXK_cjs.a(a)),j=l.omit({id:true,org_id:true,team_id:true}).partial().transform(a=>chunk4JJ6JLXK_cjs.a(a)),B=zod.object({id:zod.uuid(),conversation_id:zod.uuid(),user_id:zod.uuid(),user:zod.optional(zod.nullable(chunkGY6SLMMJ_cjs.b)),created_at:zod.string(),last_updated:zod.string(),viewers:zod.array(zod.uuid()),json:chunkC5CSA2IE_cjs.a,text:zod.string(),metadata:zod.optional(zod.nullable(zod.record(zod.string(),zod.any())))});exports.a=T;exports.b=U;exports.c=j;exports.d=B;//# sourceMappingURL=chunk-Z37VUR4P.cjs.map
|
|
2
|
-
//# sourceMappingURL=chunk-Z37VUR4P.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schema/conversations.ts"],"names":["BaseConversationMetadataSchema","object","array","string","ConversationMetadataSchema","AssetMetadataSchema","ConversationSchema","AssetSchema","AssetTypeSchema","optional","nullable","ProfileSchema","BaseCreateConversationSchema","CreateAssetSchema","literal","MonetizationSchema","VisibilitySchema","CreateConversationSchema","value","normalizeAssetConfigForParsing","UpdateConversationSchema","MessageSchema","uuid","TipTapSchema","record","any"],"mappings":"4OA2BA,IAAMA,EAAiCC,UAAO,CAAA,CAC5C,OAASC,CAAAA,SAAAA,CAAMC,YAAQ,CACzB,CAAC,CAAA,CAEKC,EAA6BJ,CAA+B,CAAA,MAAA,CAChEK,mBAAoB,CAAA,OAAA,GAAU,KAChC,CAAA,CAEMC,CAAqBC,CAAAA,mBAAAA,CAAY,OAAO,CAC5C,UAAA,CAAYC,mBAAgB,CAAA,OAAA,CAAQ,cAAc,CAClD,CAAA,QAAA,CAAUJ,CACV,CAAA,KAAA,CAAOK,aAASC,YAASR,CAAAA,SAAAA,CAAMS,mBAAa,CAAC,CAAC,CAChD,CAAC,CAEKC,CAAAA,CAAAA,CAA+BC,oBAAkB,MAAO,CAAA,CAC5D,UAAYC,CAAAA,WAAAA,CAAQ,cAAc,CAAE,CAAA,OAAA,CAAQ,cAAc,CAAA,CAC1D,aAAcC,mBAAmB,CAAA,OAAA,CAAQ,MAAM,CAAA,CAC/C,WAAYC,mBAAiB,CAAA,OAAA,CAAQ,SAAS,CAAA,CAC9C,SAAUZ,CACZ,CAAC,CAEKa,CAAAA,CAAAA,CAA2BL,EAC9B,SAAWM,CAAAA,CAAAA,EAAUC,mBAA+BD,CAAAA,CAAK,CAAC,CAGvDE,CAAAA,CAAAA,CAA2BR,CAA6B,CAAA,IAAA,CAAK,CACjE,EAAI,CAAA,IAAA,CACJ,MAAQ,CAAA,IAAA,CACR,QAAS,IAKX,CAAC,CAAE,CAAA,OAAA,GAAU,SAAWM,CAAAA,CAAAA,EAAUC,mBAA+BD,CAAAA,CAAK,CAAC,CAEjEG,CAAAA,CAAAA,CAAgBpB,UAAO,CAAA,CAC3B,GAAIqB,QAAK,EAAA,CACT,eAAiBA,CAAAA,QAAAA,GACjB,OAASA,CAAAA,QAAAA,EACT,CAAA,IAAA,CAAMb,aAASC,YAASC,CAAAA,mBAAa,CAAC,CAAA,CACtC,WAAYR,UAAO,EAAA,CACnB,YAAcA,CAAAA,UAAAA,GACd,OAASD,CAAAA,SAAAA,CAAMoB,QAAK,EAAC,EACrB,IAAMC,CAAAA,mBAAAA,CACN,IAAMpB,CAAAA,UAAAA,GACN,QAAUM,CAAAA,YAAAA,CAASC,YAASc,CAAAA,UAAAA,CAAOrB,YAAUsB,CAAAA,OAAAA,EAAK,CAAC,CAAC,CACtD,CAAC","file":"chunk-Z37VUR4P.cjs","sourcesContent":["import {\n object,\n string,\n uuid,\n array,\n type z,\n record,\n any,\n optional,\n nullable,\n literal\n} from \"zod\";\n\nimport {\n AssetTypeSchema,\n MonetizationSchema,\n VisibilitySchema,\n} from \"./common\";\nimport {\n AssetMetadataSchema,\n AssetSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { TipTapSchema } from \"./posts\";\nimport { ProfileSchema } from \"./users\";\n\nconst BaseConversationMetadataSchema = object({\n members: array(string()),\n});\n\nconst ConversationMetadataSchema = BaseConversationMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst ConversationSchema = AssetSchema.extend({\n asset_type: AssetTypeSchema.default(\"conversation\"),\n metadata: ConversationMetadataSchema,\n users: optional(nullable(array(ProfileSchema))),\n});\n\nconst BaseCreateConversationSchema = CreateAssetSchema.extend({\n asset_type: literal(\"conversation\").default(\"conversation\"),\n monetization: MonetizationSchema.default(\"none\"),\n visibility: VisibilitySchema.default(\"private\"),\n metadata: ConversationMetadataSchema,\n});\n\nconst CreateConversationSchema = BaseCreateConversationSchema\n .transform((value) => normalizeAssetConfigForParsing(value));\n\n// Partial because we can make updates to conversations without providing all fields\nconst UpdateConversationSchema = BaseCreateConversationSchema.omit({\n id: true,\n org_id: true,\n team_id: true,\n // team: true,\n // user: true,\n // organization: true,\n // slug: true,\n}).partial().transform((value) => normalizeAssetConfigForParsing(value));\n\nconst MessageSchema = object({\n id: uuid(),\n conversation_id: uuid(),\n user_id: uuid(),\n user: optional(nullable(ProfileSchema)),\n created_at: string(),\n last_updated: string(),\n viewers: array(uuid()),\n json: TipTapSchema,\n text: string(),\n metadata: optional(nullable(record(string(), any()))),\n});\n\nexport {\n MessageSchema,\n UpdateConversationSchema,\n CreateConversationSchema,\n ConversationSchema,\n};\nexport type Conversation = z.infer<typeof ConversationSchema>;\nexport type CreateConversation = z.infer<typeof CreateConversationSchema>;\nexport type UpdateConversation = z.infer<typeof UpdateConversationSchema>;\nexport type Message = z.infer<typeof MessageSchema>;\n"]}
|