@refrakt-md/runes 0.38.0 → 0.40.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.
Files changed (106) hide show
  1. package/dist/attribute-presets.d.ts +3 -2
  2. package/dist/attribute-presets.d.ts.map +1 -1
  3. package/dist/attribute-presets.js +2 -1
  4. package/dist/attribute-presets.js.map +1 -1
  5. package/dist/collection-helpers.d.ts +21 -2
  6. package/dist/collection-helpers.d.ts.map +1 -1
  7. package/dist/collection-helpers.js +72 -15
  8. package/dist/collection-helpers.js.map +1 -1
  9. package/dist/composed-rune.d.ts +59 -0
  10. package/dist/composed-rune.d.ts.map +1 -0
  11. package/dist/composed-rune.js +129 -0
  12. package/dist/composed-rune.js.map +1 -0
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +73 -40
  15. package/dist/config.js.map +1 -1
  16. package/dist/data-pipeline.d.ts +24 -10
  17. package/dist/data-pipeline.d.ts.map +1 -1
  18. package/dist/data-pipeline.js +34 -56
  19. package/dist/data-pipeline.js.map +1 -1
  20. package/dist/file-ref-resolve.js +9 -13
  21. package/dist/file-ref-resolve.js.map +1 -1
  22. package/dist/index.d.ts +14 -4
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +19 -5
  25. package/dist/index.js.map +1 -1
  26. package/dist/lib/composition.d.ts +152 -0
  27. package/dist/lib/composition.d.ts.map +1 -0
  28. package/dist/lib/composition.js +1120 -0
  29. package/dist/lib/composition.js.map +1 -0
  30. package/dist/lib/index.d.ts +63 -4
  31. package/dist/lib/index.d.ts.map +1 -1
  32. package/dist/lib/index.js +137 -8
  33. package/dist/lib/index.js.map +1 -1
  34. package/dist/lib/preprocess.d.ts +64 -0
  35. package/dist/lib/preprocess.d.ts.map +1 -0
  36. package/dist/lib/preprocess.js +72 -0
  37. package/dist/lib/preprocess.js.map +1 -0
  38. package/dist/lib/registers.d.ts +132 -0
  39. package/dist/lib/registers.d.ts.map +1 -0
  40. package/dist/lib/registers.js +329 -0
  41. package/dist/lib/registers.js.map +1 -0
  42. package/dist/lib/resolver.d.ts +21 -1
  43. package/dist/lib/resolver.d.ts.map +1 -1
  44. package/dist/lib/resolver.js +41 -18
  45. package/dist/lib/resolver.js.map +1 -1
  46. package/dist/lib/schema-side-table.d.ts +26 -0
  47. package/dist/lib/schema-side-table.d.ts.map +1 -0
  48. package/dist/lib/schema-side-table.js +34 -0
  49. package/dist/lib/schema-side-table.js.map +1 -0
  50. package/dist/lib/schema-table.d.ts +59 -9
  51. package/dist/lib/schema-table.d.ts.map +1 -1
  52. package/dist/lib/schema-table.js +158 -22
  53. package/dist/lib/schema-table.js.map +1 -1
  54. package/dist/lib/slot-markers.d.ts +38 -0
  55. package/dist/lib/slot-markers.d.ts.map +1 -0
  56. package/dist/lib/slot-markers.js +105 -0
  57. package/dist/lib/slot-markers.js.map +1 -0
  58. package/dist/lib/slots.d.ts +99 -0
  59. package/dist/lib/slots.d.ts.map +1 -0
  60. package/dist/lib/slots.js +448 -0
  61. package/dist/lib/slots.js.map +1 -0
  62. package/dist/plugins.d.ts +3 -0
  63. package/dist/plugins.d.ts.map +1 -1
  64. package/dist/plugins.js +53 -4
  65. package/dist/plugins.js.map +1 -1
  66. package/dist/reference.d.ts +18 -0
  67. package/dist/reference.d.ts.map +1 -1
  68. package/dist/reference.js +34 -1
  69. package/dist/reference.js.map +1 -1
  70. package/dist/registers-pipeline.d.ts +51 -0
  71. package/dist/registers-pipeline.d.ts.map +1 -0
  72. package/dist/registers-pipeline.js +224 -0
  73. package/dist/registers-pipeline.js.map +1 -0
  74. package/dist/schema-row.d.ts +5 -0
  75. package/dist/schema-row.d.ts.map +1 -1
  76. package/dist/schema-row.js +1 -0
  77. package/dist/schema-row.js.map +1 -1
  78. package/dist/tags/data.d.ts +2 -2
  79. package/dist/tags/data.d.ts.map +1 -1
  80. package/dist/tags/data.js +6 -4
  81. package/dist/tags/data.js.map +1 -1
  82. package/dist/tags/figure.d.ts +10 -4
  83. package/dist/tags/figure.d.ts.map +1 -1
  84. package/dist/tags/figure.js +65 -20
  85. package/dist/tags/figure.js.map +1 -1
  86. package/dist/tags/include.d.ts +51 -7
  87. package/dist/tags/include.d.ts.map +1 -1
  88. package/dist/tags/include.js +216 -7
  89. package/dist/tags/include.js.map +1 -1
  90. package/dist/tags/sandbox.d.ts.map +1 -1
  91. package/dist/tags/sandbox.js +13 -3
  92. package/dist/tags/sandbox.js.map +1 -1
  93. package/dist/tags/snippet.d.ts +9 -10
  94. package/dist/tags/snippet.d.ts.map +1 -1
  95. package/dist/tags/snippet.js +213 -10
  96. package/dist/tags/snippet.js.map +1 -1
  97. package/dist/universal-attributes.d.ts +1 -1
  98. package/package.json +3 -3
  99. package/dist/include-pipeline.d.ts +0 -52
  100. package/dist/include-pipeline.d.ts.map +0 -1
  101. package/dist/include-pipeline.js +0 -206
  102. package/dist/include-pipeline.js.map +0 -1
  103. package/dist/snippet-pipeline.d.ts +0 -44
  104. package/dist/snippet-pipeline.d.ts.map +0 -1
  105. package/dist/snippet-pipeline.js +0 -307
  106. package/dist/snippet-pipeline.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"include.js","sourceRoot":"","sources":["../../src/tags/include.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,wBAAwB,CAAC;IAC/C,UAAU,EAAE;QACX,IAAI,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EACV,iKAAiK;SAClK;QACD,SAAS,EAAE;YACV,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EACV,yRAAyR;SAC1R;KACD;IACD,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;IAC9C,SAAS,CAAC,SAAS,EAAE,MAAM;QAC1B,yEAAyE;QACzE,iDAAiD;QACjD,MAAM,IAAI,KAAK,CACd,qFAAqF;YACpF,uFAAuF;YACvF,oEAAoE,CACrE,CAAC;IACH,CAAC;CACD,CAAC,CAAC"}
