@documentdb-js/operator-registry 0.8.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 (79) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +92 -0
  3. package/dist/accumulators.d.ts +2 -0
  4. package/dist/accumulators.d.ts.map +1 -0
  5. package/dist/accumulators.js +177 -0
  6. package/dist/accumulators.js.map +1 -0
  7. package/dist/bsonConstructors.d.ts +2 -0
  8. package/dist/bsonConstructors.d.ts.map +1 -0
  9. package/dist/bsonConstructors.js +81 -0
  10. package/dist/bsonConstructors.js.map +1 -0
  11. package/dist/docLinks.d.ts +13 -0
  12. package/dist/docLinks.d.ts.map +1 -0
  13. package/dist/docLinks.js +76 -0
  14. package/dist/docLinks.js.map +1 -0
  15. package/dist/docLinks.test.d.ts +2 -0
  16. package/dist/docLinks.test.d.ts.map +1 -0
  17. package/dist/docLinks.test.js +67 -0
  18. package/dist/docLinks.test.js.map +1 -0
  19. package/dist/expressionOperators.d.ts +2 -0
  20. package/dist/expressionOperators.d.ts.map +1 -0
  21. package/dist/expressionOperators.js +1094 -0
  22. package/dist/expressionOperators.js.map +1 -0
  23. package/dist/getFilteredCompletions.d.ts +48 -0
  24. package/dist/getFilteredCompletions.d.ts.map +1 -0
  25. package/dist/getFilteredCompletions.js +90 -0
  26. package/dist/getFilteredCompletions.js.map +1 -0
  27. package/dist/getFilteredCompletions.test.d.ts +2 -0
  28. package/dist/getFilteredCompletions.test.d.ts.map +1 -0
  29. package/dist/getFilteredCompletions.test.js +202 -0
  30. package/dist/getFilteredCompletions.test.js.map +1 -0
  31. package/dist/index.d.ts +22 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +97 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/metaTags.d.ts +62 -0
  36. package/dist/metaTags.d.ts.map +1 -0
  37. package/dist/metaTags.js +116 -0
  38. package/dist/metaTags.js.map +1 -0
  39. package/dist/operatorReference.test.d.ts +2 -0
  40. package/dist/operatorReference.test.d.ts.map +1 -0
  41. package/dist/operatorReference.test.js +209 -0
  42. package/dist/operatorReference.test.js.map +1 -0
  43. package/dist/parseOperatorReference.d.ts +54 -0
  44. package/dist/parseOperatorReference.d.ts.map +1 -0
  45. package/dist/parseOperatorReference.js +103 -0
  46. package/dist/parseOperatorReference.js.map +1 -0
  47. package/dist/parseOperatorReference.test.d.ts +2 -0
  48. package/dist/parseOperatorReference.test.d.ts.map +1 -0
  49. package/dist/parseOperatorReference.test.js +151 -0
  50. package/dist/parseOperatorReference.test.js.map +1 -0
  51. package/dist/queryOperators.d.ts +2 -0
  52. package/dist/queryOperators.d.ts.map +1 -0
  53. package/dist/queryOperators.js +398 -0
  54. package/dist/queryOperators.js.map +1 -0
  55. package/dist/stages.d.ts +2 -0
  56. package/dist/stages.d.ts.map +1 -0
  57. package/dist/stages.js +265 -0
  58. package/dist/stages.js.map +1 -0
  59. package/dist/structuralInvariants.test.d.ts +2 -0
  60. package/dist/structuralInvariants.test.d.ts.map +1 -0
  61. package/dist/structuralInvariants.test.js +219 -0
  62. package/dist/structuralInvariants.test.js.map +1 -0
  63. package/dist/systemVariables.d.ts +2 -0
  64. package/dist/systemVariables.d.ts.map +1 -0
  65. package/dist/systemVariables.js +64 -0
  66. package/dist/systemVariables.js.map +1 -0
  67. package/dist/types.d.ts +139 -0
  68. package/dist/types.d.ts.map +1 -0
  69. package/dist/types.js +7 -0
  70. package/dist/types.js.map +1 -0
  71. package/dist/updateOperators.d.ts +2 -0
  72. package/dist/updateOperators.d.ts.map +1 -0
  73. package/dist/updateOperators.js +188 -0
  74. package/dist/updateOperators.js.map +1 -0
  75. package/dist/windowOperators.d.ts +2 -0
  76. package/dist/windowOperators.d.ts.map +1 -0
  77. package/dist/windowOperators.js +219 -0
  78. package/dist/windowOperators.js.map +1 -0
  79. package/package.json +25 -0
