@art-md/constructs 0.0.4 → 0.0.6

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 (133) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/README.md +1 -1
  3. package/dist/factories/constructs/Document/factory/createDocument.d.ts +3 -0
  4. package/dist/factories/constructs/Document/factory/types.d.ts +4 -0
  5. package/dist/factories/constructs/Document/index.d.ts +2 -0
  6. package/dist/factories/constructs/FieldBlock/factory/createFieldBlock.d.ts +3 -0
  7. package/dist/factories/constructs/FieldBlock/factory/types.d.ts +7 -0
  8. package/dist/factories/constructs/FieldBlock/index.d.ts +3 -0
  9. package/dist/factories/constructs/FieldBlock/types.d.ts +9 -0
  10. package/dist/factories/constructs/FieldInline/factory/createFieldInline.d.ts +3 -0
  11. package/dist/factories/constructs/FieldInline/factory/types.d.ts +7 -0
  12. package/dist/factories/constructs/FieldInline/index.d.ts +3 -0
  13. package/dist/factories/constructs/FieldInline/types.d.ts +9 -0
  14. package/dist/factories/constructs/NaturalBlock/factory/createNaturalBlock.d.ts +3 -0
  15. package/dist/factories/constructs/NaturalBlock/factory/types.d.ts +11 -0
  16. package/dist/factories/constructs/NaturalBlock/index.d.ts +3 -0
  17. package/dist/factories/constructs/NaturalBlock/types.d.ts +12 -0
  18. package/dist/factories/constructs/NaturalExpression/factory/createNaturalExpression.d.ts +3 -0
  19. package/dist/factories/constructs/NaturalExpression/factory/types.d.ts +7 -0
  20. package/dist/factories/constructs/NaturalExpression/index.d.ts +3 -0
  21. package/dist/factories/constructs/NaturalExpression/types.d.ts +8 -0
  22. package/dist/factories/constructs/SectionBlock/factory/createSectionBlock.d.ts +3 -0
  23. package/dist/factories/constructs/SectionBlock/factory/types.d.ts +8 -0
  24. package/dist/factories/constructs/SectionBlock/index.d.ts +3 -0
  25. package/dist/factories/constructs/SectionBlock/types.d.ts +9 -0
  26. package/dist/factories/constructs/Tag/factory/createTag.d.ts +3 -0
  27. package/dist/factories/constructs/Tag/factory/types.d.ts +3 -0
  28. package/dist/factories/constructs/Tag/index.d.ts +3 -0
  29. package/dist/factories/constructs/Tag/types.d.ts +5 -0
  30. package/dist/factories/index.d.ts +8 -0
  31. package/dist/factories/public.d.ts +36 -0
  32. package/dist/factories/types.d.ts +31 -0
  33. package/dist/index.d.ts +3 -0
  34. package/dist/index.mjs +627 -0
  35. package/dist/index.mjs.map +7 -0
  36. package/dist/parser/constructs/FieldBlock/createFieldBlockParser.d.ts +2 -0
  37. package/dist/parser/constructs/FieldBlock/index.d.ts +1 -0
  38. package/dist/parser/constructs/FieldBlock/private/helpers/createFieldBlockFromNode.d.ts +4 -0
  39. package/dist/parser/constructs/FieldBlock/private/helpers/onBeforeConstruct.d.ts +2 -0
  40. package/dist/parser/constructs/FieldBlock/private/index.d.ts +2 -0
  41. package/dist/parser/constructs/FieldBlock/private/integrator/createFieldBlockIntegrator.d.ts +2 -0
  42. package/dist/parser/constructs/FieldBlock/private/processor/createFieldBlockProcessor.d.ts +2 -0
  43. package/dist/parser/constructs/FieldInline/createFieldInlineParser.d.ts +2 -0
  44. package/dist/parser/constructs/FieldInline/index.d.ts +1 -0
  45. package/dist/parser/constructs/FieldInline/private/helpers/createFieldInlineFromNode.d.ts +4 -0
  46. package/dist/parser/constructs/FieldInline/private/helpers/trimFieldEdges.d.ts +2 -0
  47. package/dist/parser/constructs/FieldInline/private/index.d.ts +1 -0
  48. package/dist/parser/constructs/FieldInline/private/processor/createFieldInlineProcessor.d.ts +2 -0
  49. package/dist/parser/constructs/NaturalBlock/createNaturalBlockParser.d.ts +2 -0
  50. package/dist/parser/constructs/NaturalBlock/index.d.ts +1 -0
  51. package/dist/parser/constructs/NaturalBlock/private/helpers/createNaturalBlockFromNode.d.ts +4 -0
  52. package/dist/parser/constructs/NaturalBlock/private/index.d.ts +1 -0
  53. package/dist/parser/constructs/NaturalBlock/private/processor/createNaturalBlockProcessor.d.ts +2 -0
  54. package/dist/parser/constructs/SectionBlock/createSectionBlockParser.d.ts +2 -0
  55. package/dist/parser/constructs/SectionBlock/index.d.ts +1 -0
  56. package/dist/parser/constructs/SectionBlock/private/helpers/createSectionBlockFromNode.d.ts +4 -0
  57. package/dist/parser/constructs/SectionBlock/private/helpers/findParentSection.d.ts +3 -0
  58. package/dist/parser/constructs/SectionBlock/private/index.d.ts +2 -0
  59. package/dist/parser/constructs/SectionBlock/private/integrator/createSectionBlockIntegrator.d.ts +2 -0
  60. package/dist/parser/constructs/SectionBlock/private/processor/createSectionBlockProcessor.d.ts +2 -0
  61. package/dist/parser/document/createArtDocumentFromNode.d.ts +3 -0
  62. package/dist/parser/document/index.d.ts +1 -0
  63. package/dist/parser/fields/constants.d.ts +1 -0
  64. package/dist/parser/fields/index.d.ts +3 -0
  65. package/dist/parser/fields/isFieldStrong.d.ts +3 -0
  66. package/dist/parser/fields/stripStrong.d.ts +3 -0
  67. package/dist/parser/index.d.ts +6 -0
  68. package/dist/parser/mdast/index.d.ts +1 -0
  69. package/dist/parser/mdast/rawSlice.d.ts +2 -0
  70. package/dist/parser/naturalExpression/createNaturalExpressionFromNode.d.ts +3 -0
  71. package/dist/parser/naturalExpression/index.d.ts +1 -0
  72. package/dist/parser/public.d.ts +5 -0
  73. package/dist/parser/tags/extractTags.d.ts +5 -0
  74. package/dist/parser/tags/index.d.ts +1 -0
  75. package/dist/parser/types.d.ts +14 -0
  76. package/dist/serializer/constructs/Document/createDocumentToMdast.d.ts +2 -0
  77. package/dist/serializer/constructs/Document/index.d.ts +1 -0
  78. package/dist/serializer/constructs/FieldBlock/createFieldBlockToMdast.d.ts +2 -0
  79. package/dist/serializer/constructs/FieldBlock/index.d.ts +1 -0
  80. package/dist/serializer/constructs/FieldInline/createFieldInlineToMdast.d.ts +2 -0
  81. package/dist/serializer/constructs/FieldInline/index.d.ts +1 -0
  82. package/dist/serializer/constructs/NaturalBlock/createNaturalBlockToMdast.d.ts +2 -0
  83. package/dist/serializer/constructs/NaturalBlock/index.d.ts +1 -0
  84. package/dist/serializer/constructs/NaturalExpression/createNaturalExpressionToMdast.d.ts +2 -0
  85. package/dist/serializer/constructs/NaturalExpression/index.d.ts +1 -0
  86. package/dist/serializer/constructs/SectionBlock/createSectionBlockToMdast.d.ts +2 -0
  87. package/dist/serializer/constructs/SectionBlock/index.d.ts +1 -0
  88. package/dist/serializer/index.d.ts +7 -0
  89. package/dist/serializer/public.d.ts +3 -0
  90. package/dist/serializer/tags/index.d.ts +2 -0
  91. package/dist/serializer/tags/tagToMdast.d.ts +3 -0
  92. package/dist/serializer/tags/tagsToMdast.d.ts +3 -0
  93. package/dist/serializer/types.d.ts +7 -0
  94. package/dist/test/helpers/constructs/FieldBlock/createFieldBlockFromNodeMock.d.ts +7 -0
  95. package/dist/test/helpers/constructs/FieldBlock/createFieldBlockMock.d.ts +7 -0
  96. package/dist/test/helpers/constructs/FieldBlock/makeFieldBlockFixture.d.ts +9 -0
  97. package/dist/test/helpers/constructs/FieldBlock/makeFieldBlockMock.d.ts +9 -0
  98. package/dist/test/helpers/constructs/FieldInline/createFieldInlineFromNodeMock.d.ts +7 -0
  99. package/dist/test/helpers/constructs/FieldInline/createFieldInlineMock.d.ts +7 -0
  100. package/dist/test/helpers/constructs/FieldInline/makeFieldInlineFixture.d.ts +9 -0
  101. package/dist/test/helpers/constructs/FieldInline/makeFieldInlineMock.d.ts +9 -0
  102. package/dist/test/helpers/constructs/NaturalBlock/createNaturalBlockFromNodeMock.d.ts +7 -0
  103. package/dist/test/helpers/constructs/NaturalBlock/createNaturalBlockMock.d.ts +7 -0
  104. package/dist/test/helpers/constructs/NaturalBlock/makeNaturalBlockFixture.d.ts +12 -0
  105. package/dist/test/helpers/constructs/NaturalBlock/makeNaturalBlockMock.d.ts +12 -0
  106. package/dist/test/helpers/constructs/NaturalExpression/makeNaturalExpressionFixture.d.ts +10 -0
  107. package/dist/test/helpers/constructs/NaturalExpression/makeNaturalExpressionMock.d.ts +10 -0
  108. package/dist/test/helpers/constructs/SectionBlock/createSectionBlockFromNodeMock.d.ts +7 -0
  109. package/dist/test/helpers/constructs/SectionBlock/createSectionBlockMock.d.ts +7 -0
  110. package/dist/test/helpers/constructs/SectionBlock/makeSectionBlockFixture.d.ts +10 -0
  111. package/dist/test/helpers/constructs/Tag/makeTagFixture.d.ts +7 -0
  112. package/dist/test/helpers/constructs/index.d.ts +14 -0
  113. package/dist/test/helpers/index.d.ts +2 -0
  114. package/dist/test/helpers/parsers/fields/stripStrongMock.d.ts +7 -0
  115. package/dist/test/helpers/parsers/index.d.ts +5 -0
  116. package/dist/test/helpers/parsers/mdast/rawSliceMock.d.ts +7 -0
  117. package/dist/test/helpers/parsers/natural-expression/createNaturalExpressionFromNodeMock.d.ts +7 -0
  118. package/dist/test/helpers/parsers/tags/extractTagsMock.d.ts +7 -0
  119. package/dist/test/helpers/parsers/tags/tagToMdastMock.d.ts +7 -0
  120. package/package.json +34 -15
  121. package/src/parser/constructs/FieldBlock/private/helpers/createFieldBlockFromNode.test.ts +1 -1
  122. package/src/parser/constructs/FieldBlock/private/integrator/createFieldBlockIntegrator.test.ts +1 -1
  123. package/src/parser/constructs/FieldBlock/private/processor/createFieldBlockProcessor.test.ts +1 -1
  124. package/src/parser/constructs/FieldInline/private/helpers/createFieldInlineFromNode.test.ts +1 -1
  125. package/src/parser/constructs/FieldInline/private/processor/createFieldInlineProcessor.test.ts +1 -1
  126. package/src/parser/constructs/NaturalBlock/private/helpers/createNaturalBlockFromNode.test.ts +1 -1
  127. package/src/parser/constructs/NaturalBlock/private/processor/createNaturalBlockProcessor.test.ts +1 -1
  128. package/src/parser/constructs/SectionBlock/private/helpers/createSectionBlockFromNode.test.ts +1 -1
  129. package/src/parser/constructs/SectionBlock/private/helpers/findParentSection.test.ts +1 -1
  130. package/src/parser/constructs/SectionBlock/private/integrator/createSectionBlockIntegrator.test.ts +1 -1
  131. package/src/parser/constructs/SectionBlock/private/processor/createSectionBlockProcessor.test.ts +1 -1
  132. package/src/parser/document/createArtDocumentFromNode.test.ts +1 -1
  133. package/src/parser/naturalExpression/createNaturalExpressionFromNode.test.ts +1 -6