1
+ {"version":3,"file":"include.js","sourceRoot":"","sources":["../../src/tags/include.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAGvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AAExB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAEpC;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,GAAS,EAAE,IAAoB,EAAE,GAAsB;IACjF,MAAM,QAAQ,GAAI,GAA8C,CAAC,QAAQ,CAAC;IAC1E,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,OAAO,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAC9B,IAAU,EACV,IAAoB,EACpB,GAAsB,EACtB,QAAiC,EACjC,KAAe;IAEf,IAAI,CAAC,IAAI,CAAC,QAAQ;QAAE,OAAO;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YACrD,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YACtE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC;YAC3C,kEAAkE;YAClE,qEAAqE;YACrE,uEAAuE;YACvE,iEAAiE;YACjE,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5B,SAAS;QACV,CAAC;QACD,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;AACF,CAAC;AAED,SAAS,IAAI,CAAC,GAAsB,EAAE,IAAoB,EAAE,OAAe;IAC1E,GAAG,CAAC,KAAK,CAAC,YAAY,OAAO,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,CAAC,aAAa,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,cAAc,CACtB,GAAS,EACT,IAAoB,EACpB,GAAsB,EACtB,QAAiC,EACjC,KAAe;IAEf,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnD,OAAO,IAAI,CACV,GAAG,EACH,IAAI,EACJ,yFAAyF,CACzF,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACvC,OAAO,IAAI,CACV,GAAG,EACH,IAAI,EACJ,oBAAoB,iBAAiB,WAAW,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAC9E,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,SAAS,GACd,KAAK,CAAC,MAAM,GAAG,CAAC;YACf,CAAC,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACpC,CAAC,CAAC,4CAA4C,CAAC;QACjD,OAAO,IAAI,CACV,GAAG,EACH,IAAI,EACJ,IAAI,IAAI,iEAAiE,SAAS,EAAE,CACpF,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAI,MAAe,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE3E,6EAA6E;IAC7E,qEAAqE;IACrE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QACzD,sBAAsB,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACzE,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC3B,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,IAAU,EAAE,QAAiC;IACvE,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;QAClE,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1F,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,2EAA2E;IAC3E,4EAA4E;IAC5E,4EAA4E;IAC5E,sCAAsC;IACtC,IAAI,IAAI,CAAC,KAAK;QAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACxC,IAAI,IAAI,CAAC,QAAQ;QAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACjD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC1B,IAAI,IAAI,CAAC,WAAW,EAAE,MAAM;QAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAClE,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAC9B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAC/E,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,UAAU,CAAC,KAAc,EAAE,QAAiC;IACpE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,IAAI,GAAG,KAA8C,CAAC;IAC5D,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtF,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAgB,CAAC;QAC9C,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;QACtC,IAAI,OAAO,GAAY,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;YAC5B,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO,EAAE,CAAC;YACzD,OAAO,GAAI,OAAmC,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IACjE,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED;2EAC2E;AAC3E,SAAS,gBAAgB,CACxB,GAAY,EACZ,aAAkD;IAElD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACrE,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAA8B,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED;;;kEAGkE;AAClE,SAAS,YAAY,CAAC,KAAc,EAAE,SAA8C;IACnF,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,IAAI,GAAG,KAA8C,CAAC;IAC5D,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9D,IAAI,OAAO,GAAY,SAAS,CAAC;QACjC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,IAAgB,EAAE,CAAC;YAC7C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO,EAAE,CAAC;YACzD,OAAO,GAAI,OAAmC,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IACjE,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC9C,OAAO,EAAE,CAAC;AACX,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,wBAAwB,CAAC;IAC/C,UAAU,EAAE;QACX,IAAI,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EACV,iKAAiK;SAClK;QACD,SAAS,EAAE;YACV,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EACV,yRAAyR;SAC1R;KACD;IACD,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;IAC9C,UAAU,EAAE,iBAAiB;IAC7B,SAAS,CAAC,SAAS,EAAE,MAAM;QAC1B,wEAAwE;QACxE,iDAAiD;QACjD,MAAM,IAAI,KAAK,CACd,qFAAqF;YACpF,uFAAuF;YACvF,oEAAoE,CACrE,CAAC;IACH,CAAC;CACD,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/tags/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAiEvC,eAAO,MAAM,OAAO,gBA+NlB,CAAC"}
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/tags/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAiEvC,eAAO,MAAM,OAAO,gBAyOlB,CAAC"}
@@ -125,6 +125,7 @@ export const sandbox = createContentModelSchema({
125
125
  const framework = attrs.framework ?? '';
126
126
  const dependencies = attrs.dependencies ?? '';
127
127
  const label = attrs.label ?? '';
128
+ const context = attrs.context ?? '';
128
129
  const height = attrs.height;
129
130
  const dataQuery = attrs.data ?? '';
130
131
  const dataFields = attrs['data-fields'] ?? '';
@@ -209,9 +210,18 @@ export const sandbox = createContentModelSchema({
209
210
  children.push(new Tag('template', { 'data-content': 'fallback' }, [fallbackPre]));
210
211
  }
211
212
  children.push(new Tag('template', { 'data-content': 'source' }, [sanitisedContent]));
212
- const el = createComponentRenderable({ rune: 'sandbox', tag: 'div', children });
213
- // Emit as the rf-sandbox custom element; the renderer reads its config off
214
- // these data-* attributes (no field-metas).
213
+ // BUG-032 — `context` is the one field: it lands in the `data-rune-fields`
214
+ // bag, where the design plugin's postProcess (and the editor preview)
215
+ // read it to pick a design-context token set. Omitted when unset, so a
216
+ // sandbox without a scope is unchanged and resolves to `default`.
217
+ const el = createComponentRenderable({
218
+ rune: 'sandbox',
219
+ tag: 'div',
220
+ properties: context ? { context: new Tag('meta', { content: context }) } : undefined,
221
+ children,
222
+ });
223
+ // Emit as the rf-sandbox custom element; the renderer reads the rest of its
224
+ // config off these data-* attributes.
215
225
  el.name = 'rf-sandbox';
216
226
  Object.assign(el.attributes, {
217
227
  'data-source-content': sanitisedContent,
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/tags/sandbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/tags/sandbox.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,18 @@
1
+ import Markdoc from '@markdoc/markdoc';
1
2
  /**
2
3
  * The `snippet` rune — embed a file's contents as a syntax-highlighted code
3
4
  * block (SPEC-062).
4
5
  *
5
- * Implementation note: snippet is implemented as an **AST preprocessor**
6
- * rather than a transform-time rune. Every `{% snippet %}` tag is replaced
7
- * by a Markdoc `fence` node before the schema-driven transform runs (see
8
- * `corePipelineHooks.preprocess` in `../config.ts`). By the time the transform
9
- * reaches the AST, no snippet tags exist — only fences. So this schema's
10
- * `transform` function is **unreachable in normal operation**.
6
+ * Snippet is an **AST preprocessor** rather than a transform-time rune: its
7
+ * `preprocess` hook (above) replaces every `{% snippet %}` tag with a Markdoc
8
+ * `fence` node before the schema-driven transform runs (SPEC-141). By the time
9
+ * the transform reaches the AST, no snippet tags exist — only fences. So this
10
+ * schema's `transform` function is **unreachable in normal operation**.
11
11
  *
12
12
  * The schema still exists for tooling: `refrakt inspect snippet`, the
13
13
  * contracts generator, attribute validation, and the rune-catalog docs all
14
- * read from it. If the transform ever does execute (e.g., the core preprocess
15
- * hook isn't registered for some reason), it throws a clear error pointing
16
- * the user at the registration site.
14
+ * read from it. If the transform ever does execute, it throws a clear error
15
+ * naming the likely cause (SPEC-141 D7).
17
16
  */
18
- export declare const snippet: import("@markdoc/markdoc").Schema;
17
+ export declare const snippet: Markdoc.Schema;
19
18
  //# sourceMappingURL=snippet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"snippet.d.ts","sourceRoot":"","sources":["../../src/tags/snippet.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,OAAO,mCAkHlB,CAAC"}
1
+ {"version":3,"file":"snippet.d.ts","sourceRoot":"","sources":["../../src/tags/snippet.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAiPvC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,OAAO,gBAmHlB,CAAC"}
@@ -1,20 +1,222 @@
1
+ import Markdoc from '@markdoc/markdoc';
1
2
  import { createContentModelSchema } from '../lib/index.js';
3
+ import { formatHighlight, highlightMatchLines, parseHighlightMatch, reindent, shouldReindent, } from '../lib/present.js';
4
+ import { readSnippetFile, SnippetSandboxError } from '../lib/read-file.js';
5
+ import { compareMarker, parseMarker } from '../lib/review-marker.js';
6
+ import { inferLanguage } from '../lang-map.js';
7
+ const { Ast } = Markdoc;
8
+ /** Resolve a Markdoc attribute value to a string. Handles literal strings
9
+ * and Markdoc `Variable` AST nodes (e.g. `path=$file.path` parses as a
10
+ * Variable, not a string). Unresolvable references (variable missing from
11
+ * the context, or attribute is some other AST shape) return an empty
12
+ * string — matching transform-time variable-evaluation behaviour. */
13
+ function resolveAttributeValue(value, variables) {
14
+ if (value === undefined || value === null)
15
+ return '';
16
+ if (typeof value === 'string')
17
+ return value;
18
+ if (typeof value === 'number' || typeof value === 'boolean')
19
+ return String(value);
20
+ if (typeof value === 'object' && '$$mdtype' in value) {
21
+ const node = value;
22
+ if (node.$$mdtype === 'Variable' && Array.isArray(node.path)) {
23
+ let current = variables;
24
+ for (const segment of node.path) {
25
+ if (current === null || current === undefined)
26
+ return '';
27
+ current = current[segment];
28
+ }
29
+ return current === null || current === undefined ? '' : String(current);
30
+ }
31
+ }
32
+ return '';
33
+ }
34
+ /** Build a `fence` AST node that renders a clear error message in place of
35
+ * the snippet. Used when resolution fails (sandbox, missing file, malformed
36
+ * lines, unresolvable variable reference). The fence carries the original
37
+ * attempted path in `source` so tooling can still detect snippet
38
+ * provenance, plus a `data-snippet-error` raw data-attr that's
39
+ * forwarded through the fence transform for the error styling hook. */
40
+ function makeErrorFence(pathAttr, message) {
41
+ return new Ast.Node('fence', {
42
+ content: `snippet error: ${message}\n`,
43
+ language: 'text',
44
+ source: pathAttr || '(unresolved)',
45
+ 'data-snippet-error': message,
46
+ });
47
+ }
48
+ function resolveSnippetToFence(tag, page, ctx, files) {
49
+ const pathAttr = resolveAttributeValue(tag.attributes.path, ctx.variables);
50
+ const lines = tag.attributes.lines !== undefined
51
+ ? resolveAttributeValue(tag.attributes.lines, ctx.variables)
52
+ : undefined;
53
+ const langAttr = tag.attributes.lang !== undefined
54
+ ? resolveAttributeValue(tag.attributes.lang, ctx.variables)
55
+ : undefined;
56
+ // WORK-304 — propagate author-set fence-level annotations from the
57
+ // snippet rune through to the fence node. The fence schema renders
58
+ // them as `data-linenumbers` / `data-highlight-lines`. `linenumbers`
59
+ // arrives as a Boolean from the rune schema; `highlight` as a String.
60
+ const linenumbers = tag.attributes.linenumbers === true;
61
+ const highlight = tag.attributes.highlight !== undefined
62
+ ? resolveAttributeValue(tag.attributes.highlight, ctx.variables)
63
+ : undefined;
64
+ // SPEC-131 — anchor attributes. Resolution lands in the shared reader, so
65
+ // `file-ref` gains the same capability from the same change.
66
+ const str = (name) => tag.attributes[name] !== undefined
67
+ ? resolveAttributeValue(tag.attributes[name], ctx.variables)
68
+ : undefined;
69
+ const anchor = {
70
+ symbol: str('symbol'),
71
+ match: str('match'),
72
+ occurrence: tag.attributes.occurrence !== undefined ? Number(tag.attributes.occurrence) : undefined,
73
+ extent: str('extent'),
74
+ until: str('until'),
75
+ through: str('through'),
76
+ doc: tag.attributes.doc === undefined ? undefined : tag.attributes.doc === true,
77
+ };
78
+ const reindentAttr = tag.attributes.reindent === undefined ? undefined : tag.attributes.reindent === true;
79
+ const highlightMatch = str('highlight-match');
80
+ const reviewedAttr = str('reviewed');
81
+ if (!pathAttr) {
82
+ const msg = 'snippet `path` attribute is required (and an unresolvable variable reference resolves to empty)';
83
+ ctx.error(msg, page.url);
84
+ return makeErrorFence('', msg);
85
+ }
86
+ let result;
87
+ try {
88
+ result = readSnippetFile({
89
+ files,
90
+ pathAttr,
91
+ lines: lines || undefined,
92
+ anchor,
93
+ lang: langAttr || undefined,
94
+ referencingPage: page.relativePath,
95
+ });
96
+ }
97
+ catch (err) {
98
+ if (err instanceof SnippetSandboxError) {
99
+ ctx.error(err.message, page.url);
100
+ return makeErrorFence(pathAttr, err.message);
101
+ }
102
+ // Unexpected error type — still produce an error fence so the build
103
+ // doesn't crash on a single page.
104
+ const msg = err.message ?? String(err);
105
+ ctx.error(`snippet "${pathAttr}" failed unexpectedly: ${msg}`, page.url);
106
+ return makeErrorFence(pathAttr, msg);
107
+ }
108
+ for (const warning of result.warnings) {
109
+ ctx.warn(warning, page.url);
110
+ }
111
+ // SPEC-134 — the review marker. Evaluated only after the anchor resolved,
112
+ // because D9 layers the two features: SPEC-131 answers *can I find the
113
+ // region* and refuses if not, so a refusal never reaches here at all.
114
+ //
115
+ // A finding is a `PipelineWarning` beside the page and **nothing is
116
+ // rendered into it** (D6). This is deliberately different from SPEC-131's
117
+ // error fence, and the difference is principled: there, the content could
118
+ // not be produced, so the fence takes its place. Here the content was
119
+ // produced perfectly — real, current, correctly located. What is uncertain
120
+ // is the prose beside it, which the resolver cannot see. Replacing a
121
+ // correct code block with an error because a paragraph *might* be stale is
122
+ // a straightforward regression for every reader.
123
+ if (reviewedAttr && reviewedAttr.length > 0) {
124
+ const stored = parseMarker(reviewedAttr);
125
+ const comparison = compareMarker(stored.strict, result.content, stored.loose);
126
+ if (comparison.verdict === 'stale') {
127
+ // Deliberately no diff here: at transform time the only record of
128
+ // the reviewed version is its hash, and a hash cannot be turned
129
+ // back into content. `refrakt snippet review --update` recovers the
130
+ // old slice from git and shows the diff — which is why D5's "show
131
+ // content, never hashes" is the CLI's job rather than this one's.
132
+ ctx.warn(`snippet \`${pathAttr}\` has changed since it was last reviewed. Re-read the prose ` +
133
+ 'around it, then run `refrakt snippet review --update` to see the diff and re-stamp.', page.url);
134
+ }
135
+ }
136
+ const language = langAttr && langAttr.length > 0 ? langAttr : inferLanguage(result.relativePath);
137
+ // WORK-589 — presentation runs strictly **after** the resolved range is
138
+ // fixed, so `reindent` can never shift the coordinates `linenumbers` and a
139
+ // numeric `highlight` read (D13). `highlight-match` is computed against the
140
+ // pre-reindent text because reindent changes columns, not lines.
141
+ const highlightMatchLinesFound = highlightMatch
142
+ ? highlightMatchLines(result.content, parseHighlightMatch(highlightMatch))
143
+ : [];
144
+ const content = shouldReindent(result.anchored, reindentAttr)
145
+ ? reindent(result.content)
146
+ : result.content;
147
+ // WORK-304 — write unprefixed `source` / `lines` directly. The fence
148
+ // schema renders them as `data-source` / `data-lines`. `linenumbers` /
149
+ // `highlight` are propagated from the rune attributes (file-coordinate
150
+ // semantics — see WORK-304 acceptance criteria).
151
+ const fenceAttrs = {
152
+ content,
153
+ language,
154
+ source: result.relativePath,
155
+ };
156
+ // The coordinate frame survives anchoring (D13): an anchored slice reports
157
+ // the range it actually resolved to, so `linenumbers` still starts at the
158
+ // real file line and the displayed numbers stay a pointer back into it.
159
+ if (lines)
160
+ fenceAttrs.lines = lines;
161
+ else if (result.anchored && result.start !== undefined && result.end !== undefined) {
162
+ fenceAttrs.lines = `${result.start}-${result.end}`;
163
+ }
164
+ if (linenumbers)
165
+ fenceAttrs.linenumbers = true;
166
+ if (highlightMatchLinesFound.length > 0) {
167
+ // Slice offsets converted into the file frame the fence expects.
168
+ const base = result.start ?? 1;
169
+ fenceAttrs.highlight = formatHighlight(highlightMatchLinesFound.map((n) => n + base - 1));
170
+ }
171
+ else if (highlight && highlight.length > 0) {
172
+ fenceAttrs.highlight = highlight;
173
+ }
174
+ // Construct a fence Ast.Node. Markdoc parses ``` blocks as
175
+ // new Ast.Node('fence', { content, language }) — same shape here.
176
+ return new Ast.Node('fence', fenceAttrs);
177
+ }
178
+ /**
179
+ * Preprocess (SPEC-062, WORK-304): resolve + slice the source file and replace
180
+ * the tag with a Markdoc `fence` node. The fence carries `content` + `language`
181
+ * (so the code-block transform syntax-highlights it identically to a
182
+ * triple-backtick fence) plus `source` / `lines` and the author-set
183
+ * `linenumbers` / `highlight` annotations, which the fence schema renders as
184
+ * `data-source` / `data-lines` / `data-linenumbers` / `data-highlight-lines` on
185
+ * the output `<pre>` + `<code>`.
186
+ *
187
+ * That is the whole rune: there is no postProcess step (SPEC-141 D5). A
188
+ * standalone snippet renders as the `<pre data-source>` the fence produces —
189
+ * `pre[data-source]` is the selector for snippet-derived code — and container
190
+ * runes (`codegroup`, `diff`) see it as a regular fence and consume it
191
+ * transparently. Captions / titles are intentionally not provided — wrap a
192
+ * snippet in `{% codegroup title="..." %}` if you want a labelled chrome.
193
+ *
194
+ * Always produces a fence: sandbox / missing-file / variable-resolution errors
195
+ * produce an error fence, so the tag never reaches the throwing `transform`.
196
+ * The build keeps going and the failure is visible on the rendered page.
197
+ *
198
+ * No-op without a file provider (e.g. a tree-mode build that hasn't wired one
199
+ * yet) — the tag then falls through to the transform, which names the wiring.
200
+ */
201
+ function preprocessSnippet(tag, page, ctx) {
202
+ if (!ctx.sandbox)
203
+ return;
204
+ return resolveSnippetToFence(tag, page, ctx, ctx.sandbox);
205
+ }
2
206
  /**
3
207
  * The `snippet` rune — embed a file's contents as a syntax-highlighted code
4
208
  * block (SPEC-062).
5
209
  *
6
- * Implementation note: snippet is implemented as an **AST preprocessor**
7
- * rather than a transform-time rune. Every `{% snippet %}` tag is replaced
8
- * by a Markdoc `fence` node before the schema-driven transform runs (see
9
- * `corePipelineHooks.preprocess` in `../config.ts`). By the time the transform
10
- * reaches the AST, no snippet tags exist — only fences. So this schema's
11
- * `transform` function is **unreachable in normal operation**.
210
+ * Snippet is an **AST preprocessor** rather than a transform-time rune: its
211
+ * `preprocess` hook (above) replaces every `{% snippet %}` tag with a Markdoc
212
+ * `fence` node before the schema-driven transform runs (SPEC-141). By the time
213
+ * the transform reaches the AST, no snippet tags exist — only fences. So this
214
+ * schema's `transform` function is **unreachable in normal operation**.
12
215
  *
13
216
  * The schema still exists for tooling: `refrakt inspect snippet`, the
14
217
  * contracts generator, attribute validation, and the rune-catalog docs all
15
- * read from it. If the transform ever does execute (e.g., the core preprocess
16
- * hook isn't registered for some reason), it throws a clear error pointing
17
- * the user at the registration site.
218
+ * read from it. If the transform ever does execute, it throws a clear error
219
+ * naming the likely cause (SPEC-141 D7).
18
220
  */
19
221
  export const snippet = createContentModelSchema({
20
222
  attributes: {
@@ -96,8 +298,9 @@ export const snippet = createContentModelSchema({
96
298
  },
97
299
  },
98
300
  contentModel: { type: 'sequence', fields: [] },
301
+ preprocess: preprocessSnippet,
99
302
  transform(_resolved, _attrs) {
100
- // Unreachable in normal operation — corePipelineHooks.preprocess
303
+ // Unreachable in normal operation — the `preprocess` hook above
101
304
  // replaces snippet tags with fence nodes before the transform runs.
102
305
  //
103
306
  // The reachable case is a content author's, not a framework author's:
@@ -1 +1 @@
1
- {"version":3,"file":"snippet.js","sourceRoot":"","sources":["../../src/tags/snippet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,wBAAwB,CAAC;IAC/C,UAAU,EAAE;QACX,IAAI,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EACV,yFAAyF;SAC1F;QACD,KAAK,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EACV,sQAAsQ;SACvQ;QACD,MAAM,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EACV,oSAAoS;SACrS;QACD,KAAK,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EACV,mMAAmM;SACpM;QACD,UAAU,EAAE;YACX,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EACV,sSAAsS;SACvS;QACD,MAAM,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC;YAChD,WAAW,EACV,4UAA4U;SAC7U;QACD,KAAK,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EACV,mJAAmJ;SACpJ;QACD,OAAO,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EACV,yOAAyO;SAC1O;QACD,GAAG,EAAE;YACJ,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,KAAK;YACf,WAAW,EACV,iOAAiO;SAClO;QACD,QAAQ,EAAE;YACT,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,KAAK;YACf,WAAW,EACV,2SAA2S;SAC5S;QACD,QAAQ,EAAE;YACT,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EACV,mUAAmU;SACpU;QACD,iBAAiB,EAAE;YAClB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EACV,iNAAiN;SAClN;QACD,IAAI,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,6EAA6E;SAC1F;QACD,WAAW,EAAE;YACZ,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,KAAK;YACf,WAAW,EACV,wLAAwL;SACzL;QACD,SAAS,EAAE;YACV,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EACV,4ZAA4Z;SAC7Z;KACD;IACD,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;IAC9C,SAAS,CAAC,SAAS,EAAE,MAAM;QAC1B,iEAAiE;QACjE,oEAAoE;QACpE,EAAE;QACF,sEAAsE;QACtE,wEAAwE;QACxE,0EAA0E;QAC1E,MAAM,IAAI,KAAK,CACd,2DAA2D;YAC1D,2EAA2E;YAC3E,+EAA+E;YAC/E,iFAAiF;YACjF,kFAAkF;YAClF,gFAAgF;YAChF,oDAAoD;YACpD,gFAAgF;YAChF,8EAA8E;YAC9E,8BAA8B,CAC/B,CAAC;IACH,CAAC;CACD,CAAC,CAAC"}
1
+ {"version":3,"file":"snippet.js","sourceRoot":"","sources":["../../src/tags/snippet.ts"],"names":[],"mappings":"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"}
@@ -61,7 +61,7 @@ export type UniversalAttributePosture = 'auto' | 'inline' | 'configurator' | 'no
61
61
  /** The prose behind a non-`auto` posture, for tooling that explains itself.
62
62
  * Re-exported from the transform registry rather than restated, so the schema
63
63
  * layer and the structure contract give the same reason. */
64
- export declare const POSTURE_REASONS: Readonly<Record<"inline" | "configurator" | "none", string>>;
64
+ export declare const POSTURE_REASONS: Readonly<Record<"inline" | "none" | "configurator", string>>;
65
65
  export interface UniversalAttributeInput {
66
66
  /** Defaults to `auto`. */
67
67
  posture?: UniversalAttributePosture;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@refrakt-md/runes",
3
3
  "description": "Semantic Markdoc runes for refrakt.md",
4
- "version": "0.38.0",
4
+ "version": "0.40.0",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -32,8 +32,8 @@
32
32
  "generate-translations": "node scripts/generate-translations.mjs"
33
33
  },
34
34
  "dependencies": {
35
- "@refrakt-md/types": "0.38.0",
36
- "@refrakt-md/transform": "0.38.0",
35
+ "@refrakt-md/types": "0.40.0",
36
+ "@refrakt-md/transform": "0.40.0",
37
37
  "@markdoc/markdoc": "0.4.0",
38
38
  "reflect-metadata": "^0.2.0",
39
39
  "fast-xml-parser": "4.5.1",
@@ -1,52 +0,0 @@
1
- /**
2
- * Include pipeline hook (SPEC-129).
3
- *
4
- * The first preprocess step: walk the parsed AST and replace every
5
- * `{% include %}` tag with the referenced partial's AST, cloned and with the
6
- * tag's `variables` substituted. It runs **before** `preprocessSnippets` and
7
- * `preprocessData` so a `data` or `snippet` inside the pasted file is in the
8
- * tree when those hooks walk it — the case `{% partial %}` cannot serve,
9
- * because Markdoc expands partials during the transform.
10
- *
11
- * Three properties are load-bearing:
12
- *
13
- * - **Splice, never wrap.** One include produces N nodes and they land as
14
- * direct siblings. A container to keep the replacement 1:1 breaks
15
- * composition invisibly: measured in SPEC-127, `{% section %}` and
16
- * `{% grid %}` consume their children, so wrapped content vanishes with no
17
- * error. Same constraint, same reason, as the `data` per-row body.
18
- *
19
- * - **Always clone.** The partial ASTs are parsed once per build and shared by
20
- * every page that references them. The later preprocessors mutate the tree in
21
- * place, so pasting the shared nodes would let one page's `data` resolution
22
- * leak into the next page's copy.
23
- *
24
- * - **Substitute, don't scope.** `partial` binds variables into a
25
- * transform-time scope, which is precisely what a preprocessor attribute
26
- * cannot read. `include` rewrites `Variable` nodes in the cloned AST at paste
27
- * time — the same thing `bindRow` does for `$row` — so a binding reaches
28
- * `{% data where=$q %}`. Variables the include does not bind are left alone
29
- * and resolve at transform against the page's own variables.
30
- *
31
- * Failures render a visible error callout and record a build error rather than
32
- * throwing, matching `data`: one bad include does not take out the build, and
33
- * the failure is on the page where the author will see it.
34
- */
35
- import type { Node } from '@markdoc/markdoc';
36
- import type { PreprocessContext, PreprocessPage } from '@refrakt-md/types';
37
- /**
38
- * How deep includes may nest.
39
- *
40
- * A cycle is caught by name before this ever fires — the stack check below is
41
- * the real guard. This bounds the other shape: a chain of distinct files deep
42
- * enough that it is a mistake rather than a structure anyone meant to author.
43
- */
44
- export declare const MAX_INCLUDE_DEPTH = 16;
45
- /**
46
- * Preprocess: splice every `{% include %}` tag away. No-op when no partials are
47
- * available (a tree-mode build with none wired), matching how snippet and data
48
- * no-op without a sandbox — the tag then falls through to its schema transform,
49
- * which names the wiring.
50
- */
51
- export declare function preprocessIncludes(ast: Node, page: PreprocessPage, ctx: PreprocessContext): Node | void;
52
- //# sourceMappingURL=include-pipeline.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"include-pipeline.d.ts","sourceRoot":"","sources":["../src/include-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAK3E;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC;;;;;GAKG;AACH,wBAAgB,kBAAkB,CACjC,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,cAAc,EACpB,GAAG,EAAE,iBAAiB,GACpB,IAAI,GAAG,IAAI,CAeb"}