package/LICENSE.md ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) Microsoft Corporation. All rights reserved.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE
package/README.md ADDED
@@ -0,0 +1,92 @@
1
+ # @documentdb-js/operator-registry
2
+
3
+ [DocumentDB](https://documentdb.io/) is an open-source document database built on PostgreSQL, with native BSON support, rich indexing, and vector search. It uses the MongoDB-compatible wire protocol, runs locally with Docker, and is MIT licensed.
4
+
5
+ This package is a reference catalog of operators, aggregation stages, accumulators, update operators, BSON type constructors, and system variables supported by DocumentDB. Each entry includes a description, code snippet, documentation link, and filterable meta-tags — making it easy to build context-aware autocompletion, reference panels, and documentation tooling.
6
+
7
+ > **Pre-1.0 notice** — The API may change between minor versions until `1.0.0` is released.
8
+ > If you depend on this package and need stability guarantees sooner, please
9
+ > [open an issue](https://github.com/microsoft/vscode-documentdb/issues) and let us know.
10
+
11
+ ## Features
12
+
13
+ - `OperatorEntry` objects with value, description, snippet, documentation link, and type metadata
14
+ - Meta-tag based filtering (`getFilteredCompletions()`) for context-aware autocompletion
15
+ - Convenience presets for common completion contexts (filter bar, aggregation pipeline, etc.)
16
+ - Documentation URL generation (`getDocLink()`)
17
+
18
+ ## Installation
19
+
20
+ ```bash
21
+ npm install @documentdb-js/operator-registry
22
+ ```
23
+
24
+ ## Usage
25
+
26
+ ```typescript
27
+ import {
28
+ getFilteredCompletions,
29
+ getAllCompletions,
30
+ FILTER_COMPLETION_META,
31
+ STAGE_COMPLETION_META,
32
+ } from '@documentdb-js/operator-registry';
33
+
34
+ // Get operators for a filter/query context
35
+ const filterOps = getFilteredCompletions({ meta: FILTER_COMPLETION_META });
36
+
37
+ // Get operators for a specific BSON type
38
+ const stringOps = getFilteredCompletions({
39
+ meta: FILTER_COMPLETION_META,
40
+ bsonTypes: ['string'],
41
+ });
42
+
43
+ // Get all stage names
44
+ const stages = getFilteredCompletions({ meta: STAGE_COMPLETION_META });
45
+ ```
46
+
47
+ ## Data Source
48
+
49
+ All operator data is derived from the official DocumentDB documentation:
50
+
51
+ - **Compatibility reference:** [DocumentDB Query Language Compatibility](https://learn.microsoft.com/en-us/azure/documentdb/compatibility-query-language) — lists every operator with its support status across DocumentDB versions 5.0–8.0.
52
+ - **Per-operator docs:** [DocumentDB Operators](https://learn.microsoft.com/en-us/azure/documentdb/operators/) — individual pages with descriptions and syntax for each operator.
53
+ - **Source repository:** [MicrosoftDocs/azure-databases-docs](https://github.com/MicrosoftDocs/azure-databases-docs) — the GitHub repo containing the raw Markdown source for all documentation pages above (under `articles/documentdb/`).
54
+
55
+ ### Scraper
56
+
57
+ The operator data is sourced from the official DocumentDB documentation. To re-scrape:
58
+
59
+ ```bash
60
+ npm run scrape --workspace=@documentdb-js/operator-registry
61
+ ```
62
+
63
+ The scraper:
64
+
65
+ 1. **Verifies** upstream doc structure (early fail-fast)
66
+ 2. **Extracts** all operators from the [compatibility page](https://learn.microsoft.com/en-us/azure/documentdb/compatibility-query-language)
67
+ 3. **Fetches** per-operator documentation (descriptions, syntax) with a global file index fallback for operators filed in unexpected directories
68
+ 4. **Generates** `resources/scraped/operator-reference.md` in a structured heading format (`### $operator` with description, syntax, and doc link)
69
+
70
+ The dump serves as the authoritative reference for the TypeScript implementation. A Jest test (`src/operatorReference.test.ts`) validates that the implementation matches the dump.
71
+
72
+ ## Structure
73
+
74
+ | File | Purpose |
75
+ | ------------------------------------------- | -------------------------------------------- |
76
+ | `src/types.ts` | `OperatorEntry` interface and `MetaTag` type |
77
+ | `src/metaTags.ts` | Meta tag constants and completion presets |
78
+ | `src/docLinks.ts` | Documentation URL generation |
79
+ | `src/getFilteredCompletions.ts` | Primary consumer API: filter by meta tags |
80
+ | `src/index.ts` | Barrel exports for all public API |
81
+ | `resources/scraped/operator-reference.md` | Auto-generated scraped operator dump |
82
+ | `resources/overrides/operator-overrides.md` | Hand-maintained overrides |
83
+ | `resources/overrides/operator-snippets.md` | Snippet templates per category |
84
+ | `scripts/scrape-operator-docs.ts` | Scraper script |
85
+
86
+ ## Origin
87
+
88
+ This package was developed while building features for the [DocumentDB VS Code extension](https://github.com/microsoft/vscode-documentdb), which remains the primary consumer. The package is designed to be useful in any tooling that needs structured DocumentDB operator metadata.
89
+
90
+ ## License
91
+
92
+ [MIT](LICENSE.md)
@@ -0,0 +1,2 @@
1
+ export declare function loadAccumulators(): void;
2
+ //# sourceMappingURL=accumulators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accumulators.d.ts","sourceRoot":"","sources":["../src/accumulators.ts"],"names":[],"mappings":"AAuLA,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.loadAccumulators = loadAccumulators;
8
+ // AUTO-GENERATED — DO NOT EDIT BY HAND
9
+ //
10
+ // Generated by: npm run generate (scripts/generate-from-reference.ts)
11
+ // Sources: resources/scraped/operator-reference.md
12
+ // resources/overrides/operator-overrides.md
13
+ // resources/overrides/operator-snippets.md
14
+ //
15
+ // To change operator data, edit the overrides/snippets files and re-run the generator.
16
+ const docLinks_1 = require("./docLinks");
17
+ const getFilteredCompletions_1 = require("./getFilteredCompletions");
18
+ const metaTags_1 = require("./metaTags");
19
+ // ---------------------------------------------------------------------------
20
+ // Accumulators ($group, $bucket, $bucketAuto, $setWindowFields)
21
+ // ---------------------------------------------------------------------------
22
+ const groupAccumulators = [
23
+ {
24
+ value: '$addToSet',
25
+ meta: metaTags_1.META_ACCUMULATOR,
26
+ description: "The addToSet operator adds elements to an array if they don't already exist, while ensuring uniqueness of elements within the set.",
27
+ snippet: '{ $addToSet: "${1:\\$field}" }',
28
+ link: 'https://learn.microsoft.com/en-us/azure/documentdb/operators/array-update/$addtoset', // inferred from another category
29
+ },
30
+ {
31
+ value: '$avg',
32
+ meta: metaTags_1.META_ACCUMULATOR,
33
+ description: 'Computes the average of numeric values for documents in a group, bucket, or window.',
34
+ snippet: '{ $avg: "${1:\\$field}" }',
35
+ link: (0, docLinks_1.getDocLink)('$avg', metaTags_1.META_ACCUMULATOR),
36
+ },
37
+ {
38
+ value: '$bottom',
39
+ meta: metaTags_1.META_ACCUMULATOR,
40
+ description: "The $bottom operator returns the last document from the query's result set sorted by one or more fields",
41
+ snippet: '{ $bottom: { sortBy: { ${1:field}: ${2:1} }, output: "${3:\\$field}" } }',
42
+ link: (0, docLinks_1.getDocLink)('$bottom', metaTags_1.META_ACCUMULATOR),
43
+ },
44
+ {
45
+ value: '$bottomN',
46
+ meta: metaTags_1.META_ACCUMULATOR,
47
+ description: 'The $bottomN operator returns the last N documents from the result sorted by one or more fields',
48
+ snippet: '{ $bottomN: { n: ${1:number}, sortBy: { ${2:field}: ${3:1} }, output: "${4:\\$field}" } }',
49
+ link: (0, docLinks_1.getDocLink)('$bottomN', metaTags_1.META_ACCUMULATOR),
50
+ },
51
+ {
52
+ value: '$count',
53
+ meta: metaTags_1.META_ACCUMULATOR,
54
+ description: 'The `$count` operator is used to count the number of documents that match a query filtering criteria.',
55
+ snippet: '{ $count: {} }',
56
+ link: (0, docLinks_1.getDocLink)('$count', metaTags_1.META_ACCUMULATOR),
57
+ },
58
+ {
59
+ value: '$first',
60
+ meta: metaTags_1.META_ACCUMULATOR,
61
+ description: "The $first operator returns the first value in a group according to the group's sorting order.",
62
+ snippet: '{ $first: "${1:\\$field}" }',
63
+ link: (0, docLinks_1.getDocLink)('$first', metaTags_1.META_ACCUMULATOR),
64
+ },
65
+ {
66
+ value: '$firstN',
67
+ meta: metaTags_1.META_ACCUMULATOR,
68
+ description: 'The $firstN operator sorts documents on one or more fields specified by the query and returns the first N document matching the filtering criteria',
69
+ snippet: '{ $firstN: { input: "${1:\\$field}", n: ${2:number} } }',
70
+ link: (0, docLinks_1.getDocLink)('$firstN', metaTags_1.META_ACCUMULATOR),
71
+ },
72
+ {
73
+ value: '$last',
74
+ meta: metaTags_1.META_ACCUMULATOR,
75
+ description: 'The $last operator returns the last document from the result sorted by one or more fields',
76
+ snippet: '{ $last: "${1:\\$field}" }',
77
+ link: (0, docLinks_1.getDocLink)('$last', metaTags_1.META_ACCUMULATOR),
78
+ },
79
+ {
80
+ value: '$lastN',
81
+ meta: metaTags_1.META_ACCUMULATOR,
82
+ description: 'The $lastN accumulator operator returns the last N values in a group of documents.',
83
+ snippet: '{ $lastN: { input: "${1:\\$field}", n: ${2:number} } }',
84
+ link: (0, docLinks_1.getDocLink)('$lastN', metaTags_1.META_ACCUMULATOR),
85
+ },
86
+ {
87
+ value: '$max',
88
+ meta: metaTags_1.META_ACCUMULATOR,
89
+ description: 'The $max operator returns the maximum value from a set of input values.',
90
+ snippet: '{ $max: "${1:\\$field}" }',
91
+ link: (0, docLinks_1.getDocLink)('$max', metaTags_1.META_ACCUMULATOR),
92
+ },
93
+ {
94
+ value: '$maxN',
95
+ meta: metaTags_1.META_ACCUMULATOR,
96
+ description: 'Retrieves the top N values based on a specified filtering criteria',
97
+ snippet: '{ $maxN: { input: "${1:\\$field}", n: ${2:number} } }',
98
+ link: (0, docLinks_1.getDocLink)('$maxN', metaTags_1.META_ACCUMULATOR),
99
+ },
100
+ {
101
+ value: '$median',
102
+ meta: metaTags_1.META_ACCUMULATOR,
103
+ description: 'The $median operator calculates the median value of a numeric field in a group of documents.',
104
+ snippet: '{ $median: { input: "${1:\\$field}", method: "approximate" } }',
105
+ link: (0, docLinks_1.getDocLink)('$median', metaTags_1.META_ACCUMULATOR),
106
+ },
107
+ {
108
+ value: '$mergeObjects',
109
+ meta: metaTags_1.META_ACCUMULATOR,
110
+ description: 'The $mergeObjects operator merges multiple documents into a single document',
111
+ snippet: '{ $mergeObjects: "${1:\\$field}" }',
112
+ link: 'https://learn.microsoft.com/en-us/azure/documentdb/operators/object-expression/$mergeobjects', // inferred from another category
113
+ },
114
+ {
115
+ value: '$min',
116
+ meta: metaTags_1.META_ACCUMULATOR,
117
+ description: 'Retrieves the minimum value for a specified field',
118
+ snippet: '{ $min: "${1:\\$field}" }',
119
+ link: (0, docLinks_1.getDocLink)('$min', metaTags_1.META_ACCUMULATOR),
120
+ },
121
+ {
122
+ value: '$percentile',
123
+ meta: metaTags_1.META_ACCUMULATOR,
124
+ description: 'The $percentile operator calculates the percentile of numerical values that match a filtering criteria',
125
+ snippet: '{ $percentile: { input: "${1:\\$field}", p: [${2:0.5}], method: "approximate" } }',
126
+ link: (0, docLinks_1.getDocLink)('$percentile', metaTags_1.META_ACCUMULATOR),
127
+ },
128
+ {
129
+ value: '$push',
130
+ meta: metaTags_1.META_ACCUMULATOR,
131
+ description: 'The $push operator adds a specified value to an array within a document.',
132
+ snippet: '{ $push: "${1:\\$field}" }',
133
+ link: 'https://learn.microsoft.com/en-us/azure/documentdb/operators/array-update/$push', // inferred from another category
134
+ },
135
+ {
136
+ value: '$stdDevPop',
137
+ meta: metaTags_1.META_ACCUMULATOR,
138
+ description: 'The $stddevpop operator calculates the standard deviation of the specified values',
139
+ snippet: '{ $stdDevPop: "${1:\\$field}" }',
140
+ link: (0, docLinks_1.getDocLink)('$stdDevPop', metaTags_1.META_ACCUMULATOR),
141
+ },
142
+ {
143
+ value: '$stdDevSamp',
144
+ meta: metaTags_1.META_ACCUMULATOR,
145
+ description: 'The $stddevsamp operator calculates the standard deviation of a specified sample of values and not the entire population',
146
+ snippet: '{ $stdDevSamp: "${1:\\$field}" }',
147
+ link: (0, docLinks_1.getDocLink)('$stdDevSamp', metaTags_1.META_ACCUMULATOR),
148
+ },
149
+ {
150
+ value: '$sum',
151
+ meta: metaTags_1.META_ACCUMULATOR,
152
+ description: 'The $sum operator calculates the sum of the values of a field based on a filtering criteria',
153
+ snippet: '{ $sum: "${1:\\$field}" }',
154
+ link: (0, docLinks_1.getDocLink)('$sum', metaTags_1.META_ACCUMULATOR),
155
+ },
156
+ {
157
+ value: '$top',
158
+ meta: metaTags_1.META_ACCUMULATOR,
159
+ description: 'The $top operator returns the first document from the result set sorted by one or more fields',
160
+ snippet: '{ $top: { sortBy: { ${1:field}: ${2:1} }, output: "${3:\\$field}" } }',
161
+ link: (0, docLinks_1.getDocLink)('$top', metaTags_1.META_ACCUMULATOR),
162
+ },
163
+ {
164
+ value: '$topN',
165
+ meta: metaTags_1.META_ACCUMULATOR,
166
+ description: 'The $topN operator returns the first N documents from the result sorted by one or more fields',
167
+ snippet: '{ $topN: { n: ${1:number}, sortBy: { ${2:field}: ${3:1} }, output: "${4:\\$field}" } }',
168
+ link: (0, docLinks_1.getDocLink)('$topN', metaTags_1.META_ACCUMULATOR),
169
+ },
170
+ ];
171
+ // ---------------------------------------------------------------------------
172
+ // Registration
173
+ // ---------------------------------------------------------------------------
174
+ function loadAccumulators() {
175
+ (0, getFilteredCompletions_1.registerOperators)([...groupAccumulators]);
176
+ }
177
+ //# sourceMappingURL=accumulators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accumulators.js","sourceRoot":"","sources":["../src/accumulators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function loadBsonConstructors(): void;
2
+ //# sourceMappingURL=bsonConstructors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bsonConstructors.d.ts","sourceRoot":"","sources":["../src/bsonConstructors.ts"],"names":[],"mappings":"AAgFA,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.loadBsonConstructors = loadBsonConstructors;
8
+ const getFilteredCompletions_1 = require("./getFilteredCompletions");
9
+ const metaTags_1 = require("./metaTags");
10
+ // ---------------------------------------------------------------------------
11
+ // BSON Constructor Functions
12
+ // ---------------------------------------------------------------------------
13
+ const bsonConstructors = [
14
+ {
15
+ value: 'ObjectId',
16
+ meta: metaTags_1.META_BSON,
17
+ description: 'Creates a new ObjectId value, a 12-byte unique identifier.',
18
+ snippet: 'ObjectId("${1:hex}")',
19
+ },
20
+ {
21
+ value: 'ISODate',
22
+ meta: metaTags_1.META_BSON,
23
+ description: 'Creates a date object from an ISO 8601 date string.',
24
+ snippet: 'ISODate("${1:2025-01-01T00:00:00Z}")',
25
+ },
26
+ {
27
+ value: 'NumberLong',
28
+ meta: metaTags_1.META_BSON,
29
+ description: 'Creates a 64-bit integer (long) value.',
30
+ snippet: 'NumberLong(${1:value})',
31
+ },
32
+ {
33
+ value: 'NumberInt',
34
+ meta: metaTags_1.META_BSON,
35
+ description: 'Creates a 32-bit integer value.',
36
+ snippet: 'NumberInt(${1:value})',
37
+ },
38
+ {
39
+ value: 'NumberDecimal',
40
+ meta: metaTags_1.META_BSON,
41
+ description: 'Creates a 128-bit decimal value for high-precision calculations.',
42
+ snippet: 'NumberDecimal("${1:value}")',
43
+ },
44
+ {
45
+ value: 'BinData',
46
+ meta: metaTags_1.META_BSON,
47
+ description: 'Creates a binary data value with a specified subtype.',
48
+ snippet: 'BinData(${1:subtype}, "${2:base64}")',
49
+ },
50
+ {
51
+ value: 'UUID',
52
+ meta: metaTags_1.META_BSON,
53
+ description: 'Creates a UUID (Universally Unique Identifier) value.',
54
+ snippet: 'UUID("${1:uuid}")',
55
+ },
56
+ {
57
+ value: 'Timestamp',
58
+ meta: metaTags_1.META_BSON,
59
+ description: 'Creates a BSON timestamp value for internal replication use.',
60
+ snippet: 'Timestamp(${1:seconds}, ${2:increment})',
61
+ },
62
+ {
63
+ value: 'MinKey',
64
+ meta: metaTags_1.META_BSON,
65
+ description: 'Represents the lowest possible BSON value, comparing less than all other types.',
66
+ snippet: 'MinKey()',
67
+ },
68
+ {
69
+ value: 'MaxKey',
70
+ meta: metaTags_1.META_BSON,
71
+ description: 'Represents the highest possible BSON value, comparing greater than all other types.',
72
+ snippet: 'MaxKey()',
73
+ },
74
+ ];
75
+ // ---------------------------------------------------------------------------
76
+ // Registration
77
+ // ---------------------------------------------------------------------------
78
+ function loadBsonConstructors() {
79
+ (0, getFilteredCompletions_1.registerOperators)(bsonConstructors);
80
+ }
81
+ //# sourceMappingURL=bsonConstructors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bsonConstructors.js","sourceRoot":"","sources":["../src/bsonConstructors.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;AA6EhG,oDAEC;AA7ED,qEAA6D;AAC7D,yCAAuC;AAGvC,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E,MAAM,gBAAgB,GAA6B;IAC/C;QACI,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,oBAAS;QACf,WAAW,EAAE,4DAA4D;QACzE,OAAO,EAAE,sBAAsB;KAClC;IACD;QACI,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,oBAAS;QACf,WAAW,EAAE,qDAAqD;QAClE,OAAO,EAAE,sCAAsC;KAClD;IACD;QACI,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,oBAAS;QACf,WAAW,EAAE,wCAAwC;QACrD,OAAO,EAAE,wBAAwB;KACpC;IACD;QACI,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,oBAAS;QACf,WAAW,EAAE,iCAAiC;QAC9C,OAAO,EAAE,uBAAuB;KACnC;IACD;QACI,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,oBAAS;QACf,WAAW,EAAE,kEAAkE;QAC/E,OAAO,EAAE,6BAA6B;KACzC;IACD;QACI,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,oBAAS;QACf,WAAW,EAAE,uDAAuD;QACpE,OAAO,EAAE,sCAAsC;KAClD;IACD;QACI,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,oBAAS;QACf,WAAW,EAAE,uDAAuD;QACpE,OAAO,EAAE,mBAAmB;KAC/B;IACD;QACI,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,oBAAS;QACf,WAAW,EAAE,8DAA8D;QAC3E,OAAO,EAAE,yCAAyC;KACrD;IACD;QACI,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,oBAAS;QACf,WAAW,EAAE,iFAAiF;QAC9F,OAAO,EAAE,UAAU;KACtB;IACD;QACI,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,oBAAS;QACf,WAAW,EAAE,qFAAqF;QAClG,OAAO,EAAE,UAAU;KACtB;CACJ,CAAC;AAEF,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,SAAgB,oBAAoB;IAChC,IAAA,0CAAiB,EAAC,gBAAgB,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Generates a documentation URL for a DocumentDB operator.
3
+ *
4
+ * @param operatorValue - the operator name, e.g. "$bucket", "$gt"
5
+ * @param meta - the meta tag, e.g. "stage", "query:comparison"
6
+ * @returns URL string or undefined if no mapping exists for the meta tag
7
+ */
8
+ export declare function getDocLink(operatorValue: string, meta: string): string | undefined;
9
+ /**
10
+ * Returns the base URL for the DocumentDB operators documentation.
11
+ */
12
+ export declare function getDocBase(): string;
13
+ //# sourceMappingURL=docLinks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docLinks.d.ts","sourceRoot":"","sources":["../src/docLinks.ts"],"names":[],"mappings":"AAqDA;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CASlF;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.getDocLink = getDocLink;
8
+ exports.getDocBase = getDocBase;
9
+ /**
10
+ * URL generation helpers for DocumentDB documentation pages.
11
+ *
12
+ * Each operator has a documentation page at:
13
+ * https://learn.microsoft.com/en-us/azure/documentdb/operators/{category}/{operatorName}
14
+ */
15
+ const DOC_BASE = 'https://learn.microsoft.com/en-us/azure/documentdb/operators';
16
+ /**
17
+ * Maps meta tag prefixes to the docs directory name used in the
18
+ * DocumentDB documentation URL path.
19
+ */
20
+ const META_TO_DOC_DIR = {
21
+ 'query:comparison': 'comparison-query',
22
+ 'query:logical': 'logical-query',
23
+ 'query:element': 'element-query',
24
+ 'query:evaluation': 'evaluation-query',
25
+ 'query:array': 'array-query',
26
+ 'query:bitwise': 'bitwise-query',
27
+ 'query:geospatial': 'geospatial',
28
+ 'query:projection': 'projection',
29
+ 'query:misc': 'miscellaneous-query',
30
+ 'update:field': 'field-update',
31
+ 'update:array': 'array-update',
32
+ 'update:bitwise': 'bitwise-update',
33
+ stage: 'aggregation',
34
+ accumulator: 'accumulators',
35
+ 'expr:arith': 'arithmetic-expression',
36
+ 'expr:array': 'array-expression',
37
+ 'expr:bool': 'boolean-expression',
38
+ 'expr:comparison': 'comparison-expression',
39
+ 'expr:conditional': 'conditional-expression',
40
+ 'expr:date': 'date-expression',
41
+ 'expr:object': 'object-expression',
42
+ 'expr:set': 'set-expression',
43
+ 'expr:string': 'string-expression',
44
+ 'expr:trig': 'trigonometry-expression',
45
+ 'expr:type': 'aggregation/type-expression',
46
+ 'expr:datasize': 'data-size',
47
+ 'expr:timestamp': 'timestamp-expression',
48
+ 'expr:bitwise': 'bitwise',
49
+ 'expr:literal': 'literal-expression',
50
+ 'expr:misc': 'miscellaneous',
51
+ 'expr:variable': 'variable-expression',
52
+ window: 'window-operators',
53
+ };
54
+ /**
55
+ * Generates a documentation URL for a DocumentDB operator.
56
+ *
57
+ * @param operatorValue - the operator name, e.g. "$bucket", "$gt"
58
+ * @param meta - the meta tag, e.g. "stage", "query:comparison"
59
+ * @returns URL string or undefined if no mapping exists for the meta tag
60
+ */
61
+ function getDocLink(operatorValue, meta) {
62
+ const dir = META_TO_DOC_DIR[meta];
63
+ if (!dir) {
64
+ return undefined;
65
+ }
66
+ // Operator names in URLs keep their $ prefix and are lowercased
67
+ const name = operatorValue.toLowerCase();
68
+ return `${DOC_BASE}/${dir}/${name}`;
69
+ }
70
+ /**
71
+ * Returns the base URL for the DocumentDB operators documentation.
72
+ */
73
+ function getDocBase() {
74
+ return DOC_BASE;
75
+ }
76
+ //# sourceMappingURL=docLinks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docLinks.js","sourceRoot":"","sources":["../src/docLinks.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;AAyDhG,gCASC;AAKD,gCAEC;AAvED;;;;;GAKG;AAEH,MAAM,QAAQ,GAAG,8DAA8D,CAAC;AAEhF;;;GAGG;AACH,MAAM,eAAe,GAA2B;IAC5C,kBAAkB,EAAE,kBAAkB;IACtC,eAAe,EAAE,eAAe;IAChC,eAAe,EAAE,eAAe;IAChC,kBAAkB,EAAE,kBAAkB;IACtC,aAAa,EAAE,aAAa;IAC5B,eAAe,EAAE,eAAe;IAChC,kBAAkB,EAAE,YAAY;IAChC,kBAAkB,EAAE,YAAY;IAChC,YAAY,EAAE,qBAAqB;IACnC,cAAc,EAAE,cAAc;IAC9B,cAAc,EAAE,cAAc;IAC9B,gBAAgB,EAAE,gBAAgB;IAClC,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,cAAc;IAC3B,YAAY,EAAE,uBAAuB;IACrC,YAAY,EAAE,kBAAkB;IAChC,WAAW,EAAE,oBAAoB;IACjC,iBAAiB,EAAE,uBAAuB;IAC1C,kBAAkB,EAAE,wBAAwB;IAC5C,WAAW,EAAE,iBAAiB;IAC9B,aAAa,EAAE,mBAAmB;IAClC,UAAU,EAAE,gBAAgB;IAC5B,aAAa,EAAE,mBAAmB;IAClC,WAAW,EAAE,yBAAyB;IACtC,WAAW,EAAE,6BAA6B;IAC1C,eAAe,EAAE,WAAW;IAC5B,gBAAgB,EAAE,sBAAsB;IACxC,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,oBAAoB;IACpC,WAAW,EAAE,eAAe;IAC5B,eAAe,EAAE,qBAAqB;IACtC,MAAM,EAAE,kBAAkB;CAC7B,CAAC;AAEF;;;;;;GAMG;AACH,SAAgB,UAAU,CAAC,aAAqB,EAAE,IAAY;IAC1D,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,gEAAgE;IAChE,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;IACzC,OAAO,GAAG,QAAQ,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU;IACtB,OAAO,QAAQ,CAAC;AACpB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=docLinks.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docLinks.test.d.ts","sourceRoot":"","sources":["../src/docLinks.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ /**
8
+ * Unit tests for docLinks.ts — URL generation for DocumentDB operator docs.
9
+ */
10
+ const index_1 = require("./index");
11
+ describe('docLinks', () => {
12
+ test('getDocBase returns the expected base URL', () => {
13
+ expect((0, index_1.getDocBase)()).toBe('https://learn.microsoft.com/en-us/azure/documentdb/operators');
14
+ });
15
+ describe('getDocLink', () => {
16
+ test('generates correct URL for comparison query operator', () => {
17
+ const link = (0, index_1.getDocLink)('$eq', 'query:comparison');
18
+ expect(link).toBe('https://learn.microsoft.com/en-us/azure/documentdb/operators/comparison-query/$eq');
19
+ });
20
+ test('generates correct URL for aggregation stage', () => {
21
+ const link = (0, index_1.getDocLink)('$match', 'stage');
22
+ expect(link).toBe('https://learn.microsoft.com/en-us/azure/documentdb/operators/aggregation/$match');
23
+ });
24
+ test('generates correct URL for accumulator', () => {
25
+ const link = (0, index_1.getDocLink)('$sum', 'accumulator');
26
+ expect(link).toBe('https://learn.microsoft.com/en-us/azure/documentdb/operators/accumulators/$sum');
27
+ });
28
+ test('generates correct URL for field update operator', () => {
29
+ const link = (0, index_1.getDocLink)('$set', 'update:field');
30
+ expect(link).toBe('https://learn.microsoft.com/en-us/azure/documentdb/operators/field-update/$set');
31
+ });
32
+ test('generates correct URL for array expression operator', () => {
33
+ const link = (0, index_1.getDocLink)('$filter', 'expr:array');
34
+ expect(link).toBe('https://learn.microsoft.com/en-us/azure/documentdb/operators/array-expression/$filter');
35
+ });
36
+ test('generates correct URL for type expression operator (nested dir)', () => {
37
+ const link = (0, index_1.getDocLink)('$convert', 'expr:type');
38
+ expect(link).toBe('https://learn.microsoft.com/en-us/azure/documentdb/operators/aggregation/type-expression/$convert');
39
+ });
40
+ test('generates correct URL for window operator', () => {
41
+ const link = (0, index_1.getDocLink)('$rank', 'window');
42
+ expect(link).toBe('https://learn.microsoft.com/en-us/azure/documentdb/operators/window-operators/$rank');
43
+ });
44
+ test('lowercases operator names in URLs', () => {
45
+ const link = (0, index_1.getDocLink)('$AddFields', 'stage');
46
+ expect(link).toBe('https://learn.microsoft.com/en-us/azure/documentdb/operators/aggregation/$addfields');
47
+ });
48
+ test('returns undefined for unknown meta tag', () => {
49
+ expect((0, index_1.getDocLink)('$eq', 'unknown:tag')).toBeUndefined();
50
+ });
51
+ test('returns undefined for BSON meta tag (no docs directory)', () => {
52
+ expect((0, index_1.getDocLink)('ObjectId', 'bson')).toBeUndefined();
53
+ });
54
+ test('returns undefined for variable meta tag (no docs directory)', () => {
55
+ expect((0, index_1.getDocLink)('$$NOW', 'variable')).toBeUndefined();
56
+ });
57
+ test('generates correct URL for boolean expression operator', () => {
58
+ const link = (0, index_1.getDocLink)('$and', 'expr:bool');
59
+ expect(link).toBe('https://learn.microsoft.com/en-us/azure/documentdb/operators/boolean-expression/$and');
60
+ });
61
+ test('generates correct URL for comparison expression operator', () => {
62
+ const link = (0, index_1.getDocLink)('$eq', 'expr:comparison');
63
+ expect(link).toBe('https://learn.microsoft.com/en-us/azure/documentdb/operators/comparison-expression/$eq');
64
+ });
65
+ });
66
+ });
67
+ //# sourceMappingURL=docLinks.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docLinks.test.js","sourceRoot":"","sources":["../src/docLinks.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function loadExpressionOperators(): void;
2
+ //# sourceMappingURL=expressionOperators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressionOperators.d.ts","sourceRoot":"","sources":["../src/expressionOperators.ts"],"names":[],"mappings":"AAwoCA,wBAAgB,uBAAuB,IAAI,IAAI,CAoB9C"}