@dialecte/core 0.4.2 → 0.4.5

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 (52) hide show
  1. package/dist/document/bind-extensions.d.ts +5 -1
  2. package/dist/document/bind-extensions.d.ts.map +1 -1
  3. package/dist/document/query/any/any-query.d.ts +9 -0
  4. package/dist/document/query/any/any-query.d.ts.map +1 -1
  5. package/dist/document/query/get/attribute/get-attribute.d.ts +19 -10
  6. package/dist/document/query/get/attribute/get-attribute.d.ts.map +1 -1
  7. package/dist/document/query/get/attribute/get-attributes.d.ts +21 -7
  8. package/dist/document/query/get/attribute/get-attributes.d.ts.map +1 -1
  9. package/dist/document/query/main.d.ts +51 -11
  10. package/dist/document/query/main.d.ts.map +1 -1
  11. package/dist/document/query/snapshot/snapshot.types.d.ts +7 -0
  12. package/dist/document/query/snapshot/snapshot.types.d.ts.map +1 -1
  13. package/dist/document/transaction/create/create.d.ts.map +1 -1
  14. package/dist/document/transaction/create/create.types.d.ts +32 -2
  15. package/dist/document/transaction/create/create.types.d.ts.map +1 -1
  16. package/dist/document/transaction/update/update.d.ts.map +1 -1
  17. package/dist/document/types.extensions.d.ts +23 -8
  18. package/dist/document/types.extensions.d.ts.map +1 -1
  19. package/dist/errors/codes.d.ts +8 -0
  20. package/dist/errors/codes.d.ts.map +1 -1
  21. package/dist/helpers/assert-fixed.d.ts +14 -0
  22. package/dist/helpers/assert-fixed.d.ts.map +1 -0
  23. package/dist/helpers/converter.d.ts +2 -2
  24. package/dist/helpers/converter.d.ts.map +1 -1
  25. package/dist/helpers/index.d.ts +1 -0
  26. package/dist/helpers/index.d.ts.map +1 -1
  27. package/dist/helpers/standardizing.d.ts +2 -2
  28. package/dist/helpers/standardizing.d.ts.map +1 -1
  29. package/dist/helpers.js +105 -84
  30. package/dist/index.js +3 -3
  31. package/dist/project/project.d.ts +24 -0
  32. package/dist/project/project.d.ts.map +1 -1
  33. package/dist/{project-E32sEthh.js → project-wohrish5.js} +1444 -1239
  34. package/dist/store/in-memory/in-memory-store.d.ts +10 -0
  35. package/dist/store/in-memory/in-memory-store.d.ts.map +1 -1
  36. package/dist/store/local/dexie-store.d.ts +38 -0
  37. package/dist/store/local/dexie-store.d.ts.map +1 -1
  38. package/dist/store/store.types.d.ts +17 -0
  39. package/dist/store/store.types.d.ts.map +1 -1
  40. package/dist/test.js +1 -1
  41. package/dist/types/dialecte-config.d.ts +70 -20
  42. package/dist/types/dialecte-config.d.ts.map +1 -1
  43. package/dist/utils/attribute-rules.d.ts +43 -27
  44. package/dist/utils/attribute-rules.d.ts.map +1 -1
  45. package/dist/utils/attribute-rules.types.d.ts +41 -0
  46. package/dist/utils/attribute-rules.types.d.ts.map +1 -0
  47. package/dist/{utils-DgKwrT2n.js → utils-C5_11hqg.js} +42 -8
  48. package/dist/utils.js +2 -2
  49. package/dist/xml/build/build-xml-document.d.ts.map +1 -1
  50. package/dist/xml/build/build-xml-document.types.d.ts +8 -0
  51. package/dist/xml/build/build-xml-document.types.d.ts.map +1 -1
  52. package/package.json +2 -1
