@getodk/xpath 0.2.1 → 0.3.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 (100) hide show
  1. package/dist/.vite/manifest.json +4 -4
  2. package/dist/adapter/WHAT/WHATNode.d.ts +30 -0
  3. package/dist/adapter/WHAT/kind.d.ts +11 -0
  4. package/dist/adapter/WHAT/names.d.ts +6 -0
  5. package/dist/adapter/WHAT/optimizations.d.ts +37 -0
  6. package/dist/adapter/WHAT/platform.d.ts +6 -0
  7. package/dist/adapter/WHAT/traversal.d.ts +14 -0
  8. package/dist/adapter/WHAT/values.d.ts +2 -0
  9. package/dist/adapter/WHAT/whatDOMAdapter.d.ts +5 -0
  10. package/dist/adapter/defaults.d.ts +26 -0
  11. package/dist/adapter/interface/XPathCustomUnwrappableNode.d.ts +55 -0
  12. package/dist/adapter/interface/XPathDOMAdapter.d.ts +16 -0
  13. package/dist/adapter/interface/XPathDOMOptimizableOperations.d.ts +13 -0
  14. package/dist/adapter/interface/XPathNameAdapter.d.ts +23 -0
  15. package/dist/adapter/interface/XPathNode.d.ts +164 -0
  16. package/dist/adapter/interface/XPathNodeKindAdapter.d.ts +15 -0
  17. package/dist/adapter/interface/XPathTraversalAdapter.d.ts +38 -0
  18. package/dist/adapter/interface/XPathValueAdapter.d.ts +9 -0
  19. package/dist/adapter/xpathDOMProvider.d.ts +80 -0
  20. package/dist/context/Context.d.ts +12 -9
  21. package/dist/context/EvaluationContext.d.ts +18 -28
  22. package/dist/error/IncompatibleRuntimeEnvironmentError.d.ts +2 -0
  23. package/dist/evaluations/BooleanEvaluation.d.ts +4 -3
  24. package/dist/evaluations/DateTimeLikeEvaluation.d.ts +4 -3
  25. package/dist/evaluations/Evaluation.d.ts +12 -11
  26. package/dist/evaluations/EvaluationType.d.ts +5 -3
  27. package/dist/evaluations/LocationPathEvaluation.d.ts +44 -67
  28. package/dist/evaluations/NodeEvaluation.d.ts +6 -5
  29. package/dist/evaluations/NumberEvaluation.d.ts +4 -3
  30. package/dist/evaluations/StringEvaluation.d.ts +4 -3
  31. package/dist/evaluations/ValueEvaluation.d.ts +11 -10
  32. package/dist/evaluator/DefaultEvaluator.d.ts +16 -0
  33. package/dist/evaluator/Evaluator.d.ts +32 -25
  34. package/dist/evaluator/NamespaceResolver.d.ts +16 -9
  35. package/dist/evaluator/expression/BinaryExpressionEvaluator.d.ts +2 -1
  36. package/dist/evaluator/expression/BooleanBinaryExpressionEvaluator.d.ts +5 -4
  37. package/dist/evaluator/expression/ExpressionEvaluator.d.ts +2 -1
  38. package/dist/evaluator/expression/FilterPathExpressionEvaluator.d.ts +2 -1
  39. package/dist/evaluator/expression/FunctionCallExpressionEvaluator.d.ts +2 -1
  40. package/dist/evaluator/expression/LocationPathEvaluator.d.ts +2 -1
  41. package/dist/evaluator/expression/LocationPathExpressionEvaluator.d.ts +3 -2
  42. package/dist/evaluator/expression/NumberExpressionEvaluator.d.ts +3 -2
  43. package/dist/evaluator/expression/NumericBinaryExpressionEvaluator.d.ts +2 -1
  44. package/dist/evaluator/expression/StringExpressionEvaluator.d.ts +3 -2
  45. package/dist/evaluator/expression/UnaryExpressionEvaluator.d.ts +2 -1
  46. package/dist/evaluator/expression/UnionExpressionEvaluator.d.ts +2 -1
  47. package/dist/evaluator/functions/BooleanFunction.d.ts +2 -2
  48. package/dist/evaluator/functions/FunctionAlias.d.ts +2 -2
  49. package/dist/evaluator/functions/FunctionImplementation.d.ts +14 -13
  50. package/dist/evaluator/functions/FunctionLibrary.d.ts +6 -5
  51. package/dist/evaluator/functions/FunctionLibraryCollection.d.ts +3 -2
  52. package/dist/evaluator/functions/NodeSetFunction.d.ts +4 -3
  53. package/dist/evaluator/functions/NumberFunction.d.ts +2 -2
  54. package/dist/evaluator/functions/StringFunction.d.ts +2 -2
  55. package/dist/evaluator/functions/TypedFunctionImplementation.d.ts +5 -3
  56. package/dist/evaluator/result/BaseResult.d.ts +13 -9
  57. package/dist/evaluator/result/BooleanResult.d.ts +5 -5
  58. package/dist/evaluator/result/NodeSetResult.d.ts +28 -32
  59. package/dist/evaluator/result/NumberResult.d.ts +5 -5
  60. package/dist/evaluator/result/PrimitiveResult.d.ts +7 -7
  61. package/dist/evaluator/result/StringResult.d.ts +5 -5
  62. package/dist/evaluator/result/XPathEvaluationResult.d.ts +61 -0
  63. package/dist/evaluator/result/toXPathEvaluationResult.d.ts +5 -0
  64. package/dist/evaluator/step/Step.d.ts +1 -1
  65. package/dist/{expressionParser-BVz9yCmv.js → expressionParser-DpqfmhIO.js} +1 -4
  66. package/dist/{expressionParser-BVz9yCmv.js.map → expressionParser-DpqfmhIO.js.map} +1 -1
  67. package/dist/expressionParser.js +1 -1
  68. package/dist/functions/_shared/number.d.ts +5 -4
  69. package/dist/functions/_shared/string.d.ts +2 -1
  70. package/dist/functions/fn/boolean.d.ts +5 -5
  71. package/dist/functions/fn/node-set.d.ts +8 -8
  72. package/dist/functions/fn/number.d.ts +5 -5
  73. package/dist/functions/fn/string.d.ts +10 -10
  74. package/dist/functions/javarosa/string.d.ts +8 -1
  75. package/dist/functions/xforms/boolean.d.ts +4 -4
  76. package/dist/functions/xforms/datetime.d.ts +7 -7
  77. package/dist/functions/xforms/geo.d.ts +2 -2
  78. package/dist/functions/xforms/node-set.d.ts +16 -6
  79. package/dist/functions/xforms/number.d.ts +21 -21
  80. package/dist/functions/xforms/select.d.ts +3 -3
  81. package/dist/functions/xforms/string.d.ts +8 -8
  82. package/dist/index.d.ts +44 -1
  83. package/dist/index.js +1310 -879
  84. package/dist/index.js.map +1 -1
  85. package/dist/xforms/XFormsElementRepresentation.d.ts +15 -0
  86. package/dist/xforms/XFormsItextTranslations.d.ts +75 -23
  87. package/dist/xforms/XFormsSecondaryInstances.d.ts +4 -0
  88. package/dist/xforms/XFormsXPathEvaluator.d.ts +35 -14
  89. package/package.json +5 -3
  90. package/dist/evaluator/result/ResultType.d.ts +0 -13
  91. package/dist/evaluator/result/index.d.ts +0 -7
  92. package/dist/lib/dom/assertions.d.ts +0 -4
  93. package/dist/lib/dom/predicates.d.ts +0 -11
  94. package/dist/lib/dom/sort.d.ts +0 -1
  95. package/dist/lib/dom/traversal.d.ts +0 -21
  96. package/dist/lib/dom/types.d.ts +0 -21
  97. package/dist/lib/dom/xml.d.ts +0 -1
  98. package/dist/shared/constants.d.ts +0 -13
  99. package/dist/shared/index.d.ts +0 -2
  100. package/dist/shared/interface.d.ts +0 -33
