@refrakt-md/storytelling 0.7.2 → 0.8.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.
@@ -8,8 +8,8 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import Markdoc from '@markdoc/markdoc';
11
- const { Ast, Tag } = Markdoc;
12
- import { NodeStream, attribute, group, Model, createComponentRenderable, createSchema, headingsToList } from '@refrakt-md/runes';
11
+ const { Tag } = Markdoc;
12
+ import { attribute, Model, createComponentRenderable, createContentModelSchema, createSchema, asNodes, RenderableNodeCursor } from '@refrakt-md/runes';
13
13
  import { schema } from '../types.js';
14
14
  class RealmSectionModel extends Model {
15
15
  constructor() {
@@ -31,55 +31,54 @@ __decorate([
31
31
  attribute({ type: String, required: true }),
32
32
  __metadata("design:type", String)
33
33
  ], RealmSectionModel.prototype, "name", void 0);
34
- class RealmModel extends Model {
35
- constructor() {
36
- super(...arguments);
37
- this.headingLevel = undefined;
38
- this.name = '';
39
- this.type = 'place';
40
- this.scale = '';
41
- this.tags = '';
42
- this.parent = '';
43
- }
44
- convertHeadings(nodes) {
45
- const level = this.headingLevel ?? nodes.find(n => n.type === 'heading')?.attributes.level;
46
- if (!level)
47
- return nodes;
48
- const converted = headingsToList({ level })(nodes);
49
- const n = converted.length - 1;
50
- if (!converted[n] || converted[n].type !== 'list')
51
- return nodes;
52
- const tags = converted[n].children.map(item => {
53
- const heading = item.children[0];
54
- const name = Array.from(heading.walk())
55
- .filter(n => n.type === 'text')
56
- .map(t => t.attributes.content)
57
- .join(' ');
58
- return new Ast.Node('tag', { name }, item.children.slice(1), 'realm-section');
59
- });
60
- converted.splice(n, 1, ...tags);
61
- return converted;
62
- }
63
- processChildren(nodes) {
64
- return super.processChildren(this.convertHeadings(nodes));
65
- }
66
- transform() {
67
- const header = this.header.transform();
68
- const itemStream = this.itemgroup.transform();
69
- const nameTag = new Tag('span', {}, [this.name]);
70
- const realmTypeMeta = new Tag('meta', { content: this.type });
71
- const scaleMeta = new Tag('meta', { content: this.scale });
72
- const tagsMeta = new Tag('meta', { content: this.tags });
73
- const parentMeta = new Tag('meta', { content: this.parent });
74
- // Extract scene image from header
75
- const scene = header.tag('img').limit(1);
34
+ export const realmSection = createSchema(RealmSectionModel);
35
+ export const realm = createContentModelSchema({
36
+ attributes: {
37
+ headingLevel: { type: Number, required: false },
38
+ name: { type: String, required: true },
39
+ type: { type: String, required: false },
40
+ scale: { type: String, required: false },
41
+ tags: { type: String, required: false },
42
+ parent: { type: String, required: false },
43
+ },
44
+ contentModel: (attrs) => ({
45
+ type: 'sections',
46
+ sectionHeading: attrs.headingLevel ? `heading:${attrs.headingLevel}` : 'heading',
47
+ emitTag: 'realm-section',
48
+ emitAttributes: { name: '$heading' },
49
+ fields: [
50
+ { name: 'scene', match: 'image', optional: true },
51
+ { name: 'header', match: 'heading|paragraph', optional: true, greedy: true },
52
+ { name: 'items', match: 'tag', optional: true, greedy: true },
53
+ ],
54
+ sectionModel: {
55
+ type: 'sequence',
56
+ fields: [{ name: 'body', match: 'any', optional: true, greedy: true }],
57
+ },
58
+ }),
59
+ transform(resolved, attrs, config) {
60
+ // Combine explicit child tags (preamble items) with emitted section tags
61
+ const allItems = [...asNodes(resolved.items), ...asNodes(resolved.sections)];
62
+ const sectionNodes = new RenderableNodeCursor(Markdoc.transform(allItems, config));
63
+ const nameTag = new Tag('span', {}, [attrs.name ?? '']);
64
+ const realmTypeMeta = new Tag('meta', { content: attrs.type ?? 'place' });
65
+ const scaleMeta = new Tag('meta', { content: attrs.scale ?? '' });
66
+ const tagsMeta = new Tag('meta', { content: attrs.tags ?? '' });
67
+ const parentMeta = new Tag('meta', { content: attrs.parent ?? '' });
68
+ // Extract scene image from preamble
69
+ const sceneNodes = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.scene), config));
70
+ const scene = sceneNodes.tag('img').limit(1);
76
71
  const hasScene = scene.count() > 0;
77
72
  const sceneDiv = hasScene ? scene.wrap('div') : undefined;
78
- const sections = itemStream.tag('div').typeof('RealmSection');
73
+ const sections = sectionNodes.tag('div').typeof('RealmSection');
79
74
  const hasSections = sections.count() > 0;
80
75
  const children = [nameTag, realmTypeMeta, scaleMeta, tagsMeta, parentMeta];
81
76
  if (sceneDiv)
82
77
  children.push(sceneDiv.next());
78
+ const schemaMap = {
79
+ name: nameTag,
80
+ additionalType: realmTypeMeta,
81
+ };
83
82
  if (hasSections) {
84
83
  const sectionsContainer = sections.wrap('div');
85
84
  children.push(sectionsContainer.next());
@@ -98,11 +97,12 @@ class RealmModel extends Model {
98
97
  ...(sceneDiv ? { scene: sceneDiv } : {}),
99
98
  sections: sectionsContainer,
100
99
  },
100
+ schema: schemaMap,
101
101
  children,
102
102
  });
103
103
  }
104
104
  else {
105
- const body = itemStream.wrap('div');
105
+ const body = sectionNodes.wrap('div');
106
106
  children.push(body.next());
107
107
  return createComponentRenderable(schema.Realm, {
108
108
  tag: 'article',
@@ -118,43 +118,10 @@ class RealmModel extends Model {
118
118
  ...(sceneDiv ? { scene: sceneDiv } : {}),
119
119
  body,
120
120
  },
121
+ schema: schemaMap,
121
122
  children,
122
123
  });
123
124
  }
124
- }
125
- }
126
- __decorate([
127
- attribute({ type: Number, required: false }),
128
- __metadata("design:type", Object)
129
- ], RealmModel.prototype, "headingLevel", void 0);
130
- __decorate([
131
- attribute({ type: String, required: true }),
132
- __metadata("design:type", String)
133
- ], RealmModel.prototype, "name", void 0);
134
- __decorate([
135
- attribute({ type: String, required: false }),
136
- __metadata("design:type", String)
137
- ], RealmModel.prototype, "type", void 0);
138
- __decorate([
139
- attribute({ type: String, required: false }),
140
- __metadata("design:type", String)
141
- ], RealmModel.prototype, "scale", void 0);
142
- __decorate([
143
- attribute({ type: String, required: false }),
144
- __metadata("design:type", String)
145
- ], RealmModel.prototype, "tags", void 0);
146
- __decorate([
147
- attribute({ type: String, required: false }),
148
- __metadata("design:type", String)
149
- ], RealmModel.prototype, "parent", void 0);
150
- __decorate([
151
- group({ include: ['heading', 'paragraph', 'image'] }),
152
- __metadata("design:type", NodeStream)
153
- ], RealmModel.prototype, "header", void 0);
154
- __decorate([
155
- group({ include: ['tag'] }),
156
- __metadata("design:type", NodeStream)
157
- ], RealmModel.prototype, "itemgroup", void 0);
158
- export const realmSection = createSchema(RealmSectionModel);
159
- export const realm = createSchema(RealmModel);
125
+ },
126
+ });
160
127
  //# sourceMappingURL=realm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"realm.js","sourceRoot":"","sources":["../../src/tags/realm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"realm.js","sourceRoot":"","sources":["../../src/tags/realm.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"storyboard.d.ts","sourceRoot":"","sources":["../../src/tags/storyboard.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AA2FvC,eAAO,MAAM,eAAe,gBAAqC,CAAC;AAClE,eAAO,MAAM,UAAU,gBAAgC,CAAC"}