@@ -16,6 +16,8 @@ import { AnyRawRecord, BlobAttachment, BlobRecord, RecordPatch } from '../../typ
16
16
  export declare class InMemoryStore implements Store {
17
17
  readonly name: string;
18
18
  private readonly writable;
19
+ /** Guard so the cross-realm no-op warning is emitted at most once per session. */
20
+ private static reconcileWarned;
19
21
  private documents;
20
22
  private records;
21
23
  private changelog;
@@ -26,6 +28,14 @@ export declare class InMemoryStore implements Store {
26
28
  open(): Promise<void>;
27
29
  close(): void;
28
30
  destroy(): Promise<void>;
31
+ /**
32
+ * No-op: in-memory data is not shared across realms/tabs, so there is nothing
33
+ * to reconcile. Warns once to flag that a cross-realm setup (e.g. iframe
34
+ * extensions) will not see documents imported in another realm with this store.
35
+ */
36
+ reconcile(): Promise<void>;
37
+ /** Readiness reduces to liveness for in-memory: readable iff registered. */
38
+ isDocumentReadable(documentId: string): Promise<boolean>;
29
39
  registerDocument(file: DocumentRecord): Promise<void>;
30
40
  getDocument(documentId: string): Promise<DocumentRecord | undefined>;
31
41
  getDocuments(): Promise<DocumentRecord[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-store.d.ts","sourceRoot":"","sources":["../../../src/store/in-memory/in-memory-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"in-memory-store.d.ts","sourceRoot":"","sources":["../../../src/store/in-memory/in-memory-store.ts"],"names":[],"mappings":"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"}
@@ -26,10 +26,28 @@ export declare class DexieStore implements Store {
26
26
  private knownDocuments;
27
27
  /** Serialization lock for schema-changing operations */
28
28
  private schemaLock;
29
+ /**
30
+ * Set when another connection/realm upgraded the shared schema (an import
31
+ * elsewhere added an xel_<id> table) and IndexedDB closed our connection via
32
+ * `versionchange`. The next data access self-heals through ensureCurrentSchema.
33
+ */
34
+ private stale;
29
35
  constructor(projectName: string, options?: DexieStoreOptions);
30
36
  open(): Promise<void>;
31
37
  close(): void;
32
38
  destroy(): Promise<void>;
39
+ /**
40
+ * Bring this connection in sync with the shared persisted state (document
41
+ * registry + schema). Used by the owning Project when a cross-realm import /
42
+ * removal broadcast arrives, so a subsequent read sees the new partition.
43
+ */
44
+ reconcile(): Promise<void>;
45
+ /**
46
+ * Read-only probe: can this connection serve the document's records right now?
47
+ * True only when the document is registered here and its backing table exists
48
+ * in the current schema. Does not mutate - call reconcile() first to self-heal.
49
+ */
50
+ isDocumentReadable(documentId: string): Promise<boolean>;
33
51
  registerDocument(file: DocumentRecord): Promise<void>;
34
52
  getDocument(documentId: string): Promise<DocumentRecord | undefined>;
35
53
  getDocuments(): Promise<DocumentRecord[]>;
@@ -82,6 +100,26 @@ export declare class DexieStore implements Store {
82
100
  private buildStores;
83
101
  /** Close DB, bump version, reopen with updated schema */
84
102
  private reopenWithNewSchema;
103
+ /**
104
+ * (Re)build this connection from persisted state: read the document registry
105
+ * and schema version written by any realm, then open the main connection with
106
+ * the full set of per-document tables. Used on open() and to self-heal after a
107
+ * foreign schema change (see attachVersionChangeHandler / ensureCurrentSchema).
108
+ */
109
+ private reloadFromPersisted;
110
+ /**
111
+ * Release this connection when another realm/connection upgrades the shared
112
+ * schema (e.g. a document imported elsewhere adds an xel_<id> table). Closing
113
+ * unblocks the other connection's upgrade; the stale flag makes the next data
114
+ * access self-heal via ensureCurrentSchema.
115
+ */
116
+ private attachVersionChangeHandler;
117
+ /**
118
+ * Guard run before every data access. Cheap no-op unless a foreign schema
119
+ * change flagged this connection stale, in which case it rebuilds the
120
+ * connection from persisted state before the access proceeds.
121
+ */
122
+ private ensureCurrentSchema;
85
123
  /** Serialize schema-changing operations */
86
124
  private withSchemaLock;
87
125
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"dexie-store.d.ts","sourceRoot":"","sources":["../../../src/store/local/dexie-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dexie-store.d.ts","sourceRoot":"","sources":["../../../src/store/local/dexie-store.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,23 @@ export interface Store {
37
37
  close(): void;
38
38
  /** Delete the database entirely (not just clear — remove from browser) */
39
39
  destroy(): Promise<void>;
40
+ /**
41
+ * Bring this connection in sync with the shared persisted state (document
42
+ * registry + schema) so a subsequent read sees documents imported/removed by
43
+ * another realm or tab.
44
+ *
45
+ * Backend semantics: DexieStore adopts the persisted schema version and
46
+ * reopens with the full set of per-document tables; a server-backed store
47
+ * would invalidate its cache / refetch metadata; InMemoryStore is a no-op
48
+ * (its data is not shared across realms).
49
+ */
50
+ reconcile(documentId?: string): Promise<void>;
51
+ /**
52
+ * Read-only probe: can this connection serve the document's records right
53
+ * now? Does not mutate — call reconcile() first to self-heal a stale
54
+ * connection.
55
+ */
56
+ isDocumentReadable(documentId: string): Promise<boolean>;
40
57
  /** Register a new document — creates its backing storage partition */
41
58
  registerDocument(file: DocumentRecord): Promise<void>;
42
59
  /** Get a document record by id */
@@ -1 +1 @@
1
- {"version":3,"file":"store.types.d.ts","sourceRoot":"","sources":["../../src/store/store.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.types.d.ts","sourceRoot":"","sources":["../../src/store/store.types.ts"],"names":[],"mappings":"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"}
package/dist/test.js CHANGED
@@ -1,4 +1,4 @@
1
- import { dt as e, t, u as n, z as r } from "./project-E32sEthh.js";
1
+ import { dt as e, t, u as n, z as r } from "./project-wohrish5.js";
2
2
  import { DIALECTE_NAMESPACES as i, standardizeRecord as a, toTrackedRecord as o, toTreeRecord as s } from "./helpers.js";
3
3
  import { expect as c, it as l } from "vitest";
4
4
  //#region src/test/assert-xml/xpath-parser.ts
@@ -113,26 +113,6 @@ export type AnyDialecteConfig = RawDialecteConfig<readonly string[], string, Rec
113
113
  */
114
114
  export type ElementsOf<GenericConfig extends AnyDialecteConfig> = GenericConfig['elements'][number];
115
115
  export type AnyElement = string;
116
- /**
117
- * Get attributes type for a specific element from dialecte config
118
- */
119
- export type AttributesValueObjectOf<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>> = GenericConfig['attributes'][GenericElement];
120
- export type AnyAttributesValueObject = Record<string, string>;
121
- /**
122
- * Get attribute name union for a specific element from dialecte config
123
- */
124
- export type AttributesOf<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>> = keyof AttributesValueObjectOf<GenericConfig, GenericElement> & string;
125
- export type AnyAttributeName = string;
126
- /**
127
- * Get attribute object type for a specific element from dialecte config
128
- */
129
- export type FullAttributeObjectOf<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>> = {
130
- [K in AttributesOf<GenericConfig, GenericElement>]: {
131
- name: K;
132
- value: AttributesValueObjectOf<GenericConfig, GenericElement>[K];
133
- namespace?: Namespace;
134
- };
135
- }[AttributesOf<GenericConfig, GenericElement>];
136
116
  /**
137
117
  * Get valid children elements for a specific element from dialecte config
138
118
  */
@@ -162,4 +142,74 @@ export type RootElementOf<GenericConfig extends AnyDialecteConfig> = GenericConf
162
142
  * Always includes the root element — a root is by definition a singleton.
163
143
  */
164
144
  export type SingletonElementsOf<GenericConfig extends AnyDialecteConfig> = GenericConfig['rootElementName'] | (GenericConfig['singletonElements'] extends readonly (infer E)[] ? E : never);
145
+ /**
146
+ * Get attributes type for a specific element from dialecte config
147
+ */
148
+ export type AttributesValueObjectOf<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>> = GenericConfig['attributes'][GenericElement];
149
+ export type AnyAttributesValueObject = Record<string, string>;
150
+ /**
151
+ * Get attribute name union for a specific element from dialecte config
152
+ */
153
+ export type AttributesOf<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>> = keyof AttributesValueObjectOf<GenericConfig, GenericElement> & string;
154
+ export type AnyAttributeName = string;
155
+ /**
156
+ * Get attribute object type for a specific element from dialecte config
157
+ */
158
+ export type FullAttributeObjectOf<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>> = {
159
+ [K in AttributesOf<GenericConfig, GenericElement>]: {
160
+ name: K;
161
+ value: AttributesValueObjectOf<GenericConfig, GenericElement>[K];
162
+ namespace?: Namespace;
163
+ };
164
+ }[AttributesOf<GenericConfig, GenericElement>];
165
+ /**
166
+ * A loose attribute shape accepted when authoring or converting attributes: a
167
+ * local (or canonical) `name`, a string `value`, and an optional namespace given
168
+ * either as a full `{ prefix, uri }` object (for custom namespaces) or a registered
169
+ * namespace *scope* string — a `config.namespaces` key such as `'ext'`. The stored
170
+ * name is derived from the resolved namespace.
171
+ */
172
+ export type AttributeInputOf<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>> = {
173
+ name: AttributesOf<GenericConfig, GenericElement> | (string & {});
174
+ value: string;
175
+ namespace?: Namespace | string;
176
+ };
177
+ /**
178
+ * The namespace map keys an author can scope by, excluding the implicit `default`
179
+ * namespace (which is the unscoped case). For the test dialecte this is e.g.
180
+ * `'dev' | 'ext'`.
181
+ */
182
+ export type NamespaceKeysOf<GenericConfig extends AnyDialecteConfig> = Exclude<keyof GenericConfig['namespaces'], 'default'> & string;
183
+ /** The XML prefix declared for a namespace key (the `prefix` on `config.namespaces[key]`). */
184
+ export type PrefixOfNamespaceKey<GenericConfig extends AnyDialecteConfig, GenericNamespaceKey extends keyof GenericConfig['namespaces']> = GenericConfig['namespaces'][GenericNamespaceKey] extends {
185
+ prefix: infer GenericPrefix;
186
+ } ? GenericPrefix & string : never;
187
+ /** The set of prefixes actually used by an element's namespaced attributes. */
188
+ type PrefixesUsedByElement<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>> = {
189
+ [K in AttributesOf<GenericConfig, GenericElement>]: K extends `${infer GenericPrefix}:${string}` ? GenericPrefix : never;
190
+ }[AttributesOf<GenericConfig, GenericElement>];
191
+ /**
192
+ * The namespace keys an element actually carries attributes for, so a scoping
193
+ * option only suggests namespaces that make sense for that element. A raw string
194
+ * is still accepted (via `(string & {})` at the call site) for custom namespaces.
195
+ */
196
+ export type NamespaceKeysUsedByElement<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>> = {
197
+ [K in NamespaceKeysOf<GenericConfig>]: PrefixOfNamespaceKey<GenericConfig, K> extends PrefixesUsedByElement<GenericConfig, GenericElement> ? K : never;
198
+ }[NamespaceKeysOf<GenericConfig>];
199
+ /** Value object of an element's default-namespace (unprefixed) attributes only. */
200
+ export type DefaultAttributesValueObjectOf<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>> = {
201
+ [K in keyof AttributesValueObjectOf<GenericConfig, GenericElement> as K extends `${string}:${string}` ? never : K]: AttributesValueObjectOf<GenericConfig, GenericElement>[K];
202
+ };
203
+ /**
204
+ * Value object of an element's attributes within a given namespace key, re-keyed
205
+ * by **local** name (the prefix is stripped since the scope already fixes it).
206
+ */
207
+ export type NamespacedAttributesValueObjectOf<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>, GenericNamespaceKey extends NamespaceKeysOf<GenericConfig>> = {
208
+ [K in keyof AttributesValueObjectOf<GenericConfig, GenericElement> as K extends `${PrefixOfNamespaceKey<GenericConfig, GenericNamespaceKey>}:${infer GenericLocal}` ? GenericLocal : never]: AttributesValueObjectOf<GenericConfig, GenericElement>[K];
209
+ };
210
+ /** Local attribute names available under a namespace key for an element. */
211
+ export type LocalAttributeNamesInNamespace<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>, GenericNamespaceKey extends NamespaceKeysOf<GenericConfig>> = keyof NamespacedAttributesValueObjectOf<GenericConfig, GenericElement, GenericNamespaceKey> & string;
212
+ /** Default-namespace (unprefixed) attribute names for an element. */
213
+ export type DefaultAttributeNamesOf<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>> = keyof DefaultAttributesValueObjectOf<GenericConfig, GenericElement> & string;
214
+ export {};
165
215
  //# 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,42 +1,58 @@
1
+ import { AttributeDefaults, AttributeRules } from './attribute-rules.types';
1
2
  import { AnyDialecteConfig, Namespace } from '../types';
2
- /**
3
- * Schema-derived facts about a single attribute of an element.
4
- *
5
- * Single source of truth shared by `standardizeRecord` (which builds the
6
- * canonical stored form) and export's `shouldSkipDefaultAttribute` (which
7
- * shapes output). Centralizing the schema reads here keeps the two paths from
8
- * silently drifting apart — the analog of `orderByConfigSequence` for the
9
- * "which attributes belong, in what shape" question.
10
- */
11
- export type AttributeRules = {
12
- /** The tag is a known dialecte element with a definition. */
13
- isKnownElement: boolean;
14
- /** The attribute is declared in the element's schema. */
15
- isDefined: boolean;
16
- /** The attribute is required by the schema. */
17
- isRequired: boolean;
18
- /** The attribute is part of the element's identity (key/unique) fields. */
19
- isIdentityField: boolean;
20
- /** Schema fixed value, if any (takes precedence over default). */
21
- fixed: string | undefined;
22
- /** Schema default value, if any. */
23
- default: string | undefined;
24
- /** Schema-declared namespace for the attribute, if any. */
25
- namespace: Namespace | undefined;
26
- };
3
+ export type { AttributeDefaults, AttributeRules } from './attribute-rules.types';
27
4
  export declare function getAttributeRules(params: {
28
5
  dialecteConfig: AnyDialecteConfig;
29
6
  tagName: string;
30
7
  attributeName: string;
31
8
  }): AttributeRules;
9
+ /**
10
+ * The schema value to inject for an **absent** attribute, per the requested view.
11
+ * Derived entirely from {@link getAttributeRules}, so read, compare, and export share
12
+ * one source of truth. Returns `undefined` when nothing should be injected. A stored
13
+ * value always wins and is handled by the caller before this is consulted.
14
+ */
15
+ export declare function resolveSchemaAttributeValue(params: {
16
+ dialecteConfig: AnyDialecteConfig;
17
+ tagName: string;
18
+ attributeName: string;
19
+ defaults: AttributeDefaults;
20
+ }): string | undefined;
21
+ /**
22
+ * Whether a value equals the attribute's schema default for COMPARE: matches the
23
+ * `fixed` value if any, else the `default` (including an empty-string default).
24
+ * Compare sites drop attributes for which this is true so that an authored
25
+ * default-equal value and an absent attribute fold to the same thing.
26
+ */
27
+ export declare function isSchemaDefaultValue(params: {
28
+ dialecteConfig: AnyDialecteConfig;
29
+ tagName: string;
30
+ attributeName: string;
31
+ value: string;
32
+ }): boolean;
32
33
  /** Local part of an attribute name — strips a namespace prefix if present (`a:b` → `b`). */
33
34
  export declare function extractLocalName(name: string): string;
34
35
  /**
35
- * Resolve a namespace declared in the config by its prefix (e.g. `xsi`,
36
- * `eIEC61850-6-100`). Returns `undefined` for an empty prefix or an unknown one —
36
+ * Resolve a namespace declared in the config by its prefix (e.g. `ext`,
37
+ * `dev`). Returns `undefined` for an empty prefix or an unknown one —
37
38
  * consumers cannot extend `config.namespaces`, so an unknown prefix is a caller error.
38
39
  */
39
40
  export declare function resolveNamespaceByPrefix(dialecteConfig: AnyDialecteConfig, prefix: string): Namespace | undefined;
41
+ /**
42
+ * Resolve a namespace *scope* string to its full `Namespace`. A scope is normally a
43
+ * `config.namespaces` key (e.g. `ext`, `dev`); as a fallback it is matched
44
+ * against declared prefixes. Returns `undefined` when the scope is neither a known
45
+ * key nor a known prefix — an authoring error, since a registered namespace must be
46
+ * referenced by key (use a full `{ prefix, uri }` object for custom namespaces).
47
+ */
48
+ export declare function resolveNamespaceByScope(dialecteConfig: AnyDialecteConfig, scope: string): Namespace | undefined;
49
+ /**
50
+ * Resolve the XML prefix to store attributes under for a namespace *scope*.
51
+ * The scope is normally a config namespace **key** (e.g. `ext`, `dev`), which we map
52
+ * to its declared prefix. If the scope is not a declared key it is treated as a raw
53
+ * prefix, so callers can still target custom namespaces the config is unaware of.
54
+ */
55
+ export declare function resolvePrefixByNamespaceScope(dialecteConfig: AnyDialecteConfig, namespaceScope: string): string;
40
56
  /**
41
57
  * Stable, deterministic ordering for attributes that fall outside an element's
42
58
  * schema `sequence` (extra namespaced attributes: `xmlns`/`xmlns:*` and
@@ -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,SAAS,EAAE,MAAM,SAAS,CAAA;AAE3D;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B,6DAA6D;IAC7D,cAAc,EAAE,OAAO,CAAA;IACvB,yDAAyD;IACzD,SAAS,EAAE,OAAO,CAAA;IAClB,+CAA+C;IAC/C,UAAU,EAAE,OAAO,CAAA;IACnB,2EAA2E;IAC3E,eAAe,EAAE,OAAO,CAAA;IACxB,kEAAkE;IAClE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,oCAAoC;IACpC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,2DAA2D;IAC3D,SAAS,EAAE,SAAS,GAAG,SAAS,CAAA;CAChC,CAAA;AAED,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,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,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":"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"}
@@ -0,0 +1,41 @@
1
+ import { Namespace } from '../types';
2
+ /**
3
+ * Schema-derived facts about a single attribute of an element.
4
+ *
5
+ * Single source of truth shared by `standardizeRecord` (which builds the
6
+ * canonical stored form) and export's `shouldSkipDefaultAttribute` (which
7
+ * shapes output). Centralizing the schema reads here keeps the two paths from
8
+ * silently drifting apart — the analog of `orderByConfigSequence` for the
9
+ * "which attributes belong, in what shape" question.
10
+ */
11
+ export type AttributeRules = {
12
+ /** The tag is a known dialecte element with a definition. */
13
+ isKnownElement: boolean;
14
+ /** The attribute is declared in the element's schema. */
15
+ isDefined: boolean;
16
+ /** The attribute is required by the schema. */
17
+ isRequired: boolean;
18
+ /** The attribute is part of the element's identity (key/unique) fields. */
19
+ isIdentityField: boolean;
20
+ /** Schema fixed value, if any (takes precedence over default). */
21
+ fixed: string | undefined;
22
+ /** Schema default value, if any. */
23
+ default: string | undefined;
24
+ /** Schema-declared namespace for the attribute, if any. */
25
+ namespace: Namespace | undefined;
26
+ };
27
+ /**
28
+ * How absent attributes are resolved against the schema when reading or serializing.
29
+ * The single knob shared by every read function and by export:
30
+ * - `'none'` — faithful: inject nothing (stored-only).
31
+ * - `'optional'` — read view: `fixed`, else a **non-empty** `default` (skips a
32
+ * `required`-without-default attr and empty-string defaults).
33
+ * - `'required'` — XSD/export view: for a `required` **or** `fixed` attribute,
34
+ * `fixed ?? default ?? ''`; nothing for optional-only defaults.
35
+ *
36
+ * These are two category-targeted views, not a cumulative scale: `optional` fills
37
+ * available defaults + fixed but never fabricates an empty required attr, and
38
+ * `required` fills required + fixed but not optional defaults.
39
+ */
40
+ export type AttributeDefaults = 'none' | 'optional' | 'required';
41
+ //# sourceMappingURL=attribute-rules.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribute-rules.types.d.ts","sourceRoot":"","sources":["../../src/utils/attribute-rules.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B,6DAA6D;IAC7D,cAAc,EAAE,OAAO,CAAA;IACvB,yDAAyD;IACzD,SAAS,EAAE,OAAO,CAAA;IAClB,+CAA+C;IAC/C,UAAU,EAAE,OAAO,CAAA;IACnB,2EAA2E;IAC3E,eAAe,EAAE,OAAO,CAAA;IACxB,kEAAkE;IAClE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,oCAAoC;IACpC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,2DAA2D;IAC3D,SAAS,EAAE,SAAS,GAAG,SAAS,CAAA;CAChC,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAA"}
@@ -80,6 +80,14 @@ var e = {
80
80
  code: "D3006",
81
81
  message: "Unknown namespace prefix on attribute — pass it explicitly as { name, namespace: { prefix, uri } }"
82
82
  },
83
+ PREFIXED_ATTRIBUTE_NAME: {
84
+ code: "D3007",
85
+ message: "Authored attribute name must be a local name — pass the namespace separately as { name, namespace }, not a prefixed name"
86
+ },
87
+ FIXED_VALUE_VIOLATION: {
88
+ code: "D3008",
89
+ message: "Attribute value differs from the schema-fixed value"
90
+ },
83
91
  ALREADY_COMMITTED: {
84
92
  code: "D4001",
85
93
  message: "Transaction already committed"
@@ -167,23 +175,49 @@ function r(e) {
167
175
  };
168
176
  }
169
177
  function i(e) {
178
+ let { dialecteConfig: t, tagName: n, attributeName: i, defaults: a } = e;
179
+ if (a === "none") return;
180
+ let o = r({
181
+ dialecteConfig: t,
182
+ tagName: n,
183
+ attributeName: i
184
+ });
185
+ if (a === "required") return o.isRequired || o.fixed !== void 0 ? o.fixed ?? o.default ?? "" : void 0;
186
+ if (o.fixed !== void 0) return o.fixed;
187
+ if (o.default) return o.default;
188
+ }
189
+ function a(e) {
190
+ let { dialecteConfig: t, tagName: n, attributeName: i, value: a } = e, o = r({
191
+ dialecteConfig: t,
192
+ tagName: n,
193
+ attributeName: i
194
+ }), s = o.fixed ?? o.default;
195
+ return s !== void 0 && a === s;
196
+ }
197
+ function o(e) {
170
198
  let t = e.lastIndexOf(":");
171
199
  return t === -1 ? e : e.slice(t + 1);
172
200
  }
173
- function a(e, t) {
201
+ function s(e, t) {
174
202
  if (t) return Object.values(e.namespaces).find((e) => e.prefix === t);
175
203
  }
176
- function o(e, t) {
204
+ function c(e, t) {
205
+ return e.namespaces[t] ?? s(e, t);
206
+ }
207
+ function l(e, t) {
208
+ return e.namespaces[t]?.prefix ?? t;
209
+ }
210
+ function u(e, t) {
177
211
  let n = e.namespace?.uri ?? "", r = t.namespace?.uri ?? "";
178
212
  return n === r ? e.name === t.name ? 0 : e.name < t.name ? -1 : 1 : n < r ? -1 : 1;
179
213
  }
180
- function s(e, t) {
181
- let n = t.flatMap((t) => e.filter((e) => e.name === t)), r = e.filter((e) => !t.includes(e.name)).sort(o);
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);
182
216
  return [...n, ...r];
183
217
  }
184
218
  //#endregion
185
219
  //#region src/utils/invariant.ts
186
- function c(e, n) {
220
+ function f(e, n) {
187
221
  if (e) return;
188
222
  let { detail: r, key: i = "ASSERTION_FAILED", ref: a } = n;
189
223
  t(i, {
@@ -193,7 +227,7 @@ function c(e, n) {
193
227
  }
194
228
  //#endregion
195
229
  //#region src/utils/order-children.ts
196
- function l(e) {
230
+ function p(e) {
197
231
  let { parentTagName: t, children: n, childrenConfig: r } = e, i = r[t];
198
232
  if (!i || i.length === 0) return n;
199
233
  let a = new Set(i), o = /* @__PURE__ */ new Map();
@@ -212,7 +246,7 @@ function l(e) {
212
246
  }
213
247
  //#endregion
214
248
  //#region src/utils/save-to-disk.ts
215
- async function u(e) {
249
+ async function m(e) {
216
250
  let { data: t, filename: n, pickerType: r } = e;
217
251
  if ("showSaveFilePicker" in window) try {
218
252
  let e = await (await window.showSaveFilePicker({
@@ -230,4 +264,4 @@ async function u(e) {
230
264
  a.href = i, a.download = n, document.body.appendChild(a), a.click(), a.remove(), URL.revokeObjectURL(i);
231
265
  }
232
266
  //#endregion
233
- export { i as a, a as c, o as i, t as l, l as n, r as o, c as r, s, u as t, e as u };
267
+ export { o as a, d as c, l as d, i as f, u as i, s as l, e as m, p as n, r as o, t as p, f as r, a as s, m as t, c as u };
package/dist/utils.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "./utils-DgKwrT2n.js";
2
- export { n as compareQualifiedAttributes, e as extractLocalName, i as getAttributeRules, a as invariant, o as orderAttributesBySequence, r as orderByConfigSequence, t as resolveNamespaceByPrefix, s as saveToDisk };
1
+ import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, r as c, s as l, t as u, u as d } from "./utils-C5_11hqg.js";
2
+ export { i as compareQualifiedAttributes, e as extractLocalName, s as getAttributeRules, c as invariant, l as isSchemaDefaultValue, t as orderAttributesBySequence, o as orderByConfigSequence, a as resolveNamespaceByPrefix, d as resolveNamespaceByScope, n as resolvePrefixByNamespaceScope, r as resolveSchemaAttributeValue, u as saveToDisk };
@@ -1 +1 @@
1
- {"version":3,"file":"build-xml-document.d.ts","sourceRoot":"","sources":["../../../src/xml/build/build-xml-document.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAWxE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,WAAW,CAmE5E"}
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"}
@@ -10,5 +10,13 @@ export type BuildXmlDocumentParams = {
10
10
  * (e.g. a lone `LN`) is not stamped with document-root attributes.
11
11
  */
12
12
  rootId?: string;
13
+ /**
14
+ * Emit namespace declarations (`xmlns` / `xmlns:*`). Defaults to `true`.
15
+ * Set `false` to render a bare fragment whose elements keep their literal
16
+ * (possibly prefixed) tag names but carry no namespace declarations — so a
17
+ * scoped snapshot reads like an excerpt nested in its file rather than a
18
+ * standalone document.
19
+ */
20
+ declareNamespaces?: boolean;
13
21
  };
14
22
  //# sourceMappingURL=build-xml-document.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-xml-document.types.d.ts","sourceRoot":"","sources":["../../../src/xml/build/build-xml-document.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE9D,MAAM,MAAM,sBAAsB,GAAG;IACpC,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,MAAM,EAAE,iBAAiB,CAAA;IACzB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CACf,CAAA"}
1
+ {"version":3,"file":"build-xml-document.types.d.ts","sourceRoot":"","sources":["../../../src/xml/build/build-xml-document.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE9D,MAAM,MAAM,sBAAsB,GAAG;IACpC,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,MAAM,EAAE,iBAAiB,CAAA;IACzB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dialecte/core",
3
- "version": "0.4.2",
3
+ "version": "0.4.5",
4
4
  "description": "Dialecte - Core functionality for Dialecte SDK",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -34,6 +34,7 @@
34
34
  "//====== BUILD ======//": "",
35
35
  "build": "run-p type-check \"build-only {@}\" --",
36
36
  "build-only": "tsc -p tsconfig.json && vite build",
37
+ "build:watch": "vite build --watch",
37
38
  "//====== VITEPRESS ======//": "",
38
39
  "doc:dev": "vitepress dev",
39
40
  "doc:build": "vitepress build",