package/CHANGELOG.md ADDED
@@ -0,0 +1,63 @@
1
+ # CHANGELOG
2
+
3
+ ## 0.0.6
4
+
5
+ ### Changed
6
+
7
+ - **Update dependencies** - `mdast-util-from-markdown@2.1.0`
8
+
9
+ ## 0.0.5
10
+
11
+ ### Fixed
12
+
13
+ - **Package exports** — now target the dist build rather than the TypeScript source.
14
+
15
+ ## 0.0.4
16
+
17
+ ### Removed
18
+
19
+ - **`kind` from `SectionBlock` (breaking):** the `kind?` member is gone from the type, the factory data, and `createSectionBlock`. A heading's text is never split: `SectionBlock.name` is the whole heading text. Consumers that interpret headings as `Kind: Name` parse the text themselves.
20
+
21
+ ### Docs
22
+
23
+ - **Round-trip fidelity:** full-text names serialise verbatim — a heading such as `## Module: Greeting` no longer degrades to `## Greeting` on write. Claim restated as structural fidelity, not byte-identity: extraneous whitespace, CRLF, and heading indentation are normalised per CommonMark; exactly one final newline.
24
+
25
+ ## 0.0.3
26
+
27
+ ### Fixed
28
+
29
+ - **Package entry point:** `main` declares `./src/index.ts`, but `files` published only `dist/`, publish `src/` instead.
30
+
31
+ ## 0.0.2
32
+
33
+ ### Documented
34
+
35
+ - Architecture knowledge and README updated.
36
+
37
+ ## 0.0.1
38
+
39
+ ### Added
40
+
41
+ - **Construct registry:** open block and inline construct maps with extension via declaration merging, and the `Construct` union with `BlockContent`/`InlineContent` subsets.
42
+ - **Construct factories:** factory functions building each construct record from plain factory-data.
43
+ - **Construct Parser contract:** `ConstructProcessor`, `ConstructIntegrator`, `ConstructParser`, and `ConstructParserFactory` hooks that drive construct-agnostic detection.
44
+ - **Construct Parser registry:** ordered `CONSTRUCT_PARSERS` factory list, `DEFAULT_CONSTRUCT_PARSER` fallback, and document root creation.
45
+ - **Construct Serializer contract:** `ConstructSerializer` and `ConstructSerializerFactory`, registering adapters by construct name.
46
+ - **Construct Serializer registry:** `CONSTRUCT_SERIALIZERS` factory list for markdown restoration.
47
+ - **Document:** document root construct produced from the mdast tree.
48
+ - **Construct: Tag:** trailing `(#tag)` metadata construct shared across tag-supporting constructs.
49
+ - **Construct: NaturalExpression:** pass-through expression retaining mdast type, attributes, value, and recursive children.
50
+ - **Construct: NaturalBlock:** fallback construct capturing unclaimed block content as natural markdown.
51
+ - **Construct: FieldInline:** inline field with a `**Name:**` label, phrasing children converted to expressions, and trailing `(#tag)` tags.
52
+ - **Construct: FieldBlock:** block field with a `**Name:**` label that captures following blocks as children until a boundary construct arrives.
53
+ - **Construct: SectionBlock:** heading-based nesting construct with depth hierarchy, kind detection, and `(#tag)` tags.
54
+ - **Shared parsing helpers:** field-label detection, raw source slicing, trailing `(#tag)` extraction, and natural expression conversion.
55
+ - **Shared serialization helpers:** `(#tag)` restoration in the correct position.
56
+
57
+ ### Tested
58
+
59
+ - Exhaustive unit coverage for all construct factories, parser hooks, serializers, and shared helpers.
60
+
61
+ ### Documented
62
+
63
+ - Architecture references for the API, factories, parsers, and serializers.
package/README.md CHANGED
@@ -12,7 +12,7 @@ Make sure you read the [Art MD README](../../README.md) first.
12
12
 
