@dialecte/core 0.4.0 → 0.4.3

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.
@@ -4,7 +4,11 @@ import { BoundExtensionMap, ExtensionMap, QueryExtensionFn, TransactionExtension
4
4
  * Each function in the map gets `instance` prepended as its first argument,
5
5
  * so the public API signature has that argument stripped.
6
6
  *
7
- * Returns a frozen object of { GroupName: { methodName: boundFn } }.
7
+ * Groups may be nested to arbitrary depth: a value is either an extension
8
+ * function (a leaf, bound to the instance) or a nested group (recursed into).
9
+ * So `{ a: { aa: { getItems } } }` yields `instance.a.aa.getItems`.
10
+ *
11
+ * Returns an object mirroring the map's shape with each function bound.
8
12
  */
9
13
  export declare function bindExtensions<GenericExtensionsMap extends ExtensionMap<QueryExtensionFn | TransactionExtensionFn>>(extensionMap: GenericExtensionsMap | undefined, instance: unknown): BoundExtensionMap<GenericExtensionsMap>;
10
14
  //# sourceMappingURL=bind-extensions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bind-extensions.d.ts","sourceRoot":"","sources":["../../src/document/bind-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,MAAM,oBAAoB,CAAA;AAE3B;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC7B,oBAAoB,SAAS,YAAY,CAAC,gBAAgB,GAAG,sBAAsB,CAAC,EAEpF,YAAY,EAAE,oBAAoB,GAAG,SAAS,EAC9C,QAAQ,EAAE,OAAO,GACf,iBAAiB,CAAC,oBAAoB,CAAC,CAgBzC"}
1
+ {"version":3,"file":"bind-extensions.d.ts","sourceRoot":"","sources":["../../src/document/bind-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,MAAM,oBAAoB,CAAA;AAE3B;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC7B,oBAAoB,SAAS,YAAY,CAAC,gBAAgB,GAAG,sBAAsB,CAAC,EAEpF,YAAY,EAAE,oBAAoB,GAAG,SAAS,EAC9C,QAAQ,EAAE,OAAO,GACf,iBAAiB,CAAC,oBAAoB,CAAC,CAIzC"}
@@ -8,6 +8,9 @@ import { AnyDialecteConfig, ElementsOf, TrackedRecord } from '../../../../types'
8
8
  * Always returns a TrackedRecord — 'unchanged' for clean store reads.
9
9
  *
10
10
  * Side effect: populates context.recordCache on store hits.
11
+ *
12
+ * @throws {@link DialecteError} `ELEMENT_TAGNAME_MISMATCH` when a record is found by id
13
+ * but its tagName differs from `ref.tagName` (mirrors the staged-lookup path).
11
14
  */
12
15
  export declare function getRecord<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>>(params: {
13
16
  context: Context<GenericConfig>;
@@ -1 +1 @@
1
- {"version":3,"file":"get-record.d.ts","sourceRoot":"","sources":["../../../../../src/document/query/get/record/get-record.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAa,aAAa,EAAE,MAAM,SAAS,CAAA;AAEtF;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAC9B,aAAa,SAAS,iBAAiB,EACvC,cAAc,SAAS,UAAU,CAAC,aAAa,CAAC,EAC/C,MAAM,EAAE;IACT,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IAC/B,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;CAC/C,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,SAAS,CAAC,CAgDpE"}
1
+ {"version":3,"file":"get-record.d.ts","sourceRoot":"","sources":["../../../../../src/document/query/get/record/get-record.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAa,aAAa,EAAE,MAAM,SAAS,CAAA;AAEtF;;;;;;;;;;;GAWG;AACH,wBAAsB,SAAS,CAC9B,aAAa,SAAS,iBAAiB,EACvC,cAAc,SAAS,UAAU,CAAC,aAAa,CAAC,EAC/C,MAAM,EAAE;IACT,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IAC/B,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;CAC/C,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,SAAS,CAAC,CAwDpE"}
@@ -35,6 +35,13 @@ export type GetSnapshotOptions<GenericConfig extends AnyDialecteConfig, GenericE
35
35
  omit?: OmitEntry<GenericConfig>[];
36
36
  unwrap?: ElementsOf<GenericConfig>[];
37
37
  as?: SnapshotFormat;
38
+ /**
39
+ * For `as: 'xml'` / `'both'`: emit namespace declarations (`xmlns` / `xmlns:*`).
40
+ * Defaults to `true`. Set `false` to render a bare fragment (literal, possibly
41
+ * prefixed tag names, no namespace declarations) that reads like an excerpt
42
+ * nested in its file rather than a standalone document.
43
+ */
44
+ declareNamespaces?: boolean;
38
45
  };
39
46
  export type SnapshotResult = {
40
47
  tree: AnyTreeRecord;
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.types.d.ts","sourceRoot":"","sources":["../../../../src/document/query/snapshot/snapshot.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE7F,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;AAEpD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,kBAAkB,CAC7B,aAAa,SAAS,iBAAiB,EACvC,cAAc,SAAS,UAAU,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,aAAa,CAAC,IACzE;IACH,GAAG,CAAC,EAAE,WAAW,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,GAAG;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IACzC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,EAAE,CAAA;IACjC,MAAM,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE,CAAA;IACpC,EAAE,CAAC,EAAE,cAAc,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,aAAa,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,gEAAgE;AAChE,MAAM,MAAM,iBAAiB,GAAG;IAC/B,+EAA+E;IAC/E,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,wEAAwE;IACxE,cAAc,EAAE,gBAAgB,EAAE,CAAA;IAClC,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAA;CACd,CAAA"}
1
+ {"version":3,"file":"snapshot.types.d.ts","sourceRoot":"","sources":["../../../../src/document/query/snapshot/snapshot.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE7F,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;AAEpD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,kBAAkB,CAC7B,aAAa,SAAS,iBAAiB,EACvC,cAAc,SAAS,UAAU,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,aAAa,CAAC,IACzE;IACH,GAAG,CAAC,EAAE,WAAW,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,GAAG;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IACzC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,EAAE,CAAA;IACjC,MAAM,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE,CAAA;IACpC,EAAE,CAAC,EAAE,cAAc,CAAA;IACnB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,aAAa,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,gEAAgE;AAChE,MAAM,MAAM,iBAAiB,GAAG;IAC/B,+EAA+E;IAC/E,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,wEAAwE;IACxE,cAAc,EAAE,gBAAgB,EAAE,CAAA;IAClC,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAA;CACd,CAAA"}
@@ -1,9 +1,19 @@
1
1
  import { AnyDialecteConfig, ElementsOf, ChildrenOf, Namespace, AttributesValueObjectOf, FullAttributeObjectOf } from '../../../types';
2
+ export type ChildAttributesOf<GenericConfig extends AnyDialecteConfig, GenericChildElement extends ElementsOf<GenericConfig>> = AttributesValueObjectOf<GenericConfig, GenericChildElement> | FullAttributeObjectOf<GenericConfig, GenericChildElement>[];
3
+ /**
4
+ * `attributes` is optional when the child element has no required attributes
5
+ * and required as soon as it declares at least one required attribute.
6
+ */
7
+ type AddChildAttributesParams<GenericConfig extends AnyDialecteConfig, GenericChildElement extends ElementsOf<GenericConfig>> = {} extends AttributesValueObjectOf<GenericConfig, GenericChildElement> ? {
8
+ attributes?: ChildAttributesOf<GenericConfig, GenericChildElement>;
9
+ } : {
10
+ attributes: ChildAttributesOf<GenericConfig, GenericChildElement>;
11
+ };
2
12
  export type AddChildParams<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>, GenericChildElement extends ChildrenOf<GenericConfig, GenericElement>> = {
3
13
  id?: `${string}-${string}-${string}-${string}-${string}`;
4
14
  tagName: GenericChildElement;
5
15
  namespace?: Namespace;
6
- attributes: AttributesValueObjectOf<GenericConfig, GenericChildElement> | FullAttributeObjectOf<GenericConfig, GenericChildElement>[];
7
16
  value?: string;
8
- };
17
+ } & AddChildAttributesParams<GenericConfig, GenericChildElement>;
18
+ export {};
9
19
  //# sourceMappingURL=create.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.types.d.ts","sourceRoot":"","sources":["../../../../src/document/transaction/create/create.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,SAAS,EACT,uBAAuB,EACvB,qBAAqB,EACrB,MAAM,SAAS,CAAA;AAEhB,MAAM,MAAM,cAAc,CACzB,aAAa,SAAS,iBAAiB,EACvC,cAAc,SAAS,UAAU,CAAC,aAAa,CAAC,EAChD,mBAAmB,SAAS,UAAU,CAAC,aAAa,EAAE,cAAc,CAAC,IAClE;IACH,EAAE,CAAC,EAAE,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAA;IACxD,OAAO,EAAE,mBAAmB,CAAA;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,UAAU,EACP,uBAAuB,CAAC,aAAa,EAAE,mBAAmB,CAAC,GAC3D,qBAAqB,CAAC,aAAa,EAAE,mBAAmB,CAAC,EAAE,CAAA;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAA;CACd,CAAA"}
1
+ {"version":3,"file":"create.types.d.ts","sourceRoot":"","sources":["../../../../src/document/transaction/create/create.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,SAAS,EACT,uBAAuB,EACvB,qBAAqB,EACrB,MAAM,SAAS,CAAA;AAEhB,MAAM,MAAM,iBAAiB,CAC5B,aAAa,SAAS,iBAAiB,EACvC,mBAAmB,SAAS,UAAU,CAAC,aAAa,CAAC,IAEnD,uBAAuB,CAAC,aAAa,EAAE,mBAAmB,CAAC,GAC3D,qBAAqB,CAAC,aAAa,EAAE,mBAAmB,CAAC,EAAE,CAAA;AAE9D;;;GAGG;AACH,KAAK,wBAAwB,CAC5B,aAAa,SAAS,iBAAiB,EACvC,mBAAmB,SAAS,UAAU,CAAC,aAAa,CAAC,IAErD,EAAE,SAAS,uBAAuB,CAAC,aAAa,EAAE,mBAAmB,CAAC,GACnE;IAAE,UAAU,CAAC,EAAE,iBAAiB,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAA;CAAE,GACtE;IAAE,UAAU,EAAE,iBAAiB,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAA;CAAE,CAAA;AAEzE,MAAM,MAAM,cAAc,CACzB,aAAa,SAAS,iBAAiB,EACvC,cAAc,SAAS,UAAU,CAAC,aAAa,CAAC,EAChD,mBAAmB,SAAS,UAAU,CAAC,aAAa,EAAE,cAAc,CAAC,IAClE;IACH,EAAE,CAAC,EAAE,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAA;IACxD,OAAO,EAAE,mBAAmB,CAAA;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd,GAAG,wBAAwB,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAA"}
@@ -1,3 +1,3 @@
1
1
  export { stageAddChild } from './create';
2
- export type { AddChildParams } from './create.types';
2
+ export type { AddChildParams, ChildAttributesOf } from './create.types';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/document/transaction/create/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/document/transaction/create/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA"}
@@ -4,10 +4,12 @@ import { AnyDialecteConfig, ElementsOf, ChildrenOf, RawRecord, TrackedRecord, Tr
4
4
  /**
5
5
  * Get an existing child record or create it under the given parent.
6
6
  *
7
- * Lookup strategy (in order):
8
- * 1. Non-empty attributes → findByAttributes, returns first match.
9
- * 2. No attributes → getRecord (by id if present, by tagName alone for singletons).
10
- * 3. No matchcreates.
7
+ * Lookup is always scoped to the direct children of `parentRef` (never document-wide),
8
+ * in this order:
9
+ * 1. Non-empty attributes → first sibling matching the attribute filter.
10
+ * 2. No attributes, id present first sibling with that id.
11
+ * 3. No attributes, no id (singleton) → first existing sibling with that tag name.
12
+ * 4. No match → creates.
11
13
  *
12
14
  * @example
13
15
  * // singleton
@@ -1 +1 @@
1
- {"version":3,"file":"ensure.d.ts","sourceRoot":"","sources":["../../../../src/document/transaction/ensure/ensure.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAoB,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AACvE,OAAO,KAAK,EACX,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,MAAM,SAAS,CAAA;AAEhB;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CACrC,aAAa,SAAS,iBAAiB,EACvC,cAAc,SAAS,UAAU,CAAC,aAAa,CAAC,EAChD,mBAAmB,SAAS,UAAU,CAAC,aAAa,EAAE,cAAc,CAAC,EACpE,MAAM,EAAE;IACT,cAAc,EAAE,aAAa,CAAA;IAC7B,KAAK,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAA;IACvC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IAC/B,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IAC3B,SAAS,EAAE,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;IAC7C,MAAM,EAAE,cAAc,CAAC,aAAa,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAA;CAC1E,GAAG,OAAO,CACV,aAAa,CAAC,aAAa,EAAE,mBAAmB,CAAC,GAAG,SAAS,CAAC,aAAa,EAAE,mBAAmB,CAAC,CACjG,CA6BA"}
1
+ {"version":3,"file":"ensure.d.ts","sourceRoot":"","sources":["../../../../src/document/transaction/ensure/ensure.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,wBAAwB,CAAA;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAoB,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AACvE,OAAO,KAAK,EACX,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,MAAM,SAAS,CAAA;AAEhB;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CACrC,aAAa,SAAS,iBAAiB,EACvC,cAAc,SAAS,UAAU,CAAC,aAAa,CAAC,EAChD,mBAAmB,SAAS,UAAU,CAAC,aAAa,EAAE,cAAc,CAAC,EACpE,MAAM,EAAE;IACT,cAAc,EAAE,aAAa,CAAA;IAC7B,KAAK,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAA;IACvC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IAC/B,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IAC3B,SAAS,EAAE,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;IAC7C,MAAM,EAAE,cAAc,CAAC,aAAa,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAA;CAC1E,GAAG,OAAO,CACV,aAAa,CAAC,aAAa,EAAE,mBAAmB,CAAC,GAAG,SAAS,CAAC,aAAa,EAAE,mBAAmB,CAAC,CACjG,CA6BA"}
@@ -16,9 +16,16 @@ export type QueryExtensionFn<GenericQuery = any> = (query: GenericQuery, ...args
16
16
  * Same variance considerations as `QueryExtensionFn`.
17
17
  */
18
18
  export type TransactionExtensionFn<GenericTransaction = any> = (tx: GenericTransaction, ...args: any[]) => any;
19
- /** A group of extension functions keyed by method name. */
20
- export type ExtensionGroup<Fn> = Record<string, Fn>;
21
- /** A map of PascalCase group names extension groups. */
19
+ /**
20
+ * A group of extension methods keyed by name. A value is either an extension
21
+ * function (a leaf) or a **nested group** (arbitrary depth), so an author can
22
+ * structure a module's API however they like, e.g. a module `a` exposing
23
+ * `{ aa: { getItems }, aaa: { getItems } }` -> `query.a.aa.getItems`.
24
+ */
25
+ export type ExtensionGroup<Fn> = {
26
+ [key: string]: Fn | ExtensionGroup<Fn>;
27
+ };
28
+ /** A map of group names -> extension groups (the per-side registry). */
22
29
  export type ExtensionMap<Fn> = Record<string, ExtensionGroup<Fn>>;
23
30
  /**
24
31
  * A single named extension module, grouping its query and transaction methods.
@@ -46,14 +53,21 @@ export type AssertNoCollision<Extensions extends Record<string, unknown>, Reserv
46
53
  };
47
54
  /** Strips the first argument from a function signature. */
48
55
  export type OmitFirstArg<GenericFn extends (...args: any[]) => any> = GenericFn extends (first: any, ...rest: infer Rest) => infer Return ? (...args: Rest) => Return : never;
56
+ /** Any extension function shape (leaf of an extension group). */
57
+ type AnyExtensionFn = (...args: any[]) => any;
49
58
  /**
50
- * Given a map of extension groups, produces the same structure
51
- * but with the first argument (query/tx) stripped from each function.
59
+ * Recursively strips the first argument (query/tx) from every function in a
60
+ * (possibly nested) extension group, preserving the nesting shape.
61
+ */
62
+ export type BoundGroup<GenericGroup> = {
63
+ [Key in keyof GenericGroup]: GenericGroup[Key] extends AnyExtensionFn ? OmitFirstArg<GenericGroup[Key]> : GenericGroup[Key] extends ExtensionGroup<QueryExtensionFn | TransactionExtensionFn> ? BoundGroup<GenericGroup[Key]> : never;
64
+ };
65
+ /**
66
+ * Given a map of extension groups, produces the same structure with the first
67
+ * argument stripped from each (possibly nested) function.
52
68
  */
53
69
  export type BoundExtensionMap<GenericExtensionsMap extends ExtensionMap<QueryExtensionFn | TransactionExtensionFn>> = {
54
- [GroupName in keyof GenericExtensionsMap]: {
55
- [MethodName in keyof GenericExtensionsMap[GroupName]]: OmitFirstArg<GenericExtensionsMap[GroupName][MethodName]>;
56
- };
70
+ [GroupName in keyof GenericExtensionsMap]: BoundGroup<GenericExtensionsMap[GroupName]>;
57
71
  };
58
72
  export type QueryExtensions<Ext extends ExtensionsRegistry> = Ext extends {
59
73
  query: infer Q extends ExtensionMap<QueryExtensionFn>;
@@ -78,4 +92,5 @@ export type MergedExtensions<Modules extends ExtensionModules> = {
78
92
  [K in keyof Modules as Modules[K]['transaction'] extends ExtensionGroup<TransactionExtensionFn> ? K : never]: Modules[K]['transaction'] extends ExtensionGroup<TransactionExtensionFn> ? Modules[K]['transaction'] : never;
79
93
  };
80
94
  };
95
+ export {};
81
96
  //# sourceMappingURL=types.extensions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.extensions.d.ts","sourceRoot":"","sources":["../../src/document/types.extensions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.extensions.d.ts","sourceRoot":"","sources":["../../src/document/types.extensions.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import { $ as e, A as t, B as n, C as r, D as i, E as a, F as o, G as s, H as c, I as l, J as u, K as d, L as f, M as p, N as m, O as h, P as g, Q as _, R as v, S as y, T as b, U as x, V as S, W as C, X as w, Y as T, Z as E, _ as D, a as O, at as k, b as A, c as j, ct as M, d as N, et as P, f as F, g as I, h as L, i as R, it as z, j as B, k as V, l as H, lt as U, m as W, n as G, nt as K, o as q, ot as J, p as Y, q as X, r as Z, rt as Q, s as $, st as ee, t as te, tt as ne, u as re, ut as ie, v as ae, w as oe, x as se, y as ce } from "./project-CblzZXzn.js";
1
+ import { $ as e, A as t, B as n, C as r, D as i, E as a, F as o, G as s, H as c, I as l, J as u, K as d, L as f, M as p, N as m, O as h, P as g, Q as _, R as v, S as y, T as b, U as x, V as S, W as C, X as w, Y as T, Z as E, _ as D, a as O, at as k, b as A, c as j, ct as M, d as N, et as P, f as F, g as I, h as L, i as R, it as z, j as B, k as V, l as H, lt as U, m as W, n as G, nt as K, o as q, ot as J, p as Y, q as X, r as Z, rt as Q, s as $, st as ee, t as te, tt as ne, u as re, ut as ie, v as ae, w as oe, x as se, y as ce } from "./project-D0KkiT1t.js";
2
2
  import { l as le, u as ue } from "./utils-DgKwrT2n.js";
3
3
  export { V as AnyQuery, i as AnyTransaction, N as BLOBS_SCHEMA, F as BLOB_DATA_SCHEMA, Y as CHANGELOG_SCHEMA, W as DOCUMENTS_SCHEMA, re as DexieStore, oe as Document, ue as ERROR_CATALOG, H as InMemoryStore, L as META_SCHEMA, p as ParseSession, te as Project, h as Query, I as TABLE_BLOBS, D as TABLE_BLOB_PREFIX, ae as TABLE_CHANGELOG, ce as TABLE_DOCUMENTS, A as TABLE_META, se as TABLE_RECORD_PREFIX, f as TEMP_IDB_ID_ATTRIBUTE_NAME, a as Transaction, C as applyOmit, x as applyOrder, u as applyUnwrap, ie as bindExtensions, y as blobTableName, R as buildDocumentState, g as buildXmlDocument, S as collectSnapshotRecords, o as downloadFile, q as exportBlob, $ as exportDocument, K as findAncestors, P as findByAttributes, e as findDescendants, v as formatXml, E as getAttribute, _ as getAttributeFullObject, T as getAttributes, w as getAttributesFullObject, z as getChild, Q as getChildren, ee as getRecord, J as getRecords, k as getRecordsByTagName, t as getSnapshot, c as getTree, Z as importDocument, M as indexStagedDeletesByParent, G as initEmptyDocument, m as inspectXml, s as isOmitted, b as isTransactionContext, ne as matchesAttributeFilter, U as overlayAllStaged, d as parseOmit, B as parseXmlFile, O as reconcileDocumentState, r as recordTableName, n as recordsToTree, j as resolveStore, X as shouldStopTraversal, le as throwDialecteError, l as xmlDocumentToString };