@xtrable-ltd/nanoesis 0.1.9 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/adapter-azure-blob.d.ts +7 -1
  2. package/dist/adapter-azure-blob.js +2 -2
  3. package/dist/{chunk-J6VYOB47.js → chunk-UZQ7UP2B.js} +1678 -1298
  4. package/dist/editor-api.d.ts +39 -2
  5. package/dist/editor-api.js +393 -4
  6. package/dist/index.d.ts +371 -165
  7. package/dist/index.js +21 -1
  8. package/editor/assets/MigrationsPane-BAHPPSXP.css +1 -0
  9. package/editor/assets/MigrationsPane-_FGonx4-.js +4 -0
  10. package/editor/assets/{TemplatesPane-B4_sg2u5.css → TemplatesPane-CiLiMCc8.css} +1 -1
  11. package/editor/assets/{TemplatesPane-CHzfB00-.js → TemplatesPane-Z6Bn69Hb.js} +204 -202
  12. package/editor/assets/{cssMode-BahdJh1A.js → cssMode-dkQrIPWx.js} +1 -1
  13. package/editor/assets/{freemarker2-2FC3twUE.js → freemarker2-DEqcFFWa.js} +1 -1
  14. package/editor/assets/{handlebars-pMjPHNx1.js → handlebars-C6ojANWr.js} +1 -1
  15. package/editor/assets/{html-KTToTG0n.js → html-BmiAmVUD.js} +1 -1
  16. package/editor/assets/{htmlMode-ufik94dZ.js → htmlMode-BBmUqToI.js} +1 -1
  17. package/editor/assets/{index-BsRGVHEP.css → index-DEz8GUII.css} +1 -1
  18. package/editor/assets/index-LtCzUHAw.js +138 -0
  19. package/editor/assets/{javascript-CD4kAZXr.js → javascript-Cxm2TfJy.js} +1 -1
  20. package/editor/assets/{jsonMode-ClHucayn.js → jsonMode-CW5012Hx.js} +1 -1
  21. package/editor/assets/{liquid-B-uYib60.js → liquid-DrS7ilHv.js} +1 -1
  22. package/editor/assets/{mdx-BOc9oMkZ.js → mdx-CwdSU5o1.js} +1 -1
  23. package/editor/assets/{python-BipLFHGs.js → python-CALCR0yC.js} +1 -1
  24. package/editor/assets/{razor-C0di_gwM.js → razor-SVCo2LoM.js} +1 -1
  25. package/editor/assets/{tsMode-B7fenrcD.js → tsMode-CzXfTR_Q.js} +1 -1
  26. package/editor/assets/{typescript-CDg7c2A-.js → typescript-CP0Ovrv7.js} +1 -1
  27. package/editor/assets/{xml-DTAdn5Pw.js → xml-B2yqloTa.js} +1 -1
  28. package/editor/assets/{yaml-B9-OjY0Z.js → yaml-DTLJhzgY.js} +1 -1
  29. package/editor/index.html +2 -2
  30. package/package.json +1 -1
  31. package/editor/assets/index-CPKtfzWD.js +0 -134
