@documentdb-js/shell-runtime 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.
- package/LICENSE.md +21 -0
- package/README.md +94 -0
- package/dist/CommandInterceptor.d.ts +55 -0
- package/dist/CommandInterceptor.d.ts.map +1 -0
- package/dist/CommandInterceptor.js +87 -0
- package/dist/CommandInterceptor.js.map +1 -0
- package/dist/CommandInterceptor.test.d.ts +2 -0
- package/dist/CommandInterceptor.test.d.ts.map +1 -0
- package/dist/CommandInterceptor.test.js +195 -0
- package/dist/CommandInterceptor.test.js.map +1 -0
- package/dist/DocumentDBServiceProvider.d.ts +48 -0
- package/dist/DocumentDBServiceProvider.d.ts.map +1 -0
- package/dist/DocumentDBServiceProvider.js +59 -0
- package/dist/DocumentDBServiceProvider.js.map +1 -0
- package/dist/DocumentDBShellRuntime.d.ts +144 -0
- package/dist/DocumentDBShellRuntime.d.ts.map +1 -0
- package/dist/DocumentDBShellRuntime.js +521 -0
- package/dist/DocumentDBShellRuntime.js.map +1 -0
- package/dist/DocumentDBShellRuntime.test.d.ts +2 -0
- package/dist/DocumentDBShellRuntime.test.d.ts.map +1 -0
- package/dist/DocumentDBShellRuntime.test.js +200 -0
- package/dist/DocumentDBShellRuntime.test.js.map +1 -0
- package/dist/HelpProvider.d.ts +45 -0
- package/dist/HelpProvider.d.ts.map +1 -0
- package/dist/HelpProvider.js +179 -0
- package/dist/HelpProvider.js.map +1 -0
- package/dist/HelpProvider.test.d.ts +2 -0
- package/dist/HelpProvider.test.d.ts.map +1 -0
- package/dist/HelpProvider.test.js +133 -0
- package/dist/HelpProvider.test.js.map +1 -0
- package/dist/ResultTransformer.d.ts +58 -0
- package/dist/ResultTransformer.d.ts.map +1 -0
- package/dist/ResultTransformer.js +96 -0
- package/dist/ResultTransformer.js.map +1 -0
- package/dist/ResultTransformer.test.d.ts +2 -0
- package/dist/ResultTransformer.test.d.ts.map +1 -0
- package/dist/ResultTransformer.test.js +166 -0
- package/dist/ResultTransformer.test.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +65 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/package.json +30 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocumentDBShellRuntime.js","sourceRoot":"","sources":["../src/DocumentDBShellRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocumentDBShellRuntime.test.d.ts","sourceRoot":"","sources":["../src/DocumentDBShellRuntime.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,200 @@
|
|
|
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
|
+
const DocumentDBServiceProvider_1 = require("./DocumentDBServiceProvider");
|
|
8
|
+
const DocumentDBShellRuntime_1 = require("./DocumentDBShellRuntime");
|
|
9
|
+
// Mock @mongosh modules to avoid needing a real database connection
|
|
10
|
+
jest.mock('@mongosh/shell-api', () => ({
|
|
11
|
+
ShellInstanceState: jest.fn().mockImplementation(() => ({
|
|
12
|
+
displayBatchSizeFromDBQuery: 50,
|
|
13
|
+
setCtx: jest.fn(),
|
|
14
|
+
setEvaluationListener: jest.fn(),
|
|
15
|
+
close: jest.fn().mockResolvedValue(undefined),
|
|
16
|
+
})),
|
|
17
|
+
}));
|
|
18
|
+
jest.mock('@mongosh/shell-evaluator', () => ({
|
|
19
|
+
ShellEvaluator: jest.fn().mockImplementation(() => ({
|
|
20
|
+
customEval: jest.fn().mockResolvedValue({
|
|
21
|
+
type: 'Document',
|
|
22
|
+
printable: { _id: 1 },
|
|
23
|
+
}),
|
|
24
|
+
})),
|
|
25
|
+
}));
|
|
26
|
+
jest.mock('./DocumentDBServiceProvider', () => ({
|
|
27
|
+
DocumentDBServiceProvider: {
|
|
28
|
+
createForDocumentDB: jest.fn().mockReturnValue({
|
|
29
|
+
serviceProvider: {},
|
|
30
|
+
bus: { on: jest.fn(), emit: jest.fn() },
|
|
31
|
+
}),
|
|
32
|
+
},
|
|
33
|
+
}));
|
|
34
|
+
const mockCreateForDocumentDB = DocumentDBServiceProvider_1.DocumentDBServiceProvider.createForDocumentDB;
|
|
35
|
+
describe('DocumentDBShellRuntime', () => {
|
|
36
|
+
let mockClient;
|
|
37
|
+
beforeEach(() => {
|
|
38
|
+
mockClient = {};
|
|
39
|
+
jest.clearAllMocks();
|
|
40
|
+
});
|
|
41
|
+
describe('persistent: false (default)', () => {
|
|
42
|
+
it('creates fresh @mongosh context per evaluate() call', async () => {
|
|
43
|
+
const runtime = new DocumentDBShellRuntime_1.DocumentDBShellRuntime(mockClient);
|
|
44
|
+
await runtime.evaluate('db.test.find()', 'testDb');
|
|
45
|
+
await runtime.evaluate('db.test.find()', 'testDb');
|
|
46
|
+
// Each evaluate() should create a new service provider
|
|
47
|
+
expect(mockCreateForDocumentDB).toHaveBeenCalledTimes(2);
|
|
48
|
+
});
|
|
49
|
+
it('returns intercepted results without creating context', async () => {
|
|
50
|
+
const runtime = new DocumentDBShellRuntime_1.DocumentDBShellRuntime(mockClient);
|
|
51
|
+
const result = await runtime.evaluate('help', 'testDb');
|
|
52
|
+
expect(result.type).toBe('Help');
|
|
53
|
+
expect(mockCreateForDocumentDB).not.toHaveBeenCalled();
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
describe('persistent: true', () => {
|
|
57
|
+
it('creates @mongosh context only once across multiple evaluate() calls', async () => {
|
|
58
|
+
const runtime = new DocumentDBShellRuntime_1.DocumentDBShellRuntime(mockClient, undefined, {
|
|
59
|
+
persistent: true,
|
|
60
|
+
});
|
|
61
|
+
await runtime.evaluate('db.test.find()', 'testDb');
|
|
62
|
+
await runtime.evaluate('db.test.find()', 'testDb');
|
|
63
|
+
await runtime.evaluate('db.test.find()', 'testDb');
|
|
64
|
+
// Only the first evaluate() should create the service provider
|
|
65
|
+
expect(mockCreateForDocumentDB).toHaveBeenCalledTimes(1);
|
|
66
|
+
});
|
|
67
|
+
it('returns intercepted results without creating context', async () => {
|
|
68
|
+
const runtime = new DocumentDBShellRuntime_1.DocumentDBShellRuntime(mockClient, undefined, {
|
|
69
|
+
persistent: true,
|
|
70
|
+
});
|
|
71
|
+
const result = await runtime.evaluate('help', 'testDb');
|
|
72
|
+
expect(result.type).toBe('Help');
|
|
73
|
+
expect(mockCreateForDocumentDB).not.toHaveBeenCalled();
|
|
74
|
+
});
|
|
75
|
+
it('clears persistent state on dispose()', async () => {
|
|
76
|
+
const runtime = new DocumentDBShellRuntime_1.DocumentDBShellRuntime(mockClient, undefined, {
|
|
77
|
+
persistent: true,
|
|
78
|
+
});
|
|
79
|
+
await runtime.evaluate('db.test.find()', 'testDb');
|
|
80
|
+
expect(mockCreateForDocumentDB).toHaveBeenCalledTimes(1);
|
|
81
|
+
runtime.dispose();
|
|
82
|
+
// After dispose, evaluate should throw
|
|
83
|
+
await expect(runtime.evaluate('db.test.find()', 'testDb')).rejects.toThrow('Shell runtime has been disposed');
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
describe('dispose', () => {
|
|
87
|
+
it('throws on evaluate() after dispose', async () => {
|
|
88
|
+
const runtime = new DocumentDBShellRuntime_1.DocumentDBShellRuntime(mockClient);
|
|
89
|
+
runtime.dispose();
|
|
90
|
+
await expect(runtime.evaluate('help', 'testDb')).rejects.toThrow('Shell runtime has been disposed');
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
describe('normalizeDirectCommands', () => {
|
|
95
|
+
describe('single-line input (no transformation)', () => {
|
|
96
|
+
it('leaves bare use unchanged', () => {
|
|
97
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)('use mydb')).toBe('use mydb');
|
|
98
|
+
});
|
|
99
|
+
it('leaves bare show unchanged', () => {
|
|
100
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)('show dbs')).toBe('show dbs');
|
|
101
|
+
});
|
|
102
|
+
it('leaves function-call form unchanged', () => {
|
|
103
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)('use("mydb")')).toBe('use("mydb")');
|
|
104
|
+
});
|
|
105
|
+
it('leaves regular code unchanged', () => {
|
|
106
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)('db.test.find()')).toBe('db.test.find()');
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
describe('multi-line input with bare use', () => {
|
|
110
|
+
it('rewrites bare use followed by a query', () => {
|
|
111
|
+
const input = 'use mydb\ndb.test.find()';
|
|
112
|
+
const expected = 'use("mydb");\ndb.test.find()';
|
|
113
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)(input)).toBe(expected);
|
|
114
|
+
});
|
|
115
|
+
it('rewrites bare use with trailing semicolon', () => {
|
|
116
|
+
const input = 'use mydb;\ndb.test.find()';
|
|
117
|
+
const expected = 'use("mydb");\ndb.test.find()';
|
|
118
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)(input)).toBe(expected);
|
|
119
|
+
});
|
|
120
|
+
it('rewrites bare use with leading whitespace', () => {
|
|
121
|
+
const input = ' use mydb\ndb.test.find()';
|
|
122
|
+
const expected = ' use("mydb");\ndb.test.find()';
|
|
123
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)(input)).toBe(expected);
|
|
124
|
+
});
|
|
125
|
+
it('appends a trailing semicolon to neutralize ASI hazards', () => {
|
|
126
|
+
// Without the trailing `;`, the next line starting with `[`
|
|
127
|
+
// would bind to the call expression as member access.
|
|
128
|
+
const input = 'use mydb\n[1, 2, 3].forEach((x) => x)';
|
|
129
|
+
const expected = 'use("mydb");\n[1, 2, 3].forEach((x) => x)';
|
|
130
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)(input)).toBe(expected);
|
|
131
|
+
});
|
|
132
|
+
it('rewrites use in the middle of multi-line code', () => {
|
|
133
|
+
// With the AST-based implementation the rewrite covers every
|
|
134
|
+
// top-level `use`/`show` statement, not just the first line.
|
|
135
|
+
const input = 'db.test.find()\nuse otherdb\ndb.other.find()';
|
|
136
|
+
const expected = 'db.test.find()\nuse("otherdb");\ndb.other.find()';
|
|
137
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)(input)).toBe(expected);
|
|
138
|
+
});
|
|
139
|
+
it('rewrites multiple top-level use/show statements in one block', () => {
|
|
140
|
+
const input = 'show dbs\nuse mydb\ndb.test.find()\nuse otherdb\ndb.other.find()';
|
|
141
|
+
const expected = 'show("dbs");\nuse("mydb");\ndb.test.find()\nuse("otherdb");\ndb.other.find()';
|
|
142
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)(input)).toBe(expected);
|
|
143
|
+
});
|
|
144
|
+
it('leaves matching lines inside template literals unchanged', () => {
|
|
145
|
+
const input = 'const s = `\nuse mydb\n`;\nconsole.log(s)';
|
|
146
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)(input)).toBe(input);
|
|
147
|
+
});
|
|
148
|
+
it('leaves matching lines inside block comments unchanged', () => {
|
|
149
|
+
const input = '/* use mydb\n show dbs */\ndb.test.find()';
|
|
150
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)(input)).toBe(input);
|
|
151
|
+
});
|
|
152
|
+
it('leaves matching text inside line comments unchanged', () => {
|
|
153
|
+
const input = '// use mydb\ndb.test.find()';
|
|
154
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)(input)).toBe(input);
|
|
155
|
+
});
|
|
156
|
+
it('leaves matching text inside regex literals unchanged', () => {
|
|
157
|
+
const input = 'const x = /use mydb/;\ndb.test.find()';
|
|
158
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)(input)).toBe(input);
|
|
159
|
+
});
|
|
160
|
+
it('rewrites first line even when preceded by blank lines', () => {
|
|
161
|
+
const input = '\n\n use mydb\ndb.test.find()';
|
|
162
|
+
const expected = '\n\n use("mydb");\ndb.test.find()';
|
|
163
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)(input)).toBe(expected);
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
describe('multi-line input with bare show', () => {
|
|
167
|
+
it('rewrites bare show followed by a query', () => {
|
|
168
|
+
const input = 'show dbs\ndb.test.find()';
|
|
169
|
+
const expected = 'show("dbs");\ndb.test.find()';
|
|
170
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)(input)).toBe(expected);
|
|
171
|
+
});
|
|
172
|
+
it('rewrites bare show collections', () => {
|
|
173
|
+
const input = 'show collections\ndb.test.find()';
|
|
174
|
+
const expected = 'show("collections");\ndb.test.find()';
|
|
175
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)(input)).toBe(expected);
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
describe('does not transform function-call form', () => {
|
|
179
|
+
it('leaves use("name") unchanged in multi-line', () => {
|
|
180
|
+
const input = 'use("mydb")\ndb.test.find()';
|
|
181
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)(input)).toBe(input);
|
|
182
|
+
});
|
|
183
|
+
it("leaves use('name') unchanged in multi-line", () => {
|
|
184
|
+
const input = "use('mydb')\ndb.test.find()";
|
|
185
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)(input)).toBe(input);
|
|
186
|
+
});
|
|
187
|
+
it('leaves show("dbs") unchanged in multi-line', () => {
|
|
188
|
+
const input = 'show("dbs")\ndb.test.find()';
|
|
189
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)(input)).toBe(input);
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
describe('escapes special characters in database names', () => {
|
|
193
|
+
it('escapes quotes in database name', () => {
|
|
194
|
+
const input = 'use my"db\ndb.test.find()';
|
|
195
|
+
const expected = 'use("my\\"db");\ndb.test.find()';
|
|
196
|
+
expect((0, DocumentDBShellRuntime_1.normalizeDirectCommands)(input)).toBe(expected);
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
//# sourceMappingURL=DocumentDBShellRuntime.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocumentDBShellRuntime.test.js","sourceRoot":"","sources":["../src/DocumentDBShellRuntime.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type ShellEvaluationResult } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* The UI surface consuming the help text.
|
|
4
|
+
*
|
|
5
|
+
* - `'playground'` — Query Playground (`.documentdb` files, CodeLens-driven)
|
|
6
|
+
* - `'shell'` — Interactive Shell (Pseudoterminal REPL)
|
|
7
|
+
*/
|
|
8
|
+
export type HelpSurface = 'playground' | 'shell';
|
|
9
|
+
/**
|
|
10
|
+
* Provides DocumentDB-specific help text for the `help` and `help()` commands.
|
|
11
|
+
*
|
|
12
|
+
* Help content is tailored to the surface:
|
|
13
|
+
* - **Shared sections** (query, write, index, cursor, database, BSON) appear in both.
|
|
14
|
+
* - **Shell-only sections** (exit/quit, cls/clear, it, use) appear only in the shell.
|
|
15
|
+
* - **Playground-only sections** (keyboard shortcuts, block tips) appear only in the playground.
|
|
16
|
+
*/
|
|
17
|
+
export declare class HelpProvider {
|
|
18
|
+
private readonly _surface;
|
|
19
|
+
constructor(surface?: HelpSurface);
|
|
20
|
+
/**
|
|
21
|
+
* Returns help text appropriate for the configured surface.
|
|
22
|
+
*/
|
|
23
|
+
getHelpText(): string;
|
|
24
|
+
/**
|
|
25
|
+
* Returns a help evaluation result with durationMs: 0 (no server round-trip).
|
|
26
|
+
*/
|
|
27
|
+
getHelpResult(): ShellEvaluationResult;
|
|
28
|
+
private buildPlaygroundHelp;
|
|
29
|
+
/**
|
|
30
|
+
* Build compact shell help with two-column layout.
|
|
31
|
+
*
|
|
32
|
+
* The output uses a line-prefix convention that {@link ShellOutputFormatter.colorizeHelpText}
|
|
33
|
+
* uses to apply theme-aware ANSI colors:
|
|
34
|
+
*
|
|
35
|
+
* - Lines starting with `# ` → section header (bold cyan). The `# ` prefix is stripped from display.
|
|
36
|
+
* - Lines starting with two spaces and matching ` <command><2+ spaces><description>` → two-column
|
|
37
|
+
* entry. The command column is colored yellow, description gray. The regex uses a greedy match on
|
|
38
|
+
* the command so entries with internal double-spaces (e.g. `.limit(n) .skip(n)`) split correctly
|
|
39
|
+
* at the last gap, not the first.
|
|
40
|
+
* - Other indented lines → treated as plain tip text (gray).
|
|
41
|
+
* - Blank lines → passed through as-is.
|
|
42
|
+
*/
|
|
43
|
+
private buildShellHelp;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=HelpProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HelpProvider.d.ts","sourceRoot":"","sources":["../src/HelpProvider.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,OAAO,CAAC;AAEjD;;;;;;;GAOG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;gBAE3B,OAAO,GAAE,WAA0B;IAI/C;;OAEG;IACH,WAAW,IAAI,MAAM;IAOrB;;OAEG;IACH,aAAa,IAAI,qBAAqB;IAUtC,OAAO,CAAC,mBAAmB;IA0G3B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,cAAc;CAoCzB"}
|
|
@@ -0,0 +1,179 @@
|
|
|
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.HelpProvider = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* Provides DocumentDB-specific help text for the `help` and `help()` commands.
|
|
10
|
+
*
|
|
11
|
+
* Help content is tailored to the surface:
|
|
12
|
+
* - **Shared sections** (query, write, index, cursor, database, BSON) appear in both.
|
|
13
|
+
* - **Shell-only sections** (exit/quit, cls/clear, it, use) appear only in the shell.
|
|
14
|
+
* - **Playground-only sections** (keyboard shortcuts, block tips) appear only in the playground.
|
|
15
|
+
*/
|
|
16
|
+
class HelpProvider {
|
|
17
|
+
_surface;
|
|
18
|
+
constructor(surface = 'playground') {
|
|
19
|
+
this._surface = surface;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Returns help text appropriate for the configured surface.
|
|
23
|
+
*/
|
|
24
|
+
getHelpText() {
|
|
25
|
+
if (this._surface === 'shell') {
|
|
26
|
+
return this.buildShellHelp();
|
|
27
|
+
}
|
|
28
|
+
return this.buildPlaygroundHelp();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Returns a help evaluation result with durationMs: 0 (no server round-trip).
|
|
32
|
+
*/
|
|
33
|
+
getHelpResult() {
|
|
34
|
+
return {
|
|
35
|
+
type: 'Help',
|
|
36
|
+
printable: this.getHelpText(),
|
|
37
|
+
durationMs: 0,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
// ─── Private: Playground format (unchanged, wide monospaced layout) ──────
|
|
41
|
+
buildPlaygroundHelp() {
|
|
42
|
+
const modKey = process.platform === 'darwin' ? '⌘' : 'Ctrl';
|
|
43
|
+
const sections = [
|
|
44
|
+
// Header
|
|
45
|
+
['DocumentDB Query Playground: Quick Reference', '═══════════════════════════════════════'],
|
|
46
|
+
// Collection Access
|
|
47
|
+
[
|
|
48
|
+
'Collection Access:',
|
|
49
|
+
' db.getCollection("name") Explicit (recommended)',
|
|
50
|
+
' db.name Shorthand (also works)',
|
|
51
|
+
],
|
|
52
|
+
// Query Commands
|
|
53
|
+
[
|
|
54
|
+
'Query Commands:',
|
|
55
|
+
' db.getCollection("name").find({}) Find documents',
|
|
56
|
+
' db.getCollection("name").findOne({}) Find one document',
|
|
57
|
+
' db.getCollection("name").countDocuments({}) Count documents',
|
|
58
|
+
' db.getCollection("name").estimatedDocumentCount() Fast count',
|
|
59
|
+
' db.getCollection("name").distinct("field") Distinct values',
|
|
60
|
+
' db.getCollection("name").aggregate([...]) Aggregation pipeline',
|
|
61
|
+
],
|
|
62
|
+
// Write Commands
|
|
63
|
+
[
|
|
64
|
+
'Write Commands:',
|
|
65
|
+
' db.getCollection("name").insertOne({...}) Insert a document',
|
|
66
|
+
' db.getCollection("name").insertMany([...]) Insert multiple documents',
|
|
67
|
+
' db.getCollection("name").updateOne({}, {$set:{}}) Update one',
|
|
68
|
+
' db.getCollection("name").replaceOne({}, {...}) Replace one',
|
|
69
|
+
' db.getCollection("name").deleteOne({}) Delete one',
|
|
70
|
+
' db.getCollection("name").bulkWrite([...]) Batch operations',
|
|
71
|
+
],
|
|
72
|
+
// Index Commands
|
|
73
|
+
[
|
|
74
|
+
'Index Commands:',
|
|
75
|
+
' db.getCollection("name").createIndex({field:1}) Create index',
|
|
76
|
+
' db.getCollection("name").getIndexes() List indexes',
|
|
77
|
+
' db.getCollection("name").dropIndex("name") Drop index',
|
|
78
|
+
],
|
|
79
|
+
// Cursor Modifiers
|
|
80
|
+
[
|
|
81
|
+
'Cursor Modifiers:',
|
|
82
|
+
' .limit(n) Limit results',
|
|
83
|
+
' .skip(n) Skip results',
|
|
84
|
+
' .sort({field: 1}) Sort results',
|
|
85
|
+
' .project({field: 1}) Field projection',
|
|
86
|
+
' .toArray() Get all results',
|
|
87
|
+
' .count() Count matching',
|
|
88
|
+
' .explain() Query plan',
|
|
89
|
+
],
|
|
90
|
+
// Database Commands
|
|
91
|
+
[
|
|
92
|
+
'Database Commands:',
|
|
93
|
+
' show dbs List databases',
|
|
94
|
+
' show collections List collections',
|
|
95
|
+
' db.getCollectionNames() List collection names',
|
|
96
|
+
' db.getCollectionInfos() Collection metadata',
|
|
97
|
+
' db.createCollection("name") Create collection',
|
|
98
|
+
' db.getCollection("name").drop() Drop collection',
|
|
99
|
+
' db.runCommand({...}) Run a database command',
|
|
100
|
+
],
|
|
101
|
+
// BSON Constructors
|
|
102
|
+
[
|
|
103
|
+
'BSON Constructors:',
|
|
104
|
+
' ObjectId("...") Create ObjectId',
|
|
105
|
+
' ISODate("...") Create Date',
|
|
106
|
+
' NumberDecimal("...") Create Decimal128',
|
|
107
|
+
],
|
|
108
|
+
// Keyboard Shortcuts
|
|
109
|
+
[
|
|
110
|
+
'Keyboard Shortcuts:',
|
|
111
|
+
` ${modKey}+Enter Run current block`,
|
|
112
|
+
` ${modKey}+Shift+Enter Run entire file`,
|
|
113
|
+
],
|
|
114
|
+
// Tips
|
|
115
|
+
[
|
|
116
|
+
'Tips:',
|
|
117
|
+
' • Separate code blocks with blank lines',
|
|
118
|
+
' • Variables persist within a block but not between separate runs',
|
|
119
|
+
' • When running multiple statements, only the last result is shown',
|
|
120
|
+
' • Use .toArray() to get all results (default batch size: documentDB.batchSize)',
|
|
121
|
+
],
|
|
122
|
+
// Console Output
|
|
123
|
+
[
|
|
124
|
+
'Console Output:',
|
|
125
|
+
' console.log(value) Log to output channel',
|
|
126
|
+
' print() and printjson() are also supported',
|
|
127
|
+
' Output appears in the "DocumentDB Query Playground Output" panel',
|
|
128
|
+
],
|
|
129
|
+
];
|
|
130
|
+
return sections.map((lines) => lines.join('\n')).join('\n\n');
|
|
131
|
+
}
|
|
132
|
+
// ─── Private: Shell compact format ───────────────────────────────────────
|
|
133
|
+
/**
|
|
134
|
+
* Build compact shell help with two-column layout.
|
|
135
|
+
*
|
|
136
|
+
* The output uses a line-prefix convention that {@link ShellOutputFormatter.colorizeHelpText}
|
|
137
|
+
* uses to apply theme-aware ANSI colors:
|
|
138
|
+
*
|
|
139
|
+
* - Lines starting with `# ` → section header (bold cyan). The `# ` prefix is stripped from display.
|
|
140
|
+
* - Lines starting with two spaces and matching ` <command><2+ spaces><description>` → two-column
|
|
141
|
+
* entry. The command column is colored yellow, description gray. The regex uses a greedy match on
|
|
142
|
+
* the command so entries with internal double-spaces (e.g. `.limit(n) .skip(n)`) split correctly
|
|
143
|
+
* at the last gap, not the first.
|
|
144
|
+
* - Other indented lines → treated as plain tip text (gray).
|
|
145
|
+
* - Blank lines → passed through as-is.
|
|
146
|
+
*/
|
|
147
|
+
buildShellHelp() {
|
|
148
|
+
const entry = (command, description) => ` ${command.padEnd(40)}${description}`;
|
|
149
|
+
return [
|
|
150
|
+
'# DocumentDB Shell: Quick Reference',
|
|
151
|
+
'',
|
|
152
|
+
'# Query',
|
|
153
|
+
entry('db.<coll>.find({})', 'Find documents'),
|
|
154
|
+
entry('db.<coll>.findOne({})', 'Find a single document'),
|
|
155
|
+
entry('db.<coll>.aggregate([...])', 'Aggregation pipeline'),
|
|
156
|
+
entry('.limit(n) .skip(n) .sort({f:1})', 'Chain on cursors'),
|
|
157
|
+
'',
|
|
158
|
+
'# Write',
|
|
159
|
+
entry('db.<coll>.insertOne({...})', 'Insert a document'),
|
|
160
|
+
entry('db.<coll>.updateOne({}, {$set:{}})', 'Update one document'),
|
|
161
|
+
entry('db.<coll>.deleteOne({})', 'Delete one document'),
|
|
162
|
+
'',
|
|
163
|
+
'# Database',
|
|
164
|
+
entry('show dbs', 'List databases'),
|
|
165
|
+
entry('show collections', 'List collections'),
|
|
166
|
+
entry('use <db>', 'Switch database'),
|
|
167
|
+
'',
|
|
168
|
+
'# Shell',
|
|
169
|
+
entry('help', 'Show this reference'),
|
|
170
|
+
entry('exit / quit', 'Close the shell'),
|
|
171
|
+
entry('cls / clear', 'Clear the screen'),
|
|
172
|
+
'',
|
|
173
|
+
'# Tips',
|
|
174
|
+
' Variables persist across commands. console.log() output appears inline.',
|
|
175
|
+
].join('\n');
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
exports.HelpProvider = HelpProvider;
|
|
179
|
+
//# sourceMappingURL=HelpProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HelpProvider.js","sourceRoot":"","sources":["../src/HelpProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HelpProvider.test.d.ts","sourceRoot":"","sources":["../src/HelpProvider.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,133 @@
|
|
|
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
|
+
const HelpProvider_1 = require("./HelpProvider");
|
|
8
|
+
describe('HelpProvider', () => {
|
|
9
|
+
describe('playground surface (default)', () => {
|
|
10
|
+
let helpProvider;
|
|
11
|
+
beforeEach(() => {
|
|
12
|
+
helpProvider = new HelpProvider_1.HelpProvider(); // defaults to 'playground'
|
|
13
|
+
});
|
|
14
|
+
it('returns non-empty help text', () => {
|
|
15
|
+
const text = helpProvider.getHelpText();
|
|
16
|
+
expect(text).toBeTruthy();
|
|
17
|
+
expect(text.length).toBeGreaterThan(100);
|
|
18
|
+
});
|
|
19
|
+
it('includes Playground header', () => {
|
|
20
|
+
const text = helpProvider.getHelpText();
|
|
21
|
+
expect(text).toContain('Query Playground');
|
|
22
|
+
});
|
|
23
|
+
it('includes shared sections', () => {
|
|
24
|
+
const text = helpProvider.getHelpText();
|
|
25
|
+
expect(text).toContain('db.getCollection');
|
|
26
|
+
expect(text).toContain('.find(');
|
|
27
|
+
expect(text).toContain('.insertOne(');
|
|
28
|
+
expect(text).toContain('.limit(');
|
|
29
|
+
expect(text).toContain('show dbs');
|
|
30
|
+
expect(text).toContain('ObjectId');
|
|
31
|
+
});
|
|
32
|
+
it('includes keyboard shortcuts', () => {
|
|
33
|
+
const text = helpProvider.getHelpText();
|
|
34
|
+
const expectedKey = process.platform === 'darwin' ? '⌘' : 'Ctrl';
|
|
35
|
+
expect(text).toContain(expectedKey);
|
|
36
|
+
expect(text).toContain('Run current block');
|
|
37
|
+
expect(text).toContain('Run entire file');
|
|
38
|
+
});
|
|
39
|
+
it('includes playground-specific tips', () => {
|
|
40
|
+
const text = helpProvider.getHelpText();
|
|
41
|
+
expect(text).toContain('Separate code blocks with blank lines');
|
|
42
|
+
expect(text).toContain('not between separate runs');
|
|
43
|
+
});
|
|
44
|
+
it('includes console output section', () => {
|
|
45
|
+
const text = helpProvider.getHelpText();
|
|
46
|
+
expect(text).toContain('Playground Output');
|
|
47
|
+
});
|
|
48
|
+
it('does NOT include shell commands section', () => {
|
|
49
|
+
const text = helpProvider.getHelpText();
|
|
50
|
+
expect(text).not.toContain('exit / quit');
|
|
51
|
+
expect(text).not.toContain('cls / clear');
|
|
52
|
+
});
|
|
53
|
+
it('does NOT include use <db>', () => {
|
|
54
|
+
const text = helpProvider.getHelpText();
|
|
55
|
+
expect(text).not.toContain('use <db>');
|
|
56
|
+
});
|
|
57
|
+
it('does not include commands like show profile', () => {
|
|
58
|
+
const text = helpProvider.getHelpText();
|
|
59
|
+
expect(text).not.toContain('show profile');
|
|
60
|
+
});
|
|
61
|
+
it('does not include adminCommand', () => {
|
|
62
|
+
const text = helpProvider.getHelpText();
|
|
63
|
+
expect(text).not.toContain('adminCommand');
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
describe('shell surface', () => {
|
|
67
|
+
let helpProvider;
|
|
68
|
+
beforeEach(() => {
|
|
69
|
+
helpProvider = new HelpProvider_1.HelpProvider('shell');
|
|
70
|
+
});
|
|
71
|
+
it('includes DocumentDB Shell header', () => {
|
|
72
|
+
const text = helpProvider.getHelpText();
|
|
73
|
+
expect(text).toContain('DocumentDB Shell');
|
|
74
|
+
});
|
|
75
|
+
it('uses compact format with section headers', () => {
|
|
76
|
+
const text = helpProvider.getHelpText();
|
|
77
|
+
expect(text).toContain('# Query');
|
|
78
|
+
expect(text).toContain('# Write');
|
|
79
|
+
expect(text).toContain('# Shell');
|
|
80
|
+
});
|
|
81
|
+
it('includes query commands with short db.<coll> notation', () => {
|
|
82
|
+
const text = helpProvider.getHelpText();
|
|
83
|
+
expect(text).toContain('db.<coll>.find');
|
|
84
|
+
expect(text).toContain('db.<coll>.aggregate');
|
|
85
|
+
});
|
|
86
|
+
it('includes write commands', () => {
|
|
87
|
+
const text = helpProvider.getHelpText();
|
|
88
|
+
expect(text).toContain('db.<coll>.insertOne');
|
|
89
|
+
expect(text).toContain('db.<coll>.updateOne');
|
|
90
|
+
expect(text).toContain('db.<coll>.deleteOne');
|
|
91
|
+
});
|
|
92
|
+
it('includes shell commands', () => {
|
|
93
|
+
const text = helpProvider.getHelpText();
|
|
94
|
+
expect(text).toContain('exit / quit');
|
|
95
|
+
expect(text).toContain('cls / clear');
|
|
96
|
+
});
|
|
97
|
+
it('includes use <db> in database section', () => {
|
|
98
|
+
const text = helpProvider.getHelpText();
|
|
99
|
+
expect(text).toContain('use <db>');
|
|
100
|
+
});
|
|
101
|
+
it('includes shell tips', () => {
|
|
102
|
+
const text = helpProvider.getHelpText();
|
|
103
|
+
expect(text).toContain('Variables persist');
|
|
104
|
+
expect(text).toContain('console.log()');
|
|
105
|
+
});
|
|
106
|
+
it('does NOT include keyboard shortcuts', () => {
|
|
107
|
+
const text = helpProvider.getHelpText();
|
|
108
|
+
expect(text).not.toContain('Run current block');
|
|
109
|
+
expect(text).not.toContain('Run entire file');
|
|
110
|
+
});
|
|
111
|
+
it('does NOT include playground-specific content', () => {
|
|
112
|
+
const text = helpProvider.getHelpText();
|
|
113
|
+
expect(text).not.toContain('Separate code blocks with blank lines');
|
|
114
|
+
expect(text).not.toContain('Playground Output');
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
describe('getHelpResult', () => {
|
|
118
|
+
it('returns result with type Help', () => {
|
|
119
|
+
const result = new HelpProvider_1.HelpProvider().getHelpResult();
|
|
120
|
+
expect(result.type).toBe('Help');
|
|
121
|
+
});
|
|
122
|
+
it('returns result with durationMs 0', () => {
|
|
123
|
+
const result = new HelpProvider_1.HelpProvider().getHelpResult();
|
|
124
|
+
expect(result.durationMs).toBe(0);
|
|
125
|
+
});
|
|
126
|
+
it('returns result with help text as printable value', () => {
|
|
127
|
+
const provider = new HelpProvider_1.HelpProvider('shell');
|
|
128
|
+
const result = provider.getHelpResult();
|
|
129
|
+
expect(result.printable).toBe(provider.getHelpText());
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
//# sourceMappingURL=HelpProvider.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HelpProvider.test.js","sourceRoot":"","sources":["../src/HelpProvider.test.ts"],"names":[],"mappings":"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"}
|