andesine 0.0.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,31 @@
1
+ import{Marked as g}from"marked";const h=i=>{const s=(o,n,l)=>{const a={node:o,index:n,ancestors:l,get parent(){return l[l.length-1]||null},get children(){return"content"in o?o.content?.map((r,t)=>s(r,t,[...l,a]))||[]:[]},previousSibling(){return this.parent&&this.parent.children[this.index-1]||null},nextSibling(){return this.parent&&this.parent.children[this.index+1]||null}};return a};return s(i,0,[])},m=i=>i,y=m(i=>{const s=h(i),o=t=>{let e="";return t.node.type==="text"&&(e=t.node.text,t.node.marks?.forEach(c=>{switch(c.type){case"link":e=`[${e}](${c.attrs.href})`;break;case"bold":e=`**${e}**`;break;case"code":e=`\`${e}\``;break;case"italic":e=`_${e}_`;break;case"strike":e=`~~${e}~~`;break}})),e},n=t=>`${t.children.map(e=>e.node.type==="text"?o(e):`
2
+ `).join("")}`,l=t=>{let e="";return t.children.forEach((c,$)=>{let d=!1;const p=c.children.map(u=>(u.node.type==="tableHeader"&&(d=!0),a(u)));$===t.children.length-1?e+=`| ${p.map(u=>u.replace(/\n/g," ")).join(" | ")} |`:e+=`| ${p.map(u=>u.replace(/\n/g," ")).join(" | ")} |
3
+ `,d&&$===0&&(e+=`| ${p.map(()=>"---").join(" | ")} |
4
+ `)}),e},a=t=>t.children.map(e=>{const c=e.node.type,$=e.previousSibling(),d=["bulletList","orderedList","taskList"].includes($?.node.type||"");switch(c){case"paragraph":return`
5
+ ${n(e)}
6
+ `;case"bulletList":case"orderedList":case"taskList":return`${d?`
7
+ `:""}${r(e)}
8
+ `;case"table":return`
9
+ ${l(e)}
10
+ `;case"horizontalRule":return`
11
+ ---
12
+ `;case"image":return`
13
+ ![${e.node.attrs?.alt||""}](${e.node.attrs?.src||""})
14
+ `;case"heading":return`
15
+ ${"#".repeat(e.node.attrs?.level||1)} ${n(e)}
16
+ `;case"codeBlock":return`
17
+ \`\`\`${e.node.attrs?.lang||""}
18
+ ${n(e)}
19
+ \`\`\`
20
+ `;case"element":return`
21
+ ${a(e)}
22
+ `;case"blockquote":return`
23
+ ${a(e).split(`
24
+ `).map(p=>`> ${p}`).join(`
25
+ `)}
26
+ `;default:return""}}).join("").trim(),r=t=>t.children.map(e=>({content:a(e),node:e.node})).map(({content:e,node:c},$)=>{let d="",p=0;return t.node.type==="taskList"&&c.type==="taskItem"&&(d=`${c.attrs?.checked?"- [x] ":"- [ ] "} `,p=2),t.node.type==="orderedList"&&(d=`${(t.node.attrs?.start||1)+$}. `,p=d.length),t.node.type==="bulletList"&&(d="- ",p=d.length),e.split(`
27
+ `).map((u,k)=>k===0?`${d}${u}`:`${" ".repeat(p)}${u}`).join(`
28
+ `)}).join(`
29
+ `);return a(s).trim()}),f=m(i=>{const s=h(i),o=r=>r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;"),n=r=>{const t=[];return Object.entries(r).forEach(([e,c])=>{if(typeof c=="boolean"){t.push(`${e}`);return}typeof c<"u"&&(`${c}`.includes('"')?t.push(`${e}='${c}'`):t.push(`${e}="${c}"`))}),t.join(" ")},l=r=>{let t="";return r.node.type==="text"&&(t=r.node.text,r.node.marks?.forEach(e=>{switch(e.type){case"link":t=`<a href="${e.attrs.href}">${t}</a>`;break;case"bold":t=`<strong>${t}</strong>`;break;case"code":t=`<code>${o(t)}</code>`;break;case"italic":t=`<em>${t}</em>`;break;case"strike":t=`<s>${t}</s>`;break;case"highlight":t=`<mark>${t}</mark>`;break;case"superscript":t=`<sup>${t}</sup>`;break;case"subscript":t=`<sub>${t}</sub>`;break}})),t},a=r=>{switch(r.node.type){case"doc":return r.children.map(a).join("");case"text":return l(r);case"paragraph":return`<p>${r.children.map(t=>t.node.type==="text"?l(t):"<br/>").join("")}</p>`;case"bulletList":return`<ul>${r.children.map(a).join("")}</ul>`;case"orderedList":return`<ol start="${r.node.attrs.start}">${r.children.map(a).join("")}</ol>`;case"taskList":return`<ul data-type="taskList">${r.children.map(a).join("")}</ul>`;case"listItem":return`<li>${r.children.map(a).join("")}</li>`;case"taskItem":return`<li data-type="taskItem"><label><input ${n({type:"checkbox",...r.node.attrs.checked&&{checked:!0}})} />${r.children.map(a).join("")}</label></li>`;case"element":return`<div ${n({"data-type":r.node.attrs?.type,"data-props":JSON.stringify(r.node.attrs?.props)})}>${r.children.map(a).join("")}</div>`;case"blockquote":return`<blockquote>${r.children.map(a).join("")}</blockquote>`;case"heading":return`<h${r.node.attrs.level}>${r.children.map(a).join("")}</h${r.node.attrs.level}>`;case"codeBlock":return`<pre ${n({lang:r.node.attrs?.lang})}><code>${o(r.children.map(a).join(""))}</code></pre>`;case"image":return`<img ${n({src:r.node.attrs?.src,alt:r.node.attrs?.alt})}/>`;case"embed":return`<iframe ${n({src:r.node.attrs?.src,"data-type":r.node.attrs?.embed})}></iframe>`;case"horizontalRule":return"<hr/>";case"table":return`<table>${r.children.map(a).join("")}</table>`;case"tableRow":return`<tr>${r.children.map(a).join("")}</tr>`;case"tableCell":return`<td>${r.children.flatMap(a).join("")}</td>`;case"tableHeader":return`<th>${r.children.flatMap(a).join("")}</th>`;default:return""}};return a(s)}),b=i=>i,j=b(i=>({content:new g({async:!1,renderer:{paragraph(s){return s.startsWith("<img")?`${s}
30
+ `:`<p>${s}</p>`},image(s,o,n){return`<img src="${(s||"").replace(/^(?:\[.*\]\((.*)\))|(?:(.*))$/,(l,a,r)=>a||r)}" alt="${n}">`},listitem(s,o,n){return`<li${o?' data-type="taskItem"':""}${n?' data-checked="true"':""}>${s.replace(/<br><(img|p|pre|blockquote|ul|ol|table)\s/g,"<$1 ")}</li>`},list(s,o,n){const l=o?"ol":"ul",a=o&&n!==1?` start="${n}"`:"",r=s.includes('data-type="taskItem"')?' data-type="taskList"':"";return`<${l}${a}${r}>${s}</${l}>
31
+ `}},gfm:!0,breaks:!0}).parse(i)}));export{h as createContentWalker,b as createInputTransformer,m as createOutputTransformer,j as gfmInputTransformer,y as gfmOutputTransformer,f as htmlOutputTransformer};
package/package.json ADDED
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "andesine",
3
+ "version": "0.0.1-alpha.0",
4
+ "private": false,
5
+ "description": "JavaScript SDK and API client for Vrite - open-source developer content platform",
6
+ "license": "MIT",
7
+ "type": "module",
8
+ "bugs": {
9
+ "url": "https://github.com/vriteio/vrite/issues"
10
+ },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "https://github.com/vriteio/vrite.git",
14
+ "directory": "packages/sdk"
15
+ },
16
+ "keywords": [
17
+ "vrite",
18
+ "headless cms",
19
+ "cms",
20
+ "typescript",
21
+ "javascript",
22
+ "sdk",
23
+ "client"
24
+ ],
25
+ "typesVersions": {
26
+ "*": {
27
+ "api": [
28
+ "./dist/api.d.ts"
29
+ ],
30
+ "transformers": [
31
+ "./dist/transformers.d.ts"
32
+ ],
33
+ "extensions": [
34
+ "./dist/extensions.d.ts"
35
+ ]
36
+ }
37
+ },
38
+ "exports": {
39
+ ".": {
40
+ "import": "./dist/api.mjs",
41
+ "require": "./dist/api.cjs"
42
+ },
43
+ "./api": {
44
+ "import": "./dist/api.mjs",
45
+ "require": "./dist/api.cjs"
46
+ },
47
+ "./extensions": {
48
+ "import": "./dist/extensions.mjs",
49
+ "require": "./dist/extensions.cjs"
50
+ },
51
+ "./transformers": {
52
+ "import": "./dist/transformers.mjs",
53
+ "require": "./dist/transformers.cjs"
54
+ }
55
+ },
56
+ "main": "./dist/api.cjs",
57
+ "types": "./dist/api.d.ts",
58
+ "files": [
59
+ "dist"
60
+ ],
61
+ "dependencies": {
62
+ "@sanity/eventsource": "^5.0.1",
63
+ "@types/marked": "^6.0.0",
64
+ "isomorphic-unfetch": "^3.1.0",
65
+ "marked": "^12.0.0"
66
+ },
67
+ "devDependencies": {
68
+ "unbuild": "^2.0.0",
69
+ "vite": "^5.0.12"
70
+ },
71
+ "scripts": {
72
+ "build": "unbuild",
73
+ "prepublish": "pnpm run build"
74
+ }
75
+ }