@getodk/xpath 0.1.0 → 0.1.1

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 (87) hide show
  1. package/dist/.vite/manifest.json +7 -4
  2. package/dist/context/Context.d.ts +6 -5
  3. package/dist/context/EvaluationContext.d.ts +7 -6
  4. package/dist/evaluations/BooleanEvaluation.d.ts +2 -1
  5. package/dist/evaluations/DateTimeLikeEvaluation.d.ts +2 -1
  6. package/dist/evaluations/Evaluation.d.ts +3 -2
  7. package/dist/evaluations/LocationPathEvaluation.d.ts +14 -13
  8. package/dist/evaluations/NodeEvaluation.d.ts +2 -1
  9. package/dist/evaluations/NumberEvaluation.d.ts +2 -1
  10. package/dist/evaluations/StringEvaluation.d.ts +2 -1
  11. package/dist/evaluations/ValueEvaluation.d.ts +3 -2
  12. package/dist/evaluator/Evaluator.d.ts +6 -5
  13. package/dist/evaluator/NamespaceResolver.d.ts +3 -2
  14. package/dist/evaluator/expression/AbsoluteLocationPathExpressionEvaluator.d.ts +3 -2
  15. package/dist/evaluator/expression/BinaryExpressionEvaluator.d.ts +5 -4
  16. package/dist/evaluator/expression/BooleanBinaryExpressionEvaluator.d.ts +4 -3
  17. package/dist/evaluator/expression/ExpressionEvaluator.d.ts +4 -3
  18. package/dist/evaluator/expression/FilterPathExpressionEvaluator.d.ts +5 -4
  19. package/dist/evaluator/expression/FunctionCallExpressionEvaluator.d.ts +5 -4
  20. package/dist/evaluator/expression/LocationPathEvaluator.d.ts +5 -4
  21. package/dist/evaluator/expression/LocationPathExpressionEvaluator.d.ts +4 -3
  22. package/dist/evaluator/expression/NumberExpressionEvaluator.d.ts +3 -2
  23. package/dist/evaluator/expression/NumberLiteralExpressionEvaluator.d.ts +3 -2
  24. package/dist/evaluator/expression/NumericBinaryExpressionEvaluator.d.ts +3 -2
  25. package/dist/evaluator/expression/RelativeLocationPathExpressionEvaluator.d.ts +3 -2
  26. package/dist/evaluator/expression/StringExpressionEvaluator.d.ts +3 -2
  27. package/dist/evaluator/expression/StringLiteralExpressionEvaluator.d.ts +3 -2
  28. package/dist/evaluator/expression/UnaryExpressionEvaluator.d.ts +4 -3
  29. package/dist/evaluator/expression/UnionExpressionEvaluator.d.ts +4 -3
  30. package/dist/evaluator/expression/factory.d.ts +3 -2
  31. package/dist/evaluator/functions/BooleanFunction.d.ts +3 -3
  32. package/dist/evaluator/functions/FunctionAlias.d.ts +1 -0
  33. package/dist/evaluator/functions/FunctionImplementation.d.ts +5 -4
  34. package/dist/evaluator/functions/FunctionLibrary.d.ts +3 -2
  35. package/dist/evaluator/functions/FunctionLibraryCollection.d.ts +4 -3
  36. package/dist/evaluator/functions/NodeSetFunction.d.ts +2 -2
  37. package/dist/evaluator/functions/NumberFunction.d.ts +3 -3
  38. package/dist/evaluator/functions/StringFunction.d.ts +3 -3
  39. package/dist/evaluator/functions/TypedFunctionImplementation.d.ts +3 -3
  40. package/dist/evaluator/result/BooleanResult.d.ts +3 -2
  41. package/dist/evaluator/result/NodeSetResult.d.ts +3 -3
  42. package/dist/evaluator/result/NumberResult.d.ts +3 -2
  43. package/dist/evaluator/result/PrimitiveResult.d.ts +3 -3
  44. package/dist/evaluator/result/StringResult.d.ts +3 -2
  45. package/dist/evaluator/result/index.d.ts +3 -2
  46. package/dist/evaluator/step/Step.d.ts +2 -1
  47. package/dist/expressionParser-BbqMYp75.js +2116 -0
  48. package/dist/expressionParser-BbqMYp75.js.map +1 -0
  49. package/dist/expressionParser.d.ts +1 -0
  50. package/dist/expressionParser.js +1 -1
  51. package/dist/functions/_shared/number.d.ts +3 -2
  52. package/dist/functions/_shared/string.d.ts +3 -2
  53. package/dist/functions/enketo/index.d.ts +1 -0
  54. package/dist/functions/fn/boolean.d.ts +1 -0
  55. package/dist/functions/fn/index.d.ts +1 -0
  56. package/dist/functions/fn/node-set.d.ts +1 -0
  57. package/dist/functions/fn/number.d.ts +1 -0
  58. package/dist/functions/fn/string.d.ts +1 -0
  59. package/dist/functions/javarosa/index.d.ts +1 -0
  60. package/dist/functions/javarosa/string.d.ts +1 -0
  61. package/dist/functions/xforms/boolean.d.ts +1 -0
  62. package/dist/functions/xforms/datetime.d.ts +1 -0
  63. package/dist/functions/xforms/geo.d.ts +1 -0
  64. package/dist/functions/xforms/index.d.ts +1 -0
  65. package/dist/functions/xforms/node-set.d.ts +1 -0
  66. package/dist/functions/xforms/number.d.ts +1 -0
  67. package/dist/functions/xforms/select.d.ts +1 -0
  68. package/dist/functions/xforms/string.d.ts +1 -0
  69. package/dist/index.js +213 -105
  70. package/dist/index.js.map +1 -1
  71. package/dist/lib/datetime/coercion.d.ts +1 -0
  72. package/dist/lib/datetime/functions.d.ts +1 -0
  73. package/dist/lib/dom/assertions.d.ts +2 -1
  74. package/dist/lib/dom/predicates.d.ts +2 -1
  75. package/dist/lib/dom/traversal.d.ts +2 -1
  76. package/dist/lib/iterators/common.d.ts +1 -1
  77. package/dist/static/grammar/ExpressionParser.d.ts +5 -4
  78. package/dist/static/grammar/SyntaxLanguage.d.ts +2 -1
  79. package/dist/static/grammar/SyntaxNode.d.ts +2 -1
  80. package/dist/static/grammar/SyntaxTree.d.ts +3 -2
  81. package/dist/static/grammar/TreeSitterXPathParser.d.ts +2 -1
  82. package/dist/static/grammar/type-names.d.ts +2 -1
  83. package/dist/xforms/XFormsItextTranslations.d.ts +3 -2
  84. package/dist/xforms/XFormsXPathEvaluator.d.ts +3 -3
  85. package/package.json +14 -15
  86. package/dist/expressionParser-1Kzq3bIy.js +0 -2356
  87. package/dist/expressionParser-1Kzq3bIy.js.map +0 -1