1
+ {"version":3,"file":"storyboard.d.ts","sourceRoot":"","sources":["../../src/tags/storyboard.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AA6DvC,eAAO,MAAM,eAAe,gBAAqC,CAAC;AAElE,eAAO,MAAM,UAAU,gBAkCrB,CAAC"}
@@ -1,17 +1,9 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
1
  import Markdoc from '@markdoc/markdoc';
11
2
  const { Ast, Tag } = Markdoc;
12
- import { NodeStream, attribute, group, Model, createComponentRenderable, createSchema } from '@refrakt-md/runes';
3
+ import { Model, createComponentRenderable, createContentModelSchema, createSchema, asNodes } from '@refrakt-md/runes';
4
+ import { RenderableNodeCursor } from '@refrakt-md/runes';
13
5
  import { schema } from '../types.js';
14
- const styleType = ['comic', 'clean', 'polaroid'];
6
+ const variantType = ['comic', 'clean', 'polaroid'];
15
7
  class StoryboardPanelModel extends Model {
16
8
  transform() {
17
9
  const children = this.transformChildren();
@@ -31,70 +23,63 @@ class StoryboardPanelModel extends Model {
31
23
  });
32
24
  }
33
25
  }
34
- class StoryboardModel extends Model {
35
- constructor() {
36
- super(...arguments);
37
- this.columns = 3;
38
- this.style = 'clean';
39
- }
40
- processChildren(nodes) {
41
- // Group nodes into panels: each image starts a new panel
42
- const converted = [];
43
- let currentPanelChildren = [];
44
- const flushPanel = () => {
45
- if (currentPanelChildren.length > 0) {
46
- converted.push(new Ast.Node('tag', {}, currentPanelChildren, 'storyboard-panel'));
47
- currentPanelChildren = [];
48
- }
49
- };
50
- for (const node of nodes) {
51
- if (node.type === 'image' || (node.type === 'paragraph' && Array.from(node.walk()).some(n => n.type === 'image'))) {
52
- // Image starts a new panel
53
- flushPanel();
54
- currentPanelChildren.push(node);
55
- }
56
- else if (currentPanelChildren.length > 0) {
57
- // Non-image after an image: add to current panel as caption
58
- currentPanelChildren.push(node);
59
- }
60
- else {
61
- // Content before first image: start a panel anyway
62
- currentPanelChildren.push(node);
63
- }
26
+ // Group nodes into panels: each image starts a new panel
27
+ function convertStoryboardChildren(nodes) {
28
+ const converted = [];
29
+ let currentPanelChildren = [];
30
+ const flushPanel = () => {
31
+ if (currentPanelChildren.length > 0) {
32
+ converted.push(new Ast.Node('tag', {}, currentPanelChildren, 'storyboard-panel'));
33
+ currentPanelChildren = [];
34
+ }
35
+ };
36
+ for (const node of nodes) {
37
+ if (node.type === 'image' || (node.type === 'paragraph' && Array.from(node.walk()).some(n => n.type === 'image'))) {
38
+ // Image starts a new panel
39
+ flushPanel();
40
+ currentPanelChildren.push(node);
41
+ }
42
+ else if (currentPanelChildren.length > 0) {
43
+ // Non-image after an image: add to current panel as caption
44
+ currentPanelChildren.push(node);
45
+ }
46
+ else {
47
+ // Content before first image: start a panel anyway
48
+ currentPanelChildren.push(node);
64
49
  }
65
- flushPanel();
66
- return super.processChildren(converted);
67
50
  }
68
- transform() {
69
- const body = this.body.transform();
70
- const styleMeta = new Tag('meta', { content: this.style });
71
- const columnsMeta = new Tag('meta', { content: String(this.columns) });
51
+ flushPanel();
52
+ return converted;
53
+ }
54
+ export const storyboardPanel = createSchema(StoryboardPanelModel);
55
+ export const storyboard = createContentModelSchema({
56
+ attributes: {
57
+ columns: { type: Number, required: false },
58
+ variant: { type: String, required: false, matches: variantType.slice() },
59
+ },
60
+ contentModel: {
61
+ type: 'custom',
62
+ processChildren: convertStoryboardChildren,
63
+ description: 'Image-triggered panel accumulator. Each image starts a new panel; '
64
+ + 'subsequent non-image content becomes the panel caption.',
65
+ },
66
+ transform(resolved, attrs, config) {
67
+ const allChildren = asNodes(resolved.children);
68
+ const body = new RenderableNodeCursor(Markdoc.transform(allChildren, config));
69
+ const variantMeta = new Tag('meta', { content: attrs.variant ?? 'clean' });
70
+ const columnsMeta = new Tag('meta', { content: String(attrs.columns ?? 3) });
72
71
  const panels = body.tag('div').typeof('StoryboardPanel');
73
72
  const panelsContainer = panels.wrap('div');
74
73
  return createComponentRenderable(schema.Storyboard, {
75
74
  tag: 'div',
76
75
  properties: {
77
76
  panel: panels,
78
- style: styleMeta,
77
+ variant: variantMeta,
79
78
  columns: columnsMeta,
80
79
  },
81
80
  refs: { panels: panelsContainer },
82
- children: [styleMeta, columnsMeta, panelsContainer.next()],
81
+ children: [variantMeta, columnsMeta, panelsContainer.next()],
83
82
  });
84
- }
85
- }
86
- __decorate([
87
- attribute({ type: Number, required: false }),
88
- __metadata("design:type", Number)
89
- ], StoryboardModel.prototype, "columns", void 0);
90
- __decorate([
91
- attribute({ type: String, required: false, matches: styleType.slice() }),
92
- __metadata("design:type", Object)
93
- ], StoryboardModel.prototype, "style", void 0);
94
- __decorate([
95
- group({ include: ['tag'] }),
96
- __metadata("design:type", NodeStream)
97
- ], StoryboardModel.prototype, "body", void 0);
98
- export const storyboardPanel = createSchema(StoryboardPanelModel);
99
- export const storyboard = createSchema(StoryboardModel);
83
+ },
84
+ });
100
85
  //# sourceMappingURL=storyboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storyboard.js","sourceRoot":"","sources":["../../src/tags/storyboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storyboard.js","sourceRoot":"","sources":["../../src/tags/storyboard.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -8,14 +8,14 @@ import { Plot, Beat } from './schema/plot.js';
8
8
  import { Bond } from './schema/bond.js';
9
9
  import { Storyboard, StoryboardPanel } from './schema/storyboard.js';
10
10
  export const schema = {
11
- Character: useSchema(Character).defineType('Character'),
11
+ Character: useSchema(Character).defineType('Character', {}, 'Person'),
12
12
  CharacterSection: useSchema(StorySection).defineType('CharacterSection'),
13
- Realm: useSchema(Realm).defineType('Realm'),
13
+ Realm: useSchema(Realm).defineType('Realm', {}, 'Place'),
14
14
  RealmSection: useSchema(StorySection).defineType('RealmSection'),
15
- Faction: useSchema(Faction).defineType('Faction'),
15
+ Faction: useSchema(Faction).defineType('Faction', {}, 'Organization'),
16
16
  FactionSection: useSchema(StorySection).defineType('FactionSection'),
17
- Lore: useSchema(Lore).defineType('Lore'),
18
- Plot: useSchema(Plot).defineType('Plot'),
17
+ Lore: useSchema(Lore).defineType('Lore', {}, 'Article'),
18
+ Plot: useSchema(Plot).defineType('Plot', {}, 'CreativeWork'),
19
19
  Beat: useSchema(Beat).defineType('Beat'),
20
20
  Bond: useSchema(Bond).defineType('Bond'),
21
21
  Storyboard: useSchema(Storyboard).defineType('Storyboard'),
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAC,UAAU,EAAE,eAAe,EAAC,MAAM,wBAAwB,CAAC;AAEnE,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC;IACvD,gBAAgB,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC;IACxE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;IAC3C,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC;IAChE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;IACjD,cAAc,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC;IACpE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IACxC,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC;IAC1D,eAAe,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC;CAC1E,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAC,UAAU,EAAE,eAAe,EAAC,MAAM,wBAAwB,CAAC;AAEnE,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,EAAE,QAAQ,CAAC;IACrE,gBAAgB,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC;IACxE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC;IACxD,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC;IAChE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,EAAE,cAAc,CAAC;IACrE,cAAc,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC;IACpE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,SAAS,CAAC;IACvD,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,cAAc,CAAC;IAC5D,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IACxC,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC;IAC1D,eAAe,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC;CAC1E,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@refrakt-md/storytelling",
3
3
  "description": "Storytelling runes for refrakt.md — characters, realms, factions, plots, and more",
4
- "version": "0.7.2",
4
+ "version": "0.8.0",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -21,9 +21,9 @@
21
21
  "build": "tsc"
22
22
  },
23
23
  "dependencies": {
24
- "@refrakt-md/types": "0.7.2",
25
- "@refrakt-md/transform": "0.7.2",
26
- "@refrakt-md/runes": "0.7.2",
24
+ "@refrakt-md/types": "0.8.0",
25
+ "@refrakt-md/transform": "0.8.0",
26
+ "@refrakt-md/runes": "0.8.0",
27
27
  "@markdoc/markdoc": "0.4.0",
28
28
  "reflect-metadata": "^0.2.0"
29
29
  }