@refrakt-md/runes 0.1.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 (217) hide show
  1. package/dist/attributes.d.ts +15 -0
  2. package/dist/attributes.d.ts.map +1 -0
  3. package/dist/attributes.js +46 -0
  4. package/dist/attributes.js.map +1 -0
  5. package/dist/documents/doc.d.ts +4 -0
  6. package/dist/documents/doc.d.ts.map +1 -0
  7. package/dist/documents/doc.js +4 -0
  8. package/dist/documents/doc.js.map +1 -0
  9. package/dist/documents/footer.d.ts +2 -0
  10. package/dist/documents/footer.d.ts.map +1 -0
  11. package/dist/documents/footer.js +60 -0
  12. package/dist/documents/footer.js.map +1 -0
  13. package/dist/documents/menu.d.ts +2 -0
  14. package/dist/documents/menu.d.ts.map +1 -0
  15. package/dist/documents/menu.js +40 -0
  16. package/dist/documents/menu.js.map +1 -0
  17. package/dist/documents/page.d.ts +10 -0
  18. package/dist/documents/page.d.ts.map +1 -0
  19. package/dist/documents/page.js +30 -0
  20. package/dist/documents/page.js.map +1 -0
  21. package/dist/documents/summary.d.ts +3 -0
  22. package/dist/documents/summary.d.ts.map +1 -0
  23. package/dist/documents/summary.js +63 -0
  24. package/dist/documents/summary.js.map +1 -0
  25. package/dist/hljs-markdoc.d.ts +3 -0
  26. package/dist/hljs-markdoc.d.ts.map +1 -0
  27. package/dist/hljs-markdoc.js +37 -0
  28. package/dist/hljs-markdoc.js.map +1 -0
  29. package/dist/index.d.ts +131 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +295 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/interfaces.d.ts +44 -0
  34. package/dist/interfaces.d.ts.map +1 -0
  35. package/dist/interfaces.js +11 -0
  36. package/dist/interfaces.js.map +1 -0
  37. package/dist/layouts/grid.d.ts +23 -0
  38. package/dist/layouts/grid.d.ts.map +1 -0
  39. package/dist/layouts/grid.js +30 -0
  40. package/dist/layouts/grid.js.map +1 -0
  41. package/dist/layouts/index.d.ts +3 -0
  42. package/dist/layouts/index.d.ts.map +1 -0
  43. package/dist/layouts/index.js +3 -0
  44. package/dist/layouts/index.js.map +1 -0
  45. package/dist/layouts/split.d.ts +15 -0
  46. package/dist/layouts/split.d.ts.map +1 -0
  47. package/dist/layouts/split.js +26 -0
  48. package/dist/layouts/split.js.map +1 -0
  49. package/dist/lib/annotations/annotation.d.ts +11 -0
  50. package/dist/lib/annotations/annotation.d.ts.map +1 -0
  51. package/dist/lib/annotations/annotation.js +21 -0
  52. package/dist/lib/annotations/annotation.js.map +1 -0
  53. package/dist/lib/annotations/attribute.d.ts +12 -0
  54. package/dist/lib/annotations/attribute.d.ts.map +1 -0
  55. package/dist/lib/annotations/attribute.js +17 -0
  56. package/dist/lib/annotations/attribute.js.map +1 -0
  57. package/dist/lib/annotations/decoration.d.ts +10 -0
  58. package/dist/lib/annotations/decoration.d.ts.map +1 -0
  59. package/dist/lib/annotations/decoration.js +46 -0
  60. package/dist/lib/annotations/decoration.js.map +1 -0
  61. package/dist/lib/annotations/group.d.ts +24 -0
  62. package/dist/lib/annotations/group.d.ts.map +1 -0
  63. package/dist/lib/annotations/group.js +78 -0
  64. package/dist/lib/annotations/group.js.map +1 -0
  65. package/dist/lib/annotations/id.d.ts +19 -0
  66. package/dist/lib/annotations/id.d.ts.map +1 -0
  67. package/dist/lib/annotations/id.js +32 -0
  68. package/dist/lib/annotations/id.js.map +1 -0
  69. package/dist/lib/annotations/interfaces.d.ts +27 -0
  70. package/dist/lib/annotations/interfaces.d.ts.map +1 -0
  71. package/dist/lib/annotations/interfaces.js +2 -0
  72. package/dist/lib/annotations/interfaces.js.map +1 -0
  73. package/dist/lib/component.d.ts +26 -0
  74. package/dist/lib/component.d.ts.map +1 -0
  75. package/dist/lib/component.js +28 -0
  76. package/dist/lib/component.js.map +1 -0
  77. package/dist/lib/index.d.ts +10 -0
  78. package/dist/lib/index.d.ts.map +1 -0
  79. package/dist/lib/index.js +25 -0
  80. package/dist/lib/index.js.map +1 -0
  81. package/dist/lib/model.d.ts +13 -0
  82. package/dist/lib/model.d.ts.map +1 -0
  83. package/dist/lib/model.js +33 -0
  84. package/dist/lib/model.js.map +1 -0
  85. package/dist/lib/node.d.ts +18 -0
  86. package/dist/lib/node.d.ts.map +1 -0
  87. package/dist/lib/node.js +49 -0
  88. package/dist/lib/node.js.map +1 -0
  89. package/dist/lib/renderable.d.ts +22 -0
  90. package/dist/lib/renderable.d.ts.map +1 -0
  91. package/dist/lib/renderable.js +52 -0
  92. package/dist/lib/renderable.js.map +1 -0
  93. package/dist/lib/types.d.ts +8 -0
  94. package/dist/lib/types.d.ts.map +1 -0
  95. package/dist/lib/types.js +14 -0
  96. package/dist/lib/types.js.map +1 -0
  97. package/dist/nodes.d.ts +18 -0
  98. package/dist/nodes.d.ts.map +1 -0
  99. package/dist/nodes.js +181 -0
  100. package/dist/nodes.js.map +1 -0
  101. package/dist/registry.d.ts +47 -0
  102. package/dist/registry.d.ts.map +1 -0
  103. package/dist/registry.js +60 -0
  104. package/dist/registry.js.map +1 -0
  105. package/dist/rune.d.ts +34 -0
  106. package/dist/rune.d.ts.map +1 -0
  107. package/dist/rune.js +29 -0
  108. package/dist/rune.js.map +1 -0
  109. package/dist/tags/accordion.d.ts +4 -0
  110. package/dist/tags/accordion.d.ts.map +1 -0
  111. package/dist/tags/accordion.js +98 -0
  112. package/dist/tags/accordion.js.map +1 -0
  113. package/dist/tags/breadcrumb.d.ts +3 -0
  114. package/dist/tags/breadcrumb.d.ts.map +1 -0
  115. package/dist/tags/breadcrumb.js +76 -0
  116. package/dist/tags/breadcrumb.js.map +1 -0
  117. package/dist/tags/changelog.d.ts +4 -0
  118. package/dist/tags/changelog.d.ts.map +1 -0
  119. package/dist/tags/changelog.js +124 -0
  120. package/dist/tags/changelog.js.map +1 -0
  121. package/dist/tags/codegroup.d.ts +2 -0
  122. package/dist/tags/codegroup.d.ts.map +1 -0
  123. package/dist/tags/codegroup.js +60 -0
  124. package/dist/tags/codegroup.js.map +1 -0
  125. package/dist/tags/common.d.ts +17 -0
  126. package/dist/tags/common.d.ts.map +1 -0
  127. package/dist/tags/common.js +61 -0
  128. package/dist/tags/common.js.map +1 -0
  129. package/dist/tags/compare.d.ts +3 -0
  130. package/dist/tags/compare.d.ts.map +1 -0
  131. package/dist/tags/compare.js +61 -0
  132. package/dist/tags/compare.js.map +1 -0
  133. package/dist/tags/cta.d.ts +3 -0
  134. package/dist/tags/cta.d.ts.map +1 -0
  135. package/dist/tags/cta.js +75 -0
  136. package/dist/tags/cta.js.map +1 -0
  137. package/dist/tags/details.d.ts +3 -0
  138. package/dist/tags/details.d.ts.map +1 -0
  139. package/dist/tags/details.js +55 -0
  140. package/dist/tags/details.js.map +1 -0
  141. package/dist/tags/embed.d.ts +3 -0
  142. package/dist/tags/embed.d.ts.map +1 -0
  143. package/dist/tags/embed.js +130 -0
  144. package/dist/tags/embed.js.map +1 -0
  145. package/dist/tags/error.d.ts +3 -0
  146. package/dist/tags/error.d.ts.map +1 -0
  147. package/dist/tags/error.js +50 -0
  148. package/dist/tags/error.js.map +1 -0
  149. package/dist/tags/feature.d.ts +16 -0
  150. package/dist/tags/feature.d.ts.map +1 -0
  151. package/dist/tags/feature.js +98 -0
  152. package/dist/tags/feature.js.map +1 -0
  153. package/dist/tags/figure.d.ts +3 -0
  154. package/dist/tags/figure.d.ts.map +1 -0
  155. package/dist/tags/figure.js +64 -0
  156. package/dist/tags/figure.js.map +1 -0
  157. package/dist/tags/grid.d.ts +2 -0
  158. package/dist/tags/grid.d.ts.map +1 -0
  159. package/dist/tags/grid.js +56 -0
  160. package/dist/tags/grid.js.map +1 -0
  161. package/dist/tags/hero.d.ts +3 -0
  162. package/dist/tags/hero.d.ts.map +1 -0
  163. package/dist/tags/hero.js +75 -0
  164. package/dist/tags/hero.js.map +1 -0
  165. package/dist/tags/hint.d.ts +3 -0
  166. package/dist/tags/hint.d.ts.map +1 -0
  167. package/dist/tags/hint.js +41 -0
  168. package/dist/tags/hint.js.map +1 -0
  169. package/dist/tags/layout.d.ts +3 -0
  170. package/dist/tags/layout.d.ts.map +1 -0
  171. package/dist/tags/layout.js +32 -0
  172. package/dist/tags/layout.js.map +1 -0
  173. package/dist/tags/music-playlist.d.ts +3 -0
  174. package/dist/tags/music-playlist.d.ts.map +1 -0
  175. package/dist/tags/music-playlist.js +80 -0
  176. package/dist/tags/music-playlist.js.map +1 -0
  177. package/dist/tags/music-recording.d.ts +17 -0
  178. package/dist/tags/music-recording.d.ts.map +1 -0
  179. package/dist/tags/music-recording.js +99 -0
  180. package/dist/tags/music-recording.js.map +1 -0
  181. package/dist/tags/nav.d.ts +3 -0
  182. package/dist/tags/nav.d.ts.map +1 -0
  183. package/dist/tags/nav.js +114 -0
  184. package/dist/tags/nav.js.map +1 -0
  185. package/dist/tags/pricing.d.ts +12 -0
  186. package/dist/tags/pricing.d.ts.map +1 -0
  187. package/dist/tags/pricing.js +78 -0
  188. package/dist/tags/pricing.js.map +1 -0
  189. package/dist/tags/region.d.ts +3 -0
  190. package/dist/tags/region.d.ts.map +1 -0
  191. package/dist/tags/region.js +37 -0
  192. package/dist/tags/region.js.map +1 -0
  193. package/dist/tags/steps.d.ts +4 -0
  194. package/dist/tags/steps.d.ts.map +1 -0
  195. package/dist/tags/steps.js +71 -0
  196. package/dist/tags/steps.js.map +1 -0
  197. package/dist/tags/tabs.d.ts +4 -0
  198. package/dist/tags/tabs.d.ts.map +1 -0
  199. package/dist/tags/tabs.js +119 -0
  200. package/dist/tags/tabs.js.map +1 -0
  201. package/dist/tags/testimonial.d.ts +3 -0
  202. package/dist/tags/testimonial.d.ts.map +1 -0
  203. package/dist/tags/testimonial.js +99 -0
  204. package/dist/tags/testimonial.js.map +1 -0
  205. package/dist/tags/timeline.d.ts +4 -0
  206. package/dist/tags/timeline.d.ts.map +1 -0
  207. package/dist/tags/timeline.js +125 -0
  208. package/dist/tags/timeline.js.map +1 -0
  209. package/dist/tags/toc.d.ts +3 -0
  210. package/dist/tags/toc.d.ts.map +1 -0
  211. package/dist/tags/toc.js +53 -0
  212. package/dist/tags/toc.js.map +1 -0
  213. package/dist/util.d.ts +21 -0
  214. package/dist/util.d.ts.map +1 -0
  215. package/dist/util.js +99 -0
  216. package/dist/util.js.map +1 -0
  217. package/package.json +37 -0