@@ -1,21 +1,24 @@
1
1
  {
2
- "_expressionParser-1Kzq3bIy.js": {
3
- "file": "expressionParser-1Kzq3bIy.js"
2
+ "_expressionParser-BbqMYp75.js": {
3
+ "file": "expressionParser-BbqMYp75.js",
4
+ "name": "expressionParser"
4
5
  },
5
6
  "src/expressionParser.ts": {
6
7
  "file": "expressionParser.js",
8
+ "name": "expressionParser",
7
9
  "src": "src/expressionParser.ts",
8
10
  "isEntry": true,
9
11
  "imports": [
10
- "_expressionParser-1Kzq3bIy.js"
12
+ "_expressionParser-BbqMYp75.js"
11
13
  ]
12
14
  },
13
15
  "src/index.ts": {
14
16
  "file": "index.js",
17
+ "name": "index",
15
18
  "src": "src/index.ts",
16
19
  "isEntry": true,
17
20
  "imports": [
18
- "_expressionParser-1Kzq3bIy.js"
21
+ "_expressionParser-BbqMYp75.js"
19
22
  ]
20
23
  }
21
24
  }
@@ -1,8 +1,9 @@
1
- import type { Temporal } from '@js-temporal/polyfill';
2
- import type { Evaluator } from '../evaluator/Evaluator.ts';
3
- import type { FunctionLibraryCollection } from '../evaluator/functions/FunctionLibraryCollection.ts';
4
- import type { ContextDocument, ContextNode, ContextParentNode } from '../lib/dom/types.ts';
5
- import type { XPathNamespaceResolverObject } from '../shared/interface.ts';
1
+ import { Temporal } from '@js-temporal/polyfill';
2
+ import { Evaluator } from '../evaluator/Evaluator.ts';
3
+ import { FunctionLibraryCollection } from '../evaluator/functions/FunctionLibraryCollection.ts';
4
+ import { ContextDocument, ContextNode, ContextParentNode } from '../lib/dom/types.ts';
5
+ import { XPathNamespaceResolverObject } from '../shared/interface.ts';
6
+
6
7
  /**
7
8
  * The context in which any XPath expression *or sub-expression* is evaluated.
8
9
  */
@@ -1,11 +1,12 @@
1
1
  import { Temporal } from '@js-temporal/polyfill';
2
2
  import { LocationPathEvaluation } from '../evaluations/LocationPathEvaluation.ts';
3
- import type { Evaluator } from '../evaluator/Evaluator.ts';
4
- import type { FunctionLibraryCollection } from '../evaluator/functions/FunctionLibraryCollection.ts';
5
- import type { FilteredTreeWalker, FilteredTreeWalkers } from '../lib/dom/traversal.ts';
6
- import type { ContextDocument, ContextNode, ContextParentNode } from '../lib/dom/types.ts';
7
- import type { XPathNamespaceResolverObject } from '../shared/interface.ts';
8
- import type { Context } from './Context.ts';
3
+ import { Evaluator } from '../evaluator/Evaluator.ts';
4
+ import { FunctionLibraryCollection } from '../evaluator/functions/FunctionLibraryCollection.ts';
5
+ import { FilteredTreeWalker, FilteredTreeWalkers } from '../lib/dom/traversal.ts';
6
+ import { ContextDocument, ContextNode, ContextParentNode } from '../lib/dom/types.ts';
7
+ import { XPathNamespaceResolverObject } from '../shared/interface.ts';
8
+ import { Context } from './Context.ts';
9
+
9
10
  declare class EvaluationContextTreeWalkers implements FilteredTreeWalkers {
10
11
  readonly ANY: FilteredTreeWalker<'ANY'>;
11
12
  readonly COMMENT: FilteredTreeWalker<'COMMENT'>;
@@ -1,5 +1,6 @@
1
- import type { LocationPathEvaluation } from './LocationPathEvaluation.ts';
1
+ import { LocationPathEvaluation } from './LocationPathEvaluation.ts';
2
2
  import { ValueEvaluation } from './ValueEvaluation.ts';
3
+
3
4
  export declare class BooleanEvaluation extends ValueEvaluation<'BOOLEAN'> {
4
5
  readonly context: LocationPathEvaluation;
5
6
  readonly value: boolean;
@@ -1,6 +1,7 @@
1
1
  import { Temporal } from '@js-temporal/polyfill';
2
- import type { LocationPathEvaluation } from './LocationPathEvaluation.ts';
2
+ import { LocationPathEvaluation } from './LocationPathEvaluation.ts';
3
3
  import { ValueEvaluation } from './ValueEvaluation.ts';
4
+
4
5
  interface PrecomputedXPathValues {
5
6
  readonly booleanValue?: boolean;
6
7
  readonly numberValue?: number;
@@ -1,5 +1,6 @@
1
- import type { EvaluationType } from './EvaluationType.ts';
2
- import type { LocationPathEvaluation } from './LocationPathEvaluation.ts';
1
+ import { EvaluationType } from './EvaluationType.ts';
2
+ import { LocationPathEvaluation } from './LocationPathEvaluation.ts';
3
+
3
4
  export interface Evaluation<Type extends EvaluationType = EvaluationType> extends Iterable<Evaluation<Type>> {
4
5
  readonly context: LocationPathEvaluation;
5
6
  readonly type: Type;
@@ -1,18 +1,19 @@
1
- import type { Temporal } from '@js-temporal/polyfill';
2
- import type { Context } from '../context/Context.ts';
3
- import type { EvaluationContext, EvaluationContextTreeWalkers } from '../context/EvaluationContext.ts';
4
- import type { Evaluator } from '../evaluator/Evaluator.ts';
5
- import type { FilterPathExpressionEvaluator } from '../evaluator/expression/FilterPathExpressionEvaluator.ts';
6
- import type { LocationPathEvaluator } from '../evaluator/expression/LocationPathEvaluator.ts';
7
- import type { LocationPathExpressionEvaluator } from '../evaluator/expression/LocationPathExpressionEvaluator.ts';
8
- import type { FunctionLibraryCollection } from '../evaluator/functions/FunctionLibraryCollection.ts';
9
- import type { NodeSetFunction } from '../evaluator/functions/NodeSetFunction.ts';
10
- import type { AnyStep } from '../evaluator/step/Step.ts';
11
- import type { ContextDocument, ContextNode, ContextParentNode } from '../lib/dom/types.ts';
1
+ import { Temporal } from '@js-temporal/polyfill';
2
+ import { Context } from '../context/Context.ts';
3
+ import { EvaluationContext, EvaluationContextTreeWalkers } from '../context/EvaluationContext.ts';
4
+ import { Evaluator } from '../evaluator/Evaluator.ts';
5
+ import { FilterPathExpressionEvaluator } from '../evaluator/expression/FilterPathExpressionEvaluator.ts';
6
+ import { LocationPathEvaluator } from '../evaluator/expression/LocationPathEvaluator.ts';
7
+ import { LocationPathExpressionEvaluator } from '../evaluator/expression/LocationPathExpressionEvaluator.ts';
8
+ import { FunctionLibraryCollection } from '../evaluator/functions/FunctionLibraryCollection.ts';
9
+ import { NodeSetFunction } from '../evaluator/functions/NodeSetFunction.ts';
10
+ import { AnyStep } from '../evaluator/step/Step.ts';
11
+ import { ContextDocument, ContextNode, ContextParentNode } from '../lib/dom/types.ts';
12
12
  import { Reiterable } from '../lib/iterators/Reiterable.ts';
13
- import type { XPathNamespaceResolverObject } from '../shared/interface.ts';
14
- import type { Evaluation } from './Evaluation.ts';
13
+ import { XPathNamespaceResolverObject } from '../shared/interface.ts';
14
+ import { Evaluation } from './Evaluation.ts';
15
15
  import { NodeEvaluation } from './NodeEvaluation.ts';
16
+
16
17
  type LocationPathParentContext = EvaluationContext | LocationPathEvaluation;
17
18
  type EvaluationComparator = (lhs: Evaluation, rhs: Evaluation) => boolean;
18
19
  export declare enum AxisName {
@@ -1,5 +1,6 @@
1
- import type { LocationPathEvaluation } from './LocationPathEvaluation.ts';
1
+ import { LocationPathEvaluation } from './LocationPathEvaluation.ts';
2
2
  import { ValueEvaluation } from './ValueEvaluation.ts';
3
+
3
4
  interface NodeEvaluationComputedValues {
4
5
  readonly booleanValue: boolean;
5
6
  readonly isEmpty: boolean;
@@ -1,5 +1,6 @@
1
- import type { LocationPathEvaluation } from './LocationPathEvaluation.ts';
1
+ import { LocationPathEvaluation } from './LocationPathEvaluation.ts';
2
2
  import { ValueEvaluation } from './ValueEvaluation.ts';
3
+
3
4
  export declare class NumberEvaluation extends ValueEvaluation<'NUMBER'> {
4
5
  readonly context: LocationPathEvaluation;
5
6
  readonly value: number;
@@ -1,5 +1,6 @@
1
- import type { LocationPathEvaluation } from './LocationPathEvaluation.ts';
1
+ import { LocationPathEvaluation } from './LocationPathEvaluation.ts';
2
2
  import { ValueEvaluation } from './ValueEvaluation.ts';
3
+
3
4
  export declare class StringEvaluation extends ValueEvaluation<'STRING'> {
4
5
  readonly context: LocationPathEvaluation;
5
6
  readonly value: string;
@@ -1,6 +1,7 @@
1
- import type { Evaluation } from './Evaluation.ts';
2
- import type { EvaluationType, EvaluationTypes } from './EvaluationType.ts';
1
+ import { Evaluation } from './Evaluation.ts';
2
+ import { EvaluationType, EvaluationTypes } from './EvaluationType.ts';
3
3
  import { LocationPathEvaluation } from './LocationPathEvaluation.ts';
4
+
4
5
  export declare abstract class ValueEvaluation<Type extends EvaluationType> implements Evaluation<Type> {
5
6
  abstract readonly context: LocationPathEvaluation;
6
7
  abstract readonly type: Type;
@@ -1,10 +1,11 @@
1
1
  import { Temporal } from '@js-temporal/polyfill';
2
- import type { EvaluationContextOptions } from '../context/EvaluationContext.ts';
3
- import type { AnyParentNode } from '../lib/dom/types.ts';
4
- import type { AnyXPathEvaluator, XPathNSResolver, XPathResultType } from '../shared/index.ts';
5
- import type { ExpressionParser, ParseOptions } from '../static/grammar/ExpressionParser.ts';
2
+ import { EvaluationContextOptions } from '../context/EvaluationContext.ts';
3
+ import { AnyParentNode } from '../lib/dom/types.ts';
4
+ import { AnyXPathEvaluator, XPathNSResolver, XPathResultType } from '../shared/index.ts';
5
+ import { ExpressionParser, ParseOptions } from '../static/grammar/ExpressionParser.ts';
6
6
  import { FunctionLibraryCollection } from './functions/FunctionLibraryCollection.ts';
7
7
  import { ResultTypes } from './result/ResultType.ts';
8
+
8
9
  export interface EvaluatorOptions {
9
10
  readonly functions?: FunctionLibraryCollection;
10
11
  readonly parseOptions?: ParseOptions;
@@ -28,7 +29,7 @@ export declare class Evaluator implements AnyXPathEvaluator {
28
29
  readonly sharedContextOptions: Partial<EvaluationContextOptions>;
29
30
  readonly timeZone: Temporal.TimeZone;
30
31
  constructor(options?: EvaluatorOptions);
31
- evaluate(expression: string, contextNode: Node, namespaceResolver: XPathNSResolver | null, resultType: XPathResultType | null): import("./result/BooleanResult.ts").BooleanResult | import("./result/NodeSetResult.ts").NodeSetSnapshotResult | import("./result/NodeSetResult.ts").NodeSetIteratorResult | import("./result/NumberResult.ts").NumberResult | import("./result/StringResult.ts").StringResult;
32
+ evaluate(expression: string, contextNode: Node, namespaceResolver: XPathNSResolver | null, resultType: XPathResultType | null): import('./result/BooleanResult.ts').BooleanResult | import('./result/NodeSetResult.ts').NodeSetSnapshotResult | import('./result/NodeSetResult.ts').NodeSetIteratorResult | import('./result/NumberResult.ts').NumberResult | import('./result/StringResult.ts').StringResult;
32
33
  protected getContextNode(options: EvaluatorConvenienceMethodOptions): Node;
33
34
  evaluateBoolean(expression: string, options?: EvaluatorConvenienceMethodOptions): boolean;
34
35
  evaluateNumber(expression: string, options?: EvaluatorConvenienceMethodOptions): number;
@@ -1,6 +1,7 @@
1
1
  import { ENKETO_NAMESPACE_URI, ENKETO_PREFIX, FN_NAMESPACE_URI, FN_PREFIX, HTML_NAMESPACE_URI, HTML_PREFIX, JAVAROSA_NAMESPACE_URI, JAVAROSA_PREFIX, ODK_NAMESPACE_URI, ODK_PREFIX, OPENROSA_XFORMS_NAMESPACE_URI, OPENROSA_XFORMS_PREFIX, XFORMS_NAMESPACE_URI, XFORMS_PREFIX, XHTML_NAMESPACE_URI, XML_NAMESPACE_URI, XML_PREFIX, XMLNS_NAMESPACE_URI, XMLNS_PREFIX } from '../../../common/src/constants/xmlns.ts';
2
- import type { ContextParentNode } from '../lib/dom/types.ts';
3
- import type { XPathNamespaceResolverObject } from '../shared/interface.ts';
2
+ import { ContextParentNode } from '../lib/dom/types.ts';
3
+ import { XPathNamespaceResolverObject } from '../shared/interface.ts';
4
+
4
5
  export { ENKETO_NAMESPACE_URI, ENKETO_PREFIX, FN_NAMESPACE_URI, FN_PREFIX, HTML_NAMESPACE_URI, HTML_PREFIX, JAVAROSA_NAMESPACE_URI, JAVAROSA_PREFIX, ODK_NAMESPACE_URI, ODK_PREFIX, OPENROSA_XFORMS_NAMESPACE_URI, OPENROSA_XFORMS_PREFIX, XFORMS_NAMESPACE_URI, XFORMS_PREFIX, XHTML_NAMESPACE_URI, XML_NAMESPACE_URI, XML_PREFIX, XMLNS_NAMESPACE_URI, XMLNS_PREFIX, };
5
6
  export interface StaticNamespaces<DefaultPrefix extends string, DefaultURI extends string, Mapping extends Record<string, string>> {
6
7
  get<Key extends string | null>(key: Key): Key extends null ? DefaultURI : Key extends DefaultPrefix ? DefaultURI : Key extends keyof Mapping ? Mapping[Key] : undefined;
@@ -1,6 +1,7 @@
1
- import type { AbsoluteLocationPathNode } from '../../static/grammar/SyntaxNode.ts';
2
- import type { ExpressionEvaluator } from './ExpressionEvaluator.ts';
1
+ import { AbsoluteLocationPathNode } from '../../static/grammar/SyntaxNode.ts';
2
+ import { ExpressionEvaluator } from './ExpressionEvaluator.ts';
3
3
  import { LocationPathEvaluator } from './LocationPathEvaluator.ts';
4
+
4
5
  export declare class AbsoluteLocationPathExpressionEvaluator extends LocationPathEvaluator implements ExpressionEvaluator {
5
6
  readonly syntaxNode: AbsoluteLocationPathNode;
6
7
  constructor(syntaxNode: AbsoluteLocationPathNode);
@@ -1,7 +1,8 @@
1
- import type { EvaluationContext } from '../../context/EvaluationContext.ts';
2
- import type { Evaluation } from '../../evaluations/Evaluation.ts';
3
- import type { AnyBinaryExprNode } from '../../static/grammar/SyntaxNode.ts';
4
- import type { ExpressionEvaluator } from './ExpressionEvaluator.ts';
1
+ import { EvaluationContext } from '../../context/EvaluationContext.ts';
2
+ import { Evaluation } from '../../evaluations/Evaluation.ts';
3
+ import { AnyBinaryExprNode } from '../../static/grammar/SyntaxNode.ts';
4
+ import { ExpressionEvaluator } from './ExpressionEvaluator.ts';
5
+
5
6
  export declare abstract class BinaryExpressionEvaluator<Node extends AnyBinaryExprNode> implements ExpressionEvaluator {
6
7
  readonly syntaxNode: Node;
7
8
  readonly lhs: ExpressionEvaluator;
@@ -1,8 +1,9 @@
1
- import type { EvaluationContext } from '../../context/EvaluationContext.ts';
1
+ import { EvaluationContext } from '../../context/EvaluationContext.ts';
2
2
  import { BooleanEvaluation } from '../../evaluations/BooleanEvaluation.ts';
3
- import type { Evaluation } from '../../evaluations/Evaluation.ts';
4
- import type { AndExprNode, EqExprNode, GtExprNode, GteExprNode, LtExprNode, LteExprNode, NeExprNode, OrExprNode } from '../../static/grammar/SyntaxNode.ts';
3
+ import { Evaluation } from '../../evaluations/Evaluation.ts';
4
+ import { AndExprNode, EqExprNode, GtExprNode, GteExprNode, LtExprNode, LteExprNode, NeExprNode, OrExprNode } from '../../static/grammar/SyntaxNode.ts';
5
5
  import { BinaryExpressionEvaluator } from './BinaryExpressionEvaluator.ts';
6
+
6
7
  type BooleanBinaryExprNode = AndExprNode | EqExprNode | GteExprNode | GtExprNode | LteExprNode | LtExprNode | NeExprNode | OrExprNode;
7
8
  type BooleanOperator<Node extends BooleanBinaryExprNode> = Node extends AndExprNode ? 'and' : Node extends EqExprNode ? 'eq' : Node extends GtExprNode ? 'gt' : Node extends GteExprNode ? 'gte' : Node extends LtExprNode ? 'lt' : Node extends LteExprNode ? 'lte' : Node extends NeExprNode ? 'ne' : Node extends OrExprNode ? 'or' : never;
8
9
  type CompareOperator = 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'ne';
@@ -1,6 +1,7 @@
1
- import type { EvaluationContext } from '../../context/EvaluationContext.ts';
2
- import type { Evaluation } from '../../evaluations/Evaluation.ts';
3
- import type { AbsoluteLocationPathNode, AnyExprNode, FilterPathExprNode, RelativeLocationPathNode } from '../../static/grammar/SyntaxNode.ts';
1
+ import { EvaluationContext } from '../../context/EvaluationContext.ts';
2
+ import { Evaluation } from '../../evaluations/Evaluation.ts';
3
+ import { AbsoluteLocationPathNode, AnyExprNode, FilterPathExprNode, RelativeLocationPathNode } from '../../static/grammar/SyntaxNode.ts';
4
+
4
5
  export type ExpressionNode = AbsoluteLocationPathNode | AnyExprNode | FilterPathExprNode | RelativeLocationPathNode;
5
6
  export interface ExpressionEvaluator {
6
7
  readonly syntaxNode: ExpressionNode;
@@ -1,8 +1,9 @@
1
- import type { EvaluationContext } from '../../context/EvaluationContext.ts';
2
- import type { FilterPathExprNode } from '../../static/grammar/SyntaxNode.ts';
3
- import type { ExpressionEvaluator } from './ExpressionEvaluator.ts';
1
+ import { EvaluationContext } from '../../context/EvaluationContext.ts';
2
+ import { FilterPathExprNode } from '../../static/grammar/SyntaxNode.ts';
3
+ import { ExpressionEvaluator } from './ExpressionEvaluator.ts';
4
4
  import { LocationPathEvaluator } from './LocationPathEvaluator.ts';
5
- import type { LocationPathExpressionEvaluator } from './LocationPathExpressionEvaluator.ts';
5
+ import { LocationPathExpressionEvaluator } from './LocationPathExpressionEvaluator.ts';
6
+
6
7
  export declare class FilterPathExpressionEvaluator extends LocationPathEvaluator implements ExpressionEvaluator {
7
8
  readonly syntaxNode: FilterPathExprNode;
8
9
  readonly filterExpression: LocationPathExpressionEvaluator;
@@ -1,7 +1,8 @@
1
- import type { EvaluationContext } from '../../context/EvaluationContext.ts';
2
- import type { Evaluation } from '../../evaluations/Evaluation.ts';
3
- import type { FunctionCallNode } from '../../static/grammar/SyntaxNode.ts';
4
- import type { ExpressionEvaluator } from './ExpressionEvaluator.ts';
1
+ import { EvaluationContext } from '../../context/EvaluationContext.ts';
2
+ import { Evaluation } from '../../evaluations/Evaluation.ts';
3
+ import { FunctionCallNode } from '../../static/grammar/SyntaxNode.ts';
4
+ import { ExpressionEvaluator } from './ExpressionEvaluator.ts';
5
+
5
6
  interface FunctionCallName {
6
7
  readonly prefix: string | null;
7
8
  readonly localName: string;
@@ -1,8 +1,9 @@
1
- import type { EvaluationContext } from '../../context/EvaluationContext.ts';
2
- import type { AbsoluteLocationPathNode, FilterPathExprNode, RelativeLocationPathNode } from '../../static/grammar/SyntaxNode.ts';
3
- import { type PathExprSteps } from '../step/Step.ts';
4
- import type { ExpressionEvaluator } from './ExpressionEvaluator.ts';
1
+ import { EvaluationContext } from '../../context/EvaluationContext.ts';
2
+ import { AbsoluteLocationPathNode, FilterPathExprNode, RelativeLocationPathNode } from '../../static/grammar/SyntaxNode.ts';
3
+ import { PathExprSteps } from '../step/Step.ts';
4
+ import { ExpressionEvaluator } from './ExpressionEvaluator.ts';
5
5
  import { LocationPathExpressionEvaluator } from './LocationPathExpressionEvaluator.ts';
6
+
6
7
  type LocationPathNode = AbsoluteLocationPathNode | FilterPathExprNode | RelativeLocationPathNode;
7
8
  interface LocationPathExpressionOptions {
8
9
  readonly isAbsolute: boolean;
@@ -1,6 +1,7 @@
1
- import type { EvaluationContext } from '../../context/EvaluationContext.ts';
2
- import type { Evaluation } from '../../evaluations/Evaluation.ts';
3
- import type { ExpressionEvaluator, ExpressionNode } from './ExpressionEvaluator.ts';
1
+ import { EvaluationContext } from '../../context/EvaluationContext.ts';
2
+ import { Evaluation } from '../../evaluations/Evaluation.ts';
3
+ import { ExpressionEvaluator, ExpressionNode } from './ExpressionEvaluator.ts';
4
+
4
5
  export declare abstract class LocationPathExpressionEvaluator implements ExpressionEvaluator {
5
6
  abstract readonly syntaxNode: ExpressionNode;
6
7
  abstract evaluateNodes(context: EvaluationContext): Iterable<Node>;
@@ -1,6 +1,7 @@
1
- import type { EvaluationContext } from '../../context/EvaluationContext.ts';
1
+ import { EvaluationContext } from '../../context/EvaluationContext.ts';
2
2
  import { NumberEvaluation } from '../../evaluations/NumberEvaluation.ts';
3
- import type { ExpressionEvaluator, ExpressionNode } from './ExpressionEvaluator.ts';
3
+ import { ExpressionEvaluator, ExpressionNode } from './ExpressionEvaluator.ts';
4
+
4
5
  export declare abstract class NumberExpressionEvaluator<ConstValue extends number | null = null> implements ExpressionEvaluator {
5
6
  protected readonly constValue: ConstValue;
6
7
  constructor(constValue: ConstValue);
@@ -1,6 +1,7 @@
1
- import type { NumberNode } from '../../static/grammar/SyntaxNode.ts';
2
- import type { ExpressionEvaluator } from './ExpressionEvaluator.ts';
1
+ import { NumberNode } from '../../static/grammar/SyntaxNode.ts';
2
+ import { ExpressionEvaluator } from './ExpressionEvaluator.ts';
3
3
  import { NumberExpressionEvaluator } from './NumberExpressionEvaluator.ts';
4
+
4
5
  export declare class NumberLiteralExpressionEvaluator extends NumberExpressionEvaluator<number> implements ExpressionEvaluator {
5
6
  readonly syntaxNode: NumberNode;
6
7
  constructor(syntaxNode: NumberNode);
@@ -1,7 +1,8 @@
1
- import type { EvaluationContext } from '../../context/EvaluationContext.ts';
1
+ import { EvaluationContext } from '../../context/EvaluationContext.ts';
2
2
  import { NumberEvaluation } from '../../evaluations/NumberEvaluation.ts';
3
- import type { AdditionExprNode, DivisionExprNode, ModuloExprNode, MultiplicationExprNode, SubtractionExprNode } from '../../static/grammar/SyntaxNode.ts';
3
+ import { AdditionExprNode, DivisionExprNode, ModuloExprNode, MultiplicationExprNode, SubtractionExprNode } from '../../static/grammar/SyntaxNode.ts';
4
4
  import { BinaryExpressionEvaluator } from './BinaryExpressionEvaluator.ts';
5
+
5
6
  type NumericBinaryExprNode = AdditionExprNode | DivisionExprNode | ModuloExprNode | MultiplicationExprNode | SubtractionExprNode;
6
7
  type NumericOperation<Node extends NumericBinaryExprNode> = Node extends AdditionExprNode ? 'addition' : Node extends DivisionExprNode ? 'division' : Node extends ModuloExprNode ? 'modulo' : Node extends MultiplicationExprNode ? 'multiplication' : Node extends SubtractionExprNode ? 'subtraction' : never;
7
8
  export declare class NumericBinaryExpressionEvaluator<Node extends NumericBinaryExprNode> extends BinaryExpressionEvaluator<Node> {
@@ -1,6 +1,7 @@
1
- import type { RelativeLocationPathNode } from '../../static/grammar/SyntaxNode.ts';
2
- import type { ExpressionEvaluator } from './ExpressionEvaluator.ts';
1
+ import { RelativeLocationPathNode } from '../../static/grammar/SyntaxNode.ts';
2
+ import { ExpressionEvaluator } from './ExpressionEvaluator.ts';
3
3
  import { LocationPathEvaluator } from './LocationPathEvaluator.ts';
4
+
4
5
  export declare class RelativeLocationPathExpressionEvaluator extends LocationPathEvaluator implements ExpressionEvaluator {
5
6
  readonly syntaxNode: RelativeLocationPathNode;
6
7
  constructor(syntaxNode: RelativeLocationPathNode);
@@ -1,6 +1,7 @@
1
- import type { EvaluationContext } from '../../context/EvaluationContext.ts';
1
+ import { EvaluationContext } from '../../context/EvaluationContext.ts';
2
2
  import { StringEvaluation } from '../../evaluations/StringEvaluation.ts';
3
- import type { ExpressionEvaluator, ExpressionNode } from './ExpressionEvaluator.ts';
3
+ import { ExpressionEvaluator, ExpressionNode } from './ExpressionEvaluator.ts';
4
+
4
5
  export declare abstract class StringExpressionEvaluator<ConstValue extends string | null = null> implements ExpressionEvaluator {
5
6
  protected readonly constValue: ConstValue;
6
7
  constructor(constValue: ConstValue);
@@ -1,6 +1,7 @@
1
- import type { LiteralNode } from '../../static/grammar/SyntaxNode.ts';
2
- import type { ExpressionEvaluator } from './ExpressionEvaluator.ts';
1
+ import { LiteralNode } from '../../static/grammar/SyntaxNode.ts';
2
+ import { ExpressionEvaluator } from './ExpressionEvaluator.ts';
3
3
  import { StringExpressionEvaluator } from './StringExpressionEvaluator.ts';
4
+
4
5
  export declare class StringLiteralExpressionEvaluator extends StringExpressionEvaluator<string> implements ExpressionEvaluator {
5
6
  readonly syntaxNode: LiteralNode;
6
7
  constructor(syntaxNode: LiteralNode);
@@ -1,7 +1,8 @@
1
- import type { EvaluationContext } from '../../context/EvaluationContext.ts';
2
- import type { UnaryExprNode } from '../../static/grammar/SyntaxNode.ts';
3
- import type { ExpressionEvaluator } from './ExpressionEvaluator.ts';
1
+ import { EvaluationContext } from '../../context/EvaluationContext.ts';
2
+ import { UnaryExprNode } from '../../static/grammar/SyntaxNode.ts';
3
+ import { ExpressionEvaluator } from './ExpressionEvaluator.ts';
4
4
  import { NumberExpressionEvaluator } from './NumberExpressionEvaluator.ts';
5
+
5
6
  export declare class UnaryExpressionEvaluator extends NumberExpressionEvaluator {
6
7
  readonly syntaxNode: UnaryExprNode;
7
8
  readonly operand: ExpressionEvaluator;
@@ -1,7 +1,8 @@
1
- import type { EvaluationContext } from '../../context/EvaluationContext.ts';
2
- import type { UnionExprNode } from '../../static/grammar/SyntaxNode.ts';
3
- import type { ExpressionEvaluator } from './ExpressionEvaluator.ts';
1
+ import { EvaluationContext } from '../../context/EvaluationContext.ts';
2
+ import { UnionExprNode } from '../../static/grammar/SyntaxNode.ts';
3
+ import { ExpressionEvaluator } from './ExpressionEvaluator.ts';
4
4
  import { LocationPathExpressionEvaluator } from './LocationPathExpressionEvaluator.ts';
5
+
5
6
  export declare class UnionExpressionEvaluator extends LocationPathExpressionEvaluator {
6
7
  readonly syntaxNode: UnionExprNode;
7
8
  readonly lhs: ExpressionEvaluator;
@@ -1,5 +1,6 @@
1
- import type { AnyExprNode, ArgumentNode, ExprNode, XPathNode } from '../../static/grammar/SyntaxNode.ts';
2
- import type { ExpressionEvaluator } from './ExpressionEvaluator.ts';
1
+ import { AnyExprNode, ArgumentNode, ExprNode, XPathNode } from '../../static/grammar/SyntaxNode.ts';
2
+ import { ExpressionEvaluator } from './ExpressionEvaluator.ts';
3
+
3
4
  type EvaluableExprNode = AnyExprNode | ArgumentNode | ExprNode | XPathNode;
4
5
  export declare const createExpression: (syntaxNode: EvaluableExprNode) => ExpressionEvaluator;
5
6
  export {};
@@ -1,6 +1,6 @@
1
- import type { FunctionSignature } from './FunctionImplementation.ts';
2
- import type { TypedFunctionCallable } from './TypedFunctionImplementation.ts';
3
- import { TypedFunctionImplementation } from './TypedFunctionImplementation.ts';
1
+ import { FunctionSignature } from './FunctionImplementation.ts';
2
+ import { TypedFunctionCallable, TypedFunctionImplementation } from './TypedFunctionImplementation.ts';
3
+
4
4
  export declare class BooleanFunction<Length extends number> extends TypedFunctionImplementation<boolean, Length> {
5
5
  constructor(localName: string, signature: FunctionSignature<Length>, call: TypedFunctionCallable<boolean>);
6
6
  }
@@ -1,4 +1,5 @@
1
1
  import { FunctionImplementation } from './FunctionImplementation.ts';
2
+
2
3
  export declare class FunctionAlias<Length extends number> extends FunctionImplementation<Length> {
3
4
  constructor(localName: string, baseImplementation: FunctionImplementation<Length>);
4
5
  }
@@ -1,8 +1,9 @@
1
- import type { IterableReadonlyTuple } from '../../../../common/types/collections/IterableReadonlyTuple.ts';
2
- import type { Context } from '../../context/Context.ts';
3
- import type { Evaluation } from '../../evaluations/Evaluation.ts';
4
- import type { EvaluationType } from '../../evaluations/EvaluationType.ts';
1
+ import { IterableReadonlyTuple } from '../../../../common/types/collections/IterableReadonlyTuple.ts';
2
+ import { Context } from '../../context/Context.ts';
3
+ import { Evaluation } from '../../evaluations/Evaluation.ts';
4
+ import { EvaluationType } from '../../evaluations/EvaluationType.ts';
5
5
  import { LocationPathEvaluation } from '../../evaluations/LocationPathEvaluation.ts';
6
+
6
7
  export declare class UnknownFunctionError extends Error {
7
8
  constructor(functionName: string);
8
9
  }
@@ -1,6 +1,7 @@
1
- import type { Evaluation } from '../../evaluations/Evaluation.ts';
1
+ import { Evaluation } from '../../evaluations/Evaluation.ts';
2
2
  import { LocationPathEvaluation } from '../../evaluations/LocationPathEvaluation.ts';
3
- import type { AnyFunctionImplementation, EvaluableArgument, FunctionImplementation } from './FunctionImplementation.ts';
3
+ import { AnyFunctionImplementation, EvaluableArgument, FunctionImplementation } from './FunctionImplementation.ts';
4
+
4
5
  type NamespaceURI = string | null;
5
6
  type LocalName = string;
6
7
  interface QualifiedName {
@@ -1,6 +1,7 @@
1
- import type { Context } from '../../context/Context.ts';
2
- import type { FunctionImplementation } from './FunctionImplementation.ts';
3
- import type { FunctionLibrary } from './FunctionLibrary.ts';
1
+ import { Context } from '../../context/Context.ts';
2
+ import { FunctionImplementation } from './FunctionImplementation.ts';
3
+ import { FunctionLibrary } from './FunctionLibrary.ts';
4
+
4
5
  interface BaseFunctionNameLookup {
5
6
  readonly namespaceURI?: string | null;
6
7
  readonly prefix?: string | null;
@@ -1,6 +1,6 @@
1
1
  import { LocationPathEvaluation } from '../../evaluations/LocationPathEvaluation.ts';
2
- import type { EvaluableArgument, FunctionSignature } from './FunctionImplementation.ts';
3
- import { FunctionImplementation } from './FunctionImplementation.ts';
2
+ import { EvaluableArgument, FunctionSignature, FunctionImplementation } from './FunctionImplementation.ts';
3
+
4
4
  export type NodeSetFunctionCallable = <Arguments extends readonly EvaluableArgument[]>(context: LocationPathEvaluation, args: Arguments) => Iterable<Node>;
5
5
  export declare class NodeSetFunction<Length extends number> extends FunctionImplementation<Length> {
6
6
  constructor(localName: string, signature: FunctionSignature<Length>, call: NodeSetFunctionCallable);
@@ -1,6 +1,6 @@
1
- import type { FunctionSignature } from './FunctionImplementation.ts';
2
- import type { TypedFunctionCallable } from './TypedFunctionImplementation.ts';
3
- import { TypedFunctionImplementation } from './TypedFunctionImplementation.ts';
1
+ import { FunctionSignature } from './FunctionImplementation.ts';
2
+ import { TypedFunctionCallable, TypedFunctionImplementation } from './TypedFunctionImplementation.ts';
3
+
4
4
  export declare class NumberFunction<Length extends number> extends TypedFunctionImplementation<number, Length> {
5
5
  constructor(localName: string, signature: FunctionSignature<Length>, call: TypedFunctionCallable<number>);
6
6
  }
@@ -1,6 +1,6 @@
1
- import type { FunctionSignature } from './FunctionImplementation.ts';
2
- import type { TypedFunctionCallable } from './TypedFunctionImplementation.ts';
3
- import { TypedFunctionImplementation } from './TypedFunctionImplementation.ts';
1
+ import { FunctionSignature } from './FunctionImplementation.ts';
2
+ import { TypedFunctionCallable, TypedFunctionImplementation } from './TypedFunctionImplementation.ts';
3
+
4
4
  export declare class StringFunction<Length extends number> extends TypedFunctionImplementation<string, Length> {
5
5
  constructor(localName: string, signature: FunctionSignature<Length>, call: TypedFunctionCallable<string>);
6
6
  }
@@ -1,7 +1,7 @@
1
- import type { Evaluation } from '../../evaluations/Evaluation';
1
+ import { Evaluation } from '../../evaluations/Evaluation';
2
2
  import { LocationPathEvaluation } from '../../evaluations/LocationPathEvaluation.ts';
3
- import type { EvaluableArgument, FunctionSignature } from './FunctionImplementation.ts';
4
- import { FunctionImplementation } from './FunctionImplementation.ts';
3
+ import { EvaluableArgument, FunctionSignature, FunctionImplementation } from './FunctionImplementation.ts';
4
+
5
5
  export type TypedFunctionCallable<Type> = <Arguments extends readonly EvaluableArgument[]>(context: LocationPathEvaluation, args: Arguments) => Type;
6
6
  export declare class TypedFunctionImplementation<Type, Length extends number> extends FunctionImplementation<Length> {
7
7
  protected constructor(localName: string, TypedResult: new (context: LocationPathEvaluation, value: Type) => Evaluation, signature: FunctionSignature<Length>, call: TypedFunctionCallable<Type>);
@@ -1,6 +1,7 @@
1
- import type { XPathResult } from '../../shared/index.ts';
2
- import type { Evaluation } from '../../evaluations/Evaluation.ts';
1
+ import { XPathResult } from '../../shared/index.ts';
2
+ import { Evaluation } from '../../evaluations/Evaluation.ts';
3
3
  import { PrimitiveResult } from './PrimitiveResult.ts';
4
+
4
5
  export declare class BooleanResult extends PrimitiveResult implements XPathResult {
5
6
  readonly isIntermediateResult = false;
6
7
  protected readonly type: 3;
@@ -1,7 +1,7 @@
1
- import type { XPathResult, XPathResultType } from '../../shared/index.ts';
1
+ import { XPathResult, XPathResultType } from '../../shared/index.ts';
2
2
  import { Reiterable } from '../../lib/iterators/index.ts';
3
- import type { NodeSetResultType } from './BaseResult.ts';
4
- import { BaseResult } from './BaseResult.ts';
3
+ import { NodeSetResultType, BaseResult } from './BaseResult.ts';
4
+
5
5
  interface ComputedNodeSetResult {
6
6
  readonly computedBooleanValue: boolean;
7
7
  readonly computedNumberValue: number;
@@ -1,6 +1,7 @@
1
- import type { XPathResult } from '../../shared/index.ts';
2
- import type { Evaluation } from '../../evaluations/Evaluation.ts';
1
+ import { XPathResult } from '../../shared/index.ts';
2
+ import { Evaluation } from '../../evaluations/Evaluation.ts';
3
3
  import { PrimitiveResult } from './PrimitiveResult.ts';
4
+
4
5
  export declare class NumberResult extends PrimitiveResult implements XPathResult {
5
6
  readonly isIntermediateResult = false;
6
7
  protected readonly type: 1;
@@ -1,6 +1,6 @@
1
- import type { XPathResult, XPathResultType } from '../../shared/index.ts';
2
- import type { PrimitiveResultType } from './BaseResult.ts';
3
- import { BaseResult } from './BaseResult.ts';
1
+ import { XPathResult, XPathResultType } from '../../shared/index.ts';
2
+ import { PrimitiveResultType, BaseResult } from './BaseResult.ts';
3
+
4
4
  export declare abstract class PrimitiveResult extends BaseResult implements XPathResult {
5
5
  protected abstract readonly type: PrimitiveResultType;
6
6
  get resultType(): XPathResultType;
@@ -1,6 +1,7 @@
1
- import type { XPathResult } from '../../shared/index.ts';
2
- import type { Evaluation } from '../../evaluations/Evaluation.ts';
1
+ import { XPathResult } from '../../shared/index.ts';
2
+ import { Evaluation } from '../../evaluations/Evaluation.ts';
3
3
  import { PrimitiveResult } from './PrimitiveResult.ts';
4
+
4
5
  export declare class StringResult extends PrimitiveResult implements XPathResult {
5
6
  readonly isIntermediateResult = false;
6
7
  protected readonly type: 2;
@@ -1,7 +1,8 @@
1
- import type { Evaluation } from '../../evaluations/Evaluation.ts';
2
- import type { XPathResultType } from '../../shared/index.ts';
1
+ import { Evaluation } from '../../evaluations/Evaluation.ts';
2
+ import { XPathResultType } from '../../shared/index.ts';
3
3
  import { BooleanResult } from './BooleanResult';
4
4
  import { NodeSetIteratorResult, NodeSetSnapshotResult } from './NodeSetResult';
5
5
  import { NumberResult } from './NumberResult';
6
6
  import { StringResult } from './StringResult';
7
+
7
8
  export declare const toXPathResult: (resultType: XPathResultType, evaluation: Evaluation) => BooleanResult | NodeSetSnapshotResult | NodeSetIteratorResult | NumberResult | StringResult;