13
13
  ### Build Targets
14
14
 
15
- This library is packaged for use in bundlers such as Vite and Astro. The main entry point is the TypeScript source code.
15
+ This package is meant for use in Node.js environments. The entry point is built using `esbuild` pre-configured by [Workspace Tooling](https://github.com/noodlestan/workspace-tooling).
16
16
 
17
17
  ### Scripts
18
18
 
@@ -0,0 +1,3 @@
1
+ import { type ArtDocument } from '@art-md/primitives';
2
+ import type { DocumentFactoryData } from './types.js';
3
+ export declare function createDocument(data: DocumentFactoryData): ArtDocument;
@@ -0,0 +1,4 @@
1
+ import type { BlockContent } from '../../../types.js';
2
+ export type DocumentFactoryData = {
3
+ children?: BlockContent[];
4
+ };
@@ -0,0 +1,2 @@
1
+ export { createDocument } from './factory/createDocument.js';
2
+ export type { DocumentFactoryData } from './factory/types.js';
@@ -0,0 +1,3 @@
1
+ import type { FieldBlock } from '../types.js';
2
+ import type { FieldBlockFactoryData } from './types.js';
3
+ export declare function createFieldBlock(data: FieldBlockFactoryData): FieldBlock;
@@ -0,0 +1,7 @@
1
+ import type { BlockContent } from '../../../types.js';
2
+ import type { Tag } from '../../Tag/index.js';
3
+ export type FieldBlockFactoryData = {
4
+ name: string;
5
+ children?: BlockContent[];
6
+ tags?: Tag[];
7
+ };
@@ -0,0 +1,3 @@
1
+ export { createFieldBlock } from './factory/createFieldBlock.js';
2
+ export type { FieldBlock } from './types.js';
3
+ export type { FieldBlockFactoryData } from './factory/types.js';
@@ -0,0 +1,9 @@
1
+ import type { ContainerConstructBase } from '@art-md/primitives';
2
+ import type { BlockContent } from '../../types.js';
3
+ import type { Tag } from '../Tag/index.js';
4
+ export type FieldBlock = ContainerConstructBase & {
5
+ construct: 'FieldBlock';
6
+ name: string;
7
+ children: BlockContent[];
8
+ tags?: Tag[];
9
+ };
@@ -0,0 +1,3 @@
1
+ import type { FieldInline } from '../types.js';
2
+ import type { FieldInlineFactoryData } from './types.js';
3
+ export declare function createFieldInline(data: FieldInlineFactoryData): FieldInline;
@@ -0,0 +1,7 @@
1
+ import type { NaturalExpression } from '../../NaturalExpression/index.js';
2
+ import type { Tag } from '../../Tag/index.js';
3
+ export type FieldInlineFactoryData = {
4
+ name: string;
5
+ children?: NaturalExpression[];
6
+ tags?: Tag[];
7
+ };
@@ -0,0 +1,3 @@
1
+ export { createFieldInline } from './factory/createFieldInline.js';
2
+ export type { FieldInline } from './types.js';
3
+ export type { FieldInlineFactoryData } from './factory/types.js';
@@ -0,0 +1,9 @@
1
+ import type { ContainerConstructBase } from '@art-md/primitives';
2
+ import type { NaturalExpression } from '../NaturalExpression/index.js';
3
+ import type { Tag } from '../Tag/index.js';
4
+ export type FieldInline = ContainerConstructBase & {
5
+ construct: 'FieldInline';
6
+ name: string;
7
+ children: NaturalExpression[];
8
+ tags?: Tag[];
9
+ };
@@ -0,0 +1,3 @@
1
+ import type { NaturalBlock } from '../types.js';
2
+ import type { NaturalBlockFactoryData } from './types.js';
3
+ export declare function createNaturalBlock(data: NaturalBlockFactoryData): NaturalBlock;
@@ -0,0 +1,11 @@
1
+ import type { ContainerConstructBase } from '@art-md/primitives';
2
+ import type { Tag } from '../../Tag/index.js';
3
+ export type NaturalBlockFactoryData = {
4
+ value: string;
5
+ children: ContainerConstructBase[];
6
+ type?: string;
7
+ lang?: string | null;
8
+ meta?: string | null;
9
+ tags?: Tag[];
10
+ attributes?: Record<string, unknown>;
11
+ };
@@ -0,0 +1,3 @@
1
+ export { createNaturalBlock } from './factory/createNaturalBlock.js';
2
+ export type { NaturalBlock } from './types.js';
3
+ export type { NaturalBlockFactoryData } from './factory/types.js';
@@ -0,0 +1,12 @@
1
+ import type { ContainerConstructBase } from '@art-md/primitives';
2
+ import type { Tag } from '../Tag/index.js';
3
+ export type NaturalBlock = ContainerConstructBase & {
4
+ construct: 'NaturalBlock';
5
+ value: string;
6
+ children: ContainerConstructBase[];
7
+ type?: string;
8
+ lang?: string | null;
9
+ meta?: string | null;
10
+ tags?: Tag[];
11
+ [key: string]: unknown;
12
+ };
@@ -0,0 +1,3 @@
1
+ import type { NaturalExpression } from '../types.js';
2
+ import type { NaturalExpressionFactoryData } from './types.js';
3
+ export declare function createNaturalExpression(data: NaturalExpressionFactoryData): NaturalExpression;
@@ -0,0 +1,7 @@
1
+ import type { NaturalExpression } from '../types.js';
2
+ export type NaturalExpressionFactoryData = {
3
+ type: string;
4
+ value?: string;
5
+ attributes?: Record<string, unknown>;
6
+ children?: NaturalExpression[];
7
+ };
@@ -0,0 +1,3 @@
1
+ export { createNaturalExpression } from './factory/createNaturalExpression.js';
2
+ export type { NaturalExpression } from './types.js';
3
+ export type { NaturalExpressionFactoryData } from './factory/types.js';
@@ -0,0 +1,8 @@
1
+ import type { ContainerConstructBase } from '@art-md/primitives';
2
+ export type NaturalExpression = ContainerConstructBase & {
3
+ construct: 'NaturalExpression';
4
+ type: string;
5
+ attributes?: Record<string, unknown>;
6
+ value?: string;
7
+ children: NaturalExpression[];
8
+ };
@@ -0,0 +1,3 @@
1
+ import type { SectionBlock } from '../types.js';
2
+ import type { SectionBlockFactoryData } from './types.js';
3
+ export declare function createSectionBlock(data: SectionBlockFactoryData): SectionBlock;
@@ -0,0 +1,8 @@
1
+ import type { ConstructBase } from '@art-md/primitives';
2
+ import type { Tag } from '../../Tag/index.js';
3
+ export type SectionBlockFactoryData = {
4
+ name: string;
5
+ depth?: number;
6
+ children?: ConstructBase[];
7
+ tags?: Tag[];
8
+ };
@@ -0,0 +1,3 @@
1
+ export { createSectionBlock } from './factory/createSectionBlock.js';
2
+ export type { SectionBlock } from './types.js';
3
+ export type { SectionBlockFactoryData } from './factory/types.js';
@@ -0,0 +1,9 @@
1
+ import type { ConstructBase, ContainerConstructBase } from '@art-md/primitives';
2
+ import type { Tag } from '../Tag/index.js';
3
+ export type SectionBlock = ContainerConstructBase & {
4
+ construct: 'SectionBlock';
5
+ name: string;
6
+ tags?: Tag[];
7
+ children: ConstructBase[];
8
+ depth?: number;
9
+ };
@@ -0,0 +1,3 @@
1
+ import type { Tag } from '../types.js';
2
+ import type { TagFactoryData } from './types.js';
3
+ export declare function createTag(tagData: TagFactoryData): Tag;
@@ -0,0 +1,3 @@
1
+ export type TagFactoryData = {
2
+ name: string;
3
+ };
@@ -0,0 +1,3 @@
1
+ export { createTag } from './factory/createTag.js';
2
+ export type { Tag } from './types.js';
3
+ export type { TagFactoryData } from './factory/types.js';
@@ -0,0 +1,5 @@
1
+ import type { ConstructBase } from '@art-md/primitives';
2
+ export type Tag = ConstructBase & {
3
+ construct: 'Tag';
4
+ name: string;
5
+ };
@@ -0,0 +1,8 @@
1
+ export * from './constructs/Document/index.js';
2
+ export * from './constructs/FieldBlock/index.js';
3
+ export * from './constructs/FieldInline/index.js';
4
+ export * from './constructs/NaturalBlock/index.js';
5
+ export * from './constructs/NaturalExpression/index.js';
6
+ export * from './constructs/SectionBlock/index.js';
7
+ export * from './constructs/Tag/index.js';
8
+ export type * from './types.js';
@@ -0,0 +1,36 @@
1
+ import { createDocument } from './constructs/Document/index.js';
2
+ import { createFieldBlock } from './constructs/FieldBlock/index.js';
3
+ import { createFieldInline } from './constructs/FieldInline/index.js';
4
+ import { createNaturalBlock } from './constructs/NaturalBlock/index.js';
5
+ import { createNaturalExpression } from './constructs/NaturalExpression/index.js';
6
+ import { createSectionBlock } from './constructs/SectionBlock/index.js';
7
+ import { createTag } from './constructs/Tag/index.js';
8
+ export type { FieldBlock } from './constructs/FieldBlock/index.js';
9
+ export type { FieldInline } from './constructs/FieldInline/index.js';
10
+ export type { NaturalBlock } from './constructs/NaturalBlock/index.js';
11
+ export type { NaturalExpression } from './constructs/NaturalExpression/index.js';
12
+ export type { SectionBlock } from './constructs/SectionBlock/index.js';
13
+ export type { Tag } from './constructs/Tag/index.js';
14
+ export type * from './types.js';
15
+ export declare const FACTORIES: ({
16
+ name: string;
17
+ factory: typeof createDocument;
18
+ } | {
19
+ name: string;
20
+ factory: typeof createFieldBlock;
21
+ } | {
22
+ name: string;
23
+ factory: typeof createFieldInline;
24
+ } | {
25
+ name: string;
26
+ factory: typeof createNaturalBlock;
27
+ } | {
28
+ name: string;
29
+ factory: typeof createNaturalExpression;
30
+ } | {
31
+ name: string;
32
+ factory: typeof createSectionBlock;
33
+ } | {
34
+ name: string;
35
+ factory: typeof createTag;
36
+ })[];
@@ -0,0 +1,31 @@
1
+ import type { FieldBlock } from './constructs/FieldBlock/index.js';
2
+ import type { FieldInline } from './constructs/FieldInline/index.js';
3
+ import type { NaturalBlock } from './constructs/NaturalBlock/index.js';
4
+ import type { NaturalExpression } from './constructs/NaturalExpression/index.js';
5
+ import type { SectionBlock } from './constructs/SectionBlock/index.js';
6
+ import type { Tag } from './constructs/Tag/index.js';
7
+ /**
8
+ * Open registry of block-level constructs. Augment via declaration merging when new constructs land.
9
+ *
10
+ * @conventions-ignore Conventions: Typescript / Types / No Interface
11
+ */
12
+ export interface BlockConstructMap {
13
+ SectionBlock: SectionBlock;
14
+ FieldBlock: FieldBlock;
15
+ FieldInline: FieldInline;
16
+ NaturalBlock: NaturalBlock;
17
+ }
18
+ /**
19
+ * Open registry of inline/expression-level constructs. Augment via declaration merging when new constructs land.
20
+ *
21
+ * @conventions-ignore Conventions: Typescript / Types / No Interface
22
+ */
23
+ export interface InlineConstructMap {
24
+ NaturalExpression: NaturalExpression;
25
+ Tag: Tag;
26
+ }
27
+ /** Open registry of all constructs. */
28
+ export type ConstructMap = BlockConstructMap & InlineConstructMap;
29
+ export type BlockContent = BlockConstructMap[keyof BlockConstructMap];
30
+ export type InlineContent = InlineConstructMap[keyof InlineConstructMap];
31
+ export type Construct = ConstructMap[keyof ConstructMap];
@@ -0,0 +1,3 @@
1
+ export * from './factories/public.js';
2
+ export * from './parser/public.js';
3
+ export * from './serializer/public.js';