@@ -0,0 +1,46 @@
1
+ import 'reflect-metadata';
2
+ function metadata(name, target, initialState, propertyKey) {
3
+ const read = (inherit) => {
4
+ const reader = inherit ? Reflect.getMetadata : Reflect.getOwnMetadata;
5
+ return reader(name, target, propertyKey) || initialState;
6
+ };
7
+ return {
8
+ mutate: (fn) => {
9
+ const data = fn(read());
10
+ if (propertyKey) {
11
+ Reflect.defineMetadata(name, data, target, propertyKey);
12
+ }
13
+ else {
14
+ Reflect.defineMetadata(name, data, target);
15
+ }
16
+ },
17
+ read,
18
+ };
19
+ }
20
+ export const annotations = (target) => metadata('annotations', target, []);
21
+ export const propMetadata = (target) => metadata('propMetadata', target, {});
22
+ export const parameters = (target, propertyKey) => metadata('parameters', target, [], propertyKey);
23
+ function decorate(target, annotation) {
24
+ annotations(target).mutate(data => data.concat(annotation));
25
+ }
26
+ function decorateProperty(target, propertyKey, annotation) {
27
+ propMetadata(target.constructor).mutate(props => Object.assign(props, { [propertyKey]: (props[propertyKey] || []).concat(annotation) }));
28
+ decorate(target.constructor, annotation);
29
+ }
30
+ export function classDecorator(factory) {
31
+ return target => {
32
+ decorate(target, factory(target));
33
+ return target;
34
+ };
35
+ }
36
+ export function methodDecorator(factory) {
37
+ return (target, propertyKey, descriptor) => decorateProperty(target, propertyKey, factory({ target, propertyKey, descriptor }));
38
+ }
39
+ export function propertyDecorator(factory) {
40
+ return (target, propertyKey) => decorateProperty(target, propertyKey, factory({ target, propertyKey }));
41
+ }
42
+ export function parameterDecorator(factory) {
43
+ return (target, propertyKey, parameterIndex) => parameters(target.constructor, propertyKey)
44
+ .mutate(p => p.concat(factory({ target, propertyKey, parameterIndex })));
45
+ }
46
+ //# sourceMappingURL=decoration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoration.js","sourceRoot":"","sources":["../../../src/lib/annotations/decoration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { Config, Node, NodeType } from '@markdoc/markdoc';
2
+ import { Annotation } from './annotation.js';
3
+ import { Group } from '../../interfaces.js';
4
+ import { NodeStream } from '../node.js';
5
+ export type GroupAnnotationOptions = Omit<Group, 'name'>;
6
+ export declare class AbstractGroupAnnotation extends Annotation {
7
+ protected target: any;
8
+ protected propertyKey: string;
9
+ constructor(target: any, propertyKey: string);
10
+ create(nodes: Node[], index: number, config: Config): number;
11
+ }
12
+ export declare class GroupAnnotation extends AbstractGroupAnnotation {
13
+ private options;
14
+ constructor(target: any, propertyKey: string, options: GroupAnnotationOptions);
15
+ create(nodes: Node[], index: number, config: Config): number;
16
+ private includes;
17
+ }
18
+ interface GroupListOptions {
19
+ delimiter: NodeType;
20
+ }
21
+ export declare function group(options: GroupAnnotationOptions): import("./interfaces.js").PropertyDecorator<any>;
22
+ export declare function groupList(options: GroupListOptions): import("./interfaces.js").PropertyDecorator<NodeStream[]>;
23
+ export {};
24
+ //# sourceMappingURL=group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../../../src/lib/annotations/group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAoB,UAAU,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAEzD,qBAAa,uBAAwB,SAAQ,UAAU;IAEnD,SAAS,CAAC,MAAM,EAAE,GAAG;IACrB,SAAS,CAAC,WAAW,EAAE,MAAM;gBADnB,MAAM,EAAE,GAAG,EACX,WAAW,EAAE,MAAM;IAK/B,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAGpD;AAED,qBAAa,eAAgB,SAAQ,uBAAuB;IAIxD,OAAO,CAAC,OAAO;gBAFf,MAAM,EAAE,GAAG,EACX,WAAW,EAAE,MAAM,EACX,OAAO,EAAE,sBAAsB;IAKlC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAsB1D,OAAO,CAAC,QAAQ;CAWjB;AAED,UAAU,gBAAgB;IACxB,SAAS,EAAE,QAAQ,CAAC;CACrB;AAkCD,wBAAgB,KAAK,CAAC,OAAO,EAAE,sBAAsB,oDAEpD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,6DAElD"}
@@ -0,0 +1,78 @@
1
+ import { Annotation } from './annotation.js';
2
+ import { propertyDecorator } from './decoration.js';
3
+ import { isFilterMatching, NodeStream } from '../node.js';
4
+ export class AbstractGroupAnnotation extends Annotation {
5
+ constructor(target, propertyKey) {
6
+ super();
7
+ this.target = target;
8
+ this.propertyKey = propertyKey;
9
+ }
10
+ create(nodes, index, config) {
11
+ return index;
12
+ }
13
+ }
14
+ export class GroupAnnotation extends AbstractGroupAnnotation {
15
+ constructor(target, propertyKey, options) {
16
+ super(target, propertyKey);
17
+ this.options = options;
18
+ }
19
+ create(nodes, index, config) {
20
+ let section = nodes.slice(0, index).filter(n => n.type === 'hr').length;
21
+ const group = new NodeStream([], config);
22
+ for (const n of nodes.slice(index)) {
23
+ if (n.type === 'hr') {
24
+ section++;
25
+ continue;
26
+ }
27
+ if (this.includes(n, section) || n.type === 'comment') {
28
+ group.push(n);
29
+ }
30
+ else {
31
+ break;
32
+ }
33
+ }
34
+ this.target[this.propertyKey] = group;
35
+ return index + group.length;
36
+ }
37
+ includes(node, section) {
38
+ const group = this.options;
39
+ if (group.section !== undefined && group.section !== section) {
40
+ return false;
41
+ }
42
+ if (group.include) {
43
+ return group.include.some(g => isFilterMatching(node, g));
44
+ }
45
+ return true;
46
+ }
47
+ }
48
+ class GroupListAnnotation extends AbstractGroupAnnotation {
49
+ constructor(target, propertyKey, options) {
50
+ super(target, propertyKey);
51
+ this.options = options;
52
+ }
53
+ create(nodes, index, config) {
54
+ const streams = [];
55
+ let current = new NodeStream([], config);
56
+ for (const n of nodes.slice(index)) {
57
+ if (n.type === this.options.delimiter && current.length > 0) {
58
+ streams.push(current);
59
+ current = new NodeStream([], config);
60
+ }
61
+ else {
62
+ current.push(n);
63
+ }
64
+ }
65
+ if (current.length > 0) {
66
+ streams.push(current);
67
+ }
68
+ this.target[this.propertyKey] = streams;
69
+ return nodes.length - 1;
70
+ }
71
+ }
72
+ export function group(options) {
73
+ return propertyDecorator(({ target, propertyKey }) => new GroupAnnotation(target, propertyKey, options));
74
+ }
75
+ export function groupList(options) {
76
+ return propertyDecorator(({ target, propertyKey }) => new GroupListAnnotation(target, propertyKey, options));
77
+ }
78
+ //# sourceMappingURL=group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group.js","sourceRoot":"","sources":["../../../src/lib/annotations/group.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { Config, Node } from '@markdoc/markdoc';
2
+ import { Annotation } from './annotation.js';
3
+ export interface IdOptions {
4
+ generate: boolean;
5
+ }
6
+ export declare class GeneratedAttributeAnnotation<T> extends Annotation {
7
+ private target;
8
+ propertyKey: string;
9
+ constructor(target: any, propertyKey: string);
10
+ create(node: Node, config: Config): void;
11
+ protected generate(node: Node, config: Config): T;
12
+ }
13
+ export declare class IdAnnotation extends GeneratedAttributeAnnotation<string> {
14
+ private options;
15
+ constructor(target: any, propertyKey: string, options: IdOptions);
16
+ generate(node: Node, config: Config): string;
17
+ }
18
+ export declare function id(options: IdOptions): import("./interfaces.js").PropertyDecorator<string>;
19
+ //# sourceMappingURL=id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../../src/lib/annotations/id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,4BAA4B,CAAC,CAAC,CAAE,SAAQ,UAAU;IAE3D,OAAO,CAAC,MAAM;IACP,WAAW,EAAE,MAAM;gBADlB,MAAM,EAAE,GAAG,EACZ,WAAW,EAAE,MAAM;IAG5B,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAIxC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC;CAGlD;AAED,qBAAa,YAAa,SAAQ,4BAA4B,CAAC,MAAM,CAAC;IAIlE,OAAO,CAAC,OAAO;gBAFf,MAAM,EAAE,GAAG,EACX,WAAW,EAAE,MAAM,EACX,OAAO,EAAE,SAAS;IAG5B,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;CAM7C;AAED,wBAAgB,EAAE,CAAC,OAAO,EAAE,SAAS,uDAEpC"}
@@ -0,0 +1,32 @@
1
+ import { Annotation } from './annotation.js';
2
+ import { propertyDecorator } from './decoration.js';
3
+ import { generateIdIfMissing } from '../../util.js';
4
+ export class GeneratedAttributeAnnotation extends Annotation {
5
+ constructor(target, propertyKey) {
6
+ super();
7
+ this.target = target;
8
+ this.propertyKey = propertyKey;
9
+ }
10
+ create(node, config) {
11
+ this.target[this.propertyKey] = this.generate(node, config);
12
+ }
13
+ generate(node, config) {
14
+ throw Error('generate method not implemented');
15
+ }
16
+ }
17
+ export class IdAnnotation extends GeneratedAttributeAnnotation {
18
+ constructor(target, propertyKey, options) {
19
+ super(target, propertyKey);
20
+ this.options = options;
21
+ }
22
+ generate(node, config) {
23
+ if (this.options.generate) {
24
+ generateIdIfMissing(node, config);
25
+ }
26
+ return node.attributes.id;
27
+ }
28
+ }
29
+ export function id(options) {
30
+ return propertyDecorator(({ target, propertyKey }) => new IdAnnotation(target, propertyKey, options));
31
+ }
32
+ //# sourceMappingURL=id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../../src/lib/annotations/id.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAMpD,MAAM,OAAO,4BAAgC,SAAQ,UAAU;IAC7D,YACU,MAAW,EACZ,WAAmB;QACxB,KAAK,EAAE,CAAC;QAFF,WAAM,GAAN,MAAM,CAAK;QACZ,gBAAW,GAAX,WAAW,CAAQ;IACf,CAAC;IAEd,MAAM,CAAC,IAAU,EAAE,MAAc;QAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAES,QAAQ,CAAC,IAAU,EAAE,MAAc;QAC3C,MAAM,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACjD,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,4BAAoC;IACpE,YACE,MAAW,EACX,WAAmB,EACX,OAAkB;QACxB,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QADrB,YAAO,GAAP,OAAO,CAAW;IACI,CAAC;IAEjC,QAAQ,CAAC,IAAU,EAAE,MAAc;QACjC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC1B,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,UAAU,EAAE,CAAC,OAAkB;IACnC,OAAO,iBAAiB,CAAS,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AAChH,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { Newable } from '@refrakt-md/types';
2
+ export { Newable };
3
+ export interface Abstract<T> {
4
+ prototype: T;
5
+ }
6
+ export interface Constructor<T> extends Newable<T> {
7
+ name?: string;
8
+ }
9
+ export interface Metadata<T> {
10
+ mutate(fn: (data: T) => T): void;
11
+ read(inherit?: boolean): T;
12
+ }
13
+ export type ClassDecorator<T> = <C extends Newable<T>>(target: C) => C;
14
+ export type PropertyDecorator<T> = <K extends string, C extends Record<K, T>>(target: C, propertyKey: K) => void;
15
+ export type MethodDecorator<T> = <K extends string, C extends Record<K, T>>(target: C, propertyKey: K, descriptor: PropertyDescriptor) => void;
16
+ export type ParameterDecorator = (target: any, propertyKey: string, parameterIndex: number) => void;
17
+ export interface PropertyDecoratorConfig {
18
+ target: any;
19
+ propertyKey: string;
20
+ }
21
+ export interface MethodDecoratorConfig extends PropertyDecoratorConfig {
22
+ descriptor: PropertyDescriptor;
23
+ }
24
+ export interface ParameterDecoratorConfig extends PropertyDecoratorConfig {
25
+ parameterIndex: number;
26
+ }
27
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/lib/annotations/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,SAAS,EAAE,CAAC,CAAC;CACd;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAEjC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;CAC5B;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;AAEvE,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1E,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,KAAK,IAAI,CAAC;AAErC,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACxE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAErE,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;AAEpG,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,GAAG,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAsB,SAAQ,uBAAuB;IACpE,UAAU,EAAE,kBAAkB,CAAC;CAChC;AAED,MAAM,WAAW,wBAAyB,SAAQ,uBAAuB;IACvE,cAAc,EAAE,MAAM,CAAC;CACxB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/lib/annotations/interfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import { ComponentType, Type } from '@refrakt-md/types';
2
+ import Markdoc from '@markdoc/markdoc';
3
+ import type { Tag, RenderableTreeNodes } from '@markdoc/markdoc';
4
+ import { RenderableNodeCursor } from './renderable.js';
5
+ export type PropertyInput<TSchema, T extends ComponentType<TSchema>> = {
6
+ [P in keyof T["properties"]]: RenderableNodeCursor<Tag<T["properties"][P]>> | Tag<T["properties"][P]> | Tag<T["properties"][P]>[];
7
+ };
8
+ export type RefInput<TSchema, T extends ComponentType<TSchema>> = {
9
+ [P in keyof T["refs"]]: RenderableNodeCursor<Tag<T["refs"][P]>> | Tag<T["refs"][P]> | Tag<T["refs"][P]>[];
10
+ };
11
+ export interface TransformResult<TSchema, T extends ComponentType<TSchema>> {
12
+ tag: T["tag"];
13
+ id?: string;
14
+ class?: string;
15
+ property?: string;
16
+ properties: Partial<PropertyInput<TSchema, T>>;
17
+ refs?: Partial<RefInput<TSchema, T>>;
18
+ children: RenderableTreeNodes;
19
+ }
20
+ export declare function createComponentRenderable<TOutput extends ComponentType<object>>(type: Type<TOutput>, result: TransformResult<TOutput["schema"], TOutput>): Markdoc.Tag<TOutput["tag"], {
21
+ id: string | undefined;
22
+ property: string | undefined;
23
+ typeof: string;
24
+ class: string | undefined;
25
+ }>;
26
+ //# sourceMappingURL=component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/lib/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC,SAAS,aAAa,CAAC,OAAO,CAAC,IAAI;KACpE,CAAC,IAAI,MAAM,CAAC,CAAC,YAAY,CAAC,GACzB,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAC7C,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GACvB,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;CAC5B,CAAC;AAEF,MAAM,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,aAAa,CAAC,OAAO,CAAC,IAAI;KAC/D,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,CAAC,GACnB,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACvC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GACjB,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;CACtB,CAAC;AAEF,MAAM,WAAW,eAAe,CAAC,OAAO,EAAE,CAAC,SAAS,aAAa,CAAC,OAAO,CAAC;IACxE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAED,wBAAgB,yBAAyB,CAAC,OAAO,SAAS,aAAa,CAAC,MAAM,CAAC,EAC7E,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EACnB,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;;;;;GA8BpD"}
@@ -0,0 +1,28 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ import { RenderableNodeCursor } from './renderable.js';
3
+ export function createComponentRenderable(type, result) {
4
+ for (const [k, v] of Object.entries(result.properties)) {
5
+ const tags = v instanceof RenderableNodeCursor ? v.nodes : Array.isArray(v) ? v : [v];
6
+ tags.forEach(n => {
7
+ if (Markdoc.Tag.isTag(n)) {
8
+ n.attributes.property = k;
9
+ }
10
+ });
11
+ }
12
+ for (const [k, v] of Object.entries(result.refs || {})) {
13
+ const tags = v instanceof RenderableNodeCursor ? v.nodes : Array.isArray(v) ? v : [v];
14
+ tags.forEach(n => {
15
+ if (Markdoc.Tag.isTag(n)) {
16
+ n.attributes['data-name'] = k;
17
+ }
18
+ });
19
+ }
20
+ const tag = new Markdoc.Tag(result.tag, {
21
+ id: result.id,
22
+ property: result.property,
23
+ typeof: type.name,
24
+ class: result.class
25
+ }, Array.isArray(result.children) ? result.children : [result.children]);
26
+ return tag;
27
+ }
28
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/lib/component.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AA0BvD,MAAM,UAAU,yBAAyB,CACvC,IAAmB,EACnB,MAAmD;IAEnD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,GAAU,CAAC,YAAY,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7F,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzB,CAAC,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,GAAU,CAAC,YAAY,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7F,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzB,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;QACtC,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEzE,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Newable } from '@refrakt-md/types';
2
+ import type { Schema } from '@markdoc/markdoc';
3
+ import { Model } from './model.js';
4
+ export { createComponentRenderable } from './component.js';
5
+ export { attribute } from './annotations/attribute.js';
6
+ export { group, groupList } from './annotations/group.js';
7
+ export { id } from './annotations/id.js';
8
+ export { Model } from './model.js';
9
+ export declare function createSchema<TInput extends Model>(ModelCtr: Newable<TInput>): Schema;
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAmB,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,wBAAgB,YAAY,CAAC,MAAM,SAAS,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAqBpF"}
@@ -0,0 +1,25 @@
1
+ import { AttributeAnnotation } from './annotations/attribute.js';
2
+ export { createComponentRenderable } from './component.js';
3
+ export { attribute } from './annotations/attribute.js';
4
+ export { group, groupList } from './annotations/group.js';
5
+ export { id } from './annotations/id.js';
6
+ export { Model } from './model.js';
7
+ export function createSchema(ModelCtr) {
8
+ const attributes = {};
9
+ for (const attr of AttributeAnnotation.onClass(ModelCtr, true)) {
10
+ attributes[attr.propertyKey] = attr.schema;
11
+ }
12
+ return {
13
+ attributes,
14
+ transform: (node, config) => {
15
+ const model = new ModelCtr(node, config);
16
+ const attr = node.transformAttributes(config);
17
+ for (const k of Object.keys(attr)) {
18
+ model[k] = attr[k];
19
+ }
20
+ model.node.children = model.processChildren(node.children);
21
+ return model.transform();
22
+ }
23
+ };
24
+ }
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,UAAU,YAAY,CAAuB,QAAyB;IAC1E,MAAM,UAAU,GAAoC,EAAE,CAAC;IAEvD,KAAK,MAAM,IAAI,IAAI,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;QAC/D,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7C,CAAC;IAED,OAAO;QACL,UAAU;QACV,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAE1B,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC9C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,KAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE3D,OAAO,KAAK,CAAC,SAAS,EAAE,CAAC;QAC3B,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ import type { Config, Node, NodeType, RenderableTreeNodes, Schema } from '@markdoc/markdoc';
3
+ import { NodeType as RenderableNodeType } from '@refrakt-md/types';
4
+ import { RenderableNodeCursor } from './renderable.js';
5
+ export declare class Model {
6
+ readonly node: Node;
7
+ readonly config: Config;
8
+ constructor(node: Node, config: Config);
9
+ processChildren(nodes: Node[]): Markdoc.Node[];
10
+ transform(): RenderableTreeNodes;
11
+ transformChildren(nodes?: Partial<Record<NodeType, Schema | RenderableNodeType | ((node: Node, config: Config) => RenderableTreeNodes)>>): RenderableNodeCursor;
12
+ }
13
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/lib/model.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAKvD,qBAAa,KAAK;aAEE,IAAI,EAAE,IAAI;aACV,MAAM,EAAE,MAAM;gBADd,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM;IAOhC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE;IAS7B,SAAS,IAAI,mBAAmB;IAIhC,iBAAiB,CACf,KAAK,GAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAM,GACzH,oBAAoB;CAQxB"}
@@ -0,0 +1,33 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ import { RenderableNodeCursor } from './renderable.js';
3
+ import { makeSchema } from './node.js';
4
+ import { GeneratedAttributeAnnotation } from './annotations/id.js';
5
+ import { AbstractGroupAnnotation } from './annotations/group.js';
6
+ export class Model {
7
+ constructor(node, config) {
8
+ this.node = node;
9
+ this.config = config;
10
+ for (const annotation of GeneratedAttributeAnnotation.onClass(this.constructor, true)) {
11
+ annotation.create(node, config);
12
+ }
13
+ }
14
+ processChildren(nodes) {
15
+ let index = 0;
16
+ for (const annotation of AbstractGroupAnnotation.onClass(this.constructor, true)) {
17
+ index = annotation.create(nodes, index, this.config);
18
+ }
19
+ return nodes;
20
+ }
21
+ transform() {
22
+ return this.transformChildren({}).nodes;
23
+ }
24
+ transformChildren(nodes = {}) {
25
+ const extraNodes = {};
26
+ for (const [name, t] of Object.entries(nodes)) {
27
+ extraNodes[name] = makeSchema(t);
28
+ }
29
+ const config = { ...this.config, nodes: { ...this.config.nodes, ...extraNodes } };
30
+ return new RenderableNodeCursor(Markdoc.transform(this.node.children, config));
31
+ }
32
+ }
33
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/lib/model.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAGvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,OAAO,KAAK;IAChB,YACkB,IAAU,EACV,MAAc;QADd,SAAI,GAAJ,IAAI,CAAM;QACV,WAAM,GAAN,MAAM,CAAQ;QAE9B,KAAK,MAAM,UAAU,IAAI,4BAA4B,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC;YACtF,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,eAAe,CAAC,KAAa;QAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,KAAK,MAAM,UAAU,IAAI,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC;YACjF,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;IAC1C,CAAC;IAED,iBAAiB,CACf,QAAwH,EAAE;QAE1H,MAAM,UAAU,GAAQ,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,UAAU,EAAE,EAAE,CAAC;QAClF,OAAO,IAAI,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACjF,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ import type { Config, Node, NodeType, RenderableTreeNodes, Schema } from '@markdoc/markdoc';
2
+ import { NodeType as RenderableNodeType } from '@refrakt-md/types';
3
+ import { RenderableNodeCursor } from './renderable.js';
4
+ import { NodeFilter } from '../interfaces.js';
5
+ export declare const makeSchema: (tr: any) => any;
6
+ export declare class NodeStream {
7
+ private nodes;
8
+ readonly config: Config;
9
+ constructor(nodes: Node[], config: Config);
10
+ push(node: Node): void;
11
+ get length(): number;
12
+ wrapTag(tag: string, attributes: Record<string, any>): NodeStream;
13
+ useNode<T extends NodeType>(node: T, transform: Schema | RenderableNodeType | ((node: Node, config: Config) => RenderableTreeNodes)): NodeStream;
14
+ useTag<T extends string>(tag: T, transform: Schema | RenderableNodeType | ((node: Node, config: Config) => RenderableTreeNodes)): NodeStream;
15
+ transform(): RenderableNodeCursor;
16
+ }
17
+ export declare function isFilterMatching(n: Node, match: NodeFilter): boolean;
18
+ //# sourceMappingURL=node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/lib/node.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE5F,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAqB,MAAM,kBAAkB,CAAC;AAEjE,eAAO,MAAM,UAAU,GAAI,IAAI,GAAG,QAOjC,CAAA;AAED,qBAAa,UAAU;IACT,OAAO,CAAC,KAAK;aAA0B,MAAM,EAAE,MAAM;gBAA7C,KAAK,EAAE,IAAI,EAAE,EAAkB,MAAM,EAAE,MAAM;IAEjE,IAAI,CAAC,IAAI,EAAE,IAAI;IAIf,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAIpD,OAAO,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,mBAAmB,CAAC;IAInI,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,mBAAmB,CAAC;IAI/H,SAAS,IAAI,oBAAoB;CAGlC;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,WAa1D"}
@@ -0,0 +1,49 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ const { Ast } = Markdoc;
3
+ import { RenderableNodeCursor } from './renderable.js';
4
+ export const makeSchema = (tr) => {
5
+ switch (typeof tr) {
6
+ case 'string': return { render: tr };
7
+ case 'object': return tr;
8
+ default:
9
+ return { transform(node, config) { return tr(node, config); } };
10
+ }
11
+ };
12
+ export class NodeStream {
13
+ constructor(nodes, config) {
14
+ this.nodes = nodes;
15
+ this.config = config;
16
+ }
17
+ push(node) {
18
+ this.nodes.push(node);
19
+ }
20
+ get length() {
21
+ return this.nodes.length;
22
+ }
23
+ wrapTag(tag, attributes) {
24
+ return new NodeStream([new Ast.Node('tag', attributes, this.nodes, tag)], this.config);
25
+ }
26
+ useNode(node, transform) {
27
+ return new NodeStream(this.nodes, { ...this.config, nodes: { ...this.config.nodes, [node]: makeSchema(transform) } });
28
+ }
29
+ useTag(tag, transform) {
30
+ return new NodeStream(this.nodes, { ...this.config, tags: { ...this.config.tags, [tag]: makeSchema(transform) } });
31
+ }
32
+ transform() {
33
+ return new RenderableNodeCursor(Markdoc.transform(this.nodes, this.config));
34
+ }
35
+ }
36
+ export function isFilterMatching(n, match) {
37
+ if (typeof match === 'function') {
38
+ return match(n);
39
+ }
40
+ const filter = typeof match === 'string' ? { node: match } : match;
41
+ if (filter.node && n.type !== filter.node) {
42
+ return false;
43
+ }
44
+ if (filter.descendant && !Array.from(n.walk()).some(n => n.type === filter.descendant)) {
45
+ return false;
46
+ }
47
+ return true;
48
+ }
49
+ //# sourceMappingURL=node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/lib/node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ import type { Tag, RenderableTreeNode } from '@markdoc/markdoc';
3
+ import { NodeType } from '@refrakt-md/types';
4
+ export declare class RenderableNodeCursor<T extends RenderableTreeNode = RenderableTreeNode> {
5
+ readonly nodes: T[];
6
+ private offset;
7
+ constructor(nodes: T[]);
8
+ static fromData<TagName extends NodeType>(data: any, tag: TagName): RenderableNodeCursor<Markdoc.Tag<TagName, {}>>;
9
+ wrap<TagName extends string>(tag: TagName, attributes?: Record<string, any>): RenderableNodeCursor<Tag<TagName>>;
10
+ tag<TagName extends NodeType>(tag: TagName): RenderableNodeCursor<Tag<TagName>>;
11
+ tags<TagNames extends NodeType[]>(...tags: TagNames): RenderableNodeCursor<Tag<TagNames[number]>>;
12
+ headings(): RenderableNodeCursor<Markdoc.Tag<"h1" | "h2" | "h3" | "h4" | "h5" | "h6", Record<string, any>>>;
13
+ typeof(type: string): RenderableNodeCursor<T>;
14
+ concat(...other: (RenderableTreeNode | RenderableNodeCursor)[]): RenderableNodeCursor<Markdoc.RenderableTreeNode>;
15
+ flatten(): RenderableNodeCursor<Markdoc.RenderableTreeNode | (T extends readonly (infer InnerArr)[] ? InnerArr : T)>;
16
+ limit(count: number): RenderableNodeCursor<T>;
17
+ slice(start: number, end?: number): RenderableNodeCursor<T>;
18
+ toArray(): T[];
19
+ count(): number;
20
+ next(): T;
21
+ }
22
+ //# sourceMappingURL=renderable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderable.d.ts","sourceRoot":"","sources":["../../src/lib/renderable.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,qBAAa,oBAAoB,CAAC,CAAC,SAAS,kBAAkB,GAAG,kBAAkB;aAGrD,KAAK,EAAE,CAAC,EAAE;IAFtC,OAAO,CAAC,MAAM,CAAK;gBAES,KAAK,EAAE,CAAC,EAAE;IAEtC,MAAM,CAAC,QAAQ,CAAC,OAAO,SAAS,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO;IAIjE,IAAI,CAAC,OAAO,SAAS,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAIpH,GAAG,CAAC,OAAO,SAAS,QAAQ,EAAE,GAAG,EAAE,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAK/E,IAAI,CAAC,QAAQ,SAAS,QAAQ,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAKjG,QAAQ;IAIR,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC;IAI7C,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC,kBAAkB,GAAG,oBAAoB,CAAC,EAAE;IAK9D,OAAO;IAKP,KAAK,CAAC,KAAK,EAAE,MAAM;IAInB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAIjC,OAAO,IAAI,CAAC,EAAE;IAId,KAAK,IAAI,MAAM;IAIf,IAAI,IAAI,CAAC;CAGV"}
@@ -0,0 +1,52 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ import { walkTag } from '../util.js';
3
+ export class RenderableNodeCursor {
4
+ constructor(nodes) {
5
+ this.nodes = nodes;
6
+ this.offset = 0;
7
+ }
8
+ static fromData(data, tag) {
9
+ return new RenderableNodeCursor([new Markdoc.Tag(tag, {}, [data])]);
10
+ }
11
+ wrap(tag, attributes = {}) {
12
+ return new RenderableNodeCursor([new Markdoc.Tag(tag, attributes, this.nodes)]);
13
+ }
14
+ tag(tag) {
15
+ const nodes = this.nodes.filter(n => Markdoc.Tag.isTag(n) && n.name === tag);
16
+ return new RenderableNodeCursor(nodes);
17
+ }
18
+ tags(...tags) {
19
+ const nodes = this.nodes.filter(n => Markdoc.Tag.isTag(n) && tags.includes(n.name));
20
+ return new RenderableNodeCursor(nodes);
21
+ }
22
+ headings() {
23
+ return this.tags('h1', 'h2', 'h3', 'h4', 'h5', 'h6');
24
+ }
25
+ typeof(type) {
26
+ return new RenderableNodeCursor(this.nodes.filter(n => Markdoc.Tag.isTag(n) && n.attributes.typeof === type));
27
+ }
28
+ concat(...other) {
29
+ const nodes = other.map(o => o instanceof RenderableNodeCursor ? o.nodes : o).flat();
30
+ return new RenderableNodeCursor([...this.nodes, ...nodes]);
31
+ }
32
+ flatten() {
33
+ const nodes = this.nodes.map(t => Markdoc.Tag.isTag(t) ? Array.from(walkTag(t)) : t).flat();
34
+ return new RenderableNodeCursor(nodes);
35
+ }
36
+ limit(count) {
37
+ return new RenderableNodeCursor(this.nodes.slice(0, count));
38
+ }
39
+ slice(start, end) {
40
+ return new RenderableNodeCursor(this.nodes.slice(start, end));
41
+ }
42
+ toArray() {
43
+ return this.nodes;
44
+ }
45
+ count() {
46
+ return this.nodes.length;
47
+ }
48
+ next() {
49
+ return this.nodes[this.offset++];
50
+ }
51
+ }
52
+ //# sourceMappingURL=renderable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderable.js","sourceRoot":"","sources":["../../src/lib/renderable.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { AbstractElementWrapper } from '@refract-md/types';
2
+ import { Tag } from '@markdoc/markdoc';
3
+ export declare class TagWrapper extends AbstractElementWrapper<Tag> {
4
+ get children(): AbstractElementWrapper<Tag>[];
5
+ get attributes(): Record<string, any>;
6
+ get text(): string;
7
+ }
8
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,qBAAa,UAAW,SAAQ,sBAAsB,CAAC,GAAG,CAAC;IACzD,IAAI,QAAQ,IAAI,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAE5C;IAED,IAAI,UAAU,wBAEb;IAED,IAAI,IAAI,WAEP;CACF"}