@@ -0,0 +1,15 @@
1
+ import { XPathNode } from '../adapter/interface/XPathNode.ts';
2
+ import { AdapterElement } from '../adapter/interface/XPathNodeKindAdapter.ts';
3
+ export declare const XFORMS_LOCAL_NAME: unique symbol;
4
+ export type XFORMS_LOCAL_NAME = typeof XFORMS_LOCAL_NAME;
5
+ export declare const XFORMS_KNOWN_ATTRIBUTE: unique symbol;
6
+ export type XFORMS_KNOWN_ATTRIBUTE = typeof XFORMS_KNOWN_ATTRIBUTE;
7
+ export type XFormsElementRepresentation<T extends XPathNode, LocalName extends string, KnownAttribute extends string = never> = AdapterElement<T> & {
8
+ readonly [XFORMS_LOCAL_NAME]: LocalName;
9
+ } & ([
10
+ KnownAttribute
11
+ ] extends [string] ? {
12
+ readonly [XFORMS_KNOWN_ATTRIBUTE]: KnownAttribute;
13
+ } : {
14
+ readonly [XFORMS_KNOWN_ATTRIBUTE]?: string;
15
+ });
@@ -1,26 +1,78 @@
1
- import { KnownAttributeLocalNamedElement, LocalNamedElement } from '../../../common/types/dom.ts';
2
- import { ModelElement, XFormsXPathEvaluator } from './XFormsXPathEvaluator.ts';
3
- export interface ItextRootElement extends LocalNamedElement<'itext'> {
1
+ import { UpsertableWeakMap } from '../../../common/src/lib/collections/UpsertableWeakMap.ts';
2
+ import { XPathNode } from '../adapter/interface/XPathNode.ts';
3
+ import { XPathDOMProvider } from '../adapter/xpathDOMProvider.ts';
4
+ import { XFormsElementRepresentation } from './XFormsElementRepresentation.ts';
5
+ type XFormsItextTextID = string;
6
+ type XFormsItextTranslationTextElement<T extends XPathNode> = XFormsElementRepresentation<T, 'text'>;
7
+ export type XFormsItextTranslationElement<T extends XPathNode> = XFormsElementRepresentation<T, 'translation', 'lang'>;
8
+ type XFormsItextTextMap<T extends XPathNode> = ReadonlyMap<XFormsItextTextID, XFormsItextTranslationTextElement<T>>;
9
+ type XFormsItextTranslationsCache<T extends XPathNode> = UpsertableWeakMap<XFormsItextTranslationElement<T>, XFormsItextTextMap<T>>;
10
+ export type XFormsItextTranslationLanguage = string;
11
+ export type XFormsItextTranslationMap<T extends XPathNode> = ReadonlyMap<XFormsItextTranslationLanguage, XFormsItextTranslationElement<T>>;
12
+ /**
13
+ * Public interface to an {@link XFormsXPathEvaluator}'s ODK XForms
14
+ * {@link https://getodk.github.io/xforms-spec/#languages | active language state}.
15
+ */
16
+ export interface XFormsItextTranslationsState {
17
+ getLanguages(): readonly XFormsItextTranslationLanguage[];
18
+ getActiveLanguage(): XFormsItextTranslationLanguage | null;
19
+ setActiveLanguage(language: XFormsItextTranslationLanguage | null): XFormsItextTranslationLanguage | null;
4
20
  }
5
- export declare const getItextRoot: (modelElement: ModelElement) => ItextRootElement | null;
6
- type TranslationLanguage = string;
7
- interface TranslationTextElement extends KnownAttributeLocalNamedElement<'text', 'id'> {
8
- }
9
- type ItextID = string;
10
- export declare const getTranslationTextByLanguage: (modelElement: ModelElement, language: TranslationLanguage, itextID: ItextID) => TranslationTextElement | null;
11
- interface DefaultTextValueElement extends LocalNamedElement<'value'> {
12
- getAttribute(name: 'form'): null;
13
- getAttribute(name: string): string | null;
14
- }
15
- export declare const getDefaultTextValueElement: (textElement: TranslationTextElement) => DefaultTextValueElement | null;
16
- export declare class XFormsItextTranslations {
17
- protected readonly evaluator: XFormsXPathEvaluator;
18
- protected readonly defaultLanguage: string | null;
19
- protected readonly languages: readonly string[];
20
- protected activeLanguage: string | null;
21
- constructor(evaluator: XFormsXPathEvaluator);
22
- getLanguages(): readonly string[];
23
- getActiveLanguage(): string | null;
24
- setActiveLanguage(language: string | null): string | null;
21
+ /**
22
+ * @package
23
+ *
24
+ * This is an internal implementation/API providing support for {@link itext}.
25
+ *
26
+ * As specified by
27
+ * {@link https://getodk.github.io/xforms-spec/#fn:jr:itext | ODK XForms `jr:itext`},
28
+ * the function depends on implicit "active language" state. The corresponding
29
+ * {@link XFormsItextTranslationsState} **public interface** exposes access to get
30
+ * and set that state for `@getodk/xpath` consumers.
31
+ *
32
+ * @see {@link XFormsItextTranslationsState} for the corresponding public interface.
33
+ */
34
+ export declare class XFormsItextTranslations<T extends XPathNode> implements XFormsItextTranslationsState {
35
+ readonly domProvider: XPathDOMProvider<T>;
36
+ readonly translationElementMap: XFormsItextTranslationMap<T>;
37
+ protected readonly defaultLanguage: XFormsItextTranslationLanguage | null;
38
+ protected readonly languages: readonly XFormsItextTranslationLanguage[];
39
+ protected activeLanguage: XFormsItextTranslationLanguage | null;
40
+ readonly translationsCache: XFormsItextTranslationsCache<T>;
41
+ constructor(domProvider: XPathDOMProvider<T>, translationElementMap: XFormsItextTranslationMap<T>);
42
+ private getTranslationMetadata;
43
+ private getTranslationTextElement;
44
+ /**
45
+ * @package
46
+ *
47
+ * Here, "default" is meant as more precise language than "regular" as
48
+ * {@link https://getodk.github.io/xforms-spec/#languages | specified by ODK XForms}. In other words, this is equivalent to the following hypothetical XPath pseudo-code (whitespace added to improve structural clarity):
49
+ *
50
+ * ```xpath
51
+ * string(
52
+ * imaginary:itext-translation(
53
+ * xpath3-fn:environment-variable('activeLanguage')
54
+ * )
55
+ * /text[@id = $itextID]
56
+ * /value[not(@form)]
57
+ * )
58
+ * ```
59
+ *
60
+ * Or alternately:
61
+ *
62
+ * ```xpath
63
+ * string(
64
+ * imaginary:itext-root()
65
+ * /translation[@lang = xpath3-fn:environment-variable('activeLanguage')]
66
+ * /text[@id = $itextID]
67
+ * /value[not(@form)]
68
+ * )
69
+ * ```
70
+ *
71
+ * @todo The above really feels like it adds some helpful clarity to how `jr:itext()` is designed to work, and the kinds of structures, state and input involved. Since there's already some discomfort around that API as specified, it's worth considering
72
+ */
73
+ getDefaultTranslationText(itextID: string): string;
74
+ getLanguages(): readonly XFormsItextTranslationLanguage[];
75
+ getActiveLanguage(): XFormsItextTranslationLanguage | null;
76
+ setActiveLanguage(language: XFormsItextTranslationLanguage | null): XFormsItextTranslationLanguage | null;
25
77
  }
26
78
  export {};
@@ -0,0 +1,4 @@
1
+ import { XPathNode } from '../adapter/interface/XPathNode.ts';
2
+ import { XFormsElementRepresentation } from './XFormsElementRepresentation.ts';
3
+ export type XFormsSecondaryInstanceElement<T extends XPathNode> = XFormsElementRepresentation<T, 'instance', 'id'>;
4
+ export type XFormsSecondaryInstanceMap<T extends XPathNode> = ReadonlyMap<string, XFormsSecondaryInstanceElement<T>>;
@@ -1,17 +1,38 @@
1
+ import { UnwrapAdapterNode } from '../adapter/interface/XPathCustomUnwrappableNode.ts';
2
+ import { XPathNode } from '../adapter/interface/XPathNode.ts';
3
+ import { AdapterParentNode } from '../adapter/interface/XPathNodeKindAdapter.ts';
4
+ import { EvaluationContext } from '../context/EvaluationContext.ts';
1
5
  import { EvaluatorOptions, Evaluator } from '../evaluator/Evaluator.ts';
2
- import { AnyParentNode } from '../lib/dom/types.ts';
3
- import { XFormsItextTranslations } from './XFormsItextTranslations.ts';
4
- export interface ModelElement extends Element {
5
- readonly localName: 'model';
6
+ import { XFormsItextTranslationLanguage, XFormsItextTranslationMap, XFormsItextTranslationsState } from './XFormsItextTranslations.ts';
7
+ import { XFormsSecondaryInstanceElement, XFormsSecondaryInstanceMap } from './XFormsSecondaryInstances.ts';
8
+ /**
9
+ * @todo We accept an arbitrary parent node specifically for legacy WHATWG DOM
10
+ * integration, which we will no longer be using _except in test_. We should
11
+ * consider narrowing this type to {@link AdapterDocument} for any other usage.
12
+ */
13
+ export type XFormsXPathRootNode<T extends XPathNode> = AdapterParentNode<T> | UnwrapAdapterNode<AdapterParentNode<T>>;
14
+ export interface XFormsXPathEvaluatorOptions<T extends XPathNode> extends EvaluatorOptions<T> {
15
+ readonly rootNode: XFormsXPathRootNode<T>;
16
+ readonly itextTranslationsByLanguage: XFormsItextTranslationMap<T>;
17
+ readonly secondaryInstancesById: XFormsSecondaryInstanceMap<T>;
6
18
  }
7
- interface XFormsXPathEvaluatorOptions extends EvaluatorOptions {
8
- readonly rootNode: AnyParentNode;
19
+ export declare class XFormsXPathEvaluator<T extends XPathNode> extends Evaluator<T> implements XFormsItextTranslationsState {
20
+ static getSecondaryInstance<T extends XPathNode>(context: EvaluationContext<T>, id: string): XFormsSecondaryInstanceElement<T> | null;
21
+ static getDefaultTranslationText<T extends XPathNode>(context: EvaluationContext<T>, itextID: string): string;
22
+ readonly rootNode: AdapterParentNode<T>;
23
+ /**
24
+ * @package
25
+ * @see {@link InternalXFormsXPathEvaluator}
26
+ */
27
+ protected readonly itextTranslations: XFormsItextTranslationsState;
28
+ /**
29
+ * @package
30
+ * @see {@link InternalXFormsXPathEvaluator}
31
+ */
32
+ protected readonly secondaryInstancesById: XFormsSecondaryInstanceMap<T>;
33
+ constructor(options: XFormsXPathEvaluatorOptions<T>);
34
+ getLanguages(): readonly XFormsItextTranslationLanguage[];
35
+ getActiveLanguage(): XFormsItextTranslationLanguage | null;
36
+ setActiveLanguage(language: XFormsItextTranslationLanguage | null): XFormsItextTranslationLanguage | null;
37
+ getSecondaryInstance(id: string): XFormsSecondaryInstanceElement<T> | undefined;
9
38
  }
10
- export declare class XFormsXPathEvaluator extends Evaluator {
11
- readonly rootNode: AnyParentNode;
12
- readonly rootNodeDocument: XMLDocument;
13
- readonly modelElement: ModelElement | null;
14
- readonly translations: XFormsItextTranslations;
15
- constructor(options: XFormsXPathEvaluatorOptions);
16
- }
17
- export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getodk/xpath",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "license": "Apache-2.0",
5
5
  "description": "XPath implementation for ODK Web Forms",
6
6
  "type": "module",
@@ -49,10 +49,12 @@
49
49
  "test-watch:chromium": "BROWSER_NAME=chromium vitest",
50
50
  "test-watch:firefox": "BROWSER_NAME=firefox vitest",
51
51
  "test-watch:webkit": "BROWSER_NAME=webkit vitest",
52
- "test:types": "tsc --project ./tsconfig.json --emitDeclarationOnly false --noEmit"
52
+ "test:types": "npm-run-all -nl test:types:*",
53
+ "test:types:main": "tsc --project ./tsconfig.json --emitDeclarationOnly false --noEmit",
54
+ "test:types:test": "tsc --project ./test/tsconfig.json --emitDeclarationOnly false --noEmit"
53
55
  },
54
56
  "dependencies": {
55
- "@getodk/common": "0.4.0",
57
+ "@getodk/common": "0.5.0",
56
58
  "@js-temporal/polyfill": "^0.4.4",
57
59
  "crypto-js": "^4.2.0",
58
60
  "itertools-ts": "^1.27.1"
@@ -1,13 +0,0 @@
1
- export declare const ResultTypes: {
2
- readonly BOOLEAN_TYPE: 3;
3
- readonly NUMBER_TYPE: 1;
4
- readonly STRING_TYPE: 2;
5
- readonly UNORDERED_NODE_ITERATOR_TYPE: 4;
6
- readonly ORDERED_NODE_ITERATOR_TYPE: 5;
7
- readonly UNORDERED_NODE_SNAPSHOT_TYPE: 6;
8
- readonly ORDERED_NODE_SNAPSHOT_TYPE: 7;
9
- readonly ANY_UNORDERED_NODE_TYPE: 8;
10
- readonly FIRST_ORDERED_NODE_TYPE: 9;
11
- };
12
- export type ResultTypes = typeof ResultTypes;
13
- export type ResultType = ResultTypes[keyof ResultTypes];
@@ -1,7 +0,0 @@
1
- import { Evaluation } from '../../evaluations/Evaluation.ts';
2
- import { XPathResultType } from '../../shared/index.ts';
3
- import { BooleanResult } from './BooleanResult';
4
- import { NodeSetIteratorResult, NodeSetSnapshotResult } from './NodeSetResult';
5
- import { NumberResult } from './NumberResult';
6
- import { StringResult } from './StringResult';
7
- export declare const toXPathResult: (resultType: XPathResultType, evaluation: Evaluation) => BooleanResult | NodeSetSnapshotResult | NodeSetIteratorResult | NumberResult | StringResult;
@@ -1,4 +0,0 @@
1
- import { ContextParentNode } from './types.ts';
2
- type AssertParentNode = (node: Node) => asserts node is ContextParentNode;
3
- export declare const assertParentNode: AssertParentNode;
4
- export {};
@@ -1,11 +0,0 @@
1
- import { NamespaceAttribute } from './types';
2
- export declare const isAttributeNode: (node: Node) => node is Attr;
3
- export declare const isNamespaceAttribute: (attr: Attr) => attr is NamespaceAttribute;
4
- export declare const isNamespaceNode: (node: Node) => node is NamespaceAttribute;
5
- export declare const isCDataSection: (node: Node) => node is CDATASection;
6
- export declare const isCommentNode: (node: Node) => node is Comment;
7
- export declare const isDocumentNode: (node: Node) => node is Document;
8
- export declare const isDocumentFragmentNode: (node: Node) => node is DocumentFragment;
9
- export declare const isElementNode: (node: Node) => node is Element;
10
- export declare const isProcessingInstructionNode: (node: Node) => node is ProcessingInstruction;
11
- export declare const isTextNode: (node: Node) => node is Text;
@@ -1 +0,0 @@
1
- export declare const sortDocumentOrder: (nodes: Iterable<Node>) => Node[];
@@ -1,21 +0,0 @@
1
- import { ContextDocument, ContextNode, ContextParentNode } from './types.ts';
2
- export declare const getDocument: (node: Node) => Document;
3
- export declare const getRootNode: (node: ContextNode) => ContextParentNode;
4
- export declare const TreeWalkerFilter: {
5
- readonly ANY: 975;
6
- readonly ELEMENT: 1;
7
- readonly TEXT: 12;
8
- readonly COMMENT: 128;
9
- readonly PROCESSING_INSTRUCTION: 64;
10
- };
11
- type TreeWalkerFilters = typeof TreeWalkerFilter;
12
- export type TreeWalkerFilter = keyof TreeWalkerFilters;
13
- export type TreeWalkerFilterFlag = TreeWalkerFilters[TreeWalkerFilter];
14
- export type FilteredTreeWalker<Filter extends TreeWalkerFilter = TreeWalkerFilter> = TreeWalker & {
15
- readonly whatToShow: TreeWalkerFilters[Filter];
16
- };
17
- export declare const getTreeWalker: <Filter extends TreeWalkerFilter = "ANY">(contextDocument: ContextDocument, contextNode?: ContextNode, filter?: Filter) => FilteredTreeWalker<Filter>;
18
- export type FilteredTreeWalkers = {
19
- readonly [Filter in TreeWalkerFilter]: FilteredTreeWalker<Filter>;
20
- };
21
- export {};
@@ -1,21 +0,0 @@
1
- export type ContextDocument = Document | XMLDocument;
2
- type AnyContextNode = Attr | CDATASection | Comment | ContextDocument | DocumentType | Element | ProcessingInstruction | Text;
3
- type MaybeNode<T extends Node> = Node & Partial<Omit<T, keyof Node>>;
4
- export type MaybeAttrNode = MaybeNode<Attr>;
5
- export type MaybeElementNode = AnyContextNode & Node & Partial<Element>;
6
- export type MaybeProcessingInstructionNode = MaybeNode<ProcessingInstruction>;
7
- export type MaybeNamedNode = MaybeNode<MaybeAttrNode | MaybeElementNode>;
8
- export type ContextNode = AnyContextNode & Node;
9
- export type MaybeDocumentOrElementNode = MaybeElementNode & Partial<ContextDocument>;
10
- export type AnyParentNode = Extract<AnyContextNode, {
11
- readonly children: any;
12
- }>;
13
- export type ContextParentNode = AnyParentNode & Node;
14
- type AnyNamedNode = Attr | Element | ProcessingInstruction;
15
- export type NamedNode = AnyNamedNode & Node;
16
- export type NamespaceAttribute = Attr & ({
17
- readonly name: 'xmlns';
18
- } | {
19
- readonly prefix: 'xmlns';
20
- });
21
- export {};
@@ -1 +0,0 @@
1
- export declare const parseXMLDocument: (xml: string) => Document;
@@ -1,13 +0,0 @@
1
- export declare const XPathResultTypes: {
2
- readonly ANY_TYPE: 0;
3
- readonly NUMBER_TYPE: 1;
4
- readonly STRING_TYPE: 2;
5
- readonly BOOLEAN_TYPE: 3;
6
- readonly UNORDERED_NODE_ITERATOR_TYPE: 4;
7
- readonly ORDERED_NODE_ITERATOR_TYPE: 5;
8
- readonly UNORDERED_NODE_SNAPSHOT_TYPE: 6;
9
- readonly ORDERED_NODE_SNAPSHOT_TYPE: 7;
10
- readonly ANY_UNORDERED_NODE_TYPE: 8;
11
- readonly FIRST_ORDERED_NODE_TYPE: 9;
12
- };
13
- export type XPathResultTypes = typeof XPathResultTypes;
@@ -1,2 +0,0 @@
1
- export * from './constants.ts';
2
- export type * from './interface.ts';
@@ -1,33 +0,0 @@
1
- type LookupNamespaceURI = (prefix: string | null) => string | null;
2
- export interface XPathNamespaceResolverObject {
3
- readonly lookupNamespaceURI: LookupNamespaceURI;
4
- }
5
- export type XPathNSResolver = LookupNamespaceURI | XPathNamespaceResolverObject;
6
- interface XPathResultStatic {
7
- readonly ANY_TYPE: 0;
8
- readonly NUMBER_TYPE: 1;
9
- readonly STRING_TYPE: 2;
10
- readonly BOOLEAN_TYPE: 3;
11
- readonly UNORDERED_NODE_ITERATOR_TYPE: 4;
12
- readonly ORDERED_NODE_ITERATOR_TYPE: 5;
13
- readonly UNORDERED_NODE_SNAPSHOT_TYPE: 6;
14
- readonly ORDERED_NODE_SNAPSHOT_TYPE: 7;
15
- readonly ANY_UNORDERED_NODE_TYPE: 8;
16
- readonly FIRST_ORDERED_NODE_TYPE: 9;
17
- }
18
- export type XPathResultType = XPathResultStatic[keyof XPathResultStatic];
19
- export interface XPathResult extends XPathResultStatic {
20
- readonly booleanValue: boolean;
21
- readonly invalidIteratorState: boolean;
22
- readonly numberValue: number;
23
- readonly resultType: XPathResultType;
24
- readonly singleNodeValue: Node | null;
25
- readonly snapshotLength: number;
26
- readonly stringValue: string;
27
- iterateNext(): Node | null;
28
- snapshotItem(index: number): Node | null;
29
- }
30
- export interface AnyXPathEvaluator {
31
- evaluate(expression: string, contextNode: Node, namespaceResolver: XPathNSResolver | null, resultType: XPathResultType | null): XPathResult;
32
- }
33
- export {};