@dialecte/core 0.4.17 → 0.5.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 (47) hide show
  1. package/dist/document/query/any/any-query.d.ts +3 -1
  2. package/dist/document/query/any/any-query.d.ts.map +1 -1
  3. package/dist/document/query/get/attribute/get-attributes.d.ts.map +1 -1
  4. package/dist/document/query/get/definition/get-definition.d.ts +12 -0
  5. package/dist/document/query/get/definition/get-definition.d.ts.map +1 -0
  6. package/dist/document/query/get/definition/index.d.ts +2 -0
  7. package/dist/document/query/get/definition/index.d.ts.map +1 -0
  8. package/dist/document/query/get/index.d.ts +1 -0
  9. package/dist/document/query/get/index.d.ts.map +1 -1
  10. package/dist/document/query/main.d.ts +15 -1
  11. package/dist/document/query/main.d.ts.map +1 -1
  12. package/dist/document/transaction/create/create.types.d.ts +7 -7
  13. package/dist/document/transaction/create/create.types.d.ts.map +1 -1
  14. package/dist/document/transaction/delete/delete.d.ts.map +1 -1
  15. package/dist/helpers/assert-fixed.d.ts +7 -6
  16. package/dist/helpers/assert-fixed.d.ts.map +1 -1
  17. package/dist/helpers/standardizing.d.ts.map +1 -1
  18. package/dist/helpers.js +75 -72
  19. package/dist/index.js +3 -3
  20. package/dist/{project-nvZv2ie8.js → project-B4jqjENJ.js} +1056 -1010
  21. package/dist/test/config.d.ts +668 -326
  22. package/dist/test/config.d.ts.map +1 -1
  23. package/dist/test/generated/constants.generated.d.ts +151 -31
  24. package/dist/test/generated/constants.generated.d.ts.map +1 -1
  25. package/dist/test/generated/definition.generated.d.ts +523 -295
  26. package/dist/test/generated/definition.generated.d.ts.map +1 -1
  27. package/dist/test/generated/types.generated.d.ts +118 -0
  28. package/dist/test/generated/types.generated.d.ts.map +1 -1
  29. package/dist/test/run-test-cases.d.ts +668 -326
  30. package/dist/test/run-test-cases.d.ts.map +1 -1
  31. package/dist/test/test-record.d.ts +5346 -2610
  32. package/dist/test/test-record.d.ts.map +1 -1
  33. package/dist/test.js +986 -474
  34. package/dist/types/definition.d.ts +45 -3
  35. package/dist/types/definition.d.ts.map +1 -1
  36. package/dist/types/dialecte-config.d.ts +34 -7
  37. package/dist/types/dialecte-config.d.ts.map +1 -1
  38. package/dist/utils/attribute-rules.d.ts +5 -4
  39. package/dist/utils/attribute-rules.d.ts.map +1 -1
  40. package/dist/utils/index.d.ts +1 -0
  41. package/dist/utils/index.d.ts.map +1 -1
  42. package/dist/utils/resolve-definition.d.ts +15 -0
  43. package/dist/utils/resolve-definition.d.ts.map +1 -0
  44. package/dist/{utils-BiEx1x59.js → utils-ERge2irW.js} +70 -46
  45. package/dist/utils.js +2 -2
  46. package/dist/xml/build/build-xml-document.d.ts.map +1 -1
  47. package/package.json +1 -1
@@ -41,12 +41,25 @@ export type Facets = {
41
41
  readonly fractionDigits?: number;
42
42
  readonly whiteSpace?: 'preserve' | 'replace' | 'collapse';
43
43
  };
44
+ /** What a simple value is: an XSD built-in, a list of one, or a union of several. */
45
+ export type DataType = {
46
+ readonly builtin: string;
47
+ readonly facets?: Facets;
48
+ } | {
49
+ readonly list: DataType;
50
+ readonly facets?: Facets;
51
+ } | {
52
+ readonly union: readonly DataType[];
53
+ readonly facets?: Facets;
54
+ };
44
55
  export type AttributeDefinition = {
45
56
  readonly required?: true;
46
57
  readonly default?: string;
47
58
  readonly fixed?: string;
48
59
  readonly namespace?: Namespace;
49
60
  readonly facets?: Facets;
61
+ /** Absent for a plain string. */
62
+ readonly type?: DataType;
50
63
  };