package/dist/index.js CHANGED
@@ -9,6 +9,9 @@ import {
9
9
  IndexedStore,
10
10
  RESERVED_PREFIX,
11
11
  analyzeTemplate,
12
+ applyMigration,
13
+ baseTemplateName,
14
+ bestFitSnapshot,
12
15
  buildAuthoringReference,
13
16
  buildContentIndex,
14
17
  buildPictureMarkup,
@@ -24,6 +27,7 @@ import {
24
27
  contentTypeFor,
25
28
  createDiagnosticRegistry,
26
29
  deriveFields,
30
+ detectStamp,
27
31
  emptyIndex,
28
32
  escapeHtmlAttribute,
29
33
  escapeHtmlText,
@@ -33,6 +37,8 @@ import {
33
37
  humanize,
34
38
  inferControl,
35
39
  isFieldType,
40
+ isReservedVersionedPath,
41
+ isVersionedTemplateName,
36
42
  joinAuthors,
37
43
  loadComponentScripts,
38
44
  loadComponentStyles,
@@ -43,11 +49,13 @@ import {
43
49
  loadRedirects,
44
50
  loadSiteConfig,
45
51
  loadTemplate,
52
+ nextVersionNumber,
46
53
  noopPurgeService,
47
54
  outputPathForItem,
48
55
  parseContentItem,
49
56
  parseRedirects,
50
57
  parseSortFile,
58
+ pendingMigrations,
51
59
  processImage,
52
60
  publishSite,
53
61
  reconcileIndex,
@@ -56,14 +64,16 @@ import {
56
64
  sanitizeUrl,
57
65
  saveIndex,
58
66
  slugify,
67
+ snapshotName,
59
68
  textContent,
60
69
  toAuthorRefs,
61
70
  urlForItem,
62
71
  validateSite,
63
72
  valueKindOf,
73
+ versionNumber,
64
74
  wholeValueToken,
65
75
  workingStoreRoundTripDiagnostic
66
- } from "./chunk-J6VYOB47.js";
76
+ } from "./chunk-UZQ7UP2B.js";
67
77
  export {
68
78
  ContentParseError,
69
79
  DEFAULT_DIRS,
@@ -75,6 +85,9 @@ export {
75
85
  IndexedStore,
76
86
  RESERVED_PREFIX,
77
87
  analyzeTemplate,
88
+ applyMigration,
89
+ baseTemplateName,
90
+ bestFitSnapshot,
78
91
  buildAuthoringReference,
79
92
  buildContentIndex,
80
93
  buildPictureMarkup,
@@ -90,6 +103,7 @@ export {
90
103
  contentTypeFor,
91
104
  createDiagnosticRegistry,
92
105
  deriveFields,
106
+ detectStamp,
93
107
  emptyIndex,
94
108
  escapeHtmlAttribute,
95
109
  escapeHtmlText,
@@ -99,6 +113,8 @@ export {
99
113
  humanize,
100
114
  inferControl,
101
115
  isFieldType,
116
+ isReservedVersionedPath,
117
+ isVersionedTemplateName,
102
118
  joinAuthors,
103
119
  loadComponentScripts,
104
120
  loadComponentStyles,
@@ -109,11 +125,13 @@ export {
109
125
  loadRedirects,
110
126
  loadSiteConfig,
111
127
  loadTemplate,
128
+ nextVersionNumber,
112
129
  noopPurgeService,
113
130
  outputPathForItem,
114
131
  parseContentItem,
115
132
  parseRedirects,
116
133
  parseSortFile,
134
+ pendingMigrations,
117
135
  processImage,
118
136
  publishSite,
119
137
  reconcileIndex,
@@ -122,11 +140,13 @@ export {
122
140
  sanitizeUrl,
123
141
  saveIndex,
124
142
  slugify,
143
+ snapshotName,
125
144
  textContent,
126
145
  toAuthorRefs,
127
146
  urlForItem,
128
147
  validateSite,
129
148
  valueKindOf,
149
+ versionNumber,
130
150
  wholeValueToken,
131
151
  workingStoreRoundTripDiagnostic
132
152
  };
@@ -0,0 +1 @@
1
+ .migrations.svelte-1lpfi31{display:grid;gap:var(--space-4);padding:var(--space-4);overflow:auto;min-height:0}.list-head.svelte-1lpfi31,.detail-head.svelte-1lpfi31{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.detail-head.svelte-1lpfi31 h2:where(.svelte-1lpfi31){margin:0;font-size:var(--text-base);font-weight:500;flex:1}.back.svelte-1lpfi31{border:1px solid var(--border);background:var(--surface);color:var(--text);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font:inherit;font-size:var(--text-sm);cursor:pointer}.empty.svelte-1lpfi31{border:1px dashed var(--border);border-radius:var(--radius-md);padding:var(--space-6);text-align:center;color:var(--text-muted)}.empty.svelte-1lpfi31 h3:where(.svelte-1lpfi31){margin:0 0 var(--space-1);color:var(--text);font-size:var(--text-base)}.group.svelte-1lpfi31{display:grid;gap:var(--space-2)}.group-title.svelte-1lpfi31{margin:0;font-size:var(--text-sm);display:flex;align-items:center;gap:var(--space-2)}.group-title.svelte-1lpfi31 code:where(.svelte-1lpfi31){background:var(--surface-raised);padding:0 var(--space-1);border-radius:var(--radius-sm);font-size:var(--text-sm)}.count.svelte-1lpfi31{color:var(--text-subtle);font-weight:400;font-size:var(--text-xs)}.items.svelte-1lpfi31{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.item-row.svelte-1lpfi31{display:flex;align-items:center;gap:var(--space-3);width:100%;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font:inherit;text-align:left;cursor:pointer}.item-row.svelte-1lpfi31:hover{background:var(--surface-raised)}.item-path.svelte-1lpfi31{flex:0 0 auto}.item-summary.svelte-1lpfi31{color:var(--text-muted);font-size:var(--text-sm);flex:1}.open-icon.svelte-1lpfi31{color:var(--text-subtle)}.diff.svelte-1lpfi31{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.pane.svelte-1lpfi31{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);display:grid;grid-template-rows:auto 1fr;min-height:0}.pane-head.svelte-1lpfi31{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);font-size:var(--text-sm);color:var(--text-muted);font-weight:500}.source.svelte-1lpfi31{margin:0;padding:var(--space-3);font-family:var(--font-mono, monospace);font-size:var(--text-xs);color:var(--text);white-space:pre-wrap;overflow:auto;max-height:32rem}.resolutions.svelte-1lpfi31{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:var(--space-3)}.resolutions.svelte-1lpfi31 h3:where(.svelte-1lpfi31){margin:0 0 var(--space-1);font-size:var(--text-sm);font-weight:500}.hint.svelte-1lpfi31{margin:0 0 var(--space-3);color:var(--text-muted);font-size:var(--text-sm)}.orphans.svelte-1lpfi31{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}.orphan.svelte-1lpfi31{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);display:grid;gap:var(--space-2)}.orphan-head.svelte-1lpfi31{display:flex;align-items:baseline;gap:var(--space-3)}.orphan-name.svelte-1lpfi31{background:var(--warning-surface, rgb(217 119 6 / .1));color:var(--warning, #c2780e);padding:0 var(--space-1);border-radius:var(--radius-sm);font-size:var(--text-sm)}.orphan-value.svelte-1lpfi31{color:var(--text-muted);font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.orphan-actions.svelte-1lpfi31{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3);align-items:center;font-size:var(--text-sm)}.orphan-actions.svelte-1lpfi31 label:where(.svelte-1lpfi31){display:inline-flex;align-items:center;gap:var(--space-1)}.orphan-actions.svelte-1lpfi31 select:where(.svelte-1lpfi31){border:1px solid var(--border);background:var(--surface);color:var(--text);padding:0 var(--space-2);border-radius:var(--radius-sm);font:inherit;font-size:var(--text-sm)}.commit-bar.svelte-1lpfi31{display:flex;justify-content:flex-end}button.svelte-1lpfi31{border:1px solid var(--border);background:var(--surface);color:var(--text);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font:inherit;font-size:var(--text-sm);cursor:pointer}button.svelte-1lpfi31:hover:not(:disabled){background:var(--surface-raised)}button.svelte-1lpfi31:disabled{opacity:.5;cursor:not-allowed}button.primary.svelte-1lpfi31{border-color:transparent;background:var(--accent);color:var(--accent-contrast);font-weight:500}.placeholder.svelte-1lpfi31{color:var(--text-subtle);font-size:var(--text-sm)}.error.svelte-1lpfi31{margin:0;color:var(--danger);font-size:var(--text-sm)}
@@ -0,0 +1,4 @@
1
+ import{a3 as Ie,ao as F,a1 as Te,V as g,J as k,G as e,f as n,W as Ye,l as a,B as Q,ap as h,t as j,ak as o,E as _,ad as v,m as ze,y as U,s as He,g as Qe,au as Ue,ai as c,aq as W,ae as X,af as _e,K as Xe,ac as Ze,Y as ea}from"./index-LtCzUHAw.js";var aa=_('<p class="placeholder svelte-1lpfi31">Loading preview…</p>'),ta=_('<p class="error svelte-1lpfi31" role="alert"> </p>'),la=_("<option> </option>"),sa=_('<select class="svelte-1lpfi31"></select>'),ra=_('<li class="orphan svelte-1lpfi31"><div class="orphan-head svelte-1lpfi31"><code class="orphan-name svelte-1lpfi31"> </code> <span class="orphan-value svelte-1lpfi31"> </span></div> <div class="orphan-actions svelte-1lpfi31" role="radiogroup"><label class="svelte-1lpfi31"><input type="radio" value="drop"/> Drop</label> <label class="svelte-1lpfi31"><input type="radio" value="keep"/> Keep (unrendered)</label> <label class="svelte-1lpfi31"><input type="radio" value="rename"/> Rename to</label> <!></div></li>'),ia=_(`<section class="resolutions svelte-1lpfi31" aria-label="Orphan field resolutions"><h3 class="svelte-1lpfi31">Orphan fields</h3> <p class="hint svelte-1lpfi31">These fields exist in this item's JSON but the current template doesn't render them.
2
+ Pick what to do with each.</p> <ul class="orphans svelte-1lpfi31"></ul></section>`),na=_('<p class="error svelte-1lpfi31" role="alert"> </p>'),oa=_('<div class="diff svelte-1lpfi31"><section class="pane svelte-1lpfi31" aria-label="Previous version (left)"><header class="pane-head svelte-1lpfi31"><!></header> <pre class="source svelte-1lpfi31"> </pre></section> <section class="pane svelte-1lpfi31" aria-label="Current template (right)"><header class="pane-head svelte-1lpfi31"> </header> <pre class="source svelte-1lpfi31"> </pre></section></div> <!> <!> <div class="commit-bar svelte-1lpfi31"><button type="button" class="primary svelte-1lpfi31"> </button></div>',1),va=_('<header class="detail-head svelte-1lpfi31"><button type="button" class="back svelte-1lpfi31">← Back</button> <h2 class="svelte-1lpfi31"> </h2></header> <!>',1),pa=_('<p class="error svelte-1lpfi31" role="alert"> </p>'),ca=_('<p class="placeholder svelte-1lpfi31">Loading…</p>'),fa=_(`<div class="empty svelte-1lpfi31"><h3 class="svelte-1lpfi31">All caught up</h3> <p>Every content item's fields match its bound template. Migrations show up here when a
3
+ destructive template edit (or a manual hand-edit) leaves an item with orphan fields.</p></div>`),da=_('<li class="item"><button class="item-row svelte-1lpfi31" type="button"><span class="item-path svelte-1lpfi31"><code> </code></span> <span class="item-summary svelte-1lpfi31"><!> <!> <!></span> <span class="open-icon svelte-1lpfi31">→</span></button></li>'),ua=_('<section class="group svelte-1lpfi31"><h3 class="group-title svelte-1lpfi31"><code class="svelte-1lpfi31"> </code> <span class="count svelte-1lpfi31"> </span></h3> <ul class="items svelte-1lpfi31"></ul></section>'),ma=_('<header class="list-head svelte-1lpfi31"><h2>Migrations</h2> <button type="button" class="svelte-1lpfi31"> </button></header> <!>',1),_a=_('<div class="migrations svelte-1lpfi31"><!> <!></div>');function ga(Ee,Le){Ie(Le,!0);let M=F(null),d=F(null),Z=F(!1),R=F(null),r=F(Te({})),he=F(Te({})),A=F(!1),K=F(null);g.ensureLoaded();async function Re(s){v(M,s,!0),v(r,{},!0),v(he,{},!0),v(d,null),v(R,null),v(Z,!0);try{v(d,await ea(s),!0);const f={};for(const l of e(d).orphans){const u=Se(l.name,e(d).currentTemplateFields);f[l.name]=u?{rename:u}:"keep"}v(r,f,!0)}catch(f){v(R,f instanceof Error?f.message:String(f),!0)}finally{v(Z,!1)}}function ge(){v(M,null),v(d,null),v(R,null)}function Se(s,f){const l=s.toLowerCase();for(const u of f)if(u.toLowerCase().startsWith(l)||u.toLowerCase().endsWith(l))return u;return null}async function Ce(){if(!(e(M)===null||e(d)===null)){v(A,!0),v(K,null);try{const s={drop:Object.entries(e(r)).filter(([,l])=>l==="drop").map(([l])=>l),keep:Object.entries(e(r)).filter(([,l])=>l==="keep").map(([l])=>l),rename:Object.fromEntries(Object.entries(e(r)).filter(([,l])=>typeof l=="object"&&l!==null&&"rename"in l).map(([l,u])=>[l,u.rename])),fill:{...e(he)}},f=await Qe(e(M),s);g.refresh().catch(()=>{}),ge()}catch(s){v(K,s instanceof Error?s.message:String(s),!0)}finally{v(A,!1)}}}function Pe(s){return typeof s=="string"?s:JSON.stringify(s)}const qe=Ue(()=>g.list===null?[]:Object.entries(g.list.byTemplate).map(([s,f])=>({template:s,items:[...f].sort((l,u)=>l.path.localeCompare(u.path))})));var be=_a(),ye=a(be);{var Be=s=>{var f=va(),l=Q(f),u=a(l),ee=o(u,2),ae=a(ee),te=o(l,2);{var le=i=>{var m=aa();n(i,m)},se=i=>{var m=ta(),w=a(m);h(()=>c(w,e(R))),n(i,m)},re=i=>{var m=oa(),w=Q(m),E=a(w),O=a(E),N=a(O);{var V=p=>{var y=W();h(()=>c(y,`Before — ${e(d).left.template??""}`)),n(p,y)},$=p=>{var y=W("Before — no snapshot available");n(p,y)};k(N,p=>{e(d).left?p(V):p($,-1)})}var ie=o(O,2),ne=a(ie),oe=o(E,2),D=a(oe),S=a(D),b=o(D,2),G=a(b),C=o(w,2);{var I=p=>{var y=ia(),P=o(a(y),4);U(P,21,()=>e(d).orphans,q=>q.name,(q,t)=>{var x=ra(),z=a(x),xe=a(z),Ke=a(xe),Ne=o(xe,2),Ve=a(Ne),ke=o(z,2),we=a(ke),fe=a(we),Fe=o(we,2),de=a(Fe),je=o(Fe,2),ue=a(je),$e=o(je,2);{var De=B=>{var T=sa();U(T,20,()=>e(d).currentTemplateFields,J=>J,(J,me)=>{var H=la(),Ge=a(H),Oe={};h(()=>{c(Ge,me),Oe!==(Oe=me)&&(H.value=(H.__value=me)??"")}),n(J,H)});var Me;Xe(T),h(()=>{Me!==(Me=e(r)[e(t).name].rename)&&(T.value=(T.__value=e(r)[e(t).name].rename)??"",Ze(T,e(r)[e(t).name].rename))}),j("change",T,J=>v(r,{...e(r),[e(t).name]:{rename:J.currentTarget.value}},!0)),n(B,T)};k($e,B=>{typeof e(r)[e(t).name]=="object"&&e(r)[e(t).name]!==null&&"rename"in e(r)[e(t).name]&&B(De)})}h(B=>{c(Ke,e(t).name),c(Ve,B),X(ke,"aria-label",`Resolution for ${e(t).name}`),X(fe,"name",`d-${e(t).name}`),_e(fe,e(r)[e(t).name]==="drop"),X(de,"name",`d-${e(t).name}`),_e(de,e(r)[e(t).name]==="keep"),X(ue,"name",`d-${e(t).name}`),_e(ue,typeof e(r)[e(t).name]=="object"&&e(r)[e(t).name]!==null&&"rename"in e(r)[e(t).name])},[()=>Pe(e(t).value)]),j("change",fe,()=>v(r,{...e(r),[e(t).name]:"drop"},!0)),j("change",de,()=>v(r,{...e(r),[e(t).name]:"keep"},!0)),j("change",ue,()=>v(r,{...e(r),[e(t).name]:{rename:e(d).currentTemplateFields[0]??""}},!0)),n(q,x)}),n(p,y)};k(C,p=>{e(d).orphans.length>0&&p(I)})}var Y=o(C,2);{var ve=p=>{var y=na(),P=a(y);h(()=>c(P,e(K))),n(p,y)};k(Y,p=>{e(K)&&p(ve)})}var pe=o(Y,2),L=a(pe),ce=a(L);h(()=>{var p;c(ne,((p=e(d).left)==null?void 0:p.html)??"(no snapshot covers this item)"),c(S,`After — ${e(d).right.template??""}`),c(G,e(d).right.html),L.disabled=e(A)||e(d).orphans.length===0,c(ce,e(A)?"Migrating…":"Migrate item")}),j("click",L,Ce),n(i,m)};k(te,i=>{e(Z)?i(le):e(R)?i(se,1):e(d)&&i(re,2)})}h(()=>c(ae,e(M))),j("click",u,ge),n(s,f)},Je=s=>{var f=ma(),l=Q(f),u=o(a(l),2),ee=a(u),ae=o(l,2);{var te=i=>{var m=pa(),w=a(m);h(()=>c(w,g.error)),n(i,m)},le=i=>{var m=ca();n(i,m)},se=i=>{var m=fa();n(i,m)},re=i=>{var m=ze(),w=Q(m);U(w,17,()=>e(qe),E=>E.template,(E,O)=>{var N=ua(),V=a(N),$=a(V),ie=a($),ne=o($,2),oe=a(ne),D=o(V,2);U(D,21,()=>e(O).items,S=>S.path,(S,b)=>{var G=da(),C=a(G),I=a(C),Y=a(I),ve=a(Y),pe=o(I,2),L=a(pe);{var ce=t=>{var x=W();h(z=>c(x,`${e(b).orphanFields.length??""} orphan field${e(b).orphanFields.length===1?"":"s"}:
4
+ ${z??""}`),[()=>e(b).orphanFields.join(", ")]),n(t,x)};k(L,t=>{e(b).orphanFields.length>0&&t(ce)})}var p=o(L,2);{var y=t=>{var x=W();h(()=>c(x,`· ${e(b).missingRequiredFields.length??""} missing required`)),n(t,x)};k(p,t=>{e(b).missingRequiredFields.length>0&&t(y)})}var P=o(p,2);{var q=t=>{var x=W();h(()=>c(x,`· best-fit: ${e(b).bestFitSnapshot??""}`)),n(t,x)};k(P,t=>{e(b).bestFitSnapshot&&t(q)})}h(()=>c(ve,e(b).path)),j("click",C,()=>Re(e(b).path)),n(S,G)}),h(()=>{c(ie,e(O).template),c(oe,`${e(O).items.length??""} item${e(O).items.length===1?"":"s"}`)}),n(E,N)}),n(i,m)};k(ae,i=>{g.error?i(te):g.loading&&g.list===null?i(le,1):g.count===0?i(se,2):i(re,-1)})}h(()=>{u.disabled=g.loading,c(ee,g.loading?"Refreshing…":"Refresh")}),j("click",u,()=>g.refresh()),n(s,f)};k(ye,s=>{e(M)!==null?s(Be):s(Je,-1)})}var We=o(ye,2);{var Ae=s=>{};k(We,s=>{!e(M)&&g.list===null&&s(Ae)})}n(Ee,be),Ye()}He(["click","change"]);export{ga as default};