51
64
  export type ChildDefinition = {
52
65
  readonly required?: true;
@@ -61,22 +74,51 @@ export type ChildDefinition = {
61
74
  * it onto the record; absent ⇒ the element's own namespace applies.
62
75
  */
63
76
  readonly namespace?: Namespace;
77
+ readonly nillable?: true;
78
+ readonly attributes?: ElementDefinition['attributes'];
79
+ readonly children?: ElementDefinition['children'];
80
+ readonly contentModel?: Particle;
81
+ readonly textContent?: TextContent;
64
82
  };
65
- export type ChoiceGroup = {
66
- readonly options: readonly string[];
83
+ /** One node of a content model as the schema wrote it. */
84
+ export type Particle = {
85
+ readonly kind: 'sequence' | 'choice' | 'all';
86
+ readonly minOccurs?: number;
87
+ readonly maxOccurs?: number;
88
+ readonly particles: readonly Particle[];
89
+ } | {
90
+ readonly kind: 'element';
91
+ readonly name: string;
92
+ readonly minOccurs?: number;
93
+ readonly maxOccurs?: number;
94
+ } | {
95
+ readonly kind: 'any';
96
+ readonly namespace?: readonly string[];
97
+ readonly processContents?: string;
67
98
  readonly minOccurs?: number;
68
99
  readonly maxOccurs?: number;
69
100
  };
70
101
  export type TextContent = {
71
102
  readonly facets?: Facets;
103
+ readonly type?: DataType;
104
+ readonly default?: string;
105
+ readonly fixed?: string;
72
106
  };
107
+ /**
108
+ * What an element is: the union of its declarations when a schema declares the tag differently
109
+ * under different parents. What it holds under one parent is on that parent's edge
110
+ * (`children.details[tag]`); `resolveDefinition` returns the definition in that context.
111
+ */
73
112
  export type ElementDefinition = {
74
113
  readonly tag: string;
75
114
  readonly namespace: Namespace;
76
115
  readonly documentation?: string;
77
116
  readonly parents: readonly string[];
117
+ readonly nillable?: true;
78
118
  readonly attributes: {
79
119
  readonly sequence: readonly string[];
120
+ readonly any?: true;
121
+ readonly anyNamespace?: readonly string[];
80
122
  readonly details: Record<string, AttributeDefinition>;
81
123
  readonly identityFields?: readonly string[];
82
124
  };
@@ -84,8 +126,8 @@ export type ElementDefinition = {
84
126
  readonly sequence: readonly string[];
85
127
  readonly any?: true;
86
128
  readonly details: Record<string, ChildDefinition>;
87
- readonly choices?: readonly ChoiceGroup[];
88
129
  };
130
+ readonly contentModel?: Particle;
89
131
  readonly constraints?: readonly IdentityConstraint[];
90
132
  readonly textContent?: TextContent;
91
133
  };
@@ -1 +1 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/types/definition.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAI1C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,CAAA;AAExE,MAAM,MAAM,SAAS,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,CAAA;AAElF,MAAM,MAAM,WAAW,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAA;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,SAAS,EAAE,CAAA;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAA;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAA;IAC1C,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAA;CAC3C,CAAA;AAID,MAAM,MAAM,MAAM,GAAG;IACpB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;CACzD,CAAA;AAID,MAAM,MAAM,mBAAmB,GAAG;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAA;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAA;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAA;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACpD;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAID,MAAM,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,UAAU,EAAE;QACpB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;QACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;QACrD,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAC3C,CAAA;IACD,QAAQ,CAAC,QAAQ,EAAE;QAClB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;QACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAA;QACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;QACjD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;KACzC,CAAA;IACD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACpD,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;CAClC,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA"}
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/types/definition.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,17 @@ import { Operation } from './operations';
4
4
  import { Namespace, RawRecord, TreeRecord } from './records';
5
5
  import { Query } from '../document';
6
6
  import { RecordSchema } from '../store';
7
- export type RawDialecteConfig<GenericElementNames extends readonly string[], GenericRootElement extends GenericElementNames[number], GenericAttributes extends Record<string, any>, GenericChildren extends Record<string, readonly string[]>, GenericParents extends Record<string, readonly string[]>, GenericDescendants extends Record<string, readonly string[]>, GenericAncestors extends Record<string, readonly string[]>> = {
7
+ /**
8
+ * The attribute skeletons a dialecte generates: one key per attribute name, typed for the aliases
9
+ * below; what an attribute is (required, fixed, facets) lives in `definition`. `byTag` is the shape
10
+ * of an element wherever it appears; `byParent` its shape AS DECLARED UNDER each parent - the same
11
+ * where the schema declares the tag once, its own where a homonym differs.
12
+ */
13
+ export type AttributeTables = {
14
+ byTag: Record<string, any>;
15
+ byParent: Record<string, Record<string, any>>;
16
+ };
17
+ export type RawDialecteConfig<GenericElementNames extends readonly string[], GenericRootElement extends GenericElementNames[number], GenericAttributes extends AttributeTables, GenericChildren extends Record<string, readonly string[]>, GenericParents extends Record<string, readonly string[]>, GenericDescendants extends Record<string, readonly string[]>, GenericAncestors extends Record<string, readonly string[]>> = {
8
18
  rootElementName: GenericRootElement;
9
19
  singletonElements?: readonly GenericElementNames[number][];
10
20
  transparentElements?: readonly GenericElementNames[number][];
@@ -77,6 +87,18 @@ export type TransactionHooks<GenericConfig extends AnyDialecteConfig> = {
77
87
  record: RawRecord<GenericConfig, GenericElement>;
78
88
  query: Query<GenericConfig>;
79
89
  }) => Promise<Operation<GenericConfig>[]>;
90
+ /**
91
+ * Called once a record and its subtree are staged for deletion.
92
+ * The subtree is no longer visible through `query`; `parentRecord` is the
93
+ * parent as staged, without the deleted child.
94
+ *
95
+ * Return additional operations to stage (e.g., remove a container left empty).
96
+ */
97
+ afterDelete?: <GenericElement extends ElementsOf<GenericConfig>, GenericParentElement extends ParentsOf<GenericConfig, GenericElement>>(params: {
98
+ record: RawRecord<GenericConfig, GenericElement>;
99
+ parentRecord: RawRecord<GenericConfig, GenericParentElement>;
100
+ query: Query<GenericConfig>;
101
+ }) => Promise<Operation<GenericConfig>[]>;
80
102
  };
81
103
  export type DatabaseConfig = Readonly<{
82
104
  /** Backend-agnostic index schema for per-file record tables */
@@ -99,7 +121,7 @@ export type DatabaseConfig = Readonly<{
99
121
  * Generic FlavorConfig type for contexts where specific flavor is not known.
100
122
  * Use this instead of FlavorConfig<any, any, any, any, any>
101
123
  */
102
- export type AnyDialecteConfig = RawDialecteConfig<readonly string[], string, Record<string, any>, Record<string, readonly string[]>, Record<string, readonly string[]>, Record<string, readonly string[]>, Record<string, readonly string[]>>;
124
+ export type AnyDialecteConfig = RawDialecteConfig<readonly string[], string, AttributeTables, Record<string, readonly string[]>, Record<string, readonly string[]>, Record<string, readonly string[]>, Record<string, readonly string[]>>;
103
125
  /**
104
126
  * Extract the element union type from a dialecte config
105
127
  */
@@ -137,12 +159,17 @@ export type SingletonElementsOf<GenericConfig extends AnyDialecteConfig> = Gener
137
159
  /**
138
160
  * Get attributes type for a specific element from dialecte config
139
161
  */
140
- export type AttributesValueObjectOf<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>> = GenericConfig['attributes'][GenericElement];
162
+ /**
163
+ * The attribute value object of an element: by tag, or - when a parent is named - as declared
164
+ * under that parent (`attributes.byParent`). Without a parent this is exactly the tag-level type,
165
+ * so nothing changes for a caller that names none; the conditional tests the parent only.
166
+ */
167
+ export type AttributesValueObjectOf<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>, GenericParent extends ElementsOf<GenericConfig> = never> = [GenericParent] extends [never] ? GenericConfig['attributes']['byTag'][GenericElement] : GenericConfig['attributes']['byParent'][GenericParent][GenericElement];
141
168
  export type AnyAttributesValueObject = Record<string, string>;
142
169
  /**
143
170
  * Get attribute name union for a specific element from dialecte config
144
171
  */
145
- export type AttributesOf<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>> = keyof AttributesValueObjectOf<GenericConfig, GenericElement> & string;
172
+ export type AttributesOf<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>, GenericParent extends ElementsOf<GenericConfig> = never> = keyof AttributesValueObjectOf<GenericConfig, GenericElement, GenericParent> & string;
146
173
  export type AnyAttributeName = string;
147
174
  /**
148
175
  * Get attribute object type for a specific element from dialecte config
@@ -189,8 +216,8 @@ export type NamespaceKeysUsedByElement<GenericConfig extends AnyDialecteConfig,
189
216
  [K in NamespaceKeysOf<GenericConfig>]: PrefixOfNamespaceKey<GenericConfig, K> extends PrefixesUsedByElement<GenericConfig, GenericElement> ? K : never;
190
217
  }[NamespaceKeysOf<GenericConfig>];
191
218
  /** Value object of an element's default-namespace (unprefixed) attributes only. */
192
- export type DefaultAttributesValueObjectOf<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>> = {
193
- [K in keyof AttributesValueObjectOf<GenericConfig, GenericElement> as K extends `${string}:${string}` ? never : K]: AttributesValueObjectOf<GenericConfig, GenericElement>[K];
219
+ export type DefaultAttributesValueObjectOf<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>, GenericParent extends ElementsOf<GenericConfig> = never> = {
220
+ [K in keyof AttributesValueObjectOf<GenericConfig, GenericElement, GenericParent> as K extends `${string}:${string}` ? never : K]: AttributesValueObjectOf<GenericConfig, GenericElement, GenericParent>[K];
194
221
  };
195
222
  /**
196
223
  * Value object of an element's attributes within a given namespace key, re-keyed
@@ -202,6 +229,6 @@ export type NamespacedAttributesValueObjectOf<GenericConfig extends AnyDialecteC
202
229
  /** Local attribute names available under a namespace key for an element. */
203
230
  export type LocalAttributeNamesInNamespace<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>, GenericNamespaceKey extends NamespaceKeysOf<GenericConfig>> = keyof NamespacedAttributesValueObjectOf<GenericConfig, GenericElement, GenericNamespaceKey> & string;
204
231
  /** Default-namespace (unprefixed) attribute names for an element. */
205
- export type DefaultAttributeNamesOf<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>> = keyof DefaultAttributesValueObjectOf<GenericConfig, GenericElement> & string;
232
+ export type DefaultAttributeNamesOf<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>, GenericParent extends ElementsOf<GenericConfig> = never> = keyof DefaultAttributesValueObjectOf<GenericConfig, GenericElement, GenericParent> & string;
206
233
  export {};
207
234
  //# sourceMappingURL=dialecte-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialecte-config.d.ts","sourceRoot":"","sources":["../../src/types/dialecte-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dialecte-config.d.ts","sourceRoot":"","sources":["../../src/types/dialecte-config.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import { AttributeDefaults, AttributeRules } from './attribute-rules.types';
2
- import { AnyDialecteConfig, Namespace } from '../types';
2
+ import { AnyDialecteConfig, AnyRawRecord, Namespace } from '../types';
3
3
  export type { AttributeDefaults, AttributeRules } from './attribute-rules.types';
4
4
  export declare function getAttributeRules(params: {
5
5
  dialecteConfig: AnyDialecteConfig;
6
- tagName: string;
6
+ /** The element and its parent: the rules are those of its definition there. */
7
+ record: Pick<AnyRawRecord, 'tagName' | 'parent'>;
7
8
  attributeName: string;
8
9
  }): AttributeRules;
9
10
  /**
@@ -14,7 +15,7 @@ export declare function getAttributeRules(params: {
14
15
  */
15
16
  export declare function resolveSchemaAttributeValue(params: {
16
17
  dialecteConfig: AnyDialecteConfig;
17
- tagName: string;
18
+ record: Pick<AnyRawRecord, 'tagName' | 'parent'>;
18
19
  attributeName: string;
19
20
  defaults: AttributeDefaults;
20
21
  }): string | undefined;
@@ -26,7 +27,7 @@ export declare function resolveSchemaAttributeValue(params: {
26
27
  */
27
28
  export declare function isSchemaDefaultValue(params: {
28
29
  dialecteConfig: AnyDialecteConfig;
29
- tagName: string;
30
+ record: Pick<AnyRawRecord, 'tagName' | 'parent'>;
30
31
  attributeName: string;
31
32
  value: string;
32
33
  }): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"attribute-rules.d.ts","sourceRoot":"","sources":["../../src/utils/attribute-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAE3D,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAEhF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACzC,cAAc,EAAE,iBAAiB,CAAA;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;CACrB,GAAG,cAAc,CAgBjB;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IACnD,cAAc,EAAE,iBAAiB,CAAA;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,iBAAiB,CAAA;CAC3B,GAAG,MAAM,GAAG,SAAS,CAerB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC5C,cAAc,EAAE,iBAAiB,CAAA;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;CACb,GAAG,OAAO,CAKV;AAED,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACvC,cAAc,EAAE,iBAAiB,EACjC,MAAM,EAAE,MAAM,GACZ,SAAS,GAAG,SAAS,CAIvB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACtC,cAAc,EAAE,iBAAiB,EACjC,KAAK,EAAE,MAAM,GACX,SAAS,GAAG,SAAS,CAGvB;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC5C,cAAc,EAAE,iBAAiB,EACjC,cAAc,EAAE,MAAM,GACpB,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACzC,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,EAC1C,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,GACxC,MAAM,CAMR;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACxC,gBAAgB,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,EAC/D,UAAU,EAAE,SAAS,gBAAgB,EAAE,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAS1F"}
1
+ {"version":3,"file":"attribute-rules.d.ts","sourceRoot":"","sources":["../../src/utils/attribute-rules.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEzE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAEhF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACzC,cAAc,EAAE,iBAAiB,CAAA;IACjC,+EAA+E;IAC/E,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAA;IAChD,aAAa,EAAE,MAAM,CAAA;CACrB,GAAG,cAAc,CAgBjB;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IACnD,cAAc,EAAE,iBAAiB,CAAA;IACjC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAA;IAChD,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,iBAAiB,CAAA;CAC3B,GAAG,MAAM,GAAG,SAAS,CAerB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC5C,cAAc,EAAE,iBAAiB,CAAA;IACjC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAA;IAChD,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;CACb,GAAG,OAAO,CAKV;AAED,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACvC,cAAc,EAAE,iBAAiB,EACjC,MAAM,EAAE,MAAM,GACZ,SAAS,GAAG,SAAS,CAIvB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACtC,cAAc,EAAE,iBAAiB,EACjC,KAAK,EAAE,MAAM,GACX,SAAS,GAAG,SAAS,CAGvB;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC5C,cAAc,EAAE,iBAAiB,EACjC,cAAc,EAAE,MAAM,GACpB,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACzC,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,EAC1C,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,GACxC,MAAM,CAMR;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACxC,gBAAgB,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,EAC/D,UAAU,EAAE,SAAS,gBAAgB,EAAE,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAS1F"}
@@ -3,4 +3,5 @@ export * from './format-xml';
3
3
  export * from './invariant';
4
4
  export * from './order-children';
5
5
  export * from './save-to-disk';
6
+ export * from './resolve-definition';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { AnyDialecteConfig, AnyRawRecord, ElementDefinition } from '../types';
2
+ /**
3
+ * The definition of an element in its context. When the schema declares the tag differently under
4
+ * the record's parent, what the element holds there - attributes, children, content model, text -
5
+ * comes from that parent's edge, all of it; the rest (tag, namespace, parents, constraints) is the
6
+ * tag-level definition's. Otherwise the tag-level definition itself, the union of its
7
+ * declarations. The one rule every reader of the definition follows. It takes a record, whose
8
+ * `parent` is always known (`null` for the root); a ref carries no parent, so a caller holding one
9
+ * uses `query.getDefinition(ref)`, which fetches the record first.
10
+ */
11
+ export declare function resolveDefinition(params: {
12
+ dialecteConfig: AnyDialecteConfig;
13
+ record: Pick<AnyRawRecord, 'tagName' | 'parent'>;
14
+ }): ElementDefinition | undefined;
15
+ //# sourceMappingURL=resolve-definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-definition.d.ts","sourceRoot":"","sources":["../../src/utils/resolve-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEjF;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACzC,cAAc,EAAE,iBAAiB,CAAA;IACjC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAA;CAChD,GAAG,iBAAiB,GAAG,SAAS,CAuBhC"}
@@ -161,73 +161,97 @@ function n(e) {
161
161
  return a ? `${a[1].replace(/\.[^/.]+$/, "")}::${r}` : r;
162
162
  }
163
163
  //#endregion
164
- //#region src/utils/attribute-rules.ts
164
+ //#region src/utils/resolve-definition.ts
165
165
  function r(e) {
166
- let { dialecteConfig: t, tagName: n, attributeName: r } = e, i = t.elements.includes(n), a = i ? t.definition[n] : void 0, o = a?.attributes.details[r];
167
- return {
168
- isKnownElement: i,
169
- isDefined: !!o,
170
- isRequired: !!o?.required,
171
- isIdentityField: a?.attributes.identityFields?.includes(r) ?? !1,
172
- fixed: o?.fixed,
173
- default: o?.default,
174
- namespace: o?.namespace || void 0
166
+ let { dialecteConfig: t, record: n } = e, r = t.definition[n.tagName];
167
+ if (r === void 0) return;
168
+ let i = n.parent?.tagName;
169
+ if (!i) return r;
170
+ let a = t.definition[i]?.children.details[n.tagName];
171
+ return a?.attributes === void 0 || a.children === void 0 ? r : {
172
+ tag: r.tag,
173
+ namespace: r.namespace,
174
+ documentation: r.documentation,
175
+ parents: r.parents,
176
+ constraints: r.constraints,
177
+ nillable: a.nillable,
178
+ attributes: a.attributes,
179
+ children: a.children,
180
+ contentModel: a.contentModel,
181
+ textContent: a.textContent
175
182
  };
176
183
  }
184
+ //#endregion
185
+ //#region src/utils/attribute-rules.ts
177
186
  function i(e) {
178
- let { dialecteConfig: t, tagName: n, attributeName: i, defaults: a } = e;
187
+ let { dialecteConfig: t, record: n, attributeName: i } = e, a = t.elements.includes(n.tagName), o = a ? r({
188
+ dialecteConfig: t,
189
+ record: n
190
+ }) : void 0, s = o?.attributes.details[i];
191
+ return {
192
+ isKnownElement: a,
193
+ isDefined: !!s,
194
+ isRequired: !!s?.required,
195
+ isIdentityField: o?.attributes.identityFields?.includes(i) ?? !1,
196
+ fixed: s?.fixed,
197
+ default: s?.default,
198
+ namespace: s?.namespace || void 0
199
+ };
200
+ }
201
+ function a(e) {
202
+ let { dialecteConfig: t, record: n, attributeName: r, defaults: a } = e;
179
203
  if (a === "none") return;
180
- let o = r({
204
+ let o = i({
181
205
  dialecteConfig: t,
182
- tagName: n,
183
- attributeName: i
206
+ record: n,
207
+ attributeName: r
184
208
  });
185
209
  if (a === "required") return o.isRequired || o.fixed !== void 0 ? o.fixed ?? o.default ?? "" : void 0;
186
210
  if (o.fixed !== void 0) return o.fixed;
187
211
  if (o.default) return o.default;
188
212
  }
189
- function a(e) {
190
- let { dialecteConfig: t, tagName: n, attributeName: i, value: a } = e, o = r({
213
+ function o(e) {
214
+ let { dialecteConfig: t, record: n, attributeName: r, value: a } = e, o = i({
191
215
  dialecteConfig: t,
192
- tagName: n,
193
- attributeName: i
216
+ record: n,
217
+ attributeName: r
194
218
  }), s = o.fixed ?? o.default;
195
219
  return s !== void 0 && a === s;
196
220
  }
197
- function o(e) {
221
+ function s(e) {
198
222
  let t = e.lastIndexOf(":");
199
223
  return t === -1 ? e : e.slice(t + 1);
200
224
  }
201
- function s(e, t) {
202
- if (t) return Object.values(e.namespaces).find((e) => e.prefix === t);
203
- }
204
225
  function c(e, t) {
205
- return e.namespaces[t] ?? s(e, t);
226
+ if (t) return Object.values(e.namespaces).find((e) => e.prefix === t);
206
227
  }
207
228
  function l(e, t) {
208
- return e.namespaces[t]?.prefix ?? t;
229
+ return e.namespaces[t] ?? c(e, t);
209
230
  }
210
231
  function u(e, t) {
232
+ return e.namespaces[t]?.prefix ?? t;
233
+ }
234
+ function d(e, t) {
211
235
  let n = e.namespace?.uri ?? "", r = t.namespace?.uri ?? "";
212
236
  return n === r ? e.name === t.name ? 0 : e.name < t.name ? -1 : 1 : n < r ? -1 : 1;
213
237
  }
214
- function d(e, t) {
215
- let n = t.flatMap((t) => e.filter((e) => e.name === t)), r = e.filter((e) => !t.includes(e.name)).sort(u);
238
+ function f(e, t) {
239
+ let n = t.flatMap((t) => e.filter((e) => e.name === t)), r = e.filter((e) => !t.includes(e.name)).sort(d);
216
240
  return [...n, ...r];
217
241
  }
218
242
  //#endregion
219
243
  //#region src/utils/format-xml.ts
220
- function f(e, t = {}) {
221
- let n = t.indent ?? " ", r = t.baseIndent ?? "", i = h(m(e.trim())), a = [];
222
- for (let e of i) _(e, r, n, a);
244
+ function p(e, t = {}) {
245
+ let n = t.indent ?? " ", r = t.baseIndent ?? "", i = g(h(e.trim())), a = [];
246
+ for (let e of i) v(e, r, n, a);
223
247
  return a.join("\n");
224
248
  }
225
- function p(e, t) {
249
+ function m(e, t) {
226
250
  let n = t;
227
251
  for (; n < e.length && !/[\s/>]/.test(e[n]);) n++;
228
252
  return e.slice(t, n);
229
253
  }
230
- function m(e) {
254
+ function h(e) {
231
255
  let t = [], n = 0;
232
256
  for (; n < e.length;) {
233
257
  if (e[n] === "<") {
@@ -258,15 +282,15 @@ function m(e) {
258
282
  let a = r < e.length ? r + 1 : e.length, o = e.slice(n, a);
259
283
  n = a, o[1] === "/" ? t.push({
260
284
  type: "close",
261
- name: p(o, 2),
285
+ name: m(o, 2),
262
286
  raw: o
263
287
  }) : o.endsWith("/>") ? t.push({
264
288
  type: "selfclose",
265
- name: p(o, 1),
289
+ name: m(o, 1),
266
290
  raw: o
267
291
  }) : t.push({
268
292
  type: "open",
269
- name: p(o, 1),
293
+ name: m(o, 1),
270
294
  raw: o
271
295
  });
272
296
  continue;
@@ -279,7 +303,7 @@ function m(e) {
279
303
  }
280
304
  return t;
281
305
  }
282
- function h(e) {
306
+ function g(e) {
283
307
  let t = 0, n = () => {
284
308
  let r = [];
285
309
  for (; t < e.length;) {
@@ -309,10 +333,10 @@ function h(e) {
309
333
  };
310
334
  return n();
311
335
  }
312
- function g(e) {
313
- return e.kind === "element" ? e.selfClosing ? e.openRaw : `${e.openRaw}${e.children.map(g).join("")}</${e.name}>` : e.raw;
336
+ function _(e) {
337
+ return e.kind === "element" ? e.selfClosing ? e.openRaw : `${e.openRaw}${e.children.map(_).join("")}</${e.name}>` : e.raw;
314
338
  }
315
- function _(e, t, n, r) {
339
+ function v(e, t, n, r) {
316
340
  if (e.kind === "text") {
317
341
  e.raw.trim() !== "" && r.push(t + e.raw.trim());
318
342
  return;
@@ -332,17 +356,17 @@ function _(e, t, n, r) {
332
356
  return;
333
357
  }
334
358
  if (o) {
335
- r.push(t + e.openRaw + e.children.map(g).join("") + i);
359
+ r.push(t + e.openRaw + e.children.map(_).join("") + i);
336
360
  return;
337
361
  }
338
362
  r.push(t + e.openRaw);
339
- for (let i of e.children) i.kind !== "text" && _(i, t + n, n, r);
363
+ for (let i of e.children) i.kind !== "text" && v(i, t + n, n, r);
340
364
  r.push(t + i);
341
365
  }
342
- function v(e, t = {}) {
366
+ function y(e, t = {}) {
343
367
  let n = t.indent ?? " ";
344
368
  return e.replace(/^([ \t]*)(.*?\/\*\s*xml\s*\*\/[ \t]*)`([\s\S]*?)`/gm, (e, t, r, i) => {
345
- let a = f(i, {
369
+ let a = p(i, {
346
370
  indent: n,
347
371
  baseIndent: t + n
348
372
  });
@@ -351,7 +375,7 @@ function v(e, t = {}) {
351
375
  }
352
376
  //#endregion
353
377
  //#region src/utils/invariant.ts
354
- function y(e, n) {
378
+ function b(e, n) {
355
379
  if (e) return;
356
380
  let { detail: r, key: i = "ASSERTION_FAILED", ref: a } = n;
357
381
  t(i, {
@@ -361,7 +385,7 @@ function y(e, n) {
361
385
  }
362
386
  //#endregion
363
387
  //#region src/utils/order-children.ts
364
- function b(e) {
388
+ function x(e) {
365
389
  let { parentTagName: t, children: n, childrenConfig: r } = e, i = r[t];
366
390
  if (!i || i.length === 0) return n;
367
391
  let a = new Set(i), o = /* @__PURE__ */ new Map();
@@ -380,7 +404,7 @@ function b(e) {
380
404
  }
381
405
  //#endregion
382
406
  //#region src/utils/save-to-disk.ts
383
- async function x(e) {
407
+ async function S(e) {
384
408
  let { data: t, filename: n, pickerType: r } = e;
385
409
  if ("showSaveFilePicker" in window) try {
386
410
  let e = await (await window.showSaveFilePicker({
@@ -398,4 +422,4 @@ async function x(e) {
398
422
  a.href = i, a.download = n, document.body.appendChild(a), a.click(), a.remove(), URL.revokeObjectURL(i);
399
423
  }
400
424
  //#endregion
401
- export { f as a, r as c, s as d, c as f, e as g, t as h, v as i, a as l, i as m, b as n, u as o, l as p, y as r, o as s, x as t, d as u };
425
+ export { e as _, p as a, i as c, c as d, l as f, t as g, r as h, y as i, o as l, a as m, x as n, d as o, u as p, b as r, s, S as t, f as u };
package/dist/utils.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as e, c as t, d as n, f as r, i, l as a, m as o, n as s, o as c, p as l, r as u, s as d, t as f, u as p } from "./utils-BiEx1x59.js";
2
- export { c as compareQualifiedAttributes, d as extractLocalName, i as formatEmbeddedXml, e as formatXml, t as getAttributeRules, u as invariant, a as isSchemaDefaultValue, p as orderAttributesBySequence, s as orderByConfigSequence, n as resolveNamespaceByPrefix, r as resolveNamespaceByScope, l as resolvePrefixByNamespaceScope, o as resolveSchemaAttributeValue, f as saveToDisk };
1
+ import { a as e, c as t, d as n, f as r, h as i, i as a, l as o, m as s, n as c, o as l, p as u, r as d, s as f, t as p, u as m } from "./utils-ERge2irW.js";
2
+ export { l as compareQualifiedAttributes, f as extractLocalName, a as formatEmbeddedXml, e as formatXml, t as getAttributeRules, d as invariant, o as isSchemaDefaultValue, m as orderAttributesBySequence, c as orderByConfigSequence, i as resolveDefinition, n as resolveNamespaceByPrefix, r as resolveNamespaceByScope, u as resolvePrefixByNamespaceScope, s as resolveSchemaAttributeValue, p as saveToDisk };
@@ -1 +1 @@
1
- {"version":3,"file":"build-xml-document.d.ts","sourceRoot":"","sources":["../../../src/xml/build/build-xml-document.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAWxE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,WAAW,CAyE5E"}
1
+ {"version":3,"file":"build-xml-document.d.ts","sourceRoot":"","sources":["../../../src/xml/build/build-xml-document.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAWxE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,WAAW,CAyE5E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dialecte/core",
3
- "version": "0.4.17",
3
+ "version": "0.5.0",
4
4
  "description": "Dialecte - Core functionality for Dialecte SDK",
5
5
  "license": "MIT",
6
6
